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,6 +1,10 @@
1
1
  /** @module adaptermanger */
2
2
 
3
- import { flatten, getBidderCodes, getDefinedParams, shuffle, timestamp, getBidderRequest, bind } from './utils.js';
3
+ import {
4
+ _each, getUserConfiguredParams, groupBy, logInfo, deepAccess, isValidMediaTypes,
5
+ getUniqueIdentifierStr, deepClone, logWarn, logError, logMessage, isArray, generateUUID,
6
+ flatten, getBidderCodes, getDefinedParams, shuffle, timestamp, getBidderRequest, bind
7
+ } from './utils.js';
4
8
  import { getLabels, resolveStatus } from './sizeMapping.js';
5
9
  import { processNativeAdUnitParams, nativeAdapters } from './native.js';
6
10
  import { newBidder } from './adapters/bidderFactory.js';
@@ -12,7 +16,6 @@ import find from 'core-js-pure/features/array/find.js';
12
16
  import { adunitCounter } from './adUnits.js';
13
17
  import { getRefererInfo } from './refererDetection.js';
14
18
 
15
- var utils = require('./utils.js');
16
19
  var CONSTANTS = require('./constants.json');
17
20
  var events = require('./events.js');
18
21
  let s2sTestingModule; // store s2sTesting module if it's loaded
@@ -25,7 +28,7 @@ let _aliasRegistry = adapterManager.aliasRegistry = {};
25
28
  let _s2sConfigs = [];
26
29
  config.getConfig('s2sConfig', config => {
27
30
  if (config && config.s2sConfig) {
28
- _s2sConfigs = Array.isArray(config.s2sConfig) ? config.s2sConfig : [config.s2sConfig];
31
+ _s2sConfigs = isArray(config.s2sConfig) ? config.s2sConfig : [config.s2sConfig];
29
32
  }
30
33
  });
31
34
 
@@ -51,16 +54,16 @@ function getBids({bidderCode, auctionId, bidderRequestId, adUnits, labels, src})
51
54
  );
52
55
 
53
56
  if (!active) {
54
- utils.logInfo(`Size mapping disabled adUnit "${adUnit.code}"`);
57
+ logInfo(`Size mapping disabled adUnit "${adUnit.code}"`);
55
58
  } else if (filterResults) {
56
- utils.logInfo(`Size mapping filtered adUnit "${adUnit.code}" banner sizes from `, filterResults.before, 'to ', filterResults.after);
59
+ logInfo(`Size mapping filtered adUnit "${adUnit.code}" banner sizes from `, filterResults.before, 'to ', filterResults.after);
57
60
  }
58
61
 
