prebid.js 5.14.0 → 5.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/.devcontainer/Dockerfile +11 -0
  2. package/.devcontainer/devcontainer.json +27 -0
  3. package/.devcontainer/postCreate.sh +6 -0
  4. package/allowedModules.js +2 -1
  5. package/integrationExamples/gpt/afpExample.html +242 -0
  6. package/integrationExamples/gpt/afpGamExample.html +152 -0
  7. package/integrationExamples/gpt/weboramaRtdProvider_example.html +126 -0
  8. package/modules/.submodules.json +29 -27
  9. package/modules/33acrossBidAdapter.js +23 -20
  10. package/modules/a4gBidAdapter.js +3 -3
  11. package/modules/ablidaBidAdapter.js +2 -2
  12. package/modules/adWMGBidAdapter.js +4 -4
  13. package/modules/adagioAnalyticsAdapter.js +4 -4
  14. package/modules/adagioBidAdapter.js +85 -82
  15. package/modules/adbookpspBidAdapter.js +56 -54
  16. package/modules/adfBidAdapter.js +24 -16
  17. package/modules/adgenerationBidAdapter.js +42 -18
  18. package/modules/adhashBidAdapter.js +105 -0
  19. package/modules/adhashBidAdapter.md +1 -1
  20. package/modules/adkernelAdnAnalyticsAdapter.js +6 -6
  21. package/modules/adkernelAdnBidAdapter.js +23 -23
  22. package/modules/adkernelBidAdapter.js +49 -44
  23. package/modules/adlooxAdServerVideo.js +26 -26
  24. package/modules/adlooxAnalyticsAdapter.js +38 -35
  25. package/modules/adlooxRtdProvider.js +49 -46
  26. package/modules/admanBidAdapter.js +4 -4
  27. package/modules/admixerBidAdapter.js +13 -2
  28. package/modules/admixerIdSystem.js +4 -4
  29. package/modules/adnowBidAdapter.js +4 -4
  30. package/modules/adnuntiusBidAdapter.js +6 -5
  31. package/modules/adoceanBidAdapter.js +10 -10
  32. package/modules/adpartnerBidAdapter.js +3 -3
  33. package/modules/adpod.js +45 -42
  34. package/modules/adprimeBidAdapter.js +4 -4
  35. package/modules/adqueryBidAdapter.js +204 -0
  36. package/modules/adqueryBidAdapter.md +32 -0
  37. package/modules/adrelevantisBidAdapter.js +30 -27
  38. package/modules/adriverBidAdapter.js +13 -13
  39. package/modules/adtargetBidAdapter.js +24 -24
  40. package/modules/adtelligentBidAdapter.js +29 -29
  41. package/modules/adtrueBidAdapter.js +35 -35
  42. package/modules/aduptechBidAdapter.js +10 -10
  43. package/modules/advangelistsBidAdapter.js +14 -14
  44. package/modules/adxcgAnalyticsAdapter.js +5 -5
  45. package/modules/adxcgBidAdapter.js +56 -56
  46. package/modules/adxpremiumAnalyticsAdapter.js +17 -17
  47. package/modules/adyoulikeBidAdapter.js +11 -11
  48. package/modules/afpBidAdapter.js +166 -0
  49. package/modules/afpBidAdapter.md +348 -0
  50. package/modules/ajaBidAdapter.js +12 -12
  51. package/modules/akamaiDAPIdSystem.js +9 -9
  52. package/modules/aniviewBidAdapter.js +2 -2
  53. package/modules/aolBidAdapter.js +15 -14
  54. package/modules/apacdexBidAdapter.js +16 -16
  55. package/modules/appnexusBidAdapter.js +59 -59
  56. package/modules/apstreamBidAdapter.js +5 -5
  57. package/modules/asoBidAdapter.js +30 -30
  58. package/modules/astraoneBidAdapter.js +2 -2
  59. package/modules/atsAnalyticsAdapter.js +35 -30
  60. package/modules/audiencerunBidAdapter.js +15 -15
  61. package/modules/automatadBidAdapter.js +2 -2
  62. package/modules/axonixBidAdapter.js +7 -7
  63. package/modules/beachfrontBidAdapter.js +23 -23
  64. package/modules/beopBidAdapter.js +22 -22
  65. package/modules/bidViewabilityIO.js +7 -7
  66. package/modules/bidglassBidAdapter.js +8 -8
  67. package/modules/bidscubeBidAdapter.js +3 -3
  68. package/modules/bizzclickBidAdapter.js +10 -10
  69. package/modules/bliinkBidAdapter.js +58 -32
  70. package/modules/bliinkBidAdapter.md +29 -6
  71. package/modules/bluebillywigBidAdapter.js +30 -30
  72. package/modules/boldwinBidAdapter.js +4 -4
  73. package/modules/braveBidAdapter.js +5 -5
  74. package/modules/bridgewellBidAdapter.js +5 -5
  75. package/modules/brightMountainMediaBidAdapter.js +10 -10
  76. package/modules/brightcomBidAdapter.js +18 -18
  77. package/modules/britepoolIdSystem.js +7 -7
  78. package/modules/browsiRtdProvider.js +8 -8
  79. package/modules/bucksenseBidAdapter.js +9 -9
  80. package/modules/buzzoolaBidAdapter.js +4 -4
  81. package/modules/byDataAnalyticsAdapter.js +12 -12
  82. package/modules/ccxBidAdapter.js +38 -38
  83. package/modules/cleanmedianetBidAdapter.js +9 -9
  84. package/modules/clickforceBidAdapter.js +4 -4
  85. package/modules/cointrafficBidAdapter.js +4 -4
  86. package/modules/coinzillaBidAdapter.js +2 -2
  87. package/modules/colossussspBidAdapter.js +7 -3
  88. package/modules/concertAnalyticsAdapter.js +3 -3
  89. package/modules/concertBidAdapter.js +16 -17
  90. package/modules/connectadBidAdapter.js +13 -13
  91. package/modules/consentManagement.js +29 -28
  92. package/modules/consentManagementUsp.js +14 -14
  93. package/modules/consumableBidAdapter.js +3 -3
  94. package/modules/contentexchangeBidAdapter.js +5 -5
  95. package/modules/conversantBidAdapter.js +32 -31
  96. package/modules/cpmstarBidAdapter.js +8 -9
  97. package/modules/craftBidAdapter.js +10 -10
  98. package/modules/criteoBidAdapter.js +16 -16
  99. package/modules/criteoIdSystem.js +5 -5
  100. package/modules/currency.js +18 -18
  101. package/modules/cwireBidAdapter.js +272 -0
  102. package/modules/cwireBidAdapter.md +43 -0
  103. package/modules/datablocksBidAdapter.js +12 -12
  104. package/modules/deepintentBidAdapter.js +13 -13
  105. package/modules/dgkeywordRtdProvider.js +10 -11
  106. package/modules/districtmDMXBidAdapter.js +15 -15
  107. package/modules/dmdIdSystem.js +5 -5
  108. package/modules/docereeBidAdapter.js +9 -9
  109. package/modules/dspxBidAdapter.js +5 -5
  110. package/modules/ebdrBidAdapter.js +9 -9
  111. package/modules/emx_digitalBidAdapter.js +23 -23
  112. package/modules/enrichmentFpdModule.js +10 -9
  113. package/modules/eplanningAnalyticsAdapter.js +2 -2
  114. package/modules/eplanningBidAdapter.js +10 -10
  115. package/modules/etargetBidAdapter.js +4 -4
  116. package/modules/express.js +9 -10
  117. package/modules/fabrickIdSystem.js +6 -6
  118. package/modules/feedadBidAdapter.js +5 -5
  119. package/modules/fintezaAnalyticsAdapter.js +4 -4
  120. package/modules/flocIdSystem.js +5 -5
  121. package/modules/fluctBidAdapter.js +6 -5
  122. package/modules/freewheel-sspBidAdapter.js +6 -6
  123. package/modules/gamoshiBidAdapter.js +22 -22
  124. package/modules/gdprEnforcement.js +13 -14
  125. package/modules/getintentBidAdapter.js +3 -4
  126. package/modules/glimpseBidAdapter.js +160 -48
  127. package/modules/glimpseBidAdapter.md +11 -74
  128. package/modules/gmosspBidAdapter.js +17 -17
  129. package/modules/gnetBidAdapter.js +5 -5
  130. package/modules/googleAnalyticsAdapter.js +6 -6
  131. package/modules/gothamadsBidAdapter.js +9 -9
  132. package/modules/gptPreAuction.js +7 -7
  133. package/modules/gridBidAdapter.js +15 -16
  134. package/modules/gridNMBidAdapter.js +214 -63
  135. package/modules/growadvertisingBidAdapter.js +7 -8
  136. package/modules/gumgumBidAdapter.js +19 -13
  137. package/modules/h12mediaBidAdapter.js +12 -12
  138. package/modules/haloIdSystem.js +8 -8
  139. package/modules/hybridBidAdapter.js +7 -7
  140. package/modules/iasRtdProvider.js +79 -63
  141. package/modules/id5IdSystem.js +24 -24
  142. package/modules/idImportLibrary.js +35 -35
  143. package/modules/idxIdSystem.js +3 -3
  144. package/modules/impactifyBidAdapter.js +10 -10
  145. package/modules/improvedigitalBidAdapter.js +36 -36
  146. package/modules/imuIdSystem.js +6 -6
  147. package/modules/inmarBidAdapter.js +2 -2
  148. package/modules/innityBidAdapter.js +3 -3
  149. package/modules/inskinBidAdapter.js +14 -2
  150. package/modules/inskinBidAdapter.md +5 -4
  151. package/modules/instreamTracking.js +5 -5
  152. package/modules/integr8BidAdapter.js +4 -4
  153. package/modules/intentIqIdSystem.js +7 -7
  154. package/modules/interactiveOffersBidAdapter.js +5 -5
  155. package/modules/invibesBidAdapter.js +53 -19
  156. package/modules/invisiblyAnalyticsAdapter.js +5 -5
  157. package/modules/iqmBidAdapter.js +19 -19
  158. package/modules/iqzoneBidAdapter.js +5 -5
  159. package/modules/ixBidAdapter.js +73 -73
  160. package/modules/jixieBidAdapter.js +6 -6
  161. package/modules/justpremiumBidAdapter.js +5 -1
  162. package/modules/kargoBidAdapter.js +16 -9
  163. package/modules/kargoBidAdapter.md +20 -0
  164. package/modules/kinessoIdSystem.js +8 -8
  165. package/modules/koblerBidAdapter.js +12 -12
  166. package/modules/konduitAnalyticsAdapter.js +4 -4
  167. package/modules/konduitWrapper.js +14 -14
  168. package/modules/krushmediaBidAdapter.js +4 -4
  169. package/modules/kubientBidAdapter.js +5 -5
  170. package/modules/limelightDigitalBidAdapter.js +4 -4
  171. package/modules/liveIntentIdSystem.js +4 -5
  172. package/modules/livewrappedAnalyticsAdapter.js +27 -15
  173. package/modules/livewrappedBidAdapter.js +7 -7
  174. package/modules/liveyieldAnalyticsAdapter.js +13 -13
  175. package/modules/lockerdomeBidAdapter.js +2 -2
  176. package/modules/loganBidAdapter.js +4 -4
  177. package/modules/lotamePanoramaIdSystem.js +13 -13
  178. package/modules/lunamediahbBidAdapter.js +2 -2
  179. package/modules/madvertiseBidAdapter.js +3 -3
  180. package/modules/marsmediaBidAdapter.js +26 -26
  181. package/modules/mathildeadsBidAdapter.js +5 -5
  182. package/modules/mediaforceBidAdapter.js +11 -11
  183. package/modules/mediakeysBidAdapter.js +444 -53
  184. package/modules/mediakeysBidAdapter.md +108 -0
  185. package/modules/medianetAnalyticsAdapter.js +48 -125
  186. package/modules/medianetBidAdapter.js +38 -33
  187. package/modules/medianetRtdProvider.js +7 -7
  188. package/modules/merkleIdSystem.js +19 -19
  189. package/modules/mgidBidAdapter.js +50 -50
  190. package/modules/microadBidAdapter.js +3 -3
  191. package/modules/multibid/index.js +15 -13
  192. package/modules/mwOpenLinkIdSystem.js +7 -7
  193. package/modules/mytargetBidAdapter.js +112 -0
  194. package/modules/nativoBidAdapter.js +46 -31
  195. package/modules/nativoBidAdapter.md +0 -1
  196. package/modules/naveggIdSystem.js +3 -3
  197. package/modules/nextMillenniumBidAdapter.js +6 -6
  198. package/modules/nextrollBidAdapter.js +375 -0
  199. package/modules/nobidBidAdapter.js +12 -11
  200. package/modules/novatiqIdSystem.js +8 -8
  201. package/modules/oguryBidAdapter.js +22 -6
  202. package/modules/oneVideoBidAdapter.js +20 -20
  203. package/modules/onomagicBidAdapter.js +16 -16
  204. package/modules/ooloAnalyticsAdapter.js +13 -13
  205. package/modules/openwebBidAdapter.js +26 -26
  206. package/modules/openxAnalyticsAdapter.js +33 -33
  207. package/modules/openxBidAdapter.js +29 -29
  208. package/modules/operaadsBidAdapter.js +53 -53
  209. package/modules/optimeraRtdProvider.js +9 -9
  210. package/modules/optoutBidAdapter.js +3 -3
  211. package/modules/orbidderBidAdapter.js +3 -3
  212. package/modules/outbrainBidAdapter.js +13 -13
  213. package/modules/ozoneBidAdapter.js +131 -131
  214. package/modules/padsquadBidAdapter.js +4 -4
  215. package/modules/parrableIdSystem.js +17 -17
  216. package/modules/pixfutureBidAdapter.js +45 -25
  217. package/modules/pixfutureBidAdapter.md +127 -0
  218. package/modules/prebidServerBidAdapter/index.js +109 -105
  219. package/modules/prebidmanagerAnalyticsAdapter.js +7 -7
  220. package/modules/priceFloors.js +47 -47
  221. package/modules/proxistoreBidAdapter.js +6 -8
  222. package/modules/pubCommonId.js +11 -11
  223. package/modules/pubProvidedIdSystem.js +3 -3
  224. package/modules/publinkIdSystem.js +23 -7
  225. package/modules/publinkIdSystem.md +7 -2
  226. package/modules/pubmaticAnalyticsAdapter.js +16 -16
  227. package/modules/pubmaticBidAdapter.js +109 -93
  228. package/modules/pubmaticBidAdapter.md +1 -1
  229. package/modules/pubperfAnalyticsAdapter.js +3 -3
  230. package/modules/pubwiseAnalyticsAdapter.js +6 -6
  231. package/modules/pubwiseBidAdapter.js +23 -23
  232. package/modules/pubxBidAdapter.js +2 -2
  233. package/modules/pubxaiAnalyticsAdapter.js +7 -7
  234. package/modules/pulsepointBidAdapter.js +13 -13
  235. package/modules/pxyzBidAdapter.js +7 -7
  236. package/modules/quantcastBidAdapter.js +16 -16
  237. package/modules/radsBidAdapter.js +5 -5
  238. package/modules/realvuAnalyticsAdapter.js +5 -7
  239. package/modules/reconciliationRtdProvider.js +6 -6
  240. package/modules/relaidoBidAdapter.js +44 -38
  241. package/modules/resetdigitalBidAdapter.js +3 -4
  242. package/modules/revcontentBidAdapter.js +9 -9
  243. package/modules/rhythmoneBidAdapter.js +17 -16
  244. package/modules/richaudienceBidAdapter.js +9 -9
  245. package/modules/riseBidAdapter.js +26 -26
  246. package/modules/riseBidAdapter.md +1 -3
  247. package/modules/roxotAnalyticsAdapter.js +14 -14
  248. package/modules/rtbhouseBidAdapter.js +7 -7
  249. package/modules/rtbsapeBidAdapter.js +3 -4
  250. package/modules/rtdModule/index.js +3 -3
  251. package/modules/rubiconAnalyticsAdapter.js +82 -82
  252. package/modules/rubiconBidAdapter.js +72 -68
  253. package/modules/scaleableAnalyticsAdapter.js +2 -2
  254. package/modules/seedingAllianceBidAdapter.js +231 -0
  255. package/modules/seedtagBidAdapter.js +10 -10
  256. package/modules/sharedIdSystem.js +11 -11
  257. package/modules/sharethroughAnalyticsAdapter.js +8 -8
  258. package/modules/sharethroughBidAdapter.js +20 -27
  259. package/modules/showheroes-bsBidAdapter.js +23 -23
  260. package/modules/sigmoidAnalyticsAdapter.js +4 -5
  261. package/modules/sirdataRtdProvider.js +34 -34
  262. package/modules/sizeMappingV2.js +39 -39
  263. package/modules/slimcutBidAdapter.js +121 -0
  264. package/modules/smaatoBidAdapter.js +44 -44
  265. package/modules/smartadserverBidAdapter.js +7 -7
  266. package/modules/smartxBidAdapter.js +72 -72
  267. package/modules/smartyadsBidAdapter.js +2 -2
  268. package/modules/smilewantedBidAdapter.js +6 -6
  269. package/modules/sonobiAnalyticsAdapter.js +23 -23
  270. package/modules/sortableAnalyticsAdapter.js +5 -5
  271. package/modules/sortableBidAdapter.js +28 -28
  272. package/modules/sovrnAnalyticsAdapter.js +5 -5
  273. package/modules/sovrnBidAdapter.js +22 -22
  274. package/modules/spotxBidAdapter.js +97 -83
  275. package/modules/sspBCBidAdapter.js +216 -21
  276. package/modules/sspBCBidAdapter.md +1 -1
  277. package/modules/staqAnalyticsAdapter.js +9 -9
  278. package/modules/stroeerCoreBidAdapter.js +16 -16
  279. package/modules/sublimeBidAdapter.js +6 -6
  280. package/modules/talkadsBidAdapter.js +129 -0
  281. package/modules/talkadsBidAdapter.md +60 -0
  282. package/modules/tapadIdSystem.js +3 -3
  283. package/modules/tappxBidAdapter.js +63 -64
  284. package/modules/teadsBidAdapter.js +20 -20
  285. package/modules/telariaBidAdapter.js +17 -17
  286. package/modules/temedyaBidAdapter.js +4 -4
  287. package/modules/terceptAnalyticsAdapter.js +4 -4
  288. package/modules/theAdxBidAdapter.js +16 -16
  289. package/modules/timeoutRtdProvider.js +15 -15
  290. package/modules/tpmnBidAdapter.js +3 -3
  291. package/modules/trionBidAdapter.js +15 -15
  292. package/modules/tripleliftBidAdapter.js +27 -24
  293. package/modules/truereachBidAdapter.js +4 -4
  294. package/modules/trustxBidAdapter.js +22 -18
  295. package/modules/ucfunnelBidAdapter.js +3 -3
  296. package/modules/uid2IdSystem.js +6 -6
  297. package/modules/underdogmediaBidAdapter.js +4 -4
  298. package/modules/unicornBidAdapter.js +15 -15
  299. package/modules/unifiedIdSystem.js +4 -4
  300. package/modules/unrulyBidAdapter.js +16 -16
  301. package/modules/userId/eids.js +9 -9
  302. package/modules/userId/index.js +37 -35
  303. package/modules/validationFpdModule/index.js +15 -15
  304. package/modules/vdoaiBidAdapter.js +2 -2
  305. package/modules/verizonMediaIdSystem.js +5 -5
  306. package/modules/vidazooBidAdapter.js +5 -5
  307. package/modules/videobyteBidAdapter.js +24 -24
  308. package/modules/videoreachBidAdapter.js +7 -7
  309. package/modules/vidoomyBidAdapter.js +105 -22
  310. package/modules/viewdeosDXBidAdapter.js +17 -17
  311. package/modules/visxBidAdapter.js +21 -29
  312. package/modules/voxBidAdapter.js +7 -7
  313. package/modules/vuukleBidAdapter.js +2 -2
  314. package/modules/waardexBidAdapter.js +26 -26
  315. package/modules/weboramaRtdProvider.js +174 -0
  316. package/modules/weboramaRtdProvider.md +70 -0
  317. package/modules/winrBidAdapter.js +27 -27
  318. package/modules/wipesBidAdapter.js +2 -2
  319. package/modules/yahoosspBidAdapter.js +637 -0
  320. package/modules/yahoosspBidAdapter.md +795 -0
  321. package/modules/yieldlabBidAdapter.js +57 -12
  322. package/modules/yieldlabBidAdapter.md +16 -1
  323. package/modules/yieldliftBidAdapter.js +9 -9
  324. package/modules/yieldmoBidAdapter.js +64 -50
  325. package/modules/yieldoneAnalyticsAdapter.js +6 -6
  326. package/modules/yieldoneBidAdapter.js +11 -11
  327. package/modules/yuktamediaAnalyticsAdapter.js +15 -15
  328. package/modules/zeotapIdPlusIdSystem.js +2 -2
  329. package/modules/zetaBidAdapter.js +6 -6
  330. package/modules/zeta_global_sspBidAdapter.js +14 -14
  331. package/package.json +1 -1
  332. package/src/AnalyticsAdapter.js +6 -6
  333. package/src/Renderer.js +10 -8
  334. package/src/adapterManager.js +45 -42
  335. package/src/adloader.js +6 -6
  336. package/src/ajax.js +8 -9
  337. package/src/auction.js +26 -23
  338. package/src/bidfactory.js +2 -2
  339. package/src/config.js +52 -50
  340. package/src/cpmBucketManager.js +2 -2
  341. package/src/prebid.js +85 -81
  342. package/src/storageManager.js +5 -5
  343. package/src/targeting.js +25 -26
  344. package/src/userSync.js +35 -22
  345. package/src/videoCache.js +2 -2
  346. package/test/.eslintrc.js +2 -1
  347. package/test/spec/modules/adfBidAdapter_spec.js +55 -0
  348. package/test/spec/modules/adgenerationBidAdapter_spec.js +121 -50
  349. package/test/spec/modules/adhashBidAdapter_spec.js +155 -0
  350. package/test/spec/modules/adnuntiusBidAdapter_spec.js +68 -0
  351. package/test/spec/modules/adqueryBidAdapter_spec.js +185 -0
  352. package/test/spec/modules/afpBidAdapter_spec.js +306 -0
  353. package/test/spec/modules/atsAnalyticsAdapter_spec.js +37 -2
  354. package/test/spec/modules/bliinkBidAdapter_spec.js +87 -36
  355. package/test/spec/modules/colossussspBidAdapter_spec.js +14 -6
  356. package/test/spec/modules/cwireBidAdapter_spec.js +246 -0
  357. package/test/spec/modules/eplanningBidAdapter_spec.js +3 -3
  358. package/test/spec/modules/glimpseBidAdapter_spec.js +302 -204
  359. package/test/spec/modules/gridBidAdapter_spec.js +38 -2
  360. package/test/spec/modules/gridNMBidAdapter_spec.js +121 -47
  361. package/test/spec/modules/gumgumBidAdapter_spec.js +27 -6
  362. package/test/spec/modules/iasRtdProvider_spec.js +71 -6
  363. package/test/spec/modules/inskinBidAdapter_spec.js +10 -1
  364. package/test/spec/modules/invibesBidAdapter_spec.js +114 -2
  365. package/test/spec/modules/justpremiumBidAdapter_spec.js +16 -2
  366. package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +33 -7
  367. package/test/spec/modules/mediakeysBidAdapter_spec.js +406 -51
  368. package/test/spec/modules/medianetAnalyticsAdapter_spec.js +39 -7
  369. package/test/spec/modules/medianetBidAdapter_spec.js +62 -1
  370. package/test/spec/modules/mytargetBidAdapter_spec.js +199 -0
  371. package/test/spec/modules/nativoBidAdapter_spec.js +50 -3
  372. package/test/spec/modules/nextrollBidAdapter_spec.js +290 -0
  373. package/test/spec/modules/nobidBidAdapter_spec.js +65 -1
  374. package/test/spec/modules/oguryBidAdapter_spec.js +120 -7
  375. package/test/spec/modules/publinkIdSystem_spec.js +42 -12
  376. package/test/spec/modules/pubmaticBidAdapter_spec.js +217 -1
  377. package/test/spec/modules/relaidoBidAdapter_spec.js +21 -20
  378. package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +100 -81
  379. package/test/spec/modules/rubiconAnalyticsSchema.json +5 -2
  380. package/test/spec/modules/seedingAllianceAdapter_spec.js +186 -0
  381. package/test/spec/modules/sharethroughBidAdapter_spec.js +156 -136
  382. package/test/spec/modules/slimcutBidAdapter_spec.js +200 -0
  383. package/test/spec/modules/spotxBidAdapter_spec.js +36 -0
  384. package/test/spec/modules/sspBCBidAdapter_spec.js +210 -62
  385. package/test/spec/modules/talkadsBidAdapter_spec.js +231 -0
  386. package/test/spec/modules/tappxBidAdapter_spec.js +39 -3
  387. package/test/spec/modules/tripleliftBidAdapter_spec.js +2 -0
  388. package/test/spec/modules/trustxBidAdapter_spec.js +35 -2
  389. package/test/spec/modules/unicornBidAdapter_spec.js +4 -4
  390. package/test/spec/modules/visxBidAdapter_spec.js +48 -4
  391. package/test/spec/modules/weboramaRtdProvider_spec.js +288 -0
  392. package/test/spec/modules/yahoosspBidAdapter_spec.js +1332 -0
  393. package/test/spec/modules/yieldlabBidAdapter_spec.js +65 -1
  394. package/test/spec/modules/yieldmoBidAdapter_spec.js +30 -9
  395. package/test/spec/unit/pbjs_api_spec.js +4 -0
  396. package/test/spec/userSync_spec.js +30 -2
  397. package/modules/turktelekomBidAdapter.md +0 -49
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { isArray, logError, logWarn, isFn, isPlainObject } from '../src/utils.js';
2
2
  import { Renderer } from '../src/Renderer.js';
