prebid.js 9.4.0 → 9.5.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 (363) hide show
  1. package/.eslintrc.js +31 -5
  2. package/.github/workflows/jscpd.yml +2 -2
  3. package/.github/workflows/linter.yml +107 -0
  4. package/creative/crossDomain.js +6 -3
  5. package/dist/33acrossAnalyticsAdapter.js +1 -1
  6. package/dist/33acrossBidAdapter.js +1 -1
  7. package/dist/33acrossIdSystem.js +1 -1
  8. package/dist/BTBidAdapter.js +1 -1
  9. package/dist/adagioAnalyticsAdapter.js +1 -1
  10. package/dist/adagioBidAdapter.js +1 -1
  11. package/dist/adagioRtdProvider.js +1 -1
  12. package/dist/adagioUtils.js +1 -1
  13. package/dist/addefendBidAdapter.js +1 -1
  14. package/dist/adgenerationBidAdapter.js +1 -1
  15. package/dist/adkernelAdnBidAdapter.js +1 -1
  16. package/dist/adkernelBidAdapter.js +1 -1
  17. package/dist/adkernelUtils.js +1 -0
  18. package/dist/adlooxRtdProvider.js +1 -1
  19. package/dist/admixerBidAdapter.js +1 -1
  20. package/dist/adqueryBidAdapter.js +1 -1
  21. package/dist/adrelevantisBidAdapter.js +1 -1
  22. package/dist/adstirBidAdapter.js +1 -1
  23. package/dist/adtrgtmeBidAdapter.js +1 -1
  24. package/dist/advRedAnalyticsAdapter.js +1 -0
  25. package/dist/adxcgAnalyticsAdapter.js +1 -1
  26. package/dist/adxcgBidAdapter.js +1 -1
  27. package/dist/adyoulikeBidAdapter.js +1 -1
  28. package/dist/agmaAnalyticsAdapter.js +1 -1
  29. package/dist/ajaBidAdapter.js +1 -1
  30. package/dist/akamaiDapRtdProvider.js +1 -1
  31. package/dist/amxBidAdapter.js +1 -1
  32. package/dist/amxIdSystem.js +1 -1
  33. package/dist/anonymisedRtdProvider.js +1 -1
  34. package/dist/apacdexBidAdapter.js +1 -1
  35. package/dist/appierAnalyticsAdapter.js +1 -1
  36. package/dist/appnexusBidAdapter.js +1 -1
  37. package/dist/asoBidAdapter.js +1 -1
  38. package/dist/axonixBidAdapter.js +1 -1
  39. package/dist/azerionedgeRtdProvider.js +1 -1
  40. package/dist/bidglassBidAdapter.js +1 -1
  41. package/dist/big-richmediaBidAdapter.js +1 -1
  42. package/dist/bridBidAdapter.js +1 -1
  43. package/dist/bridgewellBidAdapter.js +1 -1
  44. package/dist/brightMountainMediaBidAdapter.js +1 -1
  45. package/dist/carodaBidAdapter.js +1 -1
  46. package/dist/chtnwBidAdapter.js +1 -1
  47. package/dist/chunk-core.js +1 -1
  48. package/dist/concertBidAdapter.js +1 -1
  49. package/dist/connatixBidAdapter.js +1 -1
  50. package/dist/connectadBidAdapter.js +1 -1
  51. package/dist/consumableBidAdapter.js +1 -1
  52. package/dist/contxtfulRtdProvider.js +1 -1
  53. package/dist/conversantAnalyticsAdapter.js +1 -1
  54. package/dist/conversantBidAdapter.js +1 -1
  55. package/dist/craftBidAdapter.js +1 -1
  56. package/dist/criteoBidAdapter.js +1 -1
  57. package/dist/currencyUtils.js +1 -1
  58. package/dist/cwireBidAdapter.js +1 -1
  59. package/dist/dailymotionBidAdapter.js +1 -1
  60. package/dist/debugging-standalone.js +1 -1
  61. package/dist/dependencies.json +43 -7
  62. package/dist/dfpAdServerVideo.js +1 -1
  63. package/dist/dfpAdpod.js +1 -1
  64. package/dist/dfpUtils.js +1 -1
  65. package/dist/discoveryBidAdapter.js +1 -1
  66. package/dist/dspxBidAdapter.js +1 -1
  67. package/dist/dxkultureBidAdapter.js +1 -1
  68. package/dist/eightPodAnalyticsAdapter.js +1 -1
  69. package/dist/eightPodBidAdapter.js +1 -1
  70. package/dist/eplanningBidAdapter.js +1 -1
  71. package/dist/euidIdSystem.js +1 -1
  72. package/dist/exadsBidAdapter.js +1 -1
  73. package/dist/feedadBidAdapter.js +1 -1
  74. package/dist/finativeBidAdapter.js +1 -1
  75. package/dist/fintezaAnalyticsAdapter.js +1 -1
  76. package/dist/fpdUtils.js +1 -0
  77. package/dist/freewheel-sspBidAdapter.js +1 -1
  78. package/dist/gmosspBidAdapter.js +1 -1
  79. package/dist/goldbachBidAdapter.js +1 -1
  80. package/dist/gptPreAuction.js +1 -1
  81. package/dist/gptUtils.js +1 -1
  82. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  83. package/dist/greenbidsRtdProvider.js +1 -1
  84. package/dist/gridBidAdapter.js +1 -1
  85. package/dist/growthCodeAnalyticsAdapter.js +1 -1
  86. package/dist/growthCodeRtdProvider.js +1 -1
  87. package/dist/gumgumBidAdapter.js +1 -1
  88. package/dist/h12mediaBidAdapter.js +1 -1
  89. package/dist/hypelabBidAdapter.js +1 -1
  90. package/dist/id5AnalyticsAdapter.js +1 -1
  91. package/dist/id5IdSystem.js +1 -1
  92. package/dist/imdsBidAdapter.js +1 -1
  93. package/dist/improvedigitalBidAdapter.js +1 -1
  94. package/dist/insticatorBidAdapter.js +1 -1
  95. package/dist/intentIqAnalyticsAdapter.js +1 -0
  96. package/dist/ixBidAdapter.js +1 -1
  97. package/dist/jixieBidAdapter.js +1 -1
  98. package/dist/justpremiumBidAdapter.js +1 -1
  99. package/dist/jwplayerBidAdapter.js +1 -1
  100. package/dist/jwplayerRtdProvider.js +1 -1
  101. package/dist/kargoBidAdapter.js +1 -1
  102. package/dist/kimberliteBidAdapter.js +1 -1
  103. package/dist/konduitAnalyticsAdapter.js +1 -1
  104. package/dist/kueezBidAdapter.js +1 -1
  105. package/dist/lassoBidAdapter.js +1 -1
  106. package/dist/lifestreetBidAdapter.js +1 -1
  107. package/dist/liveIntentIdSystem.js +1 -1
  108. package/dist/logicadBidAdapter.js +1 -1
  109. package/dist/loglyliftBidAdapter.js +1 -1
  110. package/dist/luceadBidAdapter.js +1 -1
  111. package/dist/mabidderBidAdapter.js +1 -1
  112. package/dist/magniteAnalyticsAdapter.js +1 -1
  113. package/dist/malltvAnalyticsAdapter.js +1 -1
  114. package/dist/marsmediaBidAdapter.js +1 -1
  115. package/dist/mediafuseBidAdapter.js +1 -1
  116. package/dist/mediagoBidAdapter.js +1 -1
  117. package/dist/medianetAnalyticsAdapter.js +1 -1
  118. package/dist/medianetBidAdapter.js +1 -1
  119. package/dist/mediasquareBidAdapter.js +1 -1
  120. package/dist/mgidBidAdapter.js +1 -1
  121. package/dist/minutemediaBidAdapter.js +1 -1
  122. package/dist/missenaBidAdapter.js +1 -1
  123. package/dist/mobianRtdProvider.js +1 -1
  124. package/dist/nextMillenniumBidAdapter.js +1 -1
  125. package/dist/nexx360BidAdapter.js +1 -1
  126. package/dist/nobidAnalyticsAdapter.js +1 -1
  127. package/dist/nobidBidAdapter.js +1 -1
  128. package/dist/not-for-prod/prebid.js +201 -193
  129. package/dist/oguryBidAdapter.js +1 -1
  130. package/dist/onetagBidAdapter.js +1 -1
  131. package/dist/ooloAnalyticsAdapter.js +1 -1
  132. package/dist/openwebBidAdapter.js +1 -1
  133. package/dist/openxBidAdapter.js +1 -1
  134. package/dist/optidigitalBidAdapter.js +1 -1
  135. package/dist/optoutBidAdapter.js +1 -1
  136. package/dist/orbidderBidAdapter.js +1 -1
  137. package/dist/outbrainBidAdapter.js +1 -1
  138. package/dist/paapi.js +1 -1
  139. package/dist/permutiveRtdProvider.js +1 -1
  140. package/dist/pixfutureBidAdapter.js +1 -1
  141. package/dist/playdigoBidAdapter.js +1 -1
  142. package/dist/prebidServerBidAdapter.js +1 -1
  143. package/dist/programmaticaBidAdapter.js +1 -1
  144. package/dist/publinkIdSystem.js +1 -1
  145. package/dist/publirBidAdapter.js +1 -1
  146. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  147. package/dist/pubmaticBidAdapter.js +1 -1
  148. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  149. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  150. package/dist/pxyzBidAdapter.js +1 -1
  151. package/dist/quantcastBidAdapter.js +1 -1
  152. package/dist/readpeakBidAdapter.js +1 -1
  153. package/dist/relaidoBidAdapter.js +1 -1
  154. package/dist/relevatehealthBidAdapter.js +1 -1
  155. package/dist/retailspotBidAdapter.js +1 -1
  156. package/dist/rhythmoneBidAdapter.js +1 -1
  157. package/dist/ringieraxelspringerBidAdapter.js +1 -1
  158. package/dist/riseBidAdapter.js +1 -1
  159. package/dist/rubiconBidAdapter.js +1 -1
  160. package/dist/schainSerializer.js +1 -0
  161. package/dist/seedingAllianceBidAdapter.js +1 -1
  162. package/dist/seedtagBidAdapter.js +1 -1
  163. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  164. package/dist/sharethroughBidAdapter.js +1 -1
  165. package/dist/shinezBidAdapter.js +1 -1
  166. package/dist/sizeMapping.js +1 -1
  167. package/dist/sizeUtils.js +1 -1
  168. package/dist/smaatoBidAdapter.js +1 -1
  169. package/dist/smartadserverBidAdapter.js +1 -1
  170. package/dist/smartxBidAdapter.js +1 -1
  171. package/dist/smilewantedBidAdapter.js +1 -1
  172. package/dist/snigelBidAdapter.js +1 -1
  173. package/dist/sonobiBidAdapter.js +1 -1
  174. package/dist/sovrnBidAdapter.js +1 -1
  175. package/dist/sspBCBidAdapter.js +1 -1
  176. package/dist/stnBidAdapter.js +1 -1
  177. package/dist/stvBidAdapter.js +1 -1
  178. package/dist/sublimeBidAdapter.js +1 -1
  179. package/dist/symitriDapRtdProvider.js +1 -0
  180. package/dist/taboolaBidAdapter.js +1 -1
  181. package/dist/tappxBidAdapter.js +1 -1
  182. package/dist/targetVideoBidAdapter.js +1 -1
  183. package/dist/targetVideoUtils.js +1 -0
  184. package/dist/teadsBidAdapter.js +1 -1
  185. package/dist/terceptAnalyticsAdapter.js +1 -1
  186. package/dist/themoneytizerBidAdapter.js +1 -1
  187. package/dist/trionBidAdapter.js +1 -1
  188. package/dist/tripleliftBidAdapter.js +1 -1
  189. package/dist/ttdBidAdapter.js +1 -1
  190. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  191. package/dist/uid2IdSystem.js +1 -1
  192. package/dist/underdogmediaBidAdapter.js +1 -1
  193. package/dist/undertoneBidAdapter.js +1 -1
  194. package/dist/unrulyBidAdapter.js +1 -1
  195. package/dist/userAgentUtils.js +1 -0
  196. package/dist/utiqIdSystem.js +1 -1
  197. package/dist/vidazooUtils.js +1 -1
  198. package/dist/videobyteBidAdapter.js +1 -1
  199. package/dist/visxBidAdapter.js +1 -1
  200. package/dist/vuukleBidAdapter.js +1 -1
  201. package/dist/widespaceBidAdapter.js +1 -1
  202. package/dist/winrBidAdapter.js +1 -1
  203. package/dist/yahooAdsBidAdapter.js +1 -1
  204. package/dist/yandexIdSystem.js +1 -1
  205. package/dist/yieldmoBidAdapter.js +1 -1
  206. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  207. package/integrationExamples/gpt/x-domain/creative.html +1 -1
  208. package/libraries/adkernelUtils/adkernelUtils.js +11 -0
  209. package/libraries/currencyUtils/floor.js +23 -0
  210. package/libraries/dfpUtils/dfpUtils.js +7 -0
  211. package/libraries/fpdUtils/deviceInfo.js +58 -0
  212. package/libraries/fpdUtils/pageInfo.js +73 -0
  213. package/libraries/gptUtils/gptUtils.js +23 -1
  214. package/libraries/schainSerializer/schainSerializer.js +24 -0
  215. package/libraries/sizeUtils/tranformSize.js +43 -0
  216. package/libraries/targetVideoUtils/bidderUtils.js +178 -0
  217. package/libraries/targetVideoUtils/constants.js +23 -0
  218. package/libraries/userAgentUtils/index.js +58 -0
  219. package/libraries/userAgentUtils/userAgentTypes.enums.js +22 -0
  220. package/modules/.submodules.json +1 -0
  221. package/modules/33acrossAnalyticsAdapter.js +2 -0
  222. package/modules/adagioBidAdapter.js +1 -1
  223. package/modules/adagioRtdProvider.js +18 -4
  224. package/modules/adkernelAdnBidAdapter.js +1 -12
  225. package/modules/adkernelBidAdapter.js +4 -13
  226. package/modules/adlooxAnalyticsAdapter.js +1 -0
  227. package/modules/admixerBidAdapter.js +10 -6
  228. package/modules/admixerBidAdapter.md +7 -10
  229. package/modules/adtrgtmeBidAdapter.js +1 -1
  230. package/modules/advRedAnalyticsAdapter.js +198 -0
  231. package/modules/advRedAnalyticsAdapter.md +30 -0
  232. package/modules/akamaiDapRtdProvider.js +19 -798
  233. package/modules/anonymisedRtdProvider.js +5 -1
  234. package/modules/anonymisedRtdProvider.md +1 -1
  235. package/modules/apacdexBidAdapter.js +1 -1
  236. package/modules/appnexusBidAdapter.js +56 -2
  237. package/modules/automatadAnalyticsAdapter.js +2 -0
  238. package/modules/azerionedgeRtdProvider.js +13 -3
  239. package/modules/azerionedgeRtdProvider.md +0 -17
  240. package/modules/bridBidAdapter.js +47 -47
  241. package/modules/cleanioRtdProvider.js +1 -0
  242. package/modules/concertBidAdapter.js +1 -1
  243. package/modules/connatixBidAdapter.js +36 -8
  244. package/modules/connectIdSystem.js +3 -1
  245. package/modules/contxtfulRtdProvider.js +20 -2
  246. package/modules/contxtfulRtdProvider.md +1 -0
  247. package/modules/craftBidAdapter.js +1 -1
  248. package/modules/criteoBidAdapter.js +1 -1
  249. package/modules/cwireBidAdapter.js +5 -1
  250. package/modules/dailymotionBidAdapter.js +85 -65
  251. package/modules/debugging/debugging.js +3 -0
  252. package/modules/dfpAdServerVideo.js +15 -33
  253. package/modules/dfpAdpod.js +2 -6
  254. package/modules/dgkeywordRtdProvider.js +2 -0
  255. package/modules/discoveryBidAdapter.js +26 -210
  256. package/modules/dspxBidAdapter.js +176 -54
  257. package/modules/eightPodAnalyticsAdapter.js +28 -34
  258. package/modules/eightPodBidAdapter.js +113 -57
  259. package/modules/fintezaAnalyticsAdapter.js +9 -4
  260. package/modules/goldbachBidAdapter.js +1 -1
  261. package/modules/gptPreAuction.js +63 -4
  262. package/modules/growthCodeAnalyticsAdapter.js +1 -1
  263. package/modules/growthCodeRtdProvider.js +1 -1
  264. package/modules/gumgumBidAdapter.js +14 -10
  265. package/modules/improvedigitalBidAdapter.js +1 -1
  266. package/modules/intentIqAnalyticsAdapter.js +234 -0
  267. package/modules/intentIqAnalyticsAdapter.md +27 -0
  268. package/modules/intentIqIdSystem.md +0 -0
  269. package/modules/jwplayerBidAdapter.js +1 -1
  270. package/modules/jwplayerRtdProvider.js +26 -6
  271. package/modules/jwplayerVideoProvider.js +6 -0
  272. package/modules/mediafuseBidAdapter.js +1 -1
  273. package/modules/mediagoBidAdapter.js +7 -176
  274. package/modules/medianetBidAdapter.js +101 -40
  275. package/modules/mgidBidAdapter.js +3 -1
  276. package/modules/mobianRtdProvider.js +16 -2
  277. package/modules/nextMillenniumBidAdapter.js +1 -27
  278. package/modules/nobidBidAdapter.js +1 -1
  279. package/modules/optoutBidAdapter.js +1 -1
  280. package/modules/paapi.js +48 -35
  281. package/modules/permutiveRtdProvider.js +72 -22
  282. package/modules/playdigoBidAdapter.js +4 -2
  283. package/modules/prebidServerBidAdapter/index.js +4 -2
  284. package/modules/prebidServerBidAdapter/ortbConverter.js +1 -0
  285. package/modules/programmaticaBidAdapter.js +1 -1
  286. package/modules/pubmaticBidAdapter.js +12 -0
  287. package/modules/pubxaiAnalyticsAdapter.js +306 -164
  288. package/modules/relevatehealthBidAdapter.js +2 -1
  289. package/modules/richaudienceBidAdapter.js +1 -1
  290. package/modules/rtdModule/index.js +5 -3
  291. package/modules/sirdataRtdProvider.js +2 -0
  292. package/modules/sizeMapping.js +2 -5
  293. package/modules/smaatoBidAdapter.js +18 -1
  294. package/modules/smilewantedBidAdapter.js +26 -22
  295. package/modules/snigelBidAdapter.js +1 -1
  296. package/modules/sonobiBidAdapter.js +5 -10
  297. package/modules/symitriDapRtdProvider.js +812 -0
  298. package/modules/symitriDapRtdProvider.md +49 -0
  299. package/modules/targetVideoBidAdapter.js +120 -152
  300. package/modules/targetVideoBidAdapter.md +20 -3
  301. package/modules/userId/eids.js +3 -0
  302. package/modules/utiqIdSystem.js +12 -10
  303. package/modules/validationFpdModule/index.js +22 -17
  304. package/modules/videojsVideoProvider.js +3 -0
  305. package/modules/visxBidAdapter.js +1 -1
  306. package/modules/winrBidAdapter.js +2 -27
  307. package/modules/yahooAdsBidAdapter.js +1 -1
  308. package/modules/yandexIdSystem.js +1 -1
  309. package/package.json +4 -4
  310. package/plugins/eslint/index.js +73 -45
  311. package/src/adRendering.js +7 -3
  312. package/src/adloader.js +1 -0
  313. package/src/ajax.js +15 -0
  314. package/src/config.js +0 -4
  315. package/src/debugging.js +1 -0
  316. package/src/secureCreatives.js +1 -1
  317. package/src/storageManager.js +62 -73
  318. package/src/targeting.js +26 -20
  319. package/src/utils.js +9 -0
  320. package/test/pages/banner_sync.html +97 -0
  321. package/test/pages/consent_mgt_gdpr.html +1 -1
  322. package/test/spec/ajax_spec.js +11 -0
  323. package/test/spec/creative/crossDomainCreative_spec.js +26 -9
  324. package/test/spec/e2e/banner/basic_banner_ad.spec.js +20 -14
  325. package/test/spec/fpd/gdpr_spec.js +1 -1
  326. package/test/spec/libraries/userAgentUtils_spec.js +109 -0
  327. package/test/spec/modules/adagioRtdProvider_spec.js +72 -0
  328. package/test/spec/modules/admixerBidAdapter_spec.js +21 -17
  329. package/test/spec/modules/advRedAnalyticsAdapter_spec.js +114 -0
  330. package/test/spec/modules/adxcgBidAdapter_spec.js +1 -1
  331. package/test/spec/modules/appnexusBidAdapter_spec.js +36 -0
  332. package/test/spec/modules/azerionedgeRtdProvider_spec.js +36 -21
  333. package/test/spec/modules/connatixBidAdapter_spec.js +55 -2
  334. package/test/spec/modules/consentManagement_spec.js +1 -1
  335. package/test/spec/modules/contxtfulRtdProvider_spec.js +6 -0
  336. package/test/spec/modules/dailymotionBidAdapter_spec.js +497 -4
  337. package/test/spec/modules/discoveryBidAdapter_spec.js +9 -6
  338. package/test/spec/modules/dspxBidAdapter_spec.js +188 -7
  339. package/test/spec/modules/eightPodAnalyticsAdapter_spec.js +22 -13
  340. package/test/spec/modules/gptPreAuction_spec.js +143 -1
  341. package/test/spec/modules/gumgumBidAdapter_spec.js +17 -0
  342. package/test/spec/modules/intentIqAnalyticsAdapter_spec.js +172 -0
  343. package/test/spec/modules/jwplayerRtdProvider_spec.js +61 -0
  344. package/test/spec/modules/mediagoBidAdapter_spec.js +34 -37
  345. package/test/spec/modules/medianetBidAdapter_spec.js +297 -16
  346. package/test/spec/modules/mgidBidAdapter_spec.js +15 -5
  347. package/test/spec/modules/mobianRtdProvider_spec.js +1 -3
  348. package/test/spec/modules/paapi_spec.js +177 -111
  349. package/test/spec/modules/permutiveRtdProvider_spec.js +42 -8
  350. package/test/spec/modules/prebidServerBidAdapter_spec.js +17 -3
  351. package/test/spec/modules/proxistoreBidAdapter_spec.js +1 -1
  352. package/test/spec/modules/pubmaticBidAdapter_spec.js +40 -0
  353. package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +970 -603
  354. package/test/spec/modules/pulsepointBidAdapter_spec.js +4 -4
  355. package/test/spec/modules/smaatoBidAdapter_spec.js +36 -1
  356. package/test/spec/modules/smilewantedBidAdapter_spec.js +57 -1
  357. package/test/spec/modules/symitriDapRtdProvider_spec.js +600 -0
  358. package/test/spec/modules/targetVideoBidAdapter_spec.js +112 -11
  359. package/test/spec/modules/yandexIdSystem_spec.js +6 -1
  360. package/test/spec/schainSerializer/schainSerializer_spec.js +138 -0
  361. package/test/spec/unit/core/storageManager_spec.js +68 -51
  362. package/test/spec/utils_spec.js +19 -0
  363. /package/src/utils/{gpdr.js → gdpr.js} +0 -0
