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,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { inIframe, logError, logMessage, deepAccess } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
  const BIDDER_CODE = 'h12media';
4
4
  const DEFAULT_URL = 'https://bidder.h12-media.com/prebid/';
@@ -15,7 +15,7 @@ export const spec = {
15
15
  },
16
16
 
17
17
  buildRequests: function(validBidRequests, bidderRequest) {
18
- const isiframe = utils.inIframe();
18
+ const isiframe = inIframe();
19
19
  const screenSize = getClientDimensions();
20
20
  const docSize = getDocumentDimensions();
21
21
 
@@ -24,7 +24,7 @@ export const spec = {
24
24
  const requestUrl = bidderParams.endpointdom || DEFAULT_URL;
25
25
  let pubsubid = bidderParams.pubsubid || '';
26
26
  if (pubsubid && pubsubid.length > 32) {
27
- utils.logError('Bidder param \'pubsubid\' should be not more than 32 chars.');
27
+ logError('Bidder param \'pubsubid\' should be not more than 32 chars.');
28
28
  pubsubid = '';
29
29
  }
30
30
  const pubcontainerid = bidderParams.pubcontainerid;
@@ -57,7 +57,7 @@ export const spec = {
57
57
  try {
58
58
  windowTop = window.top;
59
59
  } catch (e) {
60
- utils.logMessage(e);
60
+ logMessage(e);
61
61
  windowTop = window;
62
62
  }
63
63
 
@@ -66,11 +66,11 @@ export const spec = {
66
66
  url: requestUrl,
67
67
  options: {withCredentials: true},
68
68
  data: {
69
- gdpr: !!utils.deepAccess(bidderRequest, 'gdprConsent.gdprApplies', false),
70
- gdpr_cs: utils.deepAccess(bidderRequest, 'gdprConsent.consentString', ''),
71
- usp: !!utils.deepAccess(bidderRequest, 'uspConsent', false),
72
- usp_cs: utils.deepAccess(bidderRequest, 'uspConsent', ''),
73
- topLevelUrl: utils.deepAccess(bidderRequest, 'refererInfo.referer', ''),
69
+ gdpr: !!deepAccess(bidderRequest, 'gdprConsent.gdprApplies', false),
70
+ gdpr_cs: deepAccess(bidderRequest, 'gdprConsent.consentString', ''),
71
+ usp: !!deepAccess(bidderRequest, 'uspConsent', false),
72
+ usp_cs: deepAccess(bidderRequest, 'uspConsent', ''),
73
+ topLevelUrl: deepAccess(bidderRequest, 'refererInfo.referer', ''),
74
74
  refererUrl: windowTop.document.referrer,
75
75
  isiframe,
76
76
  version: '$prebid.version$',
@@ -122,14 +122,14 @@ export const spec = {
122
122
  }
123
123
  return bidResponses;
124
124
  } catch (err) {
125
- utils.logError(err);
125
+ logError(err);
126
126
  }
127
127
  },
128
128
 
129
129
  getUserSyncs: function(syncOptions, serverResponses, gdprConsent, usPrivacy) {
130
130
  const syncs = [];
131
- const uspApplies = !!utils.deepAccess(usPrivacy, 'uspConsent', false);
132
- const uspString = utils.deepAccess(usPrivacy, 'uspConsent', '');
131
+ const uspApplies = !!deepAccess(usPrivacy, 'uspConsent', false);
132
+ const uspString = deepAccess(usPrivacy, 'uspConsent', '');
133
133
  gdprConsent = gdprConsent || {
134
134
  gdprApplies: false, consentString: '',
135
135
  };
@@ -8,7 +8,7 @@
8
8
  import {ajax} from '../src/ajax.js';
9
9
  import {getStorageManager} from '../src/storageManager.js';
10
10
  import {submodule} from '../src/hook.js';
11
- import * as utils from '../src/utils.js';
11
+ import { isFn, isStr, isPlainObject, logError } from '../src/utils.js';
12
12
 
13
13
  const MODULE_NAME = 'haloId';
14
14
  const AU_GVLID = 561;
@@ -21,9 +21,9 @@ export const storage = getStorageManager(AU_GVLID, 'halo');
21
21
  * @param {String} defaultVal
22
22
  */
23
23
  function paramOrDefault(param, defaultVal, arg) {
24
- if (utils.isFn(param)) {
24
+ if (isFn(param)) {
25
25
  return param(arg);
26
- } else if (utils.isStr(param)) {
26
+ } else if (isStr(param)) {
27
27
  return param;
28
28
  }
29
29
  return defaultVal;
@@ -44,7 +44,7 @@ export const haloIdSubmodule = {
44
44
  */
45
45
  decode(value) {
46
46
  let haloId = storage.getDataFromLocalStorage('auHaloId');
47
- if (utils.isStr(haloId)) {
47
+ if (isStr(haloId)) {
48
48
  return {haloId: haloId};
49
49
  }
50
50
  return (value && typeof value['haloId'] === 'string') ? { 'haloId': value['haloId'] } : undefined;
@@ -56,7 +56,7 @@ export const haloIdSubmodule = {
56
56
  * @returns {IdResponse|undefined}
57
57
  */
58
58
  getId(config) {
59
- if (!utils.isPlainObject(config.params)) {
59
+ if (!isPlainObject(config.params)) {
60
60
  config.params = {};
61
61
  }
62
62
  const url = paramOrDefault(config.params.url,
@@ -65,7 +65,7 @@ export const haloIdSubmodule = {
65
65
 
66
66
  const resp = function (callback) {
67
67
  let haloId = storage.getDataFromLocalStorage('auHaloId');
68
- if (utils.isStr(haloId)) {
68
+ if (isStr(haloId)) {
69
69
  const responseObj = {haloId: haloId};
70
70
  callback(responseObj);
71
71
  } else {
@@ -76,13 +76,13 @@ export const haloIdSubmodule = {
76
76
  try {
77
77
  responseObj = JSON.parse(response);
78
78
  } catch (error) {
79
- utils.logError(error);
79
+ logError(error);
80
80
  }
81
81
  }
82
82
  callback(responseObj);
83
83
  },
84
84
  error: error => {
85
- utils.logError(`${MODULE_NAME}: ID fetch encountered an error`, error);
85
+ logError(`${MODULE_NAME}: ID fetch encountered an error`, error);
86
86
  callback();
87
87
  }
88
88
  };
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js'
1
+ import { _map, logWarn, deepAccess, isArray } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js'
3
3
  import { auctionManager } from '../src/auctionManager.js'
4
4
  import { BANNER, VIDEO } from '../src/mediaTypes.js'
@@ -21,7 +21,7 @@ const placementTypes = {
21
21
  };
22
22
 
23
23
  function buildBidRequests(validBidRequests) {
24
- return utils._map(validBidRequests, function(validBidRequest) {
24
+ return _map(validBidRequests, function(validBidRequest) {
25
25
  const params = validBidRequest.params;
26
26
  const bidRequest = {
27
27
  bidId: validBidRequest.bidId,
@@ -63,7 +63,7 @@ const createRenderer = (bid) => {
63
63
  try {
64
64
  renderer.setRender(outstreamRender);
65
65
  } catch (err) {
66
- utils.logWarn('Prebid Error calling setRender on renderer', err);
66
+ logWarn('Prebid Error calling setRender on renderer', err);
67
67
  }
68
68
 
69
69
  return renderer;
@@ -143,8 +143,8 @@ function hasVideoMandatoryParams(mediaTypes) {
143
143
  const isHasVideoContext = !!mediaTypes.video && (mediaTypes.video.context === 'instream' || mediaTypes.video.context === 'outstream');
144
144
 
145
145
  const isPlayerSize =
146
- !!utils.deepAccess(mediaTypes, 'video.playerSize') &&
147
- utils.isArray(utils.deepAccess(mediaTypes, 'video.playerSize'));
146
+ !!deepAccess(mediaTypes, 'video.playerSize') &&
147
+ isArray(deepAccess(mediaTypes, 'video.playerSize'));
148
148
 
149
149
  return isHasVideoContext && isPlayerSize;
150
150
  }
@@ -237,8 +237,8 @@ export const spec = {
237
237
  let bidRequests = JSON.parse(bidRequest.data).bidRequests;
238
238
  const serverBody = serverResponse.body;
239
239
 
240
- if (serverBody && serverBody.bids && utils.isArray(serverBody.bids)) {
241
- return utils._map(serverBody.bids, function(bid) {
240
+ if (serverBody && serverBody.bids && isArray(serverBody.bids)) {
241
+ return _map(serverBody.bids, function(bid) {
242
242
  let rawBid = find(bidRequests, function (item) {
243
243
  return item.bidId === bid.bidId;
244
244
  });
@@ -1,13 +1,18 @@
1
1
  import { submodule } from '../src/hook.js';
2
- import { getGlobal } from '../src/prebidGlobal.js';
3
2
  import * as utils from '../src/utils.js';
4
- import { ajaxBuilder } from '../src/ajax.js';
3
+ import { ajax } from '../src/ajax.js';
4
+ import { getGlobal } from '../src/prebidGlobal.js';
5
5
 
6
6
  /** @type {string} */
7
7
  const MODULE_NAME = 'realTimeData';
8
8
  const SUBMODULE_NAME = 'ias';
9
-
10
- let bidResponses = {};
9
+ const IAS_HOST = 'https://pixel.adsafeprotected.com/services/pub';
10
+ export let iasTargeting = {};
11
+ const BRAND_SAFETY_OBJECT_FIELD_NAME = 'brandSafety';
12
+ const FRAUD_FIELD_NAME = 'fr';
13
+ const SLOTS_OBJECT_FIELD_NAME = 'slots';
14
+ const CUSTOM_FIELD_NAME = 'custom';
15
+ const IAS_KW = 'ias-kw';
11
16
 
12
17
  /**
13
18
  * Module init
@@ -16,6 +21,11 @@ let bidResponses = {};
16
21
  * @return {boolean}
17
22
  */
18
23
  export function init(config, userConsent) {
24
+ const params = config.params;
25
+ if (!params || !params.pubId) {
26
+ utils.logError('missing pubId param for IAS provider');
27
+ return false;
28
+ }
19
29
  return true;
20
30
  }
21
31
 
@@ -31,11 +41,12 @@ function stringifySlotSizes(sizes) {
31
41
  return result;
32
42
  }
33
43
 
34
- function stringifySlot(bidRequest, adUnitPath) {
44
+ function stringifySlot(bidRequest) {
35
45
  const sizes = utils.getAdUnitSizes(bidRequest);
36
46
  const id = bidRequest.code;
37
47
  const ss = stringifySlotSizes(sizes);
38
- const p = bidRequest.code;
48
+ const adSlot = utils.getGptSlotInfoForAdUnitCode(bidRequest.code);
49
+ const p = utils.isEmpty(adSlot) ? bidRequest.code : adSlot.gptSlot;
39
50
  const slot = { id, ss, p };
40
51
  const keyValues = utils.getKeys(slot).map(function (key) {
41
52
  return [key, slot[key]].join(':');
@@ -51,35 +62,29 @@ function stringifyScreenSize() {
51
62
  return [(window.screen && window.screen.width) || -1, (window.screen && window.screen.height) || -1].join('.');
52
63
  }
53
64
 
54
- function getPageLevelKeywords(response) {
65
+ function formatTargetingData(adUnit) {
55
66
  let result = {};
56
- if (response.brandSafety) {
57
- shallowMerge(result, response.brandSafety);
67
+ if (iasTargeting[BRAND_SAFETY_OBJECT_FIELD_NAME]) {
68
+ utils.mergeDeep(result, iasTargeting[BRAND_SAFETY_OBJECT_FIELD_NAME]);
69
+ }
70
+ if (iasTargeting[FRAUD_FIELD_NAME]) {
71
+ result[FRAUD_FIELD_NAME] = iasTargeting[FRAUD_FIELD_NAME];
72
+ }
73
+ if (iasTargeting[CUSTOM_FIELD_NAME] && IAS_KW in iasTargeting[CUSTOM_FIELD_NAME]) {
74
+ result[IAS_KW] = iasTargeting[CUSTOM_FIELD_NAME][IAS_KW];
75
+ }
76
+ if (iasTargeting[SLOTS_OBJECT_FIELD_NAME] && adUnit in iasTargeting[SLOTS_OBJECT_FIELD_NAME]) {
77
+ utils.mergeDeep(result, iasTargeting[SLOTS_OBJECT_FIELD_NAME][adUnit]);
58
78
  }
59
- result.fr = response.fr;
60
- result.custom = response.custom;
61
79
  return result;
62
80
  }
63
81
 
64
- function shallowMerge(dest, src) {
65
- utils.getKeys(src).reduce((dest, srcKey) => {
66
- dest[srcKey] = src[srcKey];
67
- return dest;
68
- }, dest);
69
- }
70
-
71
- function getBidRequestData(reqBidsConfigObj, callback, config) {
72
- const adUnits = reqBidsConfigObj.adUnits || getGlobal().adUnits;
73
- let isFinish = false;
74
-
75
- const IAS_HOST = 'https://pixel.adsafeprotected.com/services/pub';
76
- const { pubId, adUnitPath } = config.params;
77
- const anId = pubId;
82
+ function constructQueryString(anId, adUnits) {
78
83
  let queries = [];
79
84
  queries.push(['anId', anId]);
80
85
 
81
86
  queries = queries.concat(adUnits.reduce(function (acc, request) {
82
- acc.push(['slot', stringifySlot(request, adUnitPath)]);
87
+ acc.push(['slot', stringifySlot(request)]);
83
88
  return acc;
84
89
  }, []));
85
90
 
@@ -87,58 +92,69 @@ function getBidRequestData(reqBidsConfigObj, callback, config) {
87
92
  queries.push(['sr', stringifyScreenSize()]);
88
93
  queries.push(['url', encodeURIComponent(window.location.href)]);
89
94
 
90
- const queryString = encodeURI(queries.map(qs => qs.join('=')).join('&'));
91
-
92
- const ajax = ajaxBuilder();
93
-
94
- ajax(`${IAS_HOST}?${queryString}`, {
95
- success: function (response, request) {
96
- if (!isFinish) {
97
- if (request.status === 200) {
98
- const iasResponse = JSON.parse(response);
99
- const commonBidResponse = {};
100
- shallowMerge(commonBidResponse, getPageLevelKeywords(iasResponse));
101
- commonBidResponse.slots = iasResponse.slots;
102
- bidResponses = commonBidResponse;
103
- adUnits.forEach(adUnit => {
104
- adUnit.bids.forEach(bid => {
105
- const rtd = bid.rtd || {};
106
- const iasRtd = {};
107
- iasRtd[SUBMODULE_NAME] = Object.assign({}, rtd[SUBMODULE_NAME], bidResponses);
108
- bid.rtd = Object.assign({}, rtd, iasRtd);
109
- });
110
- });
111
- }
112
- isFinish = true;
113
- }
114
- callback();
115
- },
116
- error: function () {
117
- utils.logError('failed to retrieve targeting information');
118
- callback();
119
- }
120
- });
95
+ return encodeURI(queries.map(qs => qs.join('=')).join('&'));
96
+ }
97
+
98
+ function parseResponse(result) {
99
+ let iasResponse = {};
100
+ try {
101
+ iasResponse = JSON.parse(result);
102
+ } catch (err) {
103
+ utils.logError('error', err);
104
+ }
105
+ iasTargeting = iasResponse;
121
106
  }
122
107
 
123
108
  function getTargetingData(adUnits, config, userConsent) {
124
109
  const targeting = {};
125
- Object.keys(bidResponses).forEach(key => bidResponses[key] === undefined ? delete bidResponses[key] : {});
126
110
  try {
127
- adUnits.forEach(function(adUnit) {
128
- targeting[adUnit] = bidResponses;
129
- });
111
+ if (!utils.isEmpty(iasTargeting)) {
112
+ adUnits.forEach(function (adUnit) {
113
+ targeting[adUnit] = formatTargetingData(adUnit);
114
+ });
115
+ }
130
116
  } catch (err) {
131
117
  utils.logError('error', err);
132
118
  }
119
+ utils.logInfo('IAS targeting', targeting);
133
120
  return targeting;
134
121
  }
135
122
 
123
+ export function getApiCallback() {
124
+ return {
125
+ success: function (response, req) {
126
+ if (req.status === 200) {
127
+ try {
128
+ parseResponse(response);
129
+ } catch (e) {
130
+ utils.logError('Unable to parse IAS response.', e);
131
+ }
132
+ }
133
+ },
134
+ error: function () {
135
+ utils.logError('failed to retrieve IAS data');
136
+ }
137
+ }
138
+ }
139
+
140
+ function getBidRequestData(reqBidsConfigObj, callback, config, userConsent) {
141
+ const adUnits = reqBidsConfigObj.adUnits || getGlobal().adUnits;
142
+ const { pubId } = config.params;
143
+ const queryString = constructQueryString(pubId, adUnits);
144
+ ajax(
145
+ `${IAS_HOST}?${queryString}`,
146
+ getApiCallback(),
147
+ undefined,
148
+ { method: 'GET' }
149
+ );
150
+ }
151
+
136
152
  /** @type {RtdSubmodule} */
137
153
  export const iasSubModule = {
138
154
  name: SUBMODULE_NAME,
139
155
  init: init,
140
- getBidRequestData: getBidRequestData,
141
- getTargetingData: getTargetingData
156
+ getTargetingData: getTargetingData,
157
+ getBidRequestData: getBidRequestData
142
158
  };
143
159
 
144
160
  submodule(MODULE_NAME, iasSubModule);
@@ -5,7 +5,7 @@
5
5
  * @requires module:modules/userId
6
6
  */
7
7
 
8
- import * as utils from '../src/utils.js'
8
+ import { deepAccess, logInfo, deepSetValue, logError, isEmpty, isEmptyStr, logWarn } 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';
@@ -67,25 +67,25 @@ export const id5IdSubmodule = {
67
67
  }
68
68
  };
69
69
 
70
- const abTestingResult = utils.deepAccess(value, 'ab_testing.result');
70
+ const abTestingResult = deepAccess(value, 'ab_testing.result');
71
71
  switch (abTestingResult) {
72
72
  case 'control':
73
73
  // A/B Testing is enabled and user is in the Control Group
74
- utils.logInfo(LOG_PREFIX + 'A/B Testing - user is in the Control Group: ID5 ID is NOT exposed');
75
- utils.deepSetValue(responseObj, 'id5id.ext.abTestingControlGroup', true);
74
+ logInfo(LOG_PREFIX + 'A/B Testing - user is in the Control Group: ID5 ID is NOT exposed');
75
+ deepSetValue(responseObj, 'id5id.ext.abTestingControlGroup', true);
76
76
  break;
77
77
  case 'error':
78
78
  // A/B Testing is enabled, but configured improperly, so skip A/B testing
79
- utils.logError(LOG_PREFIX + 'A/B Testing ERROR! controlGroupPct must be a number >= 0 and <= 1');
79
+ logError(LOG_PREFIX + 'A/B Testing ERROR! controlGroupPct must be a number >= 0 and <= 1');
80
80
  break;
81
81
  case 'normal':
82
82
  // A/B Testing is enabled but user is not in the Control Group, so ID5 ID is shared
83
- utils.logInfo(LOG_PREFIX + 'A/B Testing - user is NOT in the Control Group');
84
- utils.deepSetValue(responseObj, 'id5id.ext.abTestingControlGroup', false);
83
+ logInfo(LOG_PREFIX + 'A/B Testing - user is NOT in the Control Group');
84
+ deepSetValue(responseObj, 'id5id.ext.abTestingControlGroup', false);
85
85
  break;
86
86
  }
87
87
 
88
- utils.logInfo(LOG_PREFIX + 'Decoded ID', responseObj);
88
+ logInfo(LOG_PREFIX + 'Decoded ID', responseObj);
89
89
 
90
90
  return responseObj;
91
91
  },
@@ -120,19 +120,19 @@ export const id5IdSubmodule = {
120
120
  };
121
121
 
122
122
  // pass in optional data, but only if populated
123
- if (hasGdpr && typeof consentData.consentString !== 'undefined' && !utils.isEmpty(consentData.consentString) && !utils.isEmptyStr(consentData.consentString)) {
123
+ if (hasGdpr && typeof consentData.consentString !== 'undefined' && !isEmpty(consentData.consentString) && !isEmptyStr(consentData.consentString)) {
124
124
  data.gdpr_consent = consentData.consentString;
125
125
  }
126
- if (typeof usp !== 'undefined' && !utils.isEmpty(usp) && !utils.isEmptyStr(usp)) {
126
+ if (typeof usp !== 'undefined' && !isEmpty(usp) && !isEmptyStr(usp)) {
127
127
  data.us_privacy = usp;
128
128
  }
129
- if (typeof signature !== 'undefined' && !utils.isEmptyStr(signature)) {
129
+ if (typeof signature !== 'undefined' && !isEmptyStr(signature)) {
130
130
  data.s = signature;
131
131
  }
132
- if (typeof config.params.pd !== 'undefined' && !utils.isEmptyStr(config.params.pd)) {
132
+ if (typeof config.params.pd !== 'undefined' && !isEmptyStr(config.params.pd)) {
133
133
  data.pd = config.params.pd;
134
134
  }
135
- if (typeof config.params.provider !== 'undefined' && !utils.isEmptyStr(config.params.provider)) {
135
+ if (typeof config.params.provider !== 'undefined' && !isEmptyStr(config.params.provider)) {
136
136
  data.provider = config.params.provider;
137
137
  }
138
138
 
@@ -151,7 +151,7 @@ export const id5IdSubmodule = {
151
151
  if (response) {
152
152
  try {
153
153
  responseObj = JSON.parse(response);
154
- utils.logInfo(LOG_PREFIX + 'response received from the server', responseObj);
154
+ logInfo(LOG_PREFIX + 'response received from the server', responseObj);
155
155
 
156
156
  resetNb(config.params.partner);
157
157
 
@@ -165,17 +165,17 @@ export const id5IdSubmodule = {
165
165
  removeLegacyCookies(config.params.partner);
166
166
  }
167
167
  } catch (error) {
168
- utils.logError(LOG_PREFIX + error);
168
+ logError(LOG_PREFIX + error);
169
169
  }
170
170
  }
171
171
  callback(responseObj);
172
172
  },
173
173
  error: error => {
174
- utils.logError(LOG_PREFIX + 'getId fetch encountered an error', error);
174
+ logError(LOG_PREFIX + 'getId fetch encountered an error', error);
175
175
  callback();
176
176
  }
177
177
  };
178
- utils.logInfo(LOG_PREFIX + 'requesting an ID from the server', data);
178
+ logInfo(LOG_PREFIX + 'requesting an ID from the server', data);
179
179
  ajax(url, callbacks, JSON.stringify(data), { method: 'POST', withCredentials: true });
180
180
  };
181
181
  return { callback: resp };
@@ -198,29 +198,29 @@ export const id5IdSubmodule = {
198
198
  const partnerId = (config && config.params && config.params.partner) || 0;
199
199
  incrementNb(partnerId);
200
200
 
201
- utils.logInfo(LOG_PREFIX + 'using cached ID', cacheIdObj);
201
+ logInfo(LOG_PREFIX + 'using cached ID', cacheIdObj);
202
202
  return cacheIdObj;
203
203
  }
204
204
  };
205
205
 
206
206
  function hasRequiredConfig(config) {
207
207
  if (!config || !config.params || !config.params.partner || typeof config.params.partner !== 'number') {
208
- utils.logError(LOG_PREFIX + 'partner required to be defined as a number');
208
+ logError(LOG_PREFIX + 'partner required to be defined as a number');
209
209
  return false;
210
210
  }
211
211
 
212
212
  if (!config.storage || !config.storage.type || !config.storage.name) {
213
- utils.logError(LOG_PREFIX + 'storage required to be set');
213
+ logError(LOG_PREFIX + 'storage required to be set');
214
214
  return false;
215
215
  }
216
216
 
217
217
  // in a future release, we may return false if storage type or name are not set as required
218
218
  if (config.storage.type !== LOCAL_STORAGE) {
219
- utils.logWarn(LOG_PREFIX + `storage type recommended to be '${LOCAL_STORAGE}'. In a future release this may become a strict requirement`);
219
+ logWarn(LOG_PREFIX + `storage type recommended to be '${LOCAL_STORAGE}'. In a future release this may become a strict requirement`);
220
220
  }
221
221
  // in a future release, we may return false if storage type or name are not set as required
222
222
  if (config.storage.name !== ID5_STORAGE_NAME) {
223
- utils.logWarn(LOG_PREFIX + `storage name recommended to be '${ID5_STORAGE_NAME}'. In a future release this may become a strict requirement`);
223
+ logWarn(LOG_PREFIX + `storage name recommended to be '${ID5_STORAGE_NAME}'. In a future release this may become a strict requirement`);
224
224
  }
225
225
 
226
226
  return true;
@@ -265,7 +265,7 @@ function getLegacyCookieSignature() {
265
265
  * @param {integer} partnerId
266
266
  */
267
267
  function removeLegacyCookies(partnerId) {
268
- utils.logInfo(LOG_PREFIX + 'removing legacy cookies');
268
+ logInfo(LOG_PREFIX + 'removing legacy cookies');
269
269
  LEGACY_COOKIE_NAMES.forEach(function(cookie) {
270
270
  storage.setCookie(`${cookie}`, ' ', expDaysStr(-1));
271
271
  storage.setCookie(`${cookie}_nb`, ' ', expDaysStr(-1));
@@ -313,7 +313,7 @@ export function storeInLocalStorage(key, value, expDays) {
313
313
  * @returns {Object} an object which always contains at least the property "enabled"
314
314
  */
315
315
  function getAbTestingConfig(config) {
316
- return utils.deepAccess(config, 'params.abTesting', { enabled: false });
316
+ return deepAccess(config, 'params.abTesting', { enabled: false });
317
317
  }
318
318
 
319
319
  submodule('userId', id5IdSubmodule);