prebid.js 10.2.0 → 10.4.0

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 (1650) hide show
  1. package/.github/dependabot.yml +8 -0
  2. package/.github/workflows/scripts/codepath-notification +1 -0
  3. package/creative/renderers/display/renderer.js +3 -4
  4. package/dist/chunks/1plusXRtdProvider.js +1 -1
  5. package/dist/chunks/33acrossAnalyticsAdapter.js +1 -1
  6. package/dist/chunks/33acrossBidAdapter.js +1 -1
  7. package/dist/chunks/33acrossBidAdapter.metadata.js +1 -1
  8. package/dist/chunks/33acrossIdSystem.js +1 -1
  9. package/dist/chunks/33acrossIdSystem.metadata.js +1 -1
  10. package/dist/chunks/acuityadsBidAdapter.metadata.js +1 -1
  11. package/dist/chunks/adagioAnalyticsAdapter.js +1 -1
  12. package/dist/chunks/adagioBidAdapter.js +1 -1
  13. package/dist/chunks/adagioBidAdapter.metadata.js +1 -1
  14. package/dist/chunks/adagioRtdProvider.metadata.js +1 -1
  15. package/dist/chunks/adagioUtils.js +1 -1
  16. package/dist/chunks/addefendBidAdapter.js +1 -1
  17. package/dist/chunks/addefendBidAdapter.metadata.js +1 -1
  18. package/dist/chunks/adfBidAdapter.metadata.js +1 -1
  19. package/dist/chunks/adfusionBidAdapter.metadata.js +1 -1
  20. package/dist/chunks/adgenerationBidAdapter.js +1 -1
  21. package/dist/chunks/adheseBidAdapter.metadata.js +1 -1
  22. package/dist/chunks/adkernelAdnBidAdapter.metadata.js +1 -1
  23. package/dist/chunks/adkernelBidAdapter.metadata.js +1 -1
  24. package/dist/chunks/adlooxRtdProvider.js +1 -1
  25. package/dist/chunks/admaticBidAdapter.metadata.js +1 -1
  26. package/dist/chunks/admixerBidAdapter.js +1 -1
  27. package/dist/chunks/admixerBidAdapter.metadata.js +1 -1
  28. package/dist/chunks/admixerIdSystem.metadata.js +1 -1
  29. package/dist/chunks/adnowBidAdapter.metadata.js +1 -1
  30. package/dist/chunks/adnuntiusBidAdapter.metadata.js +1 -1
  31. package/dist/chunks/adnuntiusRtdProvider.metadata.js +1 -1
  32. package/dist/chunks/adotBidAdapter.metadata.js +1 -1
  33. package/dist/chunks/adponeBidAdapter.metadata.js +1 -1
  34. package/dist/chunks/adqueryBidAdapter.js +1 -1
  35. package/dist/chunks/adqueryBidAdapter.metadata.js +1 -1
  36. package/dist/chunks/adqueryIdSystem.metadata.js +1 -1
  37. package/dist/chunks/adrelevantisBidAdapter.js +1 -1
  38. package/dist/chunks/adrinoBidAdapter.metadata.js +1 -1
  39. package/dist/chunks/ads_interactiveBidAdapter.metadata.js +1 -1
  40. package/dist/chunks/adstirBidAdapter.js +1 -1
  41. package/dist/chunks/adtargetBidAdapter.metadata.js +1 -1
  42. package/dist/chunks/adtelligentBidAdapter.metadata.js +1 -1
  43. package/dist/chunks/adtelligentIdSystem.metadata.js +1 -1
  44. package/dist/chunks/adtrgtmeBidAdapter.js +1 -1
  45. package/dist/chunks/aduptechBidAdapter.metadata.js +1 -1
  46. package/dist/chunks/advertisingBidAdapter.js +1 -1
  47. package/dist/chunks/adxcgAnalyticsAdapter.js +1 -1
  48. package/dist/chunks/adxcgBidAdapter.js +1 -1
  49. package/dist/chunks/adyoulikeBidAdapter.js +1 -1
  50. package/dist/chunks/adyoulikeBidAdapter.metadata.js +1 -1
  51. package/dist/chunks/agmaAnalyticsAdapter.js +1 -1
  52. package/dist/chunks/aidemBidAdapter.metadata.js +1 -1
  53. package/dist/chunks/airgridRtdProvider.metadata.js +1 -1
  54. package/dist/chunks/ajaBidAdapter.js +1 -1
  55. package/dist/chunks/alkimiBidAdapter.metadata.js +1 -1
  56. package/dist/chunks/ampliffyBidAdapter.metadata.js +1 -1
  57. package/dist/chunks/amxBidAdapter.js +1 -1
  58. package/dist/chunks/amxBidAdapter.metadata.js +1 -1
  59. package/dist/chunks/amxIdSystem.js +1 -1
  60. package/dist/chunks/amxIdSystem.metadata.js +1 -1
  61. package/dist/chunks/aniviewBidAdapter.js +1 -1
  62. package/dist/chunks/aniviewBidAdapter.metadata.js +1 -1
  63. package/dist/chunks/anonymisedRtdProvider.metadata.js +1 -1
  64. package/dist/chunks/appierAnalyticsAdapter.js +1 -1
  65. package/dist/chunks/appierBidAdapter.metadata.js +1 -1
  66. package/dist/chunks/appnexusBidAdapter.js +1 -1
  67. package/dist/chunks/appnexusBidAdapter.metadata.js +1 -1
  68. package/dist/chunks/appnexusUtils.js +1 -1
  69. package/dist/chunks/appushBidAdapter.metadata.js +1 -1
  70. package/dist/chunks/apstreamBidAdapter.metadata.js +1 -1
  71. package/dist/chunks/asoBidAdapter.js +1 -1
  72. package/dist/chunks/audiencerunBidAdapter.metadata.js +1 -1
  73. package/dist/chunks/axisBidAdapter.metadata.js +1 -1
  74. package/dist/chunks/axonixBidAdapter.js +1 -1
  75. package/dist/chunks/azerionedgeRtdProvider.metadata.js +1 -1
  76. package/dist/chunks/beopBidAdapter.js +1 -1
  77. package/dist/chunks/beopBidAdapter.metadata.js +1 -1
  78. package/dist/chunks/betweenBidAdapter.metadata.js +1 -1
  79. package/dist/chunks/bidglassBidAdapter.js +1 -1
  80. package/dist/chunks/bidmaticBidAdapter.metadata.js +1 -1
  81. package/dist/chunks/bidtheatreBidAdapter.metadata.js +1 -1
  82. package/dist/chunks/big-richmediaBidAdapter.js +1 -1
  83. package/dist/chunks/bitmediaBidAdapter.js +1 -1
  84. package/dist/chunks/bliinkBidAdapter.metadata.js +1 -1
  85. package/dist/chunks/blockthroughBidAdapter.js +1 -1
  86. package/dist/chunks/blockthroughBidAdapter.metadata.js +1 -1
  87. package/dist/chunks/blueBidAdapter.metadata.js +1 -1
  88. package/dist/chunks/bmsBidAdapter.metadata.js +1 -1
  89. package/dist/chunks/bmtmBidAdapter.js +1 -1
  90. package/dist/chunks/boldwinBidAdapter.metadata.js +1 -1
  91. package/dist/chunks/bridBidAdapter.js +1 -1
  92. package/dist/chunks/bridBidAdapter.metadata.js +1 -1
  93. package/dist/chunks/bridgewellBidAdapter.js +1 -1
  94. package/dist/chunks/browsiBidAdapter.metadata.js +1 -1
  95. package/dist/chunks/bucksenseBidAdapter.metadata.js +1 -1
  96. package/dist/chunks/carodaBidAdapter.js +1 -1
  97. package/dist/chunks/carodaBidAdapter.metadata.js +1 -1
  98. package/dist/chunks/categoryTranslation.metadata.js +1 -1
  99. package/dist/chunks/ccxBidAdapter.metadata.js +1 -1
  100. package/dist/chunks/ceeIdSystem.metadata.js +1 -1
  101. package/dist/chunks/chromeAiRtdProvider.metadata.js +1 -1
  102. package/dist/chunks/chtnwBidAdapter.js +1 -1
  103. package/dist/chunks/chunk-core.js +1 -1
  104. package/dist/chunks/compassBidAdapter.metadata.js +1 -1
  105. package/dist/chunks/conceptxBidAdapter.metadata.js +1 -1
  106. package/dist/chunks/concertBidAdapter.js +1 -1
  107. package/dist/chunks/connatixBidAdapter.metadata.js +1 -1
  108. package/dist/chunks/connectIdSystem.metadata.js +1 -1
  109. package/dist/chunks/connectadBidAdapter.js +1 -1
  110. package/dist/chunks/connectadBidAdapter.metadata.js +1 -1
  111. package/dist/chunks/consumableBidAdapter.js +1 -1
  112. package/dist/chunks/contentexchangeBidAdapter.metadata.js +1 -1
  113. package/dist/chunks/contxtfulBidAdapter.js +1 -1
  114. package/dist/chunks/conversantBidAdapter.js +1 -1
  115. package/dist/chunks/conversantBidAdapter.metadata.js +1 -1
  116. package/dist/chunks/copper6sspBidAdapter.metadata.js +1 -1
  117. package/dist/chunks/cpmstarBidAdapter.metadata.js +1 -1
  118. package/dist/chunks/craftBidAdapter.js +1 -1
  119. package/dist/chunks/creative-renderer-display.js +1 -1
  120. package/dist/chunks/criteoBidAdapter.js +1 -1
  121. package/dist/chunks/criteoBidAdapter.metadata.js +1 -1
  122. package/dist/chunks/criteoIdSystem.metadata.js +1 -1
  123. package/dist/chunks/cryptoUtils.js +1 -0
  124. package/dist/chunks/cwireBidAdapter.js +1 -1
  125. package/dist/chunks/cwireBidAdapter.metadata.js +1 -1
  126. package/dist/chunks/czechAdIdSystem.metadata.js +1 -1
  127. package/dist/chunks/dailymotionBidAdapter.js +1 -1
  128. package/dist/chunks/dailymotionBidAdapter.metadata.js +1 -1
  129. package/dist/chunks/debugging-standalone.js +1 -1
  130. package/dist/chunks/debugging.metadata.js +1 -1
  131. package/dist/chunks/deepintentBidAdapter.metadata.js +1 -1
  132. package/dist/chunks/deltaprojectsBidAdapter.metadata.js +1 -1
  133. package/dist/chunks/dependencies.json +13 -0
  134. package/dist/chunks/dianomiBidAdapter.metadata.js +1 -1
  135. package/dist/chunks/digitalMatterBidAdapter.metadata.js +1 -1
  136. package/dist/chunks/distroscaleBidAdapter.metadata.js +1 -1
  137. package/dist/chunks/docereeAdManagerBidAdapter.metadata.js +1 -1
  138. package/dist/chunks/docereeBidAdapter.metadata.js +1 -1
  139. package/dist/chunks/dspxBidAdapter.js +1 -1
  140. package/dist/chunks/dspxBidAdapter.metadata.js +1 -1
  141. package/dist/chunks/dxkultureBidAdapter.js +1 -1
  142. package/dist/chunks/e_volutionBidAdapter.metadata.js +1 -1
  143. package/dist/chunks/edge226BidAdapter.metadata.js +1 -1
  144. package/dist/chunks/eplanningBidAdapter.js +1 -1
  145. package/dist/chunks/equativBidAdapter.js +1 -1
  146. package/dist/chunks/equativBidAdapter.metadata.js +1 -1
  147. package/dist/chunks/eskimiBidAdapter.js +1 -1
  148. package/dist/chunks/eskimiBidAdapter.metadata.js +1 -1
  149. package/dist/chunks/etargetBidAdapter.metadata.js +1 -1
  150. package/dist/chunks/euidIdSystem.js +1 -1
  151. package/dist/chunks/euidIdSystem.metadata.js +1 -1
  152. package/dist/chunks/exadsBidAdapter.js +1 -1
  153. package/dist/chunks/exadsBidAdapter.metadata.js +1 -1
  154. package/dist/chunks/excoBidAdapter.js +1 -1
  155. package/dist/chunks/feedadBidAdapter.js +1 -1
  156. package/dist/chunks/feedadBidAdapter.metadata.js +1 -1
  157. package/dist/chunks/finativeBidAdapter.js +1 -1
  158. package/dist/chunks/fwsspBidAdapter.metadata.js +1 -1
  159. package/dist/chunks/gamoshiBidAdapter.metadata.js +1 -1
  160. package/dist/chunks/getintentBidAdapter.js +1 -1
  161. package/dist/chunks/glomexBidAdapter.metadata.js +1 -1
  162. package/dist/chunks/gmosspBidAdapter.js +1 -1
  163. package/dist/chunks/goldbachBidAdapter.metadata.js +1 -1
  164. package/dist/chunks/greenbidsAnalyticsAdapter.js +1 -1
  165. package/dist/chunks/greenbidsBidAdapter.js +1 -1
  166. package/dist/chunks/greenbidsBidAdapter.metadata.js +1 -1
  167. package/dist/chunks/greenbidsRtdProvider.js +1 -1
  168. package/dist/chunks/gridBidAdapter.js +1 -1
  169. package/dist/chunks/gridBidAdapter.metadata.js +1 -1
  170. package/dist/chunks/gumgumBidAdapter.js +1 -1
  171. package/dist/chunks/gumgumBidAdapter.metadata.js +1 -1
  172. package/dist/chunks/h12mediaBidAdapter.js +1 -1
  173. package/dist/chunks/hadronIdSystem.metadata.js +1 -1
  174. package/dist/chunks/hadronRtdProvider.metadata.js +1 -1
  175. package/dist/chunks/holidBidAdapter.metadata.js +1 -1
  176. package/dist/chunks/hybridBidAdapter.metadata.js +1 -1
  177. package/dist/chunks/hypelabBidAdapter.js +1 -1
  178. package/dist/chunks/iasRtdProvider.js +1 -1
  179. package/dist/chunks/id5AnalyticsAdapter.js +1 -1
  180. package/dist/chunks/id5IdSystem.js +1 -1
  181. package/dist/chunks/id5IdSystem.metadata.js +1 -1
  182. package/dist/chunks/identityLinkIdSystem.metadata.js +1 -1
  183. package/dist/chunks/illuminBidAdapter.metadata.js +1 -1
  184. package/dist/chunks/impactifyBidAdapter.metadata.js +1 -1
  185. package/dist/chunks/improvedigitalBidAdapter.js +1 -1
  186. package/dist/chunks/improvedigitalBidAdapter.metadata.js +1 -1
  187. package/dist/chunks/inmobiBidAdapter.js +1 -1
  188. package/dist/chunks/inmobiBidAdapter.metadata.js +1 -1
  189. package/dist/chunks/innityBidAdapter.metadata.js +1 -1
  190. package/dist/chunks/insticatorBidAdapter.js +1 -1
  191. package/dist/chunks/insticatorBidAdapter.metadata.js +1 -1
  192. package/dist/chunks/intentIqAnalyticsAdapter.js +1 -1
  193. package/dist/chunks/intentIqIdSystem.metadata.js +1 -1
  194. package/dist/chunks/invibesBidAdapter.metadata.js +1 -1
  195. package/dist/chunks/ipromBidAdapter.metadata.js +1 -1
  196. package/dist/chunks/ixBidAdapter.js +1 -1
  197. package/dist/chunks/ixBidAdapter.metadata.js +1 -1
  198. package/dist/chunks/jixieBidAdapter.js +1 -1
  199. package/dist/chunks/justIdSystem.metadata.js +1 -1
  200. package/dist/chunks/justpremiumBidAdapter.js +1 -1
  201. package/dist/chunks/justpremiumBidAdapter.metadata.js +1 -1
  202. package/dist/chunks/jwplayerBidAdapter.metadata.js +1 -1
  203. package/dist/chunks/jwplayerRtdProvider.js +1 -1
  204. package/dist/chunks/jwplayerVideoProvider.js +1 -1
  205. package/dist/chunks/kargoBidAdapter.js +1 -1
  206. package/dist/chunks/kargoBidAdapter.metadata.js +1 -1
  207. package/dist/chunks/kimberliteBidAdapter.js +1 -1
  208. package/dist/chunks/kubientBidAdapter.js +1 -1
  209. package/dist/chunks/kubientBidAdapter.metadata.js +1 -1
  210. package/dist/chunks/kueezRtbBidAdapter.metadata.js +1 -1
  211. package/dist/chunks/lassoBidAdapter.js +1 -1
  212. package/dist/chunks/lifestreetBidAdapter.js +1 -1
  213. package/dist/chunks/limelightDigitalBidAdapter.metadata.js +1 -1
  214. package/dist/chunks/liveIntentId.js +1 -1
  215. package/dist/chunks/liveIntentIdSystem.metadata.js +1 -1
  216. package/dist/chunks/liveIntentRtdProvider.metadata.js +1 -1
  217. package/dist/chunks/livewrappedBidAdapter.metadata.js +1 -1
  218. package/dist/chunks/logicadBidAdapter.js +1 -1
  219. package/dist/chunks/loopmeBidAdapter.metadata.js +1 -1
  220. package/dist/chunks/lotamePanoramaIdSystem.metadata.js +1 -1
  221. package/dist/chunks/luceadBidAdapter.js +1 -1
  222. package/dist/chunks/luceadBidAdapter.metadata.js +1 -1
  223. package/dist/chunks/luponmediaBidAdapter.metadata.js +1 -1
  224. package/dist/chunks/mabidderBidAdapter.js +1 -1
  225. package/dist/chunks/madsenseBidAdapter.js +1 -1
  226. package/dist/chunks/madvertiseBidAdapter.metadata.js +1 -1
  227. package/dist/chunks/magniteAnalyticsAdapter.js +1 -1
  228. package/dist/chunks/malltvAnalyticsAdapter.js +1 -1
  229. package/dist/chunks/marsmediaBidAdapter.js +1 -1
  230. package/dist/chunks/marsmediaBidAdapter.metadata.js +1 -1
  231. package/dist/chunks/mediaConsortiumBidAdapter.metadata.js +1 -1
  232. package/dist/chunks/mediaforceBidAdapter.metadata.js +1 -1
  233. package/dist/chunks/mediafuseBidAdapter.js +1 -1
  234. package/dist/chunks/mediafuseBidAdapter.metadata.js +1 -1
  235. package/dist/chunks/mediagoBidAdapter.metadata.js +1 -1
  236. package/dist/chunks/mediakeysBidAdapter.metadata.js +1 -1
  237. package/dist/chunks/medianetBidAdapter.js +1 -1
  238. package/dist/chunks/medianetBidAdapter.metadata.js +1 -1
  239. package/dist/chunks/medianetUtils.js +1 -1
  240. package/dist/chunks/mediasquareBidAdapter.js +1 -1
  241. package/dist/chunks/mediasquareBidAdapter.metadata.js +1 -1
  242. package/dist/chunks/mgidBidAdapter.js +1 -1
  243. package/dist/chunks/mgidBidAdapter.metadata.js +1 -1
  244. package/dist/chunks/mgidRtdProvider.metadata.js +1 -1
  245. package/dist/chunks/mgidXBidAdapter.metadata.js +1 -1
  246. package/dist/chunks/minutemediaBidAdapter.metadata.js +1 -1
  247. package/dist/chunks/missenaBidAdapter.js +1 -1
  248. package/dist/chunks/missenaBidAdapter.metadata.js +1 -1
  249. package/dist/chunks/mobianRtdProvider.metadata.js +1 -1
  250. package/dist/chunks/mobilefuseBidAdapter.js +1 -1
  251. package/dist/chunks/mobilefuseBidAdapter.metadata.js +1 -1
  252. package/dist/chunks/mobkoiBidAdapter.metadata.js +1 -1
  253. package/dist/chunks/mobkoiIdSystem.metadata.js +1 -1
  254. package/dist/chunks/nativeryBidAdapter.metadata.js +1 -1
  255. package/dist/chunks/nativoBidAdapter.metadata.js +1 -1
  256. package/dist/chunks/newspassidBidAdapter.metadata.js +1 -1
  257. package/dist/chunks/nextMillenniumBidAdapter.js +1 -1
  258. package/dist/chunks/nextMillenniumBidAdapter.metadata.js +1 -1
  259. package/dist/chunks/nextrollBidAdapter.metadata.js +1 -1
  260. package/dist/chunks/nexx360BidAdapter.metadata.js +1 -1
  261. package/dist/chunks/nexx360Utils.js +1 -1
  262. package/dist/chunks/nobidAnalyticsAdapter.js +1 -1
  263. package/dist/chunks/nobidBidAdapter.js +1 -1
  264. package/dist/chunks/nobidBidAdapter.metadata.js +1 -1
  265. package/dist/chunks/nodalsAiRtdProvider.js +1 -1
  266. package/dist/chunks/nodalsAiRtdProvider.metadata.js +1 -1
  267. package/dist/chunks/novatiqIdSystem.metadata.js +1 -1
  268. package/dist/chunks/oguryBidAdapter.js +1 -1
  269. package/dist/chunks/oguryBidAdapter.metadata.js +1 -1
  270. package/dist/chunks/omsBidAdapter.metadata.js +1 -1
  271. package/dist/chunks/onetagBidAdapter.js +1 -1
  272. package/dist/chunks/onetagBidAdapter.metadata.js +1 -1
  273. package/dist/chunks/ooloAnalyticsAdapter.js +1 -1
  274. package/dist/chunks/openwebBidAdapter.metadata.js +1 -1
  275. package/dist/chunks/openxBidAdapter.js +1 -1
  276. package/dist/chunks/openxBidAdapter.metadata.js +1 -1
  277. package/dist/chunks/operaadsBidAdapter.metadata.js +1 -1
  278. package/dist/chunks/optidigitalBidAdapter.js +1 -1
  279. package/dist/chunks/optidigitalBidAdapter.metadata.js +1 -1
  280. package/dist/chunks/optoutBidAdapter.metadata.js +1 -1
  281. package/dist/chunks/orbidderBidAdapter.js +1 -1
  282. package/dist/chunks/orbidderBidAdapter.metadata.js +1 -1
  283. package/dist/chunks/outbrainBidAdapter.js +1 -1
  284. package/dist/chunks/outbrainBidAdapter.metadata.js +1 -1
  285. package/dist/chunks/ozoneBidAdapter.metadata.js +1 -1
  286. package/dist/chunks/pairIdSystem.metadata.js +1 -1
  287. package/dist/chunks/performaxBidAdapter.metadata.js +1 -1
  288. package/dist/chunks/pgamsspBidAdapter.metadata.js +1 -1
  289. package/dist/chunks/pixfutureBidAdapter.js +1 -1
  290. package/dist/chunks/pixfutureBidAdapter.metadata.js +1 -1
  291. package/dist/chunks/playdigoBidAdapter.metadata.js +1 -1
  292. package/dist/chunks/prebid-core.metadata.js +1 -1
  293. package/dist/chunks/precisoBidAdapter.metadata.js +1 -1
  294. package/dist/chunks/prismaBidAdapter.metadata.js +1 -1
  295. package/dist/chunks/programmaticXBidAdapter.metadata.js +1 -1
  296. package/dist/chunks/proxistoreBidAdapter.metadata.js +1 -1
  297. package/dist/chunks/publinkIdSystem.js +1 -1
  298. package/dist/chunks/publinkIdSystem.metadata.js +1 -1
  299. package/dist/chunks/pubmaticAnalyticsAdapter.js +1 -1
  300. package/dist/chunks/pubmaticBidAdapter.js +1 -1
  301. package/dist/chunks/pubmaticBidAdapter.metadata.js +1 -1
  302. package/dist/chunks/pubmaticIdSystem.metadata.js +1 -1
  303. package/dist/chunks/pubwiseAnalyticsAdapter.js +1 -1
  304. package/dist/chunks/pubxaiAnalyticsAdapter.js +1 -1
  305. package/dist/chunks/pulsepointBidAdapter.js +1 -1
  306. package/dist/chunks/pulsepointBidAdapter.metadata.js +1 -1
  307. package/dist/chunks/pwbidBidAdapter.metadata.js +1 -1
  308. package/dist/chunks/pxyzBidAdapter.js +1 -1
  309. package/dist/chunks/qtBidAdapter.metadata.js +1 -1
  310. package/dist/chunks/quantcastBidAdapter.js +1 -1
  311. package/dist/chunks/quantcastBidAdapter.metadata.js +1 -1
  312. package/dist/chunks/quantcastIdSystem.metadata.js +1 -1
  313. package/dist/chunks/r2b2BidAdapter.metadata.js +1 -1
  314. package/dist/chunks/raynRtdProvider.metadata.js +1 -1
  315. package/dist/chunks/readpeakBidAdapter.js +1 -1
  316. package/dist/chunks/readpeakBidAdapter.metadata.js +1 -1
  317. package/dist/chunks/relaidoBidAdapter.js +1 -1
  318. package/dist/chunks/relayBidAdapter.metadata.js +1 -1
  319. package/dist/chunks/relevantdigitalBidAdapter.metadata.js +1 -1
  320. package/dist/chunks/resetdigitalBidAdapter.metadata.js +1 -1
  321. package/dist/chunks/responsiveAdsBidAdapter.metadata.js +1 -1
  322. package/dist/chunks/retailspotBidAdapter.js +1 -1
  323. package/dist/chunks/retailspotBidAdapter.metadata.js +1 -1
  324. package/dist/chunks/revcontentBidAdapter.metadata.js +1 -1
  325. package/dist/chunks/rhythmoneBidAdapter.js +1 -1
  326. package/dist/chunks/rhythmoneBidAdapter.metadata.js +1 -1
  327. package/dist/chunks/richaudienceBidAdapter.metadata.js +1 -1
  328. package/dist/chunks/riseBidAdapter.metadata.js +1 -1
  329. package/dist/chunks/riseUtils.js +1 -1
  330. package/dist/chunks/rixengineBidAdapter.metadata.js +1 -1
  331. package/dist/chunks/rtbhouseBidAdapter.metadata.js +1 -1
  332. package/dist/chunks/rubiconBidAdapter.js +1 -1
  333. package/dist/chunks/rubiconBidAdapter.metadata.js +1 -1
  334. package/dist/chunks/rumbleBidAdapter.js +1 -0
  335. package/dist/chunks/rumbleBidAdapter.metadata.js +1 -0
  336. package/dist/chunks/scatteredBidAdapter.metadata.js +1 -1
  337. package/dist/chunks/seedingAllianceBidAdapter.js +1 -1
  338. package/dist/chunks/seedingAllianceBidAdapter.metadata.js +1 -1
  339. package/dist/chunks/seedtagBidAdapter.js +1 -1
  340. package/dist/chunks/seedtagBidAdapter.metadata.js +1 -1
  341. package/dist/chunks/semantiqRtdProvider.metadata.js +1 -1
  342. package/dist/chunks/setupadBidAdapter.metadata.js +1 -1
  343. package/dist/chunks/sevioBidAdapter.js +1 -0
  344. package/dist/chunks/sevioBidAdapter.metadata.js +1 -0
  345. package/dist/chunks/sharedIdSystem.metadata.js +1 -1
  346. package/dist/chunks/sharethroughAnalyticsAdapter.js +1 -1
  347. package/dist/chunks/sharethroughBidAdapter.js +1 -1
  348. package/dist/chunks/sharethroughBidAdapter.metadata.js +1 -1
  349. package/dist/chunks/showheroes-bsBidAdapter.js +1 -1
  350. package/dist/chunks/showheroes-bsBidAdapter.metadata.js +1 -1
  351. package/dist/chunks/silvermobBidAdapter.metadata.js +1 -1
  352. package/dist/chunks/sirdataRtdProvider.metadata.js +1 -1
  353. package/dist/chunks/slimcutBidAdapter.metadata.js +1 -1
  354. package/dist/chunks/smaatoBidAdapter.js +1 -1
  355. package/dist/chunks/smaatoBidAdapter.metadata.js +1 -1
  356. package/dist/chunks/smartadserverBidAdapter.js +1 -1
  357. package/dist/chunks/smartadserverBidAdapter.metadata.js +1 -1
  358. package/dist/chunks/smartxBidAdapter.js +1 -1
  359. package/dist/chunks/smartxBidAdapter.metadata.js +1 -1
  360. package/dist/chunks/smartyadsBidAdapter.metadata.js +1 -1
  361. package/dist/chunks/smilewantedBidAdapter.js +1 -1
  362. package/dist/chunks/smilewantedBidAdapter.metadata.js +1 -1
  363. package/dist/chunks/snigelBidAdapter.js +1 -1
  364. package/dist/chunks/snigelBidAdapter.metadata.js +1 -1
  365. package/dist/chunks/sonaradsBidAdapter.js +1 -1
  366. package/dist/chunks/sonaradsBidAdapter.metadata.js +1 -1
  367. package/dist/chunks/sonobiBidAdapter.js +1 -1
  368. package/dist/chunks/sonobiBidAdapter.metadata.js +1 -1
  369. package/dist/chunks/sovrnBidAdapter.js +1 -1
  370. package/dist/chunks/sovrnBidAdapter.metadata.js +1 -1
  371. package/dist/chunks/sparteoBidAdapter.js +1 -1
  372. package/dist/chunks/sparteoBidAdapter.metadata.js +1 -1
  373. package/dist/chunks/ssmasBidAdapter.metadata.js +1 -1
  374. package/dist/chunks/sspBCBidAdapter.js +1 -1
  375. package/dist/chunks/sspBCBidAdapter.metadata.js +1 -1
  376. package/dist/chunks/stackadaptBidAdapter.metadata.js +1 -1
  377. package/dist/chunks/startioBidAdapter.metadata.js +1 -1
  378. package/dist/chunks/stroeerCoreBidAdapter.metadata.js +1 -1
  379. package/dist/chunks/stvBidAdapter.js +1 -1
  380. package/dist/chunks/stvBidAdapter.metadata.js +1 -1
  381. package/dist/chunks/sublimeBidAdapter.js +1 -1
  382. package/dist/chunks/sublimeBidAdapter.metadata.js +1 -1
  383. package/dist/chunks/taboolaBidAdapter.js +1 -1
  384. package/dist/chunks/taboolaBidAdapter.metadata.js +1 -1
  385. package/dist/chunks/taboolaIdSystem.metadata.js +1 -1
  386. package/dist/chunks/tappxBidAdapter.js +1 -1
  387. package/dist/chunks/tappxBidAdapter.metadata.js +1 -1
  388. package/dist/chunks/targetVideoBidAdapter.js +1 -1
  389. package/dist/chunks/targetVideoBidAdapter.metadata.js +1 -1
  390. package/dist/chunks/teadsBidAdapter.js +1 -1
  391. package/dist/chunks/teadsBidAdapter.metadata.js +1 -1
  392. package/dist/chunks/teadsIdSystem.metadata.js +1 -1
  393. package/dist/chunks/tealBidAdapter.metadata.js +1 -1
  394. package/dist/chunks/terceptAnalyticsAdapter.js +1 -1
  395. package/dist/chunks/themoneytizerBidAdapter.js +1 -1
  396. package/dist/chunks/themoneytizerBidAdapter.metadata.js +1 -1
  397. package/dist/chunks/tncIdSystem.metadata.js +1 -1
  398. package/dist/chunks/topicsFpdModule.metadata.js +1 -1
  399. package/dist/chunks/trionBidAdapter.js +1 -1
  400. package/dist/chunks/tripleliftBidAdapter.js +1 -1
  401. package/dist/chunks/tripleliftBidAdapter.metadata.js +1 -1
  402. package/dist/chunks/ttdBidAdapter.js +1 -1
  403. package/dist/chunks/ttdBidAdapter.metadata.js +1 -1
  404. package/dist/chunks/twistDigitalBidAdapter.metadata.js +1 -1
  405. package/dist/chunks/ucfunnelAnalyticsAdapter.js +1 -1
  406. package/dist/chunks/uid2IdSystem.js +1 -1
  407. package/dist/chunks/underdogmediaBidAdapter.js +1 -1
  408. package/dist/chunks/underdogmediaBidAdapter.metadata.js +1 -1
  409. package/dist/chunks/undertoneBidAdapter.js +1 -1
  410. package/dist/chunks/undertoneBidAdapter.metadata.js +1 -1
  411. package/dist/chunks/unifiedIdSystem.metadata.js +1 -1
  412. package/dist/chunks/unrulyBidAdapter.js +1 -1
  413. package/dist/chunks/unrulyBidAdapter.metadata.js +1 -1
  414. package/dist/chunks/userId.js +1 -1
  415. package/dist/chunks/userId.metadata.js +1 -1
  416. package/dist/chunks/validationFpdModule.metadata.js +1 -1
  417. package/dist/chunks/vidazooBidAdapter.metadata.js +1 -1
  418. package/dist/chunks/vidazooUtils.js +1 -1
  419. package/dist/chunks/videobyteBidAdapter.js +1 -1
  420. package/dist/chunks/vidoomyBidAdapter.metadata.js +1 -1
  421. package/dist/chunks/viewdeosDXBidAdapter.metadata.js +1 -1
  422. package/dist/chunks/viouslyBidAdapter.metadata.js +1 -1
  423. package/dist/chunks/visxBidAdapter.js +1 -1
  424. package/dist/chunks/visxBidAdapter.metadata.js +1 -1
  425. package/dist/chunks/vlybyBidAdapter.metadata.js +1 -1
  426. package/dist/chunks/voxBidAdapter.metadata.js +1 -1
  427. package/dist/chunks/vrtcalBidAdapter.metadata.js +1 -1
  428. package/dist/chunks/vuukleBidAdapter.js +1 -1
  429. package/dist/chunks/vuukleBidAdapter.metadata.js +1 -1
  430. package/dist/chunks/weboramaRtdProvider.js +1 -1
  431. package/dist/chunks/weboramaRtdProvider.metadata.js +1 -1
  432. package/dist/chunks/welectBidAdapter.metadata.js +1 -1
  433. package/dist/chunks/widespaceBidAdapter.js +1 -1
  434. package/dist/chunks/winrBidAdapter.js +1 -1
  435. package/dist/chunks/yahooAdsBidAdapter.js +1 -1
  436. package/dist/chunks/yahooAdsBidAdapter.metadata.js +1 -1
  437. package/dist/chunks/yandexBidAdapter.js +1 -1
  438. package/dist/chunks/yieldlabBidAdapter.metadata.js +1 -1
  439. package/dist/chunks/yieldliftBidAdapter.metadata.js +1 -1
  440. package/dist/chunks/yieldloveBidAdapter.metadata.js +1 -1
  441. package/dist/chunks/yieldmoBidAdapter.js +1 -1
  442. package/dist/chunks/yieldmoBidAdapter.metadata.js +1 -1
  443. package/dist/chunks/yieldoneAnalyticsAdapter.js +1 -1
  444. package/dist/chunks/zeotapIdPlusIdSystem.metadata.js +1 -1
  445. package/dist/chunks/zeta_globalBidAdapter.metadata.js +1 -1
  446. package/dist/chunks/zeta_global_sspBidAdapter.metadata.js +1 -1
  447. package/dist/not-for-prod/prebid.js +443 -438
  448. package/dist/src/creative/renderers/display/renderer.js +3 -4
  449. package/dist/src/creative/renderers/display/renderer.js.map +1 -1
  450. package/dist/src/libraries/adagioUtils/adagioUtils.js +1 -1
  451. package/dist/src/libraries/analyticsAdapter/AnalyticsAdapter.js.map +1 -1
  452. package/dist/src/libraries/appnexusUtils/anKeywords.js +15 -1
  453. package/dist/src/libraries/appnexusUtils/anKeywords.js.map +1 -1
  454. package/dist/src/libraries/consentManagement/cmUtils.js.map +1 -1
  455. package/dist/src/libraries/creative-renderer-display/renderer.d.ts +1 -1
  456. package/dist/src/libraries/creative-renderer-display/renderer.js +1 -1
  457. package/dist/src/libraries/creative-renderer-display/renderer.js.map +1 -1
  458. package/dist/src/libraries/cryptoUtils/wallets.js +14 -0
  459. package/dist/src/libraries/cryptoUtils/wallets.js.map +1 -0
  460. package/dist/src/libraries/dspxUtils/bidderUtils.js.map +1 -1
  461. package/dist/src/libraries/impUtils.js +36 -0
  462. package/dist/src/libraries/impUtils.js.map +1 -0
  463. package/dist/src/libraries/liveIntentId/externalIdSystem.js +1 -1
  464. package/dist/src/libraries/liveIntentId/idSystem.js +1 -1
  465. package/dist/src/libraries/liveIntentId/shared.js +20 -0
  466. package/dist/src/libraries/liveIntentId/shared.js.map +1 -1
  467. package/dist/src/libraries/medianetUtils/constants.js +1 -1
  468. package/dist/src/libraries/nexx360Utils/index.js +1 -1
  469. package/dist/src/libraries/nexx360Utils/index.js.map +1 -1
  470. package/dist/src/libraries/ortbConverter/converter.js.map +1 -1
  471. package/dist/src/libraries/riseUtils/index.js +1 -1
  472. package/dist/src/libraries/vidazooUtils/bidderUtils.js +1 -1
  473. package/dist/src/libraries/video/constants/events.js.map +1 -1
  474. package/dist/src/metadata/modules/33acrossBidAdapter.js +1 -1
  475. package/dist/src/metadata/modules/33acrossIdSystem.js +1 -1
  476. package/dist/src/metadata/modules/acuityadsBidAdapter.js +1 -1
  477. package/dist/src/metadata/modules/adagioBidAdapter.js +1 -1
  478. package/dist/src/metadata/modules/adagioRtdProvider.js +1 -1
  479. package/dist/src/metadata/modules/addefendBidAdapter.js +1 -1
  480. package/dist/src/metadata/modules/adfBidAdapter.js +1 -1
  481. package/dist/src/metadata/modules/adfusionBidAdapter.js +1 -1
  482. package/dist/src/metadata/modules/adheseBidAdapter.js +1 -1
  483. package/dist/src/metadata/modules/adkernelAdnBidAdapter.js +1 -1
  484. package/dist/src/metadata/modules/adkernelBidAdapter.js +1 -1
  485. package/dist/src/metadata/modules/admaticBidAdapter.js +1 -1
  486. package/dist/src/metadata/modules/admixerBidAdapter.js +1 -1
  487. package/dist/src/metadata/modules/admixerIdSystem.js +1 -1
  488. package/dist/src/metadata/modules/adnowBidAdapter.js +1 -1
  489. package/dist/src/metadata/modules/adnuntiusBidAdapter.js +1 -1
  490. package/dist/src/metadata/modules/adnuntiusRtdProvider.js +1 -1
  491. package/dist/src/metadata/modules/adotBidAdapter.js +1 -1
  492. package/dist/src/metadata/modules/adponeBidAdapter.js +1 -1
  493. package/dist/src/metadata/modules/adqueryBidAdapter.js +1 -1
  494. package/dist/src/metadata/modules/adqueryIdSystem.js +1 -1
  495. package/dist/src/metadata/modules/adrinoBidAdapter.js +1 -1
  496. package/dist/src/metadata/modules/ads_interactiveBidAdapter.js +1 -1
  497. package/dist/src/metadata/modules/adtargetBidAdapter.js +1 -1
  498. package/dist/src/metadata/modules/adtelligentBidAdapter.js +1 -1
  499. package/dist/src/metadata/modules/adtelligentIdSystem.js +1 -1
  500. package/dist/src/metadata/modules/aduptechBidAdapter.js +1 -1
  501. package/dist/src/metadata/modules/adyoulikeBidAdapter.js +1 -1
  502. package/dist/src/metadata/modules/aidemBidAdapter.js +1 -1
  503. package/dist/src/metadata/modules/airgridRtdProvider.js +1 -1
  504. package/dist/src/metadata/modules/alkimiBidAdapter.js +1 -1
  505. package/dist/src/metadata/modules/ampliffyBidAdapter.js +1 -1
  506. package/dist/src/metadata/modules/amxBidAdapter.js +1 -1
  507. package/dist/src/metadata/modules/amxIdSystem.js +1 -1
  508. package/dist/src/metadata/modules/aniviewBidAdapter.js +1 -1
  509. package/dist/src/metadata/modules/anonymisedRtdProvider.js +1 -1
  510. package/dist/src/metadata/modules/appierBidAdapter.js +1 -1
  511. package/dist/src/metadata/modules/appnexusBidAdapter.js +1 -1
  512. package/dist/src/metadata/modules/appushBidAdapter.js +1 -1
  513. package/dist/src/metadata/modules/apstreamBidAdapter.js +1 -1
  514. package/dist/src/metadata/modules/audiencerunBidAdapter.js +1 -1
  515. package/dist/src/metadata/modules/axisBidAdapter.js +1 -1
  516. package/dist/src/metadata/modules/azerionedgeRtdProvider.js +1 -1
  517. package/dist/src/metadata/modules/beopBidAdapter.js +1 -1
  518. package/dist/src/metadata/modules/betweenBidAdapter.js +1 -1
  519. package/dist/src/metadata/modules/bidmaticBidAdapter.js +1 -1
  520. package/dist/src/metadata/modules/bidtheatreBidAdapter.js +1 -1
  521. package/dist/src/metadata/modules/bliinkBidAdapter.js +1 -1
  522. package/dist/src/metadata/modules/blockthroughBidAdapter.js +1 -1
  523. package/dist/src/metadata/modules/blueBidAdapter.js +1 -1
  524. package/dist/src/metadata/modules/bmsBidAdapter.js +1 -1
  525. package/dist/src/metadata/modules/boldwinBidAdapter.js +1 -1
  526. package/dist/src/metadata/modules/bridBidAdapter.js +1 -1
  527. package/dist/src/metadata/modules/browsiBidAdapter.js +1 -1
  528. package/dist/src/metadata/modules/bucksenseBidAdapter.js +1 -1
  529. package/dist/src/metadata/modules/carodaBidAdapter.js +1 -1
  530. package/dist/src/metadata/modules/categoryTranslation.js +1 -1
  531. package/dist/src/metadata/modules/ccxBidAdapter.js +1 -1
  532. package/dist/src/metadata/modules/ceeIdSystem.js +1 -1
  533. package/dist/src/metadata/modules/chromeAiRtdProvider.js +1 -1
  534. package/dist/src/metadata/modules/compassBidAdapter.js +1 -1
  535. package/dist/src/metadata/modules/conceptxBidAdapter.js +1 -1
  536. package/dist/src/metadata/modules/connatixBidAdapter.js +1 -1
  537. package/dist/src/metadata/modules/connectIdSystem.js +1 -1
  538. package/dist/src/metadata/modules/connectadBidAdapter.js +1 -1
  539. package/dist/src/metadata/modules/contentexchangeBidAdapter.js +1 -1
  540. package/dist/src/metadata/modules/conversantBidAdapter.js +1 -1
  541. package/dist/src/metadata/modules/copper6sspBidAdapter.js +1 -1
  542. package/dist/src/metadata/modules/cpmstarBidAdapter.js +1 -1
  543. package/dist/src/metadata/modules/criteoBidAdapter.js +1 -1
  544. package/dist/src/metadata/modules/criteoIdSystem.js +1 -1
  545. package/dist/src/metadata/modules/cwireBidAdapter.js +1 -1
  546. package/dist/src/metadata/modules/czechAdIdSystem.js +1 -1
  547. package/dist/src/metadata/modules/dailymotionBidAdapter.js +1 -1
  548. package/dist/src/metadata/modules/debugging.js +1 -1
  549. package/dist/src/metadata/modules/deepintentBidAdapter.js +1 -1
  550. package/dist/src/metadata/modules/deltaprojectsBidAdapter.js +1 -1
  551. package/dist/src/metadata/modules/dianomiBidAdapter.js +1 -1
  552. package/dist/src/metadata/modules/digitalMatterBidAdapter.js +1 -1
  553. package/dist/src/metadata/modules/distroscaleBidAdapter.js +1 -1
  554. package/dist/src/metadata/modules/docereeAdManagerBidAdapter.js +1 -1
  555. package/dist/src/metadata/modules/docereeBidAdapter.js +1 -1
  556. package/dist/src/metadata/modules/dspxBidAdapter.js +1 -1
  557. package/dist/src/metadata/modules/e_volutionBidAdapter.js +1 -1
  558. package/dist/src/metadata/modules/edge226BidAdapter.js +1 -1
  559. package/dist/src/metadata/modules/equativBidAdapter.js +1 -1
  560. package/dist/src/metadata/modules/eskimiBidAdapter.js +1 -1
  561. package/dist/src/metadata/modules/etargetBidAdapter.js +1 -1
  562. package/dist/src/metadata/modules/euidIdSystem.js +1 -1
  563. package/dist/src/metadata/modules/exadsBidAdapter.js +1 -1
  564. package/dist/src/metadata/modules/feedadBidAdapter.js +1 -1
  565. package/dist/src/metadata/modules/fwsspBidAdapter.js +1 -1
  566. package/dist/src/metadata/modules/gamoshiBidAdapter.js +1 -1
  567. package/dist/src/metadata/modules/glomexBidAdapter.js +1 -1
  568. package/dist/src/metadata/modules/goldbachBidAdapter.js +1 -1
  569. package/dist/src/metadata/modules/greenbidsBidAdapter.js +1 -1
  570. package/dist/src/metadata/modules/gridBidAdapter.js +1 -1
  571. package/dist/src/metadata/modules/gumgumBidAdapter.js +1 -1
  572. package/dist/src/metadata/modules/hadronIdSystem.js +1 -1
  573. package/dist/src/metadata/modules/hadronRtdProvider.js +1 -1
  574. package/dist/src/metadata/modules/holidBidAdapter.js +1 -1
  575. package/dist/src/metadata/modules/hybridBidAdapter.js +1 -1
  576. package/dist/src/metadata/modules/id5IdSystem.js +1 -1
  577. package/dist/src/metadata/modules/identityLinkIdSystem.js +1 -1
  578. package/dist/src/metadata/modules/illuminBidAdapter.js +1 -1
  579. package/dist/src/metadata/modules/impactifyBidAdapter.js +1 -1
  580. package/dist/src/metadata/modules/improvedigitalBidAdapter.js +1 -1
  581. package/dist/src/metadata/modules/inmobiBidAdapter.js +1 -1
  582. package/dist/src/metadata/modules/innityBidAdapter.js +1 -1
  583. package/dist/src/metadata/modules/insticatorBidAdapter.js +1 -1
  584. package/dist/src/metadata/modules/intentIqIdSystem.js +1 -1
  585. package/dist/src/metadata/modules/invibesBidAdapter.js +1 -1
  586. package/dist/src/metadata/modules/ipromBidAdapter.js +1 -1
  587. package/dist/src/metadata/modules/ixBidAdapter.js +1 -1
  588. package/dist/src/metadata/modules/justIdSystem.js +1 -1
  589. package/dist/src/metadata/modules/justpremiumBidAdapter.js +1 -1
  590. package/dist/src/metadata/modules/jwplayerBidAdapter.js +1 -1
  591. package/dist/src/metadata/modules/kargoBidAdapter.js +1 -1
  592. package/dist/src/metadata/modules/kubientBidAdapter.js +1 -1
  593. package/dist/src/metadata/modules/kueezRtbBidAdapter.js +1 -1
  594. package/dist/src/metadata/modules/limelightDigitalBidAdapter.js +1 -1
  595. package/dist/src/metadata/modules/liveIntentIdSystem.js +1 -1
  596. package/dist/src/metadata/modules/liveIntentRtdProvider.js +1 -1
  597. package/dist/src/metadata/modules/livewrappedBidAdapter.js +1 -1
  598. package/dist/src/metadata/modules/loopmeBidAdapter.js +1 -1
  599. package/dist/src/metadata/modules/lotamePanoramaIdSystem.js +1 -1
  600. package/dist/src/metadata/modules/luceadBidAdapter.js +1 -1
  601. package/dist/src/metadata/modules/luponmediaBidAdapter.js +1 -1
  602. package/dist/src/metadata/modules/madvertiseBidAdapter.js +1 -1
  603. package/dist/src/metadata/modules/marsmediaBidAdapter.js +1 -1
  604. package/dist/src/metadata/modules/mediaConsortiumBidAdapter.js +1 -1
  605. package/dist/src/metadata/modules/mediaforceBidAdapter.js +1 -1
  606. package/dist/src/metadata/modules/mediafuseBidAdapter.js +1 -1
  607. package/dist/src/metadata/modules/mediagoBidAdapter.js +1 -1
  608. package/dist/src/metadata/modules/mediakeysBidAdapter.js +1 -1
  609. package/dist/src/metadata/modules/medianetBidAdapter.js +1 -1
  610. package/dist/src/metadata/modules/mediasquareBidAdapter.js +1 -1
  611. package/dist/src/metadata/modules/mgidBidAdapter.js +1 -1
  612. package/dist/src/metadata/modules/mgidRtdProvider.js +1 -1
  613. package/dist/src/metadata/modules/mgidXBidAdapter.js +1 -1
  614. package/dist/src/metadata/modules/minutemediaBidAdapter.js +1 -1
  615. package/dist/src/metadata/modules/missenaBidAdapter.js +1 -1
  616. package/dist/src/metadata/modules/mobianRtdProvider.js +1 -1
  617. package/dist/src/metadata/modules/mobilefuseBidAdapter.js +1 -1
  618. package/dist/src/metadata/modules/mobkoiBidAdapter.js +1 -1
  619. package/dist/src/metadata/modules/mobkoiIdSystem.js +1 -1
  620. package/dist/src/metadata/modules/nativeryBidAdapter.js +1 -1
  621. package/dist/src/metadata/modules/nativoBidAdapter.js +1 -1
  622. package/dist/src/metadata/modules/newspassidBidAdapter.js +1 -1
  623. package/dist/src/metadata/modules/nextMillenniumBidAdapter.js +1 -1
  624. package/dist/src/metadata/modules/nextrollBidAdapter.js +1 -1
  625. package/dist/src/metadata/modules/nexx360BidAdapter.js +1 -1
  626. package/dist/src/metadata/modules/nobidBidAdapter.js +1 -1
  627. package/dist/src/metadata/modules/nodalsAiRtdProvider.js +1 -1
  628. package/dist/src/metadata/modules/novatiqIdSystem.js +1 -1
  629. package/dist/src/metadata/modules/oguryBidAdapter.js +1 -1
  630. package/dist/src/metadata/modules/omsBidAdapter.js +1 -1
  631. package/dist/src/metadata/modules/onetagBidAdapter.js +1 -1
  632. package/dist/src/metadata/modules/openwebBidAdapter.js +1 -1
  633. package/dist/src/metadata/modules/openxBidAdapter.js +1 -1
  634. package/dist/src/metadata/modules/operaadsBidAdapter.js +1 -1
  635. package/dist/src/metadata/modules/optidigitalBidAdapter.js +1 -1
  636. package/dist/src/metadata/modules/optoutBidAdapter.js +1 -1
  637. package/dist/src/metadata/modules/orbidderBidAdapter.js +1 -1
  638. package/dist/src/metadata/modules/outbrainBidAdapter.js +1 -1
  639. package/dist/src/metadata/modules/ozoneBidAdapter.js +1 -1
  640. package/dist/src/metadata/modules/pairIdSystem.js +1 -1
  641. package/dist/src/metadata/modules/performaxBidAdapter.js +1 -1
  642. package/dist/src/metadata/modules/pgamsspBidAdapter.js +1 -1
  643. package/dist/src/metadata/modules/pixfutureBidAdapter.js +1 -1
  644. package/dist/src/metadata/modules/playdigoBidAdapter.js +1 -1
  645. package/dist/src/metadata/modules/prebid-core.js +1 -1
  646. package/dist/src/metadata/modules/precisoBidAdapter.js +1 -1
  647. package/dist/src/metadata/modules/prismaBidAdapter.js +1 -1
  648. package/dist/src/metadata/modules/programmaticXBidAdapter.js +1 -1
  649. package/dist/src/metadata/modules/proxistoreBidAdapter.js +1 -1
  650. package/dist/src/metadata/modules/publinkIdSystem.js +1 -1
  651. package/dist/src/metadata/modules/pubmaticBidAdapter.js +1 -1
  652. package/dist/src/metadata/modules/pubmaticIdSystem.js +1 -1
  653. package/dist/src/metadata/modules/pulsepointBidAdapter.js +1 -1
  654. package/dist/src/metadata/modules/pwbidBidAdapter.js +1 -1
  655. package/dist/src/metadata/modules/qtBidAdapter.js +1 -1
  656. package/dist/src/metadata/modules/quantcastBidAdapter.js +1 -1
  657. package/dist/src/metadata/modules/quantcastIdSystem.js +1 -1
  658. package/dist/src/metadata/modules/r2b2BidAdapter.js +1 -1
  659. package/dist/src/metadata/modules/raynRtdProvider.js +1 -1
  660. package/dist/src/metadata/modules/readpeakBidAdapter.js +1 -1
  661. package/dist/src/metadata/modules/relayBidAdapter.js +1 -1
  662. package/dist/src/metadata/modules/relevantdigitalBidAdapter.js +1 -1
  663. package/dist/src/metadata/modules/resetdigitalBidAdapter.js +1 -1
  664. package/dist/src/metadata/modules/responsiveAdsBidAdapter.js +1 -1
  665. package/dist/src/metadata/modules/retailspotBidAdapter.js +1 -1
  666. package/dist/src/metadata/modules/revcontentBidAdapter.js +1 -1
  667. package/dist/src/metadata/modules/rhythmoneBidAdapter.js +1 -1
  668. package/dist/src/metadata/modules/richaudienceBidAdapter.js +1 -1
  669. package/dist/src/metadata/modules/riseBidAdapter.js +1 -1
  670. package/dist/src/metadata/modules/rixengineBidAdapter.js +1 -1
  671. package/dist/src/metadata/modules/rtbhouseBidAdapter.js +1 -1
  672. package/dist/src/metadata/modules/rubiconBidAdapter.js +1 -1
  673. package/dist/src/metadata/modules/rumbleBidAdapter.js +2 -0
  674. package/dist/src/metadata/modules/scatteredBidAdapter.js +1 -1
  675. package/dist/src/metadata/modules/seedingAllianceBidAdapter.js +1 -1
  676. package/dist/src/metadata/modules/seedtagBidAdapter.js +1 -1
  677. package/dist/src/metadata/modules/semantiqRtdProvider.js +1 -1
  678. package/dist/src/metadata/modules/setupadBidAdapter.js +1 -1
  679. package/dist/src/metadata/modules/sevioBidAdapter.js +2 -0
  680. package/dist/src/metadata/modules/sharedIdSystem.js +1 -1
  681. package/dist/src/metadata/modules/sharethroughBidAdapter.js +1 -1
  682. package/dist/src/metadata/modules/showheroes-bsBidAdapter.js +1 -1
  683. package/dist/src/metadata/modules/silvermobBidAdapter.js +1 -1
  684. package/dist/src/metadata/modules/sirdataRtdProvider.js +1 -1
  685. package/dist/src/metadata/modules/slimcutBidAdapter.js +1 -1
  686. package/dist/src/metadata/modules/smaatoBidAdapter.js +1 -1
  687. package/dist/src/metadata/modules/smartadserverBidAdapter.js +1 -1
  688. package/dist/src/metadata/modules/smartxBidAdapter.js +1 -1
  689. package/dist/src/metadata/modules/smartyadsBidAdapter.js +1 -1
  690. package/dist/src/metadata/modules/smilewantedBidAdapter.js +1 -1
  691. package/dist/src/metadata/modules/snigelBidAdapter.js +1 -1
  692. package/dist/src/metadata/modules/sonaradsBidAdapter.js +1 -1
  693. package/dist/src/metadata/modules/sonobiBidAdapter.js +1 -1
  694. package/dist/src/metadata/modules/sovrnBidAdapter.js +1 -1
  695. package/dist/src/metadata/modules/sparteoBidAdapter.js +1 -1
  696. package/dist/src/metadata/modules/ssmasBidAdapter.js +1 -1
  697. package/dist/src/metadata/modules/sspBCBidAdapter.js +1 -1
  698. package/dist/src/metadata/modules/stackadaptBidAdapter.js +1 -1
  699. package/dist/src/metadata/modules/startioBidAdapter.js +1 -1
  700. package/dist/src/metadata/modules/stroeerCoreBidAdapter.js +1 -1
  701. package/dist/src/metadata/modules/stvBidAdapter.js +1 -1
  702. package/dist/src/metadata/modules/sublimeBidAdapter.js +1 -1
  703. package/dist/src/metadata/modules/taboolaBidAdapter.js +1 -1
  704. package/dist/src/metadata/modules/taboolaIdSystem.js +1 -1
  705. package/dist/src/metadata/modules/tappxBidAdapter.js +1 -1
  706. package/dist/src/metadata/modules/targetVideoBidAdapter.js +1 -1
  707. package/dist/src/metadata/modules/teadsBidAdapter.js +1 -1
  708. package/dist/src/metadata/modules/teadsIdSystem.js +1 -1
  709. package/dist/src/metadata/modules/tealBidAdapter.js +1 -1
  710. package/dist/src/metadata/modules/themoneytizerBidAdapter.js +1 -1
  711. package/dist/src/metadata/modules/tncIdSystem.js +1 -1
  712. package/dist/src/metadata/modules/topicsFpdModule.js +1 -1
  713. package/dist/src/metadata/modules/tripleliftBidAdapter.js +1 -1
  714. package/dist/src/metadata/modules/ttdBidAdapter.js +1 -1
  715. package/dist/src/metadata/modules/twistDigitalBidAdapter.js +1 -1
  716. package/dist/src/metadata/modules/underdogmediaBidAdapter.js +1 -1
  717. package/dist/src/metadata/modules/undertoneBidAdapter.js +1 -1
  718. package/dist/src/metadata/modules/unifiedIdSystem.js +1 -1
  719. package/dist/src/metadata/modules/unrulyBidAdapter.js +1 -1
  720. package/dist/src/metadata/modules/userId.js +1 -1
  721. package/dist/src/metadata/modules/validationFpdModule.js +1 -1
  722. package/dist/src/metadata/modules/vidazooBidAdapter.js +1 -1
  723. package/dist/src/metadata/modules/vidoomyBidAdapter.js +1 -1
  724. package/dist/src/metadata/modules/viewdeosDXBidAdapter.js +1 -1
  725. package/dist/src/metadata/modules/viouslyBidAdapter.js +1 -1
  726. package/dist/src/metadata/modules/visxBidAdapter.js +1 -1
  727. package/dist/src/metadata/modules/vlybyBidAdapter.js +1 -1
  728. package/dist/src/metadata/modules/voxBidAdapter.js +1 -1
  729. package/dist/src/metadata/modules/vrtcalBidAdapter.js +1 -1
  730. package/dist/src/metadata/modules/vuukleBidAdapter.js +1 -1
  731. package/dist/src/metadata/modules/weboramaRtdProvider.js +1 -1
  732. package/dist/src/metadata/modules/welectBidAdapter.js +1 -1
  733. package/dist/src/metadata/modules/yahooAdsBidAdapter.js +1 -1
  734. package/dist/src/metadata/modules/yieldlabBidAdapter.js +1 -1
  735. package/dist/src/metadata/modules/yieldliftBidAdapter.js +1 -1
  736. package/dist/src/metadata/modules/yieldloveBidAdapter.js +1 -1
  737. package/dist/src/metadata/modules/yieldmoBidAdapter.js +1 -1
  738. package/dist/src/metadata/modules/zeotapIdPlusIdSystem.js +1 -1
  739. package/dist/src/metadata/modules/zeta_globalBidAdapter.js +1 -1
  740. package/dist/src/metadata/modules/zeta_global_sspBidAdapter.js +1 -1
  741. package/dist/src/modules/1plusXRtdProvider.js +6 -2
  742. package/dist/src/modules/1plusXRtdProvider.js.map +1 -1
  743. package/dist/src/modules/33acrossAnalyticsAdapter.js +1 -1
  744. package/dist/src/modules/33acrossBidAdapter.js +1 -1
  745. package/dist/src/modules/33acrossIdSystem.js +1 -1
  746. package/dist/src/modules/adWMGBidAdapter.js.map +1 -1
  747. package/dist/src/modules/adagioAnalyticsAdapter.js +1 -1
  748. package/dist/src/modules/adagioBidAdapter.js +1 -1
  749. package/dist/src/modules/addefendBidAdapter.js +1 -1
  750. package/dist/src/modules/adgenerationBidAdapter.js +1 -1
  751. package/dist/src/modules/adlooxRtdProvider.js +1 -1
  752. package/dist/src/modules/admixerBidAdapter.js +5 -4
  753. package/dist/src/modules/admixerBidAdapter.js.map +1 -1
  754. package/dist/src/modules/adqueryBidAdapter.js +1 -1
  755. package/dist/src/modules/adrelevantisBidAdapter.js +1 -1
  756. package/dist/src/modules/adspiritBidAdapter.js.map +1 -1
  757. package/dist/src/modules/adstirBidAdapter.js +1 -1
  758. package/dist/src/modules/adtrgtmeBidAdapter.js +1 -1
  759. package/dist/src/modules/adtrgtmeBidAdapter.js.map +1 -1
  760. package/dist/src/modules/advertisingBidAdapter.js +2 -2
  761. package/dist/src/modules/adxcgAnalyticsAdapter.js +1 -1
  762. package/dist/src/modules/adxcgBidAdapter.js +4 -39
  763. package/dist/src/modules/adxcgBidAdapter.js.map +1 -1
  764. package/dist/src/modules/adyoulikeBidAdapter.js +1 -1
  765. package/dist/src/modules/agmaAnalyticsAdapter.js +1 -1
  766. package/dist/src/modules/ajaBidAdapter.js +1 -1
  767. package/dist/src/modules/amxBidAdapter.js +2 -2
  768. package/dist/src/modules/amxBidAdapter.js.map +1 -1
  769. package/dist/src/modules/amxIdSystem.js +1 -1
  770. package/dist/src/modules/aniviewBidAdapter.js +1 -1
  771. package/dist/src/modules/appierAnalyticsAdapter.js +1 -1
  772. package/dist/src/modules/appnexusBidAdapter.js +2 -2
  773. package/dist/src/modules/asoBidAdapter.js +1 -1
  774. package/dist/src/modules/axonixBidAdapter.js +1 -1
  775. package/dist/src/modules/beopBidAdapter.js +2 -2
  776. package/dist/src/modules/bidglassBidAdapter.js +1 -1
  777. package/dist/src/modules/bitmediaBidAdapter.js +1 -1
  778. package/dist/src/modules/blockthroughBidAdapter.js +1 -1
  779. package/dist/src/modules/bmtmBidAdapter.js +1 -1
  780. package/dist/src/modules/bridBidAdapter.js +1 -1
  781. package/dist/src/modules/bridgewellBidAdapter.js +1 -1
  782. package/dist/src/modules/carodaBidAdapter.js +1 -1
  783. package/dist/src/modules/chromeAiRtdProvider.js.map +1 -1
  784. package/dist/src/modules/chtnwBidAdapter.js +1 -1
  785. package/dist/src/modules/concertBidAdapter.js +1 -1
  786. package/dist/src/modules/connectadBidAdapter.js +1 -1
  787. package/dist/src/modules/consentManagementGpp.js.map +1 -1
  788. package/dist/src/modules/consentManagementTcf.js.map +1 -1
  789. package/dist/src/modules/consentManagementUsp.js.map +1 -1
  790. package/dist/src/modules/consumableBidAdapter.js +1 -1
  791. package/dist/src/modules/contxtfulBidAdapter.js +1 -1
  792. package/dist/src/modules/conversantBidAdapter.js +1 -1
  793. package/dist/src/modules/craftBidAdapter.js +1 -1
  794. package/dist/src/modules/criteoBidAdapter.js +2 -2
  795. package/dist/src/modules/currency.js.map +1 -1
  796. package/dist/src/modules/cwireBidAdapter.js +1 -1
  797. package/dist/src/modules/cwireBidAdapter.js.map +1 -1
  798. package/dist/src/modules/dailymotionBidAdapter.js +1 -1
  799. package/dist/src/modules/dailymotionBidAdapter.js.map +1 -1
  800. package/dist/src/modules/dchain.js.map +1 -1
  801. package/dist/src/modules/dspxBidAdapter.js +1 -1
  802. package/dist/src/modules/dspxBidAdapter.js.map +1 -1
  803. package/dist/src/modules/dxkultureBidAdapter.js +1 -1
  804. package/dist/src/modules/eightPodBidAdapter.js.map +1 -1
  805. package/dist/src/modules/eplanningBidAdapter.js +1 -1
  806. package/dist/src/modules/equativBidAdapter.js +1 -1
  807. package/dist/src/modules/eskimiBidAdapter.js +1 -1
  808. package/dist/src/modules/euidIdSystem.js +1 -1
  809. package/dist/src/modules/exadsBidAdapter.js +1 -1
  810. package/dist/src/modules/excoBidAdapter.js +3 -3
  811. package/dist/src/modules/feedadBidAdapter.js +2 -2
  812. package/dist/src/modules/finativeBidAdapter.js +1 -1
  813. package/dist/src/modules/genericAnalyticsAdapter.js.map +1 -1
  814. package/dist/src/modules/geolocationRtdProvider.js.map +1 -1
  815. package/dist/src/modules/getintentBidAdapter.js +4 -2
  816. package/dist/src/modules/getintentBidAdapter.js.map +1 -1
  817. package/dist/src/modules/gmosspBidAdapter.js +1 -1
  818. package/dist/src/modules/gmosspBidAdapter.js.map +1 -1
  819. package/dist/src/modules/gppControl_usstates.js.map +1 -1
  820. package/dist/src/modules/gptPreAuction.d.ts +3 -3
  821. package/dist/src/modules/gptPreAuction.js.map +1 -1
  822. package/dist/src/modules/greenbidsAnalyticsAdapter.js +1 -1
  823. package/dist/src/modules/greenbidsBidAdapter.js +1 -1
  824. package/dist/src/modules/greenbidsRtdProvider.js +1 -1
  825. package/dist/src/modules/gridBidAdapter.js +2 -2
  826. package/dist/src/modules/gumgumBidAdapter.js +2 -2
  827. package/dist/src/modules/h12mediaBidAdapter.js +1 -1
  828. package/dist/src/modules/hypelabBidAdapter.js +1 -1
  829. package/dist/src/modules/iasRtdProvider.js +110 -5
  830. package/dist/src/modules/iasRtdProvider.js.map +1 -1
  831. package/dist/src/modules/id5AnalyticsAdapter.js +1 -1
  832. package/dist/src/modules/id5IdSystem.js +1 -1
  833. package/dist/src/modules/improvedigitalBidAdapter.js +1 -1
  834. package/dist/src/modules/inmobiBidAdapter.js +1 -1
  835. package/dist/src/modules/insticatorBidAdapter.js +1 -1
  836. package/dist/src/modules/intentIqAnalyticsAdapter.js +1 -1
  837. package/dist/src/modules/intentIqAnalyticsAdapter.js.map +1 -1
  838. package/dist/src/modules/intentIqIdSystem.js.map +1 -1
  839. package/dist/src/modules/ixBidAdapter.js +1 -1
  840. package/dist/src/modules/jixieBidAdapter.js +1 -1
  841. package/dist/src/modules/justpremiumBidAdapter.js +1 -1
  842. package/dist/src/modules/jwplayerRtdProvider.js +6 -2
  843. package/dist/src/modules/jwplayerRtdProvider.js.map +1 -1
  844. package/dist/src/modules/jwplayerVideoProvider.js +12 -9
  845. package/dist/src/modules/jwplayerVideoProvider.js.map +1 -1
  846. package/dist/src/modules/kargoBidAdapter.js +1 -1
  847. package/dist/src/modules/kimberliteBidAdapter.js +1 -1
  848. package/dist/src/modules/kubientBidAdapter.js +0 -1
  849. package/dist/src/modules/kubientBidAdapter.js.map +1 -1
  850. package/dist/src/modules/lassoBidAdapter.js +1 -1
  851. package/dist/src/modules/lifestreetBidAdapter.js +1 -1
  852. package/dist/src/modules/logicadBidAdapter.js +1 -1
  853. package/dist/src/modules/luceadBidAdapter.js +1 -1
  854. package/dist/src/modules/mabidderBidAdapter.js +1 -1
  855. package/dist/src/modules/madsenseBidAdapter.js +1 -1
  856. package/dist/src/modules/magniteAnalyticsAdapter.js +1 -1
  857. package/dist/src/modules/malltvAnalyticsAdapter.js +1 -1
  858. package/dist/src/modules/marsmediaBidAdapter.js +1 -1
  859. package/dist/src/modules/mediafuseBidAdapter.js +2 -2
  860. package/dist/src/modules/medianetAnalyticsAdapter.js.map +1 -1
  861. package/dist/src/modules/medianetBidAdapter.js +6 -2
  862. package/dist/src/modules/medianetBidAdapter.js.map +1 -1
  863. package/dist/src/modules/mediasquareBidAdapter.js +2 -2
  864. package/dist/src/modules/mgidBidAdapter.js +1 -1
  865. package/dist/src/modules/michaoBidAdapter.js.map +1 -1
  866. package/dist/src/modules/missenaBidAdapter.js +1 -1
  867. package/dist/src/modules/mobilefuseBidAdapter.js +1 -1
  868. package/dist/src/modules/multibid/index.js.map +1 -1
  869. package/dist/src/modules/nextMillenniumBidAdapter.js +1 -1
  870. package/dist/src/modules/nexverseBidAdapter.js.map +1 -1
  871. package/dist/src/modules/nobidAnalyticsAdapter.js +1 -1
  872. package/dist/src/modules/nobidBidAdapter.js +1 -1
  873. package/dist/src/modules/nodalsAiRtdProvider.js +4 -2
  874. package/dist/src/modules/nodalsAiRtdProvider.js.map +1 -1
  875. package/dist/src/modules/oguryBidAdapter.js +1 -1
  876. package/dist/src/modules/onetagBidAdapter.js +1 -1
  877. package/dist/src/modules/onetagBidAdapter.js.map +1 -1
  878. package/dist/src/modules/ooloAnalyticsAdapter.js +1 -1
  879. package/dist/src/modules/openxBidAdapter.js +7 -2
  880. package/dist/src/modules/openxBidAdapter.js.map +1 -1
  881. package/dist/src/modules/optidigitalBidAdapter.js +1 -1
  882. package/dist/src/modules/orbidderBidAdapter.js +1 -1
  883. package/dist/src/modules/outbrainBidAdapter.js +1 -1
  884. package/dist/src/modules/pixfutureBidAdapter.js +2 -2
  885. package/dist/src/modules/prebidServerBidAdapter/index.js.map +1 -1
  886. package/dist/src/modules/priceFloors.d.ts +2 -2
  887. package/dist/src/modules/priceFloors.js.map +1 -1
  888. package/dist/src/modules/publinkIdSystem.js +1 -1
  889. package/dist/src/modules/pubmaticAnalyticsAdapter.js +2 -2
  890. package/dist/src/modules/pubmaticBidAdapter.js +23 -3
  891. package/dist/src/modules/pubmaticBidAdapter.js.map +1 -1
  892. package/dist/src/modules/pubmaticRtdProvider.js.map +1 -1
  893. package/dist/src/modules/pubwiseAnalyticsAdapter.js +1 -1
  894. package/dist/src/modules/pubxaiAnalyticsAdapter.js +1 -1
  895. package/dist/src/modules/pulsepointBidAdapter.js +2 -38
  896. package/dist/src/modules/pulsepointBidAdapter.js.map +1 -1
  897. package/dist/src/modules/pxyzBidAdapter.js +1 -1
  898. package/dist/src/modules/quantcastBidAdapter.js +1 -1
  899. package/dist/src/modules/readpeakBidAdapter.js +1 -1
  900. package/dist/src/modules/readpeakBidAdapter.js.map +1 -1
  901. package/dist/src/modules/relaidoBidAdapter.js +1 -1
  902. package/dist/src/modules/retailspotBidAdapter.js +1 -1
  903. package/dist/src/modules/rhythmoneBidAdapter.js +1 -1
  904. package/dist/src/modules/rtdModule/index.js.map +1 -1
  905. package/dist/src/modules/rtdModule/spec.js.map +1 -1
  906. package/dist/src/modules/rubiconBidAdapter.js +6 -2
  907. package/dist/src/modules/rubiconBidAdapter.js.map +1 -1
  908. package/dist/src/modules/rumbleBidAdapter.js +103 -0
  909. package/dist/src/modules/rumbleBidAdapter.js.map +1 -0
  910. package/dist/src/modules/schain.js.map +1 -1
  911. package/dist/src/modules/seedingAllianceBidAdapter.js +1 -1
  912. package/dist/src/modules/seedtagBidAdapter.js +1 -1
  913. package/dist/src/modules/sevioBidAdapter.js +254 -0
  914. package/dist/src/modules/sevioBidAdapter.js.map +1 -0
  915. package/dist/src/modules/sharedIdSystem.js.map +1 -1
  916. package/dist/src/modules/sharethroughAnalyticsAdapter.js +1 -1
  917. package/dist/src/modules/sharethroughBidAdapter.js +1 -1
  918. package/dist/src/modules/showheroes-bsBidAdapter.js +1 -1
  919. package/dist/src/modules/smaatoBidAdapter.js +1 -1
  920. package/dist/src/modules/smartadserverBidAdapter.js +1 -1
  921. package/dist/src/modules/smartxBidAdapter.js +1 -1
  922. package/dist/src/modules/smilewantedBidAdapter.js +1 -1
  923. package/dist/src/modules/snigelBidAdapter.js +1 -1
  924. package/dist/src/modules/sonaradsBidAdapter.js +2 -2
  925. package/dist/src/modules/sonobiBidAdapter.js +1 -1
  926. package/dist/src/modules/sovrnBidAdapter.js +1 -1
  927. package/dist/src/modules/sparteoBidAdapter.js +1 -1
  928. package/dist/src/modules/sspBCBidAdapter.js +1 -1
  929. package/dist/src/modules/storageControl.js.map +1 -1
  930. package/dist/src/modules/stvBidAdapter.js +1 -1
  931. package/dist/src/modules/sublimeBidAdapter.js +2 -2
  932. package/dist/src/modules/taboolaBidAdapter.js +1 -1
  933. package/dist/src/modules/tappxBidAdapter.js +1 -1
  934. package/dist/src/modules/targetVideoBidAdapter.js +1 -1
  935. package/dist/src/modules/tcfControl.js.map +1 -1
  936. package/dist/src/modules/teadsBidAdapter.js +1 -1
  937. package/dist/src/modules/terceptAnalyticsAdapter.js +1 -1
  938. package/dist/src/modules/themoneytizerBidAdapter.js +1 -3
  939. package/dist/src/modules/themoneytizerBidAdapter.js.map +1 -1
  940. package/dist/src/modules/trionBidAdapter.js +1 -1
  941. package/dist/src/modules/tripleliftBidAdapter.js +1 -1
  942. package/dist/src/modules/ttdBidAdapter.js +9 -2
  943. package/dist/src/modules/ttdBidAdapter.js.map +1 -1
  944. package/dist/src/modules/ucfunnelAnalyticsAdapter.js +1 -1
  945. package/dist/src/modules/uid2IdSystem.js +1 -1
  946. package/dist/src/modules/underdogmediaBidAdapter.js +1 -1
  947. package/dist/src/modules/undertoneBidAdapter.js +1 -1
  948. package/dist/src/modules/unrulyBidAdapter.js +1 -1
  949. package/dist/src/modules/userId/index.js +12 -8
  950. package/dist/src/modules/userId/index.js.map +1 -1
  951. package/dist/src/modules/userId/spec.js.map +1 -1
  952. package/dist/src/modules/validationFpdModule/index.js.map +1 -1
  953. package/dist/src/modules/videoModule/index.js.map +1 -1
  954. package/dist/src/modules/videobyteBidAdapter.js +1 -1
  955. package/dist/src/modules/visxBidAdapter.js +1 -1
  956. package/dist/src/modules/vuukleBidAdapter.js +1 -1
  957. package/dist/src/modules/weboramaRtdProvider.js +30 -11
  958. package/dist/src/modules/weboramaRtdProvider.js.map +1 -1
  959. package/dist/src/modules/welectBidAdapter.js.map +1 -1
  960. package/dist/src/modules/widespaceBidAdapter.js +1 -1
  961. package/dist/src/modules/winrBidAdapter.js +1 -1
  962. package/dist/src/modules/yahooAdsBidAdapter.js +1 -1
  963. package/dist/src/modules/yandexBidAdapter.js +47 -15
  964. package/dist/src/modules/yandexBidAdapter.js.map +1 -1
  965. package/dist/src/modules/yieldmoBidAdapter.js +2 -2
  966. package/dist/src/modules/yieldoneAnalyticsAdapter.js +1 -1
  967. package/dist/src/package.json +2 -3
  968. package/dist/src/public/rumbleBidAdapter.js +1 -0
  969. package/dist/src/public/sevioBidAdapter.js +1 -0
  970. package/dist/src/src/activities/params.d.ts +5 -0
  971. package/dist/src/src/activities/params.js +6 -0
  972. package/dist/src/src/activities/params.js.map +1 -1
  973. package/dist/src/src/activities/redactor.js.map +1 -1
  974. package/dist/src/src/adRendering.js.map +1 -1
  975. package/dist/src/src/adUnits.js.map +1 -1
  976. package/dist/src/src/adapterManager.js.map +1 -1
  977. package/dist/src/src/adapters/bidderFactory.js.map +1 -1
  978. package/dist/src/src/ajax.js.map +1 -1
  979. package/dist/src/src/auction.js.map +1 -1
  980. package/dist/src/src/banner.js.map +1 -1
  981. package/dist/src/src/bidTTL.js.map +1 -1
  982. package/dist/src/src/bidderSettings.js.map +1 -1
  983. package/dist/src/src/bidfactory.js.map +1 -1
  984. package/dist/src/src/config.js +3 -3
  985. package/dist/src/src/config.js.map +1 -1
  986. package/dist/src/src/consentHandler.js.map +1 -1
  987. package/dist/src/src/constants.js.map +1 -1
  988. package/dist/src/src/cpmBucketManager.js.map +1 -1
  989. package/dist/src/src/debugging.js +1 -1
  990. package/dist/src/src/events.js.map +1 -1
  991. package/dist/src/src/fpd/enrichment.js.map +1 -1
  992. package/dist/src/src/hook.js.map +1 -1
  993. package/dist/src/src/mediaTypes.js.map +1 -1
  994. package/dist/src/src/native.js.map +1 -1
  995. package/dist/src/src/prebid.js +2 -2
  996. package/dist/src/src/prebid.js.map +1 -1
  997. package/dist/src/src/prebidGlobal.js.map +1 -1
  998. package/dist/src/src/refererDetection.js.map +1 -1
  999. package/dist/src/src/storageManager.js +26 -25
  1000. package/dist/src/src/storageManager.js.map +1 -1
  1001. package/dist/src/src/targeting.d.ts +7 -7
  1002. package/dist/src/src/targeting.js.map +1 -1
  1003. package/dist/src/src/types/common.d.js.map +1 -1
  1004. package/dist/src/src/types/common.d.ts +29 -29
  1005. package/dist/src/src/types/local/buildOptions.d.js.map +1 -1
  1006. package/dist/src/src/types/local/shim.d.js.map +1 -1
  1007. package/dist/src/src/types/objects.d.js.map +1 -1
  1008. package/dist/src/src/types/objects.d.ts +15 -15
  1009. package/dist/src/src/types/ortb/common.d.js.map +1 -1
  1010. package/dist/src/src/types/ortb/common.d.ts +1 -1
  1011. package/dist/src/src/types/ortb/ext/dchain.d.js.map +1 -1
  1012. package/dist/src/src/types/ortb/ext/dchain.d.ts +69 -69
  1013. package/dist/src/src/types/ortb/ext/dsa.d.js.map +1 -1
  1014. package/dist/src/src/types/ortb/ext/dsa.d.ts +50 -50
  1015. package/dist/src/src/types/ortb/request.d.js.map +1 -1
  1016. package/dist/src/src/types/ortb/request.d.ts +21 -21
  1017. package/dist/src/src/types/ortb/response.d.js.map +1 -1
  1018. package/dist/src/src/types/ortb/response.d.ts +6 -6
  1019. package/dist/src/src/types/summary/core.d.ts +5 -5
  1020. package/dist/src/src/userSync.js.map +1 -1
  1021. package/dist/src/src/utils/objects.js.map +1 -1
  1022. package/dist/src/src/utils/perfMetrics.js.map +1 -1
  1023. package/dist/src/src/utils/promise.js.map +1 -1
  1024. package/dist/src/src/utils/ttlCollection.js.map +1 -1
  1025. package/dist/src/src/video.js.map +1 -1
  1026. package/dist/src/src/videoCache.js.map +1 -1
  1027. package/dist/src/test/helpers/index_adapter_utils.js +1 -1
  1028. package/dist/src/test/helpers/index_adapter_utils.js.map +1 -1
  1029. package/dist/src/test/helpers/refererDetectionHelper.js.map +1 -1
  1030. package/dist/src/test/mocks/timers.js +12 -12
  1031. package/dist/src/test/mocks/timers.js.map +1 -1
  1032. package/dist/src/test/spec/adloader_spec.js.map +1 -1
  1033. package/dist/src/test/spec/config_spec.js +9 -3
  1034. package/dist/src/test/spec/config_spec.js.map +1 -1
  1035. package/dist/src/test/spec/libraries/greedy/greedyPromise_spec.js +2 -2
  1036. package/dist/src/test/spec/libraries/greedy/greedyPromise_spec.js.map +1 -1
  1037. package/dist/src/test/spec/modules/1plusXRtdProvider_spec.js +2 -9
  1038. package/dist/src/test/spec/modules/1plusXRtdProvider_spec.js.map +1 -1
  1039. package/dist/src/test/spec/modules/33acrossAnalyticsAdapter_spec.js +2 -2
  1040. package/dist/src/test/spec/modules/33acrossBidAdapter_spec.js +1 -1
  1041. package/dist/src/test/spec/modules/33acrossIdSystem_spec.js +1 -1
  1042. package/dist/src/test/spec/modules/adagioAnalyticsAdapter_spec.js +4 -4
  1043. package/dist/src/test/spec/modules/adgridBidAdapter_spec.js.map +1 -1
  1044. package/dist/src/test/spec/modules/adkernelAdnBidAdapter_spec.js.map +1 -1
  1045. package/dist/src/test/spec/modules/adkernelBidAdapter_spec.js.map +1 -1
  1046. package/dist/src/test/spec/modules/admediaBidAdapter_spec.js.map +1 -1
  1047. package/dist/src/test/spec/modules/adnuntiusBidAdapter_spec.js.map +1 -1
  1048. package/dist/src/test/spec/modules/adqueryBidAdapter_spec.js +1 -1
  1049. package/dist/src/test/spec/modules/adrelevantisBidAdapter_spec.js +1 -1
  1050. package/dist/src/test/spec/modules/adspiritBidAdapter_spec.js.map +1 -1
  1051. package/dist/src/test/spec/modules/adtrgtmeBidAdapter_spec.js +1 -1
  1052. package/dist/src/test/spec/modules/adtrgtmeBidAdapter_spec.js.map +1 -1
  1053. package/dist/src/test/spec/modules/adtrueBidAdapter_spec.js.map +1 -1
  1054. package/dist/src/test/spec/modules/advertisingBidAdapter_spec.js +9 -9
  1055. package/dist/src/test/spec/modules/advertisingBidAdapter_spec.js.map +1 -1
  1056. package/dist/src/test/spec/modules/adyoulikeBidAdapter_spec.js +3 -3
  1057. package/dist/src/test/spec/modules/ajaBidAdapter_spec.js +2 -2
  1058. package/dist/src/test/spec/modules/amxBidAdapter_spec.js +2 -2
  1059. package/dist/src/test/spec/modules/appierAnalyticsAdapter_spec.js +1 -1
  1060. package/dist/src/test/spec/modules/appnexusBidAdapter_spec.js +2 -2
  1061. package/dist/src/test/spec/modules/asoBidAdapter_spec.js +1 -1
  1062. package/dist/src/test/spec/modules/bidmaticBidAdapter_spec.js.map +1 -1
  1063. package/dist/src/test/spec/modules/blockthroughBidAdapter_spec.js +1 -1
  1064. package/dist/src/test/spec/modules/bridBidAdapter_spec.js +1 -1
  1065. package/dist/src/test/spec/modules/criteoBidAdapter_spec.js +1 -1
  1066. package/dist/src/test/spec/modules/dailymotionBidAdapter_spec.js +4 -4
  1067. package/dist/src/test/spec/modules/datablocksBidAdapter_spec.js.map +1 -1
  1068. package/dist/src/test/spec/modules/deepintentBidAdapter_spec.js.map +1 -1
  1069. package/dist/src/test/spec/modules/dexertoBidAdapter_spec.js.map +1 -1
  1070. package/dist/src/test/spec/modules/dochaseBidAdapter_spec.js.map +1 -1
  1071. package/dist/src/test/spec/modules/dspxBidAdapter_spec.js.map +1 -1
  1072. package/dist/src/test/spec/modules/dxkultureBidAdapter_spec.js +1 -1
  1073. package/dist/src/test/spec/modules/ehealthcaresolutionsBidAdapter_spec.js.map +1 -1
  1074. package/dist/src/test/spec/modules/enrichmentLiftMeasurement_spec.js.map +1 -1
  1075. package/dist/src/test/spec/modules/eplanningBidAdapter_spec.js +1 -1
  1076. package/dist/src/test/spec/modules/equativBidAdapter_spec.js +1 -1
  1077. package/dist/src/test/spec/modules/equativBidAdapter_spec.js.map +1 -1
  1078. package/dist/src/test/spec/modules/excoBidAdapter_spec.js +1 -1
  1079. package/dist/src/test/spec/modules/feedadBidAdapter_spec.js +2 -2
  1080. package/dist/src/test/spec/modules/finativeBidAdapter_spec.js.map +1 -1
  1081. package/dist/src/test/spec/modules/ftrackIdSystem_spec.js.map +1 -1
  1082. package/dist/src/test/spec/modules/fwsspBidAdapter_spec.js.map +1 -1
  1083. package/dist/src/test/spec/modules/gmosspBidAdapter_spec.js +2 -2
  1084. package/dist/src/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +1 -1
  1085. package/dist/src/test/spec/modules/gridBidAdapter_spec.js +6 -6
  1086. package/dist/src/test/spec/modules/gumgumBidAdapter_spec.js +1 -1
  1087. package/dist/src/test/spec/modules/hypelabBidAdapter_spec.js.map +1 -1
  1088. package/dist/src/test/spec/modules/iasRtdProvider_spec.js +104 -1
  1089. package/dist/src/test/spec/modules/iasRtdProvider_spec.js.map +1 -1
  1090. package/dist/src/test/spec/modules/id5IdSystem_spec.js +4 -4
  1091. package/dist/src/test/spec/modules/insticatorBidAdapter_spec.js +1 -1
  1092. package/dist/src/test/spec/modules/intentIqIdSystem_spec.js.map +1 -1
  1093. package/dist/src/test/spec/modules/invibesBidAdapter_spec.js.map +1 -1
  1094. package/dist/src/test/spec/modules/ixBidAdapter_spec.js +2 -2
  1095. package/dist/src/test/spec/modules/justpremiumBidAdapter_spec.js +1 -1
  1096. package/dist/src/test/spec/modules/kargoBidAdapter_spec.js +1 -1
  1097. package/dist/src/test/spec/modules/kargoBidAdapter_spec.js.map +1 -1
  1098. package/dist/src/test/spec/modules/lane4BidAdapter_spec.js.map +1 -1
  1099. package/dist/src/test/spec/modules/lemmaDigitalBidAdapter_spec.js.map +1 -1
  1100. package/dist/src/test/spec/modules/liveIntentExternalIdSystem_spec.js +29 -10
  1101. package/dist/src/test/spec/modules/liveIntentExternalIdSystem_spec.js.map +1 -1
  1102. package/dist/src/test/spec/modules/liveIntentIdMinimalSystem_spec.js +19 -0
  1103. package/dist/src/test/spec/modules/liveIntentIdMinimalSystem_spec.js.map +1 -1
  1104. package/dist/src/test/spec/modules/liveIntentIdSystem_spec.js +58 -1
  1105. package/dist/src/test/spec/modules/liveIntentIdSystem_spec.js.map +1 -1
  1106. package/dist/src/test/spec/modules/liveIntentRtdProvider_spec.js.map +1 -1
  1107. package/dist/src/test/spec/modules/magniteAnalyticsAdapter_spec.js +1 -1
  1108. package/dist/src/test/spec/modules/malltvAnalyticsAdapter_spec.js +1 -1
  1109. package/dist/src/test/spec/modules/mediaeyesBidAdapter_spec.js.map +1 -1
  1110. package/dist/src/test/spec/modules/mediafuseBidAdapter_spec.js +2 -2
  1111. package/dist/src/test/spec/modules/mediagoBidAdapter_spec.js.map +1 -1
  1112. package/dist/src/test/spec/modules/medianetBidAdapter_spec.js +43 -26
  1113. package/dist/src/test/spec/modules/medianetBidAdapter_spec.js.map +1 -1
  1114. package/dist/src/test/spec/modules/mediasquareBidAdapter_spec.js.map +1 -1
  1115. package/dist/src/test/spec/modules/missenaBidAdapter_spec.js +1 -1
  1116. package/dist/src/test/spec/modules/nexx360BidAdapter_spec.js.map +1 -1
  1117. package/dist/src/test/spec/modules/nobidAnalyticsAdapter_spec.js +1 -1
  1118. package/dist/src/test/spec/modules/nobidBidAdapter_spec.js +1 -1
  1119. package/dist/src/test/spec/modules/nobidBidAdapter_spec.js.map +1 -1
  1120. package/dist/src/test/spec/modules/oguryBidAdapter_spec.js +1 -1
  1121. package/dist/src/test/spec/modules/onetagBidAdapter_spec.js.map +1 -1
  1122. package/dist/src/test/spec/modules/openxBidAdapter_spec.js +113 -0
  1123. package/dist/src/test/spec/modules/openxBidAdapter_spec.js.map +1 -1
  1124. package/dist/src/test/spec/modules/optoutBidAdapter_spec.js.map +1 -1
  1125. package/dist/src/test/spec/modules/orbitsoftBidAdapter_spec.js.map +1 -1
  1126. package/dist/src/test/spec/modules/outbrainBidAdapter_spec.js +3 -3
  1127. package/dist/src/test/spec/modules/oxxionAnalyticsAdapter_spec.js.map +1 -1
  1128. package/dist/src/test/spec/modules/ozoneBidAdapter_spec.js.map +1 -1
  1129. package/dist/src/test/spec/modules/prebidServerBidAdapter_spec.js +4 -4
  1130. package/dist/src/test/spec/modules/prebidServerBidAdapter_spec.js.map +1 -1
  1131. package/dist/src/test/spec/modules/prismaBidAdapter_spec.js.map +1 -1
  1132. package/dist/src/test/spec/modules/publinkIdSystem_spec.js +5 -5
  1133. package/dist/src/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +6 -6
  1134. package/dist/src/test/spec/modules/pubmaticBidAdapter_spec.js +58 -0
  1135. package/dist/src/test/spec/modules/pubmaticBidAdapter_spec.js.map +1 -1
  1136. package/dist/src/test/spec/modules/pubmaticRtdProvider_spec.js.map +1 -1
  1137. package/dist/src/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +1 -1
  1138. package/dist/src/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +6 -6
  1139. package/dist/src/test/spec/modules/pwbidBidAdapter_spec.js.map +1 -1
  1140. package/dist/src/test/spec/modules/quantcastBidAdapter_spec.js +6 -6
  1141. package/dist/src/test/spec/modules/readpeakBidAdapter_spec.js +4 -4
  1142. package/dist/src/test/spec/modules/relaidoBidAdapter_spec.js +1 -1
  1143. package/dist/src/test/spec/modules/relevadRtdProvider_spec.js.map +1 -1
  1144. package/dist/src/test/spec/modules/relevatehealthBidAdapter_spec.js.map +1 -1
  1145. package/dist/src/test/spec/modules/richaudienceBidAdapter_spec.js.map +1 -1
  1146. package/dist/src/test/spec/modules/rubiconBidAdapter_spec.js +2 -2
  1147. package/dist/src/test/spec/modules/rubiconBidAdapter_spec.js.map +1 -1
  1148. package/dist/src/test/spec/modules/rumbleBidAdapter_spec.js +110 -0
  1149. package/dist/src/test/spec/modules/rumbleBidAdapter_spec.js.map +1 -0
  1150. package/dist/src/test/spec/modules/sevioBidAdapter_spec.js +182 -0
  1151. package/dist/src/test/spec/modules/sevioBidAdapter_spec.js.map +1 -0
  1152. package/dist/src/test/spec/modules/smaatoBidAdapter_spec.js.map +1 -1
  1153. package/dist/src/test/spec/modules/smarticoBidAdapter_spec.js.map +1 -1
  1154. package/dist/src/test/spec/modules/smartxBidAdapter_spec.js +1 -1
  1155. package/dist/src/test/spec/modules/sonaradsBidAdapter_spec.js +5 -5
  1156. package/dist/src/test/spec/modules/sovrnBidAdapter_spec.js +1 -1
  1157. package/dist/src/test/spec/modules/sparteoBidAdapter_spec.js +3 -3
  1158. package/dist/src/test/spec/modules/sspBCBidAdapter_spec.js +1 -1
  1159. package/dist/src/test/spec/modules/stvBidAdapter_spec.js.map +1 -1
  1160. package/dist/src/test/spec/modules/taboolaBidAdapter_spec.js +1 -1
  1161. package/dist/src/test/spec/modules/tapnativeBidAdapter_spec.js.map +1 -1
  1162. package/dist/src/test/spec/modules/targetVideoBidAdapter_spec.js +2 -2
  1163. package/dist/src/test/spec/modules/themoneytizerBidAdapter_spec.js +0 -5
  1164. package/dist/src/test/spec/modules/themoneytizerBidAdapter_spec.js.map +1 -1
  1165. package/dist/src/test/spec/modules/trionBidAdapter_spec.js +1 -1
  1166. package/dist/src/test/spec/modules/ttdBidAdapter_spec.js +24 -3
  1167. package/dist/src/test/spec/modules/ttdBidAdapter_spec.js.map +1 -1
  1168. package/dist/src/test/spec/modules/ucfunnelAnalyticsAdapter_spec.js +1 -1
  1169. package/dist/src/test/spec/modules/uid2IdSystem_spec.js.map +1 -1
  1170. package/dist/src/test/spec/modules/unrulyBidAdapter_spec.js +3 -3
  1171. package/dist/src/test/spec/modules/userId_spec.js +41 -6
  1172. package/dist/src/test/spec/modules/userId_spec.js.map +1 -1
  1173. package/dist/src/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +1738 -9
  1174. package/dist/src/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js.map +1 -1
  1175. package/dist/src/test/spec/modules/videobyteBidAdapter_spec.js +1 -1
  1176. package/dist/src/test/spec/modules/visxBidAdapter_spec.js +12 -12
  1177. package/dist/src/test/spec/modules/winrBidAdapter_spec.js +1 -1
  1178. package/dist/src/test/spec/modules/yahooAdsBidAdapter_spec.js +1 -1
  1179. package/dist/src/test/spec/modules/yandexBidAdapter_spec.js +107 -2
  1180. package/dist/src/test/spec/modules/yandexBidAdapter_spec.js.map +1 -1
  1181. package/dist/src/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +2 -2
  1182. package/dist/src/test/spec/refererDetection_spec.js.map +1 -1
  1183. package/dist/src/test/spec/unit/core/storageManager_spec.js +18 -1
  1184. package/dist/src/test/spec/unit/core/storageManager_spec.js.map +1 -1
  1185. package/dist/src/test/spec/unit/core/targeting_spec.js.map +1 -1
  1186. package/dist/src/test/spec/utils_spec.js.map +1 -1
  1187. package/eslint.config.js +2 -6
  1188. package/gulpfile.js +0 -7
  1189. package/libraries/analyticsAdapter/AnalyticsAdapter.ts +28 -28
  1190. package/libraries/appnexusUtils/anKeywords.js +11 -0
  1191. package/libraries/consentManagement/cmUtils.ts +18 -18
  1192. package/libraries/creative-renderer-display/renderer.js +1 -1
  1193. package/libraries/cryptoUtils/wallets.js +38 -0
  1194. package/libraries/dspxUtils/bidderUtils.js +1 -1
  1195. package/libraries/impUtils.js +33 -0
  1196. package/libraries/liveIntentId/shared.js +16 -0
  1197. package/libraries/nexx360Utils/index.js +8 -8
  1198. package/libraries/ortbConverter/converter.ts +79 -79
  1199. package/libraries/video/constants/events.ts +5 -5
  1200. package/metadata/modules/33acrossBidAdapter.json +1 -1
  1201. package/metadata/modules/33acrossIdSystem.json +1 -1
  1202. package/metadata/modules/acuityadsBidAdapter.json +1 -1
  1203. package/metadata/modules/adagioBidAdapter.json +1 -1
  1204. package/metadata/modules/adagioRtdProvider.json +1 -1
  1205. package/metadata/modules/addefendBidAdapter.json +1 -1
  1206. package/metadata/modules/adfBidAdapter.json +1 -1
  1207. package/metadata/modules/adfusionBidAdapter.json +1 -1
  1208. package/metadata/modules/adheseBidAdapter.json +1 -1
  1209. package/metadata/modules/adkernelAdnBidAdapter.json +1 -1
  1210. package/metadata/modules/adkernelBidAdapter.json +4 -4
  1211. package/metadata/modules/admaticBidAdapter.json +2 -2
  1212. package/metadata/modules/admixerBidAdapter.json +8 -1
  1213. package/metadata/modules/admixerIdSystem.json +1 -1
  1214. package/metadata/modules/adnowBidAdapter.json +1 -1
  1215. package/metadata/modules/adnuntiusBidAdapter.json +1 -1
  1216. package/metadata/modules/adnuntiusRtdProvider.json +1 -1
  1217. package/metadata/modules/adotBidAdapter.json +1 -1
  1218. package/metadata/modules/adponeBidAdapter.json +1 -1
  1219. package/metadata/modules/adqueryBidAdapter.json +1 -1
  1220. package/metadata/modules/adqueryIdSystem.json +1 -1
  1221. package/metadata/modules/adrinoBidAdapter.json +1 -1
  1222. package/metadata/modules/ads_interactiveBidAdapter.json +1 -1
  1223. package/metadata/modules/adtargetBidAdapter.json +1 -1
  1224. package/metadata/modules/adtelligentBidAdapter.json +3 -3
  1225. package/metadata/modules/adtelligentIdSystem.json +1 -1
  1226. package/metadata/modules/aduptechBidAdapter.json +1 -1
  1227. package/metadata/modules/adyoulikeBidAdapter.json +1 -1
  1228. package/metadata/modules/aidemBidAdapter.json +1 -1
  1229. package/metadata/modules/airgridRtdProvider.json +1 -1
  1230. package/metadata/modules/alkimiBidAdapter.json +1 -1
  1231. package/metadata/modules/ampliffyBidAdapter.json +1 -1
  1232. package/metadata/modules/amxBidAdapter.json +1 -1
  1233. package/metadata/modules/amxIdSystem.json +1 -1
  1234. package/metadata/modules/aniviewBidAdapter.json +1 -1
  1235. package/metadata/modules/anonymisedRtdProvider.json +1 -1
  1236. package/metadata/modules/appierBidAdapter.json +15 -29
  1237. package/metadata/modules/appnexusBidAdapter.json +5 -5
  1238. package/metadata/modules/appushBidAdapter.json +1 -1
  1239. package/metadata/modules/apstreamBidAdapter.json +1 -1
  1240. package/metadata/modules/audiencerunBidAdapter.json +1 -1
  1241. package/metadata/modules/axisBidAdapter.json +1 -1
  1242. package/metadata/modules/azerionedgeRtdProvider.json +1 -1
  1243. package/metadata/modules/beopBidAdapter.json +1 -1
  1244. package/metadata/modules/betweenBidAdapter.json +1 -1
  1245. package/metadata/modules/bidmaticBidAdapter.json +1 -1
  1246. package/metadata/modules/bidtheatreBidAdapter.json +1 -1
  1247. package/metadata/modules/bliinkBidAdapter.json +1 -1
  1248. package/metadata/modules/blockthroughBidAdapter.json +1 -1
  1249. package/metadata/modules/blueBidAdapter.json +1 -1
  1250. package/metadata/modules/bmsBidAdapter.json +1 -1
  1251. package/metadata/modules/boldwinBidAdapter.json +1 -1
  1252. package/metadata/modules/bridBidAdapter.json +1 -1
  1253. package/metadata/modules/browsiBidAdapter.json +1 -1
  1254. package/metadata/modules/bucksenseBidAdapter.json +1 -1
  1255. package/metadata/modules/carodaBidAdapter.json +1 -1
  1256. package/metadata/modules/categoryTranslation.json +1 -1
  1257. package/metadata/modules/ccxBidAdapter.json +1 -1
  1258. package/metadata/modules/ceeIdSystem.json +1 -1
  1259. package/metadata/modules/chromeAiRtdProvider.json +1 -1
  1260. package/metadata/modules/compassBidAdapter.json +1 -1
  1261. package/metadata/modules/conceptxBidAdapter.json +1 -1
  1262. package/metadata/modules/connatixBidAdapter.json +1 -1
  1263. package/metadata/modules/connectIdSystem.json +1 -1
  1264. package/metadata/modules/connectadBidAdapter.json +1 -1
  1265. package/metadata/modules/contentexchangeBidAdapter.json +1 -1
  1266. package/metadata/modules/conversantBidAdapter.json +1 -1
  1267. package/metadata/modules/copper6sspBidAdapter.json +1 -1
  1268. package/metadata/modules/cpmstarBidAdapter.json +1 -1
  1269. package/metadata/modules/criteoBidAdapter.json +1 -1
  1270. package/metadata/modules/criteoIdSystem.json +1 -1
  1271. package/metadata/modules/cwireBidAdapter.json +1 -1
  1272. package/metadata/modules/czechAdIdSystem.json +1 -1
  1273. package/metadata/modules/dailymotionBidAdapter.json +1 -1
  1274. package/metadata/modules/debugging.json +1 -1
  1275. package/metadata/modules/deepintentBidAdapter.json +1 -1
  1276. package/metadata/modules/deltaprojectsBidAdapter.json +1 -1
  1277. package/metadata/modules/dianomiBidAdapter.json +1 -1
  1278. package/metadata/modules/digitalMatterBidAdapter.json +1 -1
  1279. package/metadata/modules/distroscaleBidAdapter.json +1 -1
  1280. package/metadata/modules/docereeAdManagerBidAdapter.json +3 -3
  1281. package/metadata/modules/docereeBidAdapter.json +3 -3
  1282. package/metadata/modules/dspxBidAdapter.json +1 -1
  1283. package/metadata/modules/e_volutionBidAdapter.json +1 -1
  1284. package/metadata/modules/edge226BidAdapter.json +3 -3
  1285. package/metadata/modules/equativBidAdapter.json +1 -1
  1286. package/metadata/modules/eskimiBidAdapter.json +1 -1
  1287. package/metadata/modules/etargetBidAdapter.json +1 -1
  1288. package/metadata/modules/euidIdSystem.json +1 -1
  1289. package/metadata/modules/exadsBidAdapter.json +1 -1
  1290. package/metadata/modules/feedadBidAdapter.json +1 -1
  1291. package/metadata/modules/fwsspBidAdapter.json +1 -1
  1292. package/metadata/modules/gamoshiBidAdapter.json +1 -1
  1293. package/metadata/modules/glomexBidAdapter.json +1 -1
  1294. package/metadata/modules/goldbachBidAdapter.json +1 -1
  1295. package/metadata/modules/greenbidsBidAdapter.json +1 -1
  1296. package/metadata/modules/gridBidAdapter.json +1 -1
  1297. package/metadata/modules/gumgumBidAdapter.json +1 -1
  1298. package/metadata/modules/hadronIdSystem.json +1 -1
  1299. package/metadata/modules/hadronRtdProvider.json +1 -1
  1300. package/metadata/modules/holidBidAdapter.json +1 -1
  1301. package/metadata/modules/hybridBidAdapter.json +1 -1
  1302. package/metadata/modules/id5IdSystem.json +1 -1
  1303. package/metadata/modules/identityLinkIdSystem.json +1 -1
  1304. package/metadata/modules/illuminBidAdapter.json +1 -1
  1305. package/metadata/modules/impactifyBidAdapter.json +1 -1
  1306. package/metadata/modules/improvedigitalBidAdapter.json +1 -1
  1307. package/metadata/modules/inmobiBidAdapter.json +1 -1
  1308. package/metadata/modules/innityBidAdapter.json +1 -1
  1309. package/metadata/modules/insticatorBidAdapter.json +1 -1
  1310. package/metadata/modules/intentIqIdSystem.json +1 -1
  1311. package/metadata/modules/invibesBidAdapter.json +1 -1
  1312. package/metadata/modules/ipromBidAdapter.json +1 -1
  1313. package/metadata/modules/ixBidAdapter.json +1 -1
  1314. package/metadata/modules/justIdSystem.json +1 -1
  1315. package/metadata/modules/justpremiumBidAdapter.json +1 -1
  1316. package/metadata/modules/jwplayerBidAdapter.json +1 -1
  1317. package/metadata/modules/kargoBidAdapter.json +1 -1
  1318. package/metadata/modules/kubientBidAdapter.json +3 -8
  1319. package/metadata/modules/kueezRtbBidAdapter.json +1 -1
  1320. package/metadata/modules/limelightDigitalBidAdapter.json +2 -2
  1321. package/metadata/modules/liveIntentIdSystem.json +1 -1
  1322. package/metadata/modules/liveIntentRtdProvider.json +1 -1
  1323. package/metadata/modules/livewrappedBidAdapter.json +1 -1
  1324. package/metadata/modules/loopmeBidAdapter.json +1 -1
  1325. package/metadata/modules/lotamePanoramaIdSystem.json +1 -1
  1326. package/metadata/modules/luceadBidAdapter.json +1 -1
  1327. package/metadata/modules/luponmediaBidAdapter.json +1 -1
  1328. package/metadata/modules/madvertiseBidAdapter.json +1 -1
  1329. package/metadata/modules/marsmediaBidAdapter.json +1 -1
  1330. package/metadata/modules/mediaConsortiumBidAdapter.json +1 -1
  1331. package/metadata/modules/mediaforceBidAdapter.json +1 -1
  1332. package/metadata/modules/mediafuseBidAdapter.json +1 -1
  1333. package/metadata/modules/mediagoBidAdapter.json +1 -1
  1334. package/metadata/modules/mediakeysBidAdapter.json +1 -1
  1335. package/metadata/modules/medianetBidAdapter.json +2 -2
  1336. package/metadata/modules/mediasquareBidAdapter.json +1 -1
  1337. package/metadata/modules/mgidBidAdapter.json +1 -1
  1338. package/metadata/modules/mgidRtdProvider.json +1 -1
  1339. package/metadata/modules/mgidXBidAdapter.json +1 -1
  1340. package/metadata/modules/minutemediaBidAdapter.json +1 -1
  1341. package/metadata/modules/missenaBidAdapter.json +1 -1
  1342. package/metadata/modules/mobianRtdProvider.json +1 -1
  1343. package/metadata/modules/mobilefuseBidAdapter.json +1 -1
  1344. package/metadata/modules/mobkoiBidAdapter.json +1 -1
  1345. package/metadata/modules/mobkoiIdSystem.json +1 -1
  1346. package/metadata/modules/nativeryBidAdapter.json +1 -1
  1347. package/metadata/modules/nativoBidAdapter.json +1 -1
  1348. package/metadata/modules/newspassidBidAdapter.json +1 -1
  1349. package/metadata/modules/nextMillenniumBidAdapter.json +1 -1
  1350. package/metadata/modules/nextrollBidAdapter.json +1 -1
  1351. package/metadata/modules/nexx360BidAdapter.json +8 -8
  1352. package/metadata/modules/nobidBidAdapter.json +2 -2
  1353. package/metadata/modules/nodalsAiRtdProvider.json +1 -1
  1354. package/metadata/modules/novatiqIdSystem.json +1 -1
  1355. package/metadata/modules/oguryBidAdapter.json +1 -1
  1356. package/metadata/modules/omsBidAdapter.json +1 -1
  1357. package/metadata/modules/onetagBidAdapter.json +1 -1
  1358. package/metadata/modules/openwebBidAdapter.json +1 -1
  1359. package/metadata/modules/openxBidAdapter.json +1 -1
  1360. package/metadata/modules/operaadsBidAdapter.json +1 -1
  1361. package/metadata/modules/optidigitalBidAdapter.json +1 -1
  1362. package/metadata/modules/optoutBidAdapter.json +1 -1
  1363. package/metadata/modules/orbidderBidAdapter.json +1 -1
  1364. package/metadata/modules/outbrainBidAdapter.json +1 -1
  1365. package/metadata/modules/ozoneBidAdapter.json +1 -1
  1366. package/metadata/modules/pairIdSystem.json +1 -1
  1367. package/metadata/modules/performaxBidAdapter.json +4 -5
  1368. package/metadata/modules/pgamsspBidAdapter.json +1 -1
  1369. package/metadata/modules/pixfutureBidAdapter.json +1 -1
  1370. package/metadata/modules/playdigoBidAdapter.json +1 -1
  1371. package/metadata/modules/prebid-core.json +2 -2
  1372. package/metadata/modules/precisoBidAdapter.json +1 -1
  1373. package/metadata/modules/prismaBidAdapter.json +1 -1
  1374. package/metadata/modules/programmaticXBidAdapter.json +1 -1
  1375. package/metadata/modules/proxistoreBidAdapter.json +1 -1
  1376. package/metadata/modules/publinkIdSystem.json +1 -1
  1377. package/metadata/modules/pubmaticBidAdapter.json +1 -1
  1378. package/metadata/modules/pubmaticIdSystem.json +1 -1
  1379. package/metadata/modules/pulsepointBidAdapter.json +1 -1
  1380. package/metadata/modules/pwbidBidAdapter.json +1 -1
  1381. package/metadata/modules/qtBidAdapter.json +1 -1
  1382. package/metadata/modules/quantcastBidAdapter.json +1 -1
  1383. package/metadata/modules/quantcastIdSystem.json +1 -1
  1384. package/metadata/modules/r2b2BidAdapter.json +1 -1
  1385. package/metadata/modules/raynRtdProvider.json +1 -1
  1386. package/metadata/modules/readpeakBidAdapter.json +1 -1
  1387. package/metadata/modules/relayBidAdapter.json +1 -1
  1388. package/metadata/modules/relevantdigitalBidAdapter.json +1 -1
  1389. package/metadata/modules/resetdigitalBidAdapter.json +1 -1
  1390. package/metadata/modules/responsiveAdsBidAdapter.json +1 -1
  1391. package/metadata/modules/retailspotBidAdapter.json +1 -1
  1392. package/metadata/modules/revcontentBidAdapter.json +7 -117
  1393. package/metadata/modules/rhythmoneBidAdapter.json +1 -1
  1394. package/metadata/modules/richaudienceBidAdapter.json +1 -1
  1395. package/metadata/modules/riseBidAdapter.json +2 -2
  1396. package/metadata/modules/rixengineBidAdapter.json +1 -1
  1397. package/metadata/modules/rtbhouseBidAdapter.json +1 -1
  1398. package/metadata/modules/rubiconBidAdapter.json +1 -1
  1399. package/metadata/modules/rumbleBidAdapter.json +13 -0
  1400. package/metadata/modules/scatteredBidAdapter.json +1 -1
  1401. package/metadata/modules/seedingAllianceBidAdapter.json +1 -1
  1402. package/metadata/modules/seedtagBidAdapter.json +1 -1
  1403. package/metadata/modules/semantiqRtdProvider.json +1 -1
  1404. package/metadata/modules/setupadBidAdapter.json +1 -1
  1405. package/metadata/modules/sevioBidAdapter.json +18 -0
  1406. package/metadata/modules/sharedIdSystem.json +1 -1
  1407. package/metadata/modules/sharethroughBidAdapter.json +1 -1
  1408. package/metadata/modules/showheroes-bsBidAdapter.json +1 -1
  1409. package/metadata/modules/silvermobBidAdapter.json +1 -1
  1410. package/metadata/modules/sirdataRtdProvider.json +1 -1
  1411. package/metadata/modules/slimcutBidAdapter.json +1 -1
  1412. package/metadata/modules/smaatoBidAdapter.json +1 -1
  1413. package/metadata/modules/smartadserverBidAdapter.json +1 -1
  1414. package/metadata/modules/smartxBidAdapter.json +1 -1
  1415. package/metadata/modules/smartyadsBidAdapter.json +1 -1
  1416. package/metadata/modules/smilewantedBidAdapter.json +1 -1
  1417. package/metadata/modules/snigelBidAdapter.json +1 -1
  1418. package/metadata/modules/sonaradsBidAdapter.json +1 -1
  1419. package/metadata/modules/sonobiBidAdapter.json +1 -1
  1420. package/metadata/modules/sovrnBidAdapter.json +4 -4
  1421. package/metadata/modules/sparteoBidAdapter.json +1 -1
  1422. package/metadata/modules/ssmasBidAdapter.json +1 -1
  1423. package/metadata/modules/sspBCBidAdapter.json +1 -1
  1424. package/metadata/modules/stackadaptBidAdapter.json +1 -1
  1425. package/metadata/modules/startioBidAdapter.json +1 -1
  1426. package/metadata/modules/stroeerCoreBidAdapter.json +1 -1
  1427. package/metadata/modules/stvBidAdapter.json +1 -1
  1428. package/metadata/modules/sublimeBidAdapter.json +1 -1
  1429. package/metadata/modules/taboolaBidAdapter.json +1 -1
  1430. package/metadata/modules/taboolaIdSystem.json +1 -1
  1431. package/metadata/modules/tappxBidAdapter.json +1 -1
  1432. package/metadata/modules/targetVideoBidAdapter.json +1 -1
  1433. package/metadata/modules/teadsBidAdapter.json +1 -1
  1434. package/metadata/modules/teadsIdSystem.json +1 -1
  1435. package/metadata/modules/tealBidAdapter.json +1 -1
  1436. package/metadata/modules/themoneytizerBidAdapter.json +3 -8
  1437. package/metadata/modules/tncIdSystem.json +1 -1
  1438. package/metadata/modules/topicsFpdModule.json +1 -1
  1439. package/metadata/modules/tripleliftBidAdapter.json +1 -1
  1440. package/metadata/modules/ttdBidAdapter.json +1 -1
  1441. package/metadata/modules/twistDigitalBidAdapter.json +1 -1
  1442. package/metadata/modules/underdogmediaBidAdapter.json +1 -1
  1443. package/metadata/modules/undertoneBidAdapter.json +1 -1
  1444. package/metadata/modules/unifiedIdSystem.json +1 -1
  1445. package/metadata/modules/unrulyBidAdapter.json +1 -1
  1446. package/metadata/modules/userId.json +1 -1
  1447. package/metadata/modules/validationFpdModule.json +1 -1
  1448. package/metadata/modules/vidazooBidAdapter.json +1 -1
  1449. package/metadata/modules/vidoomyBidAdapter.json +1 -1
  1450. package/metadata/modules/viewdeosDXBidAdapter.json +1 -1
  1451. package/metadata/modules/viouslyBidAdapter.json +1 -1
  1452. package/metadata/modules/visxBidAdapter.json +1 -1
  1453. package/metadata/modules/vlybyBidAdapter.json +1 -1
  1454. package/metadata/modules/voxBidAdapter.json +1 -1
  1455. package/metadata/modules/vrtcalBidAdapter.json +1 -1
  1456. package/metadata/modules/vuukleBidAdapter.json +1 -1
  1457. package/metadata/modules/weboramaRtdProvider.json +1 -1
  1458. package/metadata/modules/welectBidAdapter.json +1 -1
  1459. package/metadata/modules/yahooAdsBidAdapter.json +1 -1
  1460. package/metadata/modules/yieldlabBidAdapter.json +1 -1
  1461. package/metadata/modules/yieldliftBidAdapter.json +1 -1
  1462. package/metadata/modules/yieldloveBidAdapter.json +1 -1
  1463. package/metadata/modules/yieldmoBidAdapter.json +1 -1
  1464. package/metadata/modules/zeotapIdPlusIdSystem.json +1 -1
  1465. package/metadata/modules/zeta_globalBidAdapter.json +1 -1
  1466. package/metadata/modules/zeta_global_sspBidAdapter.json +1 -1
  1467. package/metadata/modules.json +23 -2
  1468. package/modules/1plusXRtdProvider.js +6 -2
  1469. package/modules/adWMGBidAdapter.js +8 -8
  1470. package/modules/admixerBidAdapter.js +9 -4
  1471. package/modules/adspiritBidAdapter.js +8 -8
  1472. package/modules/adtrgtmeBidAdapter.js +2 -2
  1473. package/modules/adxcgBidAdapter.js +2 -36
  1474. package/modules/amxBidAdapter.js +3 -3
  1475. package/modules/chromeAiRtdProvider.js +5 -5
  1476. package/modules/consentManagementGpp.ts +11 -11
  1477. package/modules/consentManagementTcf.ts +33 -33
  1478. package/modules/consentManagementUsp.ts +14 -14
  1479. package/modules/currency.ts +59 -59
  1480. package/modules/cwireBidAdapter.js +2 -2
  1481. package/modules/dailymotionBidAdapter.js +4 -4
  1482. package/modules/dchain.ts +4 -4
  1483. package/modules/dspxBidAdapter.js +8 -8
  1484. package/modules/eightPodBidAdapter.js +8 -8
  1485. package/modules/genericAnalyticsAdapter.ts +50 -50
  1486. package/modules/geolocationRtdProvider.ts +48 -48
  1487. package/modules/getintentBidAdapter.js +4 -2
  1488. package/modules/gmosspBidAdapter.js +1 -1
  1489. package/modules/gppControl_usstates.ts +40 -40
  1490. package/modules/gptPreAuction.ts +34 -34
  1491. package/modules/iasRtdProvider.js +87 -5
  1492. package/modules/intentIqAnalyticsAdapter.js +8 -8
  1493. package/modules/intentIqIdSystem.js +2 -2
  1494. package/modules/jwplayerRtdProvider.js +6 -2
  1495. package/modules/jwplayerVideoProvider.js +13 -9
  1496. package/modules/kubientBidAdapter.js +0 -1
  1497. package/modules/medianetAnalyticsAdapter.js +5 -5
  1498. package/modules/medianetBidAdapter.js +5 -1
  1499. package/modules/michaoBidAdapter.ts +7 -7
  1500. package/modules/multibid/index.ts +31 -31
  1501. package/modules/nexverseBidAdapter.js +1 -1
  1502. package/modules/nodalsAiRtdProvider.js +4 -2
  1503. package/modules/onetagBidAdapter.js +12 -12
  1504. package/modules/openxBidAdapter.js +6 -1
  1505. package/modules/prebidServerBidAdapter/index.ts +130 -130
  1506. package/modules/priceFloors.ts +131 -131
  1507. package/modules/pubmaticBidAdapter.js +21 -1
  1508. package/modules/pubmaticRtdProvider.js +143 -143
  1509. package/modules/pulsepointBidAdapter.js +3 -38
  1510. package/modules/readpeakBidAdapter.js +17 -17
  1511. package/modules/rtdModule/index.ts +8 -8
  1512. package/modules/rtdModule/spec.ts +30 -30
  1513. package/modules/rubiconBidAdapter.js +5 -1
  1514. package/modules/rumbleBidAdapter.js +128 -0
  1515. package/modules/rumbleBidAdapter.md +114 -0
  1516. package/modules/schain.ts +4 -4
  1517. package/modules/sevioBidAdapter.js +262 -0
  1518. package/modules/sevioBidAdapter.md +29 -0
  1519. package/modules/sharedIdSystem.ts +29 -29
  1520. package/modules/storageControl.ts +72 -72
  1521. package/modules/tcfControl.ts +60 -60
  1522. package/modules/themoneytizerBidAdapter.js +2 -4
  1523. package/modules/ttdBidAdapter.js +11 -1
  1524. package/modules/ttdBidAdapter.md +3 -1
  1525. package/modules/userId/index.ts +129 -119
  1526. package/modules/userId/spec.ts +136 -136
  1527. package/modules/validationFpdModule/index.ts +4 -4
  1528. package/modules/videoModule/index.ts +37 -37
  1529. package/modules/weboramaRtdProvider.js +30 -11
  1530. package/modules/welectBidAdapter.js +3 -3
  1531. package/modules/yandexBidAdapter.js +67 -24
  1532. package/package.json +2 -3
  1533. package/src/activities/params.js +6 -0
  1534. package/src/activities/redactor.ts +8 -8
  1535. package/src/adRendering.ts +61 -61
  1536. package/src/adUnits.ts +100 -100
  1537. package/src/adapterManager.ts +605 -605
  1538. package/src/adapters/bidderFactory.ts +99 -99
  1539. package/src/ajax.ts +39 -39
  1540. package/src/auction.ts +217 -217
  1541. package/src/banner.ts +28 -28
  1542. package/src/bidTTL.ts +16 -16
  1543. package/src/bidderSettings.ts +46 -46
  1544. package/src/bidfactory.ts +107 -107
  1545. package/src/config.ts +65 -65
  1546. package/src/consentHandler.ts +25 -25
  1547. package/src/constants.ts +14 -14
  1548. package/src/cpmBucketManager.ts +7 -7
  1549. package/src/events.ts +75 -75
  1550. package/src/fpd/enrichment.ts +8 -8
  1551. package/src/hook.ts +14 -14
  1552. package/src/mediaTypes.ts +16 -16
  1553. package/src/native.ts +62 -62
  1554. package/src/prebid.ts +362 -362
  1555. package/src/prebidGlobal.ts +18 -18
  1556. package/src/refererDetection.ts +54 -54
  1557. package/src/storageManager.ts +76 -73
  1558. package/src/targeting.ts +215 -215
  1559. package/src/types/common.d.ts +29 -29
  1560. package/src/types/local/buildOptions.d.ts +3 -3
  1561. package/src/types/local/shim.d.ts +6 -6
  1562. package/src/types/objects.d.ts +15 -15
  1563. package/src/types/ortb/common.d.ts +1 -1
  1564. package/src/types/ortb/ext/dchain.d.ts +69 -69
  1565. package/src/types/ortb/ext/dsa.d.ts +50 -50
  1566. package/src/types/ortb/request.d.ts +21 -21
  1567. package/src/types/ortb/response.d.ts +6 -6
  1568. package/src/userSync.ts +32 -32
  1569. package/src/utils/objects.ts +11 -11
  1570. package/src/utils/perfMetrics.ts +193 -193
  1571. package/src/utils/promise.ts +14 -14
  1572. package/src/utils/ttlCollection.ts +25 -25
  1573. package/src/video.ts +73 -73
  1574. package/src/videoCache.ts +60 -60
  1575. package/test/helpers/index_adapter_utils.js +1 -2
  1576. package/test/helpers/refererDetectionHelper.js +2 -2
  1577. package/test/mocks/timers.js +12 -9
  1578. package/test/spec/adloader_spec.js +13 -13
  1579. package/test/spec/config_spec.js +9 -3
  1580. package/test/spec/libraries/greedy/greedyPromise_spec.js +2 -2
  1581. package/test/spec/modules/1plusXRtdProvider_spec.js +2 -9
  1582. package/test/spec/modules/adgridBidAdapter_spec.js +6 -6
  1583. package/test/spec/modules/adkernelAdnBidAdapter_spec.js +127 -127
  1584. package/test/spec/modules/adkernelBidAdapter_spec.js +308 -308
  1585. package/test/spec/modules/admediaBidAdapter_spec.js +34 -34
  1586. package/test/spec/modules/adnuntiusBidAdapter_spec.js +7 -7
  1587. package/test/spec/modules/adspiritBidAdapter_spec.js +1 -1
  1588. package/test/spec/modules/adtrgtmeBidAdapter_spec.js +3 -3
  1589. package/test/spec/modules/adtrueBidAdapter_spec.js +19 -19
  1590. package/test/spec/modules/advertisingBidAdapter_spec.js +2 -2
  1591. package/test/spec/modules/bidmaticBidAdapter_spec.js +2 -2
  1592. package/test/spec/modules/datablocksBidAdapter_spec.js +115 -115
  1593. package/test/spec/modules/deepintentBidAdapter_spec.js +51 -51
  1594. package/test/spec/modules/dexertoBidAdapter_spec.js +16 -16
  1595. package/test/spec/modules/dochaseBidAdapter_spec.js +17 -17
  1596. package/test/spec/modules/dspxBidAdapter_spec.js +23 -23
  1597. package/test/spec/modules/ehealthcaresolutionsBidAdapter_spec.js +17 -17
  1598. package/test/spec/modules/enrichmentLiftMeasurement_spec.js +8 -8
  1599. package/test/spec/modules/equativBidAdapter_spec.js +1 -1
  1600. package/test/spec/modules/finativeBidAdapter_spec.js +11 -11
  1601. package/test/spec/modules/ftrackIdSystem_spec.js +16 -16
  1602. package/test/spec/modules/fwsspBidAdapter_spec.js +5 -5
  1603. package/test/spec/modules/hypelabBidAdapter_spec.js +9 -9
  1604. package/test/spec/modules/iasRtdProvider_spec.js +89 -8
  1605. package/test/spec/modules/intentIqIdSystem_spec.js +3 -3
  1606. package/test/spec/modules/invibesBidAdapter_spec.js +2 -2
  1607. package/test/spec/modules/kargoBidAdapter_spec.js +7 -7
  1608. package/test/spec/modules/lane4BidAdapter_spec.js +17 -17
  1609. package/test/spec/modules/lemmaDigitalBidAdapter_spec.js +37 -37
  1610. package/test/spec/modules/liveIntentExternalIdSystem_spec.js +5 -0
  1611. package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +5 -0
  1612. package/test/spec/modules/liveIntentIdSystem_spec.js +38 -0
  1613. package/test/spec/modules/liveIntentRtdProvider_spec.js +2 -2
  1614. package/test/spec/modules/mediaeyesBidAdapter_spec.js +166 -166
  1615. package/test/spec/modules/mediagoBidAdapter_spec.js +1 -1
  1616. package/test/spec/modules/medianetBidAdapter_spec.js +1724 -1707
  1617. package/test/spec/modules/mediasquareBidAdapter_spec.js +7 -7
  1618. package/test/spec/modules/nexx360BidAdapter_spec.js +6 -6
  1619. package/test/spec/modules/nobidBidAdapter_spec.js +16 -16
  1620. package/test/spec/modules/onetagBidAdapter_spec.js +47 -47
  1621. package/test/spec/modules/openxBidAdapter_spec.js +129 -0
  1622. package/test/spec/modules/optoutBidAdapter_spec.js +1 -1
  1623. package/test/spec/modules/orbitsoftBidAdapter_spec.js +85 -85
  1624. package/test/spec/modules/oxxionAnalyticsAdapter_spec.js +1 -1
  1625. package/test/spec/modules/ozoneBidAdapter_spec.js +439 -439
  1626. package/test/spec/modules/prebidServerBidAdapter_spec.js +2 -2
  1627. package/test/spec/modules/prismaBidAdapter_spec.js +6 -6
  1628. package/test/spec/modules/pubmaticBidAdapter_spec.js +73 -3
  1629. package/test/spec/modules/pubmaticRtdProvider_spec.js +1389 -1389
  1630. package/test/spec/modules/pwbidBidAdapter_spec.js +25 -25
  1631. package/test/spec/modules/relevadRtdProvider_spec.js +1 -1
  1632. package/test/spec/modules/relevatehealthBidAdapter_spec.js +16 -16
  1633. package/test/spec/modules/richaudienceBidAdapter_spec.js +10 -10
  1634. package/test/spec/modules/rubiconBidAdapter_spec.js +7 -7
  1635. package/test/spec/modules/rumbleBidAdapter_spec.js +125 -0
  1636. package/test/spec/modules/sevioBidAdapter_spec.js +209 -0
  1637. package/test/spec/modules/smaatoBidAdapter_spec.js +30 -30
  1638. package/test/spec/modules/smarticoBidAdapter_spec.js +10 -10
  1639. package/test/spec/modules/stvBidAdapter_spec.js +32 -32
  1640. package/test/spec/modules/tapnativeBidAdapter_spec.js +17 -17
  1641. package/test/spec/modules/themoneytizerBidAdapter_spec.js +0 -6
  1642. package/test/spec/modules/ttdBidAdapter_spec.js +27 -2
  1643. package/test/spec/modules/uid2IdSystem_spec.js +3 -3
  1644. package/test/spec/modules/userId_spec.js +41 -7
  1645. package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +1953 -154
  1646. package/test/spec/modules/yandexBidAdapter_spec.js +128 -0
  1647. package/test/spec/refererDetection_spec.js +11 -11
  1648. package/test/spec/unit/core/storageManager_spec.js +20 -1
  1649. package/test/spec/unit/core/targeting_spec.js +8 -8
  1650. package/test/spec/utils_spec.js +25 -25