@@ -0,0 +1,49 @@
1
+ ### Overview
2
+
3
+ Symitri DAP Real time data Provider automatically invokes the DAP APIs and submit audience segments and the SAID to the bid-stream.
4
+
5
+ ### Integration
6
+
7
+ 1) Build the symitriDapRTD module into the Prebid.js package with:
8
+
9
+ ```
10
+ gulp build --modules=symitriDapRtdProvider,...
11
+ ```
12
+
13
+ 2) Use `setConfig` to instruct Prebid.js to initilaize the symitriDapRtdProvider module, as specified below.
14
+
15
+ ### Configuration
16
+
17
+ ```
18
+ pbjs.setConfig({
19
+ realTimeData: {
20
+ auctionDelay: 2000,
21
+ dataProviders: [
22
+ {
23
+ name: "dap",
24
+ waitForIt: true,
25
+ params: {
26
+ apiHostname: '<see your Symitri account rep>',
27
+ apiVersion: "x1",
28
+ domain: 'your-domain.com',
29
+ identityType: 'email' | 'mobile' | ... | 'dap-signature:1.3.0',
30
+ segtax: 504,
31
+ dapEntropyUrl: 'https://sym-dist.symitri.net/dapentropy.js',
32
+ dapEntropyTimeout: 1500 // Maximum time for dapentropy to run
33
+ }
34
+ }
35
+ ]
36
+ }
37
+ });
38
+ ```
39
+
40
+ Please reach out to your Symitri account representative(Prebid@symitri.com) to get provisioned on the DAP platform.
41
+
42
+
43
+ ### Testing
44
+ To view an example of available segments returned by dap:
45
+ ```
46
+ ‘gulp serve --modules=rtdModule,symitriDapRtdProvider,appnexusBidAdapter,sovrnBidAdapter’
47
+ ```
48
+ and then point your browser at:
49
+ "http://localhost:9999/integrationExamples/gpt/symitridap_segments_example.html"
@@ -1,24 +1,19 @@
1
- import {find} from '../src/polyfill.js';
2
- import {getBidRequest} from '../src/utils.js';
1
+ import {_each, getDefinedParams, parseGPTSingleSizeArrayToRtbSize} from '../src/utils.js';
3
2
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
4
3
  import {registerBidder} from '../src/adapters/bidderFactory.js';
