prebid.js 5.14.0 → 5.18.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 (397) hide show
  1. package/.devcontainer/Dockerfile +11 -0
  2. package/.devcontainer/devcontainer.json +27 -0
  3. package/.devcontainer/postCreate.sh +6 -0
  4. package/allowedModules.js +2 -1
  5. package/integrationExamples/gpt/afpExample.html +242 -0
  6. package/integrationExamples/gpt/afpGamExample.html +152 -0
  7. package/integrationExamples/gpt/weboramaRtdProvider_example.html +126 -0
  8. package/modules/.submodules.json +29 -27
  9. package/modules/33acrossBidAdapter.js +23 -20
  10. package/modules/a4gBidAdapter.js +3 -3
  11. package/modules/ablidaBidAdapter.js +2 -2
  12. package/modules/adWMGBidAdapter.js +4 -4
  13. package/modules/adagioAnalyticsAdapter.js +4 -4
  14. package/modules/adagioBidAdapter.js +85 -82
  15. package/modules/adbookpspBidAdapter.js +56 -54
  16. package/modules/adfBidAdapter.js +24 -16
  17. package/modules/adgenerationBidAdapter.js +42 -18
  18. package/modules/adhashBidAdapter.js +105 -0
  19. package/modules/adhashBidAdapter.md +1 -1
  20. package/modules/adkernelAdnAnalyticsAdapter.js +6 -6
  21. package/modules/adkernelAdnBidAdapter.js +23 -23
  22. package/modules/adkernelBidAdapter.js +49 -44
  23. package/modules/adlooxAdServerVideo.js +26 -26
  24. package/modules/adlooxAnalyticsAdapter.js +38 -35
  25. package/modules/adlooxRtdProvider.js +49 -46
  26. package/modules/admanBidAdapter.js +4 -4
  27. package/modules/admixerBidAdapter.js +13 -2
  28. package/modules/admixerIdSystem.js +4 -4
  29. package/modules/adnowBidAdapter.js +4 -4
  30. package/modules/adnuntiusBidAdapter.js +6 -5
  31. package/modules/adoceanBidAdapter.js +10 -10
  32. package/modules/adpartnerBidAdapter.js +3 -3
  33. package/modules/adpod.js +45 -42
  34. package/modules/adprimeBidAdapter.js +4 -4
  35. package/modules/adqueryBidAdapter.js +204 -0
  36. package/modules/adqueryBidAdapter.md +32 -0
  37. package/modules/adrelevantisBidAdapter.js +30 -27
  38. package/modules/adriverBidAdapter.js +13 -13
  39. package/modules/adtargetBidAdapter.js +24 -24
  40. package/modules/adtelligentBidAdapter.js +29 -29
  41. package/modules/adtrueBidAdapter.js +35 -35
  42. package/modules/aduptechBidAdapter.js +10 -10
  43. package/modules/advangelistsBidAdapter.js +14 -14
  44. package/modules/adxcgAnalyticsAdapter.js +5 -5
  45. package/modules/adxcgBidAdapter.js +56 -56
  46. package/modules/adxpremiumAnalyticsAdapter.js +17 -17
  47. package/modules/adyoulikeBidAdapter.js +11 -11
  48. package/modules/afpBidAdapter.js +166 -0
  49. package/modules/afpBidAdapter.md +348 -0
  50. package/modules/ajaBidAdapter.js +12 -12
  51. package/modules/akamaiDAPIdSystem.js +9 -9
  52. package/modules/aniviewBidAdapter.js +2 -2
  53. package/modules/aolBidAdapter.js +15 -14
  54. package/modules/apacdexBidAdapter.js +16 -16
  55. package/modules/appnexusBidAdapter.js +59 -59
  56. package/modules/apstreamBidAdapter.js +5 -5
  57. package/modules/asoBidAdapter.js +30 -30
  58. package/modules/astraoneBidAdapter.js +2 -2
  59. package/modules/atsAnalyticsAdapter.js +35 -30
  60. package/modules/audiencerunBidAdapter.js +15 -15
  61. package/modules/automatadBidAdapter.js +2 -2
  62. package/modules/axonixBidAdapter.js +7 -7
  63. package/modules/beachfrontBidAdapter.js +23 -23
  64. package/modules/beopBidAdapter.js +22 -22
  65. package/modules/bidViewabilityIO.js +7 -7
  66. package/modules/bidglassBidAdapter.js +8 -8
  67. package/modules/bidscubeBidAdapter.js +3 -3
  68. package/modules/bizzclickBidAdapter.js +10 -10
  69. package/modules/bliinkBidAdapter.js +58 -32
  70. package/modules/bliinkBidAdapter.md +29 -6
  71. package/modules/bluebillywigBidAdapter.js +30 -30
  72. package/modules/boldwinBidAdapter.js +4 -4
  73. package/modules/braveBidAdapter.js +5 -5
  74. package/modules/bridgewellBidAdapter.js +5 -5
  75. package/modules/brightMountainMediaBidAdapter.js +10 -10
  76. package/modules/brightcomBidAdapter.js +18 -18
  77. package/modules/britepoolIdSystem.js +7 -7
  78. package/modules/browsiRtdProvider.js +8 -8
  79. package/modules/bucksenseBidAdapter.js +9 -9
  80. package/modules/buzzoolaBidAdapter.js +4 -4
  81. package/modules/byDataAnalyticsAdapter.js +12 -12
  82. package/modules/ccxBidAdapter.js +38 -38
  83. package/modules/cleanmedianetBidAdapter.js +9 -9
  84. package/modules/clickforceBidAdapter.js +4 -4
  85. package/modules/cointrafficBidAdapter.js +4 -4
  86. package/modules/coinzillaBidAdapter.js +2 -2
  87. package/modules/colossussspBidAdapter.js +7 -3
  88. package/modules/concertAnalyticsAdapter.js +3 -3
  89. package/modules/concertBidAdapter.js +16 -17
  90. package/modules/connectadBidAdapter.js +13 -13
  91. package/modules/consentManagement.js +29 -28
  92. package/modules/consentManagementUsp.js +14 -14
  93. package/modules/consumableBidAdapter.js +3 -3
  94. package/modules/contentexchangeBidAdapter.js +5 -5
  95. package/modules/conversantBidAdapter.js +32 -31
  96. package/modules/cpmstarBidAdapter.js +8 -9
  97. package/modules/craftBidAdapter.js +10 -10
  98. package/modules/criteoBidAdapter.js +16 -16
  99. package/modules/criteoIdSystem.js +5 -5
  100. package/modules/currency.js +18 -18
  101. package/modules/cwireBidAdapter.js +272 -0
  102. package/modules/cwireBidAdapter.md +43 -0
  103. package/modules/datablocksBidAdapter.js +12 -12
  104. package/modules/deepintentBidAdapter.js +13 -13
  105. package/modules/dgkeywordRtdProvider.js +10 -11
  106. package/modules/districtmDMXBidAdapter.js +15 -15
  107. package/modules/dmdIdSystem.js +5 -5
  108. package/modules/docereeBidAdapter.js +9 -9
  109. package/modules/dspxBidAdapter.js +5 -5
  110. package/modules/ebdrBidAdapter.js +9 -9
  111. package/modules/emx_digitalBidAdapter.js +23 -23
  112. package/modules/enrichmentFpdModule.js +10 -9
  113. package/modules/eplanningAnalyticsAdapter.js +2 -2
  114. package/modules/eplanningBidAdapter.js +10 -10
  115. package/modules/etargetBidAdapter.js +4 -4
  116. package/modules/express.js +9 -10
  117. package/modules/fabrickIdSystem.js +6 -6
  118. package/modules/feedadBidAdapter.js +5 -5
  119. package/modules/fintezaAnalyticsAdapter.js +4 -4
  120. package/modules/flocIdSystem.js +5 -5
  121. package/modules/fluctBidAdapter.js +6 -5
  122. package/modules/freewheel-sspBidAdapter.js +6 -6
  123. package/modules/gamoshiBidAdapter.js +22 -22
  124. package/modules/gdprEnforcement.js +13 -14
  125. package/modules/getintentBidAdapter.js +3 -4
  126. package/modules/glimpseBidAdapter.js +160 -48
  127. package/modules/glimpseBidAdapter.md +11 -74
  128. package/modules/gmosspBidAdapter.js +17 -17
  129. package/modules/gnetBidAdapter.js +5 -5
  130. package/modules/googleAnalyticsAdapter.js +6 -6
  131. package/modules/gothamadsBidAdapter.js +9 -9
  132. package/modules/gptPreAuction.js +7 -7
  133. package/modules/gridBidAdapter.js +15 -16
  134. package/modules/gridNMBidAdapter.js +214 -63
  135. package/modules/growadvertisingBidAdapter.js +7 -8
  136. package/modules/gumgumBidAdapter.js +19 -13
  137. package/modules/h12mediaBidAdapter.js +12 -12
  138. package/modules/haloIdSystem.js +8 -8
  139. package/modules/hybridBidAdapter.js +7 -7
  140. package/modules/iasRtdProvider.js +79 -63
  141. package/modules/id5IdSystem.js +24 -24
  142. package/modules/idImportLibrary.js +35 -35
  143. package/modules/idxIdSystem.js +3 -3
  144. package/modules/impactifyBidAdapter.js +10 -10
  145. package/modules/improvedigitalBidAdapter.js +36 -36
  146. package/modules/imuIdSystem.js +6 -6
  147. package/modules/inmarBidAdapter.js +2 -2
  148. package/modules/innityBidAdapter.js +3 -3
  149. package/modules/inskinBidAdapter.js +14 -2
  150. package/modules/inskinBidAdapter.md +5 -4
  151. package/modules/instreamTracking.js +5 -5
  152. package/modules/integr8BidAdapter.js +4 -4
  153. package/modules/intentIqIdSystem.js +7 -7
  154. package/modules/interactiveOffersBidAdapter.js +5 -5
  155. package/modules/invibesBidAdapter.js +53 -19
  156. package/modules/invisiblyAnalyticsAdapter.js +5 -5
  157. package/modules/iqmBidAdapter.js +19 -19
  158. package/modules/iqzoneBidAdapter.js +5 -5
  159. package/modules/ixBidAdapter.js +73 -73
  160. package/modules/jixieBidAdapter.js +6 -6
  161. package/modules/justpremiumBidAdapter.js +5 -1
  162. package/modules/kargoBidAdapter.js +16 -9
  163. package/modules/kargoBidAdapter.md +20 -0
  164. package/modules/kinessoIdSystem.js +8 -8
  165. package/modules/koblerBidAdapter.js +12 -12
  166. package/modules/konduitAnalyticsAdapter.js +4 -4
  167. package/modules/konduitWrapper.js +14 -14
  168. package/modules/krushmediaBidAdapter.js +4 -4
  169. package/modules/kubientBidAdapter.js +5 -5
  170. package/modules/limelightDigitalBidAdapter.js +4 -4
  171. package/modules/liveIntentIdSystem.js +4 -5
  172. package/modules/livewrappedAnalyticsAdapter.js +27 -15
  173. package/modules/livewrappedBidAdapter.js +7 -7
  174. package/modules/liveyieldAnalyticsAdapter.js +13 -13
  175. package/modules/lockerdomeBidAdapter.js +2 -2
  176. package/modules/loganBidAdapter.js +4 -4
  177. package/modules/lotamePanoramaIdSystem.js +13 -13
  178. package/modules/lunamediahbBidAdapter.js +2 -2
  179. package/modules/madvertiseBidAdapter.js +3 -3
  180. package/modules/marsmediaBidAdapter.js +26 -26
  181. package/modules/mathildeadsBidAdapter.js +5 -5
  182. package/modules/mediaforceBidAdapter.js +11 -11
  183. package/modules/mediakeysBidAdapter.js +444 -53
  184. package/modules/mediakeysBidAdapter.md +108 -0
  185. package/modules/medianetAnalyticsAdapter.js +48 -125
  186. package/modules/medianetBidAdapter.js +38 -33
  187. package/modules/medianetRtdProvider.js +7 -7
  188. package/modules/merkleIdSystem.js +19 -19
  189. package/modules/mgidBidAdapter.js +50 -50
  190. package/modules/microadBidAdapter.js +3 -3
  191. package/modules/multibid/index.js +15 -13
  192. package/modules/mwOpenLinkIdSystem.js +7 -7
  193. package/modules/mytargetBidAdapter.js +112 -0
  194. package/modules/nativoBidAdapter.js +46 -31
  195. package/modules/nativoBidAdapter.md +0 -1
  196. package/modules/naveggIdSystem.js +3 -3
  197. package/modules/nextMillenniumBidAdapter.js +6 -6
  198. package/modules/nextrollBidAdapter.js +375 -0
  199. package/modules/nobidBidAdapter.js +12 -11
  200. package/modules/novatiqIdSystem.js +8 -8
  201. package/modules/oguryBidAdapter.js +22 -6
  202. package/modules/oneVideoBidAdapter.js +20 -20
  203. package/modules/onomagicBidAdapter.js +16 -16
  204. package/modules/ooloAnalyticsAdapter.js +13 -13
  205. package/modules/openwebBidAdapter.js +26 -26
  206. package/modules/openxAnalyticsAdapter.js +33 -33
  207. package/modules/openxBidAdapter.js +29 -29
  208. package/modules/operaadsBidAdapter.js +53 -53
  209. package/modules/optimeraRtdProvider.js +9 -9
  210. package/modules/optoutBidAdapter.js +3 -3
  211. package/modules/orbidderBidAdapter.js +3 -3
  212. package/modules/outbrainBidAdapter.js +13 -13
  213. package/modules/ozoneBidAdapter.js +131 -131
  214. package/modules/padsquadBidAdapter.js +4 -4
  215. package/modules/parrableIdSystem.js +17 -17
  216. package/modules/pixfutureBidAdapter.js +45 -25
  217. package/modules/pixfutureBidAdapter.md +127 -0
  218. package/modules/prebidServerBidAdapter/index.js +109 -105
  219. package/modules/prebidmanagerAnalyticsAdapter.js +7 -7
  220. package/modules/priceFloors.js +47 -47
  221. package/modules/proxistoreBidAdapter.js +6 -8
  222. package/modules/pubCommonId.js +11 -11
  223. package/modules/pubProvidedIdSystem.js +3 -3
  224. package/modules/publinkIdSystem.js +23 -7
  225. package/modules/publinkIdSystem.md +7 -2
  226. package/modules/pubmaticAnalyticsAdapter.js +16 -16
  227. package/modules/pubmaticBidAdapter.js +109 -93
  228. package/modules/pubmaticBidAdapter.md +1 -1
  229. package/modules/pubperfAnalyticsAdapter.js +3 -3
  230. package/modules/pubwiseAnalyticsAdapter.js +6 -6
  231. package/modules/pubwiseBidAdapter.js +23 -23
  232. package/modules/pubxBidAdapter.js +2 -2
  233. package/modules/pubxaiAnalyticsAdapter.js +7 -7
  234. package/modules/pulsepointBidAdapter.js +13 -13
  235. package/modules/pxyzBidAdapter.js +7 -7
  236. package/modules/quantcastBidAdapter.js +16 -16
  237. package/modules/radsBidAdapter.js +5 -5
  238. package/modules/realvuAnalyticsAdapter.js +5 -7
  239. package/modules/reconciliationRtdProvider.js +6 -6
  240. package/modules/relaidoBidAdapter.js +44 -38
  241. package/modules/resetdigitalBidAdapter.js +3 -4
  242. package/modules/revcontentBidAdapter.js +9 -9
  243. package/modules/rhythmoneBidAdapter.js +17 -16
  244. package/modules/richaudienceBidAdapter.js +9 -9
  245. package/modules/riseBidAdapter.js +26 -26
  246. package/modules/riseBidAdapter.md +1 -3
  247. package/modules/roxotAnalyticsAdapter.js +14 -14
  248. package/modules/rtbhouseBidAdapter.js +7 -7
  249. package/modules/rtbsapeBidAdapter.js +3 -4
  250. package/modules/rtdModule/index.js +3 -3
  251. package/modules/rubiconAnalyticsAdapter.js +82 -82
  252. package/modules/rubiconBidAdapter.js +72 -68
  253. package/modules/scaleableAnalyticsAdapter.js +2 -2
  254. package/modules/seedingAllianceBidAdapter.js +231 -0
  255. package/modules/seedtagBidAdapter.js +10 -10
  256. package/modules/sharedIdSystem.js +11 -11
  257. package/modules/sharethroughAnalyticsAdapter.js +8 -8
  258. package/modules/sharethroughBidAdapter.js +20 -27
  259. package/modules/showheroes-bsBidAdapter.js +23 -23
  260. package/modules/sigmoidAnalyticsAdapter.js +4 -5
  261. package/modules/sirdataRtdProvider.js +34 -34
  262. package/modules/sizeMappingV2.js +39 -39
  263. package/modules/slimcutBidAdapter.js +121 -0
  264. package/modules/smaatoBidAdapter.js +44 -44
  265. package/modules/smartadserverBidAdapter.js +7 -7
  266. package/modules/smartxBidAdapter.js +72 -72
  267. package/modules/smartyadsBidAdapter.js +2 -2
  268. package/modules/smilewantedBidAdapter.js +6 -6
  269. package/modules/sonobiAnalyticsAdapter.js +23 -23
  270. package/modules/sortableAnalyticsAdapter.js +5 -5
  271. package/modules/sortableBidAdapter.js +28 -28
  272. package/modules/sovrnAnalyticsAdapter.js +5 -5
  273. package/modules/sovrnBidAdapter.js +22 -22
  274. package/modules/spotxBidAdapter.js +97 -83
  275. package/modules/sspBCBidAdapter.js +216 -21
  276. package/modules/sspBCBidAdapter.md +1 -1
  277. package/modules/staqAnalyticsAdapter.js +9 -9
  278. package/modules/stroeerCoreBidAdapter.js +16 -16
  279. package/modules/sublimeBidAdapter.js +6 -6
  280. package/modules/talkadsBidAdapter.js +129 -0
  281. package/modules/talkadsBidAdapter.md +60 -0
  282. package/modules/tapadIdSystem.js +3 -3
  283. package/modules/tappxBidAdapter.js +63 -64
  284. package/modules/teadsBidAdapter.js +20 -20
  285. package/modules/telariaBidAdapter.js +17 -17
  286. package/modules/temedyaBidAdapter.js +4 -4
  287. package/modules/terceptAnalyticsAdapter.js +4 -4
  288. package/modules/theAdxBidAdapter.js +16 -16
  289. package/modules/timeoutRtdProvider.js +15 -15
  290. package/modules/tpmnBidAdapter.js +3 -3
  291. package/modules/trionBidAdapter.js +15 -15
  292. package/modules/tripleliftBidAdapter.js +27 -24
  293. package/modules/truereachBidAdapter.js +4 -4
  294. package/modules/trustxBidAdapter.js +22 -18
  295. package/modules/ucfunnelBidAdapter.js +3 -3
  296. package/modules/uid2IdSystem.js +6 -6
  297. package/modules/underdogmediaBidAdapter.js +4 -4
  298. package/modules/unicornBidAdapter.js +15 -15
  299. package/modules/unifiedIdSystem.js +4 -4
  300. package/modules/unrulyBidAdapter.js +16 -16
  301. package/modules/userId/eids.js +9 -9
  302. package/modules/userId/index.js +37 -35
  303. package/modules/validationFpdModule/index.js +15 -15
  304. package/modules/vdoaiBidAdapter.js +2 -2
  305. package/modules/verizonMediaIdSystem.js +5 -5
  306. package/modules/vidazooBidAdapter.js +5 -5
  307. package/modules/videobyteBidAdapter.js +24 -24
  308. package/modules/videoreachBidAdapter.js +7 -7
  309. package/modules/vidoomyBidAdapter.js +105 -22
  310. package/modules/viewdeosDXBidAdapter.js +17 -17
  311. package/modules/visxBidAdapter.js +21 -29
  312. package/modules/voxBidAdapter.js +7 -7
  313. package/modules/vuukleBidAdapter.js +2 -2
  314. package/modules/waardexBidAdapter.js +26 -26
  315. package/modules/weboramaRtdProvider.js +174 -0
  316. package/modules/weboramaRtdProvider.md +70 -0
  317. package/modules/winrBidAdapter.js +27 -27
  318. package/modules/wipesBidAdapter.js +2 -2
  319. package/modules/yahoosspBidAdapter.js +637 -0
  320. package/modules/yahoosspBidAdapter.md +795 -0
  321. package/modules/yieldlabBidAdapter.js +57 -12
  322. package/modules/yieldlabBidAdapter.md +16 -1
  323. package/modules/yieldliftBidAdapter.js +9 -9
  324. package/modules/yieldmoBidAdapter.js +64 -50
  325. package/modules/yieldoneAnalyticsAdapter.js +6 -6
  326. package/modules/yieldoneBidAdapter.js +11 -11
  327. package/modules/yuktamediaAnalyticsAdapter.js +15 -15
  328. package/modules/zeotapIdPlusIdSystem.js +2 -2
  329. package/modules/zetaBidAdapter.js +6 -6
  330. package/modules/zeta_global_sspBidAdapter.js +14 -14
  331. package/package.json +1 -1
  332. package/src/AnalyticsAdapter.js +6 -6
  333. package/src/Renderer.js +10 -8
  334. package/src/adapterManager.js +45 -42
  335. package/src/adloader.js +6 -6
  336. package/src/ajax.js +8 -9
  337. package/src/auction.js +26 -23
  338. package/src/bidfactory.js +2 -2
  339. package/src/config.js +52 -50
  340. package/src/cpmBucketManager.js +2 -2
  341. package/src/prebid.js +85 -81
  342. package/src/storageManager.js +5 -5
  343. package/src/targeting.js +25 -26
  344. package/src/userSync.js +35 -22
  345. package/src/videoCache.js +2 -2
  346. package/test/.eslintrc.js +2 -1
  347. package/test/spec/modules/adfBidAdapter_spec.js +55 -0
  348. package/test/spec/modules/adgenerationBidAdapter_spec.js +121 -50
  349. package/test/spec/modules/adhashBidAdapter_spec.js +155 -0
  350. package/test/spec/modules/adnuntiusBidAdapter_spec.js +68 -0
  351. package/test/spec/modules/adqueryBidAdapter_spec.js +185 -0
  352. package/test/spec/modules/afpBidAdapter_spec.js +306 -0
  353. package/test/spec/modules/atsAnalyticsAdapter_spec.js +37 -2
  354. package/test/spec/modules/bliinkBidAdapter_spec.js +87 -36
  355. package/test/spec/modules/colossussspBidAdapter_spec.js +14 -6
  356. package/test/spec/modules/cwireBidAdapter_spec.js +246 -0
  357. package/test/spec/modules/eplanningBidAdapter_spec.js +3 -3
  358. package/test/spec/modules/glimpseBidAdapter_spec.js +302 -204
  359. package/test/spec/modules/gridBidAdapter_spec.js +38 -2
  360. package/test/spec/modules/gridNMBidAdapter_spec.js +121 -47
  361. package/test/spec/modules/gumgumBidAdapter_spec.js +27 -6
  362. package/test/spec/modules/iasRtdProvider_spec.js +71 -6
  363. package/test/spec/modules/inskinBidAdapter_spec.js +10 -1
  364. package/test/spec/modules/invibesBidAdapter_spec.js +114 -2
  365. package/test/spec/modules/justpremiumBidAdapter_spec.js +16 -2
  366. package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +33 -7
  367. package/test/spec/modules/mediakeysBidAdapter_spec.js +406 -51
  368. package/test/spec/modules/medianetAnalyticsAdapter_spec.js +39 -7
  369. package/test/spec/modules/medianetBidAdapter_spec.js +62 -1
  370. package/test/spec/modules/mytargetBidAdapter_spec.js +199 -0
  371. package/test/spec/modules/nativoBidAdapter_spec.js +50 -3
  372. package/test/spec/modules/nextrollBidAdapter_spec.js +290 -0
  373. package/test/spec/modules/nobidBidAdapter_spec.js +65 -1
  374. package/test/spec/modules/oguryBidAdapter_spec.js +120 -7
  375. package/test/spec/modules/publinkIdSystem_spec.js +42 -12
  376. package/test/spec/modules/pubmaticBidAdapter_spec.js +217 -1
  377. package/test/spec/modules/relaidoBidAdapter_spec.js +21 -20
  378. package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +100 -81
  379. package/test/spec/modules/rubiconAnalyticsSchema.json +5 -2
  380. package/test/spec/modules/seedingAllianceAdapter_spec.js +186 -0
  381. package/test/spec/modules/sharethroughBidAdapter_spec.js +156 -136
  382. package/test/spec/modules/slimcutBidAdapter_spec.js +200 -0
  383. package/test/spec/modules/spotxBidAdapter_spec.js +36 -0
  384. package/test/spec/modules/sspBCBidAdapter_spec.js +210 -62
  385. package/test/spec/modules/talkadsBidAdapter_spec.js +231 -0
  386. package/test/spec/modules/tappxBidAdapter_spec.js +39 -3
  387. package/test/spec/modules/tripleliftBidAdapter_spec.js +2 -0
  388. package/test/spec/modules/trustxBidAdapter_spec.js +35 -2
  389. package/test/spec/modules/unicornBidAdapter_spec.js +4 -4
  390. package/test/spec/modules/visxBidAdapter_spec.js +48 -4
  391. package/test/spec/modules/weboramaRtdProvider_spec.js +288 -0
  392. package/test/spec/modules/yahoosspBidAdapter_spec.js +1332 -0
  393. package/test/spec/modules/yieldlabBidAdapter_spec.js +65 -1
  394. package/test/spec/modules/yieldmoBidAdapter_spec.js +30 -9
  395. package/test/spec/unit/pbjs_api_spec.js +4 -0
  396. package/test/spec/userSync_spec.js +30 -2
  397. package/modules/turktelekomBidAdapter.md +0 -49