@@ -1 +1 @@
1
- {"version":3,"file":"userSync.js","names":["deepClone","isPlainObject","logError","shuffle","logMessage","triggerPixel","insertUserSyncIframe","isArray","logWarn","isStr","isSafariBrowser","config","getCoreStorageManager","isActivityAllowed","registerActivityControl","ACTIVITY_SYNC_USER","ACTIVITY_PARAM_COMPONENT_NAME","ACTIVITY_PARAM_COMPONENT_TYPE","ACTIVITY_PARAM_SYNC_TYPE","ACTIVITY_PARAM_SYNC_URL","MODULE_TYPE_BIDDER","activityParams","USERSYNC_DEFAULT_CONFIG","syncEnabled","filterSettings","image","bidders","filter","syncsPerBidder","syncDelay","auctionDelay","setDefaults","storage","newUserSync","deps","publicApi","queue","getDefaultQueue","hasFiredBidder","Set","numAdapterBids","permittedPixels","iframe","usConfig","getConfig","conf","userSync","fs","all","Object","assign","regRule","params","allow","reason","syncType","bidder","canBidderRegisterSync","fireSyncs","browserSupportsCookies","loadIframes","fireImagePixels","e","forEachFire","fn","forEach","sync","bidderName","trackingPixelUrl","iframeUrl","removeImagePixelsForBidder","iframeSyncBidderName","imageSync","imageSyncBidderName","incrementAdapterBids","registerSync","type","url","has","Number","isAllowed","push","bidderDone","add","bind","shouldBidderBeBlocked","filterConfig","isFilterConfigValid","activeConfig","biddersToFilter","filterType","checkForFiltering","include","includes","exclude","activeConfigName","filterField","biddersField","Array","length","every","bidderInList","syncUsers","timeout","arguments","undefined","setTimeout","triggerUserSyncs","enableOverride","defineProperties","get","cookiesAreEnabled"],"sourceRoot":"../../..","sources":["src/userSync.ts"],"sourcesContent":["import {\n deepClone, isPlainObject, logError, shuffle, logMessage, triggerPixel, insertUserSyncIframe, isArray,\n logWarn, isStr, isSafariBrowser\n} from './utils.js';\nimport { config } from './config.js';\n\nimport { getCoreStorageManager } from './storageManager.js';\nimport {isActivityAllowed, registerActivityControl} from './activities/rules.js';\nimport {ACTIVITY_SYNC_USER} from './activities/activities.js';\nimport {\n ACTIVITY_PARAM_COMPONENT_NAME,\n ACTIVITY_PARAM_COMPONENT_TYPE,\n ACTIVITY_PARAM_SYNC_TYPE, ACTIVITY_PARAM_SYNC_URL\n} from './activities/params.js';\nimport {MODULE_TYPE_BIDDER} from './activities/modules.js';\nimport {activityParams} from './activities/activityParams.js';\nimport type {BidderCode} from \"./types/common.d.ts\";\n\nexport type SyncType = 'image' | 'iframe';\ntype SyncConfig = {\n bidders: '*' | BidderCode[];\n filter: 'include' | 'exclude'\n}\ntype FilterSettings = {[K in SyncType | 'all']?: SyncConfig};\n\nexport interface UserSyncConfig {\n /**\n * Enable/disable the user syncing feature. Default: true.\n */\n syncEnabled?: boolean;\n /**\n * Configure lists of adapters to include or exclude their user syncing based on the pixel type (image/iframe).\n */\n filterSettings?: FilterSettings;\n /**\n * Number of registered syncs allowed per adapter. Default: 5. To allow all, set to 0.\n */\n syncsPerBidder?: number;\n /**\n * Delay in milliseconds for user syncing (both bid adapter user sync pixels and userId module ID providers)\n * after the auction ends. Default: 3000. Ignored by the userId module if auctionDelay > 0.\n */\n syncDelay?: number;\n /**\n * Delay in milliseconds of the auction to retrieve user ids via the userId module before the auction starts.\n * Continues auction once all IDs are retrieved or delay times out. Does not apply to bid adapter user sync pixels. Default: 0.\n */\n auctionDelay?: number;\n /**\n * Enable/disable publisher to trigger user syncs by calling pbjs.triggerUserSyncs(). Default: false.\n */\n enableOverride?: boolean;\n /**\n * Enable/disable registered syncs for aliased adapters. Default: false.\n */\n aliasSyncEnabled?: boolean;\n}\n\nexport const USERSYNC_DEFAULT_CONFIG: UserSyncConfig = {\n syncEnabled: true,\n filterSettings: {\n image: {\n bidders: '*',\n filter: 'include'\n }\n },\n syncsPerBidder: 5,\n syncDelay: 3000,\n auctionDelay: 500\n};\n\n// Set userSync default values\nconfig.setDefaults({\n 'userSync': deepClone(USERSYNC_DEFAULT_CONFIG)\n});\n\nconst storage = getCoreStorageManager('usersync');\n\n/**\n * Factory function which creates a new UserSyncPool.\n *\n * @param {} deps Configuration options and dependencies which the\n * UserSync object needs in order to behave properly.\n */\nexport function newUserSync(deps) {\n const publicApi: any = {};\n // A queue of user syncs for each adapter\n // Let getDefaultQueue() set the defaults\n let queue = getDefaultQueue();\n\n // Whether or not user syncs have been trigger on this page load for a specific bidder\n const hasFiredBidder = new Set();\n // How many bids for each adapter\n let numAdapterBids = {};\n\n // for now - default both to false in case filterSettings config is absent/misconfigured\n const permittedPixels = {\n image: true,\n iframe: false\n };\n\n // Use what is in config by default\n let usConfig = deps.config;\n // Update if it's (re)set\n config.getConfig('userSync', (conf) => {\n // Added this logic for https://github.com/prebid/Prebid.js/issues/4864\n // if userSync.filterSettings does not contain image/all configs, merge in default image config to ensure image pixels are fired\n if (conf.userSync) {\n const fs = conf.userSync.filterSettings;\n if (isPlainObject(fs)) {\n if (!fs.image && !fs.all) {\n conf.userSync.filterSettings.image = {\n bidders: '*',\n filter: 'include'\n };\n }\n }\n }\n\n usConfig = Object.assign(usConfig, conf.userSync);\n });\n\n deps.regRule(ACTIVITY_SYNC_USER, 'userSync config', (params) => {\n if (!usConfig.syncEnabled) {\n return {allow: false, reason: 'syncs are disabled'}\n }\n if (params[ACTIVITY_PARAM_COMPONENT_TYPE] === MODULE_TYPE_BIDDER) {\n const syncType = params[ACTIVITY_PARAM_SYNC_TYPE];\n const bidder = params[ACTIVITY_PARAM_COMPONENT_NAME];\n if (!publicApi.canBidderRegisterSync(syncType, bidder)) {\n return {allow: false, reason: `${syncType} syncs are not enabled for ${bidder}`}\n }\n }\n });\n\n /**\n * @function getDefaultQueue\n * @summary Returns the default empty queue\n * @private\n * @return {object} A queue with no syncs\n */\n function getDefaultQueue() {\n return {\n image: [],\n iframe: []\n };\n }\n\n /**\n * @function fireSyncs\n * @summary Trigger all user syncs in the queue\n * @private\n */\n function fireSyncs() {\n if (!usConfig.syncEnabled || !deps.browserSupportsCookies) {\n return;\n }\n\n try {\n // Iframe syncs\n loadIframes();\n // Image pixels\n fireImagePixels();\n } catch (e) {\n return logError('Error firing user syncs', e);\n }\n // Reset the user sync queue\n queue = getDefaultQueue();\n }\n\n function forEachFire(queue, fn) {\n // Randomize the order of the pixels before firing\n // This is to avoid giving any bidder who has registered multiple syncs\n // any preferential treatment and balancing them out\n shuffle(queue).forEach(fn);\n }\n\n /**\n * @function fireImagePixels\n * @summary Loops through user sync pixels and fires each one\n * @private\n */\n function fireImagePixels() {\n if (!permittedPixels.image) {\n return;\n }\n forEachFire(queue.image, (sync) => {\n const [bidderName, trackingPixelUrl] = sync;\n logMessage(`Invoking image pixel user sync for bidder: ${bidderName}`);\n // Create image object and add the src url\n triggerPixel(trackingPixelUrl);\n });\n }\n\n /**\n * @function loadIframes\n * @summary Loops through iframe syncs and loads an iframe element into the page\n * @private\n */\n function loadIframes() {\n if (!(permittedPixels.iframe)) {\n return;\n }\n\n forEachFire(queue.iframe, (sync) => {\n const [bidderName, iframeUrl] = sync;\n logMessage(`Invoking iframe user sync for bidder: ${bidderName}`);\n // Insert iframe into DOM\n insertUserSyncIframe(iframeUrl);\n // for a bidder, if iframe sync is present then remove image pixel\n removeImagePixelsForBidder(queue, bidderName);\n });\n }\n\n function removeImagePixelsForBidder(queue, iframeSyncBidderName) {\n queue.image = queue.image.filter(imageSync => {\n const imageSyncBidderName = imageSync[0];\n return imageSyncBidderName !== iframeSyncBidderName\n });\n }\n\n /**\n * @function incrementAdapterBids\n * @summary Increment the count of user syncs queue for the adapter\n * @private\n * @param {object} numAdapterBids The object contain counts for all adapters\n * @param {string} bidder The name of the bidder adding a sync\n * @returns {object} The updated version of numAdapterBids\n */\n function incrementAdapterBids(numAdapterBids, bidder) {\n if (!numAdapterBids[bidder]) {\n numAdapterBids[bidder] = 1;\n } else {\n numAdapterBids[bidder] += 1;\n }\n return numAdapterBids;\n }\n\n /**\n * @function registerSync\n * @summary Add sync for this bidder to a queue to be fired later\n * @public\n * @param {string} type The type of the sync including image, iframe\n * @param {string} bidder The name of the adapter. e.g. \"rubicon\"\n * @param {string} url Either the pixel url or iframe url depending on the type\n * @example <caption>Using Image Sync</caption>\n * // registerSync(type, adapter, pixelUrl)\n * userSync.registerSync('image', 'rubicon', 'http://example.com/pixel')\n */\n publicApi.registerSync = (type, bidder, url) => {\n if (hasFiredBidder.has(bidder)) {\n return logMessage(`already fired syncs for \"${bidder}\", ignoring registerSync call`);\n }\n if (!usConfig.syncEnabled || !isArray(queue[type])) {\n return logWarn(`User sync type \"${type}\" not supported`);\n }\n if (!bidder) {\n return logWarn(`Bidder is required for registering sync`);\n }\n if (usConfig.syncsPerBidder !== 0 && Number(numAdapterBids[bidder]) >= usConfig.syncsPerBidder) {\n return logWarn(`Number of user syncs exceeded for \"${bidder}\"`);\n }\n\n if (deps.isAllowed(ACTIVITY_SYNC_USER, activityParams(MODULE_TYPE_BIDDER, bidder, {\n [ACTIVITY_PARAM_SYNC_TYPE]: type,\n [ACTIVITY_PARAM_SYNC_URL]: url\n }))) {\n // the bidder's pixel has passed all checks and is allowed to register\n queue[type].push([bidder, url]);\n numAdapterBids = incrementAdapterBids(numAdapterBids, bidder);\n }\n };\n\n /**\n * Mark a bidder as done with its user syncs - no more will be accepted from them in this session.\n * @param {string} bidderCode\n */\n publicApi.bidderDone = hasFiredBidder.add.bind(hasFiredBidder);\n\n /**\n * @function shouldBidderBeBlocked\n * @summary Check filterSettings logic to determine if the bidder should be prevented from registering their userSync tracker\n * @private\n * @param {string} type The type of the sync; either image or iframe\n * @param {string} bidder The name of the adapter. e.g. \"rubicon\"\n * @returns {boolean} true => bidder is not allowed to register; false => bidder can register\n */\n function shouldBidderBeBlocked(type, bidder) {\n const filterConfig = usConfig.filterSettings;\n\n // apply the filter check if the config object is there (eg filterSettings.iframe exists) and if the config object is properly setup\n if (isFilterConfigValid(filterConfig, type)) {\n permittedPixels[type] = true;\n\n const activeConfig = (filterConfig.all) ? filterConfig.all : filterConfig[type];\n const biddersToFilter = (activeConfig.bidders === '*') ? [bidder] : activeConfig.bidders;\n const filterType = activeConfig.filter || 'include'; // set default if undefined\n\n // return true if the bidder is either: not part of the include (ie outside the whitelist) or part of the exclude (ie inside the blacklist)\n const checkForFiltering = {\n 'include': (bidders, bidder) => !bidders.includes(bidder),\n 'exclude': (bidders, bidder) => bidders.includes(bidder)\n }\n return checkForFiltering[filterType](biddersToFilter, bidder);\n }\n return !permittedPixels[type];\n }\n\n /**\n * @function isFilterConfigValid\n * @summary Check if the filterSettings object in the userSync config is setup properly\n * @private\n * @param {object} filterConfig sub-config object taken from filterSettings\n * @param {string} type The type of the sync; either image or iframe\n * @returns {boolean} true => config is setup correctly, false => setup incorrectly or filterConfig[type] is not present\n */\n function isFilterConfigValid(filterConfig, type) {\n if (filterConfig.all && filterConfig[type]) {\n logWarn(`Detected presence of the \"filterSettings.all\" and \"filterSettings.${type}\" in userSync config. You cannot mix \"all\" with \"iframe/image\" configs; they are mutually exclusive.`);\n return false;\n }\n\n const activeConfig = (filterConfig.all) ? filterConfig.all : filterConfig[type];\n const activeConfigName = (filterConfig.all) ? 'all' : type;\n\n // if current pixel type isn't part of the config's logic, skip rest of the config checks...\n // we return false to skip subsequent filter checks in shouldBidderBeBlocked() function\n if (!activeConfig) {\n return false;\n }\n\n const filterField = activeConfig.filter;\n const biddersField = activeConfig.bidders;\n\n if (filterField && filterField !== 'include' && filterField !== 'exclude') {\n logWarn(`UserSync \"filterSettings.${activeConfigName}.filter\" setting '${filterField}' is not a valid option; use either 'include' or 'exclude'.`);\n return false;\n }\n\n if (biddersField !== '*' && !(Array.isArray(biddersField) && biddersField.length > 0 && biddersField.every(bidderInList => isStr(bidderInList) && bidderInList !== '*'))) {\n logWarn(`Detected an invalid setup in userSync \"filterSettings.${activeConfigName}.bidders\"; use either '*' (to represent all bidders) or an array of bidders.`);\n return false;\n }\n\n return true;\n }\n\n /**\n * @function syncUsers\n * @summary Trigger all the user syncs based on publisher-defined timeout\n * @public\n * @param {number} timeout The delay in ms before syncing data - default 0\n */\n publicApi.syncUsers = (timeout = 0) => {\n if (timeout) {\n return setTimeout(fireSyncs, Number(timeout));\n }\n fireSyncs();\n };\n\n /**\n * @function triggerUserSyncs\n * @summary A `syncUsers` wrapper for determining if enableOverride has been turned on\n * @public\n */\n publicApi.triggerUserSyncs = () => {\n if (usConfig.enableOverride) {\n publicApi.syncUsers();\n }\n };\n\n publicApi.canBidderRegisterSync = (type, bidder) => {\n if (usConfig.filterSettings) {\n if (shouldBidderBeBlocked(type, bidder)) {\n return false;\n }\n }\n return true;\n };\n return publicApi;\n}\n\nexport const userSync = newUserSync(Object.defineProperties({\n config: config.getConfig('userSync'),\n isAllowed: isActivityAllowed,\n regRule: registerActivityControl,\n}, {\n browserSupportsCookies: {\n get: function() {\n // call storage lazily to give time for consent data to be available\n return !isSafariBrowser() && storage.cookiesAreEnabled();\n }\n }\n}));\n\n/**\n * @typedef {Object} UserSyncConfig\n *\n * @property {boolean} enableOverride\n * @property {boolean} syncEnabled\n * @property {number} syncsPerBidder\n * @property {string[]} enabledBidders\n * @property {Object} filterSettings\n */\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"userSync.js","names":["deepClone","isPlainObject","logError","shuffle","logMessage","triggerPixel","insertUserSyncIframe","isArray","logWarn","isStr","isSafariBrowser","config","getCoreStorageManager","isActivityAllowed","registerActivityControl","ACTIVITY_SYNC_USER","ACTIVITY_PARAM_COMPONENT_NAME","ACTIVITY_PARAM_COMPONENT_TYPE","ACTIVITY_PARAM_SYNC_TYPE","ACTIVITY_PARAM_SYNC_URL","MODULE_TYPE_BIDDER","activityParams","USERSYNC_DEFAULT_CONFIG","syncEnabled","filterSettings","image","bidders","filter","syncsPerBidder","syncDelay","auctionDelay","setDefaults","storage","newUserSync","deps","publicApi","queue","getDefaultQueue","hasFiredBidder","Set","numAdapterBids","permittedPixels","iframe","usConfig","getConfig","conf","userSync","fs","all","Object","assign","regRule","params","allow","reason","syncType","bidder","canBidderRegisterSync","fireSyncs","browserSupportsCookies","loadIframes","fireImagePixels","e","forEachFire","fn","forEach","sync","bidderName","trackingPixelUrl","iframeUrl","removeImagePixelsForBidder","iframeSyncBidderName","imageSync","imageSyncBidderName","incrementAdapterBids","registerSync","type","url","has","Number","isAllowed","push","bidderDone","add","bind","shouldBidderBeBlocked","filterConfig","isFilterConfigValid","activeConfig","biddersToFilter","filterType","checkForFiltering","include","includes","exclude","activeConfigName","filterField","biddersField","Array","length","every","bidderInList","syncUsers","timeout","arguments","undefined","setTimeout","triggerUserSyncs","enableOverride","defineProperties","get","cookiesAreEnabled"],"sourceRoot":"../../..","sources":["src/userSync.ts"],"sourcesContent":["import {\n deepClone, isPlainObject, logError, shuffle, logMessage, triggerPixel, insertUserSyncIframe, isArray,\n logWarn, isStr, isSafariBrowser\n} from './utils.js';\nimport { config } from './config.js';\n\nimport { getCoreStorageManager } from './storageManager.js';\nimport {isActivityAllowed, registerActivityControl} from './activities/rules.js';\nimport {ACTIVITY_SYNC_USER} from './activities/activities.js';\nimport {\n ACTIVITY_PARAM_COMPONENT_NAME,\n ACTIVITY_PARAM_COMPONENT_TYPE,\n ACTIVITY_PARAM_SYNC_TYPE, ACTIVITY_PARAM_SYNC_URL\n} from './activities/params.js';\nimport {MODULE_TYPE_BIDDER} from './activities/modules.js';\nimport {activityParams} from './activities/activityParams.js';\nimport type {BidderCode} from \"./types/common.d.ts\";\n\nexport type SyncType = 'image' | 'iframe';\ntype SyncConfig = {\n bidders: '*' | BidderCode[];\n filter: 'include' | 'exclude'\n}\ntype FilterSettings = {[K in SyncType | 'all']?: SyncConfig};\n\nexport interface UserSyncConfig {\n /**\n * Enable/disable the user syncing feature. Default: true.\n */\n syncEnabled?: boolean;\n /**\n * Configure lists of adapters to include or exclude their user syncing based on the pixel type (image/iframe).\n */\n filterSettings?: FilterSettings;\n /**\n * Number of registered syncs allowed per adapter. Default: 5. To allow all, set to 0.\n */\n syncsPerBidder?: number;\n /**\n * Delay in milliseconds for user syncing (both bid adapter user sync pixels and userId module ID providers)\n * after the auction ends. Default: 3000. Ignored by the userId module if auctionDelay > 0.\n */\n syncDelay?: number;\n /**\n * Delay in milliseconds of the auction to retrieve user ids via the userId module before the auction starts.\n * Continues auction once all IDs are retrieved or delay times out. Does not apply to bid adapter user sync pixels. Default: 0.\n */\n auctionDelay?: number;\n /**\n * Enable/disable publisher to trigger user syncs by calling pbjs.triggerUserSyncs(). Default: false.\n */\n enableOverride?: boolean;\n /**\n * Enable/disable registered syncs for aliased adapters. Default: false.\n */\n aliasSyncEnabled?: boolean;\n}\n\nexport const USERSYNC_DEFAULT_CONFIG: UserSyncConfig = {\n syncEnabled: true,\n filterSettings: {\n image: {\n bidders: '*',\n filter: 'include'\n }\n },\n syncsPerBidder: 5,\n syncDelay: 3000,\n auctionDelay: 500\n};\n\n// Set userSync default values\nconfig.setDefaults({\n 'userSync': deepClone(USERSYNC_DEFAULT_CONFIG)\n});\n\nconst storage = getCoreStorageManager('usersync');\n\n/**\n * Factory function which creates a new UserSyncPool.\n *\n * @param {} deps Configuration options and dependencies which the\n * UserSync object needs in order to behave properly.\n */\nexport function newUserSync(deps) {\n const publicApi: any = {};\n // A queue of user syncs for each adapter\n // Let getDefaultQueue() set the defaults\n let queue = getDefaultQueue();\n\n // Whether or not user syncs have been trigger on this page load for a specific bidder\n const hasFiredBidder = new Set();\n // How many bids for each adapter\n let numAdapterBids = {};\n\n // for now - default both to false in case filterSettings config is absent/misconfigured\n const permittedPixels = {\n image: true,\n iframe: false\n };\n\n // Use what is in config by default\n let usConfig = deps.config;\n // Update if it's (re)set\n config.getConfig('userSync', (conf) => {\n // Added this logic for https://github.com/prebid/Prebid.js/issues/4864\n // if userSync.filterSettings does not contain image/all configs, merge in default image config to ensure image pixels are fired\n if (conf.userSync) {\n const fs = conf.userSync.filterSettings;\n if (isPlainObject(fs)) {\n if (!fs.image && !fs.all) {\n conf.userSync.filterSettings.image = {\n bidders: '*',\n filter: 'include'\n };\n }\n }\n }\n\n usConfig = Object.assign(usConfig, conf.userSync);\n });\n\n deps.regRule(ACTIVITY_SYNC_USER, 'userSync config', (params) => {\n if (!usConfig.syncEnabled) {\n return {allow: false, reason: 'syncs are disabled'}\n }\n if (params[ACTIVITY_PARAM_COMPONENT_TYPE] === MODULE_TYPE_BIDDER) {\n const syncType = params[ACTIVITY_PARAM_SYNC_TYPE];\n const bidder = params[ACTIVITY_PARAM_COMPONENT_NAME];\n if (!publicApi.canBidderRegisterSync(syncType, bidder)) {\n return {allow: false, reason: `${syncType} syncs are not enabled for ${bidder}`}\n }\n }\n });\n\n /**\n * @function getDefaultQueue\n * @summary Returns the default empty queue\n * @private\n * @return {object} A queue with no syncs\n */\n function getDefaultQueue() {\n return {\n image: [],\n iframe: []\n };\n }\n\n /**\n * @function fireSyncs\n * @summary Trigger all user syncs in the queue\n * @private\n */\n function fireSyncs() {\n if (!usConfig.syncEnabled || !deps.browserSupportsCookies) {\n return;\n }\n\n try {\n // Iframe syncs\n loadIframes();\n // Image pixels\n fireImagePixels();\n } catch (e) {\n return logError('Error firing user syncs', e);\n }\n // Reset the user sync queue\n queue = getDefaultQueue();\n }\n\n function forEachFire(queue, fn) {\n // Randomize the order of the pixels before firing\n // This is to avoid giving any bidder who has registered multiple syncs\n // any preferential treatment and balancing them out\n shuffle(queue).forEach(fn);\n }\n\n /**\n * @function fireImagePixels\n * @summary Loops through user sync pixels and fires each one\n * @private\n */\n function fireImagePixels() {\n if (!permittedPixels.image) {\n return;\n }\n forEachFire(queue.image, (sync) => {\n const [bidderName, trackingPixelUrl] = sync;\n logMessage(`Invoking image pixel user sync for bidder: ${bidderName}`);\n // Create image object and add the src url\n triggerPixel(trackingPixelUrl);\n });\n }\n\n /**\n * @function loadIframes\n * @summary Loops through iframe syncs and loads an iframe element into the page\n * @private\n */\n function loadIframes() {\n if (!(permittedPixels.iframe)) {\n return;\n }\n\n forEachFire(queue.iframe, (sync) => {\n const [bidderName, iframeUrl] = sync;\n logMessage(`Invoking iframe user sync for bidder: ${bidderName}`);\n // Insert iframe into DOM\n insertUserSyncIframe(iframeUrl);\n // for a bidder, if iframe sync is present then remove image pixel\n removeImagePixelsForBidder(queue, bidderName);\n });\n }\n\n function removeImagePixelsForBidder(queue, iframeSyncBidderName) {\n queue.image = queue.image.filter(imageSync => {\n const imageSyncBidderName = imageSync[0];\n return imageSyncBidderName !== iframeSyncBidderName\n });\n }\n\n /**\n * @function incrementAdapterBids\n * @summary Increment the count of user syncs queue for the adapter\n * @private\n * @param {object} numAdapterBids The object contain counts for all adapters\n * @param {string} bidder The name of the bidder adding a sync\n * @returns {object} The updated version of numAdapterBids\n */\n function incrementAdapterBids(numAdapterBids, bidder) {\n if (!numAdapterBids[bidder]) {\n numAdapterBids[bidder] = 1;\n } else {\n numAdapterBids[bidder] += 1;\n }\n return numAdapterBids;\n }\n\n /**\n * @function registerSync\n * @summary Add sync for this bidder to a queue to be fired later\n * @public\n * @param {string} type The type of the sync including image, iframe\n * @param {string} bidder The name of the adapter. e.g. \"rubicon\"\n * @param {string} url Either the pixel url or iframe url depending on the type\n * @example <caption>Using Image Sync</caption>\n * // registerSync(type, adapter, pixelUrl)\n * userSync.registerSync('image', 'rubicon', 'http://example.com/pixel')\n */\n publicApi.registerSync = (type, bidder, url) => {\n if (hasFiredBidder.has(bidder)) {\n return logMessage(`already fired syncs for \"${bidder}\", ignoring registerSync call`);\n }\n if (!usConfig.syncEnabled || !isArray(queue[type])) {\n return logWarn(`User sync type \"${type}\" not supported`);\n }\n if (!bidder) {\n return logWarn(`Bidder is required for registering sync`);\n }\n if (usConfig.syncsPerBidder !== 0 && Number(numAdapterBids[bidder]) >= usConfig.syncsPerBidder) {\n return logWarn(`Number of user syncs exceeded for \"${bidder}\"`);\n }\n\n if (deps.isAllowed(ACTIVITY_SYNC_USER, activityParams(MODULE_TYPE_BIDDER, bidder, {\n [ACTIVITY_PARAM_SYNC_TYPE]: type,\n [ACTIVITY_PARAM_SYNC_URL]: url\n }))) {\n // the bidder's pixel has passed all checks and is allowed to register\n queue[type].push([bidder, url]);\n numAdapterBids = incrementAdapterBids(numAdapterBids, bidder);\n }\n };\n\n /**\n * Mark a bidder as done with its user syncs - no more will be accepted from them in this session.\n * @param {string} bidderCode\n */\n publicApi.bidderDone = hasFiredBidder.add.bind(hasFiredBidder);\n\n /**\n * @function shouldBidderBeBlocked\n * @summary Check filterSettings logic to determine if the bidder should be prevented from registering their userSync tracker\n * @private\n * @param {string} type The type of the sync; either image or iframe\n * @param {string} bidder The name of the adapter. e.g. \"rubicon\"\n * @returns {boolean} true => bidder is not allowed to register; false => bidder can register\n */\n function shouldBidderBeBlocked(type, bidder) {\n const filterConfig = usConfig.filterSettings;\n\n // apply the filter check if the config object is there (eg filterSettings.iframe exists) and if the config object is properly setup\n if (isFilterConfigValid(filterConfig, type)) {\n permittedPixels[type] = true;\n\n const activeConfig = (filterConfig.all) ? filterConfig.all : filterConfig[type];\n const biddersToFilter = (activeConfig.bidders === '*') ? [bidder] : activeConfig.bidders;\n const filterType = activeConfig.filter || 'include'; // set default if undefined\n\n // return true if the bidder is either: not part of the include (ie outside the whitelist) or part of the exclude (ie inside the blacklist)\n const checkForFiltering = {\n 'include': (bidders, bidder) => !bidders.includes(bidder),\n 'exclude': (bidders, bidder) => bidders.includes(bidder)\n }\n return checkForFiltering[filterType](biddersToFilter, bidder);\n }\n return !permittedPixels[type];\n }\n\n /**\n * @function isFilterConfigValid\n * @summary Check if the filterSettings object in the userSync config is setup properly\n * @private\n * @param {object} filterConfig sub-config object taken from filterSettings\n * @param {string} type The type of the sync; either image or iframe\n * @returns {boolean} true => config is setup correctly, false => setup incorrectly or filterConfig[type] is not present\n */\n function isFilterConfigValid(filterConfig, type) {\n if (filterConfig.all && filterConfig[type]) {\n logWarn(`Detected presence of the \"filterSettings.all\" and \"filterSettings.${type}\" in userSync config. You cannot mix \"all\" with \"iframe/image\" configs; they are mutually exclusive.`);\n return false;\n }\n\n const activeConfig = (filterConfig.all) ? filterConfig.all : filterConfig[type];\n const activeConfigName = (filterConfig.all) ? 'all' : type;\n\n // if current pixel type isn't part of the config's logic, skip rest of the config checks...\n // we return false to skip subsequent filter checks in shouldBidderBeBlocked() function\n if (!activeConfig) {\n return false;\n }\n\n const filterField = activeConfig.filter;\n const biddersField = activeConfig.bidders;\n\n if (filterField && filterField !== 'include' && filterField !== 'exclude') {\n logWarn(`UserSync \"filterSettings.${activeConfigName}.filter\" setting '${filterField}' is not a valid option; use either 'include' or 'exclude'.`);\n return false;\n }\n\n if (biddersField !== '*' && !(Array.isArray(biddersField) && biddersField.length > 0 && biddersField.every(bidderInList => isStr(bidderInList) && bidderInList !== '*'))) {\n logWarn(`Detected an invalid setup in userSync \"filterSettings.${activeConfigName}.bidders\"; use either '*' (to represent all bidders) or an array of bidders.`);\n return false;\n }\n\n return true;\n }\n\n /**\n * @function syncUsers\n * @summary Trigger all the user syncs based on publisher-defined timeout\n * @public\n * @param {number} timeout The delay in ms before syncing data - default 0\n */\n publicApi.syncUsers = (timeout = 0) => {\n if (timeout) {\n return setTimeout(fireSyncs, Number(timeout));\n }\n fireSyncs();\n };\n\n /**\n * @function triggerUserSyncs\n * @summary A `syncUsers` wrapper for determining if enableOverride has been turned on\n * @public\n */\n publicApi.triggerUserSyncs = () => {\n if (usConfig.enableOverride) {\n publicApi.syncUsers();\n }\n };\n\n publicApi.canBidderRegisterSync = (type, bidder) => {\n if (usConfig.filterSettings) {\n if (shouldBidderBeBlocked(type, bidder)) {\n return false;\n }\n }\n return true;\n };\n return publicApi;\n}\n\nexport const userSync = newUserSync(Object.defineProperties({\n config: config.getConfig('userSync'),\n isAllowed: isActivityAllowed,\n regRule: registerActivityControl,\n}, {\n browserSupportsCookies: {\n get: function() {\n // call storage lazily to give time for consent data to be available\n return !isSafariBrowser() && storage.cookiesAreEnabled();\n }\n }\n}));\n\n/**\n * @typedef {Object} UserSyncConfig\n *\n * @property {boolean} enableOverride\n * @property {boolean} syncEnabled\n * @property {number} syncsPerBidder\n * @property {string[]} enabledBidders\n * @property {Object} filterSettings\n */\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"objects.js","names":["klona","deepClone","obj","getDefinedParams","object","params","filter","param","reduce","bid","Object","assign","tStr","tFn","tNumb","tObject","tBoolean","toString","prototype","isA","_t","call","isFn","isStr","isArray","Array","bind","isNumber","isPlainObject","isBoolean","isInteger","Number","isArrayOfNums","val","size","length","every","v"],"sourceRoot":"../../../..","sources":["src/utils/objects.ts"],"sourcesContent":["import {klona} from \"klona/json\";\nimport type {AnyFunction} from \"../types/functions.d.ts\";\nimport type {Repeat} from \"../types/tuples.d.ts\";\n\nexport function deepClone<T>(obj: T): T {\n return (klona(obj) || {}) as T;\n}\n\n/**\n * Build an object consisting of only defined parameters to avoid creating an\n * object with defined keys and undefined values.\n * @param object The object to pick defined params out of\n * @param params An array of strings representing properties to look for in the object\n * @returns An object containing all the specified values that are defined\n */\nexport function getDefinedParams<T extends object, K extends readonly (keyof T)[]>(object: T, params: K): Partial<Pick<T, K[number]>> {\n return params\n .filter(param => object[param])\n .reduce((bid, param) => Object.assign(bid, { [param]: object[param] }), {});\n}\n\nconst tStr = 'String';\nconst tFn = 'Function';\nconst tNumb = 'Number';\nconst tObject = 'Object';\nconst tBoolean = 'Boolean';\nconst toString = Object.prototype.toString;\n\n/**\n * Return if the object is of the\n * given type.\n * @param {*} object to test\n * @param {String} _t type string (e.g., Array)\n * @return {Boolean} if object is of type _t\n */\nexport function isA(object, _t) {\n return toString.call(object) === '[object ' + _t + ']';\n}\n\nexport function isFn(object): object is AnyFunction {\n return isA(object, tFn);\n}\n\nexport function isStr(object): object is string {\n return isA(object, tStr);\n}\n\nexport const isArray: (object) => object is any[] = Array.isArray.bind(Array);\n\nexport function isNumber(object): object is number {\n return isA(object, tNumb);\n}\n\nexport function isPlainObject(object): object is Record<any, unknown> {\n return isA(object, tObject);\n}\n\nexport function isBoolean(object): object is boolean {\n return isA(object, tBoolean);\n}\n\n/**\n * Checks input is integer or not\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n */\nexport const isInteger: (value) => value is number = Number.isInteger.bind(Number);\n\nexport function isArrayOfNums<L extends number>(val, size?: L): val is Repeat<number, L> {\n return (isArray(val)) && ((size) ? val.length === size : true) && (val.every(v => isInteger(v)));\n}\n"],"mappings":"AAAA,SAAQA,KAAK,QAAO,YAAY;AAIhC,OAAO,SAASC,SAASA,CAAIC,GAAM,EAAK;EACpC,OAAQF,KAAK,CAACE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAmDC,MAAS,EAAEC,MAAS,EAA+B;EAClI,OAAOA,MAAM,CACRC,MAAM,CAACC,KAAK,IAAIH,MAAM,CAACG,KAAK,CAAC,CAAC,CAC9BC,MAAM,CAAC,CAACC,GAAG,EAAEF,KAAK,KAAKG,MAAM,CAACC,MAAM,CAACF,GAAG,EAAE;IAAE,CAACF,KAAK,GAAGH,MAAM,CAACG,KAAK;EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnF;AAEA,MAAMK,IAAI,GAAG,QAAQ;AACrB,MAAMC,GAAG,GAAG,UAAU;AACtB,MAAMC,KAAK,GAAG,QAAQ;AACtB,MAAMC,OAAO,GAAG,QAAQ;AACxB,MAAMC,QAAQ,GAAG,SAAS;AAC1B,MAAMC,QAAQ,GAAGP,MAAM,CAACQ,SAAS,CAACD,QAAQ;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,GAAGA,CAACf,MAAM,EAAEgB,EAAE,EAAE;EAC5B,OAAOH,QAAQ,CAACI,IAAI,CAACjB,MAAM,CAAC,KAAK,UAAU,GAAGgB,EAAE,GAAG,GAAG;AAC1D;AAEA,OAAO,SAASE,IAAIA,CAAClB,MAAM,EAAyB;EAChD,OAAOe,GAAG,CAACf,MAAM,EAAES,GAAG,CAAC;AAC3B;AAEA,OAAO,SAASU,KAAKA,CAACnB,MAAM,EAAoB;EAC5C,OAAOe,GAAG,CAACf,MAAM,EAAEQ,IAAI,CAAC;AAC5B;AAEA,OAAO,MAAMY,OAAoC,GAAGC,KAAK,CAACD,OAAO,CAACE,IAAI,CAACD,KAAK,CAAC;AAE7E,OAAO,SAASE,QAAQA,CAACvB,MAAM,EAAoB;EAC/C,OAAOe,GAAG,CAACf,MAAM,EAAEU,KAAK,CAAC;AAC7B;AAEA,OAAO,SAASc,aAAaA,CAACxB,MAAM,EAAkC;EAClE,OAAOe,GAAG,CAACf,MAAM,EAAEW,OAAO,CAAC;AAC/B;AAEA,OAAO,SAASc,SAASA,CAACzB,MAAM,EAAqB;EACjD,OAAOe,GAAG,CAACf,MAAM,EAAEY,QAAQ,CAAC;AAChC;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMc,SAAqC,GAAGC,MAAM,CAACD,SAAS,CAACJ,IAAI,CAACK,MAAM,CAAC;AAElF,OAAO,SAASC,aAAaA,CAAmBC,GAAG,EAAEC,IAAQ,EAA4B;EACrF,OAAQV,OAAO,CAACS,GAAG,CAAC,KAAOC,IAAI,GAAID,GAAG,CAACE,MAAM,KAAKD,IAAI,GAAG,IAAI,CAAC,IAAKD,GAAG,CAACG,KAAK,CAACC,CAAC,IAAIP,SAAS,CAACO,CAAC,CAAC,CAAE;AACpG","ignoreList":[]}
1
+ {"version":3,"file":"objects.js","names":["klona","deepClone","obj","getDefinedParams","object","params","filter","param","reduce","bid","Object","assign","tStr","tFn","tNumb","tObject","tBoolean","toString","prototype","isA","_t","call","isFn","isStr","isArray","Array","bind","isNumber","isPlainObject","isBoolean","isInteger","Number","isArrayOfNums","val","size","length","every","v"],"sourceRoot":"../../../..","sources":["src/utils/objects.ts"],"sourcesContent":["import {klona} from \"klona/json\";\nimport type {AnyFunction} from \"../types/functions.d.ts\";\nimport type {Repeat} from \"../types/tuples.d.ts\";\n\nexport function deepClone<T>(obj: T): T {\n return (klona(obj) || {}) as T;\n}\n\n/**\n * Build an object consisting of only defined parameters to avoid creating an\n * object with defined keys and undefined values.\n * @param object The object to pick defined params out of\n * @param params An array of strings representing properties to look for in the object\n * @returns An object containing all the specified values that are defined\n */\nexport function getDefinedParams<T extends object, K extends readonly (keyof T)[]>(object: T, params: K): Partial<Pick<T, K[number]>> {\n return params\n .filter(param => object[param])\n .reduce((bid, param) => Object.assign(bid, { [param]: object[param] }), {});\n}\n\nconst tStr = 'String';\nconst tFn = 'Function';\nconst tNumb = 'Number';\nconst tObject = 'Object';\nconst tBoolean = 'Boolean';\nconst toString = Object.prototype.toString;\n\n/**\n * Return if the object is of the\n * given type.\n * @param {*} object to test\n * @param {String} _t type string (e.g., Array)\n * @return {Boolean} if object is of type _t\n */\nexport function isA(object, _t) {\n return toString.call(object) === '[object ' + _t + ']';\n}\n\nexport function isFn(object): object is AnyFunction {\n return isA(object, tFn);\n}\n\nexport function isStr(object): object is string {\n return isA(object, tStr);\n}\n\nexport const isArray: (object) => object is any[] = Array.isArray.bind(Array);\n\nexport function isNumber(object): object is number {\n return isA(object, tNumb);\n}\n\nexport function isPlainObject(object): object is Record<any, unknown> {\n return isA(object, tObject);\n}\n\nexport function isBoolean(object): object is boolean {\n return isA(object, tBoolean);\n}\n\n/**\n * Checks input is integer or not\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n */\nexport const isInteger: (value) => value is number = Number.isInteger.bind(Number);\n\nexport function isArrayOfNums<L extends number>(val, size?: L): val is Repeat<number, L> {\n return (isArray(val)) && ((size) ? val.length === size : true) && (val.every(v => isInteger(v)));\n}\n"],"mappings":"AAAA,SAAQA,KAAK,QAAO,YAAY;AAIhC,OAAO,SAASC,SAASA,CAAIC,GAAM,EAAK;EACtC,OAAQF,KAAK,CAACE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAmDC,MAAS,EAAEC,MAAS,EAA+B;EACpI,OAAOA,MAAM,CACVC,MAAM,CAACC,KAAK,IAAIH,MAAM,CAACG,KAAK,CAAC,CAAC,CAC9BC,MAAM,CAAC,CAACC,GAAG,EAAEF,KAAK,KAAKG,MAAM,CAACC,MAAM,CAACF,GAAG,EAAE;IAAE,CAACF,KAAK,GAAGH,MAAM,CAACG,KAAK;EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/E;AAEA,MAAMK,IAAI,GAAG,QAAQ;AACrB,MAAMC,GAAG,GAAG,UAAU;AACtB,MAAMC,KAAK,GAAG,QAAQ;AACtB,MAAMC,OAAO,GAAG,QAAQ;AACxB,MAAMC,QAAQ,GAAG,SAAS;AAC1B,MAAMC,QAAQ,GAAGP,MAAM,CAACQ,SAAS,CAACD,QAAQ;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,GAAGA,CAACf,MAAM,EAAEgB,EAAE,EAAE;EAC9B,OAAOH,QAAQ,CAACI,IAAI,CAACjB,MAAM,CAAC,KAAK,UAAU,GAAGgB,EAAE,GAAG,GAAG;AACxD;AAEA,OAAO,SAASE,IAAIA,CAAClB,MAAM,EAAyB;EAClD,OAAOe,GAAG,CAACf,MAAM,EAAES,GAAG,CAAC;AACzB;AAEA,OAAO,SAASU,KAAKA,CAACnB,MAAM,EAAoB;EAC9C,OAAOe,GAAG,CAACf,MAAM,EAAEQ,IAAI,CAAC;AAC1B;AAEA,OAAO,MAAMY,OAAoC,GAAGC,KAAK,CAACD,OAAO,CAACE,IAAI,CAACD,KAAK,CAAC;AAE7E,OAAO,SAASE,QAAQA,CAACvB,MAAM,EAAoB;EACjD,OAAOe,GAAG,CAACf,MAAM,EAAEU,KAAK,CAAC;AAC3B;AAEA,OAAO,SAASc,aAAaA,CAACxB,MAAM,EAAkC;EACpE,OAAOe,GAAG,CAACf,MAAM,EAAEW,OAAO,CAAC;AAC7B;AAEA,OAAO,SAASc,SAASA,CAACzB,MAAM,EAAqB;EACnD,OAAOe,GAAG,CAACf,MAAM,EAAEY,QAAQ,CAAC;AAC9B;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMc,SAAqC,GAAGC,MAAM,CAACD,SAAS,CAACJ,IAAI,CAACK,MAAM,CAAC;AAElF,OAAO,SAASC,aAAaA,CAAmBC,GAAG,EAAEC,IAAQ,EAA4B;EACvF,OAAQV,OAAO,CAACS,GAAG,CAAC,KAAOC,IAAI,GAAID,GAAG,CAACE,MAAM,KAAKD,IAAI,GAAG,IAAI,CAAC,IAAKD,GAAG,CAACG,KAAK,CAACC,CAAC,IAAIP,SAAS,CAACO,CAAC,CAAC,CAAE;AAClG","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"perfMetrics.js","names":["config","CONFIG_TOGGLE","getTime","window","performance","now","Date","NODES","WeakMap","wrapFn","fn","before","after","_len","arguments","length","args","Array","_key","apply","metricsFactory","mkNode","makeNode","mkTimer","makeTimer","mkRenamer","rename","nodes","undefined","newMetrics","makeMetrics","self","n","forEach","accessor","slot","name","dfWalk","visit","edge","node","obj","hasOwnProperty","getTimestamp","setMetric","value","names","follow","inEdge","outEdge","propagate","stopPropagation","metrics","groups","push","checkpoint","timestamps","timeSince","metric","ts","elapsed","timeBetween","startCheckpoint","endCheckpoint","start","end","startTiming","val","measureTime","stopAfter","measureHookTime","next","stopTiming","orig","stopBefore","bail","untimed","getMetrics","result","Object","assign","includeGroups","fork","join","otherMetrics","other","get","addParent","renameWith","renameFn","newSibling","toJSON","set","cb","done","parents","slice","visited","Set","res","has","add","parent","nullMetrics","nop","empty","none","nullTimer","nullNode","defineProperties","fromEntries","map","prop","enabled","getConfig","cfg","useMetrics","hookTimer","prefix","hookFn","_this","_len2","_key2","call","timedAuctionHook","req","timedBidResponseHook","_","bid"],"sourceRoot":"../../../..","sources":["src/utils/perfMetrics.ts"],"sourcesContent":["import {config} from '../config.js';\nimport type {AnyFunction, Wraps} from \"../types/functions.d.ts\";\nimport {type BeforeHook, type BeforeHookParams, type HookType, Next} from \"../hook.ts\";\nimport type {addBidResponse} from \"../auction.ts\";\nimport type {PrivRequestBidsOptions, StartAuctionOptions} from \"../prebid.ts\";\n\nexport const CONFIG_TOGGLE = 'performanceMetrics';\nconst getTime = window.performance && window.performance.now ? () => window.performance.now() : () => Date.now();\nconst NODES = new WeakMap();\n\nexport type Metrics = ReturnType<ReturnType<typeof metricsFactory>>;\n\n/**\n * A function that, when called, stops a time measure and saves it as a metric.\n */\nexport type MetricsTimer = {\n (): void;\n /**\n * @return a wrapper around the given function that begins by stopping this time measure.\n */\n stopBefore<F extends AnyFunction>(fn: F): Wraps<F>;\n /**\n * @return a wrapper around the given function that ends by stopping this time measure.\n */\n stopAfter<F extends AnyFunction>(fn: F): Wraps<F>;\n};\n\nexport type InstrumentedNext<F extends AnyFunction> = Next<F> & {\n /**\n * The original `next` argument; using it will not affect the timer.\n */\n untimed: Next<F>;\n stopTiming: MetricsTimer;\n}\n\nfunction wrapFn<F extends AnyFunction>(fn: F, before?: () => void, after?: () => void): Wraps<F> {\n return function (...args) {\n before && before();\n try {\n return fn.apply(this, args);\n } finally {\n after && after();\n }\n };\n}\n\nexport function metricsFactory({now = getTime, mkNode = makeNode, mkTimer = makeTimer, mkRenamer = (rename) => rename, nodes = NODES} = {}) {\n return function newMetrics() {\n function makeMetrics(self, rename = (n) => ({forEach(fn) { fn(n); }})) {\n rename = mkRenamer(rename);\n\n function accessor(slot) {\n return function (name) {\n return self.dfWalk({\n visit(edge, node) {\n const obj = node[slot];\n if (obj.hasOwnProperty(name)) {\n return obj[name];\n }\n }\n });\n };\n }\n\n const getTimestamp = accessor('timestamps');\n\n /**\n * Register a metric.\n *\n * @param name metric name\n * @param value metric valiue\n */\n function setMetric(name: string, value: unknown): void {\n const names = rename(name);\n self.dfWalk({\n follow(inEdge, outEdge) {\n return outEdge.propagate && (!inEdge || !inEdge.stopPropagation)\n },\n visit(edge, node) {\n names.forEach(name => {\n if (edge == null) {\n node.metrics[name] = value;\n } else {\n if (!node.groups.hasOwnProperty(name)) {\n node.groups[name] = [];\n }\n node.groups[name].push(value);\n }\n })\n }\n });\n }\n\n /**\n * Mark the current time as a checkpoint with the given name, to be referenced later\n * by `timeSince` or `timeBetween`.\n *\n * @param name checkpoint name\n */\n function checkpoint(name: string): void {\n self.timestamps[name] = now();\n }\n\n /**\n * Get the tame passed since `checkpoint`, and optionally save it as a metric.\n *\n * @param checkpoint checkpoint name\n * @param metric The name of the metric to save. Optional.\n * @return The time in milliseconds between now and the checkpoint, or `null` if the checkpoint is not found.\n */\n function timeSince(checkpoint: string, metric?: string): number | null {\n const ts = getTimestamp(checkpoint);\n const elapsed = ts != null ? now() - ts : null;\n if (metric != null) {\n setMetric(metric, elapsed);\n }\n return elapsed;\n }\n\n /**\n * Get the time passed between `startCheckpoint` and `endCheckpoint`, optionally saving it as a metric.\n *\n * @param startCheckpoint - The name of the starting checkpoint.\n * @param endCheckpoint - The name of the ending checkpoint.\n * @param metric - The name of the metric to save.\n * @return The time in milliseconds between `startCheckpoint` and `endCheckpoint`, or `null` if either checkpoint is not found.\n */\n function timeBetween(startCheckpoint: string, endCheckpoint: string, metric?: string): number | null {\n const start = getTimestamp(startCheckpoint);\n const end = getTimestamp(endCheckpoint);\n const elapsed = start != null && end != null ? end - start : null;\n if (metric != null) {\n setMetric(metric, elapsed);\n }\n return elapsed;\n }\n\n /**\n * Start measuring a time metric with the given name.\n *\n * @param name metric name\n */\n function startTiming(name: string): MetricsTimer {\n return mkTimer(now, (val) => setMetric(name, val))\n }\n\n /**\n * Run fn and measure the time spent in it.\n *\n * @param name the name to use for the measured time metric\n * @param fn the function to run\n * @return the return value of `fn`\n */\n function measureTime<R>(name: string, fn: () => R): R {\n return startTiming(name).stopAfter(fn)();\n }\n\n /**\n * Convenience method for measuring time spent in a `.before` or `.after` hook.\n *\n * @param name - The metric name.\n * @param next - The hook's `next` (first) argument.\n * @param fn - A function that will be run immediately; it takes `next`, where both `next` and\n * `next.bail` automatically call `stopTiming` before continuing with the original hook.\n * @return The return value of `fn`.\n */\n function measureHookTime<F extends AnyFunction, R>(name: string, next: Next<F>, fn: (next: InstrumentedNext<F>) => R): R {\n const stopTiming = startTiming(name);\n return fn((function (orig) {\n const next = stopTiming.stopBefore(orig) as InstrumentedNext<F>;\n next.bail = orig.bail && stopTiming.stopBefore(orig.bail);\n next.stopTiming = stopTiming;\n next.untimed = orig;\n return next;\n })(next));\n }\n\n /**\n * Get all registered metrics.\n */\n function getMetrics(): { [name: string]: unknown } {\n let result = {}\n self.dfWalk({\n visit(edge, node) {\n result = Object.assign({}, !edge || edge.includeGroups ? node.groups : null, node.metrics, result);\n }\n });\n return result;\n }\n\n type PropagationOptions = {\n /**\n * If false, the forked or joined metrics will not be propagated here.\n */\n propagate?: boolean;\n /**\n * If true, propagation from the new metrics is stopped here, instead of\n * continuing up the chain (if for example these metrics were themselves created through `.fork()`).\n */\n stopPropagation?: boolean;\n /**\n * If true, the forked metrics will also replicate metrics that were propagated\n * here from elsewhere. For example:\n * ```\n * const metrics = newMetrics();\n * const op1 = metrics.fork();\n * const withoutGroups = metrics.fork();\n * const withGroups = metrics.fork({includeGroups: true});\n * op1.setMetric('foo', 'bar');\n * withoutGroups.getMetrics() // {}\n * withGroups.getMetrics() // {foo: ['bar']}\n * ```\n */\n includeGroups?: boolean;\n };\n\n /**\n * Create and return a new metrics object that starts as a view on all metrics registered here,\n * and - by default - also propagates all new metrics here.\n *\n * Propagated metrics are grouped together, and intended for repeated operations. For example, with the following:\n *\n * ```\n * const metrics = newMetrics();\n * const requests = metrics.measureTime('buildRequests', buildRequests)\n * requests.forEach((req) => {\n * const requestMetrics = metrics.fork();\n * requestMetrics.measureTime('processRequest', () => processRequest(req);\n * })\n * ```\n *\n * if `buildRequests` takes 10ms and returns 3 objects, which respectively take 100, 200, and 300ms in `processRequest`, then\n * the final `metrics.getMetrics()` would be:\n *\n * ```\n * {\n * buildRequests: 10,\n * processRequest: [100, 200, 300]\n * }\n * ```\n *\n * while the inner `requestMetrics.getMetrics()` would be:\n *\n * ```\n * {\n * buildRequests: 10,\n * processRequest: 100 // or 200 for the 2nd loop, etc\n * }\n * ```\n */\n function fork({propagate = true, stopPropagation = false, includeGroups = false}: PropagationOptions = {}): Metrics {\n return makeMetrics(mkNode([[self, {propagate, stopPropagation, includeGroups}]]), rename);\n }\n\n /**\n * Join `otherMetrics` with these; all metrics from `otherMetrics` will (by default) be propagated here,\n * and all metrics from here will be included in `otherMetrics`.\n */\n function join(otherMetrics: Metrics, {propagate = true, stopPropagation = false, includeGroups = false}: PropagationOptions = {}): void {\n const other = nodes.get(otherMetrics);\n if (other != null) {\n other.addParent(self, {propagate, stopPropagation, includeGroups});\n }\n }\n\n /**\n * @return a version of these metrics with the same propagation rules, but:\n * - all metrics are renamed according to `renameFn`, or\n * - without these metrics' rename rule (if `renameFn` is omitted).\n */\n function renameWith(renameFn?: (name: string) => string[]): Metrics {\n return makeMetrics(self, renameFn);\n }\n\n /**\n * @return a new metrics object that uses the same propagation and renaming rules as this one.\n */\n function newMetrics(): Metrics {\n return makeMetrics(self.newSibling(), rename);\n }\n\n const metrics = {\n startTiming,\n measureTime,\n measureHookTime,\n checkpoint,\n timeSince,\n timeBetween,\n setMetric,\n getMetrics,\n fork,\n join,\n newMetrics,\n renameWith,\n toJSON() {\n return getMetrics();\n }\n };\n nodes.set(metrics, self);\n return metrics;\n }\n\n return makeMetrics(mkNode([]));\n }\n}\n\nfunction makeTimer(now: () => number, cb: (elapsed: number) => void): MetricsTimer {\n const start = now();\n let done = false;\n function stopTiming() {\n if (!done) {\n cb(now() - start);\n done = true;\n }\n }\n stopTiming.stopBefore = (fn) => wrapFn(fn, stopTiming);\n stopTiming.stopAfter = (fn) => wrapFn(fn, null, stopTiming);\n return stopTiming;\n}\n\nfunction makeNode(parents) {\n return {\n metrics: {},\n timestamps: {},\n groups: {},\n addParent(node, edge) {\n parents.push([node, edge]);\n },\n newSibling() {\n return makeNode(parents.slice());\n },\n dfWalk({visit, follow = () => true, visited = new Set(), inEdge} = {} as any) {\n let res;\n if (!visited.has(this)) {\n visited.add(this);\n res = visit(inEdge, this);\n if (res != null) return res;\n for (const [parent, outEdge] of parents) {\n if (follow(inEdge, outEdge)) {\n res = parent.dfWalk({visit, follow, visited, inEdge: outEdge});\n if (res != null) return res;\n }\n }\n }\n }\n };\n}\n\nconst nullMetrics: Metrics = (() => {\n const nop = function () {};\n const empty = () => ({});\n const none = {forEach: nop};\n const nullTimer = () => null;\n nullTimer.stopBefore = (fn) => fn;\n nullTimer.stopAfter = (fn) => fn;\n const nullNode = Object.defineProperties(\n {dfWalk: nop, newSibling: () => nullNode, addParent: nop},\n Object.fromEntries(['metrics', 'timestamps', 'groups'].map(prop => [prop, {get: empty}])));\n return metricsFactory({\n now: () => 0,\n mkNode: () => nullNode as any,\n mkRenamer: () => () => none,\n mkTimer: () => nullTimer,\n nodes: {get: nop, set: nop} as unknown as Map<any, any>\n })();\n})();\n\nlet enabled = true;\nconfig.getConfig(CONFIG_TOGGLE, (cfg) => { enabled = !!cfg[CONFIG_TOGGLE] });\n\n/**\n * convenience fallback function for metrics that may be undefined, especially during tests.\n */\nexport function useMetrics(metrics: Metrics): Metrics {\n return (enabled && metrics) || nullMetrics;\n}\n\nexport const newMetrics = (() => {\n const makeMetrics = metricsFactory();\n return function (): Metrics {\n return enabled ? makeMetrics() : nullMetrics;\n }\n})();\n\nexport function hookTimer<TYP extends HookType, F extends AnyFunction>(prefix: string, getMetrics: (...args: Parameters<F>) => Metrics) {\n return function(name: string, hookFn: (next: InstrumentedNext<(...args: BeforeHookParams<TYP, F>) => ReturnType<F>>, ...args: BeforeHookParams<TYP, F>) => unknown): BeforeHook<TYP, F> {\n return (next, ...args) => {\n return useMetrics(getMetrics.apply(this, args)).measureHookTime(prefix + name, next, (next) => {\n return hookFn.call(this, next, ...args);\n });\n }\n }\n}\n\nexport const timedAuctionHook = hookTimer<'async', (options: PrivRequestBidsOptions | StartAuctionOptions) => void>('requestBids.', (req) => req.metrics);\nexport const timedBidResponseHook = hookTimer<'async', typeof addBidResponse>('addBidResponse.', (_, bid) => bid.metrics)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"perfMetrics.js","names":["config","CONFIG_TOGGLE","getTime","window","performance","now","Date","NODES","WeakMap","wrapFn","fn","before","after","_len","arguments","length","args","Array","_key","apply","metricsFactory","mkNode","makeNode","mkTimer","makeTimer","mkRenamer","rename","nodes","undefined","newMetrics","makeMetrics","self","n","forEach","accessor","slot","name","dfWalk","visit","edge","node","obj","hasOwnProperty","getTimestamp","setMetric","value","names","follow","inEdge","outEdge","propagate","stopPropagation","metrics","groups","push","checkpoint","timestamps","timeSince","metric","ts","elapsed","timeBetween","startCheckpoint","endCheckpoint","start","end","startTiming","val","measureTime","stopAfter","measureHookTime","next","stopTiming","orig","stopBefore","bail","untimed","getMetrics","result","Object","assign","includeGroups","fork","join","otherMetrics","other","get","addParent","renameWith","renameFn","newSibling","toJSON","set","cb","done","parents","slice","visited","Set","res","has","add","parent","nullMetrics","nop","empty","none","nullTimer","nullNode","defineProperties","fromEntries","map","prop","enabled","getConfig","cfg","useMetrics","hookTimer","prefix","hookFn","_this","_len2","_key2","call","timedAuctionHook","req","timedBidResponseHook","_","bid"],"sourceRoot":"../../../..","sources":["src/utils/perfMetrics.ts"],"sourcesContent":["import {config} from '../config.js';\nimport type {AnyFunction, Wraps} from \"../types/functions.d.ts\";\nimport {type BeforeHook, type BeforeHookParams, type HookType, Next} from \"../hook.ts\";\nimport type {addBidResponse} from \"../auction.ts\";\nimport type {PrivRequestBidsOptions, StartAuctionOptions} from \"../prebid.ts\";\n\nexport const CONFIG_TOGGLE = 'performanceMetrics';\nconst getTime = window.performance && window.performance.now ? () => window.performance.now() : () => Date.now();\nconst NODES = new WeakMap();\n\nexport type Metrics = ReturnType<ReturnType<typeof metricsFactory>>;\n\n/**\n * A function that, when called, stops a time measure and saves it as a metric.\n */\nexport type MetricsTimer = {\n (): void;\n /**\n * @return a wrapper around the given function that begins by stopping this time measure.\n */\n stopBefore<F extends AnyFunction>(fn: F): Wraps<F>;\n /**\n * @return a wrapper around the given function that ends by stopping this time measure.\n */\n stopAfter<F extends AnyFunction>(fn: F): Wraps<F>;\n};\n\nexport type InstrumentedNext<F extends AnyFunction> = Next<F> & {\n /**\n * The original `next` argument; using it will not affect the timer.\n */\n untimed: Next<F>;\n stopTiming: MetricsTimer;\n}\n\nfunction wrapFn<F extends AnyFunction>(fn: F, before?: () => void, after?: () => void): Wraps<F> {\n return function (...args) {\n before && before();\n try {\n return fn.apply(this, args);\n } finally {\n after && after();\n }\n };\n}\n\nexport function metricsFactory({now = getTime, mkNode = makeNode, mkTimer = makeTimer, mkRenamer = (rename) => rename, nodes = NODES} = {}) {\n return function newMetrics() {\n function makeMetrics(self, rename = (n) => ({forEach(fn) { fn(n); }})) {\n rename = mkRenamer(rename);\n\n function accessor(slot) {\n return function (name) {\n return self.dfWalk({\n visit(edge, node) {\n const obj = node[slot];\n if (obj.hasOwnProperty(name)) {\n return obj[name];\n }\n }\n });\n };\n }\n\n const getTimestamp = accessor('timestamps');\n\n /**\n * Register a metric.\n *\n * @param name metric name\n * @param value metric valiue\n */\n function setMetric(name: string, value: unknown): void {\n const names = rename(name);\n self.dfWalk({\n follow(inEdge, outEdge) {\n return outEdge.propagate && (!inEdge || !inEdge.stopPropagation)\n },\n visit(edge, node) {\n names.forEach(name => {\n if (edge == null) {\n node.metrics[name] = value;\n } else {\n if (!node.groups.hasOwnProperty(name)) {\n node.groups[name] = [];\n }\n node.groups[name].push(value);\n }\n })\n }\n });\n }\n\n /**\n * Mark the current time as a checkpoint with the given name, to be referenced later\n * by `timeSince` or `timeBetween`.\n *\n * @param name checkpoint name\n */\n function checkpoint(name: string): void {\n self.timestamps[name] = now();\n }\n\n /**\n * Get the tame passed since `checkpoint`, and optionally save it as a metric.\n *\n * @param checkpoint checkpoint name\n * @param metric The name of the metric to save. Optional.\n * @return The time in milliseconds between now and the checkpoint, or `null` if the checkpoint is not found.\n */\n function timeSince(checkpoint: string, metric?: string): number | null {\n const ts = getTimestamp(checkpoint);\n const elapsed = ts != null ? now() - ts : null;\n if (metric != null) {\n setMetric(metric, elapsed);\n }\n return elapsed;\n }\n\n /**\n * Get the time passed between `startCheckpoint` and `endCheckpoint`, optionally saving it as a metric.\n *\n * @param startCheckpoint - The name of the starting checkpoint.\n * @param endCheckpoint - The name of the ending checkpoint.\n * @param metric - The name of the metric to save.\n * @return The time in milliseconds between `startCheckpoint` and `endCheckpoint`, or `null` if either checkpoint is not found.\n */\n function timeBetween(startCheckpoint: string, endCheckpoint: string, metric?: string): number | null {\n const start = getTimestamp(startCheckpoint);\n const end = getTimestamp(endCheckpoint);\n const elapsed = start != null && end != null ? end - start : null;\n if (metric != null) {\n setMetric(metric, elapsed);\n }\n return elapsed;\n }\n\n /**\n * Start measuring a time metric with the given name.\n *\n * @param name metric name\n */\n function startTiming(name: string): MetricsTimer {\n return mkTimer(now, (val) => setMetric(name, val))\n }\n\n /**\n * Run fn and measure the time spent in it.\n *\n * @param name the name to use for the measured time metric\n * @param fn the function to run\n * @return the return value of `fn`\n */\n function measureTime<R>(name: string, fn: () => R): R {\n return startTiming(name).stopAfter(fn)();\n }\n\n /**\n * Convenience method for measuring time spent in a `.before` or `.after` hook.\n *\n * @param name - The metric name.\n * @param next - The hook's `next` (first) argument.\n * @param fn - A function that will be run immediately; it takes `next`, where both `next` and\n * `next.bail` automatically call `stopTiming` before continuing with the original hook.\n * @return The return value of `fn`.\n */\n function measureHookTime<F extends AnyFunction, R>(name: string, next: Next<F>, fn: (next: InstrumentedNext<F>) => R): R {\n const stopTiming = startTiming(name);\n return fn((function (orig) {\n const next = stopTiming.stopBefore(orig) as InstrumentedNext<F>;\n next.bail = orig.bail && stopTiming.stopBefore(orig.bail);\n next.stopTiming = stopTiming;\n next.untimed = orig;\n return next;\n })(next));\n }\n\n /**\n * Get all registered metrics.\n */\n function getMetrics(): { [name: string]: unknown } {\n let result = {}\n self.dfWalk({\n visit(edge, node) {\n result = Object.assign({}, !edge || edge.includeGroups ? node.groups : null, node.metrics, result);\n }\n });\n return result;\n }\n\n type PropagationOptions = {\n /**\n * If false, the forked or joined metrics will not be propagated here.\n */\n propagate?: boolean;\n /**\n * If true, propagation from the new metrics is stopped here, instead of\n * continuing up the chain (if for example these metrics were themselves created through `.fork()`).\n */\n stopPropagation?: boolean;\n /**\n * If true, the forked metrics will also replicate metrics that were propagated\n * here from elsewhere. For example:\n * ```\n * const metrics = newMetrics();\n * const op1 = metrics.fork();\n * const withoutGroups = metrics.fork();\n * const withGroups = metrics.fork({includeGroups: true});\n * op1.setMetric('foo', 'bar');\n * withoutGroups.getMetrics() // {}\n * withGroups.getMetrics() // {foo: ['bar']}\n * ```\n */\n includeGroups?: boolean;\n };\n\n /**\n * Create and return a new metrics object that starts as a view on all metrics registered here,\n * and - by default - also propagates all new metrics here.\n *\n * Propagated metrics are grouped together, and intended for repeated operations. For example, with the following:\n *\n * ```\n * const metrics = newMetrics();\n * const requests = metrics.measureTime('buildRequests', buildRequests)\n * requests.forEach((req) => {\n * const requestMetrics = metrics.fork();\n * requestMetrics.measureTime('processRequest', () => processRequest(req);\n * })\n * ```\n *\n * if `buildRequests` takes 10ms and returns 3 objects, which respectively take 100, 200, and 300ms in `processRequest`, then\n * the final `metrics.getMetrics()` would be:\n *\n * ```\n * {\n * buildRequests: 10,\n * processRequest: [100, 200, 300]\n * }\n * ```\n *\n * while the inner `requestMetrics.getMetrics()` would be:\n *\n * ```\n * {\n * buildRequests: 10,\n * processRequest: 100 // or 200 for the 2nd loop, etc\n * }\n * ```\n */\n function fork({propagate = true, stopPropagation = false, includeGroups = false}: PropagationOptions = {}): Metrics {\n return makeMetrics(mkNode([[self, {propagate, stopPropagation, includeGroups}]]), rename);\n }\n\n /**\n * Join `otherMetrics` with these; all metrics from `otherMetrics` will (by default) be propagated here,\n * and all metrics from here will be included in `otherMetrics`.\n */\n function join(otherMetrics: Metrics, {propagate = true, stopPropagation = false, includeGroups = false}: PropagationOptions = {}): void {\n const other = nodes.get(otherMetrics);\n if (other != null) {\n other.addParent(self, {propagate, stopPropagation, includeGroups});\n }\n }\n\n /**\n * @return a version of these metrics with the same propagation rules, but:\n * - all metrics are renamed according to `renameFn`, or\n * - without these metrics' rename rule (if `renameFn` is omitted).\n */\n function renameWith(renameFn?: (name: string) => string[]): Metrics {\n return makeMetrics(self, renameFn);\n }\n\n /**\n * @return a new metrics object that uses the same propagation and renaming rules as this one.\n */\n function newMetrics(): Metrics {\n return makeMetrics(self.newSibling(), rename);\n }\n\n const metrics = {\n startTiming,\n measureTime,\n measureHookTime,\n checkpoint,\n timeSince,\n timeBetween,\n setMetric,\n getMetrics,\n fork,\n join,\n newMetrics,\n renameWith,\n toJSON() {\n return getMetrics();\n }\n };\n nodes.set(metrics, self);\n return metrics;\n }\n\n return makeMetrics(mkNode([]));\n }\n}\n\nfunction makeTimer(now: () => number, cb: (elapsed: number) => void): MetricsTimer {\n const start = now();\n let done = false;\n function stopTiming() {\n if (!done) {\n cb(now() - start);\n done = true;\n }\n }\n stopTiming.stopBefore = (fn) => wrapFn(fn, stopTiming);\n stopTiming.stopAfter = (fn) => wrapFn(fn, null, stopTiming);\n return stopTiming;\n}\n\nfunction makeNode(parents) {\n return {\n metrics: {},\n timestamps: {},\n groups: {},\n addParent(node, edge) {\n parents.push([node, edge]);\n },\n newSibling() {\n return makeNode(parents.slice());\n },\n dfWalk({visit, follow = () => true, visited = new Set(), inEdge} = {} as any) {\n let res;\n if (!visited.has(this)) {\n visited.add(this);\n res = visit(inEdge, this);\n if (res != null) return res;\n for (const [parent, outEdge] of parents) {\n if (follow(inEdge, outEdge)) {\n res = parent.dfWalk({visit, follow, visited, inEdge: outEdge});\n if (res != null) return res;\n }\n }\n }\n }\n };\n}\n\nconst nullMetrics: Metrics = (() => {\n const nop = function () {};\n const empty = () => ({});\n const none = {forEach: nop};\n const nullTimer = () => null;\n nullTimer.stopBefore = (fn) => fn;\n nullTimer.stopAfter = (fn) => fn;\n const nullNode = Object.defineProperties(\n {dfWalk: nop, newSibling: () => nullNode, addParent: nop},\n Object.fromEntries(['metrics', 'timestamps', 'groups'].map(prop => [prop, {get: empty}])));\n return metricsFactory({\n now: () => 0,\n mkNode: () => nullNode as any,\n mkRenamer: () => () => none,\n mkTimer: () => nullTimer,\n nodes: {get: nop, set: nop} as unknown as Map<any, any>\n })();\n})();\n\nlet enabled = true;\nconfig.getConfig(CONFIG_TOGGLE, (cfg) => { enabled = !!cfg[CONFIG_TOGGLE] });\n\n/**\n * convenience fallback function for metrics that may be undefined, especially during tests.\n */\nexport function useMetrics(metrics: Metrics): Metrics {\n return (enabled && metrics) || nullMetrics;\n}\n\nexport const newMetrics = (() => {\n const makeMetrics = metricsFactory();\n return function (): Metrics {\n return enabled ? makeMetrics() : nullMetrics;\n }\n})();\n\nexport function hookTimer<TYP extends HookType, F extends AnyFunction>(prefix: string, getMetrics: (...args: Parameters<F>) => Metrics) {\n return function(name: string, hookFn: (next: InstrumentedNext<(...args: BeforeHookParams<TYP, F>) => ReturnType<F>>, ...args: BeforeHookParams<TYP, F>) => unknown): BeforeHook<TYP, F> {\n return (next, ...args) => {\n return useMetrics(getMetrics.apply(this, args)).measureHookTime(prefix + name, next, (next) => {\n return hookFn.call(this, next, ...args);\n });\n }\n }\n}\n\nexport const timedAuctionHook = hookTimer<'async', (options: PrivRequestBidsOptions | StartAuctionOptions) => void>('requestBids.', (req) => req.metrics);\nexport const timedBidResponseHook = hookTimer<'async', typeof addBidResponse>('addBidResponse.', (_, bid) => bid.metrics)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"promise.js","names":["GreedyPromise","greedySetTimeout","getGlobal","pbSetTimeout","setTimeout","PbPromise","Promise","delay","delayMs","arguments","length","undefined","resolve","defer","promiseFactory","resolver","invoker","delegate","val","resolveFn","rejectFn","promise","reject"],"sourceRoot":"../../../..","sources":["src/utils/promise.ts"],"sourcesContent":["import {GreedyPromise, greedySetTimeout} from '../../libraries/greedy/greedyPromise.js';\nimport {getGlobal} from '../prebidGlobal.js';\n\ndeclare module '../prebidGlobal' {\n interface PrebidJS {\n /**\n * The setTimeout implementation Prebid should use.\n */\n setTimeout?: typeof setTimeout;\n /**\n * The Promise constructor Prebid should use.\n */\n Promise?: typeof Promise\n }\n}\n\nexport const pbSetTimeout: typeof setTimeout = getGlobal().setTimeout ?? (FEATURES.GREEDY ? greedySetTimeout : setTimeout)\nexport const PbPromise: typeof Promise = getGlobal().Promise ?? (FEATURES.GREEDY ? GreedyPromise : Promise) as any;\n\nexport function delay(delayMs = 0): Promise<void> {\n return new PbPromise((resolve) => {\n pbSetTimeout(resolve, delayMs);\n });\n}\n\nexport interface Defer<T> {\n promise: Promise<T>;\n resolve: Parameters<ConstructorParameters<typeof Promise<T>>[0]>[0],\n reject: Parameters<ConstructorParameters<typeof Promise<T>>[0]>[1],\n}\n\nexport type UnwrapPromise<T> = T extends PromiseLike<infer R> ? R : T;\nexport type ToPromise<T> = Promise<UnwrapPromise<T>>;\n\n/**\n * @returns a {promise, resolve, reject} trio where `promise` is resolved by calling `resolve` or `reject`.\n */\nexport function defer<T>({promiseFactory = (resolver) => new PbPromise(resolver) as Promise<T>}: {\n promiseFactory?: (...args: ConstructorParameters<typeof Promise<T>>) => Promise<T>\n} = {}): Defer<T> {\n function invoker(delegate) {\n return (val) => delegate(val);\n }\n\n let resolveFn, rejectFn;\n\n return {\n promise: promiseFactory((resolve, reject) => {\n resolveFn = resolve;\n rejectFn = reject;\n }),\n resolve: invoker(resolveFn),\n reject: invoker(rejectFn)\n }\n}\n"],"mappings":"AAAA,SAAQA,aAAa,EAAEC,gBAAgB,QAAO,yCAAyC;AACvF,SAAQC,SAAS,QAAO,oBAAoB;AAe5C,OAAO,MAAMC,YAA+B,GAAGD,SAAS,CAAC,CAAC,CAACE,UAAU,KAAK,QAAkBH,gBAAgB,GAAGG,UAAU,CAAC;AAC1H,OAAO,MAAMC,SAAyB,GAAGH,SAAS,CAAC,CAAC,CAACI,OAAO,KAAK,QAAkBN,aAAa,GAAGM,OAAO,CAAQ;AAElH,OAAO,SAASC,KAAKA,CAAA,EAA6B;EAAA,IAA5BC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAC/B,OAAO,IAAIJ,SAAS,CAAEO,OAAO,IAAK;IAChCT,YAAY,CAACS,OAAO,EAAEJ,OAAO,CAAC;EAChC,CAAC,CAAC;AACJ;AAWA;AACA;AACA;AACA,OAAO,SAASK,KAAKA,CAAA,EAEH;EAAA,IAFO;IAACC,cAAc,GAAIC,QAAQ,IAAK,IAAIV,SAAS,CAACU,QAAQ;EAE/E,CAAC,GAAAN,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACJ,SAASO,OAAOA,CAACC,QAAQ,EAAE;IACzB,OAAQC,GAAG,IAAKD,QAAQ,CAACC,GAAG,CAAC;EAC/B;EAEA,IAAIC,SAAS,EAAEC,QAAQ;EAEvB,OAAO;IACLC,OAAO,EAAEP,cAAc,CAAC,CAACF,OAAO,EAAEU,MAAM,KAAK;MAC3CH,SAAS,GAAGP,OAAO;MACnBQ,QAAQ,GAAGE,MAAM;IACnB,CAAC,CAAC;IACFV,OAAO,EAAEI,OAAO,CAACG,SAAS,CAAC;IAC3BG,MAAM,EAAEN,OAAO,CAACI,QAAQ;EAC1B,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"promise.js","names":["GreedyPromise","greedySetTimeout","getGlobal","pbSetTimeout","setTimeout","PbPromise","Promise","delay","delayMs","arguments","length","undefined","resolve","defer","promiseFactory","resolver","invoker","delegate","val","resolveFn","rejectFn","promise","reject"],"sourceRoot":"../../../..","sources":["src/utils/promise.ts"],"sourcesContent":["import {GreedyPromise, greedySetTimeout} from '../../libraries/greedy/greedyPromise.js';\nimport {getGlobal} from '../prebidGlobal.js';\n\ndeclare module '../prebidGlobal' {\n interface PrebidJS {\n /**\n * The setTimeout implementation Prebid should use.\n */\n setTimeout?: typeof setTimeout;\n /**\n * The Promise constructor Prebid should use.\n */\n Promise?: typeof Promise\n }\n}\n\nexport const pbSetTimeout: typeof setTimeout = getGlobal().setTimeout ?? (FEATURES.GREEDY ? greedySetTimeout : setTimeout)\nexport const PbPromise: typeof Promise = getGlobal().Promise ?? (FEATURES.GREEDY ? GreedyPromise : Promise) as any;\n\nexport function delay(delayMs = 0): Promise<void> {\n return new PbPromise((resolve) => {\n pbSetTimeout(resolve, delayMs);\n });\n}\n\nexport interface Defer<T> {\n promise: Promise<T>;\n resolve: Parameters<ConstructorParameters<typeof Promise<T>>[0]>[0],\n reject: Parameters<ConstructorParameters<typeof Promise<T>>[0]>[1],\n}\n\nexport type UnwrapPromise<T> = T extends PromiseLike<infer R> ? R : T;\nexport type ToPromise<T> = Promise<UnwrapPromise<T>>;\n\n/**\n * @returns a {promise, resolve, reject} trio where `promise` is resolved by calling `resolve` or `reject`.\n */\nexport function defer<T>({promiseFactory = (resolver) => new PbPromise(resolver) as Promise<T>}: {\n promiseFactory?: (...args: ConstructorParameters<typeof Promise<T>>) => Promise<T>\n} = {}): Defer<T> {\n function invoker(delegate) {\n return (val) => delegate(val);\n }\n\n let resolveFn, rejectFn;\n\n return {\n promise: promiseFactory((resolve, reject) => {\n resolveFn = resolve;\n rejectFn = reject;\n }),\n resolve: invoker(resolveFn),\n reject: invoker(rejectFn)\n }\n}\n"],"mappings":"AAAA,SAAQA,aAAa,EAAEC,gBAAgB,QAAO,yCAAyC;AACvF,SAAQC,SAAS,QAAO,oBAAoB;AAe5C,OAAO,MAAMC,YAA+B,GAAGD,SAAS,CAAC,CAAC,CAACE,UAAU,KAAK,QAAkBH,gBAAgB,GAAGG,UAAU,CAAC;AAC1H,OAAO,MAAMC,SAAyB,GAAGH,SAAS,CAAC,CAAC,CAACI,OAAO,KAAK,QAAkBN,aAAa,GAAGM,OAAO,CAAQ;AAElH,OAAO,SAASC,KAAKA,CAAA,EAA6B;EAAA,IAA5BC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAC/B,OAAO,IAAIJ,SAAS,CAAEO,OAAO,IAAK;IAChCT,YAAY,CAACS,OAAO,EAAEJ,OAAO,CAAC;EAChC,CAAC,CAAC;AACJ;AAWA;AACA;AACA;AACA,OAAO,SAASK,KAAKA,CAAA,EAEH;EAAA,IAFO;IAACC,cAAc,GAAIC,QAAQ,IAAK,IAAIV,SAAS,CAACU,QAAQ;EAE/E,CAAC,GAAAN,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACJ,SAASO,OAAOA,CAACC,QAAQ,EAAE;IACzB,OAAQC,GAAG,IAAKD,QAAQ,CAACC,GAAG,CAAC;EAC/B;EAEA,IAAIC,SAAS,EAAEC,QAAQ;EAEvB,OAAO;IACLC,OAAO,EAAEP,cAAc,CAAC,CAACF,OAAO,EAAEU,MAAM,KAAK;MAC3CH,SAAS,GAAGP,OAAO;MACnBQ,QAAQ,GAAGE,MAAM;IACnB,CAAC,CAAC;IACFV,OAAO,EAAEI,OAAO,CAACG,SAAS,CAAC;IAC3BG,MAAM,EAAEN,OAAO,CAACI,QAAQ;EAC1B,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ttlCollection.js","names":["PbPromise","binarySearch","logError","timestamp","setFocusTimeout","ttlCollection","startTime","ttl","monotonic","slack","arguments","length","undefined","items","Map","callbacks","pendingPurge","markForPurge","entry","push","splice","el","expiry","nextPurge","task","reschedulePurge","clearTimeout","now","Math","max","cnt","forEach","cb","item","e","delete","mkEntry","values","thisCohort","currentCohort","update","start","delta","init","refresh","Object","entries","map","_ref","field","getter","currentCall","thisCall","resolve","then","val","Symbol","iterator","keys","add","has","set","clear","toArray","Array","from","onExpiry","idx","indexOf"],"sourceRoot":"../../../..","sources":["src/utils/ttlCollection.ts"],"sourcesContent":["import {PbPromise} from './promise.js';\nimport {binarySearch, logError, timestamp} from '../utils.js';\nimport {setFocusTimeout} from './focusTimeout.js';\n\nexport type TTLCollection<T> = ReturnType<typeof ttlCollection<T>>;\n\n/**\n * Create a set-like collection that automatically forgets items after a certain time.\n */\nexport function ttlCollection<T>(\n {\n startTime = timestamp,\n ttl = () => null,\n monotonic = false,\n slack = 5000\n }: {\n /**\n * A function taking an item added to this collection,\n * and returning (a promise to) a timestamp to be used as the starting time for the item\n * (the item will be dropped after `ttl(item)` milliseconds have elapsed since this timestamp).\n * Defaults to the time the item was added to the collection.\n */\n startTime?: (item: T) => number | Promise<number>;\n /**\n * A function taking an item added to this collection,\n * and returning (a promise to) the duration (in milliseconds) the item should be kept in it.\n * May return null to indicate that the item should be persisted indefinitely.\n */\n ttl?: (item: T) => number | null | Promise<number | null>;\n /**\n * Set to true for better performance, but only if, given any two items A and B in this collection:\n * if A was added before B, then:\n * - startTime(A) + ttl(A) <= startTime(B) + ttl(B)\n * - Promise.all([startTime(A), ttl(A)]) never resolves later than Promise.all([startTime(B), ttl(B)])\n */\n monotonic?: boolean\n /**\n * Maximum duration (in milliseconds) that an item is allowed to persist\n * once past its TTL. This is also roughly the interval between \"garbage collection\" sweeps.\n */\n slack?: number;\n } = {}\n) {\n const items = new Map<T, any>();\n const callbacks = [];\n const pendingPurge = [];\n const markForPurge = monotonic\n ? (entry) => pendingPurge.push(entry)\n : (entry) => pendingPurge.splice(binarySearch(pendingPurge, entry, (el) => el.expiry), 0, entry)\n let nextPurge, task;\n\n function reschedulePurge() {\n task && clearTimeout(task);\n if (pendingPurge.length > 0) {\n const now = timestamp();\n nextPurge = Math.max(now, pendingPurge[0].expiry + slack);\n task = setFocusTimeout(() => {\n const now = timestamp();\n let cnt = 0;\n for (const entry of pendingPurge) {\n if (entry.expiry > now) break;\n callbacks.forEach(cb => {\n try {\n cb(entry.item)\n } catch (e) {\n logError(e);\n }\n });\n items.delete(entry.item)\n cnt++;\n }\n pendingPurge.splice(0, cnt);\n task = null;\n reschedulePurge();\n }, nextPurge - now);\n } else {\n task = null;\n }\n }\n\n function mkEntry(item) {\n const values: any = {};\n const thisCohort = currentCohort;\n let expiry;\n\n function update() {\n if (thisCohort === currentCohort && values.start != null && values.delta != null) {\n expiry = values.start + values.delta;\n markForPurge(entry);\n if (task == null || nextPurge > expiry + slack) {\n reschedulePurge();\n }\n }\n }\n\n const [init, refresh] = Object.entries({\n start: startTime,\n delta: ttl\n }).map(([field, getter]) => {\n let currentCall;\n return function() {\n const thisCall = currentCall = {};\n PbPromise.resolve(getter(item)).then((val) => {\n if (thisCall === currentCall) {\n values[field] = val;\n update();\n }\n });\n }\n })\n\n const entry = {\n item,\n refresh,\n get expiry() {\n return expiry;\n },\n };\n\n init();\n refresh();\n return entry;\n }\n\n let currentCohort = {};\n\n return {\n [Symbol.iterator]: () => items.keys(),\n /**\n * Add an item to this collection.\n * @param item\n */\n add(item: T) {\n !items.has(item) && items.set(item, mkEntry(item));\n },\n /**\n * Clear this collection.\n */\n clear() {\n pendingPurge.length = 0;\n reschedulePurge();\n items.clear();\n currentCohort = {};\n },\n /**\n * @returns {[]} all the items in this collection, in insertion order.\n */\n toArray() {\n return Array.from(items.keys());\n },\n /**\n * Refresh the TTL for each item in this collection.\n */\n refresh() {\n pendingPurge.length = 0;\n reschedulePurge();\n for (const entry of items.values()) {\n entry.refresh();\n }\n },\n /**\n * Register a callback to be run when an item has expired and is about to be\n * removed the from the collection.\n * @param cb a callback that takes the expired item as argument\n * @return an unregistration function.\n */\n onExpiry(cb: (item: T) => void) {\n callbacks.push(cb);\n return () => {\n const idx = callbacks.indexOf(cb);\n if (idx >= 0) {\n callbacks.splice(idx, 1);\n }\n }\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ttlCollection.js","names":["PbPromise","binarySearch","logError","timestamp","setFocusTimeout","ttlCollection","startTime","ttl","monotonic","slack","arguments","length","undefined","items","Map","callbacks","pendingPurge","markForPurge","entry","push","splice","el","expiry","nextPurge","task","reschedulePurge","clearTimeout","now","Math","max","cnt","forEach","cb","item","e","delete","mkEntry","values","thisCohort","currentCohort","update","start","delta","init","refresh","Object","entries","map","_ref","field","getter","currentCall","thisCall","resolve","then","val","Symbol","iterator","keys","add","has","set","clear","toArray","Array","from","onExpiry","idx","indexOf"],"sourceRoot":"../../../..","sources":["src/utils/ttlCollection.ts"],"sourcesContent":["import {PbPromise} from './promise.js';\nimport {binarySearch, logError, timestamp} from '../utils.js';\nimport {setFocusTimeout} from './focusTimeout.js';\n\nexport type TTLCollection<T> = ReturnType<typeof ttlCollection<T>>;\n\n/**\n * Create a set-like collection that automatically forgets items after a certain time.\n */\nexport function ttlCollection<T>(\n {\n startTime = timestamp,\n ttl = () => null,\n monotonic = false,\n slack = 5000\n }: {\n /**\n * A function taking an item added to this collection,\n * and returning (a promise to) a timestamp to be used as the starting time for the item\n * (the item will be dropped after `ttl(item)` milliseconds have elapsed since this timestamp).\n * Defaults to the time the item was added to the collection.\n */\n startTime?: (item: T) => number | Promise<number>;\n /**\n * A function taking an item added to this collection,\n * and returning (a promise to) the duration (in milliseconds) the item should be kept in it.\n * May return null to indicate that the item should be persisted indefinitely.\n */\n ttl?: (item: T) => number | null | Promise<number | null>;\n /**\n * Set to true for better performance, but only if, given any two items A and B in this collection:\n * if A was added before B, then:\n * - startTime(A) + ttl(A) <= startTime(B) + ttl(B)\n * - Promise.all([startTime(A), ttl(A)]) never resolves later than Promise.all([startTime(B), ttl(B)])\n */\n monotonic?: boolean\n /**\n * Maximum duration (in milliseconds) that an item is allowed to persist\n * once past its TTL. This is also roughly the interval between \"garbage collection\" sweeps.\n */\n slack?: number;\n } = {}\n) {\n const items = new Map<T, any>();\n const callbacks = [];\n const pendingPurge = [];\n const markForPurge = monotonic\n ? (entry) => pendingPurge.push(entry)\n : (entry) => pendingPurge.splice(binarySearch(pendingPurge, entry, (el) => el.expiry), 0, entry)\n let nextPurge, task;\n\n function reschedulePurge() {\n task && clearTimeout(task);\n if (pendingPurge.length > 0) {\n const now = timestamp();\n nextPurge = Math.max(now, pendingPurge[0].expiry + slack);\n task = setFocusTimeout(() => {\n const now = timestamp();\n let cnt = 0;\n for (const entry of pendingPurge) {\n if (entry.expiry > now) break;\n callbacks.forEach(cb => {\n try {\n cb(entry.item)\n } catch (e) {\n logError(e);\n }\n });\n items.delete(entry.item)\n cnt++;\n }\n pendingPurge.splice(0, cnt);\n task = null;\n reschedulePurge();\n }, nextPurge - now);\n } else {\n task = null;\n }\n }\n\n function mkEntry(item) {\n const values: any = {};\n const thisCohort = currentCohort;\n let expiry;\n\n function update() {\n if (thisCohort === currentCohort && values.start != null && values.delta != null) {\n expiry = values.start + values.delta;\n markForPurge(entry);\n if (task == null || nextPurge > expiry + slack) {\n reschedulePurge();\n }\n }\n }\n\n const [init, refresh] = Object.entries({\n start: startTime,\n delta: ttl\n }).map(([field, getter]) => {\n let currentCall;\n return function() {\n const thisCall = currentCall = {};\n PbPromise.resolve(getter(item)).then((val) => {\n if (thisCall === currentCall) {\n values[field] = val;\n update();\n }\n });\n }\n })\n\n const entry = {\n item,\n refresh,\n get expiry() {\n return expiry;\n },\n };\n\n init();\n refresh();\n return entry;\n }\n\n let currentCohort = {};\n\n return {\n [Symbol.iterator]: () => items.keys(),\n /**\n * Add an item to this collection.\n * @param item\n */\n add(item: T) {\n !items.has(item) && items.set(item, mkEntry(item));\n },\n /**\n * Clear this collection.\n */\n clear() {\n pendingPurge.length = 0;\n reschedulePurge();\n items.clear();\n currentCohort = {};\n },\n /**\n * @returns {[]} all the items in this collection, in insertion order.\n */\n toArray() {\n return Array.from(items.keys());\n },\n /**\n * Refresh the TTL for each item in this collection.\n */\n refresh() {\n pendingPurge.length = 0;\n reschedulePurge();\n for (const entry of items.values()) {\n entry.refresh();\n }\n },\n /**\n * Register a callback to be run when an item has expired and is about to be\n * removed the from the collection.\n * @param cb a callback that takes the expired item as argument\n * @return an unregistration function.\n */\n onExpiry(cb: (item: T) => void) {\n callbacks.push(cb);\n return () => {\n const idx = callbacks.indexOf(cb);\n if (idx >= 0) {\n callbacks.splice(idx, 1);\n }\n }\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","names":["isArrayOfNums","isInteger","isNumber","isPlainObject","isStr","logError","logWarn","config","hook","auctionManager","OUTSTREAM","INSTREAM","ORTB_PARAMS","value","Array","isArray","length","every","v","includes","ORTB_VIDEO_PARAMS","Map","fillVideoDefaults","adUnit","video","mediaTypes","plcmt","context","placement","playbackmethod","some","method","playerSize","size","w","h","conflict","forEach","prop","i","code","validateOrtbVideoFields","onInvalidParam","videoParams","Object","entries","_ref","key","has","isValid","get","isValidVideoBid","bid","index","arguments","undefined","videoMediaType","getMediaTypes","useCacheKey","getAdUnit","checkVideoBidSetup","url","useLocal","getConfig","vastXml","vastUrl","renderer"],"sourceRoot":"../../..","sources":["src/video.ts"],"sourcesContent":["import {isArrayOfNums, isInteger, isNumber, isPlainObject, isStr, logError, logWarn} from './utils.js';\nimport {config} from './config.js';\nimport {hook} from './hook.js';\nimport {auctionManager} from './auctionManager.js';\nimport type {VideoBid} from \"./bidfactory.ts\";\nimport {ADPOD, type BaseMediaType} from \"./mediaTypes.ts\";\nimport type {ORTBImp} from \"./types/ortb/request.d.ts\";\nimport type {Size} from \"./types/common.d.ts\";\nimport type {AdUnitDefinition} from \"./adUnits.ts\";\n\nexport const OUTSTREAM = 'outstream';\nexport const INSTREAM = 'instream';\n\nconst ORTB_PARAMS = [\n [ 'mimes', value => Array.isArray(value) && value.length > 0 && value.every(v => typeof v === 'string') ],\n [ 'minduration', isInteger ],\n [ 'maxduration', isInteger ],\n [ 'startdelay', isInteger ],\n [ 'maxseq', isInteger ],\n [ 'poddur', isInteger ],\n [ 'protocols', isArrayOfNums ],\n [ 'w', isInteger ],\n [ 'h', isInteger ],\n [ 'podid', isStr ],\n [ 'podseq', isInteger ],\n [ 'rqddurs', isArrayOfNums ],\n [ 'placement', isInteger ], // deprecated, see plcmt\n [ 'plcmt', isInteger ],\n [ 'linearity', isInteger ],\n [ 'skip', value => [1, 0].includes(value) ],\n [ 'skipmin', isInteger ],\n [ 'skipafter', isInteger ],\n [ 'sequence', isInteger ], // deprecated\n [ 'slotinpod', isInteger ],\n [ 'mincpmpersec', isNumber ],\n [ 'battr', isArrayOfNums ],\n [ 'maxextended', isInteger ],\n [ 'minbitrate', isInteger ],\n [ 'maxbitrate', isInteger ],\n [ 'boxingallowed', isInteger ],\n [ 'playbackmethod', isArrayOfNums ],\n [ 'playbackend', isInteger ],\n [ 'delivery', isArrayOfNums ],\n [ 'pos', isInteger ],\n [ 'api', isArrayOfNums ],\n [ 'companiontype', isArrayOfNums ],\n [ 'poddedupe', isArrayOfNums ]\n] as const;\n\n/**\n * List of OpenRTB 2.x video object properties with simple validators.\n * Not included: `companionad`, `durfloors`, `ext`\n * reference: https://github.com/InteractiveAdvertisingBureau/openrtb2.x/blob/main/2.6.md\n */\nexport const ORTB_VIDEO_PARAMS = new Map(ORTB_PARAMS);\n\nexport type VideoContext = typeof INSTREAM | typeof OUTSTREAM | typeof ADPOD;\n\nexport interface VideoMediaType extends BaseMediaType, Pick<ORTBImp['video'], (typeof ORTB_PARAMS)[number][0]> {\n context: VideoContext;\n playerSize?: Size | Size[];\n}\n\nexport function fillVideoDefaults(adUnit: AdUnitDefinition) {\n const video = adUnit?.mediaTypes?.video;\n if (video != null) {\n if (video.plcmt == null) {\n if (video.context === OUTSTREAM || [2, 3, 4].includes(video.placement)) {\n video.plcmt = 4;\n } else if (video.playbackmethod?.some?.(method => [2, 6].includes(method))) {\n video.plcmt = 2;\n }\n }\n const playerSize = isArrayOfNums(video.playerSize, 2)\n ? video.playerSize\n : Array.isArray(video.playerSize) && isArrayOfNums(video.playerSize[0]) ? video.playerSize[0] : null;\n const size: [number, number] = isNumber(video.w) && isNumber(video.h) ? [video.w, video.h] : null;\n let conflict = false;\n if (playerSize == null) {\n if (size != null) {\n if (video.playerSize != null) {\n conflict = true;\n } else {\n video.playerSize = [size];\n }\n }\n } else {\n ['w', 'h'].forEach((prop, i) => {\n if (video[prop] != null && video[prop] !== playerSize[i]) {\n conflict = true;\n } else {\n video[prop] = playerSize[i];\n }\n })\n }\n if (conflict) {\n logWarn(`Ad unit \"${adUnit.code} has conflicting playerSize and w/h`, adUnit)\n }\n }\n}\n\n/**\n * validateOrtbVideoFields mutates the `adUnit.mediaTypes.video` object by removing invalid ortb properties (default).\n * The onInvalidParam callback can be used to handle invalid properties differently.\n * Other properties are ignored and kept as is.\n *\n * @param {Object} adUnit - The adUnit object.\n * @param {Function=} onInvalidParam - The callback function to be called with key, value, and adUnit.\n * @returns {void}\n */\nexport function validateOrtbVideoFields(adUnit, onInvalidParam?) {\n const videoParams = adUnit?.mediaTypes?.video;\n\n if (!isPlainObject(videoParams)) {\n logWarn(`validateOrtbVideoFields: videoParams must be an object.`);\n return;\n }\n\n if (videoParams != null) {\n Object.entries(videoParams)\n .forEach(([key, value]: any) => {\n if (!ORTB_VIDEO_PARAMS.has(key)) {\n return\n }\n const isValid = ORTB_VIDEO_PARAMS.get(key)(value);\n if (!isValid) {\n if (typeof onInvalidParam === 'function') {\n onInvalidParam(key, value, adUnit);\n } else {\n delete videoParams[key];\n logWarn(`Invalid prop in adUnit \"${adUnit.code}\": Invalid value for mediaTypes.video.${key} ORTB property. The property has been removed.`);\n }\n }\n });\n }\n}\n\n/**\n * Validate that the assets required for video context are present on the bid\n */\nexport function isValidVideoBid(bid: VideoBid, {index = auctionManager.index} = {}): boolean {\n const videoMediaType = index.getMediaTypes(bid)?.video;\n const context = videoMediaType && videoMediaType?.context;\n const useCacheKey = videoMediaType && videoMediaType?.useCacheKey;\n const adUnit = index.getAdUnit(bid);\n\n // if context not defined assume default 'instream' for video bids\n // instream bids require a vast url or vast xml content\n return checkVideoBidSetup(bid, adUnit, videoMediaType, context, useCacheKey);\n}\n\ndeclare module './bidfactory' {\n interface VideoBidResponseProperties {\n vastXml?: string;\n vastUrl?: string;\n }\n}\n\ndeclare module './hook' {\n interface NamedHooks {\n checkVideoBidSetup: typeof checkVideoBidSetup\n }\n}\n\nexport const checkVideoBidSetup = hook('sync', function(bid: VideoBid, adUnit, videoMediaType, context, useCacheKey) {\n if (videoMediaType && (useCacheKey || context !== OUTSTREAM)) {\n // xml-only video bids require a prebid cache url\n const { url, useLocal } = config.getConfig('cache') || {};\n if ((!url && !useLocal) && bid.vastXml && !bid.vastUrl) {\n logError(`\n This bid contains only vastXml and will not work when a prebid cache url is not specified.\n Try enabling either prebid cache with $$PREBID_GLOBAL$$.setConfig({ cache: {url: \"...\"} });\n or local cache with $$PREBID_GLOBAL$$.setConfig({ cache: { useLocal: true }});\n `);\n return false;\n }\n\n return !!(bid.vastUrl || bid.vastXml);\n }\n\n // outstream bids require a renderer on the bid or pub-defined on adunit\n if (context === OUTSTREAM && !useCacheKey) {\n return !!(bid.renderer || (adUnit && adUnit.renderer) || videoMediaType.renderer);\n }\n\n return true;\n}, 'checkVideoBidSetup');\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"video.js","names":["isArrayOfNums","isInteger","isNumber","isPlainObject","isStr","logError","logWarn","config","hook","auctionManager","OUTSTREAM","INSTREAM","ORTB_PARAMS","value","Array","isArray","length","every","v","includes","ORTB_VIDEO_PARAMS","Map","fillVideoDefaults","adUnit","video","mediaTypes","plcmt","context","placement","playbackmethod","some","method","playerSize","size","w","h","conflict","forEach","prop","i","code","validateOrtbVideoFields","onInvalidParam","videoParams","Object","entries","_ref","key","has","isValid","get","isValidVideoBid","bid","index","arguments","undefined","videoMediaType","getMediaTypes","useCacheKey","getAdUnit","checkVideoBidSetup","url","useLocal","getConfig","vastXml","vastUrl","renderer"],"sourceRoot":"../../..","sources":["src/video.ts"],"sourcesContent":["import {isArrayOfNums, isInteger, isNumber, isPlainObject, isStr, logError, logWarn} from './utils.js';\nimport {config} from './config.js';\nimport {hook} from './hook.js';\nimport {auctionManager} from './auctionManager.js';\nimport type {VideoBid} from \"./bidfactory.ts\";\nimport {ADPOD, type BaseMediaType} from \"./mediaTypes.ts\";\nimport type {ORTBImp} from \"./types/ortb/request.d.ts\";\nimport type {Size} from \"./types/common.d.ts\";\nimport type {AdUnitDefinition} from \"./adUnits.ts\";\n\nexport const OUTSTREAM = 'outstream';\nexport const INSTREAM = 'instream';\n\nconst ORTB_PARAMS = [\n [ 'mimes', value => Array.isArray(value) && value.length > 0 && value.every(v => typeof v === 'string') ],\n [ 'minduration', isInteger ],\n [ 'maxduration', isInteger ],\n [ 'startdelay', isInteger ],\n [ 'maxseq', isInteger ],\n [ 'poddur', isInteger ],\n [ 'protocols', isArrayOfNums ],\n [ 'w', isInteger ],\n [ 'h', isInteger ],\n [ 'podid', isStr ],\n [ 'podseq', isInteger ],\n [ 'rqddurs', isArrayOfNums ],\n [ 'placement', isInteger ], // deprecated, see plcmt\n [ 'plcmt', isInteger ],\n [ 'linearity', isInteger ],\n [ 'skip', value => [1, 0].includes(value) ],\n [ 'skipmin', isInteger ],\n [ 'skipafter', isInteger ],\n [ 'sequence', isInteger ], // deprecated\n [ 'slotinpod', isInteger ],\n [ 'mincpmpersec', isNumber ],\n [ 'battr', isArrayOfNums ],\n [ 'maxextended', isInteger ],\n [ 'minbitrate', isInteger ],\n [ 'maxbitrate', isInteger ],\n [ 'boxingallowed', isInteger ],\n [ 'playbackmethod', isArrayOfNums ],\n [ 'playbackend', isInteger ],\n [ 'delivery', isArrayOfNums ],\n [ 'pos', isInteger ],\n [ 'api', isArrayOfNums ],\n [ 'companiontype', isArrayOfNums ],\n [ 'poddedupe', isArrayOfNums ]\n] as const;\n\n/**\n * List of OpenRTB 2.x video object properties with simple validators.\n * Not included: `companionad`, `durfloors`, `ext`\n * reference: https://github.com/InteractiveAdvertisingBureau/openrtb2.x/blob/main/2.6.md\n */\nexport const ORTB_VIDEO_PARAMS = new Map(ORTB_PARAMS);\n\nexport type VideoContext = typeof INSTREAM | typeof OUTSTREAM | typeof ADPOD;\n\nexport interface VideoMediaType extends BaseMediaType, Pick<ORTBImp['video'], (typeof ORTB_PARAMS)[number][0]> {\n context: VideoContext;\n playerSize?: Size | Size[];\n}\n\nexport function fillVideoDefaults(adUnit: AdUnitDefinition) {\n const video = adUnit?.mediaTypes?.video;\n if (video != null) {\n if (video.plcmt == null) {\n if (video.context === OUTSTREAM || [2, 3, 4].includes(video.placement)) {\n video.plcmt = 4;\n } else if (video.playbackmethod?.some?.(method => [2, 6].includes(method))) {\n video.plcmt = 2;\n }\n }\n const playerSize = isArrayOfNums(video.playerSize, 2)\n ? video.playerSize\n : Array.isArray(video.playerSize) && isArrayOfNums(video.playerSize[0]) ? video.playerSize[0] : null;\n const size: [number, number] = isNumber(video.w) && isNumber(video.h) ? [video.w, video.h] : null;\n let conflict = false;\n if (playerSize == null) {\n if (size != null) {\n if (video.playerSize != null) {\n conflict = true;\n } else {\n video.playerSize = [size];\n }\n }\n } else {\n ['w', 'h'].forEach((prop, i) => {\n if (video[prop] != null && video[prop] !== playerSize[i]) {\n conflict = true;\n } else {\n video[prop] = playerSize[i];\n }\n })\n }\n if (conflict) {\n logWarn(`Ad unit \"${adUnit.code} has conflicting playerSize and w/h`, adUnit)\n }\n }\n}\n\n/**\n * validateOrtbVideoFields mutates the `adUnit.mediaTypes.video` object by removing invalid ortb properties (default).\n * The onInvalidParam callback can be used to handle invalid properties differently.\n * Other properties are ignored and kept as is.\n *\n * @param {Object} adUnit - The adUnit object.\n * @param {Function=} onInvalidParam - The callback function to be called with key, value, and adUnit.\n * @returns {void}\n */\nexport function validateOrtbVideoFields(adUnit, onInvalidParam?) {\n const videoParams = adUnit?.mediaTypes?.video;\n\n if (!isPlainObject(videoParams)) {\n logWarn(`validateOrtbVideoFields: videoParams must be an object.`);\n return;\n }\n\n if (videoParams != null) {\n Object.entries(videoParams)\n .forEach(([key, value]: any) => {\n if (!ORTB_VIDEO_PARAMS.has(key)) {\n return\n }\n const isValid = ORTB_VIDEO_PARAMS.get(key)(value);\n if (!isValid) {\n if (typeof onInvalidParam === 'function') {\n onInvalidParam(key, value, adUnit);\n } else {\n delete videoParams[key];\n logWarn(`Invalid prop in adUnit \"${adUnit.code}\": Invalid value for mediaTypes.video.${key} ORTB property. The property has been removed.`);\n }\n }\n });\n }\n}\n\n/**\n * Validate that the assets required for video context are present on the bid\n */\nexport function isValidVideoBid(bid: VideoBid, {index = auctionManager.index} = {}): boolean {\n const videoMediaType = index.getMediaTypes(bid)?.video;\n const context = videoMediaType && videoMediaType?.context;\n const useCacheKey = videoMediaType && videoMediaType?.useCacheKey;\n const adUnit = index.getAdUnit(bid);\n\n // if context not defined assume default 'instream' for video bids\n // instream bids require a vast url or vast xml content\n return checkVideoBidSetup(bid, adUnit, videoMediaType, context, useCacheKey);\n}\n\ndeclare module './bidfactory' {\n interface VideoBidResponseProperties {\n vastXml?: string;\n vastUrl?: string;\n }\n}\n\ndeclare module './hook' {\n interface NamedHooks {\n checkVideoBidSetup: typeof checkVideoBidSetup\n }\n}\n\nexport const checkVideoBidSetup = hook('sync', function(bid: VideoBid, adUnit, videoMediaType, context, useCacheKey) {\n if (videoMediaType && (useCacheKey || context !== OUTSTREAM)) {\n // xml-only video bids require a prebid cache url\n const { url, useLocal } = config.getConfig('cache') || {};\n if ((!url && !useLocal) && bid.vastXml && !bid.vastUrl) {\n logError(`\n This bid contains only vastXml and will not work when a prebid cache url is not specified.\n Try enabling either prebid cache with $$PREBID_GLOBAL$$.setConfig({ cache: {url: \"...\"} });\n or local cache with $$PREBID_GLOBAL$$.setConfig({ cache: { useLocal: true }});\n `);\n return false;\n }\n\n return !!(bid.vastUrl || bid.vastXml);\n }\n\n // outstream bids require a renderer on the bid or pub-defined on adunit\n if (context === OUTSTREAM && !useCacheKey) {\n return !!(bid.renderer || (adUnit && adUnit.renderer) || videoMediaType.renderer);\n }\n\n return true;\n}, 'checkVideoBidSetup');\n"],"mappings":"AAAA,SAAQA,aAAa,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,aAAa,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,OAAO,QAAO,YAAY;AACtG,SAAQC,MAAM,QAAO,aAAa;AAClC,SAAQC,IAAI,QAAO,WAAW;AAC9B,SAAQC,cAAc,QAAO,qBAAqB;AAOlD,OAAO,MAAMC,SAAS,GAAG,WAAW;AACpC,OAAO,MAAMC,QAAQ,GAAG,UAAU;AAElC,MAAMC,WAAW,GAAG,CAClB,CAAE,OAAO,EAAEC,KAAK,IAAIC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,IAAIA,KAAK,CAACG,MAAM,GAAG,CAAC,IAAIH,KAAK,CAACI,KAAK,CAACC,CAAC,IAAI,OAAOA,CAAC,KAAK,QAAQ,CAAC,CAAE,EACzG,CAAE,aAAa,EAAEjB,SAAS,CAAE,EAC5B,CAAE,aAAa,EAAEA,SAAS,CAAE,EAC5B,CAAE,YAAY,EAAEA,SAAS,CAAE,EAC3B,CAAE,QAAQ,EAAEA,SAAS,CAAE,EACvB,CAAE,QAAQ,EAAEA,SAAS,CAAE,EACvB,CAAE,WAAW,EAAED,aAAa,CAAE,EAC9B,CAAE,GAAG,EAAEC,SAAS,CAAE,EAClB,CAAE,GAAG,EAAEA,SAAS,CAAE,EAClB,CAAE,OAAO,EAAEG,KAAK,CAAE,EAClB,CAAE,QAAQ,EAAEH,SAAS,CAAE,EACvB,CAAE,SAAS,EAAED,aAAa,CAAE,EAC5B,CAAE,WAAW,EAAEC,SAAS,CAAE;AAAE;AAC5B,CAAE,OAAO,EAAEA,SAAS,CAAE,EACtB,CAAE,WAAW,EAAEA,SAAS,CAAE,EAC1B,CAAE,MAAM,EAAEY,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAACM,QAAQ,CAACN,KAAK,CAAC,CAAE,EAC3C,CAAE,SAAS,EAAEZ,SAAS,CAAE,EACxB,CAAE,WAAW,EAAEA,SAAS,CAAE,EAC1B,CAAE,UAAU,EAAEA,SAAS,CAAE;AAAE;AAC3B,CAAE,WAAW,EAAEA,SAAS,CAAE,EAC1B,CAAE,cAAc,EAAEC,QAAQ,CAAE,EAC5B,CAAE,OAAO,EAAEF,aAAa,CAAE,EAC1B,CAAE,aAAa,EAAEC,SAAS,CAAE,EAC5B,CAAE,YAAY,EAAEA,SAAS,CAAE,EAC3B,CAAE,YAAY,EAAEA,SAAS,CAAE,EAC3B,CAAE,eAAe,EAAEA,SAAS,CAAE,EAC9B,CAAE,gBAAgB,EAAED,aAAa,CAAE,EACnC,CAAE,aAAa,EAAEC,SAAS,CAAE,EAC5B,CAAE,UAAU,EAAED,aAAa,CAAE,EAC7B,CAAE,KAAK,EAAEC,SAAS,CAAE,EACpB,CAAE,KAAK,EAAED,aAAa,CAAE,EACxB,CAAE,eAAe,EAAEA,aAAa,CAAE,EAClC,CAAE,WAAW,EAAEA,aAAa,CAAE,CACtB;;AAEV;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMoB,iBAAiB,GAAG,IAAIC,GAAG,CAACT,WAAW,CAAC;AASrD,OAAO,SAASU,iBAAiBA,CAACC,MAAwB,EAAE;EAC1D,MAAMC,KAAK,GAAGD,MAAM,EAAEE,UAAU,EAAED,KAAK;EACvC,IAAIA,KAAK,IAAI,IAAI,EAAE;IACjB,IAAIA,KAAK,CAACE,KAAK,IAAI,IAAI,EAAE;MACvB,IAAIF,KAAK,CAACG,OAAO,KAAKjB,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAACS,QAAQ,CAACK,KAAK,CAACI,SAAS,CAAC,EAAE;QACtEJ,KAAK,CAACE,KAAK,GAAG,CAAC;MACjB,CAAC,MAAM,IAAIF,KAAK,CAACK,cAAc,EAAEC,IAAI,GAAGC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAACZ,QAAQ,CAACY,MAAM,CAAC,CAAC,EAAE;QAC1EP,KAAK,CAACE,KAAK,GAAG,CAAC;MACjB;IACF;IACA,MAAMM,UAAU,GAAGhC,aAAa,CAACwB,KAAK,CAACQ,UAAU,EAAE,CAAC,CAAC,GACjDR,KAAK,CAACQ,UAAU,GAChBlB,KAAK,CAACC,OAAO,CAACS,KAAK,CAACQ,UAAU,CAAC,IAAIhC,aAAa,CAACwB,KAAK,CAACQ,UAAU,CAAC,CAAC,CAAC,CAAC,GAAGR,KAAK,CAACQ,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IACtG,MAAMC,IAAsB,GAAG/B,QAAQ,CAACsB,KAAK,CAACU,CAAC,CAAC,IAAIhC,QAAQ,CAACsB,KAAK,CAACW,CAAC,CAAC,GAAG,CAACX,KAAK,CAACU,CAAC,EAAEV,KAAK,CAACW,CAAC,CAAC,GAAG,IAAI;IACjG,IAAIC,QAAQ,GAAG,KAAK;IACpB,IAAIJ,UAAU,IAAI,IAAI,EAAE;MACtB,IAAIC,IAAI,IAAI,IAAI,EAAE;QAChB,IAAIT,KAAK,CAACQ,UAAU,IAAI,IAAI,EAAE;UAC5BI,QAAQ,GAAG,IAAI;QACjB,CAAC,MAAM;UACLZ,KAAK,CAACQ,UAAU,GAAG,CAACC,IAAI,CAAC;QAC3B;MACF;IACF,CAAC,MAAM;MACL,CAAC,GAAG,EAAE,GAAG,CAAC,CAACI,OAAO,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAK;QAC9B,IAAIf,KAAK,CAACc,IAAI,CAAC,IAAI,IAAI,IAAId,KAAK,CAACc,IAAI,CAAC,KAAKN,UAAU,CAACO,CAAC,CAAC,EAAE;UACxDH,QAAQ,GAAG,IAAI;QACjB,CAAC,MAAM;UACLZ,KAAK,CAACc,IAAI,CAAC,GAAGN,UAAU,CAACO,CAAC,CAAC;QAC7B;MACF,CAAC,CAAC;IACJ;IACA,IAAIH,QAAQ,EAAE;MACZ9B,OAAO,CAAC,YAAYiB,MAAM,CAACiB,IAAI,qCAAqC,EAAEjB,MAAM,CAAC;IAC/E;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASkB,uBAAuBA,CAAClB,MAAM,EAAEmB,cAAe,EAAE;EAC/D,MAAMC,WAAW,GAAGpB,MAAM,EAAEE,UAAU,EAAED,KAAK;EAE7C,IAAI,CAACrB,aAAa,CAACwC,WAAW,CAAC,EAAE;IAC/BrC,OAAO,CAAC,yDAAyD,CAAC;IAClE;EACF;EAEA,IAAIqC,WAAW,IAAI,IAAI,EAAE;IACvBC,MAAM,CAACC,OAAO,CAACF,WAAW,CAAC,CACxBN,OAAO,CAACS,IAAA,IAAuB;MAAA,IAAtB,CAACC,GAAG,EAAElC,KAAK,CAAM,GAAAiC,IAAA;MACzB,IAAI,CAAC1B,iBAAiB,CAAC4B,GAAG,CAACD,GAAG,CAAC,EAAE;QAC/B;MACF;MACA,MAAME,OAAO,GAAG7B,iBAAiB,CAAC8B,GAAG,CAACH,GAAG,CAAC,CAAClC,KAAK,CAAC;MACjD,IAAI,CAACoC,OAAO,EAAE;QACZ,IAAI,OAAOP,cAAc,KAAK,UAAU,EAAE;UACxCA,cAAc,CAACK,GAAG,EAAElC,KAAK,EAAEU,MAAM,CAAC;QACpC,CAAC,MAAM;UACL,OAAOoB,WAAW,CAACI,GAAG,CAAC;UACvBzC,OAAO,CAAC,2BAA2BiB,MAAM,CAACiB,IAAI,yCAAyCO,GAAG,gDAAgD,CAAC;QAC7I;MACF;IACF,CAAC,CAAC;EACN;AACF;;AAEA;AACA;AACA;AACA,OAAO,SAASI,eAAeA,CAACC,GAAa,EAAgD;EAAA,IAA9C;IAACC,KAAK,GAAG5C,cAAc,CAAC4C;EAAK,CAAC,GAAAC,SAAA,CAAAtC,MAAA,QAAAsC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC,CAAC;EAChF,MAAME,cAAc,GAAGH,KAAK,CAACI,aAAa,CAACL,GAAG,CAAC,EAAE5B,KAAK;EACtD,MAAMG,OAAO,GAAG6B,cAAc,IAAIA,cAAc,EAAE7B,OAAO;EACzD,MAAM+B,WAAW,GAAGF,cAAc,IAAIA,cAAc,EAAEE,WAAW;EACjE,MAAMnC,MAAM,GAAG8B,KAAK,CAACM,SAAS,CAACP,GAAG,CAAC;;EAEnC;EACA;EACA,OAAOQ,kBAAkB,CAACR,GAAG,EAAE7B,MAAM,EAAEiC,cAAc,EAAE7B,OAAO,EAAE+B,WAAW,CAAC;AAC9E;AAeA,OAAO,MAAME,kBAAkB,GAAGpD,IAAI,CAAC,MAAM,EAAE,UAAS4C,GAAa,EAAE7B,MAAM,EAAEiC,cAAc,EAAE7B,OAAO,EAAE+B,WAAW,EAAE;EACnH,IAAIF,cAAc,KAAKE,WAAW,IAAI/B,OAAO,KAAKjB,SAAS,CAAC,EAAE;IAC5D;IACA,MAAM;MAAEmD,GAAG;MAAEC;IAAS,CAAC,GAAGvD,MAAM,CAACwD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,IAAK,CAACF,GAAG,IAAI,CAACC,QAAQ,IAAKV,GAAG,CAACY,OAAO,IAAI,CAACZ,GAAG,CAACa,OAAO,EAAE;MACtD5D,QAAQ,CAAC;AACf;AACA;AACA;AACA,OAAO,CAAC;MACF,OAAO,KAAK;IACd;IAEA,OAAO,CAAC,EAAE+C,GAAG,CAACa,OAAO,IAAIb,GAAG,CAACY,OAAO,CAAC;EACvC;;EAEA;EACA,IAAIrC,OAAO,KAAKjB,SAAS,IAAI,CAACgD,WAAW,EAAE;IACzC,OAAO,CAAC,EAAEN,GAAG,CAACc,QAAQ,IAAK3C,MAAM,IAAIA,MAAM,CAAC2C,QAAS,IAAIV,cAAc,CAACU,QAAQ,CAAC;EACnF;EAEA,OAAO,IAAI;AACb,CAAC,EAAE,oBAAoB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"videoCache.js","names":["ajaxBuilder","config","auctionManager","generateUUID","logError","logWarn","addBidToAuction","ttlBufferInSeconds","vastLocalCache","Map","wrapURI","uri","impTrackerURLs","Array","isArray","impressions","map","trk","join","toStorageRequest","bid","index","arguments","length","undefined","vastValue","getVastXml","auction","getAuction","ttlWithBuffer","Number","ttl","payload","type","value","ttlseconds","getConfig","bidder","bidid","requestId","aid","auctionId","timestamp","getAuctionStart","customCacheKey","key","shimStorageCallback","done","success","responseBody","ids","JSON","parse","responses","e","Error","error","statusText","stringify","vastXml","vastUrl","vastImpUrl","store","bids","getAjax","requestData","puts","ajax","contentType","withCredentials","getCacheUrl","id","storeLocally","bidVastUrl","URL","createObjectURL","Blob","assignVastUrlAndCacheId","set","videoCacheKey","_internal","storeBatch","batch","entry","bidResponse","err","msg","cacheIds","forEach","cacheId","i","auctionInstance","afterBidAdded","uuid","batchSize","batchTimeout","cleanupHandler","_ref","cache","useLocal","onExpiry","getBidsReceived","get","startsWith","revokeObjectURL","delete","batchingCache","timeout","setTimeout","batches","debouncing","noTimeout","cb","batchFunc","push","batchAndStore"],"sourceRoot":"../../..","sources":["src/videoCache.ts"],"sourcesContent":["/**\n * This module interacts with the server used to cache video ad content to be restored later.\n * At a high level, the expected workflow goes like this:\n *\n * - Request video ads from Bidders\n * - Generate IDs for each valid bid, and cache the key/value pair on the server.\n * - Return these IDs so that publishers can use them to fetch the bids later.\n *\n * This trickery helps integrate with ad servers, which set character limits on request params.\n */\n\nimport {ajaxBuilder} from './ajax.js';\nimport {config} from './config.js';\nimport {auctionManager} from './auctionManager.js';\nimport {generateUUID, logError, logWarn} from './utils.js';\nimport {addBidToAuction} from './auction.js';\nimport type {VideoBid} from \"./bidfactory.ts\";\n\n/**\n * Might be useful to be configurable in the future\n * Depending on publisher needs\n */\n// TODO: we have a `ttlBuffer` setting\nconst ttlBufferInSeconds = 15;\n\nexport const vastLocalCache = new Map();\n\n/**\n * Function which wraps a URI that serves VAST XML, so that it can be loaded.\n *\n * @param uri The URI where the VAST content can be found.\n * @param impTrackerURLs An impression tracker URL for the delivery of the video ad\n * @return A VAST URL which loads XML from the given URI.\n */\nfunction wrapURI(uri: string, impTrackerURLs: string | string[]) {\n impTrackerURLs = impTrackerURLs && (Array.isArray(impTrackerURLs) ? impTrackerURLs : [impTrackerURLs]);\n // Technically, this is vulnerable to cross-script injection by sketchy vastUrl bids.\n // We could make sure it's a valid URI... but since we're loading VAST XML from the\n // URL they provide anyway, that's probably not a big deal.\n const impressions = impTrackerURLs ? impTrackerURLs.map(trk => `<Impression><![CDATA[${trk}]]></Impression>`).join('') : '';\n return `<VAST version=\"3.0\">\n <Ad>\n <Wrapper>\n <AdSystem>prebid.org wrapper</AdSystem>\n <VASTAdTagURI><![CDATA[${uri}]]></VASTAdTagURI>\n ${impressions}\n <Creatives></Creatives>\n </Wrapper>\n </Ad>\n </VAST>`;\n}\n\ndeclare module './bidfactory' {\n interface VideoBidResponseProperties {\n /**\n * VAST impression trackers to attach to this bid.\n */\n vastImpUrl?: string | string []\n /**\n * Cache key to use for caching this bid's VAST.\n */\n customCacheKey?: string\n }\n interface VideoBidProperties {\n /**\n * The cache key that was used for this bid.\n */\n videoCacheKey?: string;\n }\n}\n\nexport interface CacheConfig {\n /**\n * The URL of the Prebid Cache server endpoint where VAST creatives will be sent.\n */\n url: string;\n /**\n * Flag determining whether to locally save VAST XML as a blob\n */\n useLocal?: boolean;\n /**\n * Timeout (in milliseconds) for network requests to the cache\n */\n timeout?: number;\n /**\n * Passes additional data to the url, used for additional event tracking data. Defaults to false.\n */\n vasttrack?: boolean;\n /**\n * If the bidder supplied their own cache key, setting this value to true adds a VAST wrapper around that URL,\n * stores it in the cache defined by the url parameter, and replaces the original video cache key with the new one.\n * This can dramatically simplify ad server setup because it means all VAST creatives reside behind a single URL.\n * The tradeoff: this approach requires the video player to unwrap one extra level of VAST. Defaults to false.\n */\n ignoreBidderCacheKey?: boolean;\n /**\n * Enables video cache requests to be batched by a specified amount (defaults to 1) instead of making a single request per each video.\n */\n batchSize?: number;\n /**\n * Used in conjunction with batchSize, batchTimeout specifies how long to wait in milliseconds before sending\n * a batch video cache request based on the value for batchSize (if present). A batch request will be made whether\n * the batchSize amount was reached or the batchTimeout timer runs out. batchTimeout defaults to 0.\n */\n batchTimeout?: number;\n}\n\ndeclare module './config' {\n interface Config {\n cache?: CacheConfig;\n }\n}\n/**\n * Wraps a bid in the format expected by the prebid-server endpoints, or returns null if\n * the bid can't be converted cleanly.\n *\n * @return {Object|null} - The payload to be sent to the prebid-server endpoints, or null if the bid can't be converted cleanly.\n */\nfunction toStorageRequest(bid, {index = auctionManager.index} = {}) {\nconst vastValue = getVastXml(bid);\n const auction = index.getAuction(bid);\n const ttlWithBuffer = Number(bid.ttl) + ttlBufferInSeconds;\n const payload: any = {\n type: 'xml',\n value: vastValue,\n ttlseconds: ttlWithBuffer\n };\n\n if (config.getConfig('cache.vasttrack')) {\n payload.bidder = bid.bidder;\n payload.bidid = bid.requestId;\n payload.aid = bid.auctionId;\n }\n\n if (auction != null) {\n payload.timestamp = auction.getAuctionStart();\n }\n\n if (typeof bid.customCacheKey === 'string' && bid.customCacheKey !== '') {\n payload.key = bid.customCacheKey;\n }\n\n return payload;\n}\n\ninterface VideoCacheStoreCallback {\n /**\n * A function which should be called with the results of the storage operation.\n *\n * @param error The error, if one occurred.\n * @param uuids An array of unique IDs. The array will have one element for each bid we were asked\n * to store. It may include null elements if some of the bids were malformed, or an error occurred.\n * Each non-null element in this array is a valid input into the retrieve function, which will fetch\n * some VAST XML which can be used to render this bid's ad.\n */\n (error: Error | null, uuids: { uuid: string }[])\n}\n\n/**\n * A function which bridges the APIs between the videoCacheStoreCallback and our ajax function's API.\n *\n * @param done A callback to the \"store\" function.\n */\nfunction shimStorageCallback(done: VideoCacheStoreCallback) {\n return {\n success: function (responseBody) {\n let ids;\n try {\n ids = JSON.parse(responseBody).responses\n } catch (e) {\n done(e, []);\n return;\n }\n\n if (ids) {\n done(null, ids);\n } else {\n done(new Error(\"The cache server didn't respond with a responses property.\"), []);\n }\n },\n error: function (statusText, responseBody) {\n done(new Error(`Error storing video ad in the cache: ${statusText}: ${JSON.stringify(responseBody)}`), []);\n }\n }\n}\n\nfunction getVastXml(bid) {\n return bid.vastXml ? bid.vastXml : wrapURI(bid.vastUrl, bid.vastImpUrl);\n};\n\n/**\n * If the given bid is for a Video ad, generate a unique ID and cache it somewhere server-side.\n *\n * @param bids A list of bid objects which should be cached.\n * @param done An optional callback which should be executed after\n * @param getAjax\n * the data has been stored in the cache.\n */\nexport function store(bids: VideoBid[], done?: VideoCacheStoreCallback, getAjax = ajaxBuilder) {\n const requestData = {\n puts: bids.map(bid => toStorageRequest(bid))\n };\n const ajax = getAjax(config.getConfig('cache.timeout'));\n ajax(config.getConfig('cache.url'), shimStorageCallback(done), JSON.stringify(requestData), {\n contentType: 'text/plain',\n withCredentials: true\n });\n}\n\nexport function getCacheUrl(id) {\n return `${config.getConfig('cache.url')}?uuid=${id}`;\n}\n\nexport const storeLocally = (bid) => {\n const vastXml = getVastXml(bid);\n const bidVastUrl = URL.createObjectURL(new Blob([vastXml], { type: 'text/xml' }));\n\n assignVastUrlAndCacheId(bid, bidVastUrl);\n\n vastLocalCache.set(bid.videoCacheKey, bidVastUrl);\n};\n\nconst assignVastUrlAndCacheId = (bid, vastUrl, videoCacheKey?) => {\n bid.videoCacheKey = videoCacheKey || generateUUID();\n if (!bid.vastUrl) {\n bid.vastUrl = vastUrl;\n }\n}\n\nexport const _internal = {\n store\n}\n\nexport function storeBatch(batch) {\n const bids = batch.map(entry => entry.bidResponse)\n function err(msg) {\n logError(`Failed to save to the video cache: ${msg}. Video bids will be discarded:`, bids)\n }\n _internal.store(bids, function (error, cacheIds) {\n if (error) {\n err(error)\n } else if (batch.length !== cacheIds.length) {\n logError(`expected ${batch.length} cache IDs, got ${cacheIds.length} instead`)\n } else {\n cacheIds.forEach((cacheId, i) => {\n const {auctionInstance, bidResponse, afterBidAdded} = batch[i];\n if (cacheId.uuid === '') {\n logWarn(`Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded.`);\n } else {\n assignVastUrlAndCacheId(bidResponse, getCacheUrl(cacheId.uuid), cacheId.uuid);\n addBidToAuction(auctionInstance, bidResponse);\n afterBidAdded();\n }\n });\n }\n });\n};\n\nlet batchSize, batchTimeout, cleanupHandler;\nif (FEATURES.VIDEO) {\n config.getConfig('cache', ({cache}) => {\n batchSize = typeof cache.batchSize === 'number' && cache.batchSize > 0\n ? cache.batchSize\n : 1;\n batchTimeout = typeof cache.batchTimeout === 'number' && cache.batchTimeout > 0\n ? cache.batchTimeout\n : 0;\n\n // removing blobs that are not going to be used\n if (cache.useLocal && !cleanupHandler) {\n cleanupHandler = auctionManager.onExpiry((auction) => {\n auction.getBidsReceived()\n .forEach((bid) => {\n const vastUrl = vastLocalCache.get(bid.videoCacheKey)\n if (vastUrl && vastUrl.startsWith('blob')) {\n URL.revokeObjectURL(vastUrl);\n }\n vastLocalCache.delete(bid.videoCacheKey);\n })\n });\n }\n });\n}\n\nexport const batchingCache = (timeout = setTimeout, cache = storeBatch) => {\n let batches = [[]];\n let debouncing = false;\n const noTimeout = cb => cb();\n\n return function (auctionInstance, bidResponse, afterBidAdded) {\n const batchFunc = batchTimeout > 0 ? timeout : noTimeout;\n if (batches[batches.length - 1].length >= batchSize) {\n batches.push([]);\n }\n\n batches[batches.length - 1].push({auctionInstance, bidResponse, afterBidAdded});\n\n if (!debouncing) {\n debouncing = true;\n batchFunc(() => {\n batches.forEach(cache);\n batches = [[]];\n debouncing = false;\n }, batchTimeout);\n }\n };\n};\n\nexport const batchAndStore = batchingCache();\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"videoCache.js","names":["ajaxBuilder","config","auctionManager","generateUUID","logError","logWarn","addBidToAuction","ttlBufferInSeconds","vastLocalCache","Map","wrapURI","uri","impTrackerURLs","Array","isArray","impressions","map","trk","join","toStorageRequest","bid","index","arguments","length","undefined","vastValue","getVastXml","auction","getAuction","ttlWithBuffer","Number","ttl","payload","type","value","ttlseconds","getConfig","bidder","bidid","requestId","aid","auctionId","timestamp","getAuctionStart","customCacheKey","key","shimStorageCallback","done","success","responseBody","ids","JSON","parse","responses","e","Error","error","statusText","stringify","vastXml","vastUrl","vastImpUrl","store","bids","getAjax","requestData","puts","ajax","contentType","withCredentials","getCacheUrl","id","storeLocally","bidVastUrl","URL","createObjectURL","Blob","assignVastUrlAndCacheId","set","videoCacheKey","_internal","storeBatch","batch","entry","bidResponse","err","msg","cacheIds","forEach","cacheId","i","auctionInstance","afterBidAdded","uuid","batchSize","batchTimeout","cleanupHandler","_ref","cache","useLocal","onExpiry","getBidsReceived","get","startsWith","revokeObjectURL","delete","batchingCache","timeout","setTimeout","batches","debouncing","noTimeout","cb","batchFunc","push","batchAndStore"],"sourceRoot":"../../..","sources":["src/videoCache.ts"],"sourcesContent":["/**\n * This module interacts with the server used to cache video ad content to be restored later.\n * At a high level, the expected workflow goes like this:\n *\n * - Request video ads from Bidders\n * - Generate IDs for each valid bid, and cache the key/value pair on the server.\n * - Return these IDs so that publishers can use them to fetch the bids later.\n *\n * This trickery helps integrate with ad servers, which set character limits on request params.\n */\n\nimport {ajaxBuilder} from './ajax.js';\nimport {config} from './config.js';\nimport {auctionManager} from './auctionManager.js';\nimport {generateUUID, logError, logWarn} from './utils.js';\nimport {addBidToAuction} from './auction.js';\nimport type {VideoBid} from \"./bidfactory.ts\";\n\n/**\n * Might be useful to be configurable in the future\n * Depending on publisher needs\n */\n// TODO: we have a `ttlBuffer` setting\nconst ttlBufferInSeconds = 15;\n\nexport const vastLocalCache = new Map();\n\n/**\n * Function which wraps a URI that serves VAST XML, so that it can be loaded.\n *\n * @param uri The URI where the VAST content can be found.\n * @param impTrackerURLs An impression tracker URL for the delivery of the video ad\n * @return A VAST URL which loads XML from the given URI.\n */\nfunction wrapURI(uri: string, impTrackerURLs: string | string[]) {\n impTrackerURLs = impTrackerURLs && (Array.isArray(impTrackerURLs) ? impTrackerURLs : [impTrackerURLs]);\n // Technically, this is vulnerable to cross-script injection by sketchy vastUrl bids.\n // We could make sure it's a valid URI... but since we're loading VAST XML from the\n // URL they provide anyway, that's probably not a big deal.\n const impressions = impTrackerURLs ? impTrackerURLs.map(trk => `<Impression><![CDATA[${trk}]]></Impression>`).join('') : '';\n return `<VAST version=\"3.0\">\n <Ad>\n <Wrapper>\n <AdSystem>prebid.org wrapper</AdSystem>\n <VASTAdTagURI><![CDATA[${uri}]]></VASTAdTagURI>\n ${impressions}\n <Creatives></Creatives>\n </Wrapper>\n </Ad>\n </VAST>`;\n}\n\ndeclare module './bidfactory' {\n interface VideoBidResponseProperties {\n /**\n * VAST impression trackers to attach to this bid.\n */\n vastImpUrl?: string | string []\n /**\n * Cache key to use for caching this bid's VAST.\n */\n customCacheKey?: string\n }\n interface VideoBidProperties {\n /**\n * The cache key that was used for this bid.\n */\n videoCacheKey?: string;\n }\n}\n\nexport interface CacheConfig {\n /**\n * The URL of the Prebid Cache server endpoint where VAST creatives will be sent.\n */\n url: string;\n /**\n * Flag determining whether to locally save VAST XML as a blob\n */\n useLocal?: boolean;\n /**\n * Timeout (in milliseconds) for network requests to the cache\n */\n timeout?: number;\n /**\n * Passes additional data to the url, used for additional event tracking data. Defaults to false.\n */\n vasttrack?: boolean;\n /**\n * If the bidder supplied their own cache key, setting this value to true adds a VAST wrapper around that URL,\n * stores it in the cache defined by the url parameter, and replaces the original video cache key with the new one.\n * This can dramatically simplify ad server setup because it means all VAST creatives reside behind a single URL.\n * The tradeoff: this approach requires the video player to unwrap one extra level of VAST. Defaults to false.\n */\n ignoreBidderCacheKey?: boolean;\n /**\n * Enables video cache requests to be batched by a specified amount (defaults to 1) instead of making a single request per each video.\n */\n batchSize?: number;\n /**\n * Used in conjunction with batchSize, batchTimeout specifies how long to wait in milliseconds before sending\n * a batch video cache request based on the value for batchSize (if present). A batch request will be made whether\n * the batchSize amount was reached or the batchTimeout timer runs out. batchTimeout defaults to 0.\n */\n batchTimeout?: number;\n}\n\ndeclare module './config' {\n interface Config {\n cache?: CacheConfig;\n }\n}\n/**\n * Wraps a bid in the format expected by the prebid-server endpoints, or returns null if\n * the bid can't be converted cleanly.\n *\n * @return {Object|null} - The payload to be sent to the prebid-server endpoints, or null if the bid can't be converted cleanly.\n */\nfunction toStorageRequest(bid, {index = auctionManager.index} = {}) {\n const vastValue = getVastXml(bid);\n const auction = index.getAuction(bid);\n const ttlWithBuffer = Number(bid.ttl) + ttlBufferInSeconds;\n const payload: any = {\n type: 'xml',\n value: vastValue,\n ttlseconds: ttlWithBuffer\n };\n\n if (config.getConfig('cache.vasttrack')) {\n payload.bidder = bid.bidder;\n payload.bidid = bid.requestId;\n payload.aid = bid.auctionId;\n }\n\n if (auction != null) {\n payload.timestamp = auction.getAuctionStart();\n }\n\n if (typeof bid.customCacheKey === 'string' && bid.customCacheKey !== '') {\n payload.key = bid.customCacheKey;\n }\n\n return payload;\n}\n\ninterface VideoCacheStoreCallback {\n /**\n * A function which should be called with the results of the storage operation.\n *\n * @param error The error, if one occurred.\n * @param uuids An array of unique IDs. The array will have one element for each bid we were asked\n * to store. It may include null elements if some of the bids were malformed, or an error occurred.\n * Each non-null element in this array is a valid input into the retrieve function, which will fetch\n * some VAST XML which can be used to render this bid's ad.\n */\n (error: Error | null, uuids: { uuid: string }[])\n}\n\n/**\n * A function which bridges the APIs between the videoCacheStoreCallback and our ajax function's API.\n *\n * @param done A callback to the \"store\" function.\n */\nfunction shimStorageCallback(done: VideoCacheStoreCallback) {\n return {\n success: function (responseBody) {\n let ids;\n try {\n ids = JSON.parse(responseBody).responses\n } catch (e) {\n done(e, []);\n return;\n }\n\n if (ids) {\n done(null, ids);\n } else {\n done(new Error(\"The cache server didn't respond with a responses property.\"), []);\n }\n },\n error: function (statusText, responseBody) {\n done(new Error(`Error storing video ad in the cache: ${statusText}: ${JSON.stringify(responseBody)}`), []);\n }\n }\n}\n\nfunction getVastXml(bid) {\n return bid.vastXml ? bid.vastXml : wrapURI(bid.vastUrl, bid.vastImpUrl);\n};\n\n/**\n * If the given bid is for a Video ad, generate a unique ID and cache it somewhere server-side.\n *\n * @param bids A list of bid objects which should be cached.\n * @param done An optional callback which should be executed after\n * @param getAjax\n * the data has been stored in the cache.\n */\nexport function store(bids: VideoBid[], done?: VideoCacheStoreCallback, getAjax = ajaxBuilder) {\n const requestData = {\n puts: bids.map(bid => toStorageRequest(bid))\n };\n const ajax = getAjax(config.getConfig('cache.timeout'));\n ajax(config.getConfig('cache.url'), shimStorageCallback(done), JSON.stringify(requestData), {\n contentType: 'text/plain',\n withCredentials: true\n });\n}\n\nexport function getCacheUrl(id) {\n return `${config.getConfig('cache.url')}?uuid=${id}`;\n}\n\nexport const storeLocally = (bid) => {\n const vastXml = getVastXml(bid);\n const bidVastUrl = URL.createObjectURL(new Blob([vastXml], { type: 'text/xml' }));\n\n assignVastUrlAndCacheId(bid, bidVastUrl);\n\n vastLocalCache.set(bid.videoCacheKey, bidVastUrl);\n};\n\nconst assignVastUrlAndCacheId = (bid, vastUrl, videoCacheKey?) => {\n bid.videoCacheKey = videoCacheKey || generateUUID();\n if (!bid.vastUrl) {\n bid.vastUrl = vastUrl;\n }\n}\n\nexport const _internal = {\n store\n}\n\nexport function storeBatch(batch) {\n const bids = batch.map(entry => entry.bidResponse)\n function err(msg) {\n logError(`Failed to save to the video cache: ${msg}. Video bids will be discarded:`, bids)\n }\n _internal.store(bids, function (error, cacheIds) {\n if (error) {\n err(error)\n } else if (batch.length !== cacheIds.length) {\n logError(`expected ${batch.length} cache IDs, got ${cacheIds.length} instead`)\n } else {\n cacheIds.forEach((cacheId, i) => {\n const {auctionInstance, bidResponse, afterBidAdded} = batch[i];\n if (cacheId.uuid === '') {\n logWarn(`Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded.`);\n } else {\n assignVastUrlAndCacheId(bidResponse, getCacheUrl(cacheId.uuid), cacheId.uuid);\n addBidToAuction(auctionInstance, bidResponse);\n afterBidAdded();\n }\n });\n }\n });\n};\n\nlet batchSize, batchTimeout, cleanupHandler;\nif (FEATURES.VIDEO) {\n config.getConfig('cache', ({cache}) => {\n batchSize = typeof cache.batchSize === 'number' && cache.batchSize > 0\n ? cache.batchSize\n : 1;\n batchTimeout = typeof cache.batchTimeout === 'number' && cache.batchTimeout > 0\n ? cache.batchTimeout\n : 0;\n\n // removing blobs that are not going to be used\n if (cache.useLocal && !cleanupHandler) {\n cleanupHandler = auctionManager.onExpiry((auction) => {\n auction.getBidsReceived()\n .forEach((bid) => {\n const vastUrl = vastLocalCache.get(bid.videoCacheKey)\n if (vastUrl && vastUrl.startsWith('blob')) {\n URL.revokeObjectURL(vastUrl);\n }\n vastLocalCache.delete(bid.videoCacheKey);\n })\n });\n }\n });\n}\n\nexport const batchingCache = (timeout = setTimeout, cache = storeBatch) => {\n let batches = [[]];\n let debouncing = false;\n const noTimeout = cb => cb();\n\n return function (auctionInstance, bidResponse, afterBidAdded) {\n const batchFunc = batchTimeout > 0 ? timeout : noTimeout;\n if (batches[batches.length - 1].length >= batchSize) {\n batches.push([]);\n }\n\n batches[batches.length - 1].push({auctionInstance, bidResponse, afterBidAdded});\n\n if (!debouncing) {\n debouncing = true;\n batchFunc(() => {\n batches.forEach(cache);\n batches = [[]];\n debouncing = false;\n }, batchTimeout);\n }\n };\n};\n\nexport const batchAndStore = batchingCache();\n"],"mappings":"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","ignoreList":[]}
@@ -125,7 +125,7 @@ function compareOnKeys(lhs, rhs) {
125
125
  }
126
126
  }
127
127
  for (let key in rhs) {
128
- if (key in lhs) {} else {
128
+ if (!(key in lhs)) {
129
129
  ronly.push(rhs[key]);
130
130
  }
131
131
  }