3
3
  import { config } from '../src/config.js';
4
4
  import { registerBidder } from '../src/adapters/bidderFactory.js';
@@ -108,13 +108,13 @@ export const spec = {
108
108
  }
109
109
 
110
110
  bidResponse.meta = {};
111
- if (response.meta && response.meta.advertiserDomains && utils.isArray(response.meta.advertiserDomains)) {
111
+ if (response.meta && response.meta.advertiserDomains && isArray(response.meta.advertiserDomains)) {
112
112
  bidResponse.meta.advertiserDomains = response.meta.advertiserDomains;
113
113
  }
114
114
  bidResponses.push(bidResponse);
115
115
  }
116
116
  } catch (error) {
117
- utils.logError('Error while parsing smilewanted response', error);
117
+ logError('Error while parsing smilewanted response', error);
118
118
  }
119
119
  return bidResponses;
120
120
  },
@@ -170,7 +170,7 @@ function newRenderer(bidRequest, bidResponse) {
170
170
  try {
171
171
  renderer.setRender(outstreamRender);
172
172
  } catch (err) {
173
- utils.logWarn('Prebid Error calling setRender on newRenderer', err);
173
+ logWarn('Prebid Error calling setRender on newRenderer', err);
174
174
  }
175
175
  return renderer;
176
176
  }
