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
@@ -133,14 +133,16 @@
133
133
  import find from 'core-js-pure/features/array/find.js';
134
134
  import { config } from '../../src/config.js';
135
135
  import events from '../../src/events.js';
136
- import * as utils from '../../src/utils.js';
137
136
  import { getGlobal } from '../../src/prebidGlobal.js';
138
137
  import { gdprDataHandler } from '../../src/adapterManager.js';
139
138
  import CONSTANTS from '../../src/constants.json';
140
139
  import { module, hook } from '../../src/hook.js';
141
140
  import { createEidsArray, buildEidPermissions } from './eids.js';
142
141
  import { getCoreStorageManager } from '../../src/storageManager.js';
143
- import {getPrebidInternal} from '../../src/utils.js';
142
+ import {
143
+ getPrebidInternal, isPlainObject, logError, isArray, cyrb53Hash, deepAccess, timestamp, delayExecution, logInfo, isFn,
144
+ logWarn, isEmptyStr, isNumber
145
+ } from '../../src/utils.js';
144
146
  import includes from 'core-js-pure/features/array/includes.js';
145
147
 
146
148
  const MODULE_NAME = 'User ID';
@@ -199,7 +201,7 @@ export function setStoredValue(submodule, value) {
199
201
  const domainOverride = (typeof submodule.submodule.domainOverride === 'function') ? submodule.submodule.domainOverride() : null;
200
202
 
201
203
  try {
202
- const valueStr = utils.isPlainObject(value) ? JSON.stringify(value) : value;
204
+ const valueStr = isPlainObject(value) ? JSON.stringify(value) : value;
203
205
  const expiresStr = (new Date(Date.now() + (storage.expires * (60 * 60 * 24 * 1000)))).toUTCString();
204
206
  if (storage.type === COOKIE) {
205
207
  coreStorage.setCookie(storage.name, valueStr, expiresStr, 'Lax', domainOverride);
@@ -214,13 +216,13 @@ export function setStoredValue(submodule, value) {
214
216
  }
215
217
  }
216
218
  } catch (error) {
217
- utils.logError(error);
219
+ logError(error);
218
220
  }
219
221
  }
220
222
 
221
223
  function setPrebidServerEidPermissions(initializedSubmodules) {
222
224
  let setEidPermissions = getPrebidInternal().setEidPermissions;
223
- if (typeof setEidPermissions === 'function' && utils.isArray(initializedSubmodules)) {
225
+ if (typeof setEidPermissions === 'function' && isArray(initializedSubmodules)) {
224
226
  setEidPermissions(buildEidPermissions(initializedSubmodules));
225
227
  }
226
228
  }
@@ -253,7 +255,7 @@ function getStoredValue(storage, key = undefined) {
253
255
  storedValue = JSON.parse(storedValue);
254
256
  }
255
257
  } catch (e) {
256
- utils.logError(e);
258
+ logError(e);
257
259
  }
258
260
  return storedValue;
259
261
  }
@@ -278,7 +280,7 @@ function makeStoredConsentDataHash(consentData) {
278
280
  storedConsentData.apiVersion = consentData.apiVersion;
279
281
  }
280
282
 
281
- return utils.cyrb53Hash(JSON.stringify(storedConsentData));
283
+ return cyrb53Hash(JSON.stringify(storedConsentData));
282
284
  }
283
285
 
