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
@@ -4,7 +4,7 @@
4
4
 
5
5
  import adapter from '../src/AnalyticsAdapter.js';
6
6
  import adapterManager from '../src/adapterManager.js';
7
- import * as utils from '../src/utils.js';
7
+ import { logError } from '../src/utils.js';
8
8
 
9
9
  var pubperfAdapter = adapter({
10
10
  global: 'pubperf_pbjs',
@@ -16,11 +16,11 @@ pubperfAdapter.originEnableAnalytics = pubperfAdapter.enableAnalytics;
16
16
 
17
17
  pubperfAdapter.enableAnalytics = config => {
18
18
  if (!config || !config.provider || config.provider !== 'pubperf') {
19
- utils.logError('expected config.provider to equal pubperf');
19
+ logError('expected config.provider to equal pubperf');
20
20
  return;
21
21
  }
22
22
  if (!window['pubperf_pbjs']) {
23
- utils.logError(
23
+ logError(
24
24
  `Make sure that Pubperf tag from https://www.pubperf.com is included before the Prebid configuration.`
25
25
  );
26
26
  return;
@@ -1,9 +1,9 @@
1
+ import { getParameterByName, logInfo, generateUUID, debugTurnedOn } 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
6
  import { getStorageManager } from '../src/storageManager.js';
6
- const utils = require('../src/utils.js');
7
7
  const storage = getStorageManager();
8
8
 
9
9
  /****
@@ -76,7 +76,7 @@ function enrichWithUTM(dataBag) {
76
76
  let newUtm = false;
77
77
  try {
78
78
  for (let prop in utmKeys) {
79
- utmKeys[prop] = utils.getParameterByName(prop);
79
+ utmKeys[prop] = getParameterByName(prop);
80
80
  if (utmKeys[prop]) {
81
81
  newUtm = true;
82
82
  dataBag[prop] = utmKeys[prop];
@@ -192,7 +192,7 @@ function markEnabled() {
192
192
  }
193
193
 
194
194
  function pwInfo(info, context) {
195
- utils.logInfo(`${analyticsName} ` + info, context);
195
+ logInfo(`${analyticsName} ` + info, context);
196
196
  }
197
197
 
198
198
  function filterBidResponse(data) {
@@ -304,7 +304,7 @@ pubwiseAnalytics.storeSessionID = function (userSessID) {
304
304
  // ensure a session exists, if not make one, always store it
305
305
  pubwiseAnalytics.ensureSession = function () {
306
306
  if (sessionExpired() === true || userSessionID() === null || userSessionID() === '') {
307
- let generatedId = utils.generateUUID();
307
+ let generatedId = generateUUID();
308
308
  expireUtmData();
309
309
  this.storeSessionID(generatedId);
310
310
  sessionData.sessionId = generatedId;
@@ -320,10 +320,10 @@ pubwiseAnalytics.enableAnalytics = function (config) {
320
320
  configOptions = Object.assign(configOptions, config.options);
321
321
  // take the PBJS debug for our debug setting if no PW debug is defined
322
322
  if (configOptions.debug === null) {
323
- configOptions.debug = utils.debugTurnedOn();
323
+ configOptions.debug = debugTurnedOn();
324
324
  }
325
325
  markEnabled();
326
- sessionData.activationId = utils.generateUUID();
326
+ sessionData.activationId = generateUUID();
327
327
  this.ensureSession();
328
328
  pubwiseAnalytics.adapterEnableAnalytics(config);
329
329
  };
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { _each, isStr, deepClone, isArray, deepSetValue, inIframe, logMessage, logInfo, logWarn, logError } from '../src/utils.js';
2
2
  import { config } from '../src/config.js';
3
3
  import { registerBidder } from '../src/adapters/bidderFactory.js';
4
4
  import { BANNER, NATIVE } from '../src/mediaTypes.js';
@@ -81,9 +81,9 @@ let NATIVE_ASSET_KEY_TO_ASSET_MAP = {};
81
81
 
82
82
  // together allows traversal of NATIVE_ASSETS_LIST in any direction
83
83
  // id -> key
84
- utils._each(NATIVE_ASSETS, anAsset => { NATIVE_ASSET_ID_TO_KEY_MAP[anAsset.ID] = anAsset.KEY });
84
+ _each(NATIVE_ASSETS, anAsset => { NATIVE_ASSET_ID_TO_KEY_MAP[anAsset.ID] = anAsset.KEY });
85
85
  // key -> asset
86
- utils._each(NATIVE_ASSETS, anAsset => { NATIVE_ASSET_KEY_TO_ASSET_MAP[anAsset.KEY] = anAsset });
86
+ _each(NATIVE_ASSETS, anAsset => { NATIVE_ASSET_KEY_TO_ASSET_MAP[anAsset.KEY] = anAsset });
87
87
 
88
88
  export const spec = {
89
89
  code: BIDDER_CODE,
@@ -99,7 +99,7 @@ export const spec = {
99
99
  // siteId is required
100
100
  if (bid.params && bid.params.siteId) {
101
101
  // it must be a string
102
- if (!utils.isStr(bid.params.siteId)) {
102
+ if (!isStr(bid.params.siteId)) {
103
103
  _logWarn('siteId is required for bid', bid);
104
104
  return false;
105
105
  }
@@ -127,7 +127,7 @@ export const spec = {
127
127
  var blockedIabCategories = [];
128
128
 
129
129
  validBidRequests.forEach(originalBid => {
130
- bid = utils.deepClone(originalBid);
130
+ bid = deepClone(originalBid);
131
131
  bid.params.adSlot = bid.params.adSlot || '';
132
132
  _parseAdSlot(bid);
133
133
 
@@ -136,7 +136,7 @@ export const spec = {
136
136
  bidCurrency = bid.params.currency || UNDEFINED;
137
137
  bid.params.currency = bidCurrency;
138
138
 
139
- if (bid.params.hasOwnProperty('bcat') && utils.isArray(bid.params.bcat)) {
139
+ if (bid.params.hasOwnProperty('bcat') && isArray(bid.params.bcat)) {
140
140
  blockedIabCategories = blockedIabCategories.concat(bid.params.bcat);
141
141
  }
142
142
 
@@ -180,27 +180,27 @@ export const spec = {
180
180
  }
181
181
 
182
182
  // passing transactionId in source.tid
183
- utils.deepSetValue(payload, 'source.tid', conf.transactionId);
183
+ deepSetValue(payload, 'source.tid', conf.transactionId);
184
184
 
185
185
  // schain
186
186
  if (validBidRequests[0].schain) {
187
- utils.deepSetValue(payload, 'source.ext.schain', validBidRequests[0].schain);
187
+ deepSetValue(payload, 'source.ext.schain', validBidRequests[0].schain);
188
188
  }
189
189
 
190
190
  // gdpr consent
191
191
  if (bidderRequest && bidderRequest.gdprConsent) {
192
- utils.deepSetValue(payload, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
193
- utils.deepSetValue(payload, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0));
192
+ deepSetValue(payload, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
193
+ deepSetValue(payload, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0));
194
194
  }
195
195
 
196
196
  // ccpa on the root object
197
197
  if (bidderRequest && bidderRequest.uspConsent) {
198
- utils.deepSetValue(payload, 'regs.ext.us_privacy', bidderRequest.uspConsent);
198
+ deepSetValue(payload, 'regs.ext.us_privacy', bidderRequest.uspConsent);
199
199
  }
200
200
 
201
201
  // if coppa is in effect then note it
202
202
  if (config.getConfig('coppa') === true) {
203
- utils.deepSetValue(payload, 'regs.coppa', 1);
203
+ deepSetValue(payload, 'regs.coppa', 1);
204
204
  }
205
205
 
206
206
  var options = {contentType: 'text/plain'}
@@ -230,12 +230,12 @@ export const spec = {
230
230
  // let parsedReferrer = parsedRequest.site && parsedRequest.site.ref ? parsedRequest.site.ref : '';
231
231
 
232
232
  // try {
233
- if (response.body && response.body.seatbid && utils.isArray(response.body.seatbid)) {
233
+ if (response.body && response.body.seatbid && isArray(response.body.seatbid)) {
234
234
  // Supporting multiple bid responses for same adSize
235
235
  respCur = response.body.cur || respCur;
236
236
  response.body.seatbid.forEach(seatbidder => {
237
237
  seatbidder.bid &&
238
- utils.isArray(seatbidder.bid) &&
238
+ isArray(seatbidder.bid) &&
239
239
  seatbidder.bid.forEach(bid => {
240
240
  let newBid = {
241
241
  requestId: bid.impid,
@@ -388,7 +388,7 @@ function _handleCustomParams(params, conf) {
388
388
  value = entry.f(value, conf);
389
389
  }
390
390
 
391
- if (utils.isStr(value)) {
391
+ if (isStr(value)) {
392
392
  conf[key] = value;
393
393
  } else {
394
394
  _logWarn('Ignoring param : ' + key + ' with value : ' + CUSTOM_PARAMS[key] + ', expects string-value, found ' + typeof value);
@@ -469,7 +469,7 @@ function _createImpressionObject(bid, conf) {
469
469
  }
470
470
 
471
471
  function _parseSlotParam(paramName, paramValue) {
472
- if (!utils.isStr(paramValue)) {
472
+ if (!isStr(paramValue)) {
473
473
  paramValue && _logWarn('Ignoring param key: ' + paramName + ', expects string-value, found ' + typeof paramValue);
474
474
  return UNDEFINED;
475
475
  }
@@ -520,7 +520,7 @@ function _parseAdSlot(bid) {
520
520
  }
521
521
 
522
522
  function _cleanSlotName(slotName) {
523
- if (utils.isStr(slotName)) {
523
+ if (isStr(slotName)) {
524
524
  return slotName.replace(/^\s+/g, '').replace(/\s+$/g, '');
525
525
  }
526
526
  return '';
@@ -705,7 +705,7 @@ function _createBannerRequest(bid) {
705
705
  var sizes = bid.mediaTypes.banner.sizes;
706
706
  var format = [];
707
707
  var bannerObj;
708
- if (sizes !== UNDEFINED && utils.isArray(sizes)) {
708
+ if (sizes !== UNDEFINED && isArray(sizes)) {
709
709
  bannerObj = {};
710
710
  if (!bid.params.width && !bid.params.height) {
711
711
  if (sizes.length === 0) {
@@ -734,7 +734,7 @@ function _createBannerRequest(bid) {
734
734
  }
735
735
  }
736
736
  bannerObj.pos = 0;
737
- bannerObj.topframe = utils.inIframe() ? 0 : 1;
737
+ bannerObj.topframe = inIframe() ? 0 : 1;
738
738
  } else {
739
739
  _logWarn('Error: mediaTypes.banner.size missing for adunit: ' + bid.params.adUnit + '. Ignoring the banner impression in the adunit.');
740
740
  bannerObj = UNDEFINED;
@@ -745,22 +745,22 @@ function _createBannerRequest(bid) {
745
745
  // various error levels are not always used
746
746
  // eslint-disable-next-line no-unused-vars
747
747
  function _logMessage(textValue, objectValue) {
748
- utils.logMessage('PubWise: ' + textValue, objectValue);
748
+ logMessage('PubWise: ' + textValue, objectValue);
749
749
  }
750
750
 
751
751
  // eslint-disable-next-line no-unused-vars
752
752
  function _logInfo(textValue, objectValue) {
753
- utils.logInfo('PubWise: ' + textValue, objectValue);
753
+ logInfo('PubWise: ' + textValue, objectValue);
754
754
  }
755
755
 
756
756
  // eslint-disable-next-line no-unused-vars
757
757
  function _logWarn(textValue, objectValue) {
758
- utils.logWarn('PubWise: ' + textValue, objectValue);
758
+ logWarn('PubWise: ' + textValue, objectValue);
759
759
  }
760
760
 
761
761
  // eslint-disable-next-line no-unused-vars
762
762
  function _logError(textValue, objectValue) {
763
- utils.logError('PubWise: ' + textValue, objectValue);
763
+ logError('PubWise: ' + textValue, objectValue);
764
764
  }
765
765
 
766
766
  // function _decorateLog() {
@@ -1,5 +1,5 @@
1
+ import { deepSetValue } from '../src/utils.js';
1
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
2
- import * as utils from '../src/utils.js';
3
3
 
4
4
  const BIDDER_CODE = 'pubx';
5
5
  const BID_ENDPOINT = 'https://api.primecaster.net/adlogue/api/slot/bid';
@@ -43,7 +43,7 @@ export const spec = {
43
43
  ad: body.adm
44
44
  };
45
45
  if (body.adomains) {
46
- utils.deepSetValue(bidResponse, 'meta.advertiserDomains', Array.isArray(body.adomains) ? body.adomains : [body.adomains]);
46
+ deepSetValue(bidResponse, 'meta.advertiserDomains', Array.isArray(body.adomains) ? body.adomains : [body.adomains]);
47
47
  }
48
48
  bidResponses.push(bidResponse);
49
49
  } else {};
@@ -1,8 +1,8 @@
1
+ import { deepAccess, getGptSlotInfoForAdUnitCode, parseSizesInput, getWindowLocation, buildUrl } 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
 
7
7
  const emptyUrl = '';
8
8
  const analyticsType = 'endpoint';
@@ -34,7 +34,7 @@ var pubxaiAnalyticsAdapter = Object.assign(adapter(
34
34
  events.auctionInit = args;
35
35
  events.floorDetail = {};
36
36
  events.bids = [];
37
- const floorData = utils.deepAccess(args, 'bidderRequests.0.bids.0.floorData');
37
+ const floorData = deepAccess(args, 'bidderRequests.0.bids.0.floorData');
38
38
  if (typeof floorData !== 'undefined') {
39
39
  Object.assign(events.floorDetail, floorData);
40
40
  }
@@ -57,7 +57,7 @@ function mapBidResponse(bidResponse, status) {
57
57
  if (typeof bidResponse !== 'undefined') {
58
58
  let bid = {
59
59
  adUnitCode: bidResponse.adUnitCode,
60
- gptSlotCode: utils.getGptSlotInfoForAdUnitCode(bidResponse.adUnitCode).gptSlot || null,
60
+ gptSlotCode: getGptSlotInfoForAdUnitCode(bidResponse.adUnitCode).gptSlot || null,
61
61
  auctionId: bidResponse.auctionId,
62
62
  bidderCode: bidResponse.bidder,
63
63
  cpm: bidResponse.cpm,
@@ -77,7 +77,7 @@ function mapBidResponse(bidResponse, status) {
77
77
  Object.assign(bid, {
78
78
  bidId: status === 'timeout' ? bidResponse.bidId : bidResponse.requestId,
79
79
  renderStatus: status === 'timeout' ? 3 : 2,
80
- sizes: utils.parseSizesInput(bidResponse.size).toString(),
80
+ sizes: parseSizesInput(bidResponse.size).toString(),
81
81
  });
82
82
  events.bids.push(bid);
83
83
  } else {
@@ -85,7 +85,7 @@ function mapBidResponse(bidResponse, status) {
85
85
  bidId: bidResponse.requestId,
86
86
  floorProvider: events.floorDetail ? events.floorDetail.floorProvider : null,
87
87
  isWinningBid: true,
88
- placementId: bidResponse.params ? utils.deepAccess(bidResponse, 'params.0.placementId') : null,
88
+ placementId: bidResponse.params ? deepAccess(bidResponse, 'params.0.placementId') : null,
89
89
  renderedSize: bidResponse.size,
90
90
  renderStatus: 4
91
91
  });
@@ -131,7 +131,7 @@ pubxaiAnalyticsAdapter.shouldFireEventRequest = function (samplingRate = 1) {
131
131
 
132
132
  function send(data, status) {
133
133
  if (pubxaiAnalyticsAdapter.shouldFireEventRequest(initOptions.samplingRate)) {
134
- let location = utils.getWindowLocation();
134
+ let location = getWindowLocation();
135
135
  data.initOptions = initOptions;
136
136
  if (typeof data !== 'undefined' && typeof data.auctionInit !== 'undefined') {
137
137
  Object.assign(data.pageDetail, {
@@ -150,7 +150,7 @@ function send(data, status) {
150
150
  deviceOS: getOS(),
151
151
  browser: getBrowser()
152
152
  });
153
- let pubxaiAnalyticsRequestUrl = utils.buildUrl({
153
+ let pubxaiAnalyticsRequestUrl = buildUrl({
154
154
  protocol: 'https',
155
155
  hostname: (initOptions && initOptions.hostName) || defaultHost,
156
156
  pathname: status == 'bidwon' ? winningBidPath : auctionPath,
@@ -1,5 +1,5 @@
1
1
  /* eslint dot-notation:0, quote-props:0 */
2
- import * as utils from '../src/utils.js';
2
+ import { convertTypes, deepAccess, isArray, logError, isFn } from '../src/utils.js';
3
3
  import { registerBidder } from '../src/adapters/bidderFactory.js';
4
4
  import { Renderer } from '../src/Renderer.js';
5
5
 
@@ -77,7 +77,7 @@ export const spec = {
77
77
  }
78
78
  },
79
79
  transformBidParams: function(params, isOpenRtb) {
80
- return utils.convertTypes({
80
+ return convertTypes({
81
81
  'cf': 'string',
82
82
  'cp': 'number',
83
83
  'ct': 'number'
@@ -124,8 +124,8 @@ function bidResponseAvailable(request, response) {
124
124
  };
125
125
  if (idToImpMap[id].video) {
126
126
  // for outstream, a renderer is specified
127
- if (idToSlotConfig[id] && utils.deepAccess(idToSlotConfig[id], 'mediaTypes.video.context') === 'outstream') {
128
- bid.renderer = outstreamRenderer(utils.deepAccess(idToSlotConfig[id], 'renderer.options'), utils.deepAccess(idToBidMap[id], 'ext.outstream'));
127
+ if (idToSlotConfig[id] && deepAccess(idToSlotConfig[id], 'mediaTypes.video.context') === 'outstream') {
128
+ bid.renderer = outstreamRenderer(deepAccess(idToSlotConfig[id], 'renderer.options'), deepAccess(idToBidMap[id], 'ext.outstream'));
129
129
  }
130
130
  bid.vastXml = idToBidMap[id].adm;
131
131
  bid.mediaType = 'video';
@@ -178,9 +178,9 @@ function banner(slot) {
178
178
  * Produce openrtb format objects based on the sizes configured for the slot.
179
179
  */
180
180
  function parseSizes(slot) {
181
- const sizes = utils.deepAccess(slot, 'mediaTypes.banner.sizes');
182
- if (sizes && utils.isArray(sizes)) {
183
- return sizes.filter(sz => utils.isArray(sz) && sz.length === 2).map(sz => ({
181
+ const sizes = deepAccess(slot, 'mediaTypes.banner.sizes');
182
+ if (sizes && isArray(sizes)) {
183
+ return sizes.filter(sz => isArray(sz) && sz.length === 2).map(sz => ({
184
184
  w: sz[0],
185
185
  h: sz[1]
186
186
  }));
@@ -387,7 +387,7 @@ function parse(rawResponse) {
387
387
  return JSON.parse(rawResponse);
388
388
  }
389
389
  } catch (ex) {
390
- utils.logError('pulsepointLite.safeParse', 'ERROR', ex);
390
+ logError('pulsepointLite.safeParse', 'ERROR', ex);
391
391
  }
392
392
  return null;
393
393
  }
@@ -425,14 +425,14 @@ function user(bidRequest, bidderRequest) {
425
425
  addExternalUserId(ext.eids, bidRequest.userId.britepoolid, 'britepool.com');
426
426
  addExternalUserId(ext.eids, bidRequest.userId.criteoId, 'criteo.com');
427
427
  addExternalUserId(ext.eids, bidRequest.userId.idl_env, 'liveramp.com');
428
- addExternalUserId(ext.eids, utils.deepAccess(bidRequest, 'userId.id5id.uid'), 'id5-sync.com', utils.deepAccess(bidRequest, 'userId.id5id.ext'));
429
- addExternalUserId(ext.eids, utils.deepAccess(bidRequest, 'userId.parrableId.eid'), 'parrable.com');
428
+ addExternalUserId(ext.eids, deepAccess(bidRequest, 'userId.id5id.uid'), 'id5-sync.com', deepAccess(bidRequest, 'userId.id5id.ext'));
429
+ addExternalUserId(ext.eids, deepAccess(bidRequest, 'userId.parrableId.eid'), 'parrable.com');
430
430
  addExternalUserId(ext.eids, bidRequest.userId.fabrickId, 'neustar.biz');
431
- addExternalUserId(ext.eids, utils.deepAccess(bidRequest, 'userId.haloId.haloId'), 'audigent.com');
431
+ addExternalUserId(ext.eids, deepAccess(bidRequest, 'userId.haloId.haloId'), 'audigent.com');
432
432
  addExternalUserId(ext.eids, bidRequest.userId.merkleId, 'merkleinc.com');
433
433
  addExternalUserId(ext.eids, bidRequest.userId.lotamePanoramaId, 'crwdcntrl.net');
434
434
  addExternalUserId(ext.eids, bidRequest.userId.connectid, 'verizonmedia.com');
435
- addExternalUserId(ext.eids, utils.deepAccess(bidRequest, 'userId.uid2.id'), 'uidapi.com');
435
+ addExternalUserId(ext.eids, deepAccess(bidRequest, 'userId.uid2.id'), 'uidapi.com');
436
436
  // liveintent
437
437
  if (bidRequest.userId.lipb && bidRequest.userId.lipb.lipbid) {
438
438
  addExternalUserId(ext.eids, bidRequest.userId.lipb.lipbid, 'liveintent.com');
@@ -532,7 +532,7 @@ function nativeResponse(imp, bid) {
532
532
 
533
533
  function bidFloor(slot) {
534
534
  let floor = slot.params.bidfloor;
535
- if (utils.isFn(slot.getFloor)) {
535
+ if (isFn(slot.getFloor)) {
536
536
  const floorData = slot.getFloor({
537
537
  mediaType: slot.mediaTypes.banner ? 'banner' : slot.mediaTypes.video ? 'video' : 'Native',
538
538
  size: '*',
@@ -1,6 +1,6 @@
1
1
  import { registerBidder } from '../src/adapters/bidderFactory.js';
2
2
  import { BANNER } from '../src/mediaTypes.js';
3
- import * as utils from '../src/utils.js';
3
+ import { logInfo, logError, isArray } from '../src/utils.js';
4
4
 
5
5
  const BIDDER_CODE = 'pxyz';
6
6
  const URL = 'https://ads.playground.xyz/host-config/prebid?v=2';
@@ -61,15 +61,15 @@ export const spec = {
61
61
  if (bidderRequest && bidderRequest.gdprConsent) {
62
62
  const gdpr = bidderRequest.gdprConsent.gdprApplies ? 1 : 0;
63
63
  const consentString = bidderRequest.gdprConsent.consentString;
64
- utils.logInfo(`PXYZ: GDPR applies ${gdpr}`);
65
- utils.logInfo(`PXYZ: GDPR consent string ${consentString}`);
64
+ logInfo(`PXYZ: GDPR applies ${gdpr}`);
65
+ logInfo(`PXYZ: GDPR consent string ${consentString}`);
66
66
  payload.Regs.ext.gdpr = gdpr;
67
67
  payload.User = { ext: { consent: consentString } };
68
68
  }
69
69
 
70
70
  // CCPA
71
71
  if (bidderRequest && bidderRequest.uspConsent) {
72
- utils.logInfo(`PXYZ: USP Consent ${bidderRequest.uspConsent}`);
72
+ logInfo(`PXYZ: USP Consent ${bidderRequest.uspConsent}`);
73
73
  payload.Regs.ext['us_privacy'] = bidderRequest.uspConsent;
74
74
  }
75
75
 
@@ -95,14 +95,14 @@ export const spec = {
95
95
  let errorMessage = `in response for ${bidderRequest.bidderCode} adapter`;
96
96
  if (serverResponse && serverResponse.error) {
97
97
  errorMessage += `: ${serverResponse.error}`;
98
- utils.logError(errorMessage);
98
+ logError(errorMessage);
99
99
  }
100
100
  return bids;
101
101
  }
102
102
 
103
- if (!utils.isArray(serverResponse.seatbid)) {
103
+ if (!isArray(serverResponse.seatbid)) {
104
104
  let errorMessage = `in response for ${bidderRequest.bidderCode} adapter `;
105
- utils.logError(errorMessage += 'Malformed seatbid response');
105
+ logError(errorMessage += 'Malformed seatbid response');
106
106
  return bids;
107
107
  }
108
108
 
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { deepAccess, logInfo, logError, isEmpty, isArray } from '../src/utils.js';
2
2
  import { ajax } from '../src/ajax.js';
3
3
  import { config } from '../src/config.js';
4
4
  import { getStorageManager } from '../src/storageManager.js';
@@ -24,8 +24,8 @@ export const QUANTCAST_FPA = '__qca';
24
24
  export const storage = getStorageManager(QUANTCAST_VENDOR_ID, BIDDER_CODE);
25
25
 
26
26
  function makeVideoImp(bid) {
27
- const videoInMediaType = utils.deepAccess(bid, 'mediaTypes.video') || {};
28
- const videoInParams = utils.deepAccess(bid, 'params.video') || {};
27
+ const videoInMediaType = deepAccess(bid, 'mediaTypes.video') || {};
28
+ const videoInParams = deepAccess(bid, 'params.video') || {};
29
29
  const video = Object.assign({}, videoInParams, videoInMediaType);
30
30
 
31
31
  if (video.playerSize) {
@@ -142,10 +142,10 @@ export const spec = {
142
142
  */
143
143
  buildRequests(bidRequests, bidderRequest) {
144
144
  const bids = bidRequests || [];
145
- const gdprConsent = utils.deepAccess(bidderRequest, 'gdprConsent') || {};
146
- const uspConsent = utils.deepAccess(bidderRequest, 'uspConsent');
147
- const referrer = utils.deepAccess(bidderRequest, 'refererInfo.referer');
148
- const page = utils.deepAccess(bidderRequest, 'refererInfo.canonicalUrl') || config.getConfig('pageUrl') || utils.deepAccess(window, 'location.href');
145
+ const gdprConsent = deepAccess(bidderRequest, 'gdprConsent') || {};
146
+ const uspConsent = deepAccess(bidderRequest, 'uspConsent');
147
+ const referrer = deepAccess(bidderRequest, 'refererInfo.referer');
148
+ const page = deepAccess(bidderRequest, 'refererInfo.canonicalUrl') || config.getConfig('pageUrl') || deepAccess(window, 'location.href');
149
149
  const domain = getDomain(page);
150
150
 
151
151
  // Check for GDPR consent for purpose 1, and drop request if consent has not been given
@@ -153,11 +153,11 @@ export const spec = {
153
153
  if (gdprConsent.gdprApplies) {
154
154
  if (gdprConsent.vendorData) {
155
155
  if (gdprConsent.apiVersion === 1 && !checkTCFv1(gdprConsent.vendorData)) {
156
- utils.logInfo(`${BIDDER_CODE}: No purpose 1 consent for TCF v1`);
156
+ logInfo(`${BIDDER_CODE}: No purpose 1 consent for TCF v1`);
157
157
  return;
158
158
  }
159
159
  if (gdprConsent.apiVersion === 2 && !checkTCFv2(gdprConsent.vendorData)) {
160
- utils.logInfo(`${BIDDER_CODE}: No purpose 1 consent for TCF v2`);
160
+ logInfo(`${BIDDER_CODE}: No purpose 1 consent for TCF v2`);
161
161
  return;
162
162
  }
163
163
  }
@@ -174,7 +174,7 @@ export const spec = {
174
174
  imp = makeBannerImp(bid);
175
175
  } else {
176
176
  // Unsupported mediaType
177
- utils.logInfo(`${BIDDER_CODE}: No supported mediaTypes found in ${JSON.stringify(bid.mediaTypes)}`);
177
+ logInfo(`${BIDDER_CODE}: No supported mediaTypes found in ${JSON.stringify(bid.mediaTypes)}`);
178
178
  return;
179
179
  }
180
180
  } else {
@@ -231,18 +231,18 @@ export const spec = {
231
231
  */
232
232
  interpretResponse(serverResponse) {
233
233
  if (serverResponse === undefined) {
234
- utils.logError('Server Response is undefined');
234
+ logError('Server Response is undefined');
235
235
  return [];
236
236
  }
237
237
 
238
238
  const response = serverResponse['body'];
239
239
 
240
240
  if (response === undefined || !response.hasOwnProperty('bids')) {
241
- utils.logError('Sub-optimal JSON received from Quantcast server');
241
+ logError('Sub-optimal JSON received from Quantcast server');
242
242
  return [];
243
243
  }
244
244
 
245
- if (utils.isEmpty(response.bids)) {
245
+ if (isEmpty(response.bids)) {
246
246
  // Shortcut response handling if no bids are present
247
247
  return [];
248
248
  }
@@ -271,7 +271,7 @@ export const spec = {
271
271
  result['dealId'] = dealId;
272
272
  }
273
273
 
274
- if (meta !== undefined && meta.advertiserDomains && utils.isArray(meta.advertiserDomains)) {
274
+ if (meta !== undefined && meta.advertiserDomains && isArray(meta.advertiserDomains)) {
275
275
  result.meta = {};
276
276
  result.meta.advertiserDomains = meta.advertiserDomains;
277
277
  }
@@ -289,11 +289,11 @@ export const spec = {
289
289
  const syncs = []
290
290
  if (!hasUserSynced && syncOptions.pixelEnabled) {
291
291
  const responseWithUrl = find(serverResponses, serverResponse =>
292
- utils.deepAccess(serverResponse.body, 'userSync.url')
292
+ deepAccess(serverResponse.body, 'userSync.url')
293
293
  );
294
294
 
295
295
  if (responseWithUrl) {
296
- const url = utils.deepAccess(responseWithUrl.body, 'userSync.url')
296
+ const url = deepAccess(responseWithUrl.body, 'userSync.url')
297
297
  syncs.push({
298
298
  type: 'image',
299
299
  url: url
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { deepAccess } from '../src/utils.js';
2
2
  import {config} from '../src/config.js';
3
3
  import {registerBidder} from '../src/adapters/bidderFactory.js';
4
4
  import { BANNER, VIDEO } from '../src/mediaTypes.js';
@@ -216,7 +216,7 @@ function prepareExtraParams(params, payload, bidderRequest, bidRequest) {
216
216
  * @returns {boolean} True if it's a banner bid
217
217
  */
218
218
  function isBannerRequest(bid) {
219
- return bid.mediaType === 'banner' || !!utils.deepAccess(bid, 'mediaTypes.banner') || !isVideoRequest(bid);
219
+ return bid.mediaType === 'banner' || !!deepAccess(bid, 'mediaTypes.banner') || !isVideoRequest(bid);
220
220
  }
221
221
 
222
222
  /**
@@ -226,7 +226,7 @@ function isBannerRequest(bid) {
226
226
  * @returns {boolean} True if it's a video bid
227
227
  */
228
228
  function isVideoRequest(bid) {
229
- return bid.mediaType === 'video' || !!utils.deepAccess(bid, 'mediaTypes.video');
229
+ return bid.mediaType === 'video' || !!deepAccess(bid, 'mediaTypes.video');
230
230
  }
231
231
 
232
232
  /**
@@ -236,7 +236,7 @@ function isVideoRequest(bid) {
236
236
  * @returns {object} True if it's a video bid
237
237
  */
238
238
  function getVideoSizes(bid) {
239
- return parseSizes(utils.deepAccess(bid, 'mediaTypes.video.playerSize') || bid.sizes);
239
+ return parseSizes(deepAccess(bid, 'mediaTypes.video.playerSize') || bid.sizes);
240
240
  }
241
241
 
242
242
  /**
@@ -246,7 +246,7 @@ function getVideoSizes(bid) {
246
246
  * @returns {object} True if it's a video bid
247
247
  */
248
248
  function getBannerSizes(bid) {
249
- return parseSizes(utils.deepAccess(bid, 'mediaTypes.banner.sizes') || bid.sizes);
249
+ return parseSizes(deepAccess(bid, 'mediaTypes.banner.sizes') || bid.sizes);
250
250
  }
251
251
 
252
252
  /**
@@ -3,11 +3,9 @@ import adapter from '../src/AnalyticsAdapter.js';
3
3
  import adapterManager from '../src/adapterManager.js';
4
4
  import CONSTANTS from '../src/constants.json';
5
5
  import { getStorageManager } from '../src/storageManager.js';
6
-
6
+ import { logMessage, logError } from '../src/utils.js';
7
7
  const storage = getStorageManager();
8
8
 
9
- const utils = require('../src/utils.js');
10
-
11
9
  let realvuAnalyticsAdapter = adapter({
12
10
  global: 'realvuAnalytics',
13
11
  handler: 'on',
@@ -401,7 +399,7 @@ export let lib = {
401
399
  // @if NODE_ENV='debug'
402
400
  let now = new Date();
403
401
  let msg = (now.getTime() - time0) / 1000 + ' RENDERED ' + a.unit_id;
404
- utils.logMessage(msg);
402
+ logMessage(msg);
405
403
  // @endif
406
404
  let rpt = z.bids_rpt(a, true);
407
405
  z.track(a, 'rend', rpt);
@@ -885,7 +883,7 @@ realvuAnalyticsAdapter.originEnableAnalytics = realvuAnalyticsAdapter.enableAnal
885
883
  realvuAnalyticsAdapter.enableAnalytics = function (config) {
886
884
  _options = config.options;
887
885
  if (typeof (_options.partnerId) == 'undefined' || _options.partnerId == '') {
888
- utils.logError('Missed realvu.com partnerId parameter', 101, 'Missed partnerId parameter');
886
+ logError('Missed realvu.com partnerId parameter', 101, 'Missed partnerId parameter');
889
887
  }
890
888
  realvuAnalyticsAdapter.originEnableAnalytics(config);
891
889
  return _options.partnerId;
@@ -905,7 +903,7 @@ realvuAnalyticsAdapter.track = function ({eventType, args}) {
905
903
  ' creativei_id=' + args.creative_id;
906
904
  }
907
905
  // msg += '\nargs=' + JSON.stringify(args) + '<br>';
908
- utils.logMessage(msg);
906
+ logMessage(msg);
909
907
  // @endif
910
908
 
911
909
  const boost = window.top1.realvu_aa;
@@ -935,7 +933,7 @@ realvuAnalyticsAdapter.track = function ({eventType, args}) {
935
933
  realvuAnalyticsAdapter.checkIn = function (bid, partnerId) {
936
934
  // find (or add if not registered yet) the unit in boost
937
935
  if (typeof (partnerId) == 'undefined' || partnerId == '') {
938
- utils.logError('Missed realvu.com partnerId parameter', 102, 'Missed partnerId parameter');
936
+ logError('Missed realvu.com partnerId parameter', 102, 'Missed partnerId parameter');
939
937
  }
940
938
  let a = window.top1.realvu_aa.check({
941
939
  unit_id: bid.adUnitCode,