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
package/src/config.js CHANGED
@@ -16,13 +16,15 @@ import { isValidPriceConfig } from './cpmBucketManager.js';
16
16
  import find from 'core-js-pure/features/array/find.js';
17
17
  import includes from 'core-js-pure/features/array/includes.js';
18
18
  import Set from 'core-js-pure/features/set';
19
- import { mergeDeep, deepClone } from './utils.js';
19
+ import {
20
+ mergeDeep, deepClone, getParameterByName, isPlainObject, logMessage, logWarn, logError,
21
+ isArray, isStr, isBoolean, deepAccess, bind
22
+ } from './utils.js';
20
23
 
21
24
  const from = require('core-js-pure/features/array/from.js');
22
- const utils = require('./utils.js');
23
25
  const CONSTANTS = require('./constants.json');
24
26
 
25
- const DEFAULT_DEBUG = utils.getParameterByName(CONSTANTS.DEBUG_MODE).toUpperCase() === 'TRUE';
27
+ const DEFAULT_DEBUG = getParameterByName(CONSTANTS.DEBUG_MODE).toUpperCase() === 'TRUE';
26
28
  const DEFAULT_BIDDER_TIMEOUT = 3000;
27
29
  const DEFAULT_PUBLISHER_DOMAIN = window.location.origin;
28
30
  const DEFAULT_ENABLE_SEND_ALL_BIDS = true;
@@ -103,10 +105,10 @@ export function newConfig() {
103
105
  if (validatePriceGranularity(val)) {
104
106
  if (typeof val === 'string') {
105
107
  this._priceGranularity = (hasGranularity(val)) ? val : GRANULARITY_OPTIONS.MEDIUM;
106
- } else if (utils.isPlainObject(val)) {
108
+ } else if (isPlainObject(val)) {
107
109
  this._customPriceBucket = val;
108
110
  this._priceGranularity = GRANULARITY_OPTIONS.CUSTOM;
109
- utils.logMessage('Using custom price granularity');
111
+ logMessage('Using custom price granularity');
110
112
  }
111
113
  }
112
114
  },
@@ -133,12 +135,12 @@ export function newConfig() {
133
135
  if (validatePriceGranularity(val[item])) {
134
136
  if (typeof val === 'string') {
135
137
  aggregate[item] = (hasGranularity(val[item])) ? val[item] : this._priceGranularity;
136
- } else if (utils.isPlainObject(val)) {
138
+ } else if (isPlainObject(val)) {
137
139
  aggregate[item] = val[item];
138
- utils.logMessage(`Using custom price granularity for ${item}`);
140
+ logMessage(`Using custom price granularity for ${item}`);
139
141
  }
140
142
  } else {
141
- utils.logWarn(`Invalid price granularity for media type: ${item}`);
143
+ logWarn(`Invalid price granularity for media type: ${item}`);
142
144
  }
143
145
  return aggregate;
144
146
  }, {});
@@ -180,7 +182,7 @@ export function newConfig() {
180
182
  if (VALID_ORDERS[val]) {
181
183
  this._bidderSequence = val;
182
184
  } else {
183
- utils.logWarn(`Invalid order: ${val}. Bidder Sequence was not set.`);
185
+ logWarn(`Invalid order: ${val}. Bidder Sequence was not set.`);
184
186
  }
185
187
  },
186
188
 