284
286
  /**
@@ -290,7 +292,7 @@ export function setStoredConsentData(consentData) {
290
292
  const expiresStr = (new Date(Date.now() + (CONSENT_DATA_COOKIE_STORAGE_CONFIG.expires * (60 * 60 * 24 * 1000)))).toUTCString();
291
293
  coreStorage.setCookie(CONSENT_DATA_COOKIE_STORAGE_CONFIG.name, makeStoredConsentDataHash(consentData), expiresStr, 'Lax');
292
294
  } catch (error) {
293
- utils.logError(error);
295
+ logError(error);
294
296
  }
295
297
  }
296
298
 
@@ -302,7 +304,7 @@ function getStoredConsentData() {
302
304
  try {
303
305
  return coreStorage.getCookie(CONSENT_DATA_COOKIE_STORAGE_CONFIG.name);
304
306
  } catch (e) {
305
- utils.logError(e);
307
+ logError(e);
306
308
  }
307
309
  }
308
310
 
@@ -332,10 +334,10 @@ function hasGDPRConsent(consentData) {
332
334
  if (!consentData.consentString) {
333
335
  return false;
334
336
  }
335
- if (consentData.apiVersion === 1 && utils.deepAccess(consentData, 'vendorData.purposeConsents.1') === false) {
337
+ if (consentData.apiVersion === 1 && deepAccess(consentData, 'vendorData.purposeConsents.1') === false) {
336
338
  return false;
337
339
  }
338
- if (consentData.apiVersion === 2 && utils.deepAccess(consentData, 'vendorData.purpose.consents.1') === false) {
340
+ if (consentData.apiVersion === 2 && deepAccess(consentData, 'vendorData.purpose.consents.1') === false) {
339
341
  return false;
340
342
  }
341
343
  }
@@ -363,7 +365,7 @@ export function findRootDomain(fullDomain = window.location.hostname) {
363
365
  const TEST_COOKIE_VALUE = 'writeable';
364
366
  do {
365
367
  rootDomain = domainParts.slice(startIndex).join('.');
366
- let expirationDate = new Date(utils.timestamp() + 10 * 1000).toUTCString();
368
+ let expirationDate = new Date(timestamp() + 10 * 1000).toUTCString();
367
369
 
368
370
  // Write a test cookie
369
371
  coreStorage.setCookie(
@@ -403,7 +405,7 @@ export function findRootDomain(fullDomain = window.location.hostname) {
403
405
  function processSubmoduleCallbacks(submodules, cb) {
404
406
  let done = () => {};
405
407
  if (cb) {
406
- done = utils.delayExecution(() => {
408
+ done = delayExecution(() => {
407
409
  clearTimeout(timeoutID);
408
410
  cb();
409
411
  }, submodules.length);
@@ -418,7 +420,7 @@ function processSubmoduleCallbacks(submodules, cb) {
418
420
  // cache decoded value (this is copied to every adUnit bid)
419
421
  submodule.idObj = submodule.submodule.decode(idObj, submodule.config);
420
422
  } else {
421
- utils.logInfo(`${MODULE_NAME}: ${submodule.submodule.name} - request id responded with an empty value`);
423
+ logInfo(`${MODULE_NAME}: ${submodule.submodule.name} - request id responded with an empty value`);
422
424
  }
423
425
  done();
424
426
  });
@@ -436,7 +438,7 @@ function getCombinedSubmoduleIds(submodules) {
436
438
  if (!Array.isArray(submodules) || !submodules.length) {
437
439
  return {};
438
440
  }
439
- const combinedSubmoduleIds = submodules.filter(i => utils.isPlainObject(i.idObj) && Object.keys(i.idObj).length).reduce((carry, i) => {
441
+ const combinedSubmoduleIds = submodules.filter(i => isPlainObject(i.idObj) && Object.keys(i.idObj).length).reduce((carry, i) => {
440
442
  Object.keys(i.idObj).forEach(key => {
441
443
  carry[key] = i.idObj[key];
442
444
  });
@@ -456,8 +458,8 @@ function getCombinedSubmoduleIdsForBidder(submodules, bidder) {
456
458
  return {};
457
459
  }
458
460
  return submodules
459
- .filter(i => !i.config.bidders || !utils.isArray(i.config.bidders) || includes(i.config.bidders, bidder))
460
- .filter(i => utils.isPlainObject(i.idObj) && Object.keys(i.idObj).length)
461
+ .filter(i => !i.config.bidders || !isArray(i.config.bidders) || includes(i.config.bidders, bidder))
462
+ .filter(i => isPlainObject(i.idObj) && Object.keys(i.idObj).length)
461
463
  .reduce((carry, i) => {
462
464
  Object.keys(i.idObj).forEach(key => {
463
465
  carry[key] = i.idObj[key];
@@ -475,7 +477,7 @@ function addIdDataToAdUnitBids(adUnits, submodules) {
475
477
  return;
476
478
  }
477
479
  adUnits.forEach(adUnit => {
478
- if (adUnit.bids && utils.isArray(adUnit.bids)) {
480
+ if (adUnit.bids && isArray(adUnit.bids)) {
479
481
  adUnit.bids.forEach(bid => {
480
482
  const combinedSubmoduleIds = getCombinedSubmoduleIdsForBidder(submodules, bid.bidder);
481
483
  if (Object.keys(combinedSubmoduleIds).length) {
@@ -500,7 +502,7 @@ function initializeSubmodulesAndExecuteCallbacks(continueAuction) {
500
502
  if (initializedSubmodules.length) {
501
503
  setPrebidServerEidPermissions(initializedSubmodules);
502
504
  // list of submodules that have callbacks that need to be executed
503
- const submodulesWithCallbacks = initializedSubmodules.filter(item => utils.isFn(item.callback));
505
+ const submodulesWithCallbacks = initializedSubmodules.filter(item => isFn(item.callback));
504
506
 
505
507
  if (submodulesWithCallbacks.length) {
506
508
  if (continueAuction && auctionDelay > 0) {
@@ -513,7 +515,7 @@ function initializeSubmodulesAndExecuteCallbacks(continueAuction) {
513
515
  continueAuction();
514
516
  }
515
517
  }
516
- utils.logInfo(`${MODULE_NAME} - auction delayed by ${auctionDelay} at most to fetch ids`);
518
+ logInfo(`${MODULE_NAME} - auction delayed by ${auctionDelay} at most to fetch ids`);
517
519
 
518
520
  timeoutID = setTimeout(continueCallback, auctionDelay);
519
521
  processSubmoduleCallbacks(submodulesWithCallbacks, continueCallback);
@@ -596,7 +598,7 @@ function refreshUserIds(options, callback) {
596
598
  // gdpr consent with purpose one is required, otherwise exit immediately
597
599
  let {userIdModules, hasValidated} = validateGdprEnforcement(submodules, consentData);
598
600
  if (!hasValidated && !hasGDPRConsent(consentData)) {
599
- utils.logWarn(`${MODULE_NAME} - gdpr permission not valid for local storage or cookies, exit module`);
601
+ logWarn(`${MODULE_NAME} - gdpr permission not valid for local storage or cookies, exit module`);
600
602
  return;
601
603
  }
602
604
 
@@ -611,7 +613,7 @@ function refreshUserIds(options, callback) {
611
613
  continue;
612
614
  }
613
615
 
614
- utils.logInfo(`${MODULE_NAME} - refreshing ${submodule.submodule.name}`);
616
+ logInfo(`${MODULE_NAME} - refreshing ${submodule.submodule.name}`);
615
617
  populateSubmoduleId(submodule, consentData, storedConsentData, true);
616
618
  updateInitializedSubmodules(submodule);
617
619
 
@@ -619,7 +621,7 @@ function refreshUserIds(options, callback) {
619
621
  setPrebidServerEidPermissions(initializedSubmodules);
620
622
  }
621
623
 
622
- if (utils.isFn(submodule.callback)) {
624
+ if (isFn(submodule.callback)) {
623
625
  callbackSubmodules.push(submodule);
624
626
  }
625
627
  }
@@ -663,7 +665,7 @@ function populateSubmoduleId(submodule, consentData, storedConsentData, forceRef
663
665
  response = submodule.submodule.extendId(submodule.config, consentData, storedId);
664
666
  }
665
667
 
666
- if (utils.isPlainObject(response)) {
668
+ if (isPlainObject(response)) {
667
669
  if (response.id) {
668
670
  // A getId/extendId result assumed to be valid user id data, which should be saved to users local storage or cookies
669
671
  setStoredValue(submodule, response.id);
@@ -685,7 +687,7 @@ function populateSubmoduleId(submodule, consentData, storedConsentData, forceRef
685
687
  submodule.idObj = submodule.config.value;
686
688
  } else {
687
689
  const response = submodule.submodule.getId(submodule.config, consentData, undefined);
688
- if (utils.isPlainObject(response)) {
690
+ if (isPlainObject(response)) {
689
691
  if (typeof response.callback === 'function') { submodule.callback = response.callback; }
690
692
  if (response.id) { submodule.idObj = submodule.submodule.decode(response.id, submodule.config); }
691
693
  }
@@ -701,7 +703,7 @@ function initSubmodules(submodules, consentData) {
701
703
  // gdpr consent with purpose one is required, otherwise exit immediately
702
704
  let { userIdModules, hasValidated } = validateGdprEnforcement(submodules, consentData);
703
705
  if (!hasValidated && !hasGDPRConsent(consentData)) {
704
- utils.logWarn(`${MODULE_NAME} - gdpr permission not valid for local storage or cookies, exit module`);
706
+ logWarn(`${MODULE_NAME} - gdpr permission not valid for local storage or cookies, exit module`);
705
707
  return [];
706
708
  }
707
709
 
@@ -746,17 +748,17 @@ function getValidSubmoduleConfigs(configRegistry, submoduleRegistry, activeStora
746
748
  }
747
749
  return configRegistry.reduce((carry, config) => {
748
750
  // every submodule config obj must contain a valid 'name'
749
- if (!config || utils.isEmptyStr(config.name)) {
751
+ if (!config || isEmptyStr(config.name)) {
750
752
  return carry;
751
753
  }
752
754
  // Validate storage config contains 'type' and 'name' properties with non-empty string values
753
755
  // 'type' must be a value currently enabled in the browser
754
756
  if (config.storage &&
755
- !utils.isEmptyStr(config.storage.type) &&
756
- !utils.isEmptyStr(config.storage.name) &&
757
+ !isEmptyStr(config.storage.type) &&
758
+ !isEmptyStr(config.storage.name) &&
757
759
  activeStorageTypes.indexOf(config.storage.type) !== -1) {
758
760
  carry.push(config);
759
- } else if (utils.isPlainObject(config.value)) {
761
+ } else if (isPlainObject(config.value)) {
760
762
  carry.push(config);
761
763
  } else if (!config.storage && !config.value) {
762
764
  carry.push(config);
@@ -793,7 +795,7 @@ function updateSubmodules() {
793
795
  if (!addedUserIdHook && submodules.length) {
794
796
  // priority value 40 will load after consentManagement with a priority of 50
795
797
  getGlobal().requestBids.before(requestBidsHook, 40);
796
- utils.logInfo(`${MODULE_NAME} - usersync config updated for ${submodules.length} submodules: `, submodules.map(a => a.submodule.name));
798
+ logInfo(`${MODULE_NAME} - usersync config updated for ${submodules.length} submodules: `, submodules.map(a => a.submodule.name));
797
799
  addedUserIdHook = true;
798
800
  }
799
801
  }
@@ -828,11 +830,11 @@ export function init(config) {
828
830
 
829
831
  // exit immediately if opt out cookie or local storage keys exists.
830
832
  if (validStorageTypes.indexOf(COOKIE) !== -1 && coreStorage.getCookie(PBJS_USER_ID_OPTOUT_NAME)) {
831
- utils.logInfo(`${MODULE_NAME} - opt-out cookie found, exit module`);
833
+ logInfo(`${MODULE_NAME} - opt-out cookie found, exit module`);
832
834
  return;
833
835
  }
834
836
  if (validStorageTypes.indexOf(LOCAL_STORAGE) !== -1 && coreStorage.getDataFromLocalStorage(PBJS_USER_ID_OPTOUT_NAME)) {
835
- utils.logInfo(`${MODULE_NAME} - opt-out localStorage found, exit module`);
837
+ logInfo(`${MODULE_NAME} - opt-out localStorage found, exit module`);
836
838
  return;
837
839
  }
838
840
 
@@ -842,8 +844,8 @@ export function init(config) {
842
844
  const userSync = conf.userSync;
843
845
  if (userSync && userSync.userIds) {
844
846
  configRegistry = userSync.userIds;
845
- syncDelay = utils.isNumber(userSync.syncDelay) ? userSync.syncDelay : DEFAULT_SYNC_DELAY;
846
- auctionDelay = utils.isNumber(userSync.auctionDelay) ? userSync.auctionDelay : NO_AUCTION_DELAY;
847
+ syncDelay = isNumber(userSync.syncDelay) ? userSync.syncDelay : DEFAULT_SYNC_DELAY;
848
+ auctionDelay = isNumber(userSync.auctionDelay) ? userSync.auctionDelay : NO_AUCTION_DELAY;
847
849
  updateSubmodules();
848
850
  }
849
851
  });
@@ -3,7 +3,7 @@
3
3
  * @module modules/firstPartyData
4
4
  */