@@ -1,8 +1,8 @@
1
+ import { getWindowLocation, generateUUID, parseUrl, buildUrl, logInfo, parseSizesInput, logError } from '../src/utils.js';
1
2
  import { ajax } from '../src/ajax.js';
2
3
  import adapter from '../src/AnalyticsAdapter.js';
3
4
  import adapterManager from '../src/adapterManager.js';
4
5
  import CONSTANTS from '../src/constants.json';
5
- import * as utils from '../src/utils.js';
6
6
  import { getStorageManager } from '../src/storageManager.js';
7
7
  import { getRefererInfo } from '../src/refererDetection.js';
8
8
  import strIncludes from 'core-js-pure/features/string/includes.js';
@@ -17,7 +17,7 @@ const events = {
17
17
  };
18
18
  const localStoragePrefix = 'yuktamediaAnalytics_';
19
19
  const utmTags = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];
20
- const location = utils.getWindowLocation();
20
+ const location = getWindowLocation();
21
21
  const referer = getRefererInfo().referer;
22
22
  const _pageInfo = {
23
23
  userAgent: window.navigator.userAgent,
@@ -25,13 +25,13 @@ const _pageInfo = {
25
25
  language: window.navigator.language,
26
26
  screenWidth: window.screen.width,
27
27
  screenHeight: window.screen.height,
28
- pageViewId: utils.generateUUID(),
28
+ pageViewId: generateUUID(),
29
29
  host: location.host,
30
30
  path: location.pathname,
31
31
  search: location.search,
32
32
  hash: location.hash,
33
33
  referer: referer,
34
- refererDomain: utils.parseUrl(referer).host,
34
+ refererDomain: parseUrl(referer).host,
35
35
  yuktamediaAnalyticsVersion: yuktamediaAnalyticsVersion,
36
36
  prebidVersion: $$PREBID_GLOBAL$$.version
37
37
  };
@@ -53,7 +53,7 @@ function isNavigatorSendBeaconSupported() {
53
53
 
54
54
  function updateSessionId() {
55
55
  if (isSessionIdTimeoutExpired()) {
56
- let newSessionId = utils.generateUUID();
56
+ let newSessionId = generateUUID();
57
57
  storage.setDataInLocalStorage(localStoragePrefix.concat('session_id'), newSessionId);
58
58
  }
59
59
  initOptions.sessionId = getSessionId();
@@ -80,7 +80,7 @@ function isUtmTimeoutExpired() {
80
80
 
81
81
  function send(data, status) {
82
82
  data.initOptions = Object.assign(_pageInfo, initOptions);
83
- const yuktamediaAnalyticsRequestUrl = utils.buildUrl({
83
+ const yuktamediaAnalyticsRequestUrl = buildUrl({
84
84
  protocol: 'https',
85
85
  hostname: 'analytics-prebid.yuktamedia.com',
86
86
  pathname: '/api/bids'
@@ -97,13 +97,13 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin
97
97
  if (typeof args !== 'undefined') {
98
98
  switch (eventType) {
99
99
  case CONSTANTS.EVENTS.AUCTION_INIT:
100
- utils.logInfo(localStoragePrefix + 'AUCTION_INIT:', JSON.stringify(args));
100
+ logInfo(localStoragePrefix + 'AUCTION_INIT:', JSON.stringify(args));
101
101
  if (typeof args.auctionId !== 'undefined' && args.auctionId.length) {
102
102
  events.auctions[args.auctionId] = { bids: {} };
103
103
  }
104
104
  break;
105
105
  case CONSTANTS.EVENTS.BID_REQUESTED:
106
- utils.logInfo(localStoragePrefix + 'BID_REQUESTED:', JSON.stringify(args));
106
+ logInfo(localStoragePrefix + 'BID_REQUESTED:', JSON.stringify(args));
107
107
  if (typeof args.auctionId !== 'undefined' && args.auctionId.length) {
108
108
  if (typeof events.auctions[args.auctionId] === 'undefined') {
109
109
  events.auctions[args.auctionId] = { bids: {} };
@@ -113,7 +113,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin
113
113
  events.auctions[args.auctionId]['bids'][bidRequest.bidId] = {
114
114
  bidder: bidRequest.bidder,
115
115
  adUnit: bidRequest.adUnitCode,
116
- sizes: utils.parseSizesInput(bidRequest.sizes).toString(),
116
+ sizes: parseSizesInput(bidRequest.sizes).toString(),
117
117
  isBid: false,
118
118
  won: false,
119
119
  timeout: false,
@@ -132,7 +132,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin
132
132
  }
133
133
  break;
134
134
  case CONSTANTS.EVENTS.BID_RESPONSE:
135
- utils.logInfo(localStoragePrefix + 'BID_RESPONSE:', JSON.stringify(args));
135
+ logInfo(localStoragePrefix + 'BID_RESPONSE:', JSON.stringify(args));
136
136
  if (typeof args.auctionId !== 'undefined' && args.auctionId.length) {
137
137
  if (typeof events.auctions[args.auctionId] === 'undefined') {
138
138
  events.auctions[args.auctionId] = { bids: {} };
@@ -162,7 +162,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin
162
162
  }
163
163
  break;
164
164
  case CONSTANTS.EVENTS.NO_BID:
165
- utils.logInfo(localStoragePrefix + 'NO_BID:', JSON.stringify(args));
165
+ logInfo(localStoragePrefix + 'NO_BID:', JSON.stringify(args));
166
166
  if (typeof args.auctionId !== 'undefined' && args.auctionId.length) {
167
167
  if (typeof events.auctions[args.auctionId] === 'undefined') {
168
168
  events.auctions[args.auctionId] = { bids: {} };
@@ -173,7 +173,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin
173
173
  }
174
174
  break;
175
175
  case CONSTANTS.EVENTS.BID_WON:
176
- utils.logInfo(localStoragePrefix + 'BID_WON:', JSON.stringify(args));
176
+ logInfo(localStoragePrefix + 'BID_WON:', JSON.stringify(args));
177
177
  if (typeof initOptions.enableSession !== 'undefined' && initOptions.enableSession) {
178
178
  updateSessionId();
179
179
  }
@@ -189,7 +189,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin
189
189
  }
190
190
  break;
191
191
  case CONSTANTS.EVENTS.BID_TIMEOUT:
192
- utils.logInfo(localStoragePrefix + 'BID_TIMEOUT:', JSON.stringify(args));
192
+ logInfo(localStoragePrefix + 'BID_TIMEOUT:', JSON.stringify(args));
193
193
  if (args.length) {
194
194
  args.forEach(timeout => {
195
195
  if (typeof timeout !== 'undefined' && typeof timeout.auctionId !== 'undefined' && timeout.auctionId.length) {
@@ -205,7 +205,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin
205
205
  }
206
206
  break;
207
207
  case CONSTANTS.EVENTS.AUCTION_END:
208
- utils.logInfo(localStoragePrefix + 'AUCTION_END:', JSON.stringify(args));
208
+ logInfo(localStoragePrefix + 'AUCTION_END:', JSON.stringify(args));
209
209
  if (typeof initOptions.enableSession !== 'undefined' && initOptions.enableSession) {
210
210
  updateSessionId();
211
211
  }
@@ -249,7 +249,7 @@ yuktamediaAnalyticsAdapter.originEnableAnalytics = yuktamediaAnalyticsAdapter.en
249
249
  yuktamediaAnalyticsAdapter.enableAnalytics = function (config) {
250
250
  if (config && config.options) {
251
251
  if (typeof config.options.pubId === 'undefined' || typeof config.options.pubKey === 'undefined') {
252
- utils.logError('Need pubId and pubKey to log auction results. Please contact a YuktaMedia representative if you do not know your pubId and pubKey.');
252
+ logError('Need pubId and pubKey to log auction results. Please contact a YuktaMedia representative if you do not know your pubId and pubKey.');
253
253
  return;
254
254
  }
255
255
  }
@@ -4,7 +4,7 @@
4
4
  * @module modules/zeotapIdPlusIdSystem
5
5
  * @requires module:modules/userId
6
6
  */
7
- import * as utils from '../src/utils.js'
7
+ import { isStr, isPlainObject } from '../src/utils.js';
8
8
  import {submodule} from '../src/hook.js';
9
9
  import { getStorageManager } from '../src/storageManager.js';
10
10
 
@@ -45,7 +45,7 @@ export const zeotapIdPlusSubmodule = {
45
45
  * @return { Object | string | undefined }
46
46
  */
47
47
  decode(value) {
48
- const id = value ? utils.isStr(value) ? value : utils.isPlainObject(value) ? value.id : undefined : undefined;
48
+ const id = value ? isStr(value) ? value : isPlainObject(value) ? value.id : undefined : undefined;
49
49
  return id ? {
50
50
  'IDP': JSON.parse(atob(id))
51
51
  } : undefined;
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { logWarn } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
  import {BANNER} from '../src/mediaTypes.js';
4
4
  const BIDDER_CODE = 'zeta_global';
@@ -24,30 +24,30 @@ export const spec = {
24
24
  if (!(bid &&
25
25
  bid.bidId &&
26
26
  bid.params)) {
27
- utils.logWarn('Invalid bid request - missing required bid data');
27
+ logWarn('Invalid bid request - missing required bid data');
28
28
  return false;
29
29
  }
30
30
 
31
31
  if (!(bid.params.user &&
32
32
  bid.params.user.buyeruid)) {
33
- utils.logWarn('Invalid bid request - missing required user data');
33
+ logWarn('Invalid bid request - missing required user data');
34
34
  return false;
35
35
  }
36
36
 
37
37
  if (!(bid.params.device &&
38
38
  bid.params.device.ip)) {
39
- utils.logWarn('Invalid bid request - missing required device data');
39
+ logWarn('Invalid bid request - missing required device data');
40
40
  return false;
41
41
  }
42
42
 
43
43
  if (!(bid.params.device.geo &&
44
44
  bid.params.device.geo.country)) {
45
- utils.logWarn('Invalid bid request - missing required geo data');
45
+ logWarn('Invalid bid request - missing required geo data');
46
46
  return false;
47
47
  }
48
48
 
49
49
  if (!bid.params.definerId) {
50
- utils.logWarn('Invalid bid request - missing required definer data');
50
+ logWarn('Invalid bid request - missing required definer data');
51
51
  return false;
52
52
  }
53
53
 
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { logWarn, deepSetValue, deepAccess, isArray, isNumber, isBoolean, isStr } from '../src/utils.js';
2
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
3
3
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
4
4
  import {config} from '../src/config.js';
@@ -51,7 +51,7 @@ export const spec = {
51
51
  if (!(bid &&
52
52
  bid.bidId &&
53
53
  bid.params)) {
54
- utils.logWarn('Invalid bid request - missing required bid data');
54
+ logWarn('Invalid bid request - missing required bid data');
55
55
  return false;
56
56
  }
57
57
  return true;
@@ -115,13 +115,13 @@ export const spec = {
115
115
 
116
116
  // Attaching GDPR Consent Params
117
117
  if (bidderRequest && bidderRequest.gdprConsent) {
118
- utils.deepSetValue(payload, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
119
- utils.deepSetValue(payload, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0));
118
+ deepSetValue(payload, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
119
+ deepSetValue(payload, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0));
120
120
  }
121
121
 
122
122
  // CCPA
123
123
  if (bidderRequest && bidderRequest.uspConsent) {
124
- utils.deepSetValue(payload, 'regs.ext.us_privacy', bidderRequest.uspConsent);
124
+ deepSetValue(payload, 'regs.ext.us_privacy', bidderRequest.uspConsent);
125
125
  }
126
126
 
127
127
  provideEids(request, payload);
@@ -219,17 +219,17 @@ function buildBanner(request) {
219
219
 
220
220
  function buildVideo(request) {
221
221
  let video = {};
222
- const videoParams = utils.deepAccess(request, 'mediaTypes.video', {});
222
+ const videoParams = deepAccess(request, 'mediaTypes.video', {});
223
223
  for (const key in VIDEO_CUSTOM_PARAMS) {
224
224
  if (videoParams.hasOwnProperty(key)) {
225
225
  video[key] = checkParamDataType(key, videoParams[key], VIDEO_CUSTOM_PARAMS[key]);
226
226
  }
227
227
  }
228
228
  if (videoParams.playerSize) {
229
- if (utils.isArray(videoParams.playerSize[0])) {
229
+ if (isArray(videoParams.playerSize[0])) {
230
230
  video.w = parseInt(videoParams.playerSize[0][0], 10);
231
231
  video.h = parseInt(videoParams.playerSize[0][1], 10);
232
- } else if (utils.isNumber(videoParams.playerSize[0])) {
232
+ } else if (isNumber(videoParams.playerSize[0])) {
233
233
  video.w = parseInt(videoParams.playerSize[0], 10);
234
234
  video.h = parseInt(videoParams.playerSize[1], 10);
235
235
  }
@@ -241,28 +241,28 @@ function checkParamDataType(key, value, datatype) {
241
241
  let functionToExecute;
242
242
  switch (datatype) {
243
243
  case DATA_TYPES.BOOLEAN:
244
- functionToExecute = utils.isBoolean;
244
+ functionToExecute = isBoolean;
245
245
  break;
246
246
  case DATA_TYPES.NUMBER:
247
- functionToExecute = utils.isNumber;
247
+ functionToExecute = isNumber;
248
248
  break;
249
249
  case DATA_TYPES.STRING:
250
- functionToExecute = utils.isStr;
250
+ functionToExecute = isStr;
251
251
  break;
252
252
  case DATA_TYPES.ARRAY:
253
- functionToExecute = utils.isArray;
253
+ functionToExecute = isArray;
254
254
  break;
255
255
  }
256
256
  if (functionToExecute(value)) {
257
257
  return value;
258
258
  }
259
- utils.logWarn('Ignoring param key: ' + key + ', expects ' + datatype + ', found ' + typeof value);
259
+ logWarn('Ignoring param key: ' + key + ', expects ' + datatype + ', found ' + typeof value);
260
260
  return undefined;
261
261
  }
262
262
 
263
263
  function provideEids(request, payload) {
264
264
  if (Array.isArray(request.userIdAsEids) && request.userIdAsEids.length > 0) {
265
- utils.deepSetValue(payload, 'user.ext.eids', request.userIdAsEids);
265
+ deepSetValue(payload, 'user.ext.eids', request.userIdAsEids);
266
266
  }
267
267
  }
268
268
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prebid.js",
3
- "version": "5.14.0",
3
+ "version": "5.18.0",
4
4
  "description": "Header Bidding Management Library",
5
5
  "main": "src/prebid.js",
6
6
  "scripts": {
@@ -1,8 +1,8 @@
1
1
  import CONSTANTS from './constants.json';
2
2
  import { ajax } from './ajax.js';
3
+ import { logMessage, _each } from './utils.js';
3
4
 
4
5
  const events = require('./events.js');
5
- const utils = require('./utils.js');
6
6
 
7
7
  const {
8
8
  EVENTS: {
@@ -123,22 +123,22 @@ export default function AnalyticsAdapter({ url, analyticsType, global, handler }
123
123
  }
124
124
  };
125
125
 
126
- utils._each(_handlers, (handler, event) => {
126
+ _each(_handlers, (handler, event) => {
127
127
  events.on(event, handler);
128
128
  });
129
129
  } else {
130
- utils.logMessage(`Analytics adapter for "${global}" disabled by sampling`);
130
+ logMessage(`Analytics adapter for "${global}" disabled by sampling`);
131
131
  }
132
132
 
133
133
  // finally set this function to return log message, prevents multiple adapter listeners
134
134
  this._oldEnable = this.enableAnalytics;
135
135
  this.enableAnalytics = function _enable() {
136
- return utils.logMessage(`Analytics adapter for "${global}" already enabled, unnecessary call to \`enableAnalytics\`.`);
136
+ return logMessage(`Analytics adapter for "${global}" already enabled, unnecessary call to \`enableAnalytics\`.`);
137
137
  };
138
138
  }
139
139
 
140
140
  function _disable() {
141
- utils._each(_handlers, (handler, event) => {
141
+ _each(_handlers, (handler, event) => {
142
142
  events.off(event, handler);
143
143
  });
144
144
  this.enableAnalytics = this._oldEnable ? this._oldEnable : _enable;
@@ -158,6 +158,6 @@ export default function AnalyticsAdapter({ url, analyticsType, global, handler }
158
158
  _enableCheck = false;
159
159
  }
160
160
 
161
- utils.logMessage(`event count sent to ${global}: ${_eventCount}`);
161
+ logMessage(`event count sent to ${global}: ${_eventCount}`);
162
162
  }
163
163
  }
package/src/Renderer.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { loadExternalScript } from './adloader.js';
2
- import * as utils from './utils.js';
2
+ import {
3
+ logError, logWarn, logMessage, deepAccess
4
+ } from './utils.js';
3
5
  import find from 'core-js-pure/features/array/find.js';
4
6
  const moduleCode = 'outstream';
5
7
 
@@ -25,7 +27,7 @@ export function Renderer(options) {
25
27
  this.cmd = [];
26
28
  this.push = func => {
27
29
  if (typeof func !== 'function') {
28
- utils.logError('Commands given to Renderer.push must be wrapped in a function');
30
+ logError('Commands given to Renderer.push must be wrapped in a function');
29
31
  return;
30
32
  }
31
33
  this.loaded ? func.call() : this.cmd.push(func);
@@ -44,7 +46,7 @@ export function Renderer(options) {
44
46
  if (this._render) {
45
47
  this._render.apply(this, renderArgs)
46
48
  } else {
47
- utils.logWarn(`No render function was provided, please use .setRender on the renderer`);
49
+ logWarn(`No render function was provided, please use .setRender on the renderer`);
48
50
  }
49
51
  }
50
52
 
@@ -53,7 +55,7 @@ export function Renderer(options) {
53
55
  this.cmd.unshift(runRender) // should render run first ?
54
56
  loadExternalScript(url, moduleCode, this.callback);
55
57
  } else {
56
- utils.logWarn(`External Js not loaded by Renderer since renderer url and callback is already defined on adUnit ${adUnitCode}`);
58
+ logWarn(`External Js not loaded by Renderer since renderer url and callback is already defined on adUnit ${adUnitCode}`);
57
59
  runRender()
58
60
  }
59
61
  }.bind(this) // bind the function to this object to avoid 'this' errors
@@ -80,7 +82,7 @@ Renderer.prototype.handleVideoEvent = function({ id, eventName }) {
80
82
  this.handlers[eventName]();
81
83
  }
82
84
 
83
- utils.logMessage(`Prebid Renderer event for id ${id} type ${eventName}`);
85
+ logMessage(`Prebid Renderer event for id ${id} type ${eventName}`);
84
86
  };
85
87
 
86
88
  /*
@@ -92,7 +94,7 @@ Renderer.prototype.process = function() {
92
94
  try {
93
95
  this.cmd.shift().call();
94
96
  } catch (error) {
95
- utils.logError('Error processing Renderer command: ', error);
97
+ logError('Error processing Renderer command: ', error);
96
98
  }
97
99
  }
98
100
  };
@@ -126,11 +128,11 @@ function isRendererPreferredFromAdUnit(adUnitCode) {
126
128
  }
127
129
 
128
130
  // renderer defined at adUnit level
129
- const adUnitRenderer = utils.deepAccess(adUnit, 'renderer');
131
+ const adUnitRenderer = deepAccess(adUnit, 'renderer');
130
132
  const hasValidAdUnitRenderer = !!(adUnitRenderer && adUnitRenderer.url && adUnitRenderer.render);
131
133
 
132
134
  // renderer defined at adUnit.mediaTypes level
133
- const mediaTypeRenderer = utils.deepAccess(adUnit, 'mediaTypes.video.renderer');
135
+ const mediaTypeRenderer = deepAccess(adUnit, 'mediaTypes.video.renderer');
134
136
  const hasValidMediaTypeRenderer = !!(mediaTypeRenderer && mediaTypeRenderer.url && mediaTypeRenderer.render)
135
137
 
136
138
  return !!(