@@ -197,13 +197,13 @@ function outstreamRender(bid) {
197
197
  * @returns {*|number} floor price
198
198
  */
199
199
  function getBidFloor(bid) {
200
- if (utils.isFn(bid.getFloor)) {
200
+ if (isFn(bid.getFloor)) {
201
201
  const floorInfo = bid.getFloor({
202
202
  currency: 'USD',
203
203
  mediaType: 'banner',
204
204
  size: bid.sizes.map(size => ({ w: size[0], h: size[1] }))
205
205
  });
206
- if (utils.isPlainObject(floorInfo) && !isNaN(floorInfo.floor) && floorInfo.currency === 'USD') {
206
+ if (isPlainObject(floorInfo) && !isNaN(floorInfo.floor) && floorInfo.currency === 'USD') {
207
207
  return parseFloat(floorInfo.floor);
208
208
  }
209
209
  }
@@ -1,9 +1,9 @@
1
+ import { deepClone, logInfo, logError } from '../src/utils.js';
1
2
  import adapter from '../src/AnalyticsAdapter.js';
2
3
  import CONSTANTS from '../src/constants.json';
3
4
  import adapterManager from '../src/adapterManager.js';
4
5
  import {ajaxBuilder} from '../src/ajax.js';
5
6
 
6
- const utils = require('../src/utils.js');
7
7
  let ajax = ajaxBuilder(0);
8
8
 
9
9
  const DEFAULT_EVENT_URL = 'apex.go.sonobi.com/keymaker';
@@ -91,7 +91,7 @@ function addToAuctionQueue(auctionId, id) {
91
91
  if (item.bidid !== id) { return true; }
92
92
  return auction.stats[id].data.p !== item.p;
93
93
  });
94
- auction.queue.push(utils.deepClone(auction.stats[id].data));
94
+ auction.queue.push(deepClone(auction.stats[id].data));
95
95
  if (!auction.qTimeout) {
96
96
  auction.qTimeout = setTimeout(() => {
97
97
  sendQueue(auctionId);
@@ -102,18 +102,18 @@ function updateBidStats(auctionId, id, data) {
102
102
  let auction = auctionCache[auctionId];
103
103
  auction.stats[id].data = {...auction.stats[id].data, ...data};
104
104
  addToAuctionQueue(auctionId, id);
105
- logInfo('Updated Bid Stats: ', auction.stats[id]);
105
+ _logInfo('Updated Bid Stats: ', auction.stats[id]);
106
106
  return auction.stats[id];
107
107
  }
108
108
 
109
109
  function handleOtherEvents(eventType, args) {
110
- logInfo('Other Event: ' + eventType, args);
110
+ _logInfo('Other Event: ' + eventType, args);
111
111
  }
112
112
 
113
113
  function handlerAuctionInit(args) {
114
114
  auctionCache[args.auctionId] = buildAuctionEntity(args);
115
115
  deleteOldAuctions();
116
- logInfo('Auction Init', args);
116
+ _logInfo('Auction Init', args);
117
117
  }
118
118
  function handlerBidRequested(args) {
119
119
  let auction = auctionCache[args.auctionId];
@@ -127,14 +127,14 @@ function handlerBidRequested(args) {
127
127
  addToAuctionQueue(args.auctionId, built.bidid);
128
128
  })
129
129
 
130
- logInfo('Bids Requested ', data);
130
+ _logInfo('Bids Requested ', data);
131
131
  }
132
132
 
133
133
  function handlerBidAdjustment(args) {
134
- logInfo('Bid Adjustment', args);
134
+ _logInfo('Bid Adjustment', args);
135
135
  }
136
136
  function handlerBidderDone(args) {
137
- logInfo('Bidder Done', args);
137
+ _logInfo('Bidder Done', args);
138
138
  }
139
139
 
140
140
  function handlerAuctionEnd(args) {
@@ -152,24 +152,24 @@ function handlerAuctionEnd(args) {
152
152
  updateBidStats(args.auctionId, bidId, {response: 4});
153
153
  }
154
154
  })
155
- logInfo('Auction End', args);
156
- logInfo('Auction Cache', auctionCache[args.auctionId].stats);
155
+ _logInfo('Auction End', args);
156
+ _logInfo('Auction Cache', auctionCache[args.auctionId].stats);
157
157
  }
158
158
  function handlerBidWon(args) {
159
159
  let {auctionId, requestId} = args;
160
160
  let res = updateBidStats(auctionId, requestId, {p: 3, response: 6});
161
- logInfo('Bid Won ', args);
162
- logInfo('Bid Update Result: ', res);
161
+ _logInfo('Bid Won ', args);
162
+ _logInfo('Bid Update Result: ', res);
163
163
  }
164
164
  function handlerBidResponse(args) {
165
165
  let {auctionId, requestId, cpm, size, timeToRespond} = args;
166
166
  updateBidStats(auctionId, requestId, {bid: cpm, s: size, jsLatency: timeToRespond, latency: timeToRespond, p: 2, response: 9});
167
167
 
168
- logInfo('Bid Response ', args);
168
+ _logInfo('Bid Response ', args);
169
169
  }
170
170
  function handlerBidTimeout(args) {
171
171
  let {auctionId, bidId} = args;
172
- logInfo('Bid Timeout ', args);
172
+ _logInfo('Bid Timeout ', args);
173
173
  updateBidStats(auctionId, bidId, {p: 2, response: 0, latency: args.timeout, jsLatency: args.timeout});
174
174
  }
175
175
  let sonobiAdapter = Object.assign(adapter({url: DEFAULT_EVENT_URL, analyticsType}), {
@@ -211,7 +211,7 @@ sonobiAdapter.originEnableAnalytics = sonobiAdapter.enableAnalytics;
211
211
 
212
212
  sonobiAdapter.enableAnalytics = function (config) {
213
213
  if (this.initConfig(config)) {
214
- logInfo('Analytics adapter enabled', initOptions);
214
+ _logInfo('Analytics adapter enabled', initOptions);
215
215
  sonobiAdapter.originEnableAnalytics(config);
216
216
  }
217
217
  };
@@ -219,17 +219,17 @@ sonobiAdapter.enableAnalytics = function (config) {
219
219
  sonobiAdapter.initConfig = function (config) {
220
220
  let isCorrectConfig = true;
221
221
  initOptions = {};
222
- initOptions.options = utils.deepClone(config.options);
222
+ initOptions.options = deepClone(config.options);
223
223
 
224
224
  initOptions.pubId = initOptions.options.pubId || null;
225
225
  initOptions.siteId = initOptions.options.siteId || null;
226
226
  initOptions.delay = initOptions.options.delay || QUEUE_TIMEOUT_DEFAULT;
227
227
  if (!initOptions.pubId) {
228
- logError('"options.pubId" is empty');
228
+ _logError('"options.pubId" is empty');
229
229
  isCorrectConfig = false;
230
230
  }
231
231
  if (!initOptions.siteId) {
232
- logError('"options.siteId" is empty');
232
+ _logError('"options.siteId" is empty');
233
233
  isCorrectConfig = false;
234
234
  }
235
235
 
@@ -247,7 +247,7 @@ sonobiAdapter.sendData = function (auction, data) {
247
247
  let url = 'https://' + initOptions.server + '?pageviewid=' + auction.id + '&corscred=1&pubId=' + initOptions.pubId + '&siteId=' + initOptions.siteId;
248
248
  ajax(
249
249
  url,
250
- function () { logInfo('Auction [' + auction.id + '] sent ', data); },
250
+ function () { _logInfo('Auction [' + auction.id + '] sent ', data); },
251
251
  JSON.stringify(data),
252
252
  {
253
253
  method: 'POST',
@@ -257,12 +257,12 @@ sonobiAdapter.sendData = function (auction, data) {
257
257
  );
258
258
  }
259
259
 
260
- function logInfo(message, meta) {
261
- utils.logInfo(buildLogMessage(message), meta);
260
+ function _logInfo(message, meta) {
261
+ logInfo(buildLogMessage(message), meta);
262
262
  }
263
263
 
264
- function logError(message) {
265
- utils.logError(buildLogMessage(message));
264
+ function _logError(message) {
265
+ logError(buildLogMessage(message));
266
266
  }
267
267
 
268
268
  function buildLogMessage(message) {
@@ -1,7 +1,7 @@
1
+ import { logInfo, getParameterByName, getOldestHighestCpmBid } from '../src/utils.js';
1
2
  import adapter from '../src/AnalyticsAdapter.js';
2
3
  import CONSTANTS from '../src/constants.json';
3
4
  import adapterManager from '../src/adapterManager.js';
4
- import * as utils from '../src/utils.js';
5
5
  import {ajax} from '../src/ajax.js';
6
6
  import {getGlobal} from '../src/prebidGlobal.js';
7
7
  import { config } from '../src/config.js';
@@ -160,7 +160,7 @@ function getSessionParams() {
160
160
  sessionParams = paramsFromStorage && stillValid(paramsFromStorage) ? paramsFromStorage : null;
161
161
  }
162
162
  sessionParams = sessionParams || {'created': +new Date(), 'sessionId': generateRandomId()};
163
- const urlParams = UTM_PARAMS.map(utils.getParameterByName);
163
+ const urlParams = UTM_PARAMS.map(getParameterByName);
164
164
  if (UTM_PARAMS.every(key => !sessionParams[key])) {
165
165
  UTM_PARAMS.forEach((v, i) => sessionParams[v] = urlParams[i] || sessionParams[v]);
166
166
  sessionParams.created = +new Date();
@@ -318,7 +318,7 @@ function sendEvents(events) {
318
318
  'method': 'POST',
319
319
  'withCredentials': true
320
320
  };
321
- const onSend = () => utils.logInfo('Sortable Analytics data sent');
321
+ const onSend = () => logInfo('Sortable Analytics data sent');
322
322
  ajax(url, onSend, JSON.stringify(mergedEvents), options);
323
323
  }
324
324
 
@@ -444,7 +444,7 @@ function handleAuctionEnd(event) {
444
444
  const events = Object.keys(adUnits).map(adUnitCode => {
445
445
  const bidderKeys = Object.keys(auction.adUnits[adUnitCode].bids);
446
446
  const bids = bidderKeys.map(bidderCode => auction.adUnits[adUnitCode].bids[bidderCode]);
447
- const highestBid = bids.length ? bids.reduce(utils.getOldestHighestCpmBid) : null;
447
+ const highestBid = bids.length ? bids.reduce(getOldestHighestCpmBid) : null;
448
448
  return bidderKeys.map(bidderCode => {
449
449
  const bid = auction.adUnits[adUnitCode].bids[bidderCode];
450
450
  if (highestBid && highestBid.cpm) {
@@ -507,7 +507,7 @@ sortableAnalyticsAdapter.originEnableAnalytics = sortableAnalyticsAdapter.enable
507
507
 
508
508
  sortableAnalyticsAdapter.enableAnalytics = function (setupConfig) {
509
509
  if (this.initConfig(setupConfig)) {
510
- utils.logInfo('Sortable Analytics adapter enabled');
510
+ logInfo('Sortable Analytics adapter enabled');
511
511
  sortableAnalyticsAdapter.originEnableAnalytics(setupConfig);
512
512
  }
513
513
  };
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { _each, logError, isFn, isPlainObject, isNumber, isStr, deepAccess, parseUrl, _map, getUniqueIdentifierStr, createTrackPixelHtml } 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, NATIVE, VIDEO } from '../src/mediaTypes.js';
@@ -55,7 +55,7 @@ function buildNativeRequest(nativeMediaType) {
55
55
  assets.push(setAssetRequired(sponsoredBy, {data: {type: 1}}));
56
56
  }
57
57
 
58
- utils._each(assets, (asset, id) => asset.id = id);
58
+ _each(assets, (asset, id) => asset.id = id);
59
59
  return {
60
60
  ver: '1',
61
61
  request: JSON.stringify({
@@ -70,7 +70,7 @@ function tryParseNativeResponse(adm) {
70
70
  try {
71
71
  native = JSON.parse(adm);
72
72
  } catch (e) {
73
- utils.logError('Sortable bid adapter unable to parse native bid response:\n\n' + e);
73
+ logError('Sortable bid adapter unable to parse native bid response:\n\n' + e);
74
74
  }
75
75
  return native && native.native;
76
76
  }
@@ -92,7 +92,7 @@ function interpretNativeResponse(response) {
92
92
  if (response.link) {
93
93
  native.clickUrl = response.link.url;
94
94
  }
95
- utils._each(response.assets, asset => {
95
+ _each(response.assets, asset => {
96
96
  switch (asset.id) {
97
97
  case 1:
98
98
  native.title = asset.title.text;
@@ -118,9 +118,9 @@ function interpretNativeResponse(response) {
118
118
  }
119
119
 
120
120
  function transformSyncs(responses, type, syncs) {
121
- utils._each(responses, res => {
121
+ _each(responses, res => {
122
122
  if (res.body && res.body.ext && res.body.ext.sync_dsps && res.body.ext.sync_dsps.length) {
123
- utils._each(res.body.ext.sync_dsps, sync => {
123
+ _each(res.body.ext.sync_dsps, sync => {
124
124
  if (sync[0] === type && sync[1]) {
125
125
  syncs.push({type, url: sync[1]});
126
126
  }
@@ -130,7 +130,7 @@ function transformSyncs(responses, type, syncs) {
130
130
  }
131
131
 
132
132
  function getBidFloor(bid) {
133
- if (!utils.isFn(bid.getFloor)) {
133
+ if (!isFn(bid.getFloor)) {
134
134
  return bid.params.floor ? bid.params.floor : null;
135
135
  }
136
136
 
@@ -141,7 +141,7 @@ function getBidFloor(bid) {
141
141
  mediaType: '*',
142
142
  size: '*'
143
143
  });
144
- if (utils.isPlainObject(floor) && !isNaN(floor.floor) && floor.currency === 'USD') {
144
+ if (isPlainObject(floor) && !isNaN(floor.floor) && floor.currency === 'USD') {
145
145
  return floor.floor;
146
146
  }
147
147
  return null;
@@ -155,36 +155,36 @@ export const spec = {
155
155
  const sortableConfig = config.getConfig('sortable');
156
156
  const haveSiteId = (sortableConfig && !!sortableConfig.siteId) || bid.params.siteId;
157
157
  const floor = getBidFloor(bid);
158
- const validFloor = !floor || utils.isNumber(floor);
158
+ const validFloor = !floor || isNumber(floor);
159
159
  const validKeywords = !bid.params.keywords ||
160
- (utils.isPlainObject(bid.params.keywords) &&
160
+ (isPlainObject(bid.params.keywords) &&
161
161
  Object.keys(bid.params.keywords).every(key =>
162
- utils.isStr(key) && utils.isStr(bid.params.keywords[key])
162
+ isStr(key) && isStr(bid.params.keywords[key])
163
163
  ))
164
164
  const isBanner = !bid.mediaTypes || bid.mediaTypes[BANNER] || !(bid.mediaTypes[NATIVE] || bid.mediaTypes[VIDEO]);
165
- const bannerSizes = isBanner ? utils.deepAccess(bid, `mediaType.${BANNER}.sizes`) || bid.sizes : null;
165
+ const bannerSizes = isBanner ? deepAccess(bid, `mediaType.${BANNER}.sizes`) || bid.sizes : null;
166
166
  return !!(bid.params.tagId && haveSiteId && validFloor && validKeywords && (!isBanner ||
167
- (bannerSizes && bannerSizes.length > 0 && bannerSizes.every(sizeArr => sizeArr.length == 2 && sizeArr.every(num => utils.isNumber(num))))));
167
+ (bannerSizes && bannerSizes.length > 0 && bannerSizes.every(sizeArr => sizeArr.length == 2 && sizeArr.every(num => isNumber(num))))));
168
168
  },
169
169
 
170
170
  buildRequests: function(validBidReqs, bidderRequest) {
171
171
  const sortableConfig = config.getConfig('sortable') || {};
172
172
  const globalSiteId = sortableConfig.siteId;
173
- let loc = utils.parseUrl(bidderRequest.refererInfo.referer);
173
+ let loc = parseUrl(bidderRequest.refererInfo.referer);
174
174
 
175
- const sortableImps = utils._map(validBidReqs, bid => {
175
+ const sortableImps = _map(validBidReqs, bid => {
176
176
  const rv = {
177
177
  id: bid.bidId,
178
178
  tagid: bid.params.tagId,
179
179
  ext: {}
180
180
  };
181
- const bannerMediaType = utils.deepAccess(bid, `mediaTypes.${BANNER}`);
182
- const nativeMediaType = utils.deepAccess(bid, `mediaTypes.${NATIVE}`);
183
- const videoMediaType = utils.deepAccess(bid, `mediaTypes.${VIDEO}`);
181
+ const bannerMediaType = deepAccess(bid, `mediaTypes.${BANNER}`);
182
+ const nativeMediaType = deepAccess(bid, `mediaTypes.${NATIVE}`);
183
+ const videoMediaType = deepAccess(bid, `mediaTypes.${VIDEO}`);
184
184
  if (bannerMediaType || !(nativeMediaType || videoMediaType)) {
185
185
  const bannerSizes = (bannerMediaType && bannerMediaType.sizes) || bid.sizes;
186
186
  rv.banner = {
187
- format: utils._map(bannerSizes, ([width, height]) => ({w: width, h: height}))
187
+ format: _map(bannerSizes, ([width, height]) => ({w: width, h: height}))
188
188
  };
189
189
  }
190
190
  if (nativeMediaType) {
@@ -193,9 +193,9 @@ export const spec = {
193
193
  if (videoMediaType && videoMediaType.context === 'instream') {
194
194
  const video = {placement: 1};
195
195
  video.mimes = videoMediaType.mimes || [];
196
- video.minduration = utils.deepAccess(bid, 'params.video.minduration') || 10;
197
- video.maxduration = utils.deepAccess(bid, 'params.video.maxduration') || 60;
198
- const startDelay = utils.deepAccess(bid, 'params.video.startdelay');
196
+ video.minduration = deepAccess(bid, 'params.video.minduration') || 10;
197
+ video.maxduration = deepAccess(bid, 'params.video.maxduration') || 60;
198
+ const startDelay = deepAccess(bid, 'params.video.startdelay');
199
199
  if (startDelay != null) {
200
200
  video.startdelay = startDelay;
201
201
  }
@@ -223,7 +223,7 @@ export const spec = {
223
223
  rv.ext.keywords = bid.params.keywords;
224
224
  }
225
225
  if (bid.params.bidderParams) {
226
- utils._each(bid.params.bidderParams, (params, partner) => {
226
+ _each(bid.params.bidderParams, (params, partner) => {
227
227
  rv.ext[partner] = params;
228
228
  });
229
229
  }
@@ -233,7 +233,7 @@ export const spec = {
233
233
  const bidUserId = validBidReqs[0].userId;
234
234
  const eids = createEidsArray(bidUserId);
235
235
  const sortableBidReq = {
236
- id: utils.getUniqueIdentifierStr(),
236
+ id: getUniqueIdentifierStr(),
237
237
  imp: sortableImps,
238
238
  source: {
239
239
  ext: {
@@ -290,8 +290,8 @@ export const spec = {
290
290
  const { body: {id, seatbid} } = serverResponse;
291
291
  const sortableBids = [];
292
292
  if (id && seatbid) {
293
- utils._each(seatbid, seatbid => {
294
- utils._each(seatbid.bid, bid => {
293
+ _each(seatbid, seatbid => {
294
+ _each(seatbid.bid, bid => {
295
295
  const bidObj = {
296
296
  requestId: bid.impid,
297
297
  cpm: parseFloat(bid.price),
@@ -308,7 +308,7 @@ export const spec = {
308
308
  }
309
309
  };
310
310
  if (bid.adm) {
311
- const adFormat = utils.deepAccess(bid, 'ext.ad_format')
311
+ const adFormat = deepAccess(bid, 'ext.ad_format')
312
312
  if (adFormat === 'native') {
313
313
  let native = tryParseNativeResponse(bid.adm);
314
314
  if (!native) {
@@ -323,7 +323,7 @@ export const spec = {
323
323
  bidObj.mediaType = BANNER;
324
324
  bidObj.ad = bid.adm;
325
325
  if (bid.nurl) {
326
- bidObj.ad += utils.createTrackPixelHtml(decodeURIComponent(bid.nurl));
326
+ bidObj.ad += createTrackPixelHtml(decodeURIComponent(bid.nurl));
327
327
  }
328
328
  }
329
329
  } else if (bid.nurl) {
@@ -1,8 +1,8 @@
1
+ import { logError, timestamp } from '../src/utils.js';
1
2
  import adapter from '../src/AnalyticsAdapter.js'
2
3
  import adaptermanager from '../src/adapterManager.js'
3
4
  import CONSTANTS from '../src/constants.json'
4
5
  import {ajaxBuilder} from '../src/ajax.js'
5
- import * as utils from '../src/utils.js'
6
6
  import {config} from '../src/config.js'
7
7
  import find from 'core-js-pure/features/array/find.js'
8
8
  import includes from 'core-js-pure/features/array/includes.js'
@@ -112,7 +112,7 @@ sovrnAnalyticsAdapter.enableAnalytics = function (config) {
112
112
  if (config && config.options && (config.options.sovrnId || config.options.affiliateId)) {
113
113
  sovrnId = config.options.sovrnId || config.options.affiliateId;
114
114
  } else {
115
- utils.logError('Need Sovrn Id to log auction results. Please contact a Sovrn representative if you do not know your Sovrn Id.')
115
+ logError('Need Sovrn Id to log auction results. Please contact a Sovrn representative if you do not know your Sovrn Id.')
116
116
  return
117
117
  }
118
118
  sovrnAnalyticsAdapter.sovrnId = sovrnId;
@@ -149,7 +149,7 @@ class BidWinner {
149
149
  * Sends the auction to the the ingest server
150
150
  */
151
151
  send() {
152
- this.body.ts = utils.timestamp()
152
+ this.body.ts = timestamp()
153
153
  ajax(
154
154
  pbaUrl,
155
155
  null,
@@ -269,7 +269,7 @@ class AuctionData {
269
269
  Object.keys(maxBids).forEach(unit => {
270
270
  maxBids[unit].isAuctionWinner = true
271
271
  })
272
- this.auction.ts = utils.timestamp()
272
+ this.auction.ts = timestamp()
273
273
  ajax(
274
274
  pbaUrl,
275
275
  () => {
@@ -311,7 +311,7 @@ class LogError {
311
311
  if (ErrorEvent.data && this.error.data.ad) {
312
312
  delete this.error.data.ad
313
313
  }
314
- this.error.ts = utils.timestamp()
314
+ this.error.ts = timestamp()
315
315
  ajax(
316
316
  pbaUrl,
317
317
  null,
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js'
1
+ import { _each, getBidIdParameter, isArray, deepClone, parseUrl, getUniqueIdentifierStr, deepSetValue, logError, deepAccess } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js'
3
3
  import { BANNER } from '../src/mediaTypes.js'
4
4
  import { createEidsArray } from './userId/eids.js';
@@ -32,7 +32,7 @@ export const spec = {
32
32
  let tpid = []
33
33
  let criteoId;
34
34
 
35
- utils._each(bidReqs, function (bid) {
35
+ _each(bidReqs, function (bid) {
36
36
  if (!eids && bid.userId) {
37
37
  eids = createEidsArray(bid.userId)
38
38
  eids.forEach(function (id) {
@@ -48,18 +48,18 @@ export const spec = {
48
48
  if (bid.schain) {
49
49
  schain = schain || bid.schain
50
50
  }
51
- iv = iv || utils.getBidIdParameter('iv', bid.params)
51
+ iv = iv || getBidIdParameter('iv', bid.params)
52
52
 
53
53
  let bidSizes = (bid.mediaTypes && bid.mediaTypes.banner && bid.mediaTypes.banner.sizes) || bid.sizes
54
- bidSizes = ((utils.isArray(bidSizes) && utils.isArray(bidSizes[0])) ? bidSizes : [bidSizes])
55
- bidSizes = bidSizes.filter(size => utils.isArray(size))
54
+ bidSizes = ((isArray(bidSizes) && isArray(bidSizes[0])) ? bidSizes : [bidSizes])
55
+ bidSizes = bidSizes.filter(size => isArray(size))
56
56
  const processedSizes = bidSizes.map(size => ({w: parseInt(size[0], 10), h: parseInt(size[1], 10)}))
57
57
  const floorInfo = (bid.getFloor && typeof bid.getFloor === 'function') ? bid.getFloor({
58
58
  currency: 'USD',
59
59
  mediaType: 'banner',
60
60
  size: '*'
61
61
  }) : {}
62
- floorInfo.floor = floorInfo.floor || utils.getBidIdParameter('bidfloor', bid.params)
62
+ floorInfo.floor = floorInfo.floor || getBidIdParameter('bidfloor', bid.params)
63
63
 
64
64
  const imp = {
65
65
  adunitcode: bid.adUnitCode,
@@ -69,13 +69,13 @@ export const spec = {
69
69
  w: 1,
70
70
  h: 1,
71
71
  },
72
- tagid: String(utils.getBidIdParameter('tagid', bid.params)),
72
+ tagid: String(getBidIdParameter('tagid', bid.params)),
73
73
  bidfloor: floorInfo.floor
74
74
  }
75
75
 
76
- imp.ext = utils.getBidIdParameter('ext', bid.ortb2Imp) || undefined
76
+ imp.ext = getBidIdParameter('ext', bid.ortb2Imp) || undefined
77
77
 
78
- const segmentsString = utils.getBidIdParameter('segments', bid.params)
78
+ const segmentsString = getBidIdParameter('segments', bid.params)
79
79
  if (segmentsString) {
80
80
  imp.ext = imp.ext || {}
81
81
  imp.ext.deals = segmentsString.split(',').map(deal => deal.trim())
@@ -83,15 +83,15 @@ export const spec = {
83
83
  sovrnImps.push(imp)
84
84
  })
85
85
 
86
- const fpd = utils.deepClone(config.getConfig('ortb2'))
86
+ const fpd = deepClone(config.getConfig('ortb2'))
87
87
 
88
88
  const site = fpd.site || {}
89
89
  site.page = bidderRequest.refererInfo.referer
90
90
  // clever trick to get the domain
91
- site.domain = utils.parseUrl(site.page).hostname
91
+ site.domain = parseUrl(site.page).hostname
92
92
 
93
93
  const sovrnBidReq = {
94
- id: utils.getUniqueIdentifierStr(),
94
+ id: getUniqueIdentifierStr(),
95
95
  imp: sovrnImps,
96
96
  site: site,
97
97
  user: fpd.user || {}
@@ -106,18 +106,18 @@ export const spec = {
106
106
  }
107
107
 
108
108
  if (bidderRequest.gdprConsent) {
109
- utils.deepSetValue(sovrnBidReq, 'regs.ext.gdpr', +bidderRequest.gdprConsent.gdprApplies);
110
- utils.deepSetValue(sovrnBidReq, 'user.ext.consent', bidderRequest.gdprConsent.consentString)
109
+ deepSetValue(sovrnBidReq, 'regs.ext.gdpr', +bidderRequest.gdprConsent.gdprApplies);
110
+ deepSetValue(sovrnBidReq, 'user.ext.consent', bidderRequest.gdprConsent.consentString)
111
111
  }
112
112
  if (bidderRequest.uspConsent) {
113
- utils.deepSetValue(sovrnBidReq, 'regs.ext.us_privacy', bidderRequest.uspConsent);
113
+ deepSetValue(sovrnBidReq, 'regs.ext.us_privacy', bidderRequest.uspConsent);
114
114
  }
115
115
 
116
116
  if (eids) {
117
- utils.deepSetValue(sovrnBidReq, 'user.ext.eids', eids)
118
- utils.deepSetValue(sovrnBidReq, 'user.ext.tpid', tpid)
117
+ deepSetValue(sovrnBidReq, 'user.ext.eids', eids)
118
+ deepSetValue(sovrnBidReq, 'user.ext.tpid', tpid)
119
119
  if (criteoId) {
120
- utils.deepSetValue(sovrnBidReq, 'user.ext.prebid_criteoid', criteoId)
120
+ deepSetValue(sovrnBidReq, 'user.ext.prebid_criteoid', criteoId)
121
121
  }
122
122
  }
123
123
 
@@ -131,7 +131,7 @@ export const spec = {
131
131
  options: {contentType: 'text/plain'}
132
132
  }
133
133
  } catch (e) {
134
- utils.logError('Could not build bidrequest, error deatils:', e);
134
+ logError('Could not build bidrequest, error deatils:', e);
135
135
  }
136
136
  },
137
137
 
@@ -167,7 +167,7 @@ export const spec = {
167
167
  }
168
168
  return sovrnBidResponses
169
169
  } catch (e) {
170
- utils.logError('Could not intrepret bidresponse, error deatils:', e);
170
+ logError('Could not intrepret bidresponse, error deatils:', e);
171
171
  }
172
172
  },
173
173
 
@@ -176,7 +176,7 @@ export const spec = {
176
176
  const tracks = []
177
177
  if (serverResponses && serverResponses.length !== 0) {
178
178
  if (syncOptions.iframeEnabled) {
179
- const iidArr = serverResponses.filter(resp => utils.deepAccess(resp, 'body.ext.iid'))
179
+ const iidArr = serverResponses.filter(resp => deepAccess(resp, 'body.ext.iid'))
180
180
  .map(resp => resp.body.ext.iid);
181
181
  const params = [];
182
182
  if (gdprConsent && gdprConsent.gdprApplies && typeof gdprConsent.consentString === 'string') {
@@ -196,7 +196,7 @@ export const spec = {
196
196
  }
197
197
 
198
198
  if (syncOptions.pixelEnabled) {
199
- serverResponses.filter(resp => utils.deepAccess(resp, 'body.ext.sync.pixels'))
199
+ serverResponses.filter(resp => deepAccess(resp, 'body.ext.sync.pixels'))
200
200
  .reduce((acc, resp) => acc.concat(resp.body.ext.sync.pixels), [])
201
201
  .map(pixel => pixel.url)
202
202
  .forEach(url => tracks.push({ type: 'image', url }))