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,31 +1,34 @@
1
+ import { logError, deepAccess } from '../src/utils.js';
1
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
2
3
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
3
4
  import {config} from '../src/config.js';
4
- import * as utils from '../src/utils.js';
5
5
  import { Renderer } from '../src/Renderer.js';
6
6
  import { INSTREAM, OUTSTREAM } from '../src/video.js';
7
7
 
8
8
  const ENDPOINT = `https://d.vidoomy.com/api/rtbserver/prebid/`;
9
9
  const BIDDER_CODE = 'vidoomy';
10
10
  const GVLID = 380;
11
+
12
+ const COOKIE_SYNC_JSON = 'https://vpaid.vidoomy.com/sync/urls.json';
13
+
11
14
  const isBidRequestValid = bid => {
12
15
  if (!bid.params) {
13
- utils.logError(BIDDER_CODE + ': bid.params should be non-empty');
16
+ logError(BIDDER_CODE + ': bid.params should be non-empty');
14
17
  return false;
15
18
  }
16
19
 
17
20
  if (!+bid.params.pid) {
18
- utils.logError(BIDDER_CODE + ': bid.params.pid should be non-empty Number');
21
+ logError(BIDDER_CODE + ': bid.params.pid should be non-empty Number');
19
22
  return false;
20
23
  }
21
24
 
22
25
  if (!+bid.params.id) {
23
- utils.logError(BIDDER_CODE + ': bid.params.id should be non-empty Number');
26
+ logError(BIDDER_CODE + ': bid.params.id should be non-empty Number');
24
27
  return false;
25
28
  }
26
29
 
27
30
  if (bid.params && bid.params.mediaTypes && bid.params.mediaTypes.video && bid.params.mediaTypes.video.context === INSTREAM && !bid.params.mediaTypes.video.playerSize) {
28
- utils.logError(BIDDER_CODE + ': bid.params.mediaType.video should have a playerSize property to tell player size when is INSTREAM');
31
+ logError(BIDDER_CODE + ': bid.params.mediaType.video should have a playerSize property to tell player size when is INSTREAM');
29
32
  return false;
30
33
  }
31
34
 
@@ -58,19 +61,11 @@ const buildRequests = (validBidRequests, bidderRequest) => {
58
61
  adType = VIDEO;
59
62
  }
60
63
 
61
- let host = '';
62
- try {
63
- host = bidderRequest.refererInfo.referer.split('#')[0].replace(/^(https\:\/\/|http\:\/\/)|(\/)$/g, '').split('/')[0];
64
- } catch (eBidRequest) {
65
- try {
66
- host = window.location.href.replace(/^(https\:\/\/|http\:\/\/)|(\/)$/g, '').split('/')[0];
67
- } catch (eLocationHref) {
68
- host = window.location.href;
69
- }
70
- }
71
- const hostname = host.split(':')[0];
64
+ const aElement = document.createElement('a');
65
+ aElement.href = (bidderRequest.refererInfo && bidderRequest.refererInfo.referer) || top.location.href;
66
+ const hostname = aElement.hostname
72
67
 
73
- const videoContext = utils.deepAccess(bid, 'mediaTypes.video.context');
68
+ const videoContext = deepAccess(bid, 'mediaTypes.video.context');
74
69
 
75
70
  const queryParams = [];
76
71
  queryParams.push(['id', bid.params.id]);
@@ -83,8 +78,8 @@ const buildRequests = (validBidRequests, bidderRequest) => {
83
78
  queryParams.push(['dt', /Mobi/.test(navigator.userAgent) ? 2 : 1]);
84
79
  queryParams.push(['pid', bid.params.pid]);
85
80
  queryParams.push(['requestId', bid.bidId]);
86
- queryParams.push(['d', hostname]);
87
- queryParams.push(['sp', encodeURIComponent(bidderRequest.refererInfo.referer)]);
81
+ queryParams.push(['d', getDomainWithoutSubdomain(hostname)]);
82
+ queryParams.push(['sp', encodeURIComponent(aElement.href)]);
88
83
  if (bidderRequest.gdprConsent) {
89
84
  queryParams.push(['gdpr', bidderRequest.gdprConsent.gdprApplies]);
90
85
  queryParams.push(['gdprcs', bidderRequest.gdprConsent.consentString]);
@@ -94,6 +89,8 @@ const buildRequests = (validBidRequests, bidderRequest) => {
94
89
 
95
90
  const rawQueryParams = queryParams.map(qp => qp.join('=')).join('&');
96
91
 
92
+ cookieSync(bidderRequest)
93
+
97
94
  const url = `${ENDPOINT}?${rawQueryParams}`;
98
95
  return {
99
96
  method: 'GET',
@@ -138,7 +135,7 @@ const interpretResponse = (serverResponse, bidRequest) => {
138
135
  responseBody.renderer = renderer;
139
136
  } catch (e) {
140
137
  responseBody.ad = responseBody.vastUrl;
141
- utils.logError(BIDDER_CODE + ': error while installing renderer to show outstream ad');
138
+ logError(BIDDER_CODE + ': error while installing renderer to show outstream ad');
142
139
  }
143
140
  }
144
141
  }
@@ -178,12 +175,12 @@ const interpretResponse = (serverResponse, bidRequest) => {
178
175
  if (isBidResponseValid(bid)) {
179
176
  bids.push(bid);
180
177
  } else {
181
- utils.logError(BIDDER_CODE + ': server returns invalid response');
178
+ logError(BIDDER_CODE + ': server returns invalid response');
182
179
  }
183
180
 
184
181
  return bids;
185
182
  } catch (e) {
186
- utils.logError(BIDDER_CODE + ': error parsing server response to Prebid format');
183
+ logError(BIDDER_CODE + ': error parsing server response to Prebid format');
187
184
  return [];
188
185
  }
189
186
  };
@@ -198,3 +195,89 @@ export const spec = {
198
195
  };
199
196
 
200
197
  registerBidder(spec);
198
+
199
+ let cookieSynced = false;
200
+ function cookieSync(bidderRequest) {
201
+ if (cookieSynced) return;
202
+ const xhr = new XMLHttpRequest();
203
+ xhr.open('GET', COOKIE_SYNC_JSON)
204
+ xhr.addEventListener('load', function () {
205
+ const macro = Macro({
206
+ gpdr: bidderRequest.gdprConsent ? bidderRequest.gdprConsent.gdprApplies : '0',
207
+ gpdr_consent: bidderRequest.gdprConsent ? bidderRequest.gdprConsent.consentString : '',
208
+ });
209
+ JSON.parse(this.responseText).filter(Boolean).forEach(url => {
210
+ firePixel(macro.replace(url))
211
+ })
212
+ })
213
+ xhr.send()
214
+ cookieSynced = true;
215
+ }
216
+
217
+ function firePixel(url) {
218
+ const img = document.createElement('img');
219
+ img.width = 1;
220
+ img.height = 1;
221
+ img.src = url;
222
+ document.body.appendChild(img);
223
+ setTimeout(() => {
224
+ img.remove();
225
+ }, 10000)
226
+ }
227
+
228
+ function normalizeKey (x) {
229
+ return x.replace(/_/g, '').toLowerCase();
230
+ }
231
+
232
+ function Macro (obj) {
233
+ const macros = {};
234
+ for (const key in obj) {
235
+ macros[normalizeKey(key)] = obj[key];
236
+ }
237
+
238
+ const set = (key, value) => {
239
+ macros[normalizeKey(key)] = typeof value === 'function' ? value : String(value);
240
+ };
241
+
242
+ return {
243
+ set,
244
+ setAll (obj) {
245
+ for (const key in obj) {
246
+ macros[normalizeKey(key)] = set(obj[key]);
247
+ }
248
+ },
249
+ replace (string, extraMacros = {}) {
250
+ const allMacros = {
251
+ ...macros,
252
+ ...extraMacros,
253
+ };
254
+ const regexes = [
255
+ /{{\s*([a-zA-Z0-9_]+)\s*}}/g,
256
+ /\$\$\s*([a-zA-Z0-9_]+)\s*\$\$/g,
257
+ /\[\s*([a-zA-Z0-9_]+)\s*\]/g,
258
+ /\{\s*([a-zA-Z0-9_]+)\s*\}/g,
259
+ ];
260
+ regexes.forEach(regex => {
261
+ string = string.replace(regex, (str, x) => {
262
+ x = normalizeKey(x);
263
+ let value = allMacros[x];
264
+ value = typeof value === 'function' ? value(allMacros) : value;
265
+ return !value && value !== 0 ? '' : value;
266
+ });
267
+ });
268
+ return string;
269
+ },
270
+ };
271
+ }
272
+
273
+ function getDomainWithoutSubdomain (hostname) {
274
+ const parts = hostname.split('.');
275
+ const newParts = [];
276
+ for (let i = parts.length - 1; i >= 0; i--) {
277
+ newParts.push(parts[i]);
278
+ if (newParts.length !== 1 && parts[i].length > 3) {
279
+ break;
280
+ }
281
+ }
282
+ return newParts.reverse().join('.');
283
+ }
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { deepAccess, isArray, flatten, logError, parseSizesInput } from '../src/utils.js';
2
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
3
3
  import {VIDEO, BANNER} from '../src/mediaTypes.js';
4
4
  import {Renderer} from '../src/Renderer.js';
@@ -16,7 +16,7 @@ export const spec = {
16
16
  gvlid: 924,
17
17
  supportedMediaTypes: [VIDEO, BANNER],
18
18
  isBidRequestValid: function (bid) {
19
- return !!utils.deepAccess(bid, 'params.aid');
19
+ return !!deepAccess(bid, 'params.aid');
20
20
  },
21
21
  getUserSyncs: function (syncOptions, serverResponses) {
22
22
  const syncs = [];
@@ -43,9 +43,9 @@ export const spec = {
43
43
  }
44
44
 
45
45
  if (syncOptions.pixelEnabled || syncOptions.iframeEnabled) {
46
- utils.isArray(serverResponses) && serverResponses.forEach((response) => {
46
+ isArray(serverResponses) && serverResponses.forEach((response) => {
47
47
  if (response.body) {
48
- if (utils.isArray(response.body)) {
48
+ if (isArray(response.body)) {
49
49
  response.body.forEach(b => {
50
50
  addSyncs(b);
51
51
  })
@@ -81,12 +81,12 @@ export const spec = {
81
81
  serverResponse = serverResponse.body;
82
82
  let bids = [];
83
83
 
84
- if (!utils.isArray(serverResponse)) {
84
+ if (!isArray(serverResponse)) {
85
85
  return parseRTBResponse(serverResponse, bidderRequest);
86
86
  }
87
87
 
88
88
  serverResponse.forEach(serverBidResponse => {
89
- bids = utils.flatten(bids, parseRTBResponse(serverBidResponse, bidderRequest));
89
+ bids = flatten(bids, parseRTBResponse(serverBidResponse, bidderRequest));
90
90
  });
91
91
 
92
92
  return bids;
@@ -94,7 +94,7 @@ export const spec = {
94
94
  };
95
95
 
96
96
  function parseRTBResponse(serverResponse, bidderRequest) {
97
- const isInvalidValidResp = !serverResponse || !utils.isArray(serverResponse.bids);
97
+ const isInvalidValidResp = !serverResponse || !isArray(serverResponse.bids);
98
98
 
99
99
  const bids = [];
100
100
 
@@ -102,7 +102,7 @@ function parseRTBResponse(serverResponse, bidderRequest) {
102
102
  const extMessage = serverResponse && serverResponse.ext && serverResponse.ext.message ? `: ${serverResponse.ext.message}` : '';
103
103
  const errorMessage = `in response for ${bidderRequest.bidderCode} adapter ${extMessage}`;
104
104
 
105
- utils.logError(errorMessage);
105
+ logError(errorMessage);
106
106
 
107
107
  return bids;
108
108
  }
@@ -125,15 +125,15 @@ function parseRTBResponse(serverResponse, bidderRequest) {
125
125
 
126
126
  function bidToTag(bidRequests, bidderRequest) {
127
127
  const tag = {
128
- domain: utils.deepAccess(bidderRequest, 'refererInfo.referer')
128
+ domain: deepAccess(bidderRequest, 'refererInfo.referer')
129
129
  };
130
130
 
131
- if (utils.deepAccess(bidderRequest, 'gdprConsent.gdprApplies')) {
131
+ if (deepAccess(bidderRequest, 'gdprConsent.gdprApplies')) {
132
132
  tag.gdpr = 1;
133
- tag.gdpr_consent = utils.deepAccess(bidderRequest, 'gdprConsent.consentString');
133
+ tag.gdpr_consent = deepAccess(bidderRequest, 'gdprConsent.consentString');
134
134
  }
135
135
 
136
- if (utils.deepAccess(bidderRequest, 'bidderRequest.uspConsent')) {
136
+ if (deepAccess(bidderRequest, 'bidderRequest.uspConsent')) {
137
137
  tag.us_privacy = bidderRequest.uspConsent;
138
138
  }
139
139
 
@@ -151,14 +151,14 @@ function bidToTag(bidRequests, bidderRequest) {
151
151
  * @returns {object}
152
152
  */
153
153
  function prepareRTBRequestParams(_index, bid) {
154
- const mediaType = utils.deepAccess(bid, 'mediaTypes.video') ? VIDEO : DISPLAY;
154
+ const mediaType = deepAccess(bid, 'mediaTypes.video') ? VIDEO : DISPLAY;
155
155
  const index = !_index ? '' : `${_index + 1}`;
156
- const sizes = bid.sizes ? bid.sizes : (mediaType === VIDEO ? utils.deepAccess(bid, 'mediaTypes.video.playerSize') : utils.deepAccess(bid, 'mediaTypes.banner.sizes'));
156
+ const sizes = bid.sizes ? bid.sizes : (mediaType === VIDEO ? deepAccess(bid, 'mediaTypes.video.playerSize') : deepAccess(bid, 'mediaTypes.banner.sizes'));
157
157
  return {
158
158
  ['callbackId' + index]: bid.bidId,
159
159
  ['aid' + index]: bid.params.aid,
160
160
  ['ad_type' + index]: mediaType,
161
- ['sizes' + index]: utils.parseSizesInput(sizes).join()
161
+ ['sizes' + index]: parseSizesInput(sizes).join()
162
162
  };
163
163
  }
164
164
 
@@ -168,8 +168,8 @@ function prepareRTBRequestParams(_index, bid) {
168
168
  * @returns {object}
169
169
  */
170
170
  function getMediaType(bidderRequest) {
171
- const videoMediaType = utils.deepAccess(bidderRequest, 'mediaTypes.video');
172
- const context = utils.deepAccess(bidderRequest, 'mediaTypes.video.context');
171
+ const videoMediaType = deepAccess(bidderRequest, 'mediaTypes.video');
172
+ const context = deepAccess(bidderRequest, 'mediaTypes.video.context');
173
173
 
174
174
  return !videoMediaType ? DISPLAY : context === OUTSTREAM ? OUTSTREAM : VIDEO;
175
175
  }
@@ -1,9 +1,8 @@
1
- import * as utils from '../src/utils.js';
1
+ import { triggerPixel, parseSizesInput, deepAccess, logError } 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';
5
5
  import { INSTREAM as VIDEO_INSTREAM } from '../src/video.js';
6
- const { parseSizesInput, logError, deepAccess } = utils;
7
6
  const BIDDER_CODE = 'visx';
8
7
  const GVLID = 154;
9
8
  const BASE_URL = 'https://t.visx.net';
@@ -169,16 +168,21 @@ export const spec = {
169
168
  return bidResponses;
170
169
  },
171
170
  getUserSyncs: function(syncOptions, serverResponses, gdprConsent) {
172
- if (syncOptions.pixelEnabled) {
173
- var query = [];
174
- if (gdprConsent) {
175
- if (gdprConsent.consentString) {
176
- query.push('gdpr_consent=' + encodeURIComponent(gdprConsent.consentString));
177
- }
178
- query.push('gdpr_applies=' + encodeURIComponent(
179
- (typeof gdprConsent.gdprApplies === 'boolean')
180
- ? Number(gdprConsent.gdprApplies) : 1));
171
+ var query = [];
172
+ if (gdprConsent) {
173
+ if (gdprConsent.consentString) {
174
+ query.push('gdpr_consent=' + encodeURIComponent(gdprConsent.consentString));
181
175
  }
176
+ query.push('gdpr_applies=' + encodeURIComponent(
177
+ (typeof gdprConsent.gdprApplies === 'boolean')
178
+ ? Number(gdprConsent.gdprApplies) : 1));
179
+ }
180
+ if (syncOptions.iframeEnabled) {
181
+ return [{
182
+ type: 'iframe',
183
+ url: buildUrl(ADAPTER_SYNC_PATH) + '?iframe=1' + (query.length ? '&' + query.join('&') : '')
184
+ }];
185
+ } else if (syncOptions.pixelEnabled) {
182
186
  return [{
183
187
  type: 'image',
184
188
  url: buildUrl(ADAPTER_SYNC_PATH) + (query.length ? '?' + query.join('&') : '')
@@ -188,18 +192,18 @@ export const spec = {
188
192
  onSetTargeting: function(bid) {
189
193
  // Call '/track/pending' with the corresponding bid.requestId
190
194
  if (bid.ext && bid.ext.events && bid.ext.events.pending) {
191
- utils.triggerPixel(bid.ext.events.pending);
195
+ triggerPixel(bid.ext.events.pending);
192
196
  }
193
197
  },
194
198
  onBidWon: function(bid) {
195
199
  // Call '/track/win' with the corresponding bid.requestId
196
200
  if (bid.ext && bid.ext.events && bid.ext.events.win) {
197
- utils.triggerPixel(bid.ext.events.win);
201
+ triggerPixel(bid.ext.events.win);
198
202
  }
199
203
  },
200
204
  onTimeout: function(timeoutData) {
201
205
  // Call '/track/bid_timeout' with timeout data
202
- utils.triggerPixel(buildUrl(TRACK_TIMEOUT_PATH) + '?data=' + JSON.stringify(timeoutData));
206
+ triggerPixel(buildUrl(TRACK_TIMEOUT_PATH) + '?data=' + JSON.stringify(timeoutData));
203
207
  }
204
208
  };
205
209
 
@@ -210,7 +214,7 @@ function buildUrl(path) {
210
214
  function makeBanner(bannerParams) {
211
215
  const bannerSizes = bannerParams && bannerParams.sizes;
212
216
  if (bannerSizes) {
213
- const sizes = utils.parseSizesInput(bannerSizes);
217
+ const sizes = parseSizesInput(bannerSizes);
214
218
  if (sizes.length) {
215
219
  const format = sizes.map(size => {
216
220
  const [ width, height ] = size.split('x');
@@ -229,9 +233,9 @@ function makeVideo(videoParams = {}) {
229
233
  .reduce((result, param) => {
230
234
  result[param] = videoParams[param];
231
235
  return result;
232
- }, { w: utils.deepAccess(videoParams, 'playerSize.0.0'), h: utils.deepAccess(videoParams, 'playerSize.0.1') });
236
+ }, { w: deepAccess(videoParams, 'playerSize.0.0'), h: deepAccess(videoParams, 'playerSize.0.1') });
233
237
 
234
- if (video.w && video.h && video.mimes) {
238
+ if (video.w && video.h) {
235
239
  return video;
236
240
  }
237
241
  }
@@ -348,18 +352,6 @@ function _isValidVideoBid(bid, logErrors = false) {
348
352
  }
349
353
  result = false;
350
354
  }
351
- if (!videoMediaType.mimes) {
352
- if (logErrors) {
353
- logError(LOG_ERROR_MESS.videoMissing + 'mimes');
354
- }
355
- result = false;
356
- }
357
- if (!videoMediaType.protocols) {
358
- if (logErrors) {
359
- logError(LOG_ERROR_MESS.videoMissing + 'protocols');
360
- }
361
- result = false;
362
- }
363
355
  return result;
364
356
  }
365
357
 
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js'
1
+ import { _map, logWarn, deepAccess, isArray } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js'
3
3
  import {BANNER, VIDEO} from '../src/mediaTypes.js'
4
4
  import find from 'core-js-pure/features/array/find.js';
@@ -11,7 +11,7 @@ const VIDEO_RENDERER_URL = 'https://acdn.adnxs.com/video/outstream/ANOutstreamVi
11
11
  const TTL = 60;
12
12
 
13
13
  function buildBidRequests(validBidRequests) {
14
- return utils._map(validBidRequests, function(validBidRequest) {
14
+ return _map(validBidRequests, function(validBidRequest) {
15
15
  const params = validBidRequest.params;
16
16
  const bidRequest = {
17
17
  bidId: validBidRequest.bidId,
@@ -53,7 +53,7 @@ const createRenderer = (bid) => {
53
53
  try {
54
54
  renderer.setRender(outstreamRender);
55
55
  } catch (err) {
56
- utils.logWarn('Prebid Error calling setRender on renderer', err);
56
+ logWarn('Prebid Error calling setRender on renderer', err);
57
57
  }
58
58
 
59
59
  return renderer;
@@ -111,8 +111,8 @@ function hasVideoMandatoryParams(mediaTypes) {
111
111
  const isHasVideoContext = !!mediaTypes.video && (mediaTypes.video.context === 'instream' || mediaTypes.video.context === 'outstream');
112
112
 
113
113
  const isPlayerSize =
114
- !!utils.deepAccess(mediaTypes, 'video.playerSize') &&
115
- utils.isArray(utils.deepAccess(mediaTypes, 'video.playerSize'));
114
+ !!deepAccess(mediaTypes, 'video.playerSize') &&
115
+ isArray(deepAccess(mediaTypes, 'video.playerSize'));
116
116
 
117
117
  return isHasVideoContext && isPlayerSize;
118
118
  }
@@ -231,8 +231,8 @@ export const spec = {
231
231
  let bidRequests = JSON.parse(bidRequest.data).bidRequests;
232
232
  const serverBody = serverResponse.body;
233
233
 
234
- if (serverBody && serverBody.bids && utils.isArray(serverBody.bids)) {
235
- return utils._map(serverBody.bids, function(bid) {
234
+ if (serverBody && serverBody.bids && isArray(serverBody.bids)) {
235
+ return _map(serverBody.bids, function(bid) {
236
236
  let rawBid = find(bidRequests, function (item) {
237
237
  return item.bidId === bid.bidId;
238
238
  });
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { parseSizesInput } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
 
4
4
  const BIDDER_CODE = 'vuukle';
@@ -14,7 +14,7 @@ export const spec = {
14
14
 
15
15
  buildRequests: function(bidRequests) {
16
16
  const requests = bidRequests.map(function (bid) {
17
- const parseSized = utils.parseSizesInput(bid.sizes);
17
+ const parseSized = parseSizesInput(bid.sizes);
18
18
  const arrSize = parseSized[0].split('x');
19
19
  const params = {
20
20
  url: encodeURIComponent(window.location.href),
@@ -1,7 +1,7 @@
1
+ import { logError, isArray, deepAccess, getBidIdParameter } from '../src/utils.js';
1
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
2
3
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
3
4
  import {config} from '../src/config.js';
4
- import * as utils from '../src/utils.js';
5
5
  import find from 'core-js-pure/features/array/find.js';
6
6
 
7
7
  const ENDPOINT = `https://hb.justbidit.xyz:8843/prebid`;
@@ -9,38 +9,38 @@ const BIDDER_CODE = 'waardex';
9
9
 
10
10
  const isBidRequestValid = bid => {
11
11
  if (!bid.bidId) {
12
- utils.logError(BIDDER_CODE + ': bid.bidId should be non-empty');
12
+ logError(BIDDER_CODE + ': bid.bidId should be non-empty');
13
13
  return false;
14
14
  }
15
15
 
16
16
  if (!bid.params) {
17
- utils.logError(BIDDER_CODE + ': bid.params should be non-empty');
17
+ logError(BIDDER_CODE + ': bid.params should be non-empty');
18
18
  return false;
19
19
  }
20
20
 
21
21
  if (!+bid.params.zoneId) {
22
- utils.logError(BIDDER_CODE + ': bid.params.zoneId should be non-empty Number');
22
+ logError(BIDDER_CODE + ': bid.params.zoneId should be non-empty Number');
23
23
  return false;
24
24
  }
25
25
 
26
26
  if (bid.mediaTypes && bid.mediaTypes.video) {
27
27
  if (!bid.mediaTypes.video.playerSize) {
28
- utils.logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty');
28
+ logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty');
29
29
  return false;
30
30
  }
31
31
 
32
- if (!utils.isArray(bid.mediaTypes.video.playerSize)) {
33
- utils.logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be an Array');
32
+ if (!isArray(bid.mediaTypes.video.playerSize)) {
33
+ logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be an Array');
34
34
  return false;
35
35
  }
36
36
 
37
37
  if (!bid.mediaTypes.video.playerSize[0]) {
38
- utils.logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty');
38
+ logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty');
39
39
  return false;
40
40
  }
41
41
 
42
- if (!utils.isArray(bid.mediaTypes.video.playerSize[0])) {
43
- utils.logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty Array');
42
+ if (!isArray(bid.mediaTypes.video.playerSize[0])) {
43
+ logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty Array');
44
44
  return false;
45
45
  }
46
46
  }
@@ -139,22 +139,22 @@ const transformSizes = requestSizes => {
139
139
 
140
140
  const createVideoObject = (videoMediaTypes, videoParams) => {
141
141
  return {
142
- w: utils.deepAccess(videoMediaTypes, 'playerSize')[0][0],
143
- h: utils.deepAccess(videoMediaTypes, 'playerSize')[0][1],
144
- mimes: utils.getBidIdParameter('mimes', videoParams) || ['application/javascript', 'video/mp4', 'video/webm'],
145
- minduration: utils.getBidIdParameter('minduration', videoParams) || 0,
146
- maxduration: utils.getBidIdParameter('maxduration', videoParams) || 500,
147
- protocols: utils.getBidIdParameter('protocols', videoParams) || [2, 3, 5, 6],
148
- startdelay: utils.getBidIdParameter('startdelay', videoParams) || 0,
149
- placement: utils.getBidIdParameter('placement', videoParams) || videoMediaTypes.context === 'outstream' ? 3 : 1,
150
- skip: utils.getBidIdParameter('skip', videoParams) || 1,
151
- skipafter: utils.getBidIdParameter('skipafter', videoParams) || 0,
152
- minbitrate: utils.getBidIdParameter('minbitrate', videoParams) || 0,
153
- maxbitrate: utils.getBidIdParameter('maxbitrate', videoParams) || 3500,
154
- delivery: utils.getBidIdParameter('delivery', videoParams) || [2],
155
- playbackmethod: utils.getBidIdParameter('playbackmethod', videoParams) || [1, 2, 3, 4],
156
- api: utils.getBidIdParameter('api', videoParams) || [2],
157
- linearity: utils.getBidIdParameter('linearity', videoParams) || 1
142
+ w: deepAccess(videoMediaTypes, 'playerSize')[0][0],
143
+ h: deepAccess(videoMediaTypes, 'playerSize')[0][1],
144
+ mimes: getBidIdParameter('mimes', videoParams) || ['application/javascript', 'video/mp4', 'video/webm'],
145
+ minduration: getBidIdParameter('minduration', videoParams) || 0,
146
+ maxduration: getBidIdParameter('maxduration', videoParams) || 500,
147
+ protocols: getBidIdParameter('protocols', videoParams) || [2, 3, 5, 6],
148
+ startdelay: getBidIdParameter('startdelay', videoParams) || 0,
149
+ placement: getBidIdParameter('placement', videoParams) || videoMediaTypes.context === 'outstream' ? 3 : 1,
150
+ skip: getBidIdParameter('skip', videoParams) || 1,
151
+ skipafter: getBidIdParameter('skipafter', videoParams) || 0,
152
+ minbitrate: getBidIdParameter('minbitrate', videoParams) || 0,
153
+ maxbitrate: getBidIdParameter('maxbitrate', videoParams) || 3500,
154
+ delivery: getBidIdParameter('delivery', videoParams) || [2],
155
+ playbackmethod: getBidIdParameter('playbackmethod', videoParams) || [1, 2, 3, 4],
156
+ api: getBidIdParameter('api', videoParams) || [2],
157
+ linearity: getBidIdParameter('linearity', videoParams) || 1
158
158
  };
159
159
  };
160
160