5
5
  import { config } from '../../src/config.js';
6
- import * as utils from '../../src/utils.js';
6
+ import { isEmpty, isNumber, logWarn, deepAccess } from '../../src/utils.js';
7
7
  import { ORTB_MAP } from './config.js';
8
8
  import { submodule } from '../../src/hook.js';
9
9
  import { getStorageManager } from '../../src/storageManager.js';
@@ -19,9 +19,9 @@ let optout;
19
19
  function isEmptyData(data) {
20
20
  let check = true;
21
21
 
22
- if (typeof data === 'object' && !utils.isEmpty(data)) {
22
+ if (typeof data === 'object' && !isEmpty(data)) {
23
23
  check = false;
24
- } else if (typeof data !== 'object' && (utils.isNumber(data) || data)) {
24
+ } else if (typeof data !== 'object' && (isNumber(data) || data)) {
25
25
  check = false;
26
26
  }
27
27
 
@@ -42,7 +42,7 @@ function getRequiredData(obj, required, parent, i) {
42
42
  required.forEach(key => {
43
43
  if (!obj[key] || isEmptyData(obj[key])) {
44
44
  check = false;
45
- utils.logWarn(`Filtered ${parent}[] value at index ${i} in ortb2 data: missing required property ${key}`);
45
+ logWarn(`Filtered ${parent}[] value at index ${i} in ortb2 data: missing required property ${key}`);
46
46
  }
47
47
  });
48
48
 
@@ -91,17 +91,17 @@ export function filterArrayData(arr, child, path, parent) {
91
91
  return true;
92
92
  }
93
93
 
94
- utils.logWarn(`Filtered ${parent}[] value at index ${i} in ortb2 data: expected type ${child.type}`);
94
+ logWarn(`Filtered ${parent}[] value at index ${i} in ortb2 data: expected type ${child.type}`);
95
95
  }).filter((index, i) => {
96
96
  let requiredCheck = true;
97
- let mapping = utils.deepAccess(ORTB_MAP, path);
97
+ let mapping = deepAccess(ORTB_MAP, path);
98
98
 
99
99
  if (mapping && mapping.required) requiredCheck = getRequiredData(index, mapping.required, parent, i);
100
100
 
101
101
  if (requiredCheck) return true;
102
102
  }).reduce((result, value, i) => {
103
103
  let typeBool = false;
104
- let mapping = utils.deepAccess(ORTB_MAP, path);
104
+ let mapping = deepAccess(ORTB_MAP, path);
105
105
 
106
106
  switch (child.type) {
107
107
  case 'string':
@@ -126,7 +126,7 @@ export function filterArrayData(arr, child, path, parent) {
126
126
  break;
127
127
  }
128
128
 
129
- if (!typeBool) utils.logWarn(`Filtered ${parent}[] value at index ${i} in ortb2 data: expected type ${child.type}`);
129
+ if (!typeBool) logWarn(`Filtered ${parent}[] value at index ${i} in ortb2 data: expected type ${child.type}`);
130
130
 
131
131
  return result;
132
132
  }, []);
@@ -146,26 +146,26 @@ export function validateFpd(fpd, path = '', parent = '') {
146
146
 
147
147
  // Filter out imp property if exists
148
148
  let validObject = Object.assign({}, Object.keys(fpd).filter(key => {
149
- let mapping = utils.deepAccess(ORTB_MAP, path + key);
149
+ let mapping = deepAccess(ORTB_MAP, path + key);
150
150
 
151
151
  if (!mapping || !mapping.invalid) return key;
152
152
 
153
- utils.logWarn(`Filtered ${parent}${key} property in ortb2 data: invalid property`);
153
+ logWarn(`Filtered ${parent}${key} property in ortb2 data: invalid property`);
154
154
  }).filter(key => {
155
- let mapping = utils.deepAccess(ORTB_MAP, path + key);
155
+ let mapping = deepAccess(ORTB_MAP, path + key);
156
156
  // let typeBool = false;
157
157
  let typeBool = (mapping) ? typeValidation(fpd[key], {type: mapping.type, isArray: mapping.isArray}) : true;
158
158
 
159
159
  if (typeBool || !mapping) return key;
160
160
 
161
- utils.logWarn(`Filtered ${parent}${key} property in ortb2 data: expected type ${(mapping.isArray) ? 'array' : mapping.type}`);
161
+ logWarn(`Filtered ${parent}${key} property in ortb2 data: expected type ${(mapping.isArray) ? 'array' : mapping.type}`);
162
162
  }).reduce((result, key) => {
163
- let mapping = utils.deepAccess(ORTB_MAP, path + key);
163
+ let mapping = deepAccess(ORTB_MAP, path + key);
164
164
  let modified = {};
165
165
 
166
166
  if (mapping) {
167
167
  if (mapping.optoutApplies && optout) {
168
- utils.logWarn(`Filtered ${parent}${key} data: pubcid optout found`);
168
+ logWarn(`Filtered ${parent}${key} data: pubcid optout found`);
169
169
  return result;
170
170
  }
171
171
 
@@ -176,7 +176,7 @@ export function validateFpd(fpd, path = '', parent = '') {
176
176
 
177
177
  // Check if modified data has data and return
178
178
  (!isEmptyData(modified)) ? result[key] = modified
179
- : utils.logWarn(`Filtered ${parent}${key} property in ortb2 data: empty data found`);
179
+ : logWarn(`Filtered ${parent}${key} property in ortb2 data: empty data found`);
180
180
  } else {
181
181
  result[key] = fpd[key];
182
182
  }
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { getAdUnitSizes } from '../src/utils.js';
2
2
  import {config} from '../src/config.js';
3
3
  import {registerBidder} from '../src/adapters/bidderFactory.js';
4
4
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
@@ -32,7 +32,7 @@ export const spec = {
32
32
  }
33
33
 
34
34
  return validBidRequests.map(bidRequest => {
35
- const sizes = utils.getAdUnitSizes(bidRequest);
35
+ const sizes = getAdUnitSizes(bidRequest);
36
36
  const payload = {
37
37
  placementId: bidRequest.params.placementId,
38
38
  sizes: sizes,
@@ -7,7 +7,7 @@
7
7
 
8
8
  import {ajax} from '../src/ajax.js';
9
9
  import {submodule} from '../src/hook.js';
10
- import * as utils from '../src/utils.js';
10
+ import { logError, formatQS } from '../src/utils.js';
11
11
  import includes from 'core-js-pure/features/array/includes.js';
12
12
 
13
13
  const MODULE_NAME = 'verizonMediaId';
@@ -51,7 +51,7 @@ export const verizonMediaIdSubmodule = {
51
51
  const params = config.params || {};
52
52
  if (!params || typeof params.he !== 'string' ||
53
53
  (typeof params.pixelId === 'undefined' && typeof params.endpoint === 'undefined')) {
54
- utils.logError('The verizonMediaId submodule requires the \'he\' and \'pixelId\' parameters to be defined.');
54
+ logError('The verizonMediaId submodule requires the \'he\' and \'pixelId\' parameters to be defined.');
55
55
  return;
56
56
  }
57
57
 
@@ -75,18 +75,18 @@ export const verizonMediaIdSubmodule = {
75
75
  try {
76
76
  responseObj = JSON.parse(response);
77
77
  } catch (error) {
78
- utils.logError(error);
78
+ logError(error);
79
79
  }
80
80
  }
81
81
  callback(responseObj);
82
82
  },
83
83
  error: error => {
84
- utils.logError(`${MODULE_NAME}: ID fetch encountered an error`, error);
84
+ logError(`${MODULE_NAME}: ID fetch encountered an error`, error);
85
85
  callback();
86
86
  }
87
87
  };
88
88
  const endpoint = VMCID_ENDPOINT.replace(PLACEHOLDER, params.pixelId);
89
- let url = `${params.endpoint || endpoint}?${utils.formatQS(data)}`;
89
+ let url = `${params.endpoint || endpoint}?${formatQS(data)}`;
90
90
  verizonMediaIdSubmodule.getAjaxFn()(url, callbacks, null, {method: 'GET', withCredentials: true});
91
91
  };
92
92
  return {callback: resp};
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { _each, deepAccess, parseSizesInput } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
  import { BANNER } from '../src/mediaTypes.js';
4
4
  import { getStorageManager } from '../src/storageManager.js';
@@ -94,7 +94,7 @@ function buildRequest(bid, topWindowUrl, sizes, bidderRequest) {
94
94
  data: data
95
95
  };
96
96
 
97
- utils._each(ext, (value, key) => {
97
+ _each(ext, (value, key) => {
98
98
  dto.data['ext.' + key] = value;
99
99
  });
100
100
 
@@ -103,13 +103,13 @@ function buildRequest(bid, topWindowUrl, sizes, bidderRequest) {
103
103
 
104
104
  function appendUserIdsToRequestPayload(payloadRef, userIds) {
105
105
  let key;
106
- utils._each(userIds, (userId, idSystemProviderName) => {
106
+ _each(userIds, (userId, idSystemProviderName) => {
107
107
  if (SUPPORTED_ID_SYSTEMS[idSystemProviderName]) {
108
108
  key = `uid.${idSystemProviderName}`;
109
109
 
110
110
  switch (idSystemProviderName) {
111
111
  case 'digitrustid':
112
- payloadRef[key] = utils.deepAccess(userId, 'data.id');
112
+ payloadRef[key] = deepAccess(userId, 'data.id');
113
113
  break;
114
114
  case 'lipb':
115
115
  payloadRef[key] = userId.lipbid;
@@ -131,7 +131,7 @@ function buildRequests(validBidRequests, bidderRequest) {
131
131
  const topWindowUrl = bidderRequest.refererInfo.referer;
132
132
  const requests = [];
133
133
  validBidRequests.forEach(validBidRequest => {
134
- const sizes = utils.parseSizesInput(validBidRequest.sizes);
134
+ const sizes = parseSizesInput(validBidRequest.sizes);
135
135
  const request = buildRequest(validBidRequest, topWindowUrl, sizes, bidderRequest);
136
136
  requests.push(request);
137
137
  });
@@ -1,5 +1,5 @@
1
+ import { logMessage, logError, deepAccess, isFn, isPlainObject, isStr, isNumber, isArray, deepSetValue } from '../src/utils.js';
1
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
2
- import * as utils from '../src/utils.js';
3
3
  import {VIDEO} from '../src/mediaTypes.js';
4
4
 
5
5
  const BIDDER_CODE = 'videobyte';
@@ -54,7 +54,7 @@ export const spec = {
54
54
  const {params} = bidRequest;
55
55
  let pubId = params.pubId;
56
56
  if (bidRequest.params.video && bidRequest.params.video.e2etest) {
57
- utils.logMessage('E2E test mode enabled');
57
+ logMessage('E2E test mode enabled');
58
58
  pubId = 'e2etest'
59
59
  }
60
60
  return {
@@ -98,7 +98,7 @@ export const spec = {
98
98
  bidResponses.push(bidResponse)
99
99
  }
100
100
  } else {
101
- utils.logError('invalid server response received');
101
+ logError('invalid server response received');
102
102
  }
103
103
  return bidResponses;
104
104
  },
@@ -118,7 +118,7 @@ export const spec = {
118
118
  }
119
119
 
120
120
  serverResponses.forEach(resp => {
121
- const userSync = utils.deepAccess(resp, 'body.ext.usersync');
121
+ const userSync = deepAccess(resp, 'body.ext.usersync');
122
122
  if (userSync) {
123
123
  let syncDetails = [];
124
124
  Object.keys(userSync).forEach(key => {
@@ -152,8 +152,8 @@ export const spec = {
152
152
  function buildRequestData(bidRequest, bidderRequest) {
153
153
  const {params} = bidRequest;
154
154
 
155
- const videoAdUnit = utils.deepAccess(bidRequest, 'mediaTypes.video', {});
156
- const videoBidderParams = utils.deepAccess(bidRequest, 'params.video', {});
155
+ const videoAdUnit = deepAccess(bidRequest, 'mediaTypes.video', {});
156
+ const videoBidderParams = deepAccess(bidRequest, 'params.video', {});
157
157
 
158
158
  const videoParams = {
159
159
  ...videoAdUnit,
@@ -194,7 +194,7 @@ function buildRequestData(bidRequest, bidderRequest) {
194
194
  size: '*'
195
195
  };
196
196
  let floorData = bidRequest.params
197
- if (utils.isFn(bidRequest.getFloor)) {
197
+ if (isFn(bidRequest.getFloor)) {
198
198
  floorData = bidRequest.getFloor(bidFloorRequest);
199
199
  } else {
200
200
  if (params.bidfloor) {
@@ -226,7 +226,7 @@ function buildRequestData(bidRequest, bidderRequest) {
226
226
  };
227
227
 
228
228
  // content
229
- if (videoParams.content && utils.isPlainObject(videoParams.content)) {
229
+ if (videoParams.content && isPlainObject(videoParams.content)) {
230
230
  openrtbRequest.site.content = {};
231
231
  const contentStringKeys = ['id', 'title', 'series', 'season', 'genre', 'contentrating', 'language'];
232
232
  const contentNumberkeys = ['episode', 'prodq', 'context', 'livestream', 'len'];
@@ -234,33 +234,33 @@ function buildRequestData(bidRequest, bidderRequest) {
234
234
  const contentObjectKeys = ['ext'];
235
235
  for (const contentKey in videoBidderParams.content) {
236
236
  if (
237
- (contentStringKeys.indexOf(contentKey) > -1 && utils.isStr(videoParams.content[contentKey])) ||
238
- (contentNumberkeys.indexOf(contentKey) > -1 && utils.isNumber(videoParams.content[contentKey])) ||
239
- (contentObjectKeys.indexOf(contentKey) > -1 && utils.isPlainObject(videoParams.content[contentKey])) ||
240
- (contentArrayKeys.indexOf(contentKey) > -1 && utils.isArray(videoParams.content[contentKey]) &&
241
- videoParams.content[contentKey].every(catStr => utils.isStr(catStr)))) {
237
+ (contentStringKeys.indexOf(contentKey) > -1 && isStr(videoParams.content[contentKey])) ||
238
+ (contentNumberkeys.indexOf(contentKey) > -1 && isNumber(videoParams.content[contentKey])) ||
239
+ (contentObjectKeys.indexOf(contentKey) > -1 && isPlainObject(videoParams.content[contentKey])) ||
240
+ (contentArrayKeys.indexOf(contentKey) > -1 && isArray(videoParams.content[contentKey]) &&
241
+ videoParams.content[contentKey].every(catStr => isStr(catStr)))) {
242
242
  openrtbRequest.site.content[contentKey] = videoParams.content[contentKey];
243
243
  } else {
244
- utils.logMessage('videobyte bid adapter validation error: ', contentKey, ' is either not supported is OpenRTB V2.5 or value is undefined');
244
+ logMessage('videobyte bid adapter validation error: ', contentKey, ' is either not supported is OpenRTB V2.5 or value is undefined');
245
245
  }
246
246
  }
247
247
  }
248
248
 
249
249
  // adding schain object
250
250
  if (bidRequest.schain) {
251
- utils.deepSetValue(openrtbRequest, 'source.ext.schain', bidRequest.schain);
251
+ deepSetValue(openrtbRequest, 'source.ext.schain', bidRequest.schain);
252
252
  openrtbRequest.source.ext.schain.nodes[0].rid = openrtbRequest.id;
253
253
  }
254
254
 
255
255
  // Attaching GDPR Consent Params
256
256
  if (bidderRequest.gdprConsent) {
257
- utils.deepSetValue(openrtbRequest, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
258
- utils.deepSetValue(openrtbRequest, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0));
257
+ deepSetValue(openrtbRequest, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
258
+ deepSetValue(openrtbRequest, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0));
259
259
  }
260
260
 
261
261
  // CCPA
262
262
  if (bidderRequest.uspConsent) {
263
- utils.deepSetValue(openrtbRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent);
263
+ deepSetValue(openrtbRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent);
264
264
  }
265
265
  return openrtbRequest;
266
266
  }
@@ -271,12 +271,12 @@ function validateVideo(bidRequest) {
271
271
  }
272
272
 
273
273
  if (!bidRequest.params.pubId) {
274
- utils.logError('failed validation: publisher id not declared');
274
+ logError('failed validation: publisher id not declared');
275
275
  return false;
276
276
  }
277
277
 
278
- const videoAdUnit = utils.deepAccess(bidRequest, 'mediaTypes.video', {});
279
- const videoBidderParams = utils.deepAccess(bidRequest, 'params.video', {});
278
+ const videoAdUnit = deepAccess(bidRequest, 'mediaTypes.video', {});
279
+ const videoBidderParams = deepAccess(bidRequest, 'params.video', {});
280
280
 
281
281
  if (videoBidderParams && videoBidderParams.e2etest) {
282
282
  return true;
@@ -288,16 +288,16 @@ function validateVideo(bidRequest) {
288
288
  };
289
289
 
290
290
  if (!videoParams.context) {
291
- utils.logError('failed validation: context id not declared');
291
+ logError('failed validation: context id not declared');
292
292
  return false;
293
293
  }
294
294
  if (videoParams.context !== 'instream') {
295
- utils.logError('failed validation: only context instream is supported ');
295
+ logError('failed validation: only context instream is supported ');
296
296
  return false;
297
297
  }
298
298
 
299
299
  if (typeof videoParams.playerSize === 'undefined' || !Array.isArray(videoParams.playerSize) || !Array.isArray(videoParams.playerSize[0])) {
300
- utils.logError('failed validation: player size not declared or is not in format [[w,h]]');
300
+ logError('failed validation: player size not declared or is not in format [[w,h]]');
301
301
  return false;
302
302
  }
303
303
 
@@ -1,5 +1,5 @@
1
+ import { getValue, getBidIdParameter } from '../src/utils.js';
1
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
2
- const utils = require('../src/utils.js');
3
3
  const BIDDER_CODE = 'videoreach';
4
4
  const ENDPOINT_URL = 'https://a.videoreach.com/hb/';
5
5
  const GVLID = 547;
@@ -17,12 +17,12 @@ export const spec = {
17
17
  let data = {
18
18
  data: validBidRequests.map(function(bid) {
19
19
  return {
20
- TagId: utils.getValue(bid.params, 'TagId'),
21
- adUnitCode: utils.getBidIdParameter('adUnitCode', bid),
22
- bidId: utils.getBidIdParameter('bidId', bid),
23
- bidderRequestId: utils.getBidIdParameter('bidderRequestId', bid),
24
- auctionId: utils.getBidIdParameter('auctionId', bid),
25
- transactionId: utils.getBidIdParameter('transactionId', bid)
20
+ TagId: getValue(bid.params, 'TagId'),
21
+ adUnitCode: getBidIdParameter('adUnitCode', bid),
22
+ bidId: getBidIdParameter('bidId', bid),
23
+ bidderRequestId: getBidIdParameter('bidderRequestId', bid),
24
+ auctionId: getBidIdParameter('auctionId', bid),
25
+ transactionId: getBidIdParameter('transactionId', bid)
26
26
  }
27
27
  })
28
28
  };