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,7 +1,7 @@
1
+ import { logError } from '../src/utils.js';
1
2
  import {ajax} from '../src/ajax.js';
2
3
  import adapter from '../src/AnalyticsAdapter.js';
3
4
  import adapterManager from '../src/adapterManager.js';
4
- import * as utils from '../src/utils.js';
5
5
 
6
6
  const CONSTANTS = require('../src/constants.json');
7
7
 
@@ -110,7 +110,7 @@ eplAnalyticsAdapter.originEnableAnalytics = eplAnalyticsAdapter.enableAnalytics;
110
110
 
111
111
  eplAnalyticsAdapter.enableAnalytics = function (config) {
112
112
  if (!config.options.ci) {
113
- utils.logError('Client ID (ci) option is not defined. Analytics won\'t work');
113
+ logError('Client ID (ci) option is not defined. Analytics won\'t work');
114
114
  return;
115
115
  }
116
116
 
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { isEmpty, getWindowSelf, parseSizesInput } from '../src/utils.js';
2
2
  import { getGlobal } from '../src/prebidGlobal.js';
3
3
  import { registerBidder } from '../src/adapters/bidderFactory.js';
4
4
  import { getStorageManager } from '../src/storageManager.js';
@@ -7,10 +7,10 @@ export const storage = getStorageManager();
7
7
 
8
8
  const BIDDER_CODE = 'eplanning';
9
9
  const rnd = Math.random();
10
- const DEFAULT_SV = 'ads.us.e-planning.net';
10
+ const DEFAULT_SV = 'pbjs.e-planning.net';
11
11
  const DEFAULT_ISV = 'i.e-planning.net';
12
12
  const PARAMS = ['ci', 'sv', 't', 'ml', 'sn'];
13
- const DOLLARS = 'USD';
13
+ const DOLLAR_CODE = 'USD';
14
14
  const NET_REVENUE = true;
15
15
  const TTL = 120;
16
16
  const NULL_SIZE = '1x1';
@@ -102,9 +102,9 @@ export const spec = {
102
102
  const response = serverResponse.body;
103
103
  let bidResponses = [];
104
104
 
105
- if (response && !utils.isEmpty(response.sp)) {
105
+ if (response && !isEmpty(response.sp)) {
106
106
  response.sp.forEach(space => {
107
- if (!utils.isEmpty(space.a)) {
107
+ if (!isEmpty(space.a)) {
108
108
  space.a.forEach(ad => {
109
109
  const bidResponse = {
110
110
  requestId: request.adUnitToBidId[space.k],
@@ -115,7 +115,7 @@ export const spec = {
115
115
  ttl: TTL,
116
116
  creativeId: ad.crid,
117
117
  netRevenue: NET_REVENUE,
118
- currency: DOLLARS,
118
+ currency: DOLLAR_CODE,
119
119
  };
120
120
  if (ad.adom) {
121
121
  bidResponse.meta = {
@@ -132,9 +132,9 @@ export const spec = {
132
132
  },
133
133
  getUserSyncs: function(syncOptions, serverResponses) {
134
134
  const syncs = [];
135
- const response = !utils.isEmpty(serverResponses) && serverResponses[0].body;
135
+ const response = !isEmpty(serverResponses) && serverResponses[0].body;
136
136
 
137
- if (response && !utils.isEmpty(response.cs)) {
137
+ if (response && !isEmpty(response.cs)) {
138
138
  const responseSyncs = response.cs;
139
139
  responseSyncs.forEach(sync => {
140
140
  if (typeof sync === 'string' && syncOptions.pixelEnabled) {
@@ -159,7 +159,7 @@ function getUserAgent() {
159
159
  return window.navigator.userAgent;
160
160
  }
161
161
  function getInnerWidth() {
162
- return utils.getWindowSelf().innerWidth;
162
+ return getWindowSelf().innerWidth;
163
163
  }
164
164
  function isMobileUserAgent() {
165
165
  return getUserAgent().match(/(mobile)|(ip(hone|ad))|(android)|(blackberry)|(nokia)|(phone)|(opera\smini)/i);
@@ -216,7 +216,7 @@ function compareSizesByPriority(size1, size2) {
216
216
  }
217
217
 
218
218
  function getSizesSortedByPriority(sizes) {
219
- return utils.parseSizesInput(sizes).sort(compareSizesByPriority);
219
+ return parseSizesInput(sizes).sort(compareSizesByPriority);
220
220
  }
221
221
 
222
222
  function getSize(bid, first) {
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { deepSetValue, isFn, isPlainObject } 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';
@@ -145,7 +145,7 @@ export const spec = {
145
145
  bidObject.gdpr_consent = bidRequest.gdpr.gdpr_consent;
146
146
  }
147
147
  if (bid.adomain) {
148
- utils.deepSetValue(bidObject, 'meta.advertiserDomains', Array.isArray(bid.adomain) ? bid.adomain : [bid.adomain]);
148
+ deepSetValue(bidObject, 'meta.advertiserDomains', Array.isArray(bid.adomain) ? bid.adomain : [bid.adomain]);
149
149
  }
150
150
  bidRespones.push(bidObject);
151
151
  }
@@ -165,7 +165,7 @@ export const spec = {
165
165
  }
166
166
  };
167
167
  function getBidFloor(bid) {
168
- if (!utils.isFn(bid.getFloor)) {
168
+ if (!isFn(bid.getFloor)) {
169
169
  return null;
170
170
  }
171
171
  let floor = bid.getFloor({
@@ -173,7 +173,7 @@ function getBidFloor(bid) {
173
173
  mediaType: '*',
174
174
  size: '*'
175
175
  });
176
- if (utils.isPlainObject(floor) && !isNaN(floor.floor)) {
176
+ if (isPlainObject(floor) && !isNaN(floor.floor)) {
177
177
  return floor.floor;
178
178
  }
179
179
  return null;
@@ -1,5 +1,4 @@
1
-
2
- import * as utils from '../src/utils.js';
1
+ import { logMessage, logWarn, logError, logInfo } from '../src/utils.js';
3
2
 
4
3
  const MODULE_NAME = 'express';
5
4
 
@@ -14,10 +13,10 @@ const MODULE_NAME = 'express';
14
13
  * @param {Object[]} [adUnits = pbjs.adUnits] - an array of adUnits for express to operate on.
15
14
  */
16
15
  $$PREBID_GLOBAL$$.express = function(adUnits = $$PREBID_GLOBAL$$.adUnits) {
17
- utils.logMessage('loading ' + MODULE_NAME);
16
+ logMessage('loading ' + MODULE_NAME);
18
17
 
19
18
  if (adUnits.length === 0) {
20
- utils.logWarn('no valid adUnits found, not loading ' + MODULE_NAME);
19
+ logWarn('no valid adUnits found, not loading ' + MODULE_NAME);
21
20
  }
22
21
 
23
22
  // store gpt slots in a more performant hash lookup by elementId (adUnit code)
@@ -27,7 +26,7 @@ $$PREBID_GLOBAL$$.express = function(adUnits = $$PREBID_GLOBAL$$.adUnits) {
27
26
  if (adUnit.code && adUnit.bids) {
28
27
  cache[adUnit.code] = adUnit;
29
28
  } else {
30
- utils.logError('misconfigured adUnit', null, adUnit);
29
+ logError('misconfigured adUnit', null, adUnit);
31
30
  }
32
31
  return cache;
33
32
  }, {});
@@ -39,10 +38,10 @@ $$PREBID_GLOBAL$$.express = function(adUnits = $$PREBID_GLOBAL$$.adUnits) {
39
38
  var gpt = window.googletag;
40
39
  var pads = gpt.pubads;
41
40
  if (!gpt.display || !gpt.enableServices || typeof pads !== 'function' || !pads().refresh || !pads().disableInitialLoad || !pads().getSlots || !pads().enableSingleRequest) {
42
- utils.logError('could not bind to gpt googletag api');
41
+ logError('could not bind to gpt googletag api');
43
42
  return;
44
43
  }
45
- utils.logMessage('running');
44
+ logMessage('running');
46
45
 
47
46
  // function to convert google tag slot sizes to [[w,h],...]
48
47
  function mapGptSlotSizes(aGPTSlotSizes) {
@@ -51,7 +50,7 @@ $$PREBID_GLOBAL$$.express = function(adUnits = $$PREBID_GLOBAL$$.adUnits) {
51
50
  try {
52
51
  aSlotSizes.push([aGPTSlotSizes[i].getWidth(), aGPTSlotSizes[i].getHeight()]);
53
52
  } catch (e) {
54
- utils.logWarn('slot size ' + aGPTSlotSizes[i].toString() + ' not supported by' + MODULE_NAME);
53
+ logWarn('slot size ' + aGPTSlotSizes[i].toString() + ' not supported by' + MODULE_NAME);
55
54
  }
56
55
  }
57
56
  return aSlotSizes;
@@ -110,7 +109,7 @@ $$PREBID_GLOBAL$$.express = function(adUnits = $$PREBID_GLOBAL$$.adUnits) {
110
109
  // - else run an auction and call the real fGptRefresh() to
111
110
  // initiate the DFP request
112
111
  gpt.display = function (sElementId) {
113
- utils.logInfo('display:', sElementId);
112
+ logInfo('display:', sElementId);
114
113
  // call original gpt display() function
115
114
  fGptDisplay.apply(gpt, arguments);
116
115
 
@@ -157,7 +156,7 @@ $$PREBID_GLOBAL$$.express = function(adUnits = $$PREBID_GLOBAL$$.adUnits) {
157
156
  // override gpt refresh() function
158
157
  // - run auctions for provided gpt slots, then initiate ad-server call
159
158
  pads().refresh = function (aGptSlots, options) {
160
- utils.logInfo('refresh:', aGptSlots);
159
+ logInfo('refresh:', aGptSlots);
161
160
  // get already displayed adUnits from aGptSlots if provided, else all defined gptSlots
162
161
  aGptSlots = defaultSlots(aGptSlots);
163
162
  var adUnits = pickAdUnits(/* mutated: */ aGptSlots).filter(function (adUnit) {
@@ -5,7 +5,7 @@
5
5
  * @requires module:modules/userId
6
6
  */
7
7
 
8
- import * as utils from '../src/utils.js'
8
+ import { logError } from '../src/utils.js';
9
9
  import { ajax } from '../src/ajax.js';
10
10
  import { submodule } from '../src/hook.js';
11
11
  import { getRefererInfo } from '../src/refererDetection.js';
@@ -47,7 +47,7 @@ export const fabrickIdSubmodule = {
47
47
  window.fabrickMod1(configParams, consentData, cacheIdObj);
48
48
  }
49
49
  if (!configParams || !configParams.apiKey || typeof configParams.apiKey !== 'string') {
50
- utils.logError('fabrick submodule requires an apiKey.');
50
+ logError('fabrick submodule requires an apiKey.');
51
51
  return;
52
52
  }
53
53
  try {
@@ -96,7 +96,7 @@ export const fabrickIdSubmodule = {
96
96
  try {
97
97
  responseObj = JSON.parse(response);
98
98
  } catch (error) {
99
- utils.logError(error);
99
+ logError(error);
100
100
  responseObj = {};
101
101
  }
102
102
  }
@@ -104,7 +104,7 @@ export const fabrickIdSubmodule = {
104
104
  }
105
105
  },
106
106
  error: error => {
107
- utils.logError(`fabrickId fetch encountered an error`, error);
107
+ logError(`fabrickId fetch encountered an error`, error);
108
108
  callback();
109
109
  }
110
110
  };
@@ -112,10 +112,10 @@ export const fabrickIdSubmodule = {
112
112
  };
113
113
  return {callback: resp};
114
114
  } catch (e) {
115
- utils.logError(`fabrickIdSystem encountered an error`, e);
115
+ logError(`fabrickIdSystem encountered an error`, e);
116
116
  }
117
117
  } catch (e) {
118
- utils.logError(`fabrickIdSystem encountered an error`, e);
118
+ logError(`fabrickIdSystem encountered an error`, e);
119
119
  }
120
120
  }
121
121
  };
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { deepAccess, logWarn } from '../src/utils.js';
2
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
3
3
  import {BANNER} from '../src/mediaTypes.js';
4
4
  import {ajax} from '../src/ajax.js';
@@ -107,15 +107,15 @@ const BID_METADATA = {};
107
107
  * @return {boolean} true if the bid is valid
108
108
  */
109
109
  function isBidRequestValid(bid) {
110
- const clientToken = utils.deepAccess(bid, 'params.clientToken');
110
+ const clientToken = deepAccess(bid, 'params.clientToken');
111
111
  if (!clientToken || !isValidClientToken(clientToken)) {
112
- utils.logWarn(TAG, "missing or invalid parameter 'clientToken'. found value:", clientToken);
112
+ logWarn(TAG, "missing or invalid parameter 'clientToken'. found value:", clientToken);
113
113
  return false;
114
114
  }
115
115
 
116
- const placementId = utils.deepAccess(bid, 'params.placementId');
116
+ const placementId = deepAccess(bid, 'params.placementId');
117
117
  if (!placementId || !isValidPlacementId(placementId)) {
118
- utils.logWarn(TAG, "missing or invalid parameter 'placementId'. found value:", placementId);
118
+ logWarn(TAG, "missing or invalid parameter 'placementId'. found value:", placementId);
119
119
  return false;
120
120
  }
121
121
 
@@ -1,7 +1,7 @@
1
+ import { parseUrl, logError } from '../src/utils.js';
1
2
  import { ajax } from '../src/ajax.js';
2
3
  import adapter from '../src/AnalyticsAdapter.js';
3
4
  import adapterManager from '../src/adapterManager.js';
4
- import * as utils from '../src/utils.js';
5
5
  import { getStorageManager } from '../src/storageManager.js';
6
6
 
7
7
  const storage = getStorageManager();
@@ -28,7 +28,7 @@ function getPageInfo() {
28
28
  }
29
29
 
30
30
  if (document.referrer) {
31
- pageInfo.referrerDomain = utils.parseUrl(document.referrer).hostname;
31
+ pageInfo.referrerDomain = parseUrl(document.referrer).hostname;
32
32
  }
33
33
 
34
34
  return pageInfo;
@@ -399,7 +399,7 @@ function sendTrackRequest(trackData) {
399
399
  );
400
400
  saveTrackRequestTime();
401
401
  } catch (err) {
402
- utils.logError('Error on send data: ', err);
402
+ logError('Error on send data: ', err);
403
403
  }
404
404
  }
405
405
 
@@ -424,7 +424,7 @@ fntzAnalyticsAdapter.originEnableAnalytics = fntzAnalyticsAdapter.enableAnalytic
424
424
 
425
425
  fntzAnalyticsAdapter.enableAnalytics = function (config) {
426
426
  if (!config.options.id) {
427
- utils.logError('Client ID (id) option is not defined. Analytics won\'t work');
427
+ logError('Client ID (id) option is not defined. Analytics won\'t work');
428
428
  return;
429
429
  }
430
430
 
@@ -5,7 +5,7 @@
5
5
  * @requires module:modules/userId
6
6
  */
7
7
 
8
- import * as utils from '../src/utils.js'
8
+ import { logInfo, logError } from '../src/utils.js';
9
9
  import {submodule} from '../src/hook.js'
10
10
 
11
11
  const MODULE_NAME = 'flocId';
@@ -45,7 +45,7 @@ function encodeId(value) {
45
45
  const result = {};
46
46
  if (value) {
47
47
  result.flocId = value;
48
- utils.logInfo('Decoded value ' + JSON.stringify(result));
48
+ logInfo('Decoded value ' + JSON.stringify(result));
49
49
  return result;
50
50
  }
51
51
  return undefined;
@@ -78,7 +78,7 @@ export const flocIdSubmodule = {
78
78
  // Block usage of storage of cohort ID
79
79
  const checkStorage = (config && config.storage);
80
80
  if (checkStorage) {
81
- utils.logError('User ID - flocId submodule storage should not defined');
81
+ logError('User ID - flocId submodule storage should not defined');
82
82
  return;
83
83
  }
84
84
  // Validate feature is enabled
@@ -94,10 +94,10 @@ export const flocIdSubmodule = {
94
94
  let returnCallback = (cb) => {
95
95
  getFlocData((data) => {
96
96
  returnCallback = () => { return data; }
97
- utils.logInfo('Cohort id: ' + JSON.stringify(data));
97
+ logInfo('Cohort id: ' + JSON.stringify(data));
98
98
  cb(data);
99
99
  }, (err) => {
100
- utils.logInfo(err);
100
+ logInfo(err);
101
101
  cb(undefined);
102
102
  });
103
103
  };
@@ -1,5 +1,6 @@
1
- import * as utils from '../src/utils.js';
1
+ import { _each, isEmpty } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
+ import URLSearchParams from 'core-js-pure/web/url-search-params'
3
4
 
4
5
  const BIDDER_CODE = 'fluct';
5
6
  const END_POINT = 'https://hb.adingo.jp/prebid';
@@ -31,7 +32,7 @@ export const spec = {
31
32
  const serverRequests = [];
32
33
  const referer = bidderRequest.refererInfo.referer;
33
34
 
34
- utils._each(validBidRequests, (request) => {
35
+ _each(validBidRequests, (request) => {
35
36
  const data = Object();
36
37
 
37
38
  data.referer = referer;
@@ -40,7 +41,7 @@ export const spec = {
40
41
  data.transactionId = request.transactionId;
41
42
 
42
43
  data.sizes = [];
43
- utils._each(request.sizes, (size) => {
44
+ _each(request.sizes, (size) => {
44
45
  data.sizes.push({
45
46
  w: size[0],
46
47
  h: size[1]
@@ -79,7 +80,7 @@ export const spec = {
79
80
  const bidResponses = [];
80
81
 
81
82
  const res = serverResponse.body;
82
- if (!utils.isEmpty(res) && !utils.isEmpty(res.seatbid) && !utils.isEmpty(res.seatbid[0].bid)) {
83
+ if (!isEmpty(res) && !isEmpty(res.seatbid) && !isEmpty(res.seatbid[0].bid)) {
83
84
  const bid = res.seatbid[0].bid[0];
84
85
  const dealId = bid.dealid;
85
86
  const beaconUrl = bid.burl;
@@ -101,7 +102,7 @@ export const spec = {
101
102
  advertiserDomains: bid.adomain || [],
102
103
  },
103
104
  };
104
- if (!utils.isEmpty(dealId)) {
105
+ if (!isEmpty(dealId)) {
105
106
  data.dealId = dealId;
106
107
  }
107
108
  bidResponses.push(data);
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { logWarn, isArray } from '../src/utils.js';
2
2
  import { BANNER, VIDEO } from '../src/mediaTypes.js';
3
3
  import { registerBidder } from '../src/adapters/bidderFactory.js';
4
4
 
@@ -72,7 +72,7 @@ function getPricing(xmlNode) {
72
72
  price: priceNode.textContent || priceNode.innerText
73
73
  };
74
74
  } else {
75
- utils.logWarn('PREBID - ' + BIDDER_CODE + ': No bid received or missing pricing extension.');
75
+ logWarn('PREBID - ' + BIDDER_CODE + ': No bid received or missing pricing extension.');
76
76
  }
77
77
 
78
78
  return princingData;
@@ -329,7 +329,7 @@ export const spec = {
329
329
  var playerSize = [];
330
330
  if (currentBidRequest.mediaTypes.video && currentBidRequest.mediaTypes.video.playerSize) {
331
331
  // If mediaTypes is video, get size from mediaTypes.video.playerSize per http://prebid.org/blog/pbjs-3
332
- if (utils.isArray(currentBidRequest.mediaTypes.video.playerSize[0])) {
332
+ if (isArray(currentBidRequest.mediaTypes.video.playerSize[0])) {
333
333
  playerSize = currentBidRequest.mediaTypes.video.playerSize[0];
334
334
  } else {
335
335
  playerSize = currentBidRequest.mediaTypes.video.playerSize;
@@ -371,7 +371,7 @@ export const spec = {
371
371
  var playerSize = [];
372
372
  if (bidrequest.mediaTypes.video && bidrequest.mediaTypes.video.playerSize) {
373
373
  // If mediaTypes is video, get size from mediaTypes.video.playerSize per http://prebid.org/blog/pbjs-3
374
- if (utils.isArray(bidrequest.mediaTypes.video.playerSize[0])) {
374
+ if (isArray(bidrequest.mediaTypes.video.playerSize[0])) {
375
375
  playerSize = bidrequest.mediaTypes.video.playerSize[0];
376
376
  } else {
377
377
  playerSize = bidrequest.mediaTypes.video.playerSize;
@@ -393,7 +393,7 @@ export const spec = {
393
393
  var parser = new DOMParser();
394
394
  xmlDoc = parser.parseFromString(serverResponse, 'application/xml');
395
395
  } catch (err) {
396
- utils.logWarn('Prebid.js - ' + BIDDER_CODE + ' : ' + err);
396
+ logWarn('Prebid.js - ' + BIDDER_CODE + ' : ' + err);
397
397
  return;
398
398
  }
399
399
 
@@ -420,7 +420,7 @@ export const spec = {
420
420
  currency: princingData.currency,
421
421
  netRevenue: true,
422
422
  ttl: 360,
423
- meta: { advertiserDomains: princingData.adomain && utils.isArray(princingData.adomain) ? princingData.adomain : [] },
423
+ meta: { advertiserDomains: princingData.adomain && isArray(princingData.adomain) ? princingData.adomain : [] },
424
424
  dealId: dealId,
425
425
  campaignId: campaignId,
426
426
  bannerId: bannerId
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { isFn, isPlainObject, isStr, isNumber, getDNT, deepSetValue, inIframe, isArray, deepAccess, logError, logWarn } from '../src/utils.js';
2
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
3
3
  import {config} from '../src/config.js';
4
4
  import {Renderer} from '../src/Renderer.js';
@@ -40,7 +40,7 @@ export const helper = {
40
40
  return BANNER;
41
41
  },
42
42
  getBidFloor(bid) {
43
- if (!utils.isFn(bid.getFloor)) {
43
+ if (!isFn(bid.getFloor)) {
44
44
  return bid.params.bidfloor ? bid.params.bidfloor : null;
45
45
  }
46
46
 
@@ -50,7 +50,7 @@ export const helper = {
50
50
  currency: 'USD'
51
51
  });
52
52
 
53
- if (utils.isPlainObject(bidFloor) && !isNaN(bidFloor.floor) && bidFloor.currency === 'USD') {
53
+ if (isPlainObject(bidFloor) && !isNaN(bidFloor.floor) && bidFloor.currency === 'USD') {
54
54
  return bidFloor.floor;
55
55
  }
56
56
 
@@ -64,10 +64,10 @@ export const spec = {
64
64
  supportedMediaTypes: ['banner', 'video'],
65
65
 
66
66
  isBidRequestValid: function (bid) {
67
- return !!bid.params.supplyPartnerId && utils.isStr(bid.params.supplyPartnerId) &&
68
- (!bid.params['rtbEndpoint'] || utils.isStr(bid.params['rtbEndpoint'])) &&
69
- (!bid.params.bidfloor || utils.isNumber(bid.params.bidfloor)) &&
70
- (!bid.params['adpos'] || utils.isNumber(bid.params['adpos'])) &&
67
+ return !!bid.params.supplyPartnerId && isStr(bid.params.supplyPartnerId) &&
68
+ (!bid.params['rtbEndpoint'] || isStr(bid.params['rtbEndpoint'])) &&
69
+ (!bid.params.bidfloor || isNumber(bid.params.bidfloor)) &&
70
+ (!bid.params['adpos'] || isNumber(bid.params['adpos'])) &&
71
71
  (!bid.params['protocols'] || Array.isArray(bid.params['protocols'])) &&
72
72
  (!bid.params.instl || bid.params.instl === 0 || bid.params.instl === 1);
73
73
  },
@@ -88,7 +88,7 @@ export const spec = {
88
88
  },
89
89
  device: {
90
90
  ua: navigator.userAgent,
91
- dnt: utils.getDNT() ? 1 : 0,
91
+ dnt: getDNT() ? 1 : 0,
92
92
  h: screen.height,
93
93
  w: screen.width,
94
94
  language: navigator.language
@@ -107,16 +107,16 @@ export const spec = {
107
107
  consent_required: gdprConsent.gdprApplies
108
108
  };
109
109
 
110
- utils.deepSetValue(rtbBidRequest, 'regs.ext.gdpr', gdprConsent.gdprApplies === true ? 1 : 0);
111
- utils.deepSetValue(rtbBidRequest, 'user.ext.consent', gdprConsent.consentString);
110
+ deepSetValue(rtbBidRequest, 'regs.ext.gdpr', gdprConsent.gdprApplies === true ? 1 : 0);
111
+ deepSetValue(rtbBidRequest, 'user.ext.consent', gdprConsent.consentString);
112
112
  }
113
113
 
114
114
  if (validBidRequests[0].schain) {
115
- utils.deepSetValue(rtbBidRequest, 'source.ext.schain', validBidRequests[0].schain);
115
+ deepSetValue(rtbBidRequest, 'source.ext.schain', validBidRequests[0].schain);
116
116
  }
117
117
 
118
118
  if (bidderRequest && bidderRequest.uspConsent) {
119
- utils.deepSetValue(rtbBidRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent);
119
+ deepSetValue(rtbBidRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent);
120
120
  }
121
121
 
122
122
  const imp = {
@@ -138,7 +138,7 @@ export const spec = {
138
138
  w: sizes.length ? sizes[0][0] : 300,
139
139
  h: sizes.length ? sizes[0][1] : 250,
140
140
  pos: params.pos || 0,
141
- topframe: utils.inIframe() ? 0 : 1
141
+ topframe: inIframe() ? 0 : 1
142
142
  }
143
143
  });
144
144
  rtbBidRequest.imp.push(bannerImp);
@@ -166,10 +166,10 @@ export const spec = {
166
166
  }
167
167
  });
168
168
 
169
- if (utils.isArray(playerSize[0])) {
169
+ if (isArray(playerSize[0])) {
170
170
  videoImp.video.w = playerSize[0][0];
171
171
  videoImp.video.h = playerSize[0][1];
172
- } else if (utils.isNumber(playerSize[0])) {
172
+ } else if (isNumber(playerSize[0])) {
173
173
  videoImp.video.w = playerSize[0];
174
174
  videoImp.video.h = playerSize[1];
175
175
  } else {
@@ -183,8 +183,8 @@ export const spec = {
183
183
 
184
184
  let eids = [];
185
185
  if (bidRequest && bidRequest.userId) {
186
- addExternalUserId(eids, utils.deepAccess(bidRequest, `userId.id5id.uid`), 'id5-sync.com', 'ID5ID');
187
- addExternalUserId(eids, utils.deepAccess(bidRequest, `userId.tdid`), 'adserver.org', 'TDID');
186
+ addExternalUserId(eids, deepAccess(bidRequest, `userId.id5id.uid`), 'id5-sync.com', 'ID5ID');
187
+ addExternalUserId(eids, deepAccess(bidRequest, `userId.tdid`), 'adserver.org', 'TDID');
188
188
  }
189
189
  if (eids.length > 0) {
190
190
  rtbBidRequest.user.ext.eids = eids;
@@ -206,7 +206,7 @@ export const spec = {
206
206
  interpretResponse: function (serverResponse, bidRequest) {
207
207
  const response = serverResponse && serverResponse.body;
208
208
  if (!response) {
209
- utils.logError('empty response');
209
+ logError('empty response');
210
210
  return [];
211
211
  }
212
212
 
@@ -232,11 +232,11 @@ export const spec = {
232
232
  }
233
233
  }
234
234
 
235
- if (utils.deepAccess(bidRequest.bidRequest, 'mediaTypes.' + outBid.mediaType)) {
235
+ if (deepAccess(bidRequest.bidRequest, 'mediaTypes.' + outBid.mediaType)) {
236
236
  if (outBid.mediaType === BANNER) {
237
237
  outBids.push(Object.assign({}, outBid, {ad: bid.adm}));
238
238
  } else if (outBid.mediaType === VIDEO) {
239
- const context = utils.deepAccess(bidRequest.bidRequest, 'mediaTypes.video.context');
239
+ const context = deepAccess(bidRequest.bidRequest, 'mediaTypes.video.context');
240
240
  outBids.push(Object.assign({}, outBid, {
241
241
  vastUrl: bid.ext.vast_url,
242
242
  vastXml: bid.adm,
@@ -315,7 +315,7 @@ function newRenderer(bidRequest, bid, rendererOptions = {}) {
315
315
  try {
316
316
  renderer.setRender(renderOutstream);
317
317
  } catch (err) {
318
- utils.logWarn('Prebid Error calling setRender on renderer', err);
318
+ logWarn('Prebid Error calling setRender on renderer', err);
319
319
  }
320
320
  return renderer;
321
321
  }
@@ -341,7 +341,7 @@ function renderOutstream(bid) {
341
341
  }
342
342
 
343
343
  function addExternalUserId(eids, value, source, rtiPartner) {
344
- if (utils.isStr(value)) {
344
+ if (isStr(value)) {
345
345
  eids.push({
346
346
  source,
347
347
  uids: [{
@@ -2,9 +2,8 @@
2
2
  * This module gives publishers extra set of features to enforce individual purposes of TCF v2
3
3
  */
4
4
 
5
- import * as utils from '../src/utils.js';
5
+ import { deepAccess, logWarn, isArray, hasDeviceAccess } from '../src/utils.js';
6
6
  import { config } from '../src/config.js';
7
- import { hasDeviceAccess } from '../src/utils.js';
8
7
  import adapterManager, { gdprDataHandler } from '../src/adapterManager.js';
9
8
  import find from 'core-js-pure/features/array/find.js';
10
9
  import includes from 'core-js-pure/features/array/includes.js';
@@ -136,9 +135,9 @@ export function validateRules(rule, consentData, currentModule, gvlId) {
136
135
  }
137
136
 
138
137
  // get data from the consent string
139
- const purposeConsent = utils.deepAccess(consentData, `vendorData.purpose.consents.${purposeId}`);
140
- const vendorConsent = utils.deepAccess(consentData, `vendorData.vendor.consents.${gvlId}`);
141
- const liTransparency = utils.deepAccess(consentData, `vendorData.purpose.legitimateInterests.${purposeId}`);
138
+ const purposeConsent = deepAccess(consentData, `vendorData.purpose.consents.${purposeId}`);
139
+ const vendorConsent = deepAccess(consentData, `vendorData.vendor.consents.${gvlId}`);
140
+ const liTransparency = deepAccess(consentData, `vendorData.purpose.legitimateInterests.${purposeId}`);
142
141
 
143
142
  /*
144
143
  Since vendor exceptions have already been handled, the purpose as a whole is allowed if it's not being enforced
@@ -170,7 +169,7 @@ export function deviceAccessHook(fn, gvlid, moduleName, result) {
170
169
  hasEnforcementHook: true
171
170
  });
172
171
  if (!hasDeviceAccess()) {
173
- utils.logWarn('Device access is disabled by Publisher');
172
+ logWarn('Device access is disabled by Publisher');
174
173
  result.valid = false;
175
174
  fn.call(this, gvlid, moduleName, result);
176
175
  } else {
@@ -190,7 +189,7 @@ export function deviceAccessHook(fn, gvlid, moduleName, result) {
190
189
  result.valid = true;
191
190
  fn.call(this, gvlid, moduleName, result);
192
191
  } else {
193
- curModule && utils.logWarn(`TCF2 denied device access for ${curModule}`);
192
+ curModule && logWarn(`TCF2 denied device access for ${curModule}`);
194
193
  result.valid = false;
195
194
  storageBlocked.push(curModule);
196
195
  fn.call(this, gvlid, moduleName, result);
@@ -222,7 +221,7 @@ export function userSyncHook(fn, ...args) {
222
221
  if (isAllowed) {
223
222
  fn.call(this, ...args);
224
223
  } else {
225
- utils.logWarn(`User sync not allowed for ${curBidder}`);
224
+ logWarn(`User sync not allowed for ${curBidder}`);
226
225
  storageBlocked.push(curBidder);
227
226
  }
228
227
  } else {
@@ -250,7 +249,7 @@ export function userIdHook(fn, submodules, consentData) {
250
249
  if (isAllowed) {
251
250
  return submodule;
252
251
  } else {
253
- utils.logWarn(`User denied permission to fetch user id for ${moduleName} User id module`);
252
+ logWarn(`User denied permission to fetch user id for ${moduleName} User id module`);
254
253
  storageBlocked.push(moduleName);
255
254
  }
256
255
  return undefined;
@@ -282,7 +281,7 @@ export function makeBidRequestsHook(fn, adUnits, ...args) {
282
281
  if (includes(biddersBlocked, currBidder)) return false;
283
282
  const isAllowed = !!validateRules(purpose2Rule, consentData, currBidder, gvlId);
284
283
  if (!isAllowed) {
285
- utils.logWarn(`TCF2 blocked auction for ${currBidder}`);
284
+ logWarn(`TCF2 blocked auction for ${currBidder}`);
286
285
  biddersBlocked.push(currBidder);
287
286
  }
288
287
  return isAllowed;
@@ -308,7 +307,7 @@ export function enableAnalyticsHook(fn, config) {
308
307
  const consentData = gdprDataHandler.getConsentData();
309
308
  if (consentData && consentData.gdprApplies) {
310
309
  if (consentData.apiVersion === 2) {
311
- if (!utils.isArray(config)) {
310
+ if (!isArray(config)) {
312
311
  config = [config]
313
312
  }
314
313
  config = config.filter(conf => {
@@ -317,7 +316,7 @@ export function enableAnalyticsHook(fn, config) {
317
316
  const isAllowed = !!validateRules(purpose7Rule, consentData, analyticsAdapterCode, gvlid);
318
317
  if (!isAllowed) {
319
318
  analyticsBlocked.push(analyticsAdapterCode);
320
- utils.logWarn(`TCF2 blocked analytics adapter ${conf.provider}`);
319
+ logWarn(`TCF2 blocked analytics adapter ${conf.provider}`);
321
320
  }
322
321
  return isAllowed;
323
322
  });
@@ -362,9 +361,9 @@ const hasPurpose7 = (rule) => { return rule.purpose === TCF2.purpose7.name }
362
361
  * @param {Object} config - GDPR enforcement config object
363
362
  */
364
363
  export function setEnforcementConfig(config) {
365
- const rules = utils.deepAccess(config, 'gdpr.rules');
364
+ const rules = deepAccess(config, 'gdpr.rules');
366
365
  if (!rules) {
367
- utils.logWarn('TCF2: enforcing P1 and P2 by default');
366
+ logWarn('TCF2: enforcing P1 and P2 by default');
368
367
  enforcementRules = DEFAULT_RULES;
369
368
  } else {
370
369
  enforcementRules = rules;