59
62
  if (active) {
60
63
  result.push(adUnit.bids.filter(bid => bid.bidder === bidderCode)
61
64
  .reduce((bids, bid) => {
62
65
  const nativeParams =
63
- adUnit.nativeParams || utils.deepAccess(adUnit, 'mediaTypes.native');
66
+ adUnit.nativeParams || deepAccess(adUnit, 'mediaTypes.native');
64
67
  if (nativeParams) {
65
68
  bid = Object.assign({}, bid, {
66
69
  nativeParams: processNativeAdUnitParams(nativeParams),
@@ -81,17 +84,17 @@ function getBids({bidderCode, auctionId, bidderRequestId, adUnits, labels, src})
81
84
  } = resolveStatus(getLabels(bid, labels), filteredMediaTypes);
82
85
 
83
86
  if (!active) {
84
- utils.logInfo(`Size mapping deactivated adUnit "${adUnit.code}" bidder "${bid.bidder}"`);
87
+ logInfo(`Size mapping deactivated adUnit "${adUnit.code}" bidder "${bid.bidder}"`);
85
88
  } else if (filterResults) {
86
- utils.logInfo(`Size mapping filtered adUnit "${adUnit.code}" bidder "${bid.bidder}" banner sizes from `, filterResults.before, 'to ', filterResults.after);
89
+ logInfo(`Size mapping filtered adUnit "${adUnit.code}" bidder "${bid.bidder}" banner sizes from `, filterResults.before, 'to ', filterResults.after);
87
90
  }
88
91
 
89
- if (utils.isValidMediaTypes(mediaTypes)) {
92
+ if (isValidMediaTypes(mediaTypes)) {
90
93
  bid = Object.assign({}, bid, {
91
94
  mediaTypes
92
95
  });
93
96
  } else {
94
- utils.logError(
97
+ logError(
95
98
  `mediaTypes is not correctly configured for adunit ${adUnit.code}`
96
99
  );
97
100
  }
@@ -100,8 +103,8 @@ function getBids({bidderCode, auctionId, bidderRequestId, adUnits, labels, src})
100
103
  bids.push(Object.assign({}, bid, {
101
104
  adUnitCode: adUnit.code,
102
105
  transactionId: adUnit.transactionId,
103
- sizes: utils.deepAccess(mediaTypes, 'banner.sizes') || utils.deepAccess(mediaTypes, 'video.playerSize') || [],
104
- bidId: bid.bid_id || utils.getUniqueIdentifierStr(),
106
+ sizes: deepAccess(mediaTypes, 'banner.sizes') || deepAccess(mediaTypes, 'video.playerSize') || [],
107
+ bidId: bid.bid_id || getUniqueIdentifierStr(),
105
108
  bidderRequestId,
106
109
  auctionId,
107
110
  src,
@@ -122,7 +125,7 @@ const hookedGetBids = hook('sync', getBids, 'getBids');
122
125
 
123
126
  function getAdUnitCopyForPrebidServer(adUnits, s2sConfig) {
124
127
  let adaptersServerSide = s2sConfig.bidders;
125
- let adUnitsCopy = utils.deepClone(adUnits);
128
+ let adUnitsCopy = deepClone(adUnits);
126
129
 
127
130
  adUnitsCopy.forEach((adUnit) => {
128
131
  // filter out client side bids
@@ -130,7 +133,7 @@ function getAdUnitCopyForPrebidServer(adUnits, s2sConfig) {
130
133
  return includes(adaptersServerSide, bid.bidder) &&
131
134
  (!doingS2STesting(s2sConfig) || bid.finalSource !== s2sTestingModule.CLIENT);
132
135
  }).map((bid) => {
133
- bid.bid_id = utils.getUniqueIdentifierStr();
136
+ bid.bid_id = getUniqueIdentifierStr();
134
137
  return bid;
135
138
  });
136
139
  });
@@ -143,7 +146,7 @@ function getAdUnitCopyForPrebidServer(adUnits, s2sConfig) {
143
146
  }
144
147
 
145
148
  function getAdUnitCopyForClientAdapters(adUnits) {
146
- let adUnitsClientCopy = utils.deepClone(adUnits);
149
+ let adUnitsClientCopy = deepClone(adUnits);
147
150
  // filter out s2s bids
148
151
  adUnitsClientCopy.forEach((adUnit) => {
149
152
  adUnit.bids = adUnit.bids.filter((bid) => {
@@ -254,20 +257,20 @@ adapterManager.makeBidRequests = hook('sync', function (adUnits, auctionStart, a
254
257
  _s2sConfigs.forEach(s2sConfig => {
255
258
  if (s2sConfig && s2sConfig.enabled) {
256
259
  if ((isTestingServerOnly(s2sConfig) && adUnitsContainServerRequests(adUnits, s2sConfig))) {
257
- utils.logWarn('testServerOnly: True. All client requests will be suppressed.');
260
+ logWarn('testServerOnly: True. All client requests will be suppressed.');
258
261
  clientBidderCodes.length = 0;
259
262
  }
260
263
 
261
264
  let adUnitsS2SCopy = getAdUnitCopyForPrebidServer(adUnits, s2sConfig);
262
- let tid = utils.generateUUID();
265
+ let tid = generateUUID();
263
266
  adaptersServerSide.forEach(bidderCode => {
264
- const bidderRequestId = utils.getUniqueIdentifierStr();
267
+ const bidderRequestId = getUniqueIdentifierStr();
265
268
  const bidderRequest = {
266
269
  bidderCode,
267
270
  auctionId,
268
271
  bidderRequestId,
269
272
  tid,
270
- bids: hookedGetBids({bidderCode, auctionId, bidderRequestId, 'adUnits': utils.deepClone(adUnitsS2SCopy), labels, src: CONSTANTS.S2S.SRC}),
273
+ bids: hookedGetBids({bidderCode, auctionId, bidderRequestId, 'adUnits': deepClone(adUnitsS2SCopy), labels, src: CONSTANTS.S2S.SRC}),
271
274
  auctionStart: auctionStart,
272
275
  timeout: s2sConfig.timeout,
273
276
  src: CONSTANTS.S2S.SRC,
@@ -298,19 +301,19 @@ adapterManager.makeBidRequests = hook('sync', function (adUnits, auctionStart, a
298
301
  // client adapters
299
302
  let adUnitsClientCopy = getAdUnitCopyForClientAdapters(adUnits);
300
303
  clientBidderCodes.forEach(bidderCode => {
301
- const bidderRequestId = utils.getUniqueIdentifierStr();
304
+ const bidderRequestId = getUniqueIdentifierStr();
302
305
  const bidderRequest = {
303
306
  bidderCode,
304
307
  auctionId,
305
308
  bidderRequestId,
306
- bids: hookedGetBids({bidderCode, auctionId, bidderRequestId, 'adUnits': utils.deepClone(adUnitsClientCopy), labels, src: 'client'}),
309
+ bids: hookedGetBids({bidderCode, auctionId, bidderRequestId, 'adUnits': deepClone(adUnitsClientCopy), labels, src: 'client'}),
307
310
  auctionStart: auctionStart,
308
311
  timeout: cbTimeout,
309
312
  refererInfo
310
313
  };
311
314
  const adapter = _bidderRegistry[bidderCode];
312
315
  if (!adapter) {
313
- utils.logError(`Trying to make a request for bidder that does not exist: ${bidderCode}`);
316
+ logError(`Trying to make a request for bidder that does not exist: ${bidderCode}`);
314
317
  }
315
318
 
316
319
  if (adapter && bidderRequest.bids && bidderRequest.bids.length !== 0) {
@@ -334,7 +337,7 @@ adapterManager.makeBidRequests = hook('sync', function (adUnits, auctionStart, a
334
337
 
335
338
  adapterManager.callBids = (adUnits, bidRequests, addBidResponse, doneCb, requestCallbacks, requestBidsTimeout, onTimelyResponse) => {
336
339
  if (!bidRequests.length) {
337
- utils.logWarn('callBids executed with no bidRequests. Were they filtered by labels or sizing?');
340
+ logWarn('callBids executed with no bidRequests. Were they filtered by labels or sizing?');
338
341
  return;
339
342
  }
340
343
 
@@ -384,7 +387,7 @@ adapterManager.callBids = (adUnits, bidRequests, addBidResponse, doneCb, request
384
387
  let allBidders = s2sBidRequest.ad_units.reduce((adapters, adUnit) => {
385
388
  return adapters.concat((adUnit.bids || []).reduce((adapters, bid) => adapters.concat(bid.bidder), []));
386
389
  }, []);
387
- utils.logMessage(`CALLING S2S HEADER BIDDERS ==== ${adaptersServerSide.filter(adapter => includes(allBidders, adapter)).join(',')}`);
390
+ logMessage(`CALLING S2S HEADER BIDDERS ==== ${adaptersServerSide.filter(adapter => includes(allBidders, adapter)).join(',')}`);
388
391
 
389
392
  // fire BID_REQUESTED event for each s2s bidRequest
390
393
  uniqueServerRequests.forEach(bidRequest => {
@@ -406,7 +409,7 @@ adapterManager.callBids = (adUnits, bidRequests, addBidResponse, doneCb, request
406
409
  );
407
410
  }
408
411
  } else {
409
- utils.logError('missing ' + s2sConfig.adapter);
412
+ logError('missing ' + s2sConfig.adapter);
410
413
  }
411
414
  counter++
412
415
  }
@@ -418,7 +421,7 @@ adapterManager.callBids = (adUnits, bidRequests, addBidResponse, doneCb, request
418
421
  // TODO : Do we check for bid in pool from here and skip calling adapter again ?
419
422
  const adapter = _bidderRegistry[bidRequest.bidderCode];
420
423
  config.runWithBidder(bidRequest.bidderCode, () => {
421
- utils.logMessage(`CALLING BIDDER`);
424
+ logMessage(`CALLING BIDDER`);
422
425
  events.emit(CONSTANTS.EVENTS.BID_REQUESTED, bidRequest);
423
426
  });
424
427
  let ajax = ajaxBuilder(requestBidsTimeout, requestCallbacks ? {
@@ -441,7 +444,7 @@ adapterManager.callBids = (adUnits, bidRequests, addBidResponse, doneCb, request
441
444
  )
442
445
  );
443
446
  } catch (e) {
444
- utils.logError(`${bidRequest.bidderCode} Bid Adapter emitted an uncaught error when parsing their bidRequest`, {e, bidRequest});
447
+ logError(`${bidRequest.bidderCode} Bid Adapter emitted an uncaught error when parsing their bidRequest`, {e, bidRequest});
445
448
  adapterDone();
446
449
  }
447
450
  });
@@ -476,10 +479,10 @@ adapterManager.registerBidAdapter = function (bidAdapter, bidderCode, {supported
476
479
  nativeAdapters.push(bidderCode);
477
480
  }
478
481
  } else {
479
- utils.logError('Bidder adaptor error for bidder code: ' + bidderCode + 'bidder must implement a callBids() function');
482
+ logError('Bidder adaptor error for bidder code: ' + bidderCode + 'bidder must implement a callBids() function');
480
483
  }
481
484
  } else {
482
- utils.logError('bidAdapter or bidderCode not specified');
485
+ logError('bidAdapter or bidderCode not specified');
483
486
  }
484
487
  };
485
488
 
@@ -502,7 +505,7 @@ adapterManager.aliasBidAdapter = function (bidderCode, alias, options) {
502
505
  }
503
506
  });
504
507
  nonS2SAlias.forEach(bidderCode => {
505
- utils.logError('bidderCode "' + bidderCode + '" is not an existing bidder.', 'adapterManager.aliasBidAdapter');
508
+ logError('bidderCode "' + bidderCode + '" is not an existing bidder.', 'adapterManager.aliasBidAdapter');
506
509
  })
507
510
  } else {
508
511
  try {
@@ -524,11 +527,11 @@ adapterManager.aliasBidAdapter = function (bidderCode, alias, options) {
524
527
  supportedMediaTypes
525
528
  });
526
529
  } catch (e) {
527
- utils.logError(bidderCode + ' bidder does not currently support aliasing.', 'adapterManager.aliasBidAdapter');
530
+ logError(bidderCode + ' bidder does not currently support aliasing.', 'adapterManager.aliasBidAdapter');
528
531
  }
529
532
  }
530
533
  } else {
531
- utils.logMessage('alias name "' + alias + '" has been already specified.');
534
+ logMessage('alias name "' + alias + '" has been already specified.');
532
535
  }
533
536
  };
534
537
 
@@ -538,25 +541,25 @@ adapterManager.registerAnalyticsAdapter = function ({adapter, code, gvlid}) {
538
541
  adapter.code = code;
539
542
  _analyticsRegistry[code] = { adapter, gvlid };
540
543
  } else {
541
- utils.logError(`Prebid Error: Analytics adaptor error for analytics "${code}"
544
+ logError(`Prebid Error: Analytics adaptor error for analytics "${code}"
542
545
  analytics adapter must implement an enableAnalytics() function`);
543
546
  }
544
547
  } else {
545
- utils.logError('Prebid Error: analyticsAdapter or analyticsCode not specified');
548
+ logError('Prebid Error: analyticsAdapter or analyticsCode not specified');
546
549
  }
547
550
  };
548
551
 
549
552
  adapterManager.enableAnalytics = function (config) {
550
- if (!utils.isArray(config)) {
553
+ if (!isArray(config)) {
551
554
  config = [config];
552
555
  }
553
556
 
554
- utils._each(config, adapterConfig => {
557
+ _each(config, adapterConfig => {
555
558
  var adapter = _analyticsRegistry[adapterConfig.provider].adapter;
556
559
  if (adapter) {
557
560
  adapter.enableAnalytics(adapterConfig);
558
561
  } else {
559
- utils.logError(`Prebid Error: no analytics adapter found in registry for
562
+ logError(`Prebid Error: no analytics adapter found in registry for
560
563
  ${adapterConfig.provider}.`);
561
564
  }
562
565
  });
@@ -581,22 +584,22 @@ function tryCallBidderMethod(bidder, method, param) {
581
584
  const adapter = _bidderRegistry[bidder];
582
585
  const spec = adapter.getSpec();
583
586
  if (spec && spec[method] && typeof spec[method] === 'function') {
584
- utils.logInfo(`Invoking ${bidder}.${method}`);
587
+ logInfo(`Invoking ${bidder}.${method}`);
585
588
  config.runWithBidder(bidder, bind.call(spec[method], spec, param));
586
589
  }
587
590
  } catch (e) {
588
- utils.logWarn(`Error calling ${method} of ${bidder}`);
591
+ logWarn(`Error calling ${method} of ${bidder}`);
589
592
  }
590
593
  }
591
594
 
592
595
  adapterManager.callTimedOutBidders = function(adUnits, timedOutBidders, cbTimeout) {
593
596
  timedOutBidders = timedOutBidders.map((timedOutBidder) => {
594
597
  // Adding user configured params & timeout to timeout event data
595
- timedOutBidder.params = utils.getUserConfiguredParams(adUnits, timedOutBidder.adUnitCode, timedOutBidder.bidder);
598
+ timedOutBidder.params = getUserConfiguredParams(adUnits, timedOutBidder.adUnitCode, timedOutBidder.bidder);
596
599
  timedOutBidder.timeout = cbTimeout;
597
600
  return timedOutBidder;
598
601
  });
599
- timedOutBidders = utils.groupBy(timedOutBidders, 'bidder');
602
+ timedOutBidders = groupBy(timedOutBidders, 'bidder');
600
603
 
601
604
  Object.keys(timedOutBidders).forEach((bidder) => {
602
605
  tryCallBidderMethod(bidder, 'onTimeout', timedOutBidders[bidder]);
@@ -605,7 +608,7 @@ adapterManager.callTimedOutBidders = function(adUnits, timedOutBidders, cbTimeou
605
608
 
606
609
  adapterManager.callBidWonBidder = function(bidder, bid, adUnits) {
607
610
  // Adding user configured params to bidWon event data
608
- bid.params = utils.getUserConfiguredParams(adUnits, bid.adUnitCode, bid.bidder);
611
+ bid.params = getUserConfiguredParams(adUnits, bid.adUnitCode, bid.bidder);
609
612
  adunitCounter.incrementBidderWinsCounter(bid.adUnitCode, bid.bidder);
610
613
  tryCallBidderMethod(bidder, 'onBidWon', bid);
611
614
  };
package/src/adloader.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import includes from 'core-js-pure/features/array/includes.js';
2
- import * as utils from './utils.js';
2
+ import { logError, logWarn, insertElement } from './utils.js';
3
3
 
4
4
  const _requestCache = {};
5
5
  // The below list contains modules or vendors whom Prebid allows to load external JS.
@@ -20,11 +20,11 @@ const _approvedLoadExternalJSList = [
20
20
  */
21
21
  export function loadExternalScript(url, moduleCode, callback) {
22
22
  if (!moduleCode || !url) {
23
- utils.logError('cannot load external script without url and moduleCode');
23
+ logError('cannot load external script without url and moduleCode');
24
24
  return;
25
25
  }
26
26
  if (!includes(_approvedLoadExternalJSList, moduleCode)) {
27
- utils.logError(`${moduleCode} not whitelisted for loading external JavaScript`);
27
+ logError(`${moduleCode} not whitelisted for loading external JavaScript`);
28
28
  return;
29
29
  }
30
30
  // only load each asset once
@@ -49,7 +49,7 @@ export function loadExternalScript(url, moduleCode, callback) {
49
49
  _requestCache[url].callbacks.push(callback);
50
50
  }
51
51
 
52
- utils.logWarn(`module ${moduleCode} is loading external JavaScript`);
52
+ logWarn(`module ${moduleCode} is loading external JavaScript`);
53
53
  return requestResource(url, function () {
54
54
  _requestCache[url].loaded = true;
55
55
  try {
@@ -57,7 +57,7 @@ export function loadExternalScript(url, moduleCode, callback) {
57
57
  _requestCache[url].callbacks[i]();
58
58
  }
59
59
  } catch (e) {
60
- utils.logError('Error executing callback', 'adloader.js:loadExternalScript', e);
60
+ logError('Error executing callback', 'adloader.js:loadExternalScript', e);
61
61
  }
62
62
  });
63
63
 
@@ -84,7 +84,7 @@ export function loadExternalScript(url, moduleCode, callback) {
84
84
  jptScript.src = tagSrc;
85
85
 
86
86
  // add the new script tag to the page
87
- utils.insertElement(jptScript);
87
+ insertElement(jptScript);
88
88
 
89
89
  return jptScript;
90
90
  }
package/src/ajax.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { config } from './config.js';
2
-
3
- var utils = require('./utils.js');
2
+ import { logMessage, logError, parseUrl, buildUrl, _each } from './utils.js';
4
3
 
5
4
  const XHR_DONE = 4;
6
5
 
@@ -25,10 +24,10 @@ export function ajaxBuilder(timeout = 3000, {request, done} = {}) {
25
24
 
26
25
  let callbacks = typeof callback === 'object' && callback !== null ? callback : {
27
26
  success: function() {
28
- utils.logMessage('xhr success');
27
+ logMessage('xhr success');
29
28
  },
30
29
  error: function(e) {
31
- utils.logError('xhr error', null, e);
30
+ logError('xhr error', null, e);
32
31
  }
33
32
  };
34
33
 
@@ -55,14 +54,14 @@ export function ajaxBuilder(timeout = 3000, {request, done} = {}) {
55
54
  // Disabled timeout temporarily to avoid xhr failed requests. https://github.com/prebid/Prebid.js/issues/2648
56
55
  if (!config.getConfig('disableAjaxTimeout')) {
57
56
  x.ontimeout = function () {
58
- utils.logError(' xhr timeout after ', x.timeout, 'ms');
57
+ logError(' xhr timeout after ', x.timeout, 'ms');
59
58
  };
60
59
  }
61
60
 
62
61
  if (method === 'GET' && data) {
63
- let urlInfo = utils.parseUrl(url, options);
62
+ let urlInfo = parseUrl(url, options);
64
63
  Object.assign(urlInfo.search, data);
65
- url = utils.buildUrl(urlInfo);
64
+ url = buildUrl(urlInfo);
66
65
  }
67
66
 
68
67
  x.open(method, url, true);
@@ -75,7 +74,7 @@ export function ajaxBuilder(timeout = 3000, {request, done} = {}) {
75
74
  if (options.withCredentials) {
76
75
  x.withCredentials = true;
77
76
  }
78
- utils._each(options.customHeaders, (value, header) => {
77
+ _each(options.customHeaders, (value, header) => {
79
78
  x.setRequestHeader(header, value);
80
79
  });
81
80
  if (options.preflight) {
@@ -93,7 +92,7 @@ export function ajaxBuilder(timeout = 3000, {request, done} = {}) {
93
92
  x.send();
94
93
  }
95
94
  } catch (error) {
96
- utils.logError('xhr construction', error);
95
+ logError('xhr construction', error);
97
96
  typeof callback === 'object' && callback !== null && callback.error(error);
98
97
  }
99
98
  }
package/src/auction.js CHANGED
@@ -57,7 +57,10 @@
57
57
  * @property {function(): void} callBids - sends requests to all adapters for bids
58
58
  */
59
59
 
60
- import {flatten, timestamp, adUnitsFilter, deepAccess, getBidRequest, getValue, parseUrl} from './utils.js';
60
+ import {
61
+ flatten, timestamp, adUnitsFilter, deepAccess, getBidRequest, getValue, parseUrl, generateUUID,
62
+ logMessage, bind, logError, logInfo, logWarn, isEmpty, _each, isFn, isEmptyStr
63
+ } from './utils.js';
61
64
  import { getPriceBucketString } from './cpmBucketManager.js';
62
65
  import { getNativeTargeting } from './native.js';
63
66
  import { getCacheUrl, store } from './videoCache.js';
@@ -71,7 +74,7 @@ import { OUTSTREAM } from './video.js';
71
74
  import { VIDEO } from './mediaTypes.js';
72
75
 
73
76
  const { syncUsers } = userSync;
74
- const utils = require('./utils.js');
77
+
75
78
  const adapterManager = require('./adapterManager.js').default;
76
79
  const events = require('./events.js');
77
80
  const CONSTANTS = require('./constants.json');
@@ -112,7 +115,7 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a
112
115
  let _noBids = [];
113
116
  let _auctionStart;
114
117
  let _auctionEnd;
115
- let _auctionId = auctionId || utils.generateUUID();
118
+ let _auctionId = auctionId || generateUUID();
116
119
  let _auctionStatus;
117
120
  let _callback = callback;
118
121
  let _timer;
@@ -157,7 +160,7 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a
157
160
  if (_auctionEnd === undefined) {
158
161
  let timedOutBidders = [];
159
162
  if (timedOut) {
160
- utils.logMessage(`Auction ${_auctionId} timedOut`);
163
+ logMessage(`Auction ${_auctionId} timedOut`);
161
164
  timedOutBidders = getTimedOutBids(_bidderRequests, _timelyBidders);
162
165
  if (timedOutBidders.length) {
163
166
  events.emit(CONSTANTS.EVENTS.BID_TIMEOUT, timedOutBidders);
@@ -173,13 +176,13 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a
173
176
  if (_callback != null) {
174
177
  const adUnitCodes = _adUnitCodes;
175
178
  const bids = _bidsReceived
176
- .filter(utils.bind.call(adUnitsFilter, this, adUnitCodes))
179
+ .filter(bind.call(adUnitsFilter, this, adUnitCodes))
177
180
  .reduce(groupByPlacement, {});
178
181
  _callback.apply($$PREBID_GLOBAL$$, [bids, timedOut, _auctionId]);
179
182
  _callback = null;
180
183
  }
181
184
  } catch (e) {
182
- utils.logError('Error executing bidsBackHandler', null, e);
185
+ logError('Error executing bidsBackHandler', null, e);
183
186
  } finally {
184
187
  // Calling timed out bidders
185
188
  if (timedOutBidders.length) {
@@ -199,7 +202,7 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a
199
202
  function auctionDone() {
200
203
  config.resetBidder();
201
204
  // when all bidders have called done callback atleast once it means auction is complete
202
- utils.logInfo(`Bids Received for Auction with id: ${_auctionId}`, _bidsReceived);
205
+ logInfo(`Bids Received for Auction with id: ${_auctionId}`, _bidsReceived);
203
206
  _auctionStatus = AUCTION_COMPLETED;
204
207
  executeCallback(false, true);
205
208
  }
@@ -213,10 +216,10 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a
213
216
  _auctionStart = Date.now();
214
217
 
215
218
  let bidRequests = adapterManager.makeBidRequests(_adUnits, _auctionStart, _auctionId, _timeout, _labels);
216
- utils.logInfo(`Bids Requested for Auction with id: ${_auctionId}`, bidRequests);
219
+ logInfo(`Bids Requested for Auction with id: ${_auctionId}`, bidRequests);
217
220
 
218
221
  if (bidRequests.length < 1) {
219
- utils.logWarn('No valid bid requests returned for auction');
222
+ logWarn('No valid bid requests returned for auction');
220
223
  auctionDone();
221
224
  } else {
222
225
  addBidderRequests.call({
@@ -279,7 +282,7 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a
279
282
  };
280
283
 
281
284
  if (!runIfOriginHasCapacity(call)) {
282
- utils.logWarn('queueing auction due to limited endpoint capacity');
285
+ logWarn('queueing auction due to limited endpoint capacity');
283
286
  queuedCalls.push(call);
284
287
  }
285
288
 
@@ -404,7 +407,7 @@ export function auctionCallbacks(auctionDone, auctionInstance) {
404
407
 
405
408
  bidderRequestsDone.add(bidderRequest);
406
409
 
407
- if (auctionOptionsConfig && !utils.isEmpty(auctionOptionsConfig)) {
410
+ if (auctionOptionsConfig && !isEmpty(auctionOptionsConfig)) {
408
411
  const secondaryBidders = auctionOptionsConfig.secondaryBidders;
409
412
  if (secondaryBidders && !bidderRequests.every(bidder => includes(secondaryBidders, bidder.bidderCode))) {
410
413
  bidderRequests = bidderRequests.filter(request => !includes(secondaryBidders, request.bidderCode));
@@ -463,7 +466,7 @@ function tryAddVideoBid(auctionInstance, bidResponse, bidRequests, afterBidAdded
463
466
  addBid = false;
464
467
  callPrebidCache(auctionInstance, bidResponse, afterBidAdded, bidderRequest);
465
468
  } else if (!bidResponse.vastUrl) {
466
- utils.logError('videoCacheKey specified but not required vastUrl for video bid');
469
+ logError('videoCacheKey specified but not required vastUrl for video bid');
467
470
  addBid = false;
468
471
  }
469
472
  }
@@ -476,12 +479,12 @@ function tryAddVideoBid(auctionInstance, bidResponse, bidRequests, afterBidAdded
476
479
  export const callPrebidCache = hook('async', function(auctionInstance, bidResponse, afterBidAdded, bidderRequest) {
477
480
  store([bidResponse], function (error, cacheIds) {
478
481
  if (error) {
479
- utils.logWarn(`Failed to save to the video cache: ${error}. Video bid must be discarded.`);
482
+ logWarn(`Failed to save to the video cache: ${error}. Video bid must be discarded.`);
480
483
 
481
484
  doCallbacksIfTimedout(auctionInstance, bidResponse);
482
485
  } else {
483
486
  if (cacheIds[0].uuid === '') {
484
- utils.logWarn(`Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded.`);
487
+ logWarn(`Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded.`);
485
488
 
486
489
  doCallbacksIfTimedout(auctionInstance, bidResponse);
487
490
  } else {
@@ -688,12 +691,12 @@ export function getStandardBidderSettings(mediaType, bidderCode, bidReq) {
688
691
  });
689
692
 
690
693
  // Adding hb_cache_host
691
- if (config.getConfig('cache.url') && (!bidderCode || utils.deepAccess(bidderSettings, `${bidderCode}.sendStandardTargeting`) !== false)) {
694
+ if (config.getConfig('cache.url') && (!bidderCode || deepAccess(bidderSettings, `${bidderCode}.sendStandardTargeting`) !== false)) {
692
695
  const urlInfo = parseUrl(config.getConfig('cache.url'));
693
696
 
694
697
  if (typeof find(adserverTargeting, targetingKeyVal => targetingKeyVal.key === TARGETING_KEYS.CACHE_HOST) === 'undefined') {
695
698
  adserverTargeting.push(createKeyVal(TARGETING_KEYS.CACHE_HOST, function(bidResponse) {
696
- return utils.deepAccess(bidResponse, `adserverTargeting.${TARGETING_KEYS.CACHE_HOST}`)
699
+ return deepAccess(bidResponse, `adserverTargeting.${TARGETING_KEYS.CACHE_HOST}`)
697
700
  ? bidResponse.adserverTargeting[TARGETING_KEYS.CACHE_HOST] : urlInfo.hostname;
698
701
  }));
699
702
  }
@@ -735,19 +738,19 @@ function setKeys(keyValues, bidderSettings, custBidObj) {
735
738
  var targeting = bidderSettings[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING];
736
739
  custBidObj.size = custBidObj.getSize();
737
740
 
738
- utils._each(targeting, function (kvPair) {
741
+ _each(targeting, function (kvPair) {
739
742
  var key = kvPair.key;
740
743
  var value = kvPair.val;
741
744
 
742
745
  if (keyValues[key]) {
743
- utils.logWarn('The key: ' + key + ' is getting ovewritten');
746
+ logWarn('The key: ' + key + ' is getting ovewritten');
744
747
  }
745
748
 
746
- if (utils.isFn(value)) {
749
+ if (isFn(value)) {
747
750
  try {
748
751
  value = value(custBidObj);
749
752
  } catch (e) {
750
- utils.logError('bidmanager', 'ERROR', e);
753
+ logError('bidmanager', 'ERROR', e);
751
754
  }
752
755
  }
753
756
 
@@ -755,12 +758,12 @@ function setKeys(keyValues, bidderSettings, custBidObj) {
755
758
  ((typeof bidderSettings.suppressEmptyKeys !== 'undefined' && bidderSettings.suppressEmptyKeys === true) ||
756
759
  key === CONSTANTS.TARGETING_KEYS.DEAL) && // hb_deal is suppressed automatically if not set
757
760
  (
758
- utils.isEmptyStr(value) ||
761
+ isEmptyStr(value) ||
759
762
  value === null ||
760
763
  value === undefined
761
764
  )
762
765
  ) {
763
- utils.logInfo("suppressing empty key '" + key + "' from adserver targeting");
766
+ logInfo("suppressing empty key '" + key + "' from adserver targeting");
764
767
  } else {
765
768
  keyValues[key] = value;
766
769
  }
@@ -783,7 +786,7 @@ export function adjustBids(bid) {
783
786
  try {
784
787
  bidPriceAdjusted = bidCpmAdjustment(bid.cpm, Object.assign({}, bid));
785
788
  } catch (e) {
786
- utils.logError('Error during bid adjustment', 'bidmanager.js', e);
789
+ logError('Error during bid adjustment', 'bidmanager.js', e);
787
790
  }
788
791
  }
789
792
  }
package/src/bidfactory.js CHANGED
@@ -1,4 +1,4 @@
1
- var utils = require('./utils.js');
1
+ import { getUniqueIdentifierStr } from './utils.js';
2
2
 
3
3
  /**
4
4
  Required paramaters
@@ -22,7 +22,7 @@ function Bid(statusCode, bidRequest) {
22
22
  this.width = 0;
23
23
  this.height = 0;
24
24
  this.statusMessage = _getStatus();
25
- this.adId = utils.getUniqueIdentifierStr();
25
+ this.adId = getUniqueIdentifierStr();
26
26
  this.requestId = bidRequest && bidRequest.bidId;
27
27
  this.mediaType = 'banner';
28
28
  this.source = _bidSrc;