4
+ import {formatRequest, getRtbBid, getSiteObj, videoBid, bannerBid, createVideoTag} from '../libraries/targetVideoUtils/bidderUtils.js';
5
+ import {SOURCE, GVLID, BIDDER_CODE, VIDEO_PARAMS, BANNER_ENDPOINT_URL, VIDEO_ENDPOINT_URL, MARGIN, TIME_TO_LIVE} from '../libraries/targetVideoUtils/constants.js';
5
6
 
6
7
  /**
7
8
  * @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
8
9
  * @typedef {import('../src/adapters/bidderFactory.js').Bid} Bid
9
10
  */
10
11
 
11
- const SOURCE = 'pbjs';
12
- const BIDDER_CODE = 'targetVideo';
13
- const ENDPOINT_URL = 'https://ib.adnxs.com/ut/v3/prebid';
14
- const MARGIN = 1.35;
15
- const GVLID = 786;
16
-
17
12
  export const spec = {
18
13
 
19
14
  code: BIDDER_CODE,
20
15
  gvlid: GVLID,
21
- supportedMediaTypes: [BANNER],
16
+ supportedMediaTypes: [BANNER, VIDEO],
22
17
 
23
18
  /**
24
19
  * Determines whether or not the given bid request is valid.
@@ -37,35 +32,114 @@ export const spec = {
37
32
  * @return ServerRequest Info describing the request to the server.
38
33
  */
39
34
  buildRequests: function(bidRequests, bidderRequest) {
40
- const tags = bidRequests.map(createVideoTag);
41
- const schain = bidRequests[0].schain;
42
- const payload = {
43
- tags: tags,
44
- sdk: {
45
- source: SOURCE,
46
- version: '$prebid.version$'
47
- },
48
- schain: schain
35
+ const requests = [];
36
+ const sdk = {
37
+ source: SOURCE,
38
+ version: '$prebid.version$'
49
39
  };
50
40
 
51
- if (bidderRequest && bidderRequest.gdprConsent) {
52
- payload.gdpr_consent = {
53
- consent_string: bidderRequest.gdprConsent.consentString,
54
- consent_required: bidderRequest.gdprConsent.gdprApplies
55
- };
56
-
57
- if (bidderRequest.gdprConsent.addtlConsent && bidderRequest.gdprConsent.addtlConsent.indexOf('~') !== -1) {
58
- let ac = bidderRequest.gdprConsent.addtlConsent;
59
- let acStr = ac.substring(ac.indexOf('~') + 1);
60
- payload.gdpr_consent.addtl_consent = acStr.split('.').map(id => parseInt(id, 10));
41
+ for (let {params, bidId, sizes, mediaTypes} of bidRequests) {
42
+ for (const mediaType in mediaTypes) {
43
+ switch (mediaType) {
44
+ case VIDEO: {
45
+ const video = mediaTypes[VIDEO];
46
+ const placementId = params.placementId;
47
+ const site = getSiteObj();
48
+
49
+ if (sizes && !Array.isArray(sizes[0])) sizes = [sizes];
50
+
51
+ const payload = {
52
+ sdk,
53
+ id: bidderRequest.bidderRequestId,
54
+ site,
55
+ imp: []
56
+ }
57
+
58
+ const imp = {
59
+ ext: {
60
+ prebid: {
61
+ storedrequest: { id: placementId }
62
+ }
63
+ },
64
+ video: getDefinedParams(video, VIDEO_PARAMS)
65
+ }
66
+
67
+ if (video.playerSize) {
68
+ imp.video = Object.assign(
69
+ imp.video, parseGPTSingleSizeArrayToRtbSize(video.playerSize[0]) || {}
70
+ );
71
+ } else if (video.w && video.h) {
72
+ imp.video.w = video.w;
73
+ imp.video.h = video.h;
74
+ }
75
+
76
+ payload.imp.push(imp);
77
+
78
+ const gdprConsent = bidderRequest && bidderRequest.gdprConsent;
79
+ const uspConsent = bidderRequest && bidderRequest.uspConsent;
80
+
81
+ if (gdprConsent || uspConsent) {
82
+ payload.regs = { ext: {} };
83
+
84
+ if (uspConsent) {
85
+ payload.regs.ext.us_privacy = uspConsent;
86
+ };
87
+
88
+ if (gdprConsent) {
89
+ if (typeof gdprConsent.gdprApplies !== 'undefined') {
90
+ payload.regs.ext.gdpr = gdprConsent.gdprApplies ? 1 : 0;
91
+ };
92
+
93
+ if (typeof gdprConsent.consentString !== 'undefined') {
94
+ payload.user = {
95
+ ext: { consent: gdprConsent.consentString }
96
+ };
97
+ };
98
+ };
99
+ };
100
+
101
+ if (bidRequests[0].schain) {
102
+ payload.schain = bidRequests[0].schain;
103
+ }
104
+
105
+ requests.push(formatRequest({ payload, url: VIDEO_ENDPOINT_URL, bidId }));
106
+ break;
107
+ }
108
+
109
+ case BANNER: {
110
+ const tags = bidRequests.map(createVideoTag);
111
+ const schain = bidRequests[0].schain;
112
+
113
+ const payload = {
114
+ tags,
115
+ sdk,
116
+ schain,
117
+ };
118
+
119
+ if (bidderRequest && bidderRequest.gdprConsent) {
120
+ payload.gdpr_consent = {
121
+ consent_string: bidderRequest.gdprConsent.consentString,
122
+ consent_required: bidderRequest.gdprConsent.gdprApplies
123
+ };
124
+
125
+ if (bidderRequest.gdprConsent.addtlConsent && bidderRequest.gdprConsent.addtlConsent.indexOf('~') !== -1) {
126
+ let ac = bidderRequest.gdprConsent.addtlConsent;
127
+ let acStr = ac.substring(ac.indexOf('~') + 1);
128
+ payload.gdpr_consent.addtl_consent = acStr.split('.').map(id => parseInt(id, 10));
129
+ }
130
+ }
131
+
132
+ if (bidderRequest && bidderRequest.uspConsent) {
133
+ payload.us_privacy = bidderRequest.uspConsent
134
+ }
135
+
136
+ return formatRequest({ payload, url: BANNER_ENDPOINT_URL, bidderRequest });
137
+ }
138
+ }
61
139
  }
62
140
  }
63
141
 
64
- if (bidderRequest && bidderRequest.uspConsent) {
65
- payload.us_privacy = bidderRequest.uspConsent
66
- }
67
-
68
- return formatRequest(payload, bidderRequest);
142
+ return requests;
69
143
  },
70
144
 
71
145
  /**
@@ -74,139 +148,33 @@ export const spec = {
74
148
  * @param {*} serverResponse A successful response from the server.
75
149
  * @return {Bid[]} An array of bids which were nested inside the server.
76
150
  */
77
- interpretResponse: function(serverResponse, { bidderRequest }) {
151
+ interpretResponse: function(serverResponse, { bidderRequest, ...bidRequest }) {
78
152
  serverResponse = serverResponse.body;
153
+ const currency = serverResponse.cur;
79
154
  const bids = [];
80
155
 
81
156
  if (serverResponse.tags) {
82
157
  serverResponse.tags.forEach(serverBid => {
83
158
  const rtbBid = getRtbBid(serverBid);
84
159
  if (rtbBid && rtbBid.cpm !== 0 && rtbBid.ad_type == VIDEO) {
85
- bids.push(newBid(serverBid, rtbBid, bidderRequest));
160
+ bids.push(bannerBid(serverBid, rtbBid, bidderRequest, MARGIN));
86
161
  }
87
162
  });
88
163
  }
89
164
 
90
- return bids;
91
- }
92
-
93
- }
94
-
95
- function getSizes(request) {
96
- let sizes = request.sizes;
97
- if (!sizes && request.mediaTypes && request.mediaTypes.banner && request.mediaTypes.banner.sizes) {
98
- sizes = request.mediaTypes.banner.sizes;
99
- }
100
- if (Array.isArray(sizes) && !Array.isArray(sizes[0])) {
101
- sizes = [sizes[0], sizes[1]];
102
- }
103
- if (!Array.isArray(sizes) || !Array.isArray(sizes[0])) {
104
- sizes = [[0, 0]];
105
- }
106
-
107
- return sizes;
108
- }
165
+ if (serverResponse.seatbid) {
166
+ _each(serverResponse.seatbid, (resp) => {
167
+ _each(resp.bid, (bid) => {
168
+ const requestId = bidRequest.bidId;
169
+ const params = bidRequest.params;
109
170
 
110
- function formatRequest(payload, bidderRequest) {
111
- const options = {
112
- withCredentials: true
113
- };
114
- const request = {
115
- method: 'POST',
116
- url: ENDPOINT_URL,
117
- data: JSON.stringify(payload),
118
- bidderRequest,
119
- options
120
- };
121
-
122
- return request;
123
- }
124
-
125
- /**
126
- * Create video auction.
127
- *
128
- * @param {*} serverResponse A successful response from the server.
129
- * @return {Bid[]} An array of bids which were nested inside the server.
130
- */
131
- function createVideoTag(bid) {
132
- const tag = {};
133
- tag.id = parseInt(bid.params.placementId, 10);
134
- tag.gpid = 'targetVideo';
135
- tag.sizes = getSizes(bid);
136
- tag.primary_size = tag.sizes[0];
137
- tag.ad_types = [VIDEO];
138
- tag.uuid = bid.bidId;
139
- tag.allow_smaller_sizes = false;
140
- tag.use_pmt_rule = false;
141
- tag.prebid = true;
142
- tag.disable_psa = true;
143
- tag.hb_source = 1;
144
- tag.require_asset_url = true;
145
- tag.video = {
146
- playback_method: 2,
147
- skippable: true
148
- };
149
-
150
- return tag;
151
- }
152
-
153
- /**
154
- * Unpack the Server's Bid into a Prebid-compatible one.
155
- * @param serverBid
156
- * @param rtbBid
157
- * @param bidderRequest
158
- * @return Bid
159
- */
160
- function newBid(serverBid, rtbBid, bidderRequest) {
161
- const bidRequest = getBidRequest(serverBid.uuid, [bidderRequest]);
162
- const sizes = getSizes(bidRequest);
163
- const bid = {
164
- requestId: serverBid.uuid,
165
- cpm: rtbBid.cpm / MARGIN,
166
- creativeId: rtbBid.creative_id,
167
- dealId: rtbBid.deal_id,
168
- currency: 'USD',
169
- netRevenue: true,
170
- width: sizes[0][0],
171
- height: sizes[0][1],
172
- ttl: 300,
173
- adUnitCode: bidRequest.adUnitCode,
174
- appnexus: {
175
- buyerMemberId: rtbBid.buyer_member_id,
176
- dealPriority: rtbBid.deal_priority,
177
- dealCode: rtbBid.deal_code
171
+ bids.push(videoBid(bid, requestId, currency, params, TIME_TO_LIVE));
172
+ });
173
+ });
178
174
  }
179
- };
180
-
181
- if (rtbBid.rtb.video) {
182
- Object.assign(bid, {
183
- vastImpUrl: rtbBid.notify_url,
184
- ad: getBannerHtml(rtbBid.notify_url + '&redir=' + encodeURIComponent(rtbBid.rtb.video.asset_url)),
185
- ttl: 3600
186
- });
187
- }
188
-
189
- return bid;
190
- }
191
175
 
192
- function getRtbBid(tag) {
193
- return tag && tag.ads && tag.ads.length && find(tag.ads, ad => ad.rtb);
194
- }
195
-
196
- function getBannerHtml(vastUrl) {
197
- return `<!DOCTYPE html>
198
- <html lang="en">
199
- <head>
200
- <meta charset="UTF-8">
201
- <title></title>
202
- <style>html, body {width: 100%; height: 100%; margin: 0;}</style>
203
- </head>
204
- <body>
205
- <div id="targetVideoPlayer"></div>
206
- <script src="https://player.target-video.com/custom/targetvideo-banner.js"></script>
207
- <script>initPlayer("${vastUrl}");</script>
208
- </body>
209
- </html>`;
176
+ return bids;
177
+ }
210
178
  }
211
179
 
212
180
  registerBidder(spec);
@@ -3,17 +3,17 @@
3
3
  ```
4
4
  Module Name: Target Video Bid Adapter
5
5
  Module Type: Bidder Adapter
6
- Maintainer: grajzer@gmail.com
6
+ Maintainers: grajzer@gmail.com, danijel.ristic@target-video.com
7
7
  ```
8
8
 
9
9
  # Description
10
10
 
11
11
  Connects to Appnexus exchange for bids.
12
12
 
13
- TargetVideo bid adapter supports Banner.
13
+ TargetVideo bid adapter supports Banner and Video.
14
14
 
15
15
  # Test Parameters
16
- ```
16
+ ```js
17
17
  var adUnits = [
18
18
  // Banner adUnit
19
19
  {
@@ -29,6 +29,23 @@ var adUnits = [
29
29
  placementId: 13232361
30
30
  }
31
31
  }]
32
+ },
33
+ // Video adUnit
34
+ {
35
+ mediaTypes: {
36
+ video: {
37
+ playerSize: [[640, 360]],
38
+ context: 'instream',
39
+ playbackmethod: [1, 2, 3, 4]
40
+ }
41
+ },
42
+ bids: [{
43
+ bidder: 'targetVideo',
44
+ params: {
45
+ placementId: 12345,
46
+ reserve: 0,
47
+ }
48
+ }]
32
49
  }
33
50
  ];
34
51
  ```
@@ -1,4 +1,7 @@
1
1
  import {deepAccess, deepClone, isFn, isPlainObject, isStr} from '../../src/utils.js';
2
+ /*
3
+ * @typedef {import('../modules/userId/index.js').SubmoduleContainer} SubmoduleContainer
4
+ */
2
5
 
3
6
  export const EID_CONFIG = new Map();
4
7
 
@@ -27,11 +27,6 @@ function getUtiqFromStorage() {
27
27
  let utiqPassStorage = JSON.parse(
28
28
  storage.getDataFromLocalStorage('utiqPass')
29
29
  );
30
- logInfo(
31
- `${LOG_PREFIX}: Local storage utiqPass: ${JSON.stringify(
32
- utiqPassStorage
33
- )}`
34
- );
35
30
 
36
31
  if (
37
32
  utiqPassStorage &&
@@ -40,12 +35,19 @@ function getUtiqFromStorage() {
40
35
  utiqPassStorage.connectId.idGraph.length > 0
41
36
  ) {
42
37
  utiqPass = utiqPassStorage.connectId.idGraph[0];
38
+
39
+ logInfo(
40
+ `${LOG_PREFIX}: Local storage utiqPass: ${JSON.stringify(
41
+ utiqPassStorage
42
+ )}`
43
+ );
44
+
45
+ logInfo(
46
+ `${LOG_PREFIX}: Graph of utiqPass: ${JSON.stringify(
47
+ utiqPass
48
+ )}`
49
+ );
43
50
  }
44
- logInfo(
45
- `${LOG_PREFIX}: Graph of utiqPass: ${JSON.stringify(
46
- utiqPass
47
- )}`
48
- );
49
51
 
50
52
  return {
51
53
  utiq:
@@ -13,8 +13,8 @@ let optout;
13
13
 
14
14
  /**
15
15
  * Check if data passed is empty
16
- * @param {*} value to test against
17
- * @returns {Boolean} is value empty
16
+ * @param {*} data to test against
17
+ * @returns {Boolean} is data empty
18
18
  */
19
19
  function isEmptyData(data) {
20
20
  let check = true;
@@ -30,10 +30,10 @@ function isEmptyData(data) {
30
30
 
31
31
  /**
32
32
  * Check if required keys exist in data object
33
- * @param {Object} data object
34
- * @param {Array} array of required keys
35
- * @param {String} object path (for printing warning)
36
- * @param {Number} index of object value in the data array (for printing warning)
33
+ * @param {Object} obj data object
34
+ * @param {Array} required array of required keys
35
+ * @param {String} parent object path (for printing warning)
36
+ * @param {Number} i index of object value in the data array (for printing warning)
37
37
  * @returns {Boolean} is requirements fulfilled
38
38
  */
39
39
  function getRequiredData(obj, required, parent, i) {
@@ -51,8 +51,8 @@ function getRequiredData(obj, required, parent, i) {
51
51
 
52
52
  /**
53
53
  * Check if data type is valid
54
- * @param {*} value to test against
55
- * @param {Object} object containing type definition and if should be array bool
54
+ * @param {*} data value to test against
55
+ * @param {Object} mapping object containing type definition and if should be array bool
56
56
  * @returns {Boolean} is type fulfilled
57
57
  */
58
58
  function typeValidation(data, mapping) {
@@ -77,10 +77,10 @@ function typeValidation(data, mapping) {
77
77
 
78
78
  /**
79
79
  * Validates ortb2 data arrays and filters out invalid data
80
- * @param {Array} ortb2 data array
81
- * @param {Object} object defining child type and if array
82
- * @param {String} config path of data array
83
- * @param {String} parent path for logging warnings
80
+ * @param {Array} arr ortb2 data array
81
+ * @param {Object} child object defining child type and if array
82
+ * @param {String} path config path of data array
83
+ * @param {String} parent parent path for logging warnings
84
84
  * @returns {Array} validated/filtered data
85
85
  */
86
86
  export function filterArrayData(arr, child, path, parent) {
@@ -136,9 +136,9 @@ export function filterArrayData(arr, child, path, parent) {
136
136
 
137
137
  /**
138
138
  * Validates ortb2 object and filters out invalid data
139
- * @param {Object} ortb2 object
140
- * @param {String} config path of data array
141
- * @param {String} parent path for logging warnings
139
+ * @param {Object} fpd ortb2 object
140
+ * @param {String} path config path of data array
141
+ * @param {String} parent parent path for logging warnings
142
142
  * @returns {Object} validated/filtered data
143
143
  */
144
144
  export function validateFpd(fpd, path = '', parent = '') {
@@ -190,6 +190,8 @@ export function validateFpd(fpd, path = '', parent = '') {
190
190
 
191
191
  /**
192
192
  * Run validation on global and bidder config data for ortb2
193
+ * @param {Object} data global and bidder config data
194
+ * @returns {Object} validated data
193
195
  */
194
196
  function runValidations(data) {
195
197
  return {
@@ -200,6 +202,9 @@ function runValidations(data) {
200
202
 
201
203
  /**
202
204
  * Sets default values to ortb2 if exists and adds currency and ortb2 setConfig callbacks on init
205
+ * @param {Object} fpdConf configuration object
206
+ * @param {Object} data ortb2 data
207
+ * @returns {Object} processed data
203
208
  */
204
209
  export function processFpd(fpdConf, data) {
205
210
  // Checks for existsnece of pubcid optout cookie/storage
@@ -210,11 +215,11 @@ export function processFpd(fpdConf, data) {
210
215
  return (!fpdConf.skipValidations) ? runValidations(data) : data;
211
216
  }
212
217
 
213
- /** @type {firstPartyDataSubmodule} */
218
+ /** @type {{name: string, queue: number, processFpd: function}} */
214
219
  export const validationSubmodule = {
215
220
  name: 'validation',
216
221
  queue: 1,
217
222
  processFpd
218
223
  }
219
224
 
220
- submodule('firstPartyData', validationSubmodule)
225
+ submodule('firstPartyData', validationSubmodule);
@@ -13,6 +13,9 @@ import { submodule } from '../src/hook.js';
13
13
  import stateFactory from '../libraries/video/shared/state.js';
14
14
  import { PLAYBACK_MODE } from '../libraries/video/constants/constants.js';
15
15
  import { getEventHandler } from '../libraries/video/shared/eventHandler.js';
16
+ /**
17
+ * @typedef {import('../libraries/video/shared/state.js').State} State
18
+ */
16
19
 
17
20
  /*
18
21
  Plugins of interest:
@@ -33,7 +33,7 @@ const LOG_ERROR_MESS = {
33
33
  onlyVideoInstream: `Only video ${VIDEO_INSTREAM} supported`,
34
34
  videoMissing: 'Bid request videoType property is missing - '
35
35
  };
36
- const currencyWhiteList = ['EUR', 'USD', 'GBP', 'PLN'];
36
+ const currencyWhiteList = ['EUR', 'USD', 'GBP', 'PLN', 'CHF', 'SEK'];
37
37
  export const storage = getStorageManager({bidderCode: BIDDER_CODE});
38
38
  const _bidResponseTimeLogged = [];
39
39
  export const spec = {
@@ -13,9 +13,10 @@ import {registerBidder} from '../src/adapters/bidderFactory.js';
13
13
  import {BANNER} from '../src/mediaTypes.js';
14
14
  import {find, includes} from '../src/polyfill.js';
15
15
  import {getStorageManager} from '../src/storageManager.js';
16
- import {hasPurpose1Consent} from '../src/utils/gpdr.js';
16
+ import {hasPurpose1Consent} from '../src/utils/gdpr.js';
17
17
  import {getANKeywordParam} from '../libraries/appnexusUtils/anKeywords.js';
18
18
  import {convertCamelToUnderscore} from '../libraries/appnexusUtils/anUtils.js';
19
+ import { transformSizes } from '../libraries/sizeUtils/tranformSize.js';
19
20
 
20
21
  /**
21
22
  * @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
@@ -470,32 +471,6 @@ function bidToTag(bid) {
470
471
  return tag;
471
472
  }
472
473
 
473
- /* Turn bid request sizes into ut-compatible format */
474
- function transformSizes(requestSizes) {
475
- let sizes = [];
476
- let sizeObj = {};
477
-
478
- if (
479
- isArray(requestSizes) &&
480
- requestSizes.length === 2 &&
481
- !isArray(requestSizes[0])
482
- ) {
483
- sizeObj.width = parseInt(requestSizes[0], 10);
484
- sizeObj.height = parseInt(requestSizes[1], 10);
485
- sizes.push(sizeObj);
486
- } else if (typeof requestSizes === 'object') {
487
- for (let i = 0; i < requestSizes.length; i++) {
488
- let size = requestSizes[i];
489
- sizeObj = {};
490
- sizeObj.width = parseInt(size[0], 10);
491
- sizeObj.height = parseInt(size[1], 10);
492
- sizes.push(sizeObj);
493
- }
494
- }
495
-
496
- return sizes;
497
- }
498
-
499
474
  function hasUserInfo(bid) {
500
475
  return !!bid.params.user;
501
476
  }
@@ -3,7 +3,7 @@ import { BANNER, VIDEO } from '../src/mediaTypes.js';
3
3
  import { deepAccess, isFn, isStr, isNumber, isArray, isEmpty, isPlainObject, generateUUID, logInfo, logWarn } from '../src/utils.js';
4
4
  import { config } from '../src/config.js';
5
5
  import { Renderer } from '../src/Renderer.js';
6
- import {hasPurpose1Consent} from '../src/utils/gpdr.js';
6
+ import {hasPurpose1Consent} from '../src/utils/gdpr.js';
7
7
 
8
8
  const INTEGRATION_METHOD = 'prebid.js';
9
9
  const BIDDER_CODE = 'yahooAds';
@@ -128,7 +128,7 @@ class YandexUidGenerator {
128
128
  }
129
129
 
130
130
  _getRandomGenerator() {
131
- if (crypto) {
131
+ if (window.crypto) {
132
132
  return () => {
133
133
  const buffer = new Uint32Array(1);
134
134
  crypto.getRandomValues(buffer);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prebid.js",
3
- "version": "9.4.0",
3
+ "version": "9.5.0",
4
4
  "description": "Header Bidding Management Library",
5
5
  "main": "src/prebid.public.js",
6
6
  "exports": {
@@ -66,7 +66,7 @@
66
66
  "eslint": "^7.27.0",
67
67
  "eslint-config-standard": "^10.2.1",
68
68
  "eslint-plugin-import": "^2.20.2",
69
- "eslint-plugin-jsdoc": "^38.1.6",
69
+ "eslint-plugin-jsdoc": "^48.5.0",
70
70
  "eslint-plugin-node": "^11.1.0",
71
71
  "eslint-plugin-prebid": "file:./plugins/eslint",
72
72
  "eslint-plugin-promise": "^5.1.0",
@@ -74,7 +74,7 @@
74
74
  "execa": "^1.0.0",
75
75
  "faker": "^5.5.3",
76
76
  "fs.extra": "^1.3.2",
77
- "gulp": "^4.0.0",
77
+ "gulp": "^4.0.2",
78
78
  "gulp-clean": "^0.4.0",
79
79
  "gulp-concat": "^2.6.0",
80
80
  "gulp-connect": "^5.7.0",
@@ -115,7 +115,7 @@
115
115
  "opn": "^5.4.0",
116
116
  "querystring": "^0.2.1",
117
117
  "resolve-from": "^5.0.0",
118
- "sinon": "^4.1.3",
118
+ "sinon": "^4.5.0",
119
119
  "through2": "^4.0.2",
120
120
  "url": "^0.11.0",
121
121
  "url-parse": "^1.0.5",