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,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { mergeDeep, _each, logError, deepAccess, deepSetValue, isStr, isNumber, logWarn, convertTypes, isArray, parseSizesInput, logMessage } from '../src/utils.js';
2
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
3
3
  import {config} from '../src/config.js';
4
4
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
@@ -15,7 +15,7 @@ let rubiConf = {};
15
15
  // we are saving these as global to this module so that if a pub accidentally overwrites the entire
16
16
  // rubicon object, then we do not lose other data
17
17
  config.getConfig('rubicon', config => {
18
- utils.mergeDeep(rubiConf, config.rubicon);
18
+ mergeDeep(rubiConf, config.rubicon);
19
19
  });
20
20
 
21
21
  const GVLID = 52;
@@ -122,7 +122,7 @@ var sizeMap = {
122
122
  578: '980x552',
123
123
  580: '505x656'
124
124
  };
125
- utils._each(sizeMap, (item, key) => sizeMap[item] = key);
125
+ _each(sizeMap, (item, key) => sizeMap[item] = key);
126
126
 
127
127
  export const spec = {
128
128
  code: 'rubicon',
@@ -140,7 +140,7 @@ export const spec = {
140
140
  for (let i = 0, props = ['accountId', 'siteId', 'zoneId']; i < props.length; i++) {
141
141
  bid.params[props[i]] = parseInt(bid.params[props[i]])
142
142
  if (isNaN(bid.params[props[i]])) {
143
- utils.logError('Rubicon: wrong format of accountId or siteId or zoneId.')
143
+ logError('Rubicon: wrong format of accountId or siteId or zoneId.')
144
144
  return false
145
145
  }
146
146
  }
@@ -180,7 +180,7 @@ export const spec = {
180
180
  ext: {
181
181
  [bidRequest.bidder]: bidRequest.params
182
182
  },
183
- video: utils.deepAccess(bidRequest, 'mediaTypes.video') || {}
183
+ video: deepAccess(bidRequest, 'mediaTypes.video') || {}
184
184
  }],
185
185
  ext: {
186
186
  prebid: {
@@ -217,7 +217,7 @@ export const spec = {
217
217
 
218
218
  let modules = (getGlobal()).installedModules;
219
219
  if (modules && (!modules.length || modules.indexOf('rubiconAnalyticsAdapter') !== -1)) {
220
- utils.deepSetValue(data, 'ext.prebid.analytics', {'rubicon': {'client-analytics': true}});
220
+ deepSetValue(data, 'ext.prebid.analytics', {'rubicon': {'client-analytics': true}});
221
221
  }
222
222
 
223
223
  let bidFloor;
@@ -230,11 +230,11 @@ export const spec = {
230
230
  size: parseSizes(bidRequest, 'video')
231
231
  });
232
232
  } catch (e) {
233
- utils.logError('Rubicon: getFloor threw an error: ', e);
233
+ logError('Rubicon: getFloor threw an error: ', e);
234
234
  }
235
235
  bidFloor = typeof floorInfo === 'object' && floorInfo.currency === 'USD' && !isNaN(parseInt(floorInfo.floor)) ? parseFloat(floorInfo.floor) : undefined;
236
236
  } else {
237
- bidFloor = parseFloat(utils.deepAccess(bidRequest, 'params.floor'));
237
+ bidFloor = parseFloat(deepAccess(bidRequest, 'params.floor'));
238
238
  }
239
239
  if (!isNaN(bidFloor)) {
240
240
  data.imp[0].bidfloor = bidFloor;
@@ -253,36 +253,36 @@ export const spec = {
253
253
  gdprApplies = bidderRequest.gdprConsent.gdprApplies ? 1 : 0;
254
254
  }
255
255
 
256
- utils.deepSetValue(data, 'regs.ext.gdpr', gdprApplies);
257
- utils.deepSetValue(data, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
256
+ deepSetValue(data, 'regs.ext.gdpr', gdprApplies);
257
+ deepSetValue(data, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
258
258
  }
259
259
 
260
260
  if (bidderRequest.uspConsent) {
261
- utils.deepSetValue(data, 'regs.ext.us_privacy', bidderRequest.uspConsent);
261
+ deepSetValue(data, 'regs.ext.us_privacy', bidderRequest.uspConsent);
262
262
  }
263
263
 
264
- const eids = utils.deepAccess(bidderRequest, 'bids.0.userIdAsEids');
264
+ const eids = deepAccess(bidderRequest, 'bids.0.userIdAsEids');
265
265
  if (eids && eids.length) {
266
- utils.deepSetValue(data, 'user.ext.eids', eids);
266
+ deepSetValue(data, 'user.ext.eids', eids);
267
267
  }
268
268
 
269
269
  // set user.id value from config value
270
270
  const configUserId = config.getConfig('user.id');
271
271
  if (configUserId) {
272
- utils.deepSetValue(data, 'user.id', configUserId);
272
+ deepSetValue(data, 'user.id', configUserId);
273
273
  }
274
274
 
275
275
  if (config.getConfig('coppa') === true) {
276
- utils.deepSetValue(data, 'regs.coppa', 1);
276
+ deepSetValue(data, 'regs.coppa', 1);
277
277
  }
278
278
 
279
279
  if (bidRequest.schain && hasValidSupplyChainParams(bidRequest.schain)) {
280
- utils.deepSetValue(data, 'source.ext.schain', bidRequest.schain);
280
+ deepSetValue(data, 'source.ext.schain', bidRequest.schain);
281
281
  }
282
282
 
283
283
  const multibid = config.getConfig('multibid');
284
284
  if (multibid) {
285
- utils.deepSetValue(data, 'ext.prebid.multibid', multibid.reduce((result, i) => {
285
+ deepSetValue(data, 'ext.prebid.multibid', multibid.reduce((result, i) => {
286
286
  let obj = {};
287
287
 
288
288
  Object.keys(i).forEach(key => {
@@ -299,11 +299,11 @@ export const spec = {
299
299
 
300
300
  // if storedAuctionResponse has been set, pass SRID
301
301
  if (bidRequest.storedAuctionResponse) {
302
- utils.deepSetValue(data.imp[0], 'ext.prebid.storedauctionresponse.id', bidRequest.storedAuctionResponse.toString());
302
+ deepSetValue(data.imp[0], 'ext.prebid.storedauctionresponse.id', bidRequest.storedAuctionResponse.toString());
303
303
  }
304
304
 
305
305
  // set ext.prebid.auctiontimestamp using auction time
306
- utils.deepSetValue(data.imp[0], 'ext.prebid.auctiontimestamp', bidderRequest.auctionStart);
306
+ deepSetValue(data.imp[0], 'ext.prebid.auctiontimestamp', bidderRequest.auctionStart);
307
307
 
308
308
  return {
309
309
  method: 'POST',
@@ -322,14 +322,14 @@ export const spec = {
322
322
  url: `https://${rubiConf.bannerHost || 'fastlane'}.rubiconproject.com/a/api/fastlane.json`,
323
323
  data: spec.getOrderedParams(bidParams).reduce((paramString, key) => {
324
324
  const propValue = bidParams[key];
325
- return ((utils.isStr(propValue) && propValue !== '') || utils.isNumber(propValue)) ? `${paramString}${encodeParam(key, propValue)}&` : paramString;
325
+ return ((isStr(propValue) && propValue !== '') || isNumber(propValue)) ? `${paramString}${encodeParam(key, propValue)}&` : paramString;
326
326
  }, '') + `slots=1&rand=${Math.random()}`,
327
327
  bidRequest
328
328
  };
329
329
  }));
330
330
  } else {
331
331
  // single request requires bids to be grouped by site id into a single request
332
- // note: utils.groupBy wasn't used because deep property access was needed
332
+ // note: groupBy wasn't used because deep property access was needed
333
333
  const nonVideoRequests = bidRequests.filter(bidRequest => bidType(bidRequest) === 'banner');
334
334
  const groupedBidRequests = nonVideoRequests.reduce((groupedBids, bid) => {
335
335
  (groupedBids[bid.params['siteId']] = groupedBids[bid.params['siteId']] || []).push(bid);
@@ -353,7 +353,7 @@ export const spec = {
353
353
  url: `https://${rubiConf.bannerHost || 'fastlane'}.rubiconproject.com/a/api/fastlane.json`,
354
354
  data: spec.getOrderedParams(combinedSlotParams).reduce((paramString, key) => {
355
355
  const propValue = combinedSlotParams[key];
356
- return ((utils.isStr(propValue) && propValue !== '') || utils.isNumber(propValue)) ? `${paramString}${encodeParam(key, propValue)}&` : paramString;
356
+ return ((isStr(propValue) && propValue !== '') || isNumber(propValue)) ? `${paramString}${encodeParam(key, propValue)}&` : paramString;
357
357
  }, '') + `slots=${bidsInGroup.length}&rand=${Math.random()}`,
358
358
  bidRequest: bidsInGroup
359
359
  });
@@ -485,7 +485,7 @@ export const spec = {
485
485
  size: '*'
486
486
  });
487
487
  } catch (e) {
488
- utils.logError('Rubicon: getFloor threw an error: ', e);
488
+ logError('Rubicon: getFloor threw an error: ', e);
489
489
  }
490
490
  data['rp_hard_floor'] = typeof floorInfo === 'object' && floorInfo.currency === 'USD' && !isNaN(parseInt(floorInfo.floor)) ? floorInfo.floor : undefined;
491
491
  }
@@ -493,7 +493,7 @@ export const spec = {
493
493
  // add p_pos only if specified and valid
494
494
  // For SRA we need to explicitly put empty semi colons so AE treats it as empty, instead of copying the latter value
495
495
  let posMapping = {1: 'atf', 3: 'btf'};
496
- let pos = posMapping[utils.deepAccess(bidRequest, 'mediaTypes.banner.pos')] || '';
496
+ let pos = posMapping[deepAccess(bidRequest, 'mediaTypes.banner.pos')] || '';
497
497
  data['p_pos'] = (params.position === 'atf' || params.position === 'btf') ? params.position : pos;
498
498
 
499
499
  // pass publisher provided userId if configured
@@ -532,7 +532,7 @@ export const spec = {
532
532
  }
533
533
  }
534
534
  } catch (e) {
535
- utils.logWarn('Rubicon: error reading eid:', eid, e);
535
+ logWarn('Rubicon: error reading eid:', eid, e);
536
536
  }
537
537
  });
538
538
  }
@@ -605,9 +605,9 @@ export const spec = {
605
605
 
606
606
  // video response from PBS Java openRTB
607
607
  if (responseObj.seatbid) {
608
- const responseErrors = utils.deepAccess(responseObj, 'ext.errors.rubicon');
608
+ const responseErrors = deepAccess(responseObj, 'ext.errors.rubicon');
609
609
  if (Array.isArray(responseErrors) && responseErrors.length > 0) {
610
- utils.logWarn('Rubicon: Error in video response');
610
+ logWarn('Rubicon: Error in video response');
611
611
  }
612
612
  const bids = [];
613
613
  responseObj.seatbid.forEach(seatbid => {
@@ -620,8 +620,8 @@ export const spec = {
620
620
  bidderCode: seatbid.seat,
621
621
  ttl: 300,
622
622
  netRevenue: rubiConf.netRevenue !== false, // If anything other than false, netRev is true
623
- width: bid.w || utils.deepAccess(bidRequest, 'mediaTypes.video.w') || utils.deepAccess(bidRequest, 'params.video.playerWidth'),
624
- height: bid.h || utils.deepAccess(bidRequest, 'mediaTypes.video.h') || utils.deepAccess(bidRequest, 'params.video.playerHeight'),
623
+ width: bid.w || deepAccess(bidRequest, 'mediaTypes.video.w') || deepAccess(bidRequest, 'params.video.playerWidth'),
624
+ height: bid.h || deepAccess(bidRequest, 'mediaTypes.video.h') || deepAccess(bidRequest, 'params.video.playerHeight'),
625
625
  };
626
626
 
627
627
  if (bid.id) {
@@ -633,22 +633,22 @@ export const spec = {
633
633
  }
634
634
 
635
635
  if (bid.adomain) {
636
- utils.deepSetValue(bidObject, 'meta.advertiserDomains', Array.isArray(bid.adomain) ? bid.adomain : [bid.adomain]);
636
+ deepSetValue(bidObject, 'meta.advertiserDomains', Array.isArray(bid.adomain) ? bid.adomain : [bid.adomain]);
637
637
  }
638
638
 
639
- if (utils.deepAccess(bid, 'ext.bidder.rp.advid')) {
640
- utils.deepSetValue(bidObject, 'meta.advertiserId', bid.ext.bidder.rp.advid);
639
+ if (deepAccess(bid, 'ext.bidder.rp.advid')) {
640
+ deepSetValue(bidObject, 'meta.advertiserId', bid.ext.bidder.rp.advid);
641
641
  }
642
642
 
643
- let serverResponseTimeMs = utils.deepAccess(responseObj, 'ext.responsetimemillis.rubicon');
643
+ let serverResponseTimeMs = deepAccess(responseObj, 'ext.responsetimemillis.rubicon');
644
644
  if (bidRequest && serverResponseTimeMs) {
645
645
  bidRequest.serverResponseTimeMs = serverResponseTimeMs;
646
646
  }
647
647
 
648
- if (utils.deepAccess(bid, 'ext.prebid.type') === VIDEO) {
648
+ if (deepAccess(bid, 'ext.prebid.type') === VIDEO) {
649
649
  bidObject.mediaType = VIDEO;
650
- utils.deepSetValue(bidObject, 'meta.mediaType', VIDEO);
651
- const extPrebidTargeting = utils.deepAccess(bid, 'ext.prebid.targeting');
650
+ deepSetValue(bidObject, 'meta.mediaType', VIDEO);
651
+ const extPrebidTargeting = deepAccess(bid, 'ext.prebid.targeting');
652
652
 
653
653
  // If ext.prebid.targeting exists, add it as a property value named 'adserverTargeting'
654
654
  if (extPrebidTargeting && typeof extPrebidTargeting === 'object') {
@@ -670,12 +670,12 @@ export const spec = {
670
670
  if (bid.nurl) { bidObject.vastUrl = bid.nurl; }
671
671
  if (!bidObject.vastUrl && bid.nurl) { bidObject.vastUrl = bid.nurl; }
672
672
 
673
- const videoContext = utils.deepAccess(bidRequest, 'mediaTypes.video.context');
673
+ const videoContext = deepAccess(bidRequest, 'mediaTypes.video.context');
674
674
  if (videoContext.toLowerCase() === 'outstream') {
675
675
  bidObject.renderer = outstreamRenderer(bidObject);
676
676
  }
677
677
  } else {
678
- utils.logWarn('Rubicon: video response received non-video media type');
678
+ logWarn('Rubicon: video response received non-video media type');
679
679
  }
680
680
 
681
681
  bids.push(bidObject);
@@ -754,7 +754,7 @@ export const spec = {
754
754
 
755
755
  bids.push(bid);
756
756
  } else {
757
- utils.logError(`Rubicon: bidRequest undefined at index position:${i}`, bidRequest, responseObj);
757
+ logError(`Rubicon: bidRequest undefined at index position:${i}`, bidRequest, responseObj);
758
758
  }
759
759
 
760
760
  return bids;
@@ -794,7 +794,7 @@ export const spec = {
794
794
  * @return {Object} params bid params
795
795
  */
796
796
  transformBidParams: function(params, isOpenRtb) {
797
- return utils.convertTypes({
797
+ return convertTypes({
798
798
  'accountId': 'number',
799
799
  'siteId': 'number',
800
800
  'zoneId': 'number'
@@ -885,7 +885,7 @@ function outstreamRenderer(rtbBid) {
885
885
  try {
886
886
  renderer.setRender(renderBid);
887
887
  } catch (err) {
888
- utils.logWarn('Prebid Error calling setRender on renderer', err);
888
+ logWarn('Prebid Error calling setRender on renderer', err);
889
889
  }
890
890
 
891
891
  return renderer;
@@ -900,7 +900,7 @@ function parseSizes(bid, mediaType) {
900
900
  params.video.playerWidth,
901
901
  params.video.playerHeight
902
902
  ];
903
- } else if (Array.isArray(utils.deepAccess(bid, 'mediaTypes.video.playerSize')) && bid.mediaTypes.video.playerSize.length === 1) {
903
+ } else if (Array.isArray(deepAccess(bid, 'mediaTypes.video.playerSize')) && bid.mediaTypes.video.playerSize.length === 1) {
904
904
  size = bid.mediaTypes.video.playerSize[0];
905
905
  } else if (Array.isArray(bid.sizes) && bid.sizes.length > 0 && Array.isArray(bid.sizes[0]) && bid.sizes[0].length > 1) {
906
906
  size = bid.sizes[0];
@@ -912,12 +912,12 @@ function parseSizes(bid, mediaType) {
912
912
  let sizes = [];
913
913
  if (Array.isArray(params.sizes)) {
914
914
  sizes = params.sizes;
915
- } else if (typeof utils.deepAccess(bid, 'mediaTypes.banner.sizes') !== 'undefined') {
915
+ } else if (typeof deepAccess(bid, 'mediaTypes.banner.sizes') !== 'undefined') {
916
916
  sizes = mapSizes(bid.mediaTypes.banner.sizes);
917
917
  } else if (Array.isArray(bid.sizes) && bid.sizes.length > 0) {
918
918
  sizes = mapSizes(bid.sizes)
919
919
  } else {
920
- utils.logWarn('Rubicon: no sizes are setup or found');
920
+ logWarn('Rubicon: no sizes are setup or found');
921
921
  }
922
922
 
923
923
  return masSizeOrdering(sizes);
@@ -946,7 +946,11 @@ function appendSiteAppDevice(data, bidRequest, bidderRequest) {
946
946
  if (bidRequest.params.video.language) {
947
947
  ['site', 'device'].forEach(function(param) {
948
948
  if (data[param]) {
949
- data[param].content = Object.assign({language: bidRequest.params.video.language}, data[param].content)
949
+ if (param === 'site') {
950
+ data[param].content = Object.assign({language: bidRequest.params.video.language}, data[param].content)
951
+ } else {
952
+ data[param] = Object.assign({language: bidRequest.params.video.language}, data[param])
953
+ }
950
954
  }
951
955
  });
952
956
  }
@@ -984,16 +988,16 @@ function applyFPD(bidRequest, mediaType, data) {
984
988
  site: {ext: {data: {...bidRequest.params.inventory}}}
985
989
  };
986
990
 
987
- if (bidRequest.params.keywords) BID_FPD.site.keywords = (utils.isArray(bidRequest.params.keywords)) ? bidRequest.params.keywords.join(',') : bidRequest.params.keywords;
991
+ if (bidRequest.params.keywords) BID_FPD.site.keywords = (isArray(bidRequest.params.keywords)) ? bidRequest.params.keywords.join(',') : bidRequest.params.keywords;
988
992
 
989
- let fpd = utils.mergeDeep({}, config.getConfig('ortb2') || {}, BID_FPD);
990
- let impData = utils.deepAccess(bidRequest.ortb2Imp, 'ext.data') || {};
993
+ let fpd = mergeDeep({}, config.getConfig('ortb2') || {}, BID_FPD);
994
+ let impData = deepAccess(bidRequest.ortb2Imp, 'ext.data') || {};
991
995
  const SEGTAX = {user: [4], site: [1, 2, 5, 6]};
992
996
  const MAP = {user: 'tg_v.', site: 'tg_i.', adserver: 'tg_i.dfp_ad_unit_code', pbadslot: 'tg_i.pbadslot', keywords: 'kw'};
993
997
  const validate = function(prop, key, parentName) {
994
998
  if (key === 'data' && Array.isArray(prop)) {
995
- return prop.filter(name => name.segment && utils.deepAccess(name, 'ext.segtax') && SEGTAX[parentName] &&
996
- SEGTAX[parentName].indexOf(utils.deepAccess(name, 'ext.segtax')) !== -1).map(value => {
999
+ return prop.filter(name => name.segment && deepAccess(name, 'ext.segtax') && SEGTAX[parentName] &&
1000
+ SEGTAX[parentName].indexOf(deepAccess(name, 'ext.segtax')) !== -1).map(value => {
997
1001
  let segments = value.segment.filter(obj => obj.id).reduce((result, obj) => {
998
1002
  result.push(obj.id);
999
1003
  return result;
@@ -1001,12 +1005,12 @@ function applyFPD(bidRequest, mediaType, data) {
1001
1005
  if (segments.length > 0) return segments.toString();
1002
1006
  }).toString();
1003
1007
  } else if (typeof prop === 'object' && !Array.isArray(prop)) {
1004
- utils.logWarn('Rubicon: Filtered FPD key: ', key, ': Expected value to be string, integer, or an array of strings/ints');
1008
+ logWarn('Rubicon: Filtered FPD key: ', key, ': Expected value to be string, integer, or an array of strings/ints');
1005
1009
  } else if (typeof prop !== 'undefined') {
1006
1010
  return (Array.isArray(prop)) ? prop.filter(value => {
1007
1011
  if (typeof value !== 'object' && typeof value !== 'undefined') return value.toString();
1008
1012
 
1009
- utils.logWarn('Rubicon: Filtered value: ', value, 'for key', key, ': Expected value to be string, integer, or an array of strings/ints');
1013
+ logWarn('Rubicon: Filtered value: ', value, 'for key', key, ': Expected value to be string, integer, or an array of strings/ints');
1010
1014
  }).toString() : prop.toString();
1011
1015
  }
1012
1016
  };
@@ -1045,10 +1049,10 @@ function applyFPD(bidRequest, mediaType, data) {
1045
1049
  });
1046
1050
  } else {
1047
1051
  if (Object.keys(impData).length) {
1048
- utils.mergeDeep(data.imp[0].ext, {data: impData});
1052
+ mergeDeep(data.imp[0].ext, {data: impData});
1049
1053
  }
1050
1054
 
1051
- utils.mergeDeep(data, fpd);
1055
+ mergeDeep(data, fpd);
1052
1056
  }
1053
1057
  }
1054
1058
 
@@ -1057,7 +1061,7 @@ function applyFPD(bidRequest, mediaType, data) {
1057
1061
  * @returns {*}
1058
1062
  */
1059
1063
  function mapSizes(sizes) {
1060
- return utils.parseSizesInput(sizes)
1064
+ return parseSizesInput(sizes)
1061
1065
  // map sizes while excluding non-matches
1062
1066
  .reduce((result, size) => {
1063
1067
  let mappedSize = parseInt(sizeMap[size], 10);
@@ -1075,10 +1079,10 @@ function mapSizes(sizes) {
1075
1079
  * @returns {boolean}
1076
1080
  */
1077
1081
  export function hasVideoMediaType(bidRequest) {
1078
- if (typeof utils.deepAccess(bidRequest, 'params.video') !== 'object') {
1082
+ if (typeof deepAccess(bidRequest, 'params.video') !== 'object') {
1079
1083
  return false;
1080
1084
  }
1081
- return (typeof utils.deepAccess(bidRequest, `mediaTypes.${VIDEO}`) !== 'undefined');
1085
+ return (typeof deepAccess(bidRequest, `mediaTypes.${VIDEO}`) !== 'undefined');
1082
1086
  }
1083
1087
 
1084
1088
  /**
@@ -1092,9 +1096,9 @@ function bidType(bid, log = false) {
1092
1096
  if (hasVideoMediaType(bid)) {
1093
1097
  // Removed legacy mediaType support. new way using mediaTypes.video object is now required
1094
1098
  // We require either context as instream or outstream
1095
- if (['outstream', 'instream'].indexOf(utils.deepAccess(bid, `mediaTypes.${VIDEO}.context`)) === -1) {
1099
+ if (['outstream', 'instream'].indexOf(deepAccess(bid, `mediaTypes.${VIDEO}.context`)) === -1) {
1096
1100
  if (log) {
1097
- utils.logError('Rubicon: mediaTypes.video.context must be outstream or instream');
1101
+ logError('Rubicon: mediaTypes.video.context must be outstream or instream');
1098
1102
  }
1099
1103
  return;
1100
1104
  }
@@ -1102,13 +1106,13 @@ function bidType(bid, log = false) {
1102
1106
  // we require playerWidth and playerHeight to come from one of params.playerWidth/playerHeight or mediaTypes.video.playerSize or adUnit.sizes
1103
1107
  if (parseSizes(bid, 'video').length < 2) {
1104
1108
  if (log) {
1105
- utils.logError('Rubicon: could not determine the playerSize of the video');
1109
+ logError('Rubicon: could not determine the playerSize of the video');
1106
1110
  }
1107
1111
  return;
1108
1112
  }
1109
1113
 
1110
1114
  if (log) {
1111
- utils.logMessage('Rubicon: making video request for adUnit', bid.adUnitCode);
1115
+ logMessage('Rubicon: making video request for adUnit', bid.adUnitCode);
1112
1116
  }
1113
1117
  return 'video';
1114
1118
  } else {
@@ -1116,14 +1120,14 @@ function bidType(bid, log = false) {
1116
1120
  // if we cannot determine them, we reject it!
1117
1121
  if (parseSizes(bid, 'banner').length === 0) {
1118
1122
  if (log) {
1119
- utils.logError('Rubicon: could not determine the sizes for banner request');
1123
+ logError('Rubicon: could not determine the sizes for banner request');
1120
1124
  }
1121
1125
  return;
1122
1126
  }
1123
1127
 
1124
1128
  // everything looks good for banner so lets do it
1125
1129
  if (log) {
1126
- utils.logMessage('Rubicon: making banner request for adUnit', bid.adUnitCode);
1130
+ logMessage('Rubicon: making banner request for adUnit', bid.adUnitCode);
1127
1131
  }
1128
1132
  return 'banner';
1129
1133
  }
@@ -1155,13 +1159,13 @@ export function masSizeOrdering(sizes) {
1155
1159
 
1156
1160
  export function determineRubiconVideoSizeId(bid) {
1157
1161
  // If we have size_id in the bid then use it
1158
- let rubiconSizeId = parseInt(utils.deepAccess(bid, 'params.video.size_id'));
1162
+ let rubiconSizeId = parseInt(deepAccess(bid, 'params.video.size_id'));
1159
1163
  if (!isNaN(rubiconSizeId)) {
1160
1164
  return rubiconSizeId;
1161
1165
  }
1162
1166
  // otherwise 203 for outstream and 201 for instream
1163
1167
  // When this function is used we know it has to be one of outstream or instream
1164
- return utils.deepAccess(bid, `mediaTypes.${VIDEO}.context`) === 'outstream' ? 203 : 201;
1168
+ return deepAccess(bid, `mediaTypes.${VIDEO}.context`) === 'outstream' ? 203 : 201;
1165
1169
  }
1166
1170
 
1167
1171
  /**
@@ -1204,9 +1208,9 @@ export function hasValidVideoParams(bid) {
1204
1208
  }
1205
1209
  // loop through each param and verify it has the correct
1206
1210
  Object.keys(requiredParams).forEach(function(param) {
1207
- if (Object.prototype.toString.call(utils.deepAccess(bid, 'mediaTypes.video.' + param)) !== requiredParams[param]) {
1211
+ if (Object.prototype.toString.call(deepAccess(bid, 'mediaTypes.video.' + param)) !== requiredParams[param]) {
1208
1212
  isValid = false;
1209
- utils.logError('Rubicon: mediaTypes.video.' + param + ' is required and must be of type: ' + requiredParams[param]);
1213
+ logError('Rubicon: mediaTypes.video.' + param + ' is required and must be of type: ' + requiredParams[param]);
1210
1214
  }
1211
1215
  })
1212
1216
  return isValid;
@@ -1225,7 +1229,7 @@ export function hasValidSupplyChainParams(schain) {
1225
1229
  if (!status) return status;
1226
1230
  return requiredFields.every(field => node.hasOwnProperty(field));
1227
1231
  }, true);
1228
- if (!isValid) utils.logError('Rubicon: required schain params missing');
1232
+ if (!isValid) logError('Rubicon: required schain params missing');
1229
1233
  return isValid;
1230
1234
  }
1231
1235
 
@@ -4,7 +4,7 @@ import { ajax } from '../src/ajax.js';
4
4
  import CONSTANTS from '../src/constants.json';
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 { logMessage } from '../src/utils.js';
8
8
 
9
9
  // Object.entries polyfill
10
10
  const entries = Object.entries || function(obj) {
@@ -62,7 +62,7 @@ scaleableAnalytics.enableAnalytics = config => {
62
62
  scaleableAnalytics.originEnableAnalytics(config);
63
63
 
64
64
  scaleableAnalytics.enableAnalytics = function _enable() {
65
- return utils.logMessage(`Analytics adapter for "${global}" already enabled, unnecessary call to \`enableAnalytics\`.`);
65
+ return logMessage(`Analytics adapter for "${global}" already enabled, unnecessary call to \`enableAnalytics\`.`);
66
66
  };
67
67
  }
68
68