@@ -242,16 +244,16 @@ export function newConfig() {
242
244
 
243
245
  function validatePriceGranularity(val) {
244
246
  if (!val) {
245
- utils.logError('Prebid Error: no value passed to `setPriceGranularity()`');
247
+ logError('Prebid Error: no value passed to `setPriceGranularity()`');
246
248
  return false;
247
249
  }
248
250
  if (typeof val === 'string') {
249
251
  if (!hasGranularity(val)) {
250
- utils.logWarn('Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.');
252
+ logWarn('Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.');
251
253
  }
252
- } else if (utils.isPlainObject(val)) {
254
+ } else if (isPlainObject(val)) {
253
255
  if (!isValidPriceConfig(val)) {
254
- utils.logError('Invalid custom price value passed to `setPriceGranularity()`');
256
+ logError('Invalid custom price value passed to `setPriceGranularity()`');
255
257
  return false;
256
258
  }
257
259
  }
@@ -259,27 +261,27 @@ export function newConfig() {
259
261
  }
260
262
 
261
263
  function validateauctionOptions(val) {
262
- if (!utils.isPlainObject(val)) {
263
- utils.logWarn('Auction Options must be an object')
264
+ if (!isPlainObject(val)) {
265
+ logWarn('Auction Options must be an object')
264
266
  return false
265
267
  }
266
268
 
267
269
  for (let k of Object.keys(val)) {
268
270
  if (k !== 'secondaryBidders' && k !== 'suppressStaleRender') {
269
- utils.logWarn(`Auction Options given an incorrect param: ${k}`)
271
+ logWarn(`Auction Options given an incorrect param: ${k}`)
270
272
  return false
271
273
  }
272
274
  if (k === 'secondaryBidders') {
273
- if (!utils.isArray(val[k])) {
274
- utils.logWarn(`Auction Options ${k} must be of type Array`);
275
+ if (!isArray(val[k])) {
276
+ logWarn(`Auction Options ${k} must be of type Array`);
275
277
  return false
276
- } else if (!val[k].every(utils.isStr)) {
277
- utils.logWarn(`Auction Options ${k} must be only string`);
278
+ } else if (!val[k].every(isStr)) {
279
+ logWarn(`Auction Options ${k} must be only string`);
278
280
  return false
279
281
  }
280
282
  } else if (k === 'suppressStaleRender') {
281
- if (!utils.isBoolean(val[k])) {
282
- utils.logWarn(`Auction Options ${k} must be of type boolean`);
283
+ if (!isBoolean(val[k])) {
284
+ logWarn(`Auction Options ${k} must be of type boolean`);
283
285
  return false;
284
286
  }
285
287
  }
@@ -293,7 +295,7 @@ export function newConfig() {
293
295
  * @private
294
296
  */
295
297
  function _getConfig() {
296
- if (currBidder && bidderConfig && utils.isPlainObject(bidderConfig[currBidder])) {
298
+ if (currBidder && bidderConfig && isPlainObject(bidderConfig[currBidder])) {
297
299
  let currBidderConfig = bidderConfig[currBidder];
298
300
  const configTopicSet = new Set(Object.keys(config).concat(Object.keys(currBidderConfig)));
299
301
 
@@ -303,7 +305,7 @@ export function newConfig() {
303
305
  } else if (typeof config[topic] === 'undefined') {
304
306
  memo[topic] = currBidderConfig[topic];
305
307
  } else {
306
- if (utils.isPlainObject(currBidderConfig[topic])) {
308
+ if (isPlainObject(currBidderConfig[topic])) {
307
309
  memo[topic] = mergeDeep({}, config[topic], currBidderConfig[topic]);
308
310
  } else {
309
311
  memo[topic] = currBidderConfig[topic];
@@ -329,7 +331,7 @@ export function newConfig() {
329
331
  if (args.length <= 1 && typeof args[0] !== 'function') {
330
332
  const option = args[0];
331
333
  const configClone = deepClone(_getConfig());
332
- return option ? utils.deepAccess(configClone, option) : configClone;
334
+ return option ? deepAccess(configClone, option) : configClone;
333
335
  }
334
336
 
335
337
  return subscribe(...args);
@@ -346,7 +348,7 @@ export function newConfig() {
346
348
  function getConfig(...args) {
347
349
  if (args.length <= 1 && typeof args[0] !== 'function') {
348
350
  const option = args[0];
349
- return option ? utils.deepAccess(_getConfig(), option) : _getConfig();
351
+ return option ? deepAccess(_getConfig(), option) : _getConfig();
350
352
  }
351
353
 
352
354
  return subscribe(...args);
@@ -371,9 +373,9 @@ export function newConfig() {
371
373
  let prop = (type === 'site') ? 'context' : type;
372
374
  duplicate[prop] = (prop === 'context' || prop === 'user') ? Object.keys(obj[type]).filter(key => key !== 'data').reduce((result, key) => {
373
375
  if (key === 'ext') {
374
- utils.mergeDeep(result, obj[type][key]);
376
+ mergeDeep(result, obj[type][key]);
375
377
  } else {
376
- utils.mergeDeep(result, {[key]: obj[type][key]});
378
+ mergeDeep(result, {[key]: obj[type][key]});
377
379
  }
378
380
 
379
381
  return result;
@@ -391,14 +393,14 @@ export function newConfig() {
391
393
 
392
394
  let duplicate = {};
393
395
 
394
- if (utils.deepAccess(obj, 'ext.data')) {
396
+ if (deepAccess(obj, 'ext.data')) {
395
397
  Object.keys(obj.ext.data).forEach((key) => {
396
398
  if (key === 'pbadslot') {
397
- utils.mergeDeep(duplicate, {context: {pbAdSlot: obj.ext.data[key]}});
399
+ mergeDeep(duplicate, {context: {pbAdSlot: obj.ext.data[key]}});
398
400
  } else if (key === 'adserver') {
399
- utils.mergeDeep(duplicate, {context: {adServer: obj.ext.data[key]}});
401
+ mergeDeep(duplicate, {context: {adServer: obj.ext.data[key]}});
400
402
  } else {
401
- utils.mergeDeep(duplicate, {context: {data: {[key]: obj.ext.data[key]}}});
403
+ mergeDeep(duplicate, {context: {data: {[key]: obj.ext.data[key]}}});
402
404
  }
403
405
  });
404
406
  }
@@ -416,9 +418,9 @@ export function newConfig() {
416
418
  let prop = (type === 'context') ? 'site' : type;
417
419
  duplicate[prop] = (prop === 'site' || prop === 'user') ? Object.keys(opt[type]).reduce((result, key) => {
418
420
  if (key === 'data') {
419
- utils.mergeDeep(result, {ext: {data: opt[type][key]}});
421
+ mergeDeep(result, {ext: {data: opt[type][key]}});
420
422
  } else {
421
- utils.mergeDeep(result, {[key]: opt[type][key]});
423
+ mergeDeep(result, {[key]: opt[type][key]});
422
424
  }
423
425
 
424
426
  return result;
@@ -438,14 +440,14 @@ export function newConfig() {
438
440
  Object.keys(opt).filter(prop => prop === 'context').forEach((type) => {
439
441
  Object.keys(opt[type]).forEach((key) => {
440
442
  if (key === 'data') {
441
- utils.mergeDeep(duplicate, {ext: {data: opt[type][key]}});
443
+ mergeDeep(duplicate, {ext: {data: opt[type][key]}});
442
444
  } else {
443
445
  if (typeof opt[type][key] === 'object' && !Array.isArray(opt[type][key])) {
444
446
  Object.keys(opt[type][key]).forEach(data => {
445
- utils.mergeDeep(duplicate, {ext: {data: {[key.toLowerCase()]: {[data.toLowerCase()]: opt[type][key][data]}}}});
447
+ mergeDeep(duplicate, {ext: {data: {[key.toLowerCase()]: {[data.toLowerCase()]: opt[type][key][data]}}}});
446
448
  });
447
449
  } else {
448
- utils.mergeDeep(duplicate, {ext: {data: {[key.toLowerCase()]: opt[type][key]}}});
450
+ mergeDeep(duplicate, {ext: {data: {[key.toLowerCase()]: opt[type][key]}}});
449
451
  }
450
452
  }
451
453
  });
@@ -462,7 +464,7 @@ export function newConfig() {
462
464
 
463
465
  arr.forEach((adunit) => {
464
466
  if (adunit.fpd) {
465
- (adunit['ortb2Imp']) ? utils.mergeDeep(adunit['ortb2Imp'], convertImpFpd(adunit.fpd)) : adunit['ortb2Imp'] = convertImpFpd(adunit.fpd);
467
+ (adunit['ortb2Imp']) ? mergeDeep(adunit['ortb2Imp'], convertImpFpd(adunit.fpd)) : adunit['ortb2Imp'] = convertImpFpd(adunit.fpd);
466
468
  convert.push((({ fpd, ...duplicate }) => duplicate)(adunit));
467
469
  } else {
468
470
  convert.push(adunit);
@@ -477,8 +479,8 @@ export function newConfig() {
477
479
  * listeners that were added by the `subscribe` function
478
480
  */
479
481
  function setConfig(options) {
480
- if (!utils.isPlainObject(options)) {
481
- utils.logError('setConfig options must be an object');
482
+ if (!isPlainObject(options)) {
483
+ logError('setConfig options must be an object');
482
484
  return;
483
485
  }
484
486
 
@@ -489,7 +491,7 @@ export function newConfig() {
489
491
  let prop = (topic === 'fpd') ? 'ortb2' : topic;
490
492
  let option = (topic === 'fpd') ? convertFpd(options[topic]) : options[topic];
491
493
 
492
- if (utils.isPlainObject(defaults[prop]) && utils.isPlainObject(option)) {
494
+ if (isPlainObject(defaults[prop]) && isPlainObject(option)) {
493
495
  option = Object.assign({}, defaults[prop], option);
494
496
  }
495
497
 
@@ -504,8 +506,8 @@ export function newConfig() {
504
506
  * @param {object} options
505
507
  */
506
508
  function setDefaults(options) {
507
- if (!utils.isPlainObject(defaults)) {
508
- utils.logError('defaults must be an object');
509
+ if (!isPlainObject(defaults)) {
510
+ logError('defaults must be an object');
509
511
  return;
510
512
  }
511
513
 
@@ -546,7 +548,7 @@ export function newConfig() {
546
548
  }
547
549
 
548
550
  if (typeof callback !== 'function') {
549
- utils.logError('listener must be a function');
551
+ logError('listener must be a function');
550
552
  return;
551
553
  }
552
554
 
@@ -589,7 +591,7 @@ export function newConfig() {
589
591
  let prop = (topic === 'fpd') ? 'ortb2' : topic;
590
592
  let option = (topic === 'fpd') ? convertFpd(config.config[topic]) : config.config[topic];
591
593
 
592
- if (utils.isPlainObject(option)) {
594
+ if (isPlainObject(option)) {
593
595
  bidderConfig[bidder][prop] = Object.assign({}, bidderConfig[bidder][prop] || {}, option);
594
596
  } else {
595
597
  bidderConfig[bidder][prop] = option;
@@ -597,16 +599,16 @@ export function newConfig() {
597
599
  });
598
600
  });
599
601
  } catch (e) {
600
- utils.logError(e);
602
+ logError(e);
601
603
  }
602
604
  function check(obj) {
603
- if (!utils.isPlainObject(obj)) {
605
+ if (!isPlainObject(obj)) {
604
606
  throw 'setBidderConfig bidder options must be an object';
605
607
  }
606
608
  if (!(Array.isArray(obj.bidders) && obj.bidders.length)) {
607
609
  throw 'setBidderConfig bidder options must contain a bidders list with at least 1 bidder';
608
610
  }
609
- if (!utils.isPlainObject(obj.config)) {
611
+ if (!isPlainObject(obj.config)) {
610
612
  throw 'setBidderConfig bidder options must contain a config object';
611
613
  }
612
614
  }
@@ -627,9 +629,9 @@ export function newConfig() {
627
629
  return function(cb) {
628
630
  return function(...args) {
629
631
  if (typeof cb === 'function') {
630
- return runWithBidder(bidder, utils.bind.call(cb, this, ...args))
632
+ return runWithBidder(bidder, bind.call(cb, this, ...args))
631
633
  } else {
632
- utils.logWarn('config.callbackWithBidder callback is not a function');
634
+ logWarn('config.callbackWithBidder callback is not a function');
633
635
  }
634
636
  }
635
637
  }
@@ -1,5 +1,5 @@
1
1
  import find from 'core-js-pure/features/array/find.js';
2
- const utils = require('./utils.js');
2
+ import { isEmpty } from './utils.js';
3
3
 
4
4
  const _defaultPrecision = 2;
5
5
  const _lgPriceConfig = {
@@ -102,7 +102,7 @@ function getCpmStringValue(cpm, config, granularityMultiplier) {
102
102
  }
103
103
 
104
104
  function isValidPriceConfig(config) {
105
- if (utils.isEmpty(config) || !config.buckets || !Array.isArray(config.buckets)) {
105
+ if (isEmpty(config) || !config.buckets || !Array.isArray(config.buckets)) {
106
106
  return false;
107
107
  }
108
108
  let isValid = true;