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
1
  import adapter from '../src/AnalyticsAdapter.js';
2
2
  import CONSTANTS from '../src/constants.json';
3
3
  import adapterManager from '../src/adapterManager.js';
4
- import * as utils from '../src/utils.js';
4
+ import { logError, parseUrl, _each } from '../src/utils.js';
5
5
  import {ajax} from '../src/ajax.js';
6
6
  import {getStorageManager} from '../src/storageManager.js';
7
7
  import {config} from '../src/config.js';
@@ -90,7 +90,7 @@ analyticsAdapter.originEnableAnalytics = analyticsAdapter.enableAnalytics;
90
90
 
91
91
  analyticsAdapter.enableAnalytics = (config) => {
92
92
  if (!config.options.pubId) {
93
- utils.logError('PubId is not defined. Analytics won\'t work');
93
+ logError('PubId is not defined. Analytics won\'t work');
94
94
  return;
95
95
  }
96
96
  analyticsAdapter.context = {
@@ -215,7 +215,7 @@ export function getUmtSource(pageUrl, referrer) {
215
215
  if (se) {
216
216
  return asUtm(se, ORGANIC, ORGANIC);
217
217
  }
218
- let parsedUrl = utils.parseUrl(pageUrl);
218
+ let parsedUrl = parseUrl(pageUrl);
219
219
  let [refHost, refPath] = getReferrer(referrer);
220
220
  if (refHost && refHost !== parsedUrl.hostname) {
221
221
  return asUtm(refHost, REFERRAL, REFERRAL, '', refPath);
@@ -242,17 +242,17 @@ export function getUmtSource(pageUrl, referrer) {
242
242
  }
243
243
 
244
244
  function getReferrer(referrer) {
245
- let ref = utils.parseUrl(referrer);
245
+ let ref = parseUrl(referrer);
246
246
  return [ref.hostname, ref.pathname];
247
247
  }
248
248
 
249
249
  function getUTM(pageUrl) {
250
- let urlParameters = utils.parseUrl(pageUrl).search;
250
+ let urlParameters = parseUrl(pageUrl).search;
251
251
  if (!urlParameters['utm_campaign'] || !urlParameters['utm_source']) {
252
252
  return;
253
253
  }
254
254
  let utmArgs = [];
255
- utils._each(UTM_TAGS, (utmTagName) => {
255
+ _each(UTM_TAGS, (utmTagName) => {
256
256
  let utmValue = urlParameters[utmTagName] || '';
257
257
  utmArgs.push(utmValue);
258
258
  });
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { deepAccess, parseSizesInput, isArray, deepSetValue, parseUrl, isStr, isNumber, logInfo } from '../src/utils.js';
2
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
3
3
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
4
4
  import {config} from '../src/config.js';
@@ -19,12 +19,12 @@ function buildImp(bidRequest) {
19
19
  tagid: bidRequest.adUnitCode
20
20
  };
21
21
  let mediaType;
22
- let bannerReq = utils.deepAccess(bidRequest, `mediaTypes.banner`);
23
- let videoReq = utils.deepAccess(bidRequest, `mediaTypes.video`);
22
+ let bannerReq = deepAccess(bidRequest, `mediaTypes.banner`);
23
+ let videoReq = deepAccess(bidRequest, `mediaTypes.video`);
24
24
  if (bannerReq) {
25
25
  let sizes = canonicalizeSizesArray(bannerReq.sizes);
26
26
  imp.banner = {
27
- format: utils.parseSizesInput(sizes)
27
+ format: parseSizesInput(sizes)
28
28
  };
29
29
  mediaType = BANNER;
30
30
  } else if (videoReq) {
@@ -51,7 +51,7 @@ function buildImp(bidRequest) {
51
51
  * @return Array[Array[Number]]
52
52
  */
53
53
  function canonicalizeSizesArray(sizes) {
54
- if (sizes.length === 2 && !utils.isArray(sizes[0])) {
54
+ if (sizes.length === 2 && !isArray(sizes[0])) {
55
55
  return [sizes];
56
56
  }
57
57
  return sizes;
@@ -67,23 +67,23 @@ function buildRequestParams(tags, bidderRequest) {
67
67
  };
68
68
  if (gdprConsent) {
69
69
  if (gdprConsent.gdprApplies !== undefined) {
70
- utils.deepSetValue(req, 'user.gdpr', ~~gdprConsent.gdprApplies);
70
+ deepSetValue(req, 'user.gdpr', ~~gdprConsent.gdprApplies);
71
71
  }
72
72
  if (gdprConsent.consentString !== undefined) {
73
- utils.deepSetValue(req, 'user.consent', gdprConsent.consentString);
73
+ deepSetValue(req, 'user.consent', gdprConsent.consentString);
74
74
  }
75
75
  }
76
76
  if (uspConsent) {
77
- utils.deepSetValue(req, 'user.us_privacy', uspConsent);
77
+ deepSetValue(req, 'user.us_privacy', uspConsent);
78
78
  }
79
79
  if (config.getConfig('coppa')) {
80
- utils.deepSetValue(req, 'user.coppa', 1);
80
+ deepSetValue(req, 'user.coppa', 1);
81
81
  }
82
82
  return req;
83
83
  }
84
84
 
85
85
  function buildSite(refInfo) {
86
- let loc = utils.parseUrl(refInfo.referer);
86
+ let loc = parseUrl(refInfo.referer);
87
87
  let result = {
88
88
  page: `${loc.protocol}://${loc.hostname}${loc.pathname}`,
89
89
  secure: ~~(loc.protocol === 'https')
@@ -126,23 +126,23 @@ function buildBid(tag) {
126
126
  }
127
127
 
128
128
  function fillBidMeta(bid, tag) {
129
- if (utils.isStr(tag.agencyName)) {
130
- utils.deepSetValue(bid, 'meta.agencyName', tag.agencyName);
129
+ if (isStr(tag.agencyName)) {
130
+ deepSetValue(bid, 'meta.agencyName', tag.agencyName);
131
131
  }
132
- if (utils.isNumber(tag.advertiserId)) {
133
- utils.deepSetValue(bid, 'meta.advertiserId', tag.advertiserId);
132
+ if (isNumber(tag.advertiserId)) {
133
+ deepSetValue(bid, 'meta.advertiserId', tag.advertiserId);
134
134
  }
135
- if (utils.isStr(tag.advertiserName)) {
136
- utils.deepSetValue(bid, 'meta.advertiserName', tag.advertiserName);
135
+ if (isStr(tag.advertiserName)) {
136
+ deepSetValue(bid, 'meta.advertiserName', tag.advertiserName);
137
137
  }
138
- if (utils.isArray(tag.advertiserDomains)) {
139
- utils.deepSetValue(bid, 'meta.advertiserDomains', tag.advertiserDomains);
138
+ if (isArray(tag.advertiserDomains)) {
139
+ deepSetValue(bid, 'meta.advertiserDomains', tag.advertiserDomains);
140
140
  }
141
- if (utils.isStr(tag.primaryCatId)) {
142
- utils.deepSetValue(bid, 'meta.primaryCatId', tag.primaryCatId);
141
+ if (isStr(tag.primaryCatId)) {
142
+ deepSetValue(bid, 'meta.primaryCatId', tag.primaryCatId);
143
143
  }
144
- if (utils.isArray(tag.secondaryCatIds)) {
145
- utils.deepSetValue(bid, 'meta.secondaryCatIds', tag.secondaryCatIds);
144
+ if (isArray(tag.secondaryCatIds)) {
145
+ deepSetValue(bid, 'meta.secondaryCatIds', tag.secondaryCatIds);
146
146
  }
147
147
  }
148
148
 
@@ -204,7 +204,7 @@ export const spec = {
204
204
  return [];
205
205
  }
206
206
  if (response.debug) {
207
- utils.logInfo(`ADKERNEL DEBUG:\n${response.debug}`);
207
+ logInfo(`ADKERNEL DEBUG:\n${response.debug}`);
208
208
  }
209
209
  return response.tags.map(buildBid);
210
210
  },
@@ -1,4 +1,7 @@
1
- import * as utils from '../src/utils.js';
1
+ import {
2
+ isStr, isArray, isPlainObject, deepSetValue, isNumber, deepAccess, getAdUnitSizes, parseGPTSingleSizeArrayToRtbSize,
3
+ cleanObj, contains, getDNT, parseUrl, createTrackPixelHtml, _each, isArrayOfNums
4
+ } from '../src/utils.js';
2
5
  import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
3
6
  import {registerBidder} from '../src/adapters/bidderFactory.js';
4
7
  import find from 'core-js-pure/features/array/find.js';
@@ -71,7 +74,9 @@ export const spec = {
71
74
  {code: 'adomega'},
72
75
  {code: 'denakop'},
73
76
  {code: 'rtbanalytica'},
74
- {code: 'unibots'}
77
+ {code: 'unibots'},
78
+ {code: 'ergadx'},
79
+ {code: 'turktelekom'}
75
80
  ],
76
81
  supportedMediaTypes: [BANNER, VIDEO, NATIVE],
77
82
 
@@ -154,24 +159,24 @@ export const spec = {
154
159
  prBid.mediaType = NATIVE;
155
160
  prBid.native = buildNativeAd(JSON.parse(rtbBid.adm));
156
161
  }
157
- if (utils.isStr(rtbBid.dealid)) {
162
+ if (isStr(rtbBid.dealid)) {
158
163
  prBid.dealId = rtbBid.dealid;
159
164
  }
160
- if (utils.isArray(rtbBid.adomain)) {
161
- utils.deepSetValue(prBid, 'meta.advertiserDomains', rtbBid.adomain);
165
+ if (isArray(rtbBid.adomain)) {
166
+ deepSetValue(prBid, 'meta.advertiserDomains', rtbBid.adomain);
162
167
  }
163
- if (utils.isArray(rtbBid.cat)) {
164
- utils.deepSetValue(prBid, 'meta.secondaryCatIds', rtbBid.cat);
168
+ if (isArray(rtbBid.cat)) {
169
+ deepSetValue(prBid, 'meta.secondaryCatIds', rtbBid.cat);
165
170
  }
166
- if (utils.isPlainObject(rtbBid.ext)) {
167
- if (utils.isNumber(rtbBid.ext.advertiser_id)) {
168
- utils.deepSetValue(prBid, 'meta.advertiserId', rtbBid.ext.advertiser_id);
171
+ if (isPlainObject(rtbBid.ext)) {
172
+ if (isNumber(rtbBid.ext.advertiser_id)) {
173
+ deepSetValue(prBid, 'meta.advertiserId', rtbBid.ext.advertiser_id);
169
174
  }
170
- if (utils.isStr(rtbBid.ext.advertiser_name)) {
171
- utils.deepSetValue(prBid, 'meta.advertiserName', rtbBid.ext.advertiser_name);
175
+ if (isStr(rtbBid.ext.advertiser_name)) {
176
+ deepSetValue(prBid, 'meta.advertiserName', rtbBid.ext.advertiser_name);
172
177
  }
173
- if (utils.isStr(rtbBid.ext.agency_name)) {
174
- utils.deepSetValue(prBid, 'meta.agencyName', rtbBid.ext.agency_name);
178
+ if (isStr(rtbBid.ext.agency_name)) {
179
+ deepSetValue(prBid, 'meta.agencyName', rtbBid.ext.agency_name);
175
180
  }
176
181
  }
177
182
 
@@ -241,19 +246,19 @@ function buildImp(bidRequest, secure) {
241
246
  var mediaType;
242
247
  var sizes = [];
243
248
 
244
- if (utils.deepAccess(bidRequest, 'mediaTypes.banner')) {
245
- sizes = utils.getAdUnitSizes(bidRequest);
249
+ if (deepAccess(bidRequest, 'mediaTypes.banner')) {
250
+ sizes = getAdUnitSizes(bidRequest);
246
251
  imp.banner = {
247
- format: sizes.map(wh => utils.parseGPTSingleSizeArrayToRtbSize(wh)),
252
+ format: sizes.map(wh => parseGPTSingleSizeArrayToRtbSize(wh)),
248
253
  topframe: 0
249
254
  };
250
255
  mediaType = BANNER;
251
- } else if (utils.deepAccess(bidRequest, 'mediaTypes.video')) {
252
- let video = utils.deepAccess(bidRequest, 'mediaTypes.video');
256
+ } else if (deepAccess(bidRequest, 'mediaTypes.video')) {
257
+ let video = deepAccess(bidRequest, 'mediaTypes.video');
253
258
  imp.video = {};
254
259
  if (video.playerSize) {
255
260
  sizes = video.playerSize[0];
256
- imp.video = Object.assign(imp.video, utils.parseGPTSingleSizeArrayToRtbSize(sizes) || {});
261
+ imp.video = Object.assign(imp.video, parseGPTSingleSizeArrayToRtbSize(sizes) || {});
257
262
  }
258
263
  if (bidRequest.params.video) {
259
264
  Object.keys(bidRequest.params.video)
@@ -261,7 +266,7 @@ function buildImp(bidRequest, secure) {
261
266
  .forEach(key => imp.video[key] = bidRequest.params.video[key]);
262
267
  }
263
268
  mediaType = VIDEO;
264
- } else if (utils.deepAccess(bidRequest, 'mediaTypes.native')) {
269
+ } else if (deepAccess(bidRequest, 'mediaTypes.native')) {
265
270
  let nativeRequest = buildNativeRequest(bidRequest.mediaTypes.native);
266
271
  imp.native = {
267
272
  ver: '1.1',
@@ -299,7 +304,7 @@ function buildNativeRequest(nativeReq) {
299
304
  if (desc.assetType === 'img') {
300
305
  assetRoot[desc.assetType] = buildImageAsset(desc, v);
301
306
  } else if (desc.assetType === 'data') {
302
- assetRoot.data = utils.cleanObj({type: desc.type, len: v.len});
307
+ assetRoot.data = cleanObj({type: desc.type, len: v.len});
303
308
  } else if (desc.assetType === 'title') {
304
309
  assetRoot.title = {len: v.len || 90};
305
310
  } else {
@@ -323,7 +328,7 @@ function buildImageAsset(desc, val) {
323
328
  img.wmin = val.aspect_ratios[0].min_width;
324
329
  img.hmin = val.aspect_ratios[0].min_height;
325
330
  }
326
- return utils.cleanObj(img);
331
+ return cleanObj(img);
327
332
  }
328
333
 
329
334
  /**
@@ -336,9 +341,9 @@ function isSyncMethodAllowed(syncRule, bidderCode) {
336
341
  if (!syncRule) {
337
342
  return false;
338
343
  }
339
- let bidders = utils.isArray(syncRule.bidders) ? syncRule.bidders : [bidderCode];
344
+ let bidders = isArray(syncRule.bidders) ? syncRule.bidders : [bidderCode];
340
345
  let rule = syncRule.filter === 'include';
341
- return utils.contains(bidders, bidderCode) === rule;
346
+ return contains(bidders, bidderCode) === rule;
342
347
  }
343
348
 
344
349
  /**
@@ -382,33 +387,33 @@ function buildRtbRequest(imps, bidderRequest, schain) {
382
387
  },
383
388
  'tmax': parseInt(timeout)
384
389
  };
385
- if (utils.getDNT()) {
390
+ if (getDNT()) {
386
391
  req.device.dnt = 1;
387
392
  }
388
393
  if (gdprConsent) {
389
394
  if (gdprConsent.gdprApplies !== undefined) {
390
- utils.deepSetValue(req, 'regs.ext.gdpr', ~~gdprConsent.gdprApplies);
395
+ deepSetValue(req, 'regs.ext.gdpr', ~~gdprConsent.gdprApplies);
391
396
  }
392
397
  if (gdprConsent.consentString !== undefined) {
393
- utils.deepSetValue(req, 'user.ext.consent', gdprConsent.consentString);
398
+ deepSetValue(req, 'user.ext.consent', gdprConsent.consentString);
394
399
  }
395
400
  }
396
401
  if (uspConsent) {
397
- utils.deepSetValue(req, 'regs.ext.us_privacy', uspConsent);
402
+ deepSetValue(req, 'regs.ext.us_privacy', uspConsent);
398
403
  }
399
404
  if (coppa) {
400
- utils.deepSetValue(req, 'regs.coppa', 1);
405
+ deepSetValue(req, 'regs.coppa', 1);
401
406
  }
402
407
  let syncMethod = getAllowedSyncMethod(bidderCode);
403
408
  if (syncMethod) {
404
- utils.deepSetValue(req, 'ext.adk_usersync', syncMethod);
409
+ deepSetValue(req, 'ext.adk_usersync', syncMethod);
405
410
  }
406
411
  if (schain) {
407
- utils.deepSetValue(req, 'source.ext.schain', schain);
412
+ deepSetValue(req, 'source.ext.schain', schain);
408
413
  }
409
414
  let eids = getExtendedUserIds(bidderRequest);
410
415
  if (eids) {
411
- utils.deepSetValue(req, 'user.ext.eids', eids);
416
+ deepSetValue(req, 'user.ext.eids', eids);
412
417
  }
413
418
  return req;
414
419
  }
@@ -426,7 +431,7 @@ function getLanguage() {
426
431
  * Creates site description object
427
432
  */
428
433
  function createSite(refInfo) {
429
- let url = utils.parseUrl(refInfo.referer);
434
+ let url = parseUrl(refInfo.referer);
430
435
  let site = {
431
436
  'domain': url.hostname,
432
437
  'page': `${url.protocol}://${url.hostname}${url.pathname}`
@@ -442,8 +447,8 @@ function createSite(refInfo) {
442
447
  }
443
448
 
444
449
  function getExtendedUserIds(bidderRequest) {
445
- let eids = utils.deepAccess(bidderRequest, 'bids.0.userIdAsEids');
446
- if (utils.isArray(eids)) {
450
+ let eids = deepAccess(bidderRequest, 'bids.0.userIdAsEids');
451
+ if (isArray(eids)) {
447
452
  return eids;
448
453
  }
449
454
  }
@@ -455,7 +460,7 @@ function getExtendedUserIds(bidderRequest) {
455
460
  function formatAdMarkup(bid) {
456
461
  let adm = bid.adm;
457
462
  if ('nurl' in bid) {
458
- adm += utils.createTrackPixelHtml(`${bid.nurl}&px=1`);
463
+ adm += createTrackPixelHtml(`${bid.nurl}&px=1`);
459
464
  }
460
465
  return adm;
461
466
  }
@@ -465,8 +470,8 @@ function formatAdMarkup(bid) {
465
470
  */
466
471
  function validateNativeAdUnit(adUnit) {
467
472
  return validateNativeImageSize(adUnit.image) && validateNativeImageSize(adUnit.icon) &&
468
- !utils.deepAccess(adUnit, 'privacyLink.required') && // not supported yet
469
- !utils.deepAccess(adUnit, 'privacyIcon.required'); // not supported yet
473
+ !deepAccess(adUnit, 'privacyLink.required') && // not supported yet
474
+ !deepAccess(adUnit, 'privacyIcon.required'); // not supported yet
470
475
  }
471
476
 
472
477
  /**
@@ -477,9 +482,9 @@ function validateNativeImageSize(img) {
477
482
  return true;
478
483
  }
479
484
  if (img.sizes) {
480
- return utils.isArrayOfNums(img.sizes, 2);
485
+ return isArrayOfNums(img.sizes, 2);
481
486
  }
482
- if (utils.isArray(img.aspect_ratios)) {
487
+ if (isArray(img.aspect_ratios)) {
483
488
  return img.aspect_ratios.length > 0 && img.aspect_ratios[0].min_height && img.aspect_ratios[0].min_width;
484
489
  }
485
490
  return true;
@@ -496,14 +501,14 @@ function buildNativeAd(nativeResp) {
496
501
  javascriptTrackers: jstracker ? [jstracker] : undefined,
497
502
  privacyLink: privacy,
498
503
  };
499
- utils._each(assets, asset => {
504
+ _each(assets, asset => {
500
505
  let assetName = NATIVE_MODEL[asset.id].name;
501
506
  let assetType = NATIVE_MODEL[asset.id].assetType;
502
- nativeAd[assetName] = asset[assetType].text || asset[assetType].value || utils.cleanObj({
507
+ nativeAd[assetName] = asset[assetType].text || asset[assetType].value || cleanObj({
503
508
  url: asset[assetType].url,
504
509
  width: asset[assetType].w,
505
510
  height: asset[assetType].h
506
511
  });
507
512
  });
508
- return utils.cleanObj(nativeAd);
513
+ return cleanObj(nativeAd);
509
514
  }
@@ -11,48 +11,48 @@ import { command as analyticsCommand, COMMAND } from './adlooxAnalyticsAdapter.j
11
11
  import { ajax } from '../src/ajax.js';
12
12
  import { EVENTS } from '../src/constants.json';
13
13
  import { targeting } from '../src/targeting.js';
14
- import * as utils from '../src/utils.js';
14
+ import { logInfo, isFn, logError, isPlainObject, isStr, isBoolean, deepSetValue, deepClone, timestamp, logWarn } from '../src/utils.js';
15
15
 
16
16
  const MODULE = 'adlooxAdserverVideo';
17
17
 
18
18
  const URL_VAST = 'https://j.adlooxtracking.com/ads/vast/tag.php';
19
19
 
20
20
  export function buildVideoUrl(options, callback) {
21
- utils.logInfo(MODULE, 'buildVideoUrl', options);
21
+ logInfo(MODULE, 'buildVideoUrl', options);
22
22
 
23
- if (!utils.isFn(callback)) {
24
- utils.logError(MODULE, 'invalid callback');
23
+ if (!isFn(callback)) {
24
+ logError(MODULE, 'invalid callback');
25
25
  return false;
26
26
  }
27
- if (!utils.isPlainObject(options)) {
28
- utils.logError(MODULE, 'missing options');
27
+ if (!isPlainObject(options)) {
28
+ logError(MODULE, 'missing options');
29
29
  return false;
30
30
  }
31
- if (!(options.url_vast === undefined || utils.isStr(options.url_vast))) {
32
- utils.logError(MODULE, 'invalid url_vast options value');
31
+ if (!(options.url_vast === undefined || isStr(options.url_vast))) {
32
+ logError(MODULE, 'invalid url_vast options value');
33
33
  return false;
34
34
  }
35
- if (!(utils.isPlainObject(options.adUnit) || utils.isPlainObject(options.bid))) {
36
- utils.logError(MODULE, "requires either 'adUnit' or 'bid' options value");
35
+ if (!(isPlainObject(options.adUnit) || isPlainObject(options.bid))) {
36
+ logError(MODULE, "requires either 'adUnit' or 'bid' options value");
37
37
  return false;
38
38
  }
39
- if (!utils.isStr(options.url)) {
40
- utils.logError(MODULE, 'invalid url options value');
39
+ if (!isStr(options.url)) {
40
+ logError(MODULE, 'invalid url options value');
41
41
  return false;
42
42
  }
43
- if (!(options.wrap === undefined || utils.isBoolean(options.wrap))) {
44
- utils.logError(MODULE, 'invalid wrap options value');
43
+ if (!(options.wrap === undefined || isBoolean(options.wrap))) {
44
+ logError(MODULE, 'invalid wrap options value');
45
45
  return false;
46
46
  }
47
- if (!(options.blob === undefined || utils.isBoolean(options.blob))) {
48
- utils.logError(MODULE, 'invalid blob options value');
47
+ if (!(options.blob === undefined || isBoolean(options.blob))) {
48
+ logError(MODULE, 'invalid blob options value');
49
49
  return false;
50
50
  }
51
51
 
52
52
  // same logic used in modules/dfpAdServerVideo.js
53
53
  options.bid = options.bid || targeting.getWinningBids(options.adUnit.code)[0];
54
54
 
55
- utils.deepSetValue(options.bid, 'ext.adloox.video.adserver', true);
55
+ deepSetValue(options.bid, 'ext.adloox.video.adserver', true);
56
56
 
57
57
  if (options.wrap !== false) {
58
58
  VASTWrapper(options, callback);
@@ -70,7 +70,7 @@ registerVideoSupport('adloox', {
70
70
  function track(options, callback) {
71
71
  callback(options.url);
72
72
 
73
- const bid = utils.deepClone(options.bid);
73
+ const bid = deepClone(options.bid);
74
74
  bid.ext.adloox.video.adserver = false;
75
75
 
76
76
  analyticsCommand(COMMAND.TRACK, {
@@ -85,13 +85,13 @@ function VASTWrapper(options, callback) {
85
85
  function process(result) {
86
86
  function getAd(xml) {
87
87
  if (!xml || xml.documentElement.tagName != 'VAST') {
88
- utils.logError(MODULE, 'not a VAST tag, using non-wrapped tracking');
88
+ logError(MODULE, 'not a VAST tag, using non-wrapped tracking');
89
89
  return;
90
90
  }
91
91
 
92
92
  const ads = xml.querySelectorAll('Ad');
93
93
  if (!ads.length) {
94
- utils.logError(MODULE, 'no VAST ads, using non-wrapped tracking');
94
+ logError(MODULE, 'no VAST ads, using non-wrapped tracking');
95
95
  return;
96
96
  }
97
97
 
@@ -132,7 +132,7 @@ function VASTWrapper(options, callback) {
132
132
 
133
133
  options.url = toBlob(chain[0]);
134
134
 
135
- const epoch = utils.timestamp() - new Date().getTimezoneOffset() * 60 * 1000;
135
+ const epoch = timestamp() - new Date().getTimezoneOffset() * 60 * 1000;
136
136
  const expires0 = options.bid.ttl * 1000 - (epoch - options.bid.responseTimestamp);
137
137
  const expires = Math.max(30 * 1000, expires0);
138
138
  setTimeout(function() { urls.forEach(u => URL.revokeObjectURL(u)) }, expires);
@@ -154,7 +154,7 @@ function VASTWrapper(options, callback) {
154
154
  const wrapper = getWrapper(ad);
155
155
  if (wrapper) {
156
156
  if (chain.length > 5) {
157
- utils.logWarn(MODULE, `got wrapped tag at depth ${chain.length}, not continuing`);
157
+ logWarn(MODULE, `got wrapped tag at depth ${chain.length}, not continuing`);
158
158
  blobify();
159
159
  return track(options, callback);
160
160
  }
@@ -191,7 +191,7 @@ function VASTWrapper(options, callback) {
191
191
  if (duration != 15) args.push([ 'duration', duration ]);
192
192
  if (skip) args.push([ 'skip', skip ]);
193
193
 
194
- utils.logInfo(MODULE, `processed VAST tag chain of depth ${chain.depth}, running callback`);
194
+ logInfo(MODULE, `processed VAST tag chain of depth ${chain.depth}, running callback`);
195
195
 
196
196
  analyticsCommand(COMMAND.URL, {
197
197
  url: (options.url_vast || URL_VAST) + '?',
@@ -202,7 +202,7 @@ function VASTWrapper(options, callback) {
202
202
  }
203
203
 
204
204
  function fetch(url, withoutcredentials) {
205
- utils.logInfo(MODULE, `fetching VAST ${url}`);
205
+ logInfo(MODULE, `fetching VAST ${url}`);
206
206
 
207
207
  ajax(url, {
208
208
  success: function(responseText, q) {
@@ -210,10 +210,10 @@ function VASTWrapper(options, callback) {
210
210
  },
211
211
  error: function(statusText, q) {
212
212
  if (!withoutcredentials) {
213
- utils.logWarn(MODULE, `unable to download (${statusText}), suspected CORS withCredentials problem, retrying without`);
213
+ logWarn(MODULE, `unable to download (${statusText}), suspected CORS withCredentials problem, retrying without`);
214
214
  return fetch(url, true);
215
215
  }
216
- utils.logError(MODULE, `failed to fetch (${statusText}), using non-wrapped tracking`);
216
+ logError(MODULE, `failed to fetch (${statusText}), using non-wrapped tracking`);
217
217
  process();
218
218
  }
219
219
  }, undefined, { withCredentials: !withoutcredentials });