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,5 +1,8 @@
1
1
  import find from 'core-js-pure/features/array/find.js';
2
- import * as utils from '../src/utils.js';
2
+ import {
3
+ isInteger, isArray, deepAccess, mergeDeep, logWarn, logInfo, logError, getWindowTop, getWindowSelf, generateUUID, _map,
4
+ getDNT, parseUrl, getUniqueIdentifierStr, isNumber, cleanObj, isFn, inIframe, deepClone, getGptSlotInfoForAdUnitCode
5
+ } from '../src/utils.js';
3
6
  import { config } from '../src/config.js';
4
7
  import {registerBidder} from '../src/adapters/bidderFactory.js';
5
8
  import { loadExternalScript } from '../src/adloader.js';
@@ -31,22 +34,22 @@ const DEFAULT_FLOOR = 0.1;
31
34
  // https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf
32
35
  export const ORTB_VIDEO_PARAMS = {
33
36
  'mimes': (value) => Array.isArray(value) && value.length > 0 && value.every(v => typeof v === 'string'),
34
- 'minduration': (value) => utils.isInteger(value),
35
- 'maxduration': (value) => utils.isInteger(value),
37
+ 'minduration': (value) => isInteger(value),
38
+ 'maxduration': (value) => isInteger(value),
36
39
  'protocols': (value) => Array.isArray(value) && value.every(v => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].indexOf(v) !== -1),
37
- 'w': (value) => utils.isInteger(value),
38
- 'h': (value) => utils.isInteger(value),
39
- 'startdelay': (value) => utils.isInteger(value),
40
+ 'w': (value) => isInteger(value),
41
+ 'h': (value) => isInteger(value),
42
+ 'startdelay': (value) => isInteger(value),
40
43
  'placement': (value) => Array.isArray(value) && value.every(v => [1, 2, 3, 4, 5].indexOf(v) !== -1),
41
44
  'linearity': (value) => [1, 2].indexOf(value) !== -1,
42
45
  'skip': (value) => [0, 1].indexOf(value) !== -1,
43
- 'skipmin': (value) => utils.isInteger(value),
44
- 'skipafter': (value) => utils.isInteger(value),
45
- 'sequence': (value) => utils.isInteger(value),
46
+ 'skipmin': (value) => isInteger(value),
47
+ 'skipafter': (value) => isInteger(value),
48
+ 'sequence': (value) => isInteger(value),
46
49
  'battr': (value) => Array.isArray(value) && value.every(v => Array.from({length: 17}, (_, i) => i + 1).indexOf(v) !== -1),
47
- 'maxextended': (value) => utils.isInteger(value),
48
- 'minbitrate': (value) => utils.isInteger(value),
49
- 'maxbitrate': (value) => utils.isInteger(value),
50
+ 'maxextended': (value) => isInteger(value),
51
+ 'minbitrate': (value) => isInteger(value),
52
+ 'maxbitrate': (value) => isInteger(value),
50
53
  'boxingallowed': (value) => [0, 1].indexOf(value) !== -1,
51
54
  'playbackmethod': (value) => Array.isArray(value) && value.every(v => [1, 2, 3, 4, 5, 6].indexOf(v) !== -1),
52
55
  'playbackend': (value) => [1, 2, 3].indexOf(value) !== -1,
@@ -88,7 +91,7 @@ export const GlobalExchange = (function() {
88
91
  return value;
89
92
  }
90
93
  });
91
- let random = utils.deepAccess(adagioStorage, 'session.rnd');
94
+ let random = deepAccess(adagioStorage, 'session.rnd');
92
95
  let newSession = false;
93
96
 
94
97
  if (internal.isNewSession(adagioStorage)) {
@@ -103,7 +106,7 @@ export const GlobalExchange = (function() {
103
106
  }
104
107
  }
105
108
 
106
- utils.mergeDeep(exchangeData, adagioStorage, data);
109
+ mergeDeep(exchangeData, adagioStorage, data);
107
110
 
108
111
  internal.enqueue({
109
112
  action: 'session',
@@ -121,14 +124,14 @@ export const GlobalExchange = (function() {
121
124
  export function adagioScriptFromLocalStorageCb(ls) {
122
125
  try {
123
126
  if (!ls) {
124
- utils.logWarn(`${LOG_PREFIX} script not found.`);
127
+ logWarn(`${LOG_PREFIX} script not found.`);
125
128
  return;
126
129
  }
127
130
 
128
131
  const hashRgx = /^(\/\/ hash: (.+)\n)(.+\n)$/;
129
132
 
130
133
  if (!hashRgx.test(ls)) {
131
- utils.logWarn(`${LOG_PREFIX} no hash found.`);
134
+ logWarn(`${LOG_PREFIX} no hash found.`);
132
135
  storage.removeDataFromLocalStorage(ADAGIO_LOCALSTORAGE_KEY);
133
136
  } else {
134
137
  const r = ls.match(hashRgx);
@@ -136,15 +139,15 @@ export function adagioScriptFromLocalStorageCb(ls) {
136
139
  const content = r[3];
137
140
 
138
141
  if (verify(content, hash, ADAGIO_PUBKEY, ADAGIO_PUBKEY_E)) {
139
- utils.logInfo(`${LOG_PREFIX} start script.`);
142
+ logInfo(`${LOG_PREFIX} start script.`);
140
143
  Function(ls)(); // eslint-disable-line no-new-func
141
144
  } else {
142
- utils.logWarn(`${LOG_PREFIX} invalid script found.`);
145
+ logWarn(`${LOG_PREFIX} invalid script found.`);
143
146
  storage.removeDataFromLocalStorage(ADAGIO_LOCALSTORAGE_KEY);
144
147
  }
145
148
  }
146
149
  } catch (err) {
147
- utils.logError(LOG_PREFIX, err);
150
+ logError(LOG_PREFIX, err);
148
151
  }
149
152
  }
150
153
 
@@ -167,7 +170,7 @@ export function getAdagioScript() {
167
170
  // This key is removed only if localStorage is not accessible.
168
171
  window.localStorage.removeItem('adagio');
169
172
  } catch (e) {
170
- utils.logInfo(`${LOG_PREFIX} unable to clear Adagio scripts from localstorage.`);
173
+ logInfo(`${LOG_PREFIX} unable to clear Adagio scripts from localstorage.`);
171
174
  }
172
175
  }
173
176
  });
@@ -175,7 +178,7 @@ export function getAdagioScript() {
175
178
 
176
179
  function canAccessTopWindow() {
177
180
  try {
178
- if (utils.getWindowTop().location.href) {
181
+ if (getWindowTop().location.href) {
179
182
  return true;
180
183
  }
181
184
  } catch (error) {
@@ -184,17 +187,17 @@ function canAccessTopWindow() {
184
187
  }
185
188
 
186
189
  function getCurrentWindow() {
187
- return currentWindow || utils.getWindowSelf();
190
+ return currentWindow || getWindowSelf();
188
191
  }
189
192
 
190
193
  function isSafeFrameWindow() {
191
- const ws = utils.getWindowSelf();
194
+ const ws = getWindowSelf();
192
195
  return !!(ws.$sf && ws.$sf.ext);
193
196
  }
194
197
 
195
198
  function initAdagio() {
196
199
  if (canAccessTopWindow()) {
197
- currentWindow = (canAccessTopWindow()) ? utils.getWindowTop() : utils.getWindowSelf();
200
+ currentWindow = (canAccessTopWindow()) ? getWindowTop() : getWindowSelf();
198
201
  }
199
202
 
200
203
  const w = internal.getCurrentWindow();
@@ -211,7 +214,7 @@ function initAdagio() {
211
214
  try {
212
215
  GlobalExchange.prepareExchangeData(storageData);
213
216
  } catch (e) {
214
- utils.logError(LOG_PREFIX, e);
217
+ logError(LOG_PREFIX, e);
215
218
  }
216
219
  });
217
220
 
@@ -230,7 +233,7 @@ function getPageviewId() {
230
233
  const w = internal.getCurrentWindow();
231
234
 
232
235
  w.ADAGIO = w.ADAGIO || {};
233
- w.ADAGIO.pageviewId = w.ADAGIO.pageviewId || utils.generateUUID();
236
+ w.ADAGIO.pageviewId = w.ADAGIO.pageviewId || generateUUID();
234
237
 
235
238
  return w.ADAGIO.pageviewId;
236
239
  };
@@ -240,7 +243,7 @@ function getDevice() {
240
243
  return {
241
244
  userAgent: navigator.userAgent,
242
245
  language: navigator[language],
243
- dnt: utils.getDNT() ? 1 : 0,
246
+ dnt: getDNT() ? 1 : 0,
244
247
  geo: {},
245
248
  js: 1
246
249
  };
@@ -254,12 +257,12 @@ function getSite(bidderRequest) {
254
257
  const { refererInfo } = bidderRequest;
255
258
 
256
259
  if (canAccessTopWindow()) {
257
- const wt = utils.getWindowTop();
260
+ const wt = getWindowTop();
258
261
  domain = wt.location.hostname;
259
262
  page = wt.location.href;
260
263
  referrer = wt.document.referrer || '';
261
264
  } else if (refererInfo.reachedTop) {
262
- const url = utils.parseUrl(refererInfo.referer);
265
+ const url = parseUrl(refererInfo.referer);
263
266
  domain = url.hostname;
264
267
  page = refererInfo.referer;
265
268
  } else if (refererInfo.stack && refererInfo.stack.length && refererInfo.stack[0]) {
@@ -267,7 +270,7 @@ function getSite(bidderRequest) {
267
270
  // will be considered as "localhost" by the parseUrl function.
268
271
  // As the isBidRequestValid returns false when it does not reach the referer
269
272
  // this should never called.
270
- const url = utils.parseUrl(refererInfo.stack[0]);
273
+ const url = parseUrl(refererInfo.stack[0]);
271
274
  domain = url.hostname;
272
275
  }
273
276
 
@@ -280,9 +283,9 @@ function getSite(bidderRequest) {
280
283
 
281
284
  function getElementFromTopWindow(element, currentWindow) {
282
285
  try {
283
- if (utils.getWindowTop() === currentWindow) {
286
+ if (getWindowTop() === currentWindow) {
284
287
  if (!element.getAttribute('id')) {
285
- element.setAttribute('id', `adg-${utils.getUniqueIdentifierStr()}`);
288
+ element.setAttribute('id', `adg-${getUniqueIdentifierStr()}`);
286
289
  }
287
290
  return element;
288
291
  } else {
@@ -297,13 +300,13 @@ function getElementFromTopWindow(element, currentWindow) {
297
300
  return getElementFromTopWindow(frame, currentWindow.parent);
298
301
  }
299
302
  } catch (err) {
300
- utils.logWarn(`${LOG_PREFIX}`, err);
303
+ logWarn(`${LOG_PREFIX}`, err);
301
304
  return false;
302
305
  }
303
306
  };
304
307
 
305
308
  function autoDetectAdUnitElementIdFromGpt(adUnitCode) {
306
- const autoDetectedAdUnit = utils.getGptSlotInfoForAdUnitCode(adUnitCode);
309
+ const autoDetectedAdUnit = getGptSlotInfoForAdUnitCode(adUnitCode);
307
310
 
308
311
  if (autoDetectedAdUnit && autoDetectedAdUnit.divId) {
309
312
  return autoDetectedAdUnit.divId;
@@ -312,11 +315,11 @@ function autoDetectAdUnitElementIdFromGpt(adUnitCode) {
312
315
 
313
316
  function isRendererPreferredFromPublisher(bidRequest) {
314
317
  // renderer defined at adUnit level
315
- const adUnitRenderer = utils.deepAccess(bidRequest, 'renderer');
318
+ const adUnitRenderer = deepAccess(bidRequest, 'renderer');
316
319
  const hasValidAdUnitRenderer = !!(adUnitRenderer && adUnitRenderer.url && adUnitRenderer.render);
317
320
 
318
321
  // renderer defined at adUnit.mediaTypes level
319
- const mediaTypeRenderer = utils.deepAccess(bidRequest, 'mediaTypes.video.renderer');
322
+ const mediaTypeRenderer = deepAccess(bidRequest, 'mediaTypes.video.renderer');
320
323
  const hasValidMediaTypeRenderer = !!(mediaTypeRenderer && mediaTypeRenderer.url && mediaTypeRenderer.render);
321
324
 
322
325
  return !!(
@@ -332,10 +335,10 @@ function isRendererPreferredFromPublisher(bidRequest) {
332
335
  */
333
336
  function isNewSession(adagioStorage) {
334
337
  const now = Date.now();
335
- const { lastActivityTime, vwSmplg } = utils.deepAccess(adagioStorage, 'session', {});
338
+ const { lastActivityTime, vwSmplg } = deepAccess(adagioStorage, 'session', {});
336
339
  return (
337
- !utils.isNumber(lastActivityTime) ||
338
- !utils.isNumber(vwSmplg) ||
340
+ !isNumber(lastActivityTime) ||
341
+ !isNumber(vwSmplg) ||
339
342
  (now - lastActivityTime) > MAX_SESS_DURATION
340
343
  )
341
344
  }
@@ -344,7 +347,7 @@ function setPlayerName(bidRequest) {
344
347
  const playerName = (internal.isRendererPreferredFromPublisher(bidRequest)) ? 'other' : 'adagio';
345
348
 
346
349
  if (playerName === 'other') {
347
- utils.logWarn(`${LOG_PREFIX} renderer.backupOnly has not been set. Adagio recommends to use its own player to get expected behavior.`);
350
+ logWarn(`${LOG_PREFIX} renderer.backupOnly has not been set. Adagio recommends to use its own player to get expected behavior.`);
348
351
  }
349
352
 
350
353
  return playerName;
@@ -365,7 +368,7 @@ export const internal = {
365
368
  };
366
369
 
367
370
  function _getGdprConsent(bidderRequest) {
368
- if (!utils.deepAccess(bidderRequest, 'gdprConsent')) {
371
+ if (!deepAccess(bidderRequest, 'gdprConsent')) {
369
372
  return false;
370
373
  }
371
374
 
@@ -376,7 +379,7 @@ function _getGdprConsent(bidderRequest) {
376
379
  allowAuctionWithoutConsent
377
380
  } = bidderRequest.gdprConsent;
378
381
 
379
- return utils.cleanObj({
382
+ return cleanObj({
380
383
  apiVersion,
381
384
  consentString,
382
385
  consentRequired: gdprApplies ? 1 : 0,
@@ -391,22 +394,22 @@ function _getCoppa() {
391
394
  }
392
395
 
393
396
  function _getUspConsent(bidderRequest) {
394
- return (utils.deepAccess(bidderRequest, 'uspConsent')) ? { uspConsent: bidderRequest.uspConsent } : false;
397
+ return (deepAccess(bidderRequest, 'uspConsent')) ? { uspConsent: bidderRequest.uspConsent } : false;
395
398
  }
396
399
 
397
400
  function _getSchain(bidRequest) {
398
- return utils.deepAccess(bidRequest, 'schain');
401
+ return deepAccess(bidRequest, 'schain');
399
402
  }
400
403
 
401
404
  function _getEids(bidRequest) {
402
- if (utils.deepAccess(bidRequest, 'userId')) {
405
+ if (deepAccess(bidRequest, 'userId')) {
403
406
  return createEidsArray(bidRequest.userId);
404
407
  }
405
408
  }
406
409
 
407
410
  function _buildVideoBidRequest(bidRequest) {
408
- const videoAdUnitParams = utils.deepAccess(bidRequest, 'mediaTypes.video', {});
409
- const videoBidderParams = utils.deepAccess(bidRequest, 'params.video', {});
411
+ const videoAdUnitParams = deepAccess(bidRequest, 'mediaTypes.video', {});
412
+ const videoBidderParams = deepAccess(bidRequest, 'params.video', {});
410
413
  const computedParams = {};
411
414
 
412
415
  // Special case for playerSize.
@@ -436,7 +439,7 @@ function _buildVideoBidRequest(bidRequest) {
436
439
  bidRequest.mediaTypes.video[paramName] = videoParams[paramName];
437
440
  } else {
438
441
  delete bidRequest.mediaTypes.video[paramName];
439
- utils.logWarn(`${LOG_PREFIX} The OpenRTB video param ${paramName} has been skipped due to misformating. Please refer to OpenRTB 2.5 spec.`);
442
+ logWarn(`${LOG_PREFIX} The OpenRTB video param ${paramName} has been skipped due to misformating. Please refer to OpenRTB 2.5 spec.`);
440
443
  }
441
444
  }
442
445
  });
@@ -447,14 +450,14 @@ function _renderer(bid) {
447
450
  if (typeof window.ADAGIO.outstreamPlayer === 'function') {
448
451
  window.ADAGIO.outstreamPlayer(bid);
449
452
  } else {
450
- utils.logError(`${LOG_PREFIX} Adagio outstream player is not defined`);
453
+ logError(`${LOG_PREFIX} Adagio outstream player is not defined`);
451
454
  }
452
455
  });
453
456
  }
454
457
 
455
458
  function _parseNativeBidResponse(bid) {
456
459
  if (!bid.admNative || !Array.isArray(bid.admNative.assets)) {
457
- utils.logError(`${LOG_PREFIX} Invalid native response`);
460
+ logError(`${LOG_PREFIX} Invalid native response`);
458
461
  return;
459
462
  }
460
463
 
@@ -559,7 +562,7 @@ function _parseNativeBidResponse(bid) {
559
562
  }
560
563
 
561
564
  function _getFloors(bidRequest) {
562
- if (!utils.isFn(bidRequest.getFloor)) {
565
+ if (!isFn(bidRequest.getFloor)) {
563
566
  return false;
564
567
  }
565
568
 
@@ -572,9 +575,9 @@ function _getFloors(bidRequest) {
572
575
  size: []
573
576
  });
574
577
 
575
- floors.push(utils.cleanObj({
578
+ floors.push(cleanObj({
576
579
  mt: mediaType,
577
- s: utils.isArray(size) ? `${size[0]}x${size[1]}` : undefined,
580
+ s: isArray(size) ? `${size[0]}x${size[1]}` : undefined,
578
581
  f: (!isNaN(info.floor) && info.currency === CURRENCY) ? info.floor : DEFAULT_FLOOR
579
582
  }));
580
583
  }
@@ -584,7 +587,7 @@ function _getFloors(bidRequest) {
584
587
  const sizeProp = mediaType === VIDEO ? 'playerSize' : 'sizes';
585
588
 
586
589
  if (bidRequest.mediaTypes[mediaType][sizeProp] && bidRequest.mediaTypes[mediaType][sizeProp].length) {
587
- if (utils.isArray(bidRequest.mediaTypes[mediaType][sizeProp][0])) {
590
+ if (isArray(bidRequest.mediaTypes[mediaType][sizeProp][0])) {
588
591
  bidRequest.mediaTypes[mediaType][sizeProp].forEach(size => {
589
592
  getAndPush(mediaType, [size[0], size[1]]);
590
593
  });
@@ -621,7 +624,7 @@ export function setExtraParam(bid, paramName) {
621
624
  const adgGlobalConf = config.getConfig('adagio') || {};
622
625
  const ortb2Conf = config.getConfig('ortb2');
623
626
 
624
- const detected = adgGlobalConf[paramName] || utils.deepAccess(ortb2Conf, `site.ext.data.${paramName}`, null);
627
+ const detected = adgGlobalConf[paramName] || deepAccess(ortb2Conf, `site.ext.data.${paramName}`, null);
625
628
  if (detected) {
626
629
  bid.params[paramName] = detected;
627
630
  }
@@ -644,7 +647,7 @@ function autoFillParams(bid) {
644
647
  bid.params.placement = bid.adUnitCode;
645
648
  }
646
649
 
647
- bid.params.adUnitElementId = utils.deepAccess(bid, 'ortb2Imp.ext.data.elementId', null) || bid.params.adUnitElementId;
650
+ bid.params.adUnitElementId = deepAccess(bid, 'ortb2Imp.ext.data.elementId', null) || bid.params.adUnitElementId;
648
651
 
649
652
  if (!bid.params.adUnitElementId) {
650
653
  if (adgGlobalConf.useAdUnitCodeAsAdUnitElementId === true || bid.params.useAdUnitCodeAsAdUnitElementId === true) {
@@ -667,7 +670,7 @@ function getPageDimensions() {
667
670
  }
668
671
 
669
672
  // the page dimension can be computed on window.top only.
670
- const wt = utils.getWindowTop();
673
+ const wt = getWindowTop();
671
674
  const body = wt.document.querySelector('body');
672
675
 
673
676
  if (!body) {
@@ -692,17 +695,17 @@ function getViewPortDimensions() {
692
695
  const viewportDims = { w: 0, h: 0 };
693
696
 
694
697
  if (isSafeFrameWindow()) {
695
- const ws = utils.getWindowSelf();
698
+ const ws = getWindowSelf();
696
699
 
697
700
  if (typeof ws.$sf.ext.geom !== 'function') {
698
- utils.logWarn(LOG_PREFIX, 'Unable to compute from safeframe api.');
701
+ logWarn(LOG_PREFIX, 'Unable to compute from safeframe api.');
699
702
  return '';
700
703
  }
701
704
 
702
705
  const sfGeom = ws.$sf.ext.geom();
703
706
 
704
707
  if (!sfGeom || !sfGeom.win) {
705
- utils.logWarn(LOG_PREFIX, 'Unable to compute from safeframe api. Missing `geom().win` property');
708
+ logWarn(LOG_PREFIX, 'Unable to compute from safeframe api. Missing `geom().win` property');
706
709
  return '';
707
710
  }
708
711
 
@@ -710,7 +713,7 @@ function getViewPortDimensions() {
710
713
  viewportDims.h = Math.round(sfGeom.h);
711
714
  } else {
712
715
  // window.top based computing
713
- const wt = utils.getWindowTop();
716
+ const wt = getWindowTop();
714
717
  viewportDims.w = wt.innerWidth;
715
718
  viewportDims.h = wt.innerHeight;
716
719
  }
@@ -730,17 +733,17 @@ function getSlotPosition(adUnitElementId) {
730
733
  const position = { x: 0, y: 0 };
731
734
 
732
735
  if (isSafeFrameWindow()) {
733
- const ws = utils.getWindowSelf();
736
+ const ws = getWindowSelf();
734
737
 
735
738
  if (typeof ws.$sf.ext.geom !== 'function') {
736
- utils.logWarn(LOG_PREFIX, 'Unable to compute from safeframe api.');
739
+ logWarn(LOG_PREFIX, 'Unable to compute from safeframe api.');
737
740
  return '';
738
741
  }
739
742
 
740
743
  const sfGeom = ws.$sf.ext.geom();
741
744
 
742
745
  if (!sfGeom || !sfGeom.self) {
743
- utils.logWarn(LOG_PREFIX, 'Unable to compute from safeframe api. Missing `geom().self` property');
746
+ logWarn(LOG_PREFIX, 'Unable to compute from safeframe api. Missing `geom().self` property');
744
747
  return '';
745
748
  }
746
749
 
@@ -748,13 +751,13 @@ function getSlotPosition(adUnitElementId) {
748
751
  position.y = Math.round(sfGeom.l);
749
752
  } else if (canAccessTopWindow()) {
750
753
  // window.top based computing
751
- const wt = utils.getWindowTop();
754
+ const wt = getWindowTop();
752
755
  const d = wt.document;
753
756
 
754
757
  let domElement;
755
758
 
756
- if (utils.inIframe() === true) {
757
- const ws = utils.getWindowSelf();
759
+ if (inIframe() === true) {
760
+ const ws = getWindowSelf();
758
761
  const currentElement = ws.document.getElementById(adUnitElementId);
759
762
  domElement = internal.getElementFromTopWindow(currentElement, ws);
760
763
  } else {
@@ -813,7 +816,7 @@ function getDomLoadingDuration() {
813
816
  let domLoadingDuration = -1;
814
817
  let performance;
815
818
 
816
- performance = (canAccessTopWindow()) ? utils.getWindowTop().performance : utils.getWindowSelf().performance;
819
+ performance = (canAccessTopWindow()) ? getWindowTop().performance : getWindowSelf().performance;
817
820
 
818
821
  if (performance && performance.timing && performance.timing.navigationStart > 0) {
819
822
  const val = performance.timing.domLoading - performance.timing.navigationStart;
@@ -871,13 +874,13 @@ export const spec = {
871
874
  autoFillParams(bid);
872
875
 
873
876
  if (!internal.getRefererInfo().reachedTop) {
874
- utils.logWarn(`${LOG_PREFIX} the main page url is unreachabled.`);
877
+ logWarn(`${LOG_PREFIX} the main page url is unreachabled.`);
875
878
  // internal.enqueue(debugData());
876
879
  return false;
877
880
  }
878
881
 
879
882
  if (!(bid.params.organizationId && bid.params.site && bid.params.placement)) {
880
- utils.logWarn(`${LOG_PREFIX} at least one required param is missing.`);
883
+ logWarn(`${LOG_PREFIX} at least one required param is missing.`);
881
884
  // internal.enqueue(debugData());
882
885
  return false;
883
886
  }
@@ -896,7 +899,7 @@ export const spec = {
896
899
  const schain = _getSchain(validBidRequests[0]);
897
900
  const eids = _getEids(validBidRequests[0]) || [];
898
901
 
899
- const adUnits = utils._map(validBidRequests, (bidRequest) => {
902
+ const adUnits = _map(validBidRequests, (bidRequest) => {
900
903
  const globalFeatures = GlobalExchange.getOrSetGlobalFeatures();
901
904
  const features = {
902
905
  ...globalFeatures,
@@ -925,7 +928,7 @@ export const spec = {
925
928
  // Handle priceFloors module
926
929
  bidRequest.floors = _getFloors(bidRequest);
927
930
 
928
- if (utils.deepAccess(bidRequest, 'mediaTypes.video')) {
931
+ if (deepAccess(bidRequest, 'mediaTypes.video')) {
929
932
  _buildVideoBidRequest(bidRequest);
930
933
  }
931
934
 
@@ -936,7 +939,7 @@ export const spec = {
936
939
 
937
940
  // Group ad units by organizationId
938
941
  const groupedAdUnits = adUnits.reduce((groupedAdUnits, adUnit) => {
939
- const adUnitCopy = utils.deepClone(adUnit);
942
+ const adUnitCopy = deepClone(adUnit);
940
943
  adUnitCopy.params.organizationId = adUnitCopy.params.organizationId.toString();
941
944
 
942
945
  // remove useless props
@@ -950,12 +953,12 @@ export const spec = {
950
953
  }, {});
951
954
 
952
955
  // Build one request per organizationId
953
- const requests = utils._map(Object.keys(groupedAdUnits), organizationId => {
956
+ const requests = _map(Object.keys(groupedAdUnits), organizationId => {
954
957
  return {
955
958
  method: 'POST',
956
959
  url: ENDPOINT,
957
960
  data: {
958
- id: utils.generateUUID(),
961
+ id: generateUUID(),
959
962
  organizationId: organizationId,
960
963
  secure: secure,
961
964
  device: device,
@@ -1001,12 +1004,12 @@ export const spec = {
1001
1004
  const bidReq = (find(bidRequest.data.adUnits, bid => bid.bidId === bidObj.requestId));
1002
1005
 
1003
1006
  if (bidReq) {
1004
- bidObj.meta = utils.deepAccess(bidObj, 'meta', {});
1007
+ bidObj.meta = deepAccess(bidObj, 'meta', {});
1005
1008
  bidObj.meta.mediaType = bidObj.mediaType;
1006
1009
  bidObj.meta.advertiserDomains = (Array.isArray(bidObj.aDomain) && bidObj.aDomain.length) ? bidObj.aDomain : [];
1007
1010
 
1008
1011
  if (bidObj.mediaType === VIDEO) {
1009
- const mediaTypeContext = utils.deepAccess(bidReq, 'mediaTypes.video.context');
1012
+ const mediaTypeContext = deepAccess(bidReq, 'mediaTypes.video.context');
1010
1013
  // Adagio SSP returns a `vastXml` only. No `vastUrl` nor `videoCacheKey`.
1011
1014
  if (!bidObj.vastUrl && bidObj.vastXml) {
1012
1015
  bidObj.vastUrl = 'data:text/xml;charset=utf-8;base64,' + btoa(bidObj.vastXml.replace(/\\"/g, '"'));
@@ -1018,8 +1021,8 @@ export const spec = {
1018
1021
  adUnitCode: bidObj.adUnitCode,
1019
1022
  url: bidObj.urlRenderer || RENDERER_URL,
1020
1023
  config: {
1021
- ...utils.deepAccess(bidReq, 'mediaTypes.video'),
1022
- ...utils.deepAccess(bidObj, 'outstream', {})
1024
+ ...deepAccess(bidReq, 'mediaTypes.video'),
1025
+ ...deepAccess(bidObj, 'outstream', {})
1023
1026
  }
1024
1027
  });
1025
1028
 
@@ -1043,7 +1046,7 @@ export const spec = {
1043
1046
  }
1044
1047
  }
1045
1048
  } catch (err) {
1046
- utils.logError(err);
1049
+ logError(err);
1047
1050
  }
1048
1051
  return bidResponses;
1049
1052
  },
@@ -1077,7 +1080,7 @@ export const spec = {
1077
1080
  if (isOrtb) {
1078
1081
  autoFillParams(adagioBid);
1079
1082
 
1080
- adagioBid.params.auctionId = utils.deepAccess(adagioBidderRequest, 'auctionId');
1083
+ adagioBid.params.auctionId = deepAccess(adagioBidderRequest, 'auctionId');
1081
1084
 
1082
1085
  const globalFeatures = GlobalExchange.getOrSetGlobalFeatures();
1083
1086
  adagioBid.params.features = {
@@ -1090,7 +1093,7 @@ export const spec = {
1090
1093
  adagioBid.params.prebidVersion = '$prebid.version$';
1091
1094
  adagioBid.params.data = GlobalExchange.getExchangeData();
1092
1095
 
1093
- if (utils.deepAccess(adagioBid, 'mediaTypes.video.context') === OUTSTREAM) {
1096
+ if (deepAccess(adagioBid, 'mediaTypes.video.context') === OUTSTREAM) {
1094
1097
  adagioBid.params.playerName = setPlayerName(adagioBid);
1095
1098
  }
1096
1099