prebid.js 6.8.0 → 6.12.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 (2020) hide show
  1. package/.babelrc.js +2 -1
  2. package/.circleci/config.yml +3 -3
  3. package/.eslintrc.js +8 -1
  4. package/README.md +11 -5
  5. package/dist/33acrossBidAdapter.js +1 -0
  6. package/dist/a4gBidAdapter.js +1 -0
  7. package/dist/ablidaBidAdapter.js +1 -0
  8. package/dist/adWMGAnalyticsAdapter.js +1 -0
  9. package/dist/adWMGBidAdapter.js +1 -0
  10. package/dist/adagioAnalyticsAdapter.js +1 -0
  11. package/dist/adagioBidAdapter.js +1 -0
  12. package/dist/adbookpspBidAdapter.js +1 -0
  13. package/dist/addefendBidAdapter.js +1 -0
  14. package/dist/adfBidAdapter.js +1 -0
  15. package/dist/adgenerationBidAdapter.js +1 -0
  16. package/dist/adhashBidAdapter.js +1 -0
  17. package/dist/adheseBidAdapter.js +1 -0
  18. package/dist/adkernelAdnAnalyticsAdapter.js +1 -0
  19. package/dist/adkernelAdnBidAdapter.js +1 -0
  20. package/dist/adkernelBidAdapter.js +1 -0
  21. package/dist/adlooxAdServerVideo.js +1 -0
  22. package/dist/adlooxAnalyticsAdapter.js +1 -0
  23. package/dist/adlooxRtdProvider.js +1 -0
  24. package/dist/admanBidAdapter.js +1 -0
  25. package/dist/admixerBidAdapter.js +1 -0
  26. package/dist/admixerIdSystem.js +1 -0
  27. package/dist/adnowBidAdapter.js +1 -0
  28. package/dist/adnuntiusBidAdapter.js +1 -0
  29. package/dist/adnuntiusRtdProvider.js +1 -0
  30. package/dist/adoceanBidAdapter.js +1 -0
  31. package/dist/adomikAnalyticsAdapter.js +1 -0
  32. package/dist/adotBidAdapter.js +1 -0
  33. package/dist/adpartnerBidAdapter.js +1 -0
  34. package/dist/adplusBidAdapter.js +1 -0
  35. package/dist/adpod.js +1 -0
  36. package/dist/adponeBidAdapter.js +1 -0
  37. package/dist/adprimeBidAdapter.js +1 -0
  38. package/dist/adqueryBidAdapter.js +1 -0
  39. package/dist/adqueryIdSystem.js +1 -0
  40. package/dist/adrelevantisBidAdapter.js +1 -0
  41. package/dist/adriverBidAdapter.js +1 -0
  42. package/dist/adtargetBidAdapter.js +1 -0
  43. package/dist/adtelligentBidAdapter.js +1 -0
  44. package/dist/adtelligentIdSystem.js +1 -0
  45. package/dist/adtrueBidAdapter.js +1 -0
  46. package/dist/aduptechBidAdapter.js +1 -0
  47. package/dist/advangelistsBidAdapter.js +1 -0
  48. package/dist/adxcgAnalyticsAdapter.js +1 -0
  49. package/dist/adxcgBidAdapter.js +1 -0
  50. package/dist/adxpremiumAnalyticsAdapter.js +1 -0
  51. package/dist/adyoulikeBidAdapter.js +1 -0
  52. package/dist/afpBidAdapter.js +1 -0
  53. package/dist/airgridRtdProvider.js +1 -0
  54. package/dist/ajaBidAdapter.js +1 -0
  55. package/dist/akamaiDAPIdSystem.js +1 -0
  56. package/dist/akamaiDapRtdProvider.js +1 -0
  57. package/dist/amxBidAdapter.js +1 -0
  58. package/dist/amxIdSystem.js +1 -0
  59. package/dist/aniviewBidAdapter.js +1 -0
  60. package/dist/aolBidAdapter.js +1 -0
  61. package/dist/apacdexBidAdapter.js +1 -0
  62. package/dist/appierAnalyticsAdapter.js +1 -0
  63. package/dist/appierBidAdapter.js +1 -0
  64. package/dist/appnexusAnalyticsAdapter.js +1 -0
  65. package/dist/appnexusBidAdapter.js +1 -0
  66. package/dist/apstreamBidAdapter.js +1 -0
  67. package/dist/asealBidAdapter.js +1 -0
  68. package/dist/asoBidAdapter.js +1 -0
  69. package/dist/astraoneBidAdapter.js +1 -0
  70. package/dist/atsAnalyticsAdapter.js +1 -0
  71. package/dist/audiencerunBidAdapter.js +1 -0
  72. package/dist/automatadBidAdapter.js +1 -0
  73. package/dist/axonixBidAdapter.js +1 -0
  74. package/dist/beachfrontBidAdapter.js +1 -0
  75. package/dist/beopBidAdapter.js +1 -0
  76. package/dist/betweenBidAdapter.js +1 -0
  77. package/dist/bidViewability.js +1 -0
  78. package/dist/bidViewabilityIO.js +1 -0
  79. package/dist/bidglassBidAdapter.js +1 -0
  80. package/dist/bidscubeBidAdapter.js +1 -0
  81. package/dist/big-richmediaBidAdapter.js +1 -0
  82. package/dist/bizzclickBidAdapter.js +1 -0
  83. package/dist/bliinkBidAdapter.js +1 -0
  84. package/dist/bluebillywigBidAdapter.js +1 -0
  85. package/dist/boldwinBidAdapter.js +1 -0
  86. package/dist/brandmetricsRtdProvider.js +1 -0
  87. package/dist/braveBidAdapter.js +1 -0
  88. package/dist/bridgewellBidAdapter.js +1 -0
  89. package/dist/brightMountainMediaBidAdapter.js +1 -0
  90. package/dist/brightcomBidAdapter.js +1 -0
  91. package/dist/britepoolIdSystem.js +1 -0
  92. package/dist/browsiRtdProvider.js +1 -0
  93. package/dist/bucksenseBidAdapter.js +1 -0
  94. package/dist/buzzoolaBidAdapter.js +1 -0
  95. package/dist/byDataAnalyticsAdapter.js +1 -0
  96. package/dist/categoryTranslation.js +1 -0
  97. package/dist/ccxBidAdapter.js +1 -0
  98. package/dist/cleanioRtdProvider.js +1 -0
  99. package/dist/cleanmedianetBidAdapter.js +1 -0
  100. package/dist/clickforceBidAdapter.js +1 -0
  101. package/dist/codefuelBidAdapter.js +1 -0
  102. package/dist/cointrafficBidAdapter.js +1 -0
  103. package/dist/coinzillaBidAdapter.js +1 -0
  104. package/dist/colossussspBidAdapter.js +1 -0
  105. package/dist/compassBidAdapter.js +1 -0
  106. package/dist/concertAnalyticsAdapter.js +1 -0
  107. package/dist/concertBidAdapter.js +1 -0
  108. package/dist/connectIdSystem.js +1 -0
  109. package/dist/connectadBidAdapter.js +1 -0
  110. package/dist/consentManagement.js +1 -0
  111. package/dist/consentManagementUsp.js +1 -0
  112. package/dist/consumableBidAdapter.js +1 -0
  113. package/dist/contentexchangeBidAdapter.js +1 -0
  114. package/dist/conversantBidAdapter.js +1 -0
  115. package/dist/cpmstarBidAdapter.js +1 -0
  116. package/dist/craftBidAdapter.js +1 -0
  117. package/dist/criteoBidAdapter.js +1 -0
  118. package/dist/criteoIdSystem.js +1 -0
  119. package/dist/currency.js +1 -0
  120. package/dist/cwireBidAdapter.js +1 -0
  121. package/dist/dailyhuntBidAdapter.js +1 -0
  122. package/dist/datablocksAnalyticsAdapter.js +1 -0
  123. package/dist/datablocksBidAdapter.js +1 -0
  124. package/dist/dchain.js +1 -0
  125. package/dist/debugging.js +1 -0
  126. package/dist/deepintentBidAdapter.js +1 -0
  127. package/dist/deepintentDpesIdSystem.js +1 -0
  128. package/dist/deltaprojectsBidAdapter.js +1 -0
  129. package/dist/dfpAdServerVideo.js +1 -0
  130. package/dist/dgkeywordRtdProvider.js +1 -0
  131. package/dist/displayioBidAdapter.js +1 -0
  132. package/dist/districtmDMXBidAdapter.js +1 -0
  133. package/dist/dmdIdSystem.js +1 -0
  134. package/dist/docereeBidAdapter.js +1 -0
  135. package/dist/dspxBidAdapter.js +1 -0
  136. package/dist/e_volutionBidAdapter.js +1 -0
  137. package/dist/ebdrBidAdapter.js +1 -0
  138. package/dist/emx_digitalBidAdapter.js +1 -0
  139. package/dist/engageyaBidAdapter.js +1 -0
  140. package/dist/enrichmentFpdModule.js +1 -0
  141. package/dist/eplanningAnalyticsAdapter.js +1 -0
  142. package/dist/eplanningBidAdapter.js +1 -0
  143. package/dist/etargetBidAdapter.js +1 -0
  144. package/dist/express.js +1 -0
  145. package/dist/fabrickIdSystem.js +1 -0
  146. package/dist/feedadBidAdapter.js +1 -0
  147. package/dist/fintezaAnalyticsAdapter.js +1 -0
  148. package/dist/flocIdSystem.js +1 -0
  149. package/dist/fluctBidAdapter.js +1 -0
  150. package/dist/fpdModule.js +1 -0
  151. package/dist/freeWheelAdserverVideo.js +1 -0
  152. package/dist/freewheel-sspBidAdapter.js +1 -0
  153. package/dist/gammaBidAdapter.js +1 -0
  154. package/dist/gamoshiBidAdapter.js +1 -0
  155. package/dist/gdprEnforcement.js +1 -0
  156. package/dist/geoedgeRtdProvider.js +1 -0
  157. package/dist/getintentBidAdapter.js +1 -0
  158. package/dist/gjirafaBidAdapter.js +1 -0
  159. package/dist/glimpseBidAdapter.js +1 -0
  160. package/dist/glomexBidAdapter.js +1 -0
  161. package/dist/gmosspBidAdapter.js +1 -0
  162. package/dist/gnetBidAdapter.js +1 -0
  163. package/dist/goldbachBidAdapter.js +1 -0
  164. package/dist/googleAnalyticsAdapter.js +1 -0
  165. package/dist/gothamadsBidAdapter.js +1 -0
  166. package/dist/gptPreAuction.js +1 -0
  167. package/dist/gridBidAdapter.js +1 -0
  168. package/dist/gridNMBidAdapter.js +1 -0
  169. package/dist/growadvertisingBidAdapter.js +1 -0
  170. package/dist/gumgumBidAdapter.js +1 -0
  171. package/dist/h12mediaBidAdapter.js +1 -0
  172. package/dist/hadronIdSystem.js +1 -0
  173. package/dist/hadronRtdProvider.js +1 -0
  174. package/dist/haloIdSystem.js +1 -0
  175. package/dist/haloRtdProvider.js +1 -0
  176. package/dist/hybridBidAdapter.js +1 -0
  177. package/dist/iasRtdProvider.js +1 -0
  178. package/dist/id5AnalyticsAdapter.js +1 -0
  179. package/dist/id5IdSystem.js +1 -0
  180. package/dist/idImportLibrary.js +1 -0
  181. package/dist/identityLinkIdSystem.js +1 -0
  182. package/dist/idxIdSystem.js +1 -0
  183. package/dist/imRtdProvider.js +1 -0
  184. package/dist/impactifyBidAdapter.js +1 -0
  185. package/dist/improvedigitalBidAdapter.js +1 -0
  186. package/dist/imuIdSystem.js +1 -0
  187. package/dist/inmarBidAdapter.js +1 -0
  188. package/dist/innityBidAdapter.js +1 -0
  189. package/dist/inskinBidAdapter.js +1 -0
  190. package/dist/insticatorBidAdapter.js +1 -0
  191. package/dist/instreamTracking.js +1 -0
  192. package/dist/integr8BidAdapter.js +1 -0
  193. package/dist/intentIqIdSystem.js +1 -0
  194. package/dist/interactiveOffersBidAdapter.js +1 -0
  195. package/dist/intersectionRtdProvider.js +1 -0
  196. package/dist/invamiaBidAdapter.js +1 -0
  197. package/dist/invibesBidAdapter.js +1 -0
  198. package/dist/invisiblyAnalyticsAdapter.js +1 -0
  199. package/dist/ipromBidAdapter.js +1 -0
  200. package/dist/iqmBidAdapter.js +1 -0
  201. package/dist/iqzoneBidAdapter.js +1 -0
  202. package/dist/ixBidAdapter.js +1 -0
  203. package/dist/jixieBidAdapter.js +1 -0
  204. package/dist/justIdSystem.js +1 -0
  205. package/dist/justpremiumBidAdapter.js +1 -0
  206. package/dist/jwplayerRtdProvider.js +1 -0
  207. package/dist/kargoAnalyticsAdapter.js +1 -0
  208. package/dist/kargoBidAdapter.js +1 -0
  209. package/dist/kinessoIdSystem.js +1 -0
  210. package/dist/koblerBidAdapter.js +1 -0
  211. package/dist/konduitAnalyticsAdapter.js +1 -0
  212. package/dist/konduitWrapper.js +1 -0
  213. package/dist/krushmediaBidAdapter.js +1 -0
  214. package/dist/kubientBidAdapter.js +1 -0
  215. package/dist/limelightDigitalBidAdapter.js +1 -0
  216. package/dist/liveIntentIdSystem.js +1 -0
  217. package/dist/livewrappedAnalyticsAdapter.js +1 -0
  218. package/dist/livewrappedBidAdapter.js +1 -0
  219. package/dist/liveyieldAnalyticsAdapter.js +1 -0
  220. package/dist/lkqdBidAdapter.js +1 -0
  221. package/dist/lockerdomeBidAdapter.js +1 -0
  222. package/dist/loganBidAdapter.js +1 -0
  223. package/dist/logicadBidAdapter.js +1 -0
  224. package/dist/loglyliftBidAdapter.js +1 -0
  225. package/dist/lotamePanoramaIdSystem.js +1 -0
  226. package/dist/lunamediahbBidAdapter.js +1 -0
  227. package/dist/luponmediaBidAdapter.js +1 -0
  228. package/dist/madvertiseBidAdapter.js +1 -0
  229. package/dist/malltvAnalyticsAdapter.js +1 -0
  230. package/dist/malltvBidAdapter.js +1 -0
  231. package/dist/mantisBidAdapter.js +1 -0
  232. package/dist/marsmediaAnalyticsAdapter.js +1 -0
  233. package/dist/marsmediaBidAdapter.js +1 -0
  234. package/dist/mass.js +1 -0
  235. package/dist/mathildeadsBidAdapter.js +1 -0
  236. package/dist/mediaforceBidAdapter.js +1 -0
  237. package/dist/mediakeysBidAdapter.js +1 -0
  238. package/dist/medianetAnalyticsAdapter.js +1 -0
  239. package/dist/medianetBidAdapter.js +1 -0
  240. package/dist/medianetRtdProvider.js +1 -0
  241. package/dist/mediasquareBidAdapter.js +1 -0
  242. package/dist/merkleIdSystem.js +1 -0
  243. package/dist/mgidBidAdapter.js +1 -0
  244. package/dist/microadBidAdapter.js +1 -0
  245. package/dist/missenaBidAdapter.js +1 -0
  246. package/dist/multibid.js +1 -0
  247. package/dist/mwOpenLinkIdSystem.js +1 -0
  248. package/dist/my6senseBidAdapter.js +1 -0
  249. package/dist/mytargetBidAdapter.js +1 -0
  250. package/dist/nativoBidAdapter.js +1 -0
  251. package/dist/naveggIdSystem.js +1 -0
  252. package/dist/netIdSystem.js +1 -0
  253. package/dist/nextMillenniumBidAdapter.js +1 -0
  254. package/dist/nextrollBidAdapter.js +1 -0
  255. package/dist/nextrollIdSystem.js +1 -0
  256. package/dist/nexx360BidAdapter.js +1 -0
  257. package/dist/nobidBidAdapter.js +1 -0
  258. package/dist/not-for-prod/prebid.js +418 -0
  259. package/dist/novatiqIdSystem.js +1 -0
  260. package/dist/oguryBidAdapter.js +1 -0
  261. package/dist/oneVideoBidAdapter.js +1 -0
  262. package/dist/onetagBidAdapter.js +1 -0
  263. package/dist/onomagicBidAdapter.js +1 -0
  264. package/dist/ooloAnalyticsAdapter.js +1 -0
  265. package/dist/openwebBidAdapter.js +1 -0
  266. package/dist/openxAnalyticsAdapter.js +1 -0
  267. package/dist/openxBidAdapter.js +1 -0
  268. package/dist/operaadsBidAdapter.js +1 -0
  269. package/dist/optimeraRtdProvider.js +1 -0
  270. package/dist/optimonAnalyticsAdapter.js +1 -0
  271. package/dist/optoutBidAdapter.js +1 -0
  272. package/dist/orbidderBidAdapter.js +1 -0
  273. package/dist/otmBidAdapter.js +1 -0
  274. package/dist/outbrainBidAdapter.js +1 -0
  275. package/dist/ozoneBidAdapter.js +1 -0
  276. package/dist/padsquadBidAdapter.js +1 -0
  277. package/dist/parrableIdSystem.js +1 -0
  278. package/dist/permutiveRtdProvider.js +1 -0
  279. package/dist/pilotxBidAdapter.js +1 -0
  280. package/dist/pixfutureBidAdapter.js +1 -0
  281. package/dist/prebid-core.js +9 -0
  282. package/dist/prebidServerBidAdapter.js +1 -0
  283. package/dist/prebidmanagerAnalyticsAdapter.js +1 -0
  284. package/dist/priceFloors.js +1 -0
  285. package/dist/proxistoreBidAdapter.js +1 -0
  286. package/dist/pubCommonId.js +1 -0
  287. package/dist/pubProvidedIdSystem.js +1 -0
  288. package/dist/pubgeniusBidAdapter.js +1 -0
  289. package/dist/publinkIdSystem.js +1 -0
  290. package/dist/pubmaticAnalyticsAdapter.js +1 -0
  291. package/dist/pubmaticBidAdapter.js +1 -0
  292. package/dist/pubperfAnalyticsAdapter.js +1 -0
  293. package/dist/pubstackAnalyticsAdapter.js +1 -0
  294. package/dist/pubwiseAnalyticsAdapter.js +1 -0
  295. package/dist/pubwiseBidAdapter.js +1 -0
  296. package/dist/pubxBidAdapter.js +1 -0
  297. package/dist/pubxaiAnalyticsAdapter.js +1 -0
  298. package/dist/pulsepointAnalyticsAdapter.js +1 -0
  299. package/dist/pulsepointBidAdapter.js +1 -0
  300. package/dist/pxyzBidAdapter.js +1 -0
  301. package/dist/quantcastBidAdapter.js +1 -0
  302. package/dist/quantcastIdSystem.js +1 -0
  303. package/dist/qwarryBidAdapter.js +1 -0
  304. package/dist/radsBidAdapter.js +1 -0
  305. package/dist/rakutenBidAdapter.js +1 -0
  306. package/dist/readpeakBidAdapter.js +1 -0
  307. package/dist/realvuAnalyticsAdapter.js +1 -0
  308. package/dist/reconciliationRtdProvider.js +1 -0
  309. package/dist/relaidoBidAdapter.js +1 -0
  310. package/dist/relevantAnalyticsAdapter.js +1 -0
  311. package/dist/resetdigitalBidAdapter.js +1 -0
  312. package/dist/revcontentBidAdapter.js +1 -0
  313. package/dist/rhythmoneBidAdapter.js +1 -0
  314. package/dist/richaudienceBidAdapter.js +1 -0
  315. package/dist/riseBidAdapter.js +1 -0
  316. package/dist/rivrAnalyticsAdapter.js +1 -0
  317. package/dist/roxotAnalyticsAdapter.js +1 -0
  318. package/dist/rtbhouseBidAdapter.js +1 -0
  319. package/dist/rtbsapeBidAdapter.js +1 -0
  320. package/dist/rtdModule.js +1 -0
  321. package/dist/rubiconAnalyticsAdapter.js +1 -0
  322. package/dist/rubiconBidAdapter.js +1 -0
  323. package/dist/s2sTesting.js +1 -0
  324. package/dist/saambaaBidAdapter.js +1 -0
  325. package/dist/scaleableAnalyticsAdapter.js +1 -0
  326. package/dist/schain.js +1 -0
  327. package/dist/seedingAllianceBidAdapter.js +1 -0
  328. package/dist/seedtagBidAdapter.js +1 -0
  329. package/dist/sharedIdSystem.js +1 -0
  330. package/dist/sharethroughAnalyticsAdapter.js +1 -0
  331. package/dist/sharethroughBidAdapter.js +1 -0
  332. package/dist/showheroes-bsBidAdapter.js +1 -0
  333. package/dist/sigmoidAnalyticsAdapter.js +1 -0
  334. package/dist/sirdataRtdProvider.js +1 -0
  335. package/dist/sizeMappingV2.js +1 -0
  336. package/dist/slimcutBidAdapter.js +1 -0
  337. package/dist/smaatoBidAdapter.js +1 -0
  338. package/dist/smartadserverBidAdapter.js +1 -0
  339. package/dist/smarticoBidAdapter.js +1 -0
  340. package/dist/smartxBidAdapter.js +1 -0
  341. package/dist/smartyadsBidAdapter.js +1 -0
  342. package/dist/smilewantedBidAdapter.js +1 -0
  343. package/dist/sonobiAnalyticsAdapter.js +1 -0
  344. package/dist/sonobiBidAdapter.js +1 -0
  345. package/dist/sortableAnalyticsAdapter.js +1 -0
  346. package/dist/sortableBidAdapter.js +1 -0
  347. package/dist/sovrnAnalyticsAdapter.js +1 -0
  348. package/dist/sovrnBidAdapter.js +1 -0
  349. package/dist/spotxBidAdapter.js +1 -0
  350. package/dist/sspBCBidAdapter.js +1 -0
  351. package/dist/staqAnalyticsAdapter.js +1 -0
  352. package/dist/stroeerCoreBidAdapter.js +1 -0
  353. package/dist/sublimeBidAdapter.js +1 -0
  354. package/dist/synacormediaBidAdapter.js +1 -0
  355. package/dist/talkadsBidAdapter.js +1 -0
  356. package/dist/tapadIdSystem.js +1 -0
  357. package/dist/tappxBidAdapter.js +1 -0
  358. package/dist/targetVideoBidAdapter.js +1 -0
  359. package/dist/teadsBidAdapter.js +1 -0
  360. package/dist/telariaBidAdapter.js +1 -0
  361. package/dist/temedyaBidAdapter.js +1 -0
  362. package/dist/terceptAnalyticsAdapter.js +1 -0
  363. package/dist/theAdxBidAdapter.js +1 -0
  364. package/dist/timeoutRtdProvider.js +1 -0
  365. package/dist/tpmnBidAdapter.js +1 -0
  366. package/dist/trionBidAdapter.js +1 -0
  367. package/dist/tripleliftBidAdapter.js +1 -0
  368. package/dist/truereachBidAdapter.js +1 -0
  369. package/dist/trustpidSystem.js +1 -0
  370. package/dist/trustxBidAdapter.js +1 -0
  371. package/dist/ucfunnelAnalyticsAdapter.js +1 -0
  372. package/dist/ucfunnelBidAdapter.js +1 -0
  373. package/dist/uid2IdSystem.js +1 -0
  374. package/dist/underdogmediaBidAdapter.js +1 -0
  375. package/dist/undertoneBidAdapter.js +1 -0
  376. package/dist/unicornBidAdapter.js +1 -0
  377. package/dist/unifiedIdSystem.js +1 -0
  378. package/dist/unrulyBidAdapter.js +1 -0
  379. package/dist/userId.js +1 -0
  380. package/dist/userIdTargeting.js +1 -0
  381. package/dist/validationFpdModule.js +1 -0
  382. package/dist/vdoaiBidAdapter.js +1 -0
  383. package/dist/ventesBidAdapter.js +1 -0
  384. package/dist/verizonMediaIdSystem.js +1 -0
  385. package/dist/vibrantmediaBidAdapter.js +1 -0
  386. package/dist/vidazooBidAdapter.js +1 -0
  387. package/dist/videobyteBidAdapter.js +1 -0
  388. package/dist/videoreachBidAdapter.js +1 -0
  389. package/dist/vidoomyBidAdapter.js +1 -0
  390. package/dist/viewability.js +1 -0
  391. package/dist/viewdeosDXBidAdapter.js +1 -0
  392. package/dist/visxBidAdapter.js +1 -0
  393. package/dist/vlybyBidAdapter.js +1 -0
  394. package/dist/voxBidAdapter.js +1 -0
  395. package/dist/vrtcalBidAdapter.js +1 -0
  396. package/dist/vuukleBidAdapter.js +1 -0
  397. package/dist/waardexBidAdapter.js +1 -0
  398. package/dist/weboramaRtdProvider.js +1 -0
  399. package/dist/welectBidAdapter.js +1 -0
  400. package/dist/widespaceBidAdapter.js +1 -0
  401. package/dist/winrBidAdapter.js +1 -0
  402. package/dist/wipesBidAdapter.js +1 -0
  403. package/dist/yahoosspBidAdapter.js +1 -0
  404. package/dist/yieldlabBidAdapter.js +1 -0
  405. package/dist/yieldliftBidAdapter.js +1 -0
  406. package/dist/yieldmoBidAdapter.js +1 -0
  407. package/dist/yieldmoSyntheticInventoryModule.js +1 -0
  408. package/dist/yieldoneAnalyticsAdapter.js +1 -0
  409. package/dist/yieldoneBidAdapter.js +1 -0
  410. package/dist/yuktamediaAnalyticsAdapter.js +1 -0
  411. package/dist/zeotapIdPlusIdSystem.js +1 -0
  412. package/dist/zetaBidAdapter.js +1 -0
  413. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -0
  414. package/dist/zeta_global_sspBidAdapter.js +1 -0
  415. package/integrationExamples/gpt/{haloRtdProvider_example.html → hadronRtdProvider_example.html} +9 -9
  416. package/integrationExamples/gpt/idImportLibrary_example.html +2 -2
  417. package/integrationExamples/gpt/userId_example.html +2 -2
  418. package/integrationExamples/gpt/weboramaRtdProvider_example.html +154 -115
  419. package/integrationExamples/gpt/x-domain/creative.html +13 -6
  420. package/modules/.submodules.json +4 -0
  421. package/modules/adkernelBidAdapter.js +2 -1
  422. package/modules/adnuntiusRtdProvider.js +96 -0
  423. package/modules/adnuntiusRtdProvider.md +41 -0
  424. package/modules/adotBidAdapter.js +516 -567
  425. package/modules/adotBidAdapter.md +6 -44
  426. package/modules/adpod.js +12 -14
  427. package/modules/adyoulikeBidAdapter.js +3 -1
  428. package/modules/appnexusBidAdapter.js +3 -2
  429. package/modules/asealBidAdapter.js +58 -0
  430. package/modules/asealBidAdapter.md +52 -0
  431. package/modules/automatadBidAdapter.js +10 -7
  432. package/modules/big-richmediaBidAdapter.js +117 -0
  433. package/modules/big-richmediaBidAdapter.md +82 -0
  434. package/modules/bizzclickBidAdapter.js +5 -3
  435. package/modules/conversantBidAdapter.js +7 -0
  436. package/modules/currency.js +1 -4
  437. package/modules/debugging/bidInterceptor.js +229 -0
  438. package/modules/debugging/index.js +62 -0
  439. package/modules/debugging/pbsInterceptor.js +38 -0
  440. package/modules/dspxBidAdapter.js +69 -29
  441. package/modules/dspxBidAdapter.md +2 -1
  442. package/modules/fluctBidAdapter.js +18 -1
  443. package/modules/googleAnalyticsAdapter.js +22 -4
  444. package/modules/googleAnalyticsAdapter.md +1 -0
  445. package/modules/gridBidAdapter.js +26 -7
  446. package/modules/hadronIdSystem.js +96 -0
  447. package/modules/hadronIdSystem.md +35 -0
  448. package/modules/hadronRtdProvider.js +254 -0
  449. package/modules/hadronRtdProvider.md +126 -0
  450. package/modules/haloIdSystem.md +4 -35
  451. package/modules/haloRtdProvider.md +3 -126
  452. package/modules/imRtdProvider.js +10 -0
  453. package/modules/improvedigitalBidAdapter.js +5 -0
  454. package/modules/iqzoneBidAdapter.js +10 -3
  455. package/modules/iqzoneBidAdapter.md +16 -0
  456. package/modules/ixBidAdapter.js +35 -21
  457. package/modules/justIdSystem.js +206 -0
  458. package/modules/justIdSystem.md +70 -0
  459. package/modules/kubientBidAdapter.js +60 -28
  460. package/modules/lkqdBidAdapter.js +234 -0
  461. package/modules/lkqdBidAdapter.md +1 -1
  462. package/modules/lunamediahbBidAdapter.js +32 -4
  463. package/modules/malltvBidAdapter.js +7 -3
  464. package/modules/malltvBidAdapter.md +64 -51
  465. package/modules/mass.js +3 -5
  466. package/modules/mediakeysBidAdapter.js +0 -5
  467. package/modules/medianetAnalyticsAdapter.js +1 -1
  468. package/modules/mediasquareBidAdapter.js +9 -1
  469. package/modules/nextMillenniumBidAdapter.js +1 -0
  470. package/modules/nexx360BidAdapter.js +149 -0
  471. package/modules/nexx360BidAdapter.md +35 -0
  472. package/modules/novatiqIdSystem.js +68 -15
  473. package/modules/novatiqIdSystem.md +69 -7
  474. package/modules/oguryBidAdapter.js +7 -14
  475. package/modules/prebidServerBidAdapter/index.js +128 -90
  476. package/modules/priceFloors.js +20 -12
  477. package/modules/pubmaticBidAdapter.js +1 -1
  478. package/modules/richaudienceBidAdapter.js +15 -3
  479. package/modules/riseBidAdapter.js +17 -6
  480. package/modules/rtbhouseBidAdapter.js +2 -0
  481. package/modules/rubiconAnalyticsAdapter.js +5 -0
  482. package/modules/rubiconBidAdapter.js +2 -2
  483. package/modules/sizeMappingV2.js +1 -8
  484. package/modules/sortableAnalyticsAdapter.js +5 -4
  485. package/modules/sspBCBidAdapter.js +53 -20
  486. package/modules/telariaBidAdapter.js +22 -29
  487. package/modules/trustpidSystem.js +197 -0
  488. package/modules/trustpidSystem.md +45 -0
  489. package/modules/trustxBidAdapter.js +11 -6
  490. package/modules/userId/eids.js +22 -1
  491. package/modules/userId/eids.md +18 -2
  492. package/modules/userId/userId.md +17 -2
  493. package/modules/vibrantmediaBidAdapter.js +220 -0
  494. package/modules/vibrantmediaBidAdapter.md +92 -0
  495. package/modules/vidazooBidAdapter.js +3 -2
  496. package/modules/vidoomyBidAdapter.js +8 -0
  497. package/modules/vidoomyBidAdapter.md +4 -2
  498. package/modules/weboramaRtdProvider.js +264 -34
  499. package/modules/weboramaRtdProvider.md +110 -40
  500. package/modules/yahoosspBidAdapter.js +1 -1
  501. package/modules/yieldoneBidAdapter.js +6 -0
  502. package/package.json +2 -1
  503. package/plugins/eslint/node_modules/ansi-regex/index.js +4 -0
  504. package/plugins/eslint/node_modules/ansi-regex/license +21 -0
  505. package/plugins/eslint/node_modules/ansi-regex/package.json +56 -0
  506. package/plugins/eslint/node_modules/ansi-regex/readme.md +33 -0
  507. package/plugins/eslint/node_modules/ansi-styles/index.js +65 -0
  508. package/plugins/eslint/node_modules/ansi-styles/license +21 -0
  509. package/plugins/eslint/node_modules/ansi-styles/package.json +50 -0
  510. package/plugins/eslint/node_modules/ansi-styles/readme.md +86 -0
  511. package/plugins/eslint/node_modules/argparse/CHANGELOG.md +185 -0
  512. package/plugins/eslint/node_modules/argparse/LICENSE +21 -0
  513. package/plugins/eslint/node_modules/argparse/README.md +257 -0
  514. package/plugins/eslint/node_modules/argparse/index.js +3 -0
  515. package/plugins/eslint/node_modules/argparse/lib/action/append/constant.js +47 -0
  516. package/plugins/eslint/node_modules/argparse/lib/action/append.js +53 -0
  517. package/plugins/eslint/node_modules/argparse/lib/action/count.js +40 -0
  518. package/plugins/eslint/node_modules/argparse/lib/action/help.js +47 -0
  519. package/plugins/eslint/node_modules/argparse/lib/action/store/constant.js +43 -0
  520. package/plugins/eslint/node_modules/argparse/lib/action/store/false.js +27 -0
  521. package/plugins/eslint/node_modules/argparse/lib/action/store/true.js +26 -0
  522. package/plugins/eslint/node_modules/argparse/lib/action/store.js +50 -0
  523. package/plugins/eslint/node_modules/argparse/lib/action/subparsers.js +149 -0
  524. package/plugins/eslint/node_modules/argparse/lib/action/version.js +47 -0
  525. package/plugins/eslint/node_modules/argparse/lib/action.js +146 -0
  526. package/plugins/eslint/node_modules/argparse/lib/action_container.js +482 -0
  527. package/plugins/eslint/node_modules/argparse/lib/argparse.js +14 -0
  528. package/plugins/eslint/node_modules/argparse/lib/argument/error.js +50 -0
  529. package/plugins/eslint/node_modules/argparse/lib/argument/exclusive.js +54 -0
  530. package/plugins/eslint/node_modules/argparse/lib/argument/group.js +75 -0
  531. package/plugins/eslint/node_modules/argparse/lib/argument_parser.js +1161 -0
  532. package/plugins/eslint/node_modules/argparse/lib/const.js +21 -0
  533. package/plugins/eslint/node_modules/argparse/lib/help/added_formatters.js +87 -0
  534. package/plugins/eslint/node_modules/argparse/lib/help/formatter.js +795 -0
  535. package/plugins/eslint/node_modules/argparse/lib/namespace.js +76 -0
  536. package/plugins/eslint/node_modules/argparse/lib/utils.js +57 -0
  537. package/plugins/eslint/node_modules/argparse/package.json +34 -0
  538. package/plugins/eslint/node_modules/asn1/LICENSE +19 -0
  539. package/plugins/eslint/node_modules/asn1/README.md +50 -0
  540. package/plugins/eslint/node_modules/asn1/lib/ber/errors.js +13 -0
  541. package/plugins/eslint/node_modules/asn1/lib/ber/index.js +27 -0
  542. package/plugins/eslint/node_modules/asn1/lib/ber/reader.js +267 -0
  543. package/plugins/eslint/node_modules/asn1/lib/ber/types.js +36 -0
  544. package/plugins/eslint/node_modules/asn1/lib/ber/writer.js +317 -0
  545. package/plugins/eslint/node_modules/asn1/lib/index.js +20 -0
  546. package/plugins/eslint/node_modules/asn1/package.json +26 -0
  547. package/plugins/eslint/node_modules/asn1/tst/ber/reader.test.js +172 -0
  548. package/plugins/eslint/node_modules/asn1/tst/ber/writer.test.js +296 -0
  549. package/plugins/eslint/node_modules/assert-plus/README.md +126 -0
  550. package/plugins/eslint/node_modules/assert-plus/assert.js +245 -0
  551. package/plugins/eslint/node_modules/assert-plus/package.json +16 -0
  552. package/plugins/eslint/node_modules/assertion-error/History.md +14 -0
  553. package/plugins/eslint/node_modules/assertion-error/README.md +41 -0
  554. package/plugins/eslint/node_modules/assertion-error/index.js +110 -0
  555. package/plugins/eslint/node_modules/assertion-error/package.json +27 -0
  556. package/plugins/eslint/node_modules/async/CHANGELOG.md +125 -0
  557. package/plugins/eslint/node_modules/async/LICENSE +19 -0
  558. package/plugins/eslint/node_modules/async/README.md +1877 -0
  559. package/plugins/eslint/node_modules/async/dist/async.js +1265 -0
  560. package/plugins/eslint/node_modules/async/dist/async.min.js +2 -0
  561. package/plugins/eslint/node_modules/async/lib/async.js +1265 -0
  562. package/plugins/eslint/node_modules/async/package.json +85 -0
  563. package/plugins/eslint/node_modules/aws-sign2/LICENSE +55 -0
  564. package/plugins/eslint/node_modules/aws-sign2/README.md +4 -0
  565. package/plugins/eslint/node_modules/aws-sign2/index.js +202 -0
  566. package/plugins/eslint/node_modules/aws-sign2/package.json +16 -0
  567. package/plugins/eslint/node_modules/camelcase/index.js +56 -0
  568. package/plugins/eslint/node_modules/camelcase/license +21 -0
  569. package/plugins/eslint/node_modules/camelcase/package.json +39 -0
  570. package/plugins/eslint/node_modules/camelcase/readme.md +57 -0
  571. package/plugins/eslint/node_modules/camelcase-keys/index.js +12 -0
  572. package/plugins/eslint/node_modules/camelcase-keys/license +21 -0
  573. package/plugins/eslint/node_modules/camelcase-keys/package.json +52 -0
  574. package/plugins/eslint/node_modules/camelcase-keys/readme.md +54 -0
  575. package/plugins/eslint/node_modules/chai/CONTRIBUTING.md +173 -0
  576. package/plugins/eslint/node_modules/chai/History.md +937 -0
  577. package/plugins/eslint/node_modules/chai/README.md +109 -0
  578. package/plugins/eslint/node_modules/chai/ReleaseNotes.md +587 -0
  579. package/plugins/eslint/node_modules/chai/bower.json +27 -0
  580. package/plugins/eslint/node_modules/chai/chai.js +4800 -0
  581. package/plugins/eslint/node_modules/chai/index.js +1 -0
  582. package/plugins/eslint/node_modules/chai/karma.conf.js +28 -0
  583. package/plugins/eslint/node_modules/chai/karma.sauce.js +41 -0
  584. package/plugins/eslint/node_modules/chai/lib/chai/assertion.js +135 -0
  585. package/plugins/eslint/node_modules/chai/lib/chai/config.js +50 -0
  586. package/plugins/eslint/node_modules/chai/lib/chai/core/assertions.js +1359 -0
  587. package/plugins/eslint/node_modules/chai/lib/chai/interface/assert.js +1056 -0
  588. package/plugins/eslint/node_modules/chai/lib/chai/interface/expect.js +12 -0
  589. package/plugins/eslint/node_modules/chai/lib/chai/interface/should.js +78 -0
  590. package/plugins/eslint/node_modules/chai/lib/chai/utils/addChainableMethod.js +111 -0
  591. package/plugins/eslint/node_modules/chai/lib/chai/utils/addMethod.js +43 -0
  592. package/plugins/eslint/node_modules/chai/lib/chai/utils/addProperty.js +40 -0
  593. package/plugins/eslint/node_modules/chai/lib/chai/utils/flag.js +32 -0
  594. package/plugins/eslint/node_modules/chai/lib/chai/utils/getActual.js +18 -0
  595. package/plugins/eslint/node_modules/chai/lib/chai/utils/getEnumerableProperties.js +25 -0
  596. package/plugins/eslint/node_modules/chai/lib/chai/utils/getMessage.js +50 -0
  597. package/plugins/eslint/node_modules/chai/lib/chai/utils/getName.js +20 -0
  598. package/plugins/eslint/node_modules/chai/lib/chai/utils/getPathValue.js +102 -0
  599. package/plugins/eslint/node_modules/chai/lib/chai/utils/getProperties.js +35 -0
  600. package/plugins/eslint/node_modules/chai/lib/chai/utils/index.js +114 -0
  601. package/plugins/eslint/node_modules/chai/lib/chai/utils/inspect.js +333 -0
  602. package/plugins/eslint/node_modules/chai/lib/chai/utils/objDisplay.js +49 -0
  603. package/plugins/eslint/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js +53 -0
  604. package/plugins/eslint/node_modules/chai/lib/chai/utils/overwriteMethod.js +51 -0
  605. package/plugins/eslint/node_modules/chai/lib/chai/utils/overwriteProperty.js +54 -0
  606. package/plugins/eslint/node_modules/chai/lib/chai/utils/test.js +26 -0
  607. package/plugins/eslint/node_modules/chai/lib/chai/utils/transferFlags.js +44 -0
  608. package/plugins/eslint/node_modules/chai/lib/chai/utils/type.js +45 -0
  609. package/plugins/eslint/node_modules/chai/lib/chai.js +87 -0
  610. package/plugins/eslint/node_modules/chai/package.json +42 -0
  611. package/plugins/eslint/node_modules/chai/sauce.browsers.js +128 -0
  612. package/plugins/eslint/node_modules/chalk/index.js +116 -0
  613. package/plugins/eslint/node_modules/chalk/license +21 -0
  614. package/plugins/eslint/node_modules/chalk/package.json +70 -0
  615. package/plugins/eslint/node_modules/chalk/readme.md +213 -0
  616. package/plugins/eslint/node_modules/cli-width/.travis.yml +11 -0
  617. package/plugins/eslint/node_modules/cli-width/LICENSE +13 -0
  618. package/plugins/eslint/node_modules/cli-width/README.md +36 -0
  619. package/plugins/eslint/node_modules/cli-width/coverage/coverage.json +1 -0
  620. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/base.css +182 -0
  621. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/cli-width/index.html +73 -0
  622. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/cli-width/index.js.html +129 -0
  623. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/index.html +73 -0
  624. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/prettify.css +1 -0
  625. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/prettify.js +1 -0
  626. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  627. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/sorter.js +156 -0
  628. package/plugins/eslint/node_modules/cli-width/coverage/lcov.info +32 -0
  629. package/plugins/eslint/node_modules/cli-width/index.js +28 -0
  630. package/plugins/eslint/node_modules/cli-width/package.json +29 -0
  631. package/plugins/eslint/node_modules/combined-stream/License +19 -0
  632. package/plugins/eslint/node_modules/combined-stream/Readme.md +132 -0
  633. package/plugins/eslint/node_modules/combined-stream/lib/combined_stream.js +188 -0
  634. package/plugins/eslint/node_modules/combined-stream/package.json +24 -0
  635. package/plugins/eslint/node_modules/commander/Readme.md +208 -0
  636. package/plugins/eslint/node_modules/commander/index.js +876 -0
  637. package/plugins/eslint/node_modules/commander/package.json +13 -0
  638. package/plugins/eslint/node_modules/coveralls/.travis.yml +6 -0
  639. package/plugins/eslint/node_modules/coveralls/Makefile +20 -0
  640. package/plugins/eslint/node_modules/coveralls/README.md +129 -0
  641. package/plugins/eslint/node_modules/coveralls/fixtures/istanbul.lcov +131 -0
  642. package/plugins/eslint/node_modules/coveralls/fixtures/lib/index.js +172 -0
  643. package/plugins/eslint/node_modules/coveralls/fixtures/onefile.lcov +116 -0
  644. package/plugins/eslint/node_modules/coveralls/index.js +7 -0
  645. package/plugins/eslint/node_modules/coveralls/lib/convertLcovToCoveralls.js +111 -0
  646. package/plugins/eslint/node_modules/coveralls/lib/detectLocalGit.js +27 -0
  647. package/plugins/eslint/node_modules/coveralls/lib/fetchGitData.js +108 -0
  648. package/plugins/eslint/node_modules/coveralls/lib/getOptions.js +125 -0
  649. package/plugins/eslint/node_modules/coveralls/lib/handleInput.js +39 -0
  650. package/plugins/eslint/node_modules/coveralls/lib/logger.js +18 -0
  651. package/plugins/eslint/node_modules/coveralls/lib/sendToCoveralls.js +11 -0
  652. package/plugins/eslint/node_modules/coveralls/package.json +56 -0
  653. package/plugins/eslint/node_modules/coveralls/test/convertLcovToCoveralls.js +82 -0
  654. package/plugins/eslint/node_modules/coveralls/test/fetchGitData.js +182 -0
  655. package/plugins/eslint/node_modules/coveralls/test/getOptions.js +403 -0
  656. package/plugins/eslint/node_modules/coveralls/test/handleInput.js +78 -0
  657. package/plugins/eslint/node_modules/coveralls/test/logger.js +32 -0
  658. package/plugins/eslint/node_modules/coveralls/test/sendToCoveralls.js +27 -0
  659. package/plugins/eslint/node_modules/dateformat/.travis.yml +4 -0
  660. package/plugins/eslint/node_modules/dateformat/LICENSE +20 -0
  661. package/plugins/eslint/node_modules/dateformat/Readme.md +82 -0
  662. package/plugins/eslint/node_modules/dateformat/lib/dateformat.js +226 -0
  663. package/plugins/eslint/node_modules/dateformat/package.json +36 -0
  664. package/plugins/eslint/node_modules/dateformat/test/test_dayofweek.js +15 -0
  665. package/plugins/eslint/node_modules/dateformat/test/test_formats.js +76 -0
  666. package/plugins/eslint/node_modules/dateformat/test/test_isoutcdatetime.js +11 -0
  667. package/plugins/eslint/node_modules/dateformat/test/weekofyear/test_weekofyear.js +4 -0
  668. package/plugins/eslint/node_modules/dateformat/test/weekofyear/test_weekofyear.sh +27 -0
  669. package/plugins/eslint/node_modules/debug/.jshintrc +3 -0
  670. package/plugins/eslint/node_modules/debug/History.md +195 -0
  671. package/plugins/eslint/node_modules/debug/Makefile +36 -0
  672. package/plugins/eslint/node_modules/debug/Readme.md +188 -0
  673. package/plugins/eslint/node_modules/debug/bower.json +28 -0
  674. package/plugins/eslint/node_modules/debug/browser.js +168 -0
  675. package/plugins/eslint/node_modules/debug/component.json +19 -0
  676. package/plugins/eslint/node_modules/debug/debug.js +197 -0
  677. package/plugins/eslint/node_modules/debug/node.js +209 -0
  678. package/plugins/eslint/node_modules/debug/package.json +34 -0
  679. package/plugins/eslint/node_modules/decamelize/index.js +13 -0
  680. package/plugins/eslint/node_modules/decamelize/license +21 -0
  681. package/plugins/eslint/node_modules/decamelize/package.json +38 -0
  682. package/plugins/eslint/node_modules/decamelize/readme.md +48 -0
  683. package/plugins/eslint/node_modules/deep-eql/History.md +28 -0
  684. package/plugins/eslint/node_modules/deep-eql/README.md +52 -0
  685. package/plugins/eslint/node_modules/deep-eql/index.js +1 -0
  686. package/plugins/eslint/node_modules/deep-eql/karma.conf.js +20 -0
  687. package/plugins/eslint/node_modules/deep-eql/lib/eql.js +257 -0
  688. package/plugins/eslint/node_modules/deep-eql/package.json +37 -0
  689. package/plugins/eslint/node_modules/delayed-stream/License +19 -0
  690. package/plugins/eslint/node_modules/delayed-stream/Makefile +7 -0
  691. package/plugins/eslint/node_modules/delayed-stream/Readme.md +154 -0
  692. package/plugins/eslint/node_modules/delayed-stream/lib/delayed_stream.js +99 -0
  693. package/plugins/eslint/node_modules/delayed-stream/package.json +20 -0
  694. package/plugins/eslint/node_modules/delayed-stream/test/common.js +6 -0
  695. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-delayed-http-upload.js +38 -0
  696. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-delayed-stream-auto-pause.js +21 -0
  697. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-delayed-stream-pause.js +14 -0
  698. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-delayed-stream.js +48 -0
  699. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-handle-source-errors.js +15 -0
  700. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-max-data-size.js +18 -0
  701. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-pipe-resumes.js +13 -0
  702. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-proxy-readable.js +13 -0
  703. package/plugins/eslint/node_modules/delayed-stream/test/run.js +7 -0
  704. package/plugins/eslint/node_modules/diff/README.md +181 -0
  705. package/plugins/eslint/node_modules/diff/diff.js +619 -0
  706. package/plugins/eslint/node_modules/diff/package.json +44 -0
  707. package/plugins/eslint/node_modules/doctrine/.jshintrc +28 -0
  708. package/plugins/eslint/node_modules/doctrine/.scripted +6 -0
  709. package/plugins/eslint/node_modules/doctrine/.travis.yml +7 -0
  710. package/plugins/eslint/node_modules/doctrine/CONTRIBUTING.md +5 -0
  711. package/plugins/eslint/node_modules/doctrine/LICENSE.BSD +19 -0
  712. package/plugins/eslint/node_modules/doctrine/LICENSE.closure-compiler +202 -0
  713. package/plugins/eslint/node_modules/doctrine/LICENSE.esprima +19 -0
  714. package/plugins/eslint/node_modules/doctrine/README.md +176 -0
  715. package/plugins/eslint/node_modules/doctrine/coverage/coverage-final.json +2 -0
  716. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/base.css +182 -0
  717. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/index.html +72 -0
  718. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/prettify.css +1 -0
  719. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/prettify.js +1 -0
  720. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  721. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/sorter.js +156 -0
  722. package/plugins/eslint/node_modules/doctrine/coverage/lcov.info +0 -0
  723. package/plugins/eslint/node_modules/doctrine/eslint.json +22 -0
  724. package/plugins/eslint/node_modules/doctrine/gulpfile.js +120 -0
  725. package/plugins/eslint/node_modules/doctrine/lib/doctrine.js +809 -0
  726. package/plugins/eslint/node_modules/doctrine/lib/typed.js +1261 -0
  727. package/plugins/eslint/node_modules/doctrine/lib/utility.js +54 -0
  728. package/plugins/eslint/node_modules/doctrine/package.json +54 -0
  729. package/plugins/eslint/node_modules/doctrine/test/midstream.js +61 -0
  730. package/plugins/eslint/node_modules/doctrine/test/parse.js +2219 -0
  731. package/plugins/eslint/node_modules/doctrine/test/strict.js +168 -0
  732. package/plugins/eslint/node_modules/doctrine/test/stringify.js +413 -0
  733. package/plugins/eslint/node_modules/doctrine/test/test.html +31 -0
  734. package/plugins/eslint/node_modules/doctrine/test/unwrap.js +60 -0
  735. package/plugins/eslint/node_modules/escodegen/LICENSE.BSD +19 -0
  736. package/plugins/eslint/node_modules/escodegen/LICENSE.source-map +27 -0
  737. package/plugins/eslint/node_modules/escodegen/README.md +116 -0
  738. package/plugins/eslint/node_modules/escodegen/escodegen.js +2578 -0
  739. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/ChangeLog +77 -0
  740. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/LICENSE.BSD +19 -0
  741. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/README.md +24 -0
  742. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/esprima.js +3772 -0
  743. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/package.json +83 -0
  744. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/test/compat.js +241 -0
  745. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/test/reflect.js +422 -0
  746. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/test/run.js +67 -0
  747. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/test/runner.js +495 -0
  748. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/test/test.js +25593 -0
  749. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/.editorconfig +10 -0
  750. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/.jshintrc +16 -0
  751. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/LICENSE.BSD +19 -0
  752. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/README.md +124 -0
  753. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/estraverse.js +845 -0
  754. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/gulpfile.js +70 -0
  755. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/package.json +43 -0
  756. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/LICENSE.BSD +19 -0
  757. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/README.md +174 -0
  758. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/lib/ast.js +144 -0
  759. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/lib/code.js +135 -0
  760. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/lib/keyword.js +165 -0
  761. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/lib/utils.js +33 -0
  762. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/package.json +44 -0
  763. package/plugins/eslint/node_modules/escodegen/package.json +62 -0
  764. package/plugins/eslint/node_modules/espree/README.md +232 -0
  765. package/plugins/eslint/node_modules/espree/espree.js +5533 -0
  766. package/plugins/eslint/node_modules/espree/lib/ast-node-factory.js +964 -0
  767. package/plugins/eslint/node_modules/espree/lib/ast-node-types.js +119 -0
  768. package/plugins/eslint/node_modules/espree/lib/comment-attachment.js +183 -0
  769. package/plugins/eslint/node_modules/espree/lib/features.js +117 -0
  770. package/plugins/eslint/node_modules/espree/lib/messages.js +99 -0
  771. package/plugins/eslint/node_modules/espree/lib/string-map.js +55 -0
  772. package/plugins/eslint/node_modules/espree/lib/syntax.js +189 -0
  773. package/plugins/eslint/node_modules/espree/lib/token-info.js +90 -0
  774. package/plugins/eslint/node_modules/espree/lib/xhtml-entities.js +293 -0
  775. package/plugins/eslint/node_modules/espree/package.json +83 -0
  776. package/plugins/eslint/node_modules/espree/test/compat.js +255 -0
  777. package/plugins/eslint/node_modules/espree/test/reflect.js +422 -0
  778. package/plugins/eslint/node_modules/espree/test/run.js +68 -0
  779. package/plugins/eslint/node_modules/espree/test/runner.js +492 -0
  780. package/plugins/eslint/node_modules/espree/test/test.js +34 -0
  781. package/plugins/eslint/node_modules/esprima/ChangeLog +174 -0
  782. package/plugins/eslint/node_modules/esprima/LICENSE.BSD +21 -0
  783. package/plugins/eslint/node_modules/esprima/README.md +27 -0
  784. package/plugins/eslint/node_modules/esprima/esprima.js +5740 -0
  785. package/plugins/eslint/node_modules/esprima/package.json +99 -0
  786. package/plugins/eslint/node_modules/esutils/LICENSE.BSD +19 -0
  787. package/plugins/eslint/node_modules/esutils/README.md +169 -0
  788. package/plugins/eslint/node_modules/esutils/lib/ast.js +144 -0
  789. package/plugins/eslint/node_modules/esutils/lib/code.js +101 -0
  790. package/plugins/eslint/node_modules/esutils/lib/keyword.js +137 -0
  791. package/plugins/eslint/node_modules/esutils/lib/utils.js +33 -0
  792. package/plugins/eslint/node_modules/esutils/package.json +49 -0
  793. package/plugins/eslint/node_modules/fast-levenshtein/LICENSE.md +25 -0
  794. package/plugins/eslint/node_modules/fast-levenshtein/README.md +120 -0
  795. package/plugins/eslint/node_modules/fast-levenshtein/levenshtein.js +198 -0
  796. package/plugins/eslint/node_modules/fast-levenshtein/package.json +36 -0
  797. package/plugins/eslint/node_modules/figures/index.js +147 -0
  798. package/plugins/eslint/node_modules/figures/license +21 -0
  799. package/plugins/eslint/node_modules/figures/node_modules/object-assign/index.js +90 -0
  800. package/plugins/eslint/node_modules/figures/node_modules/object-assign/license +21 -0
  801. package/plugins/eslint/node_modules/figures/node_modules/object-assign/package.json +42 -0
  802. package/plugins/eslint/node_modules/figures/node_modules/object-assign/readme.md +61 -0
  803. package/plugins/eslint/node_modules/figures/package.json +45 -0
  804. package/plugins/eslint/node_modules/figures/readme.md +115 -0
  805. package/plugins/eslint/node_modules/forever-agent/LICENSE +55 -0
  806. package/plugins/eslint/node_modules/forever-agent/README.md +4 -0
  807. package/plugins/eslint/node_modules/forever-agent/index.js +119 -0
  808. package/plugins/eslint/node_modules/forever-agent/package.json +16 -0
  809. package/plugins/eslint/node_modules/form-data/License +19 -0
  810. package/plugins/eslint/node_modules/form-data/Readme.md +175 -0
  811. package/plugins/eslint/node_modules/form-data/lib/form_data.js +351 -0
  812. package/plugins/eslint/node_modules/form-data/node_modules/async/.travis.yml +5 -0
  813. package/plugins/eslint/node_modules/form-data/node_modules/async/LICENSE +19 -0
  814. package/plugins/eslint/node_modules/form-data/node_modules/async/README.md +1647 -0
  815. package/plugins/eslint/node_modules/form-data/node_modules/async/bower.json +38 -0
  816. package/plugins/eslint/node_modules/form-data/node_modules/async/component.json +16 -0
  817. package/plugins/eslint/node_modules/form-data/node_modules/async/lib/async.js +1123 -0
  818. package/plugins/eslint/node_modules/form-data/node_modules/async/package.json +54 -0
  819. package/plugins/eslint/node_modules/form-data/node_modules/async/support/sync-package-managers.js +53 -0
  820. package/plugins/eslint/node_modules/form-data/package.json +34 -0
  821. package/plugins/eslint/node_modules/glob/.travis.yml +3 -0
  822. package/plugins/eslint/node_modules/glob/LICENSE +27 -0
  823. package/plugins/eslint/node_modules/glob/README.md +250 -0
  824. package/plugins/eslint/node_modules/glob/examples/g.js +9 -0
  825. package/plugins/eslint/node_modules/glob/examples/usr-local.js +9 -0
  826. package/plugins/eslint/node_modules/glob/glob.js +728 -0
  827. package/plugins/eslint/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
  828. package/plugins/eslint/node_modules/glob/node_modules/minimatch/README.md +218 -0
  829. package/plugins/eslint/node_modules/glob/node_modules/minimatch/minimatch.js +1061 -0
  830. package/plugins/eslint/node_modules/glob/node_modules/minimatch/package.json +28 -0
  831. package/plugins/eslint/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
  832. package/plugins/eslint/node_modules/glob/node_modules/minimatch/test/brace-expand.js +33 -0
  833. package/plugins/eslint/node_modules/glob/node_modules/minimatch/test/caching.js +14 -0
  834. package/plugins/eslint/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
  835. package/plugins/eslint/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  836. package/plugins/eslint/node_modules/glob/package.json +28 -0
  837. package/plugins/eslint/node_modules/glob/test/00-setup.js +176 -0
  838. package/plugins/eslint/node_modules/glob/test/bash-comparison.js +63 -0
  839. package/plugins/eslint/node_modules/glob/test/bash-results.json +351 -0
  840. package/plugins/eslint/node_modules/glob/test/cwd-test.js +55 -0
  841. package/plugins/eslint/node_modules/glob/test/globstar-match.js +19 -0
  842. package/plugins/eslint/node_modules/glob/test/mark.js +118 -0
  843. package/plugins/eslint/node_modules/glob/test/new-glob-optional-options.js +10 -0
  844. package/plugins/eslint/node_modules/glob/test/nocase-nomagic.js +113 -0
  845. package/plugins/eslint/node_modules/glob/test/pause-resume.js +73 -0
  846. package/plugins/eslint/node_modules/glob/test/readme-issue.js +36 -0
  847. package/plugins/eslint/node_modules/glob/test/root-nomount.js +39 -0
  848. package/plugins/eslint/node_modules/glob/test/root.js +46 -0
  849. package/plugins/eslint/node_modules/glob/test/stat.js +32 -0
  850. package/plugins/eslint/node_modules/glob/test/zz-cleanup.js +11 -0
  851. package/plugins/eslint/node_modules/globals/globals.json +1245 -0
  852. package/plugins/eslint/node_modules/globals/index.js +1 -0
  853. package/plugins/eslint/node_modules/globals/license +21 -0
  854. package/plugins/eslint/node_modules/globals/package.json +35 -0
  855. package/plugins/eslint/node_modules/globals/readme.md +39 -0
  856. package/plugins/eslint/node_modules/growl/History.md +63 -0
  857. package/plugins/eslint/node_modules/growl/Readme.md +108 -0
  858. package/plugins/eslint/node_modules/growl/lib/growl.js +290 -0
  859. package/plugins/eslint/node_modules/growl/package.json +15 -0
  860. package/plugins/eslint/node_modules/growl/test.js +31 -0
  861. package/plugins/eslint/node_modules/has-flag/index.js +10 -0
  862. package/plugins/eslint/node_modules/has-flag/license +21 -0
  863. package/plugins/eslint/node_modules/has-flag/package.json +48 -0
  864. package/plugins/eslint/node_modules/has-flag/readme.md +64 -0
  865. package/plugins/eslint/node_modules/http-signature/.dir-locals.el +6 -0
  866. package/plugins/eslint/node_modules/http-signature/LICENSE +18 -0
  867. package/plugins/eslint/node_modules/http-signature/README.md +79 -0
  868. package/plugins/eslint/node_modules/http-signature/http_signing.md +296 -0
  869. package/plugins/eslint/node_modules/http-signature/lib/index.js +26 -0
  870. package/plugins/eslint/node_modules/http-signature/lib/parser.js +304 -0
  871. package/plugins/eslint/node_modules/http-signature/lib/signer.js +178 -0
  872. package/plugins/eslint/node_modules/http-signature/lib/util.js +304 -0
  873. package/plugins/eslint/node_modules/http-signature/lib/verify.js +42 -0
  874. package/plugins/eslint/node_modules/http-signature/package.json +37 -0
  875. package/plugins/eslint/node_modules/indent-string/index.js +20 -0
  876. package/plugins/eslint/node_modules/indent-string/license +21 -0
  877. package/plugins/eslint/node_modules/indent-string/package.json +36 -0
  878. package/plugins/eslint/node_modules/indent-string/readme.md +58 -0
  879. package/plugins/eslint/node_modules/inquirer/README.md +295 -0
  880. package/plugins/eslint/node_modules/inquirer/lib/inquirer.js +79 -0
  881. package/plugins/eslint/node_modules/inquirer/lib/objects/choice.js +44 -0
  882. package/plugins/eslint/node_modules/inquirer/lib/objects/choices.js +180 -0
  883. package/plugins/eslint/node_modules/inquirer/lib/objects/separator.js +47 -0
  884. package/plugins/eslint/node_modules/inquirer/lib/prompts/base.js +231 -0
  885. package/plugins/eslint/node_modules/inquirer/lib/prompts/checkbox.js +258 -0
  886. package/plugins/eslint/node_modules/inquirer/lib/prompts/confirm.js +105 -0
  887. package/plugins/eslint/node_modules/inquirer/lib/prompts/expand.js +258 -0
  888. package/plugins/eslint/node_modules/inquirer/lib/prompts/input.js +106 -0
  889. package/plugins/eslint/node_modules/inquirer/lib/prompts/list.js +194 -0
  890. package/plugins/eslint/node_modules/inquirer/lib/prompts/password.js +153 -0
  891. package/plugins/eslint/node_modules/inquirer/lib/prompts/rawlist.js +191 -0
  892. package/plugins/eslint/node_modules/inquirer/lib/ui/baseUI.js +83 -0
  893. package/plugins/eslint/node_modules/inquirer/lib/ui/bottom-bar.js +77 -0
  894. package/plugins/eslint/node_modules/inquirer/lib/ui/prompt.js +136 -0
  895. package/plugins/eslint/node_modules/inquirer/lib/utils/events.js +32 -0
  896. package/plugins/eslint/node_modules/inquirer/lib/utils/tty.js +130 -0
  897. package/plugins/eslint/node_modules/inquirer/lib/utils/utils.js +123 -0
  898. package/plugins/eslint/node_modules/inquirer/package.json +44 -0
  899. package/plugins/eslint/node_modules/isarray/README.md +54 -0
  900. package/plugins/eslint/node_modules/isarray/component.json +19 -0
  901. package/plugins/eslint/node_modules/isarray/index.js +3 -0
  902. package/plugins/eslint/node_modules/isarray/package.json +25 -0
  903. package/plugins/eslint/node_modules/istanbul/CHANGELOG.md +304 -0
  904. package/plugins/eslint/node_modules/istanbul/LICENSE +24 -0
  905. package/plugins/eslint/node_modules/istanbul/README.md +269 -0
  906. package/plugins/eslint/node_modules/istanbul/index.js +153 -0
  907. package/plugins/eslint/node_modules/istanbul/lib/assets/base.css +182 -0
  908. package/plugins/eslint/node_modules/istanbul/lib/assets/sort-arrow-sprite.png +0 -0
  909. package/plugins/eslint/node_modules/istanbul/lib/assets/sorter.js +156 -0
  910. package/plugins/eslint/node_modules/istanbul/lib/assets/vendor/prettify.css +1 -0
  911. package/plugins/eslint/node_modules/istanbul/lib/assets/vendor/prettify.js +1 -0
  912. package/plugins/eslint/node_modules/istanbul/lib/cli.js +94 -0
  913. package/plugins/eslint/node_modules/istanbul/lib/collector.js +122 -0
  914. package/plugins/eslint/node_modules/istanbul/lib/command/check-coverage.js +195 -0
  915. package/plugins/eslint/node_modules/istanbul/lib/command/common/run-with-cover.js +261 -0
  916. package/plugins/eslint/node_modules/istanbul/lib/command/cover.js +33 -0
  917. package/plugins/eslint/node_modules/istanbul/lib/command/help.js +102 -0
  918. package/plugins/eslint/node_modules/istanbul/lib/command/index.js +33 -0
  919. package/plugins/eslint/node_modules/istanbul/lib/command/instrument.js +261 -0
  920. package/plugins/eslint/node_modules/istanbul/lib/command/report.js +123 -0
  921. package/plugins/eslint/node_modules/istanbul/lib/command/test.js +31 -0
  922. package/plugins/eslint/node_modules/istanbul/lib/config.js +483 -0
  923. package/plugins/eslint/node_modules/istanbul/lib/hook.js +198 -0
  924. package/plugins/eslint/node_modules/istanbul/lib/instrumenter.js +1040 -0
  925. package/plugins/eslint/node_modules/istanbul/lib/object-utils.js +425 -0
  926. package/plugins/eslint/node_modules/istanbul/lib/register-plugins.js +15 -0
  927. package/plugins/eslint/node_modules/istanbul/lib/report/clover.js +227 -0
  928. package/plugins/eslint/node_modules/istanbul/lib/report/cobertura.js +221 -0
  929. package/plugins/eslint/node_modules/istanbul/lib/report/common/defaults.js +49 -0
  930. package/plugins/eslint/node_modules/istanbul/lib/report/html.js +567 -0
  931. package/plugins/eslint/node_modules/istanbul/lib/report/index.js +104 -0
  932. package/plugins/eslint/node_modules/istanbul/lib/report/json-summary.js +75 -0
  933. package/plugins/eslint/node_modules/istanbul/lib/report/json.js +69 -0
  934. package/plugins/eslint/node_modules/istanbul/lib/report/lcov.js +65 -0
  935. package/plugins/eslint/node_modules/istanbul/lib/report/lcovonly.js +103 -0
  936. package/plugins/eslint/node_modules/istanbul/lib/report/none.js +41 -0
  937. package/plugins/eslint/node_modules/istanbul/lib/report/teamcity.js +92 -0
  938. package/plugins/eslint/node_modules/istanbul/lib/report/templates/foot.txt +18 -0
  939. package/plugins/eslint/node_modules/istanbul/lib/report/templates/head.txt +36 -0
  940. package/plugins/eslint/node_modules/istanbul/lib/report/text-lcov.js +50 -0
  941. package/plugins/eslint/node_modules/istanbul/lib/report/text-summary.js +93 -0
  942. package/plugins/eslint/node_modules/istanbul/lib/report/text.js +234 -0
  943. package/plugins/eslint/node_modules/istanbul/lib/reporter.js +111 -0
  944. package/plugins/eslint/node_modules/istanbul/lib/store/fslookup.js +61 -0
  945. package/plugins/eslint/node_modules/istanbul/lib/store/index.js +123 -0
  946. package/plugins/eslint/node_modules/istanbul/lib/store/memory.js +56 -0
  947. package/plugins/eslint/node_modules/istanbul/lib/store/tmp.js +81 -0
  948. package/plugins/eslint/node_modules/istanbul/lib/util/factory.js +88 -0
  949. package/plugins/eslint/node_modules/istanbul/lib/util/file-matcher.js +76 -0
  950. package/plugins/eslint/node_modules/istanbul/lib/util/file-writer.js +154 -0
  951. package/plugins/eslint/node_modules/istanbul/lib/util/help-formatter.js +30 -0
  952. package/plugins/eslint/node_modules/istanbul/lib/util/input-error.js +12 -0
  953. package/plugins/eslint/node_modules/istanbul/lib/util/insertion-text.js +109 -0
  954. package/plugins/eslint/node_modules/istanbul/lib/util/meta.js +13 -0
  955. package/plugins/eslint/node_modules/istanbul/lib/util/tree-summarizer.js +213 -0
  956. package/plugins/eslint/node_modules/istanbul/lib/util/writer.js +92 -0
  957. package/plugins/eslint/node_modules/istanbul/lib/util/yui-load-hook.js +49 -0
  958. package/plugins/eslint/node_modules/istanbul/node_modules/esprima/ChangeLog +143 -0
  959. package/plugins/eslint/node_modules/istanbul/node_modules/esprima/LICENSE.BSD +21 -0
  960. package/plugins/eslint/node_modules/istanbul/node_modules/esprima/README.md +22 -0
  961. package/plugins/eslint/node_modules/istanbul/node_modules/esprima/esprima.js +5637 -0
  962. package/plugins/eslint/node_modules/istanbul/node_modules/esprima/package.json +87 -0
  963. package/plugins/eslint/node_modules/istanbul/node_modules/supports-color/browser.js +2 -0
  964. package/plugins/eslint/node_modules/istanbul/node_modules/supports-color/index.js +84 -0
  965. package/plugins/eslint/node_modules/istanbul/node_modules/supports-color/license +21 -0
  966. package/plugins/eslint/node_modules/istanbul/node_modules/supports-color/package.json +66 -0
  967. package/plugins/eslint/node_modules/istanbul/node_modules/supports-color/readme.md +60 -0
  968. package/plugins/eslint/node_modules/istanbul/package.json +117 -0
  969. package/plugins/eslint/node_modules/js-yaml/CHANGELOG.md +557 -0
  970. package/plugins/eslint/node_modules/js-yaml/LICENSE +21 -0
  971. package/plugins/eslint/node_modules/js-yaml/README.md +299 -0
  972. package/plugins/eslint/node_modules/js-yaml/dist/js-yaml.js +3989 -0
  973. package/plugins/eslint/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
  974. package/plugins/eslint/node_modules/js-yaml/index.js +7 -0
  975. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
  976. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
  977. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
  978. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/loader.js +1644 -0
  979. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
  980. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
  981. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
  982. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
  983. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
  984. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
  985. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
  986. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
  987. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
  988. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
  989. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
  990. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
  991. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
  992. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
  993. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
  994. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
  995. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
  996. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
  997. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
  998. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
  999. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
  1000. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
  1001. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
  1002. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
  1003. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml.js +39 -0
  1004. package/plugins/eslint/node_modules/js-yaml/node_modules/esprima/ChangeLog +235 -0
  1005. package/plugins/eslint/node_modules/js-yaml/node_modules/esprima/LICENSE.BSD +21 -0
  1006. package/plugins/eslint/node_modules/js-yaml/node_modules/esprima/README.md +46 -0
  1007. package/plugins/eslint/node_modules/js-yaml/node_modules/esprima/dist/esprima.js +6709 -0
  1008. package/plugins/eslint/node_modules/js-yaml/node_modules/esprima/package.json +112 -0
  1009. package/plugins/eslint/node_modules/js-yaml/package.json +49 -0
  1010. package/plugins/eslint/node_modules/lcov-parse/.travis.yml +5 -0
  1011. package/plugins/eslint/node_modules/lcov-parse/LICENSE +25 -0
  1012. package/plugins/eslint/node_modules/lcov-parse/README.md +79 -0
  1013. package/plugins/eslint/node_modules/lcov-parse/lib/index.js +122 -0
  1014. package/plugins/eslint/node_modules/lcov-parse/package.json +39 -0
  1015. package/plugins/eslint/node_modules/lcov-parse/tests/info/parts.info +415 -0
  1016. package/plugins/eslint/node_modules/lcov-parse/tests/parse.js +115 -0
  1017. package/plugins/eslint/node_modules/levn/LICENSE +22 -0
  1018. package/plugins/eslint/node_modules/levn/README.md +195 -0
  1019. package/plugins/eslint/node_modules/levn/lib/cast.js +298 -0
  1020. package/plugins/eslint/node_modules/levn/lib/coerce.js +285 -0
  1021. package/plugins/eslint/node_modules/levn/lib/index.js +22 -0
  1022. package/plugins/eslint/node_modules/levn/lib/parse-string.js +113 -0
  1023. package/plugins/eslint/node_modules/levn/lib/parse.js +102 -0
  1024. package/plugins/eslint/node_modules/levn/package.json +52 -0
  1025. package/plugins/eslint/node_modules/lodash/LICENSE +22 -0
  1026. package/plugins/eslint/node_modules/lodash/README.md +121 -0
  1027. package/plugins/eslint/node_modules/lodash/array/chunk.js +46 -0
  1028. package/plugins/eslint/node_modules/lodash/array/compact.js +30 -0
  1029. package/plugins/eslint/node_modules/lodash/array/difference.js +29 -0
  1030. package/plugins/eslint/node_modules/lodash/array/drop.js +39 -0
  1031. package/plugins/eslint/node_modules/lodash/array/dropRight.js +40 -0
  1032. package/plugins/eslint/node_modules/lodash/array/dropRightWhile.js +59 -0
  1033. package/plugins/eslint/node_modules/lodash/array/dropWhile.js +59 -0
  1034. package/plugins/eslint/node_modules/lodash/array/fill.js +44 -0
  1035. package/plugins/eslint/node_modules/lodash/array/findIndex.js +53 -0
  1036. package/plugins/eslint/node_modules/lodash/array/findLastIndex.js +53 -0
  1037. package/plugins/eslint/node_modules/lodash/array/first.js +22 -0
  1038. package/plugins/eslint/node_modules/lodash/array/flatten.js +32 -0
  1039. package/plugins/eslint/node_modules/lodash/array/flattenDeep.js +21 -0
  1040. package/plugins/eslint/node_modules/lodash/array/head.js +1 -0
  1041. package/plugins/eslint/node_modules/lodash/array/indexOf.js +53 -0
  1042. package/plugins/eslint/node_modules/lodash/array/initial.js +20 -0
  1043. package/plugins/eslint/node_modules/lodash/array/intersection.js +58 -0
  1044. package/plugins/eslint/node_modules/lodash/array/last.js +19 -0
  1045. package/plugins/eslint/node_modules/lodash/array/lastIndexOf.js +60 -0
  1046. package/plugins/eslint/node_modules/lodash/array/object.js +1 -0
  1047. package/plugins/eslint/node_modules/lodash/array/pull.js +52 -0
  1048. package/plugins/eslint/node_modules/lodash/array/pullAt.js +40 -0
  1049. package/plugins/eslint/node_modules/lodash/array/remove.js +64 -0
  1050. package/plugins/eslint/node_modules/lodash/array/rest.js +21 -0
  1051. package/plugins/eslint/node_modules/lodash/array/slice.js +30 -0
  1052. package/plugins/eslint/node_modules/lodash/array/sortedIndex.js +53 -0
  1053. package/plugins/eslint/node_modules/lodash/array/sortedLastIndex.js +25 -0
  1054. package/plugins/eslint/node_modules/lodash/array/tail.js +1 -0
  1055. package/plugins/eslint/node_modules/lodash/array/take.js +39 -0
  1056. package/plugins/eslint/node_modules/lodash/array/takeRight.js +40 -0
  1057. package/plugins/eslint/node_modules/lodash/array/takeRightWhile.js +59 -0
  1058. package/plugins/eslint/node_modules/lodash/array/takeWhile.js +59 -0
  1059. package/plugins/eslint/node_modules/lodash/array/union.js +24 -0
  1060. package/plugins/eslint/node_modules/lodash/array/uniq.js +71 -0
  1061. package/plugins/eslint/node_modules/lodash/array/unique.js +1 -0
  1062. package/plugins/eslint/node_modules/lodash/array/unzip.js +47 -0
  1063. package/plugins/eslint/node_modules/lodash/array/unzipWith.js +41 -0
  1064. package/plugins/eslint/node_modules/lodash/array/without.js +27 -0
  1065. package/plugins/eslint/node_modules/lodash/array/xor.js +35 -0
  1066. package/plugins/eslint/node_modules/lodash/array/zip.js +21 -0
  1067. package/plugins/eslint/node_modules/lodash/array/zipObject.js +43 -0
  1068. package/plugins/eslint/node_modules/lodash/array/zipWith.js +36 -0
  1069. package/plugins/eslint/node_modules/lodash/array.js +44 -0
  1070. package/plugins/eslint/node_modules/lodash/chain/chain.js +35 -0
  1071. package/plugins/eslint/node_modules/lodash/chain/commit.js +1 -0
  1072. package/plugins/eslint/node_modules/lodash/chain/concat.js +1 -0
  1073. package/plugins/eslint/node_modules/lodash/chain/lodash.js +125 -0
  1074. package/plugins/eslint/node_modules/lodash/chain/plant.js +1 -0
  1075. package/plugins/eslint/node_modules/lodash/chain/reverse.js +1 -0
  1076. package/plugins/eslint/node_modules/lodash/chain/run.js +1 -0
  1077. package/plugins/eslint/node_modules/lodash/chain/tap.js +29 -0
  1078. package/plugins/eslint/node_modules/lodash/chain/thru.js +26 -0
  1079. package/plugins/eslint/node_modules/lodash/chain/toJSON.js +1 -0
  1080. package/plugins/eslint/node_modules/lodash/chain/toString.js +1 -0
  1081. package/plugins/eslint/node_modules/lodash/chain/value.js +1 -0
  1082. package/plugins/eslint/node_modules/lodash/chain/valueOf.js +1 -0
  1083. package/plugins/eslint/node_modules/lodash/chain/wrapperChain.js +32 -0
  1084. package/plugins/eslint/node_modules/lodash/chain/wrapperCommit.js +32 -0
  1085. package/plugins/eslint/node_modules/lodash/chain/wrapperConcat.js +34 -0
  1086. package/plugins/eslint/node_modules/lodash/chain/wrapperPlant.js +45 -0
  1087. package/plugins/eslint/node_modules/lodash/chain/wrapperReverse.js +43 -0
  1088. package/plugins/eslint/node_modules/lodash/chain/wrapperToString.js +17 -0
  1089. package/plugins/eslint/node_modules/lodash/chain/wrapperValue.js +20 -0
  1090. package/plugins/eslint/node_modules/lodash/chain.js +16 -0
  1091. package/plugins/eslint/node_modules/lodash/collection/all.js +1 -0
  1092. package/plugins/eslint/node_modules/lodash/collection/any.js +1 -0
  1093. package/plugins/eslint/node_modules/lodash/collection/at.js +29 -0
  1094. package/plugins/eslint/node_modules/lodash/collection/collect.js +1 -0
  1095. package/plugins/eslint/node_modules/lodash/collection/contains.js +1 -0
  1096. package/plugins/eslint/node_modules/lodash/collection/countBy.js +54 -0
  1097. package/plugins/eslint/node_modules/lodash/collection/detect.js +1 -0
  1098. package/plugins/eslint/node_modules/lodash/collection/each.js +1 -0
  1099. package/plugins/eslint/node_modules/lodash/collection/eachRight.js +1 -0
  1100. package/plugins/eslint/node_modules/lodash/collection/every.js +66 -0
  1101. package/plugins/eslint/node_modules/lodash/collection/filter.js +61 -0
  1102. package/plugins/eslint/node_modules/lodash/collection/find.js +56 -0
  1103. package/plugins/eslint/node_modules/lodash/collection/findLast.js +25 -0
  1104. package/plugins/eslint/node_modules/lodash/collection/findWhere.js +37 -0
  1105. package/plugins/eslint/node_modules/lodash/collection/foldl.js +1 -0
  1106. package/plugins/eslint/node_modules/lodash/collection/foldr.js +1 -0
  1107. package/plugins/eslint/node_modules/lodash/collection/forEach.js +37 -0
  1108. package/plugins/eslint/node_modules/lodash/collection/forEachRight.js +26 -0
  1109. package/plugins/eslint/node_modules/lodash/collection/groupBy.js +59 -0
  1110. package/plugins/eslint/node_modules/lodash/collection/include.js +1 -0
  1111. package/plugins/eslint/node_modules/lodash/collection/includes.js +57 -0
  1112. package/plugins/eslint/node_modules/lodash/collection/indexBy.js +53 -0
  1113. package/plugins/eslint/node_modules/lodash/collection/inject.js +1 -0
  1114. package/plugins/eslint/node_modules/lodash/collection/invoke.js +42 -0
  1115. package/plugins/eslint/node_modules/lodash/collection/map.js +68 -0
  1116. package/plugins/eslint/node_modules/lodash/collection/max.js +1 -0
  1117. package/plugins/eslint/node_modules/lodash/collection/min.js +1 -0
  1118. package/plugins/eslint/node_modules/lodash/collection/partition.js +66 -0
  1119. package/plugins/eslint/node_modules/lodash/collection/pluck.js +31 -0
  1120. package/plugins/eslint/node_modules/lodash/collection/reduce.js +44 -0
  1121. package/plugins/eslint/node_modules/lodash/collection/reduceRight.js +29 -0
  1122. package/plugins/eslint/node_modules/lodash/collection/reject.js +50 -0
  1123. package/plugins/eslint/node_modules/lodash/collection/sample.js +50 -0
  1124. package/plugins/eslint/node_modules/lodash/collection/select.js +1 -0
  1125. package/plugins/eslint/node_modules/lodash/collection/shuffle.js +24 -0
  1126. package/plugins/eslint/node_modules/lodash/collection/size.js +30 -0
  1127. package/plugins/eslint/node_modules/lodash/collection/some.js +67 -0
  1128. package/plugins/eslint/node_modules/lodash/collection/sortBy.js +71 -0
  1129. package/plugins/eslint/node_modules/lodash/collection/sortByAll.js +52 -0
  1130. package/plugins/eslint/node_modules/lodash/collection/sortByOrder.js +55 -0
  1131. package/plugins/eslint/node_modules/lodash/collection/sum.js +1 -0
  1132. package/plugins/eslint/node_modules/lodash/collection/where.js +37 -0
  1133. package/plugins/eslint/node_modules/lodash/collection.js +44 -0
  1134. package/plugins/eslint/node_modules/lodash/date/now.js +24 -0
  1135. package/plugins/eslint/node_modules/lodash/date.js +3 -0
  1136. package/plugins/eslint/node_modules/lodash/function/after.js +48 -0
  1137. package/plugins/eslint/node_modules/lodash/function/ary.js +34 -0
  1138. package/plugins/eslint/node_modules/lodash/function/backflow.js +1 -0
  1139. package/plugins/eslint/node_modules/lodash/function/before.js +42 -0
  1140. package/plugins/eslint/node_modules/lodash/function/bind.js +56 -0
  1141. package/plugins/eslint/node_modules/lodash/function/bindAll.js +50 -0
  1142. package/plugins/eslint/node_modules/lodash/function/bindKey.js +66 -0
  1143. package/plugins/eslint/node_modules/lodash/function/compose.js +1 -0
  1144. package/plugins/eslint/node_modules/lodash/function/curry.js +51 -0
  1145. package/plugins/eslint/node_modules/lodash/function/curryRight.js +48 -0
  1146. package/plugins/eslint/node_modules/lodash/function/debounce.js +181 -0
  1147. package/plugins/eslint/node_modules/lodash/function/defer.js +25 -0
  1148. package/plugins/eslint/node_modules/lodash/function/delay.js +26 -0
  1149. package/plugins/eslint/node_modules/lodash/function/flow.js +25 -0
  1150. package/plugins/eslint/node_modules/lodash/function/flowRight.js +25 -0
  1151. package/plugins/eslint/node_modules/lodash/function/memoize.js +80 -0
  1152. package/plugins/eslint/node_modules/lodash/function/modArgs.js +58 -0
  1153. package/plugins/eslint/node_modules/lodash/function/negate.js +32 -0
  1154. package/plugins/eslint/node_modules/lodash/function/once.js +24 -0
  1155. package/plugins/eslint/node_modules/lodash/function/partial.js +43 -0
  1156. package/plugins/eslint/node_modules/lodash/function/partialRight.js +42 -0
  1157. package/plugins/eslint/node_modules/lodash/function/rearg.js +40 -0
  1158. package/plugins/eslint/node_modules/lodash/function/restParam.js +58 -0
  1159. package/plugins/eslint/node_modules/lodash/function/spread.js +44 -0
  1160. package/plugins/eslint/node_modules/lodash/function/throttle.js +62 -0
  1161. package/plugins/eslint/node_modules/lodash/function/wrap.js +33 -0
  1162. package/plugins/eslint/node_modules/lodash/function.js +28 -0
  1163. package/plugins/eslint/node_modules/lodash/index.js +12351 -0
  1164. package/plugins/eslint/node_modules/lodash/internal/LazyWrapper.js +26 -0
  1165. package/plugins/eslint/node_modules/lodash/internal/LodashWrapper.js +21 -0
  1166. package/plugins/eslint/node_modules/lodash/internal/MapCache.js +24 -0
  1167. package/plugins/eslint/node_modules/lodash/internal/SetCache.js +29 -0
  1168. package/plugins/eslint/node_modules/lodash/internal/arrayConcat.js +25 -0
  1169. package/plugins/eslint/node_modules/lodash/internal/arrayCopy.js +20 -0
  1170. package/plugins/eslint/node_modules/lodash/internal/arrayEach.js +22 -0
  1171. package/plugins/eslint/node_modules/lodash/internal/arrayEachRight.js +21 -0
  1172. package/plugins/eslint/node_modules/lodash/internal/arrayEvery.js +23 -0
  1173. package/plugins/eslint/node_modules/lodash/internal/arrayExtremum.js +30 -0
  1174. package/plugins/eslint/node_modules/lodash/internal/arrayFilter.js +25 -0
  1175. package/plugins/eslint/node_modules/lodash/internal/arrayMap.js +21 -0
  1176. package/plugins/eslint/node_modules/lodash/internal/arrayPush.js +20 -0
  1177. package/plugins/eslint/node_modules/lodash/internal/arrayReduce.js +26 -0
  1178. package/plugins/eslint/node_modules/lodash/internal/arrayReduceRight.js +24 -0
  1179. package/plugins/eslint/node_modules/lodash/internal/arraySome.js +23 -0
  1180. package/plugins/eslint/node_modules/lodash/internal/arraySum.js +20 -0
  1181. package/plugins/eslint/node_modules/lodash/internal/assignDefaults.js +13 -0
  1182. package/plugins/eslint/node_modules/lodash/internal/assignOwnDefaults.js +26 -0
  1183. package/plugins/eslint/node_modules/lodash/internal/assignWith.js +32 -0
  1184. package/plugins/eslint/node_modules/lodash/internal/baseAssign.js +19 -0
  1185. package/plugins/eslint/node_modules/lodash/internal/baseAt.js +32 -0
  1186. package/plugins/eslint/node_modules/lodash/internal/baseCallback.js +35 -0
  1187. package/plugins/eslint/node_modules/lodash/internal/baseClone.js +128 -0
  1188. package/plugins/eslint/node_modules/lodash/internal/baseCompareAscending.js +34 -0
  1189. package/plugins/eslint/node_modules/lodash/internal/baseCopy.js +23 -0
  1190. package/plugins/eslint/node_modules/lodash/internal/baseCreate.js +23 -0
  1191. package/plugins/eslint/node_modules/lodash/internal/baseDelay.js +21 -0
  1192. package/plugins/eslint/node_modules/lodash/internal/baseDifference.js +55 -0
  1193. package/plugins/eslint/node_modules/lodash/internal/baseEach.js +15 -0
  1194. package/plugins/eslint/node_modules/lodash/internal/baseEachRight.js +15 -0
  1195. package/plugins/eslint/node_modules/lodash/internal/baseEvery.js +22 -0
  1196. package/plugins/eslint/node_modules/lodash/internal/baseExtremum.js +29 -0
  1197. package/plugins/eslint/node_modules/lodash/internal/baseFill.js +31 -0
  1198. package/plugins/eslint/node_modules/lodash/internal/baseFilter.js +22 -0
  1199. package/plugins/eslint/node_modules/lodash/internal/baseFind.js +25 -0
  1200. package/plugins/eslint/node_modules/lodash/internal/baseFindIndex.js +23 -0
  1201. package/plugins/eslint/node_modules/lodash/internal/baseFlatten.js +41 -0
  1202. package/plugins/eslint/node_modules/lodash/internal/baseFor.js +17 -0
  1203. package/plugins/eslint/node_modules/lodash/internal/baseForIn.js +17 -0
  1204. package/plugins/eslint/node_modules/lodash/internal/baseForOwn.js +17 -0
  1205. package/plugins/eslint/node_modules/lodash/internal/baseForOwnRight.js +17 -0
  1206. package/plugins/eslint/node_modules/lodash/internal/baseForRight.js +15 -0
  1207. package/plugins/eslint/node_modules/lodash/internal/baseFunctions.js +27 -0
  1208. package/plugins/eslint/node_modules/lodash/internal/baseGet.js +29 -0
  1209. package/plugins/eslint/node_modules/lodash/internal/baseIndexOf.js +27 -0
  1210. package/plugins/eslint/node_modules/lodash/internal/baseIsEqual.js +28 -0
  1211. package/plugins/eslint/node_modules/lodash/internal/baseIsEqualDeep.js +102 -0
  1212. package/plugins/eslint/node_modules/lodash/internal/baseIsFunction.js +15 -0
  1213. package/plugins/eslint/node_modules/lodash/internal/baseIsMatch.js +52 -0
  1214. package/plugins/eslint/node_modules/lodash/internal/baseLodash.js +10 -0
  1215. package/plugins/eslint/node_modules/lodash/internal/baseMap.js +23 -0
  1216. package/plugins/eslint/node_modules/lodash/internal/baseMatches.js +30 -0
  1217. package/plugins/eslint/node_modules/lodash/internal/baseMatchesProperty.js +45 -0
  1218. package/plugins/eslint/node_modules/lodash/internal/baseMerge.js +56 -0
  1219. package/plugins/eslint/node_modules/lodash/internal/baseMergeDeep.js +67 -0
  1220. package/plugins/eslint/node_modules/lodash/internal/baseProperty.js +14 -0
  1221. package/plugins/eslint/node_modules/lodash/internal/basePropertyDeep.js +19 -0
  1222. package/plugins/eslint/node_modules/lodash/internal/basePullAt.js +30 -0
  1223. package/plugins/eslint/node_modules/lodash/internal/baseRandom.js +18 -0
  1224. package/plugins/eslint/node_modules/lodash/internal/baseReduce.js +24 -0
  1225. package/plugins/eslint/node_modules/lodash/internal/baseSetData.js +17 -0
  1226. package/plugins/eslint/node_modules/lodash/internal/baseSlice.js +32 -0
  1227. package/plugins/eslint/node_modules/lodash/internal/baseSome.js +23 -0
  1228. package/plugins/eslint/node_modules/lodash/internal/baseSortBy.js +21 -0
  1229. package/plugins/eslint/node_modules/lodash/internal/baseSortByOrder.js +31 -0
  1230. package/plugins/eslint/node_modules/lodash/internal/baseSum.js +20 -0
  1231. package/plugins/eslint/node_modules/lodash/internal/baseToString.js +13 -0
  1232. package/plugins/eslint/node_modules/lodash/internal/baseUniq.js +60 -0
  1233. package/plugins/eslint/node_modules/lodash/internal/baseValues.js +22 -0
  1234. package/plugins/eslint/node_modules/lodash/internal/baseWhile.js +24 -0
  1235. package/plugins/eslint/node_modules/lodash/internal/baseWrapperValue.js +29 -0
  1236. package/plugins/eslint/node_modules/lodash/internal/binaryIndex.js +39 -0
  1237. package/plugins/eslint/node_modules/lodash/internal/binaryIndexBy.js +57 -0
  1238. package/plugins/eslint/node_modules/lodash/internal/bindCallback.js +39 -0
  1239. package/plugins/eslint/node_modules/lodash/internal/bufferClone.js +20 -0
  1240. package/plugins/eslint/node_modules/lodash/internal/cacheIndexOf.js +19 -0
  1241. package/plugins/eslint/node_modules/lodash/internal/cachePush.js +20 -0
  1242. package/plugins/eslint/node_modules/lodash/internal/charsLeftIndex.js +18 -0
  1243. package/plugins/eslint/node_modules/lodash/internal/charsRightIndex.js +17 -0
  1244. package/plugins/eslint/node_modules/lodash/internal/compareAscending.js +16 -0
  1245. package/plugins/eslint/node_modules/lodash/internal/compareMultiple.js +44 -0
  1246. package/plugins/eslint/node_modules/lodash/internal/composeArgs.js +34 -0
  1247. package/plugins/eslint/node_modules/lodash/internal/composeArgsRight.js +36 -0
  1248. package/plugins/eslint/node_modules/lodash/internal/createAggregator.js +35 -0
  1249. package/plugins/eslint/node_modules/lodash/internal/createAssigner.js +41 -0
  1250. package/plugins/eslint/node_modules/lodash/internal/createBaseEach.js +31 -0
  1251. package/plugins/eslint/node_modules/lodash/internal/createBaseFor.js +27 -0
  1252. package/plugins/eslint/node_modules/lodash/internal/createBindWrapper.js +22 -0
  1253. package/plugins/eslint/node_modules/lodash/internal/createCache.js +21 -0
  1254. package/plugins/eslint/node_modules/lodash/internal/createCompounder.js +26 -0
  1255. package/plugins/eslint/node_modules/lodash/internal/createCtorWrapper.js +37 -0
  1256. package/plugins/eslint/node_modules/lodash/internal/createCurry.js +23 -0
  1257. package/plugins/eslint/node_modules/lodash/internal/createDefaults.js +22 -0
  1258. package/plugins/eslint/node_modules/lodash/internal/createExtremum.js +33 -0
  1259. package/plugins/eslint/node_modules/lodash/internal/createFind.js +25 -0
  1260. package/plugins/eslint/node_modules/lodash/internal/createFindIndex.js +21 -0
  1261. package/plugins/eslint/node_modules/lodash/internal/createFindKey.js +18 -0
  1262. package/plugins/eslint/node_modules/lodash/internal/createFlow.js +74 -0
  1263. package/plugins/eslint/node_modules/lodash/internal/createForEach.js +20 -0
  1264. package/plugins/eslint/node_modules/lodash/internal/createForIn.js +20 -0
  1265. package/plugins/eslint/node_modules/lodash/internal/createForOwn.js +19 -0
  1266. package/plugins/eslint/node_modules/lodash/internal/createHybridWrapper.js +111 -0
  1267. package/plugins/eslint/node_modules/lodash/internal/createObjectMapper.js +26 -0
  1268. package/plugins/eslint/node_modules/lodash/internal/createPadDir.js +18 -0
  1269. package/plugins/eslint/node_modules/lodash/internal/createPadding.js +29 -0
  1270. package/plugins/eslint/node_modules/lodash/internal/createPartial.js +20 -0
  1271. package/plugins/eslint/node_modules/lodash/internal/createPartialWrapper.js +43 -0
  1272. package/plugins/eslint/node_modules/lodash/internal/createReduce.js +22 -0
  1273. package/plugins/eslint/node_modules/lodash/internal/createRound.js +23 -0
  1274. package/plugins/eslint/node_modules/lodash/internal/createSortedIndex.js +20 -0
  1275. package/plugins/eslint/node_modules/lodash/internal/createWrapper.js +86 -0
  1276. package/plugins/eslint/node_modules/lodash/internal/deburrLetter.js +33 -0
  1277. package/plugins/eslint/node_modules/lodash/internal/equalArrays.js +51 -0
  1278. package/plugins/eslint/node_modules/lodash/internal/equalByTag.js +48 -0
  1279. package/plugins/eslint/node_modules/lodash/internal/equalObjects.js +67 -0
  1280. package/plugins/eslint/node_modules/lodash/internal/escapeHtmlChar.js +22 -0
  1281. package/plugins/eslint/node_modules/lodash/internal/escapeRegExpChar.js +38 -0
  1282. package/plugins/eslint/node_modules/lodash/internal/escapeStringChar.js +22 -0
  1283. package/plugins/eslint/node_modules/lodash/internal/getData.js +15 -0
  1284. package/plugins/eslint/node_modules/lodash/internal/getFuncName.js +25 -0
  1285. package/plugins/eslint/node_modules/lodash/internal/getLength.js +15 -0
  1286. package/plugins/eslint/node_modules/lodash/internal/getMatchData.js +21 -0
  1287. package/plugins/eslint/node_modules/lodash/internal/getNative.js +16 -0
  1288. package/plugins/eslint/node_modules/lodash/internal/getView.js +33 -0
  1289. package/plugins/eslint/node_modules/lodash/internal/indexOfNaN.js +23 -0
  1290. package/plugins/eslint/node_modules/lodash/internal/initCloneArray.js +26 -0
  1291. package/plugins/eslint/node_modules/lodash/internal/initCloneByTag.js +63 -0
  1292. package/plugins/eslint/node_modules/lodash/internal/initCloneObject.js +16 -0
  1293. package/plugins/eslint/node_modules/lodash/internal/invokePath.js +26 -0
  1294. package/plugins/eslint/node_modules/lodash/internal/isArrayLike.js +15 -0
  1295. package/plugins/eslint/node_modules/lodash/internal/isIndex.js +24 -0
  1296. package/plugins/eslint/node_modules/lodash/internal/isIterateeCall.js +28 -0
  1297. package/plugins/eslint/node_modules/lodash/internal/isKey.js +28 -0
  1298. package/plugins/eslint/node_modules/lodash/internal/isLaziable.js +27 -0
  1299. package/plugins/eslint/node_modules/lodash/internal/isLength.js +20 -0
  1300. package/plugins/eslint/node_modules/lodash/internal/isObjectLike.js +12 -0
  1301. package/plugins/eslint/node_modules/lodash/internal/isSpace.js +14 -0
  1302. package/plugins/eslint/node_modules/lodash/internal/isStrictComparable.js +15 -0
  1303. package/plugins/eslint/node_modules/lodash/internal/lazyClone.js +23 -0
  1304. package/plugins/eslint/node_modules/lodash/internal/lazyReverse.js +23 -0
  1305. package/plugins/eslint/node_modules/lodash/internal/lazyValue.js +72 -0
  1306. package/plugins/eslint/node_modules/lodash/internal/mapDelete.js +14 -0
  1307. package/plugins/eslint/node_modules/lodash/internal/mapGet.js +14 -0
  1308. package/plugins/eslint/node_modules/lodash/internal/mapHas.js +20 -0
  1309. package/plugins/eslint/node_modules/lodash/internal/mapSet.js +18 -0
  1310. package/plugins/eslint/node_modules/lodash/internal/mergeData.js +89 -0
  1311. package/plugins/eslint/node_modules/lodash/internal/mergeDefaults.js +15 -0
  1312. package/plugins/eslint/node_modules/lodash/internal/metaMap.js +9 -0
  1313. package/plugins/eslint/node_modules/lodash/internal/pickByArray.js +28 -0
  1314. package/plugins/eslint/node_modules/lodash/internal/pickByCallback.js +22 -0
  1315. package/plugins/eslint/node_modules/lodash/internal/reEscape.js +4 -0
  1316. package/plugins/eslint/node_modules/lodash/internal/reEvaluate.js +4 -0
  1317. package/plugins/eslint/node_modules/lodash/internal/reInterpolate.js +4 -0
  1318. package/plugins/eslint/node_modules/lodash/internal/realNames.js +4 -0
  1319. package/plugins/eslint/node_modules/lodash/internal/reorder.js +29 -0
  1320. package/plugins/eslint/node_modules/lodash/internal/replaceHolders.js +28 -0
  1321. package/plugins/eslint/node_modules/lodash/internal/setData.js +41 -0
  1322. package/plugins/eslint/node_modules/lodash/internal/shimKeys.js +41 -0
  1323. package/plugins/eslint/node_modules/lodash/internal/sortedUniq.js +29 -0
  1324. package/plugins/eslint/node_modules/lodash/internal/toIterable.js +22 -0
  1325. package/plugins/eslint/node_modules/lodash/internal/toObject.js +14 -0
  1326. package/plugins/eslint/node_modules/lodash/internal/toPath.js +28 -0
  1327. package/plugins/eslint/node_modules/lodash/internal/trimmedLeftIndex.js +19 -0
  1328. package/plugins/eslint/node_modules/lodash/internal/trimmedRightIndex.js +18 -0
  1329. package/plugins/eslint/node_modules/lodash/internal/unescapeHtmlChar.js +22 -0
  1330. package/plugins/eslint/node_modules/lodash/internal/wrapperClone.js +18 -0
  1331. package/plugins/eslint/node_modules/lodash/lang/clone.js +70 -0
  1332. package/plugins/eslint/node_modules/lodash/lang/cloneDeep.js +55 -0
  1333. package/plugins/eslint/node_modules/lodash/lang/eq.js +1 -0
  1334. package/plugins/eslint/node_modules/lodash/lang/gt.js +25 -0
  1335. package/plugins/eslint/node_modules/lodash/lang/gte.js +25 -0
  1336. package/plugins/eslint/node_modules/lodash/lang/isArguments.js +34 -0
  1337. package/plugins/eslint/node_modules/lodash/lang/isArray.js +40 -0
  1338. package/plugins/eslint/node_modules/lodash/lang/isBoolean.js +35 -0
  1339. package/plugins/eslint/node_modules/lodash/lang/isDate.js +35 -0
  1340. package/plugins/eslint/node_modules/lodash/lang/isElement.js +24 -0
  1341. package/plugins/eslint/node_modules/lodash/lang/isEmpty.js +47 -0
  1342. package/plugins/eslint/node_modules/lodash/lang/isEqual.js +54 -0
  1343. package/plugins/eslint/node_modules/lodash/lang/isError.js +36 -0
  1344. package/plugins/eslint/node_modules/lodash/lang/isFinite.js +35 -0
  1345. package/plugins/eslint/node_modules/lodash/lang/isFunction.js +38 -0
  1346. package/plugins/eslint/node_modules/lodash/lang/isMatch.js +49 -0
  1347. package/plugins/eslint/node_modules/lodash/lang/isNaN.js +34 -0
  1348. package/plugins/eslint/node_modules/lodash/lang/isNative.js +48 -0
  1349. package/plugins/eslint/node_modules/lodash/lang/isNull.js +21 -0
  1350. package/plugins/eslint/node_modules/lodash/lang/isNumber.js +41 -0
  1351. package/plugins/eslint/node_modules/lodash/lang/isObject.js +28 -0
  1352. package/plugins/eslint/node_modules/lodash/lang/isPlainObject.js +71 -0
  1353. package/plugins/eslint/node_modules/lodash/lang/isRegExp.js +35 -0
  1354. package/plugins/eslint/node_modules/lodash/lang/isString.js +35 -0
  1355. package/plugins/eslint/node_modules/lodash/lang/isTypedArray.js +74 -0
  1356. package/plugins/eslint/node_modules/lodash/lang/isUndefined.js +21 -0
  1357. package/plugins/eslint/node_modules/lodash/lang/lt.js +25 -0
  1358. package/plugins/eslint/node_modules/lodash/lang/lte.js +25 -0
  1359. package/plugins/eslint/node_modules/lodash/lang/toArray.js +32 -0
  1360. package/plugins/eslint/node_modules/lodash/lang/toPlainObject.js +31 -0
  1361. package/plugins/eslint/node_modules/lodash/lang.js +32 -0
  1362. package/plugins/eslint/node_modules/lodash/math/add.js +19 -0
  1363. package/plugins/eslint/node_modules/lodash/math/ceil.js +25 -0
  1364. package/plugins/eslint/node_modules/lodash/math/floor.js +25 -0
  1365. package/plugins/eslint/node_modules/lodash/math/max.js +56 -0
  1366. package/plugins/eslint/node_modules/lodash/math/min.js +56 -0
  1367. package/plugins/eslint/node_modules/lodash/math/round.js +25 -0
  1368. package/plugins/eslint/node_modules/lodash/math/sum.js +50 -0
  1369. package/plugins/eslint/node_modules/lodash/math.js +9 -0
  1370. package/plugins/eslint/node_modules/lodash/number/inRange.js +47 -0
  1371. package/plugins/eslint/node_modules/lodash/number/random.js +70 -0
  1372. package/plugins/eslint/node_modules/lodash/number.js +4 -0
  1373. package/plugins/eslint/node_modules/lodash/object/assign.js +43 -0
  1374. package/plugins/eslint/node_modules/lodash/object/create.js +47 -0
  1375. package/plugins/eslint/node_modules/lodash/object/defaults.js +25 -0
  1376. package/plugins/eslint/node_modules/lodash/object/defaultsDeep.js +25 -0
  1377. package/plugins/eslint/node_modules/lodash/object/extend.js +1 -0
  1378. package/plugins/eslint/node_modules/lodash/object/findKey.js +54 -0
  1379. package/plugins/eslint/node_modules/lodash/object/findLastKey.js +54 -0
  1380. package/plugins/eslint/node_modules/lodash/object/forIn.js +33 -0
  1381. package/plugins/eslint/node_modules/lodash/object/forInRight.js +31 -0
  1382. package/plugins/eslint/node_modules/lodash/object/forOwn.js +33 -0
  1383. package/plugins/eslint/node_modules/lodash/object/forOwnRight.js +31 -0
  1384. package/plugins/eslint/node_modules/lodash/object/functions.js +23 -0
  1385. package/plugins/eslint/node_modules/lodash/object/get.js +33 -0
  1386. package/plugins/eslint/node_modules/lodash/object/has.js +57 -0
  1387. package/plugins/eslint/node_modules/lodash/object/invert.js +60 -0
  1388. package/plugins/eslint/node_modules/lodash/object/keys.js +45 -0
  1389. package/plugins/eslint/node_modules/lodash/object/keysIn.js +64 -0
  1390. package/plugins/eslint/node_modules/lodash/object/mapKeys.js +25 -0
  1391. package/plugins/eslint/node_modules/lodash/object/mapValues.js +46 -0
  1392. package/plugins/eslint/node_modules/lodash/object/merge.js +54 -0
  1393. package/plugins/eslint/node_modules/lodash/object/methods.js +1 -0
  1394. package/plugins/eslint/node_modules/lodash/object/omit.js +47 -0
  1395. package/plugins/eslint/node_modules/lodash/object/pairs.js +33 -0
  1396. package/plugins/eslint/node_modules/lodash/object/pick.js +42 -0
  1397. package/plugins/eslint/node_modules/lodash/object/result.js +49 -0
  1398. package/plugins/eslint/node_modules/lodash/object/set.js +55 -0
  1399. package/plugins/eslint/node_modules/lodash/object/transform.js +61 -0
  1400. package/plugins/eslint/node_modules/lodash/object/values.js +33 -0
  1401. package/plugins/eslint/node_modules/lodash/object/valuesIn.js +31 -0
  1402. package/plugins/eslint/node_modules/lodash/object.js +31 -0
  1403. package/plugins/eslint/node_modules/lodash/package.json +20 -0
  1404. package/plugins/eslint/node_modules/lodash/string/camelCase.js +27 -0
  1405. package/plugins/eslint/node_modules/lodash/string/capitalize.js +21 -0
  1406. package/plugins/eslint/node_modules/lodash/string/deburr.js +29 -0
  1407. package/plugins/eslint/node_modules/lodash/string/endsWith.js +40 -0
  1408. package/plugins/eslint/node_modules/lodash/string/escape.js +48 -0
  1409. package/plugins/eslint/node_modules/lodash/string/escapeRegExp.js +32 -0
  1410. package/plugins/eslint/node_modules/lodash/string/kebabCase.js +26 -0
  1411. package/plugins/eslint/node_modules/lodash/string/pad.js +47 -0
  1412. package/plugins/eslint/node_modules/lodash/string/padLeft.js +27 -0
  1413. package/plugins/eslint/node_modules/lodash/string/padRight.js +27 -0
  1414. package/plugins/eslint/node_modules/lodash/string/parseInt.js +46 -0
  1415. package/plugins/eslint/node_modules/lodash/string/repeat.js +47 -0
  1416. package/plugins/eslint/node_modules/lodash/string/snakeCase.js +26 -0
  1417. package/plugins/eslint/node_modules/lodash/string/startCase.js +26 -0
  1418. package/plugins/eslint/node_modules/lodash/string/startsWith.js +36 -0
  1419. package/plugins/eslint/node_modules/lodash/string/template.js +226 -0
  1420. package/plugins/eslint/node_modules/lodash/string/templateSettings.js +67 -0
  1421. package/plugins/eslint/node_modules/lodash/string/trim.js +42 -0
  1422. package/plugins/eslint/node_modules/lodash/string/trimLeft.js +36 -0
  1423. package/plugins/eslint/node_modules/lodash/string/trimRight.js +36 -0
  1424. package/plugins/eslint/node_modules/lodash/string/trunc.js +105 -0
  1425. package/plugins/eslint/node_modules/lodash/string/unescape.js +33 -0
  1426. package/plugins/eslint/node_modules/lodash/string/words.js +38 -0
  1427. package/plugins/eslint/node_modules/lodash/string.js +25 -0
  1428. package/plugins/eslint/node_modules/lodash/support.js +10 -0
  1429. package/plugins/eslint/node_modules/lodash/utility/attempt.js +32 -0
  1430. package/plugins/eslint/node_modules/lodash/utility/callback.js +53 -0
  1431. package/plugins/eslint/node_modules/lodash/utility/constant.js +23 -0
  1432. package/plugins/eslint/node_modules/lodash/utility/identity.js +20 -0
  1433. package/plugins/eslint/node_modules/lodash/utility/iteratee.js +1 -0
  1434. package/plugins/eslint/node_modules/lodash/utility/matches.js +33 -0
  1435. package/plugins/eslint/node_modules/lodash/utility/matchesProperty.js +32 -0
  1436. package/plugins/eslint/node_modules/lodash/utility/method.js +33 -0
  1437. package/plugins/eslint/node_modules/lodash/utility/methodOf.js +32 -0
  1438. package/plugins/eslint/node_modules/lodash/utility/mixin.js +82 -0
  1439. package/plugins/eslint/node_modules/lodash/utility/noop.js +19 -0
  1440. package/plugins/eslint/node_modules/lodash/utility/property.js +31 -0
  1441. package/plugins/eslint/node_modules/lodash/utility/propertyOf.js +30 -0
  1442. package/plugins/eslint/node_modules/lodash/utility/range.js +66 -0
  1443. package/plugins/eslint/node_modules/lodash/utility/times.js +60 -0
  1444. package/plugins/eslint/node_modules/lodash/utility/uniqueId.js +27 -0
  1445. package/plugins/eslint/node_modules/lodash/utility.js +18 -0
  1446. package/plugins/eslint/node_modules/lodash.clonedeep/LICENSE +22 -0
  1447. package/plugins/eslint/node_modules/lodash.clonedeep/README.md +20 -0
  1448. package/plugins/eslint/node_modules/lodash.clonedeep/index.js +63 -0
  1449. package/plugins/eslint/node_modules/lodash.clonedeep/package.json +23 -0
  1450. package/plugins/eslint/node_modules/lodash.isplainobject/LICENSE +22 -0
  1451. package/plugins/eslint/node_modules/lodash.isplainobject/README.md +20 -0
  1452. package/plugins/eslint/node_modules/lodash.isplainobject/index.js +103 -0
  1453. package/plugins/eslint/node_modules/lodash.isplainobject/package.json +24 -0
  1454. package/plugins/eslint/node_modules/lodash.keys/LICENSE +22 -0
  1455. package/plugins/eslint/node_modules/lodash.keys/README.md +20 -0
  1456. package/plugins/eslint/node_modules/lodash.keys/index.js +236 -0
  1457. package/plugins/eslint/node_modules/lodash.keys/package.json +24 -0
  1458. package/plugins/eslint/node_modules/lodash.merge/LICENSE +22 -0
  1459. package/plugins/eslint/node_modules/lodash.merge/README.md +20 -0
  1460. package/plugins/eslint/node_modules/lodash.merge/index.js +266 -0
  1461. package/plugins/eslint/node_modules/lodash.merge/package.json +32 -0
  1462. package/plugins/eslint/node_modules/log-driver/.travis.yml +6 -0
  1463. package/plugins/eslint/node_modules/log-driver/Makefile +20 -0
  1464. package/plugins/eslint/node_modules/log-driver/README.md +99 -0
  1465. package/plugins/eslint/node_modules/log-driver/coverage/coverage.json +1 -0
  1466. package/plugins/eslint/node_modules/log-driver/coverage/lcov-report/index.html +350 -0
  1467. package/plugins/eslint/node_modules/log-driver/coverage/lcov-report/logdriver/index.html +350 -0
  1468. package/plugins/eslint/node_modules/log-driver/coverage/lcov-report/logdriver/index.js.html +502 -0
  1469. package/plugins/eslint/node_modules/log-driver/coverage/lcov-report/prettify.css +1 -0
  1470. package/plugins/eslint/node_modules/log-driver/coverage/lcov-report/prettify.js +1 -0
  1471. package/plugins/eslint/node_modules/log-driver/coverage/lcov.info +77 -0
  1472. package/plugins/eslint/node_modules/log-driver/index.js +60 -0
  1473. package/plugins/eslint/node_modules/log-driver/package.json +40 -0
  1474. package/plugins/eslint/node_modules/lolex/.min-wd +13 -0
  1475. package/plugins/eslint/node_modules/lolex/LICENSE +27 -0
  1476. package/plugins/eslint/node_modules/lolex/Readme.md +161 -0
  1477. package/plugins/eslint/node_modules/lolex/lolex.js +428 -0
  1478. package/plugins/eslint/node_modules/lolex/package.json +35 -0
  1479. package/plugins/eslint/node_modules/lolex/src/lolex.js +422 -0
  1480. package/plugins/eslint/node_modules/lolex/test/lolex-test.js +1089 -0
  1481. package/plugins/eslint/node_modules/lru-cache/.travis.yml +8 -0
  1482. package/plugins/eslint/node_modules/lru-cache/CONTRIBUTORS +14 -0
  1483. package/plugins/eslint/node_modules/lru-cache/LICENSE +15 -0
  1484. package/plugins/eslint/node_modules/lru-cache/README.md +137 -0
  1485. package/plugins/eslint/node_modules/lru-cache/lib/lru-cache.js +334 -0
  1486. package/plugins/eslint/node_modules/lru-cache/package.json +21 -0
  1487. package/plugins/eslint/node_modules/lru-cache/test/basic.js +396 -0
  1488. package/plugins/eslint/node_modules/lru-cache/test/foreach.js +120 -0
  1489. package/plugins/eslint/node_modules/lru-cache/test/memory-leak.js +51 -0
  1490. package/plugins/eslint/node_modules/lru-cache/test/serialize.js +216 -0
  1491. package/plugins/eslint/node_modules/meow/index.js +82 -0
  1492. package/plugins/eslint/node_modules/meow/license +21 -0
  1493. package/plugins/eslint/node_modules/meow/node_modules/object-assign/index.js +90 -0
  1494. package/plugins/eslint/node_modules/meow/node_modules/object-assign/license +21 -0
  1495. package/plugins/eslint/node_modules/meow/node_modules/object-assign/package.json +42 -0
  1496. package/plugins/eslint/node_modules/meow/node_modules/object-assign/readme.md +61 -0
  1497. package/plugins/eslint/node_modules/meow/package.json +58 -0
  1498. package/plugins/eslint/node_modules/meow/readme.md +159 -0
  1499. package/plugins/eslint/node_modules/mime/LICENSE +19 -0
  1500. package/plugins/eslint/node_modules/mime/README.md +66 -0
  1501. package/plugins/eslint/node_modules/mime/mime.js +114 -0
  1502. package/plugins/eslint/node_modules/mime/package.json +22 -0
  1503. package/plugins/eslint/node_modules/mime/test.js +84 -0
  1504. package/plugins/eslint/node_modules/mime/types/mime.types +1588 -0
  1505. package/plugins/eslint/node_modules/mime/types/node.types +77 -0
  1506. package/plugins/eslint/node_modules/mime-types/.travis.yml +12 -0
  1507. package/plugins/eslint/node_modules/mime-types/LICENSE +22 -0
  1508. package/plugins/eslint/node_modules/mime-types/Makefile +9 -0
  1509. package/plugins/eslint/node_modules/mime-types/README.md +101 -0
  1510. package/plugins/eslint/node_modules/mime-types/SOURCES.md +17 -0
  1511. package/plugins/eslint/node_modules/mime-types/component.json +16 -0
  1512. package/plugins/eslint/node_modules/mime-types/lib/custom.json +27 -0
  1513. package/plugins/eslint/node_modules/mime-types/lib/index.js +75 -0
  1514. package/plugins/eslint/node_modules/mime-types/lib/mime.json +3317 -0
  1515. package/plugins/eslint/node_modules/mime-types/lib/node.json +55 -0
  1516. package/plugins/eslint/node_modules/mime-types/package.json +34 -0
  1517. package/plugins/eslint/node_modules/minimatch/LICENSE +15 -0
  1518. package/plugins/eslint/node_modules/minimatch/README.md +216 -0
  1519. package/plugins/eslint/node_modules/minimatch/browser.js +1159 -0
  1520. package/plugins/eslint/node_modules/minimatch/minimatch.js +912 -0
  1521. package/plugins/eslint/node_modules/minimatch/package.json +32 -0
  1522. package/plugins/eslint/node_modules/mkdirp/LICENSE +21 -0
  1523. package/plugins/eslint/node_modules/mkdirp/index.js +99 -0
  1524. package/plugins/eslint/node_modules/mkdirp/package.json +34 -0
  1525. package/plugins/eslint/node_modules/mkdirp/readme.markdown +100 -0
  1526. package/plugins/eslint/node_modules/mocha/CHANGELOG.md +1262 -0
  1527. package/plugins/eslint/node_modules/mocha/LICENSE +22 -0
  1528. package/plugins/eslint/node_modules/mocha/images/error.png +0 -0
  1529. package/plugins/eslint/node_modules/mocha/images/ok.png +0 -0
  1530. package/plugins/eslint/node_modules/mocha/index.js +3 -0
  1531. package/plugins/eslint/node_modules/mocha/lib/browser/debug.js +4 -0
  1532. package/plugins/eslint/node_modules/mocha/lib/browser/events.js +193 -0
  1533. package/plugins/eslint/node_modules/mocha/lib/browser/progress.js +117 -0
  1534. package/plugins/eslint/node_modules/mocha/lib/browser/tty.js +11 -0
  1535. package/plugins/eslint/node_modules/mocha/lib/context.js +104 -0
  1536. package/plugins/eslint/node_modules/mocha/lib/hook.js +46 -0
  1537. package/plugins/eslint/node_modules/mocha/lib/interfaces/bdd.js +117 -0
  1538. package/plugins/eslint/node_modules/mocha/lib/interfaces/common.js +85 -0
  1539. package/plugins/eslint/node_modules/mocha/lib/interfaces/exports.js +61 -0
  1540. package/plugins/eslint/node_modules/mocha/lib/interfaces/index.js +4 -0
  1541. package/plugins/eslint/node_modules/mocha/lib/interfaces/qunit.js +94 -0
  1542. package/plugins/eslint/node_modules/mocha/lib/interfaces/tdd.js +106 -0
  1543. package/plugins/eslint/node_modules/mocha/lib/mocha.js +503 -0
  1544. package/plugins/eslint/node_modules/mocha/lib/ms.js +128 -0
  1545. package/plugins/eslint/node_modules/mocha/lib/pending.js +15 -0
  1546. package/plugins/eslint/node_modules/mocha/lib/reporters/base.js +487 -0
  1547. package/plugins/eslint/node_modules/mocha/lib/reporters/doc.js +62 -0
  1548. package/plugins/eslint/node_modules/mocha/lib/reporters/dot.js +66 -0
  1549. package/plugins/eslint/node_modules/mocha/lib/reporters/html-cov.js +56 -0
  1550. package/plugins/eslint/node_modules/mocha/lib/reporters/html.js +343 -0
  1551. package/plugins/eslint/node_modules/mocha/lib/reporters/index.js +19 -0
  1552. package/plugins/eslint/node_modules/mocha/lib/reporters/json-cov.js +151 -0
  1553. package/plugins/eslint/node_modules/mocha/lib/reporters/json-stream.js +60 -0
  1554. package/plugins/eslint/node_modules/mocha/lib/reporters/json.js +90 -0
  1555. package/plugins/eslint/node_modules/mocha/lib/reporters/landing.js +92 -0
  1556. package/plugins/eslint/node_modules/mocha/lib/reporters/list.js +61 -0
  1557. package/plugins/eslint/node_modules/mocha/lib/reporters/markdown.js +97 -0
  1558. package/plugins/eslint/node_modules/mocha/lib/reporters/min.js +36 -0
  1559. package/plugins/eslint/node_modules/mocha/lib/reporters/nyan.js +261 -0
  1560. package/plugins/eslint/node_modules/mocha/lib/reporters/progress.js +89 -0
  1561. package/plugins/eslint/node_modules/mocha/lib/reporters/spec.js +83 -0
  1562. package/plugins/eslint/node_modules/mocha/lib/reporters/tap.js +68 -0
  1563. package/plugins/eslint/node_modules/mocha/lib/reporters/templates/coverage.jade +51 -0
  1564. package/plugins/eslint/node_modules/mocha/lib/reporters/templates/menu.jade +13 -0
  1565. package/plugins/eslint/node_modules/mocha/lib/reporters/templates/script.html +34 -0
  1566. package/plugins/eslint/node_modules/mocha/lib/reporters/templates/style.html +324 -0
  1567. package/plugins/eslint/node_modules/mocha/lib/reporters/xunit.js +166 -0
  1568. package/plugins/eslint/node_modules/mocha/lib/runnable.js +363 -0
  1569. package/plugins/eslint/node_modules/mocha/lib/runner.js +894 -0
  1570. package/plugins/eslint/node_modules/mocha/lib/suite.js +395 -0
  1571. package/plugins/eslint/node_modules/mocha/lib/template.html +18 -0
  1572. package/plugins/eslint/node_modules/mocha/lib/test.js +44 -0
  1573. package/plugins/eslint/node_modules/mocha/lib/utils.js +750 -0
  1574. package/plugins/eslint/node_modules/mocha/mocha.css +314 -0
  1575. package/plugins/eslint/node_modules/mocha/mocha.js +13149 -0
  1576. package/plugins/eslint/node_modules/mocha/node_modules/escape-string-regexp/index.js +11 -0
  1577. package/plugins/eslint/node_modules/mocha/node_modules/escape-string-regexp/package.json +36 -0
  1578. package/plugins/eslint/node_modules/mocha/node_modules/escape-string-regexp/readme.md +27 -0
  1579. package/plugins/eslint/node_modules/mocha/node_modules/minimist/.travis.yml +4 -0
  1580. package/plugins/eslint/node_modules/mocha/node_modules/minimist/LICENSE +18 -0
  1581. package/plugins/eslint/node_modules/mocha/node_modules/minimist/example/parse.js +2 -0
  1582. package/plugins/eslint/node_modules/mocha/node_modules/minimist/index.js +187 -0
  1583. package/plugins/eslint/node_modules/mocha/node_modules/minimist/package.json +40 -0
  1584. package/plugins/eslint/node_modules/mocha/node_modules/minimist/readme.markdown +73 -0
  1585. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/dash.js +24 -0
  1586. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/default_bool.js +20 -0
  1587. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/dotted.js +16 -0
  1588. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/long.js +31 -0
  1589. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/parse.js +318 -0
  1590. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/parse_modified.js +9 -0
  1591. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/short.js +67 -0
  1592. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/whitespace.js +8 -0
  1593. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/.travis.yml +8 -0
  1594. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/LICENSE +21 -0
  1595. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/examples/pow.js +6 -0
  1596. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/index.js +98 -0
  1597. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/package.json +27 -0
  1598. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/readme.markdown +100 -0
  1599. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/chmod.js +41 -0
  1600. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/clobber.js +38 -0
  1601. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/mkdirp.js +28 -0
  1602. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/opts_fs.js +29 -0
  1603. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/opts_fs_sync.js +27 -0
  1604. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/perm.js +32 -0
  1605. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/perm_sync.js +36 -0
  1606. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/race.js +37 -0
  1607. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/rel.js +32 -0
  1608. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/return.js +25 -0
  1609. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/return_sync.js +24 -0
  1610. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/root.js +19 -0
  1611. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/sync.js +32 -0
  1612. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/umask.js +28 -0
  1613. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/umask_sync.js +32 -0
  1614. package/plugins/eslint/node_modules/mocha/node_modules/supports-color/cli.js +29 -0
  1615. package/plugins/eslint/node_modules/mocha/node_modules/supports-color/index.js +39 -0
  1616. package/plugins/eslint/node_modules/mocha/node_modules/supports-color/package.json +51 -0
  1617. package/plugins/eslint/node_modules/mocha/node_modules/supports-color/readme.md +44 -0
  1618. package/plugins/eslint/node_modules/mocha/package.json +374 -0
  1619. package/plugins/eslint/node_modules/ms/LICENSE +20 -0
  1620. package/plugins/eslint/node_modules/ms/README.md +35 -0
  1621. package/plugins/eslint/node_modules/ms/index.js +125 -0
  1622. package/plugins/eslint/node_modules/ms/package.json +20 -0
  1623. package/plugins/eslint/node_modules/oauth-sign/LICENSE +55 -0
  1624. package/plugins/eslint/node_modules/oauth-sign/README.md +4 -0
  1625. package/plugins/eslint/node_modules/oauth-sign/index.js +43 -0
  1626. package/plugins/eslint/node_modules/oauth-sign/package.json +19 -0
  1627. package/plugins/eslint/node_modules/oauth-sign/test.js +49 -0
  1628. package/plugins/eslint/node_modules/object-assign/index.js +26 -0
  1629. package/plugins/eslint/node_modules/object-assign/license +21 -0
  1630. package/plugins/eslint/node_modules/object-assign/package.json +38 -0
  1631. package/plugins/eslint/node_modules/object-assign/readme.md +51 -0
  1632. package/plugins/eslint/node_modules/optionator/LICENSE +22 -0
  1633. package/plugins/eslint/node_modules/optionator/README.md +200 -0
  1634. package/plugins/eslint/node_modules/optionator/lib/coerce.js +367 -0
  1635. package/plugins/eslint/node_modules/optionator/lib/help.js +242 -0
  1636. package/plugins/eslint/node_modules/optionator/lib/index.js +417 -0
  1637. package/plugins/eslint/node_modules/optionator/lib/parse-type.js +143 -0
  1638. package/plugins/eslint/node_modules/optionator/lib/util.js +46 -0
  1639. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/LICENSE +18 -0
  1640. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/README.markdown +70 -0
  1641. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/example/center.js +10 -0
  1642. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/example/meat.js +3 -0
  1643. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/index.js +76 -0
  1644. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/package.json +37 -0
  1645. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/test/break.js +30 -0
  1646. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/test/idleness.txt +63 -0
  1647. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/test/wrap.js +31 -0
  1648. package/plugins/eslint/node_modules/optionator/package.json +44 -0
  1649. package/plugins/eslint/node_modules/prelude-ls/CHANGELOG.md +99 -0
  1650. package/plugins/eslint/node_modules/prelude-ls/LICENSE +22 -0
  1651. package/plugins/eslint/node_modules/prelude-ls/README.md +15 -0
  1652. package/plugins/eslint/node_modules/prelude-ls/lib/Func.js +65 -0
  1653. package/plugins/eslint/node_modules/prelude-ls/lib/List.js +686 -0
  1654. package/plugins/eslint/node_modules/prelude-ls/lib/Num.js +130 -0
  1655. package/plugins/eslint/node_modules/prelude-ls/lib/Obj.js +154 -0
  1656. package/plugins/eslint/node_modules/prelude-ls/lib/Str.js +92 -0
  1657. package/plugins/eslint/node_modules/prelude-ls/lib/index.js +178 -0
  1658. package/plugins/eslint/node_modules/prelude-ls/package.json +52 -0
  1659. package/plugins/eslint/node_modules/qs/.jshintignore +1 -0
  1660. package/plugins/eslint/node_modules/qs/.jshintrc +10 -0
  1661. package/plugins/eslint/node_modules/qs/.travis.yml +4 -0
  1662. package/plugins/eslint/node_modules/qs/LICENSE +28 -0
  1663. package/plugins/eslint/node_modules/qs/Makefile +8 -0
  1664. package/plugins/eslint/node_modules/qs/README.md +120 -0
  1665. package/plugins/eslint/node_modules/qs/index.js +1 -0
  1666. package/plugins/eslint/node_modules/qs/lib/index.js +15 -0
  1667. package/plugins/eslint/node_modules/qs/lib/parse.js +151 -0
  1668. package/plugins/eslint/node_modules/qs/lib/stringify.js +52 -0
  1669. package/plugins/eslint/node_modules/qs/lib/utils.js +131 -0
  1670. package/plugins/eslint/node_modules/qs/package.json +29 -0
  1671. package/plugins/eslint/node_modules/qs/test/parse.js +236 -0
  1672. package/plugins/eslint/node_modules/qs/test/stringify.js +123 -0
  1673. package/plugins/eslint/node_modules/redent/index.js +7 -0
  1674. package/plugins/eslint/node_modules/redent/license +21 -0
  1675. package/plugins/eslint/node_modules/redent/package.json +43 -0
  1676. package/plugins/eslint/node_modules/redent/readme.md +48 -0
  1677. package/plugins/eslint/node_modules/request/.travis.yml +12 -0
  1678. package/plugins/eslint/node_modules/request/CHANGELOG.md +954 -0
  1679. package/plugins/eslint/node_modules/request/LICENSE +55 -0
  1680. package/plugins/eslint/node_modules/request/README.md +421 -0
  1681. package/plugins/eslint/node_modules/request/index.js +166 -0
  1682. package/plugins/eslint/node_modules/request/lib/cookies.js +40 -0
  1683. package/plugins/eslint/node_modules/request/lib/copy.js +8 -0
  1684. package/plugins/eslint/node_modules/request/lib/debug.js +7 -0
  1685. package/plugins/eslint/node_modules/request/lib/getSafe.js +34 -0
  1686. package/plugins/eslint/node_modules/request/lib/optional.js +5 -0
  1687. package/plugins/eslint/node_modules/request/package.json +44 -0
  1688. package/plugins/eslint/node_modules/request/request.js +1428 -0
  1689. package/plugins/eslint/node_modules/resolve/.travis.yml +4 -0
  1690. package/plugins/eslint/node_modules/resolve/LICENSE +18 -0
  1691. package/plugins/eslint/node_modules/resolve/example/async.js +5 -0
  1692. package/plugins/eslint/node_modules/resolve/example/sync.js +3 -0
  1693. package/plugins/eslint/node_modules/resolve/index.js +5 -0
  1694. package/plugins/eslint/node_modules/resolve/lib/async.js +192 -0
  1695. package/plugins/eslint/node_modules/resolve/lib/caller.js +8 -0
  1696. package/plugins/eslint/node_modules/resolve/lib/core.js +4 -0
  1697. package/plugins/eslint/node_modules/resolve/lib/core.json +38 -0
  1698. package/plugins/eslint/node_modules/resolve/lib/node-modules-paths.js +38 -0
  1699. package/plugins/eslint/node_modules/resolve/lib/sync.js +81 -0
  1700. package/plugins/eslint/node_modules/resolve/package.json +29 -0
  1701. package/plugins/eslint/node_modules/resolve/readme.markdown +148 -0
  1702. package/plugins/eslint/node_modules/resolve/test/core.js +12 -0
  1703. package/plugins/eslint/node_modules/resolve/test/dotdot/abc/index.js +2 -0
  1704. package/plugins/eslint/node_modules/resolve/test/dotdot/index.js +1 -0
  1705. package/plugins/eslint/node_modules/resolve/test/dotdot.js +29 -0
  1706. package/plugins/eslint/node_modules/resolve/test/faulty_basedir.js +17 -0
  1707. package/plugins/eslint/node_modules/resolve/test/filter.js +18 -0
  1708. package/plugins/eslint/node_modules/resolve/test/filter_sync.js +15 -0
  1709. package/plugins/eslint/node_modules/resolve/test/mock.js +142 -0
  1710. package/plugins/eslint/node_modules/resolve/test/mock_sync.js +68 -0
  1711. package/plugins/eslint/node_modules/resolve/test/module_dir/xmodules/aaa/index.js +1 -0
  1712. package/plugins/eslint/node_modules/resolve/test/module_dir/ymodules/aaa/index.js +1 -0
  1713. package/plugins/eslint/node_modules/resolve/test/module_dir/zmodules/bbb/main.js +1 -0
  1714. package/plugins/eslint/node_modules/resolve/test/module_dir/zmodules/bbb/package.json +3 -0
  1715. package/plugins/eslint/node_modules/resolve/test/module_dir.js +56 -0
  1716. package/plugins/eslint/node_modules/resolve/test/node_path/x/aaa/index.js +1 -0
  1717. package/plugins/eslint/node_modules/resolve/test/node_path/x/ccc/index.js +1 -0
  1718. package/plugins/eslint/node_modules/resolve/test/node_path/y/bbb/index.js +1 -0
  1719. package/plugins/eslint/node_modules/resolve/test/node_path/y/ccc/index.js +1 -0
  1720. package/plugins/eslint/node_modules/resolve/test/node_path.js +48 -0
  1721. package/plugins/eslint/node_modules/resolve/test/nonstring.js +9 -0
  1722. package/plugins/eslint/node_modules/resolve/test/pathfilter/deep_ref/main.js +0 -0
  1723. package/plugins/eslint/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/alt.js +0 -0
  1724. package/plugins/eslint/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/deeper/ref.js +0 -0
  1725. package/plugins/eslint/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/package.json +4 -0
  1726. package/plugins/eslint/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/ref.js +0 -0
  1727. package/plugins/eslint/node_modules/resolve/test/pathfilter.js +35 -0
  1728. package/plugins/eslint/node_modules/resolve/test/precedence/aaa/index.js +1 -0
  1729. package/plugins/eslint/node_modules/resolve/test/precedence/aaa/main.js +1 -0
  1730. package/plugins/eslint/node_modules/resolve/test/precedence/aaa.js +1 -0
  1731. package/plugins/eslint/node_modules/resolve/test/precedence/bbb/main.js +1 -0
  1732. package/plugins/eslint/node_modules/resolve/test/precedence/bbb.js +1 -0
  1733. package/plugins/eslint/node_modules/resolve/test/precedence.js +23 -0
  1734. package/plugins/eslint/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +1 -0
  1735. package/plugins/eslint/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  1736. package/plugins/eslint/node_modules/resolve/test/resolver/baz/package.json +3 -0
  1737. package/plugins/eslint/node_modules/resolve/test/resolver/baz/quux.js +1 -0
  1738. package/plugins/eslint/node_modules/resolve/test/resolver/biz/node_modules/garply/lib/index.js +1 -0
  1739. package/plugins/eslint/node_modules/resolve/test/resolver/biz/node_modules/garply/package.json +3 -0
  1740. package/plugins/eslint/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +1 -0
  1741. package/plugins/eslint/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +1 -0
  1742. package/plugins/eslint/node_modules/resolve/test/resolver/cup.coffee +1 -0
  1743. package/plugins/eslint/node_modules/resolve/test/resolver/foo.js +1 -0
  1744. package/plugins/eslint/node_modules/resolve/test/resolver/incorrect_main/index.js +2 -0
  1745. package/plugins/eslint/node_modules/resolve/test/resolver/incorrect_main/package.json +3 -0
  1746. package/plugins/eslint/node_modules/resolve/test/resolver/mug.coffee +0 -0
  1747. package/plugins/eslint/node_modules/resolve/test/resolver/mug.js +0 -0
  1748. package/plugins/eslint/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  1749. package/plugins/eslint/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  1750. package/plugins/eslint/node_modules/resolve/test/resolver/punycode/node_modules/punycode/index.js +0 -0
  1751. package/plugins/eslint/node_modules/resolve/test/resolver/quux/foo/index.js +1 -0
  1752. package/plugins/eslint/node_modules/resolve/test/resolver/without_basedir/main.js +6 -0
  1753. package/plugins/eslint/node_modules/resolve/test/resolver/without_basedir/node_modules/mymodule.js +1 -0
  1754. package/plugins/eslint/node_modules/resolve/test/resolver.js +281 -0
  1755. package/plugins/eslint/node_modules/resolve/test/resolver_sync.js +180 -0
  1756. package/plugins/eslint/node_modules/resolve/test/subdirs/node_modules/a/b/c/x.json +1 -0
  1757. package/plugins/eslint/node_modules/resolve/test/subdirs/node_modules/a/package.json +1 -0
  1758. package/plugins/eslint/node_modules/resolve/test/subdirs.js +13 -0
  1759. package/plugins/eslint/node_modules/semver/.travis.yml +5 -0
  1760. package/plugins/eslint/node_modules/semver/LICENSE +15 -0
  1761. package/plugins/eslint/node_modules/semver/Makefile +24 -0
  1762. package/plugins/eslint/node_modules/semver/README.md +303 -0
  1763. package/plugins/eslint/node_modules/semver/foot.js.txt +6 -0
  1764. package/plugins/eslint/node_modules/semver/head.js.txt +2 -0
  1765. package/plugins/eslint/node_modules/semver/package.json +21 -0
  1766. package/plugins/eslint/node_modules/semver/semver.browser.js +1201 -0
  1767. package/plugins/eslint/node_modules/semver/semver.browser.js.gz +0 -0
  1768. package/plugins/eslint/node_modules/semver/semver.js +1205 -0
  1769. package/plugins/eslint/node_modules/semver/semver.min.js +1 -0
  1770. package/plugins/eslint/node_modules/semver/semver.min.js.gz +0 -0
  1771. package/plugins/eslint/node_modules/semver/test/amd.js +15 -0
  1772. package/plugins/eslint/node_modules/semver/test/big-numbers.js +31 -0
  1773. package/plugins/eslint/node_modules/semver/test/clean.js +29 -0
  1774. package/plugins/eslint/node_modules/semver/test/gtr.js +173 -0
  1775. package/plugins/eslint/node_modules/semver/test/index.js +685 -0
  1776. package/plugins/eslint/node_modules/semver/test/ltr.js +181 -0
  1777. package/plugins/eslint/node_modules/semver/test/major-minor-patch.js +72 -0
  1778. package/plugins/eslint/node_modules/semver/test/no-module.js +19 -0
  1779. package/plugins/eslint/node_modules/shelljs/.documentup.json +6 -0
  1780. package/plugins/eslint/node_modules/shelljs/.jshintrc +7 -0
  1781. package/plugins/eslint/node_modules/shelljs/.travis.yml +5 -0
  1782. package/plugins/eslint/node_modules/shelljs/LICENSE +26 -0
  1783. package/plugins/eslint/node_modules/shelljs/README.md +569 -0
  1784. package/plugins/eslint/node_modules/shelljs/global.js +3 -0
  1785. package/plugins/eslint/node_modules/shelljs/make.js +47 -0
  1786. package/plugins/eslint/node_modules/shelljs/package.json +35 -0
  1787. package/plugins/eslint/node_modules/shelljs/scripts/generate-docs.js +21 -0
  1788. package/plugins/eslint/node_modules/shelljs/scripts/run-tests.js +50 -0
  1789. package/plugins/eslint/node_modules/shelljs/shell.js +157 -0
  1790. package/plugins/eslint/node_modules/shelljs/src/cat.js +43 -0
  1791. package/plugins/eslint/node_modules/shelljs/src/cd.js +19 -0
  1792. package/plugins/eslint/node_modules/shelljs/src/chmod.js +208 -0
  1793. package/plugins/eslint/node_modules/shelljs/src/common.js +203 -0
  1794. package/plugins/eslint/node_modules/shelljs/src/cp.js +201 -0
  1795. package/plugins/eslint/node_modules/shelljs/src/dirs.js +191 -0
  1796. package/plugins/eslint/node_modules/shelljs/src/echo.js +20 -0
  1797. package/plugins/eslint/node_modules/shelljs/src/error.js +10 -0
  1798. package/plugins/eslint/node_modules/shelljs/src/exec.js +181 -0
  1799. package/plugins/eslint/node_modules/shelljs/src/find.js +51 -0
  1800. package/plugins/eslint/node_modules/shelljs/src/grep.js +52 -0
  1801. package/plugins/eslint/node_modules/shelljs/src/ln.js +53 -0
  1802. package/plugins/eslint/node_modules/shelljs/src/ls.js +126 -0
  1803. package/plugins/eslint/node_modules/shelljs/src/mkdir.js +68 -0
  1804. package/plugins/eslint/node_modules/shelljs/src/mv.js +80 -0
  1805. package/plugins/eslint/node_modules/shelljs/src/popd.js +1 -0
  1806. package/plugins/eslint/node_modules/shelljs/src/pushd.js +1 -0
  1807. package/plugins/eslint/node_modules/shelljs/src/pwd.js +11 -0
  1808. package/plugins/eslint/node_modules/shelljs/src/rm.js +145 -0
  1809. package/plugins/eslint/node_modules/shelljs/src/sed.js +43 -0
  1810. package/plugins/eslint/node_modules/shelljs/src/tempdir.js +56 -0
  1811. package/plugins/eslint/node_modules/shelljs/src/test.js +85 -0
  1812. package/plugins/eslint/node_modules/shelljs/src/to.js +29 -0
  1813. package/plugins/eslint/node_modules/shelljs/src/toEnd.js +29 -0
  1814. package/plugins/eslint/node_modules/shelljs/src/which.js +83 -0
  1815. package/plugins/eslint/node_modules/sinon/.editorconfig +17 -0
  1816. package/plugins/eslint/node_modules/sinon/.jscsrc +13 -0
  1817. package/plugins/eslint/node_modules/sinon/CONTRIBUTING.md +124 -0
  1818. package/plugins/eslint/node_modules/sinon/GPATH +0 -0
  1819. package/plugins/eslint/node_modules/sinon/GRTAGS +0 -0
  1820. package/plugins/eslint/node_modules/sinon/GSYMS +0 -0
  1821. package/plugins/eslint/node_modules/sinon/GTAGS +0 -0
  1822. package/plugins/eslint/node_modules/sinon/LICENSE +27 -0
  1823. package/plugins/eslint/node_modules/sinon/README.md +46 -0
  1824. package/plugins/eslint/node_modules/sinon/lib/sinon/assert.js +214 -0
  1825. package/plugins/eslint/node_modules/sinon/lib/sinon/behavior.js +359 -0
  1826. package/plugins/eslint/node_modules/sinon/lib/sinon/call.js +219 -0
  1827. package/plugins/eslint/node_modules/sinon/lib/sinon/collection.js +167 -0
  1828. package/plugins/eslint/node_modules/sinon/lib/sinon/extend.js +103 -0
  1829. package/plugins/eslint/node_modules/sinon/lib/sinon/format.js +88 -0
  1830. package/plugins/eslint/node_modules/sinon/lib/sinon/log_error.js +68 -0
  1831. package/plugins/eslint/node_modules/sinon/lib/sinon/match.js +254 -0
  1832. package/plugins/eslint/node_modules/sinon/lib/sinon/mock.js +456 -0
  1833. package/plugins/eslint/node_modules/sinon/lib/sinon/sandbox.js +162 -0
  1834. package/plugins/eslint/node_modules/sinon/lib/sinon/spy.js +454 -0
  1835. package/plugins/eslint/node_modules/sinon/lib/sinon/stub.js +180 -0
  1836. package/plugins/eslint/node_modules/sinon/lib/sinon/test.js +101 -0
  1837. package/plugins/eslint/node_modules/sinon/lib/sinon/test_case.js +103 -0
  1838. package/plugins/eslint/node_modules/sinon/lib/sinon/times_in_words.js +43 -0
  1839. package/plugins/eslint/node_modules/sinon/lib/sinon/typeOf.js +50 -0
  1840. package/plugins/eslint/node_modules/sinon/lib/sinon/util/core.js +390 -0
  1841. package/plugins/eslint/node_modules/sinon/lib/sinon/util/event.js +111 -0
  1842. package/plugins/eslint/node_modules/sinon/lib/sinon/util/fake_server.js +240 -0
  1843. package/plugins/eslint/node_modules/sinon/lib/sinon/util/fake_server_with_clock.js +101 -0
  1844. package/plugins/eslint/node_modules/sinon/lib/sinon/util/fake_timers.js +77 -0
  1845. package/plugins/eslint/node_modules/sinon/lib/sinon/util/fake_xdomain_request.js +223 -0
  1846. package/plugins/eslint/node_modules/sinon/lib/sinon/util/fake_xml_http_request.js +620 -0
  1847. package/plugins/eslint/node_modules/sinon/lib/sinon/util/timers_ie.js +30 -0
  1848. package/plugins/eslint/node_modules/sinon/lib/sinon/util/xdr_ie.js +13 -0
  1849. package/plugins/eslint/node_modules/sinon/lib/sinon/util/xhr_ie.js +18 -0
  1850. package/plugins/eslint/node_modules/sinon/lib/sinon.js +46 -0
  1851. package/plugins/eslint/node_modules/sinon/package.json +44 -0
  1852. package/plugins/eslint/node_modules/sinon/pkg/sinon-1.14.1.js +5931 -0
  1853. package/plugins/eslint/node_modules/sinon/pkg/sinon-ie-1.14.1.js +97 -0
  1854. package/plugins/eslint/node_modules/sinon/pkg/sinon-ie.js +97 -0
  1855. package/plugins/eslint/node_modules/sinon/pkg/sinon-server-1.14.1.js +2104 -0
  1856. package/plugins/eslint/node_modules/sinon/pkg/sinon-timers-1.14.1.js +111 -0
  1857. package/plugins/eslint/node_modules/sinon/pkg/sinon-timers-ie-1.14.1.js +65 -0
  1858. package/plugins/eslint/node_modules/sinon/pkg/sinon.js +5931 -0
  1859. package/plugins/eslint/node_modules/source-map/.travis.yml +4 -0
  1860. package/plugins/eslint/node_modules/source-map/CHANGELOG.md +201 -0
  1861. package/plugins/eslint/node_modules/source-map/LICENSE +28 -0
  1862. package/plugins/eslint/node_modules/source-map/Makefile.dryice.js +166 -0
  1863. package/plugins/eslint/node_modules/source-map/README.md +479 -0
  1864. package/plugins/eslint/node_modules/source-map/lib/source-map/array-set.js +97 -0
  1865. package/plugins/eslint/node_modules/source-map/lib/source-map/base64-vlq.js +142 -0
  1866. package/plugins/eslint/node_modules/source-map/lib/source-map/base64.js +42 -0
  1867. package/plugins/eslint/node_modules/source-map/lib/source-map/basic-source-map-consumer.js +420 -0
  1868. package/plugins/eslint/node_modules/source-map/lib/source-map/binary-search.js +80 -0
  1869. package/plugins/eslint/node_modules/source-map/lib/source-map/indexed-source-map-consumer.js +303 -0
  1870. package/plugins/eslint/node_modules/source-map/lib/source-map/mapping-list.js +86 -0
  1871. package/plugins/eslint/node_modules/source-map/lib/source-map/source-map-consumer.js +222 -0
  1872. package/plugins/eslint/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
  1873. package/plugins/eslint/node_modules/source-map/lib/source-map/source-node.js +414 -0
  1874. package/plugins/eslint/node_modules/source-map/lib/source-map/util.js +319 -0
  1875. package/plugins/eslint/node_modules/source-map/lib/source-map.js +8 -0
  1876. package/plugins/eslint/node_modules/source-map/package.json +66 -0
  1877. package/plugins/eslint/node_modules/source-map/test/run-tests.js +62 -0
  1878. package/plugins/eslint/node_modules/source-map/test/source-map/test-api.js +26 -0
  1879. package/plugins/eslint/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  1880. package/plugins/eslint/node_modules/source-map/test/source-map/test-base64-vlq.js +23 -0
  1881. package/plugins/eslint/node_modules/source-map/test/source-map/test-base64.js +35 -0
  1882. package/plugins/eslint/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  1883. package/plugins/eslint/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
  1884. package/plugins/eslint/node_modules/source-map/test/source-map/test-source-map-consumer.js +874 -0
  1885. package/plugins/eslint/node_modules/source-map/test/source-map/test-source-map-generator.js +679 -0
  1886. package/plugins/eslint/node_modules/source-map/test/source-map/test-source-node.js +612 -0
  1887. package/plugins/eslint/node_modules/source-map/test/source-map/test-util.js +216 -0
  1888. package/plugins/eslint/node_modules/source-map/test/source-map/util.js +299 -0
  1889. package/plugins/eslint/node_modules/strip-ansi/index.js +6 -0
  1890. package/plugins/eslint/node_modules/strip-ansi/license +21 -0
  1891. package/plugins/eslint/node_modules/strip-ansi/node_modules/ansi-regex/index.js +4 -0
  1892. package/plugins/eslint/node_modules/strip-ansi/node_modules/ansi-regex/license +21 -0
  1893. package/plugins/eslint/node_modules/strip-ansi/node_modules/ansi-regex/package.json +64 -0
  1894. package/plugins/eslint/node_modules/strip-ansi/node_modules/ansi-regex/readme.md +39 -0
  1895. package/plugins/eslint/node_modules/strip-ansi/package.json +57 -0
  1896. package/plugins/eslint/node_modules/strip-ansi/readme.md +33 -0
  1897. package/plugins/eslint/node_modules/strip-indent/cli.js +49 -0
  1898. package/plugins/eslint/node_modules/strip-indent/index.js +16 -0
  1899. package/plugins/eslint/node_modules/strip-indent/license +21 -0
  1900. package/plugins/eslint/node_modules/strip-indent/package.json +46 -0
  1901. package/plugins/eslint/node_modules/strip-indent/readme.md +61 -0
  1902. package/plugins/eslint/node_modules/strip-json-comments/cli.js +41 -0
  1903. package/plugins/eslint/node_modules/strip-json-comments/license +21 -0
  1904. package/plugins/eslint/node_modules/strip-json-comments/package.json +46 -0
  1905. package/plugins/eslint/node_modules/strip-json-comments/readme.md +80 -0
  1906. package/plugins/eslint/node_modules/strip-json-comments/strip-json-comments.js +73 -0
  1907. package/plugins/eslint/node_modules/supports-color/index.js +50 -0
  1908. package/plugins/eslint/node_modules/supports-color/license +21 -0
  1909. package/plugins/eslint/node_modules/supports-color/package.json +49 -0
  1910. package/plugins/eslint/node_modules/supports-color/readme.md +36 -0
  1911. package/plugins/eslint/node_modules/trim-newlines/index.js +13 -0
  1912. package/plugins/eslint/node_modules/trim-newlines/license +21 -0
  1913. package/plugins/eslint/node_modules/trim-newlines/package.json +42 -0
  1914. package/plugins/eslint/node_modules/trim-newlines/readme.md +46 -0
  1915. package/plugins/eslint/node_modules/tunnel-agent/LICENSE +55 -0
  1916. package/plugins/eslint/node_modules/tunnel-agent/README.md +4 -0
  1917. package/plugins/eslint/node_modules/tunnel-agent/index.js +243 -0
  1918. package/plugins/eslint/node_modules/tunnel-agent/package.json +20 -0
  1919. package/plugins/eslint/node_modules/type-check/LICENSE +22 -0
  1920. package/plugins/eslint/node_modules/type-check/README.md +210 -0
  1921. package/plugins/eslint/node_modules/type-check/lib/check.js +126 -0
  1922. package/plugins/eslint/node_modules/type-check/lib/index.js +16 -0
  1923. package/plugins/eslint/node_modules/type-check/lib/parse-type.js +196 -0
  1924. package/plugins/eslint/node_modules/type-check/package.json +40 -0
  1925. package/plugins/eslint/node_modules/type-detect/History.md +18 -0
  1926. package/plugins/eslint/node_modules/type-detect/README.md +193 -0
  1927. package/plugins/eslint/node_modules/type-detect/index.js +1 -0
  1928. package/plugins/eslint/node_modules/type-detect/lib/type.js +142 -0
  1929. package/plugins/eslint/node_modules/type-detect/package.json +31 -0
  1930. package/plugins/eslint/node_modules/underscore/LICENSE +23 -0
  1931. package/plugins/eslint/node_modules/underscore/README.md +22 -0
  1932. package/plugins/eslint/node_modules/underscore/package.json +41 -0
  1933. package/plugins/eslint/node_modules/underscore/underscore-min.js +6 -0
  1934. package/plugins/eslint/node_modules/underscore/underscore.js +1415 -0
  1935. package/plugins/eslint/node_modules/which/CHANGELOG.md +152 -0
  1936. package/plugins/eslint/node_modules/which/LICENSE +15 -0
  1937. package/plugins/eslint/node_modules/which/README.md +51 -0
  1938. package/plugins/eslint/node_modules/which/package.json +30 -0
  1939. package/plugins/eslint/node_modules/which/which.js +135 -0
  1940. package/plugins/pbjsGlobals.js +1 -1
  1941. package/src/adapterManager.js +24 -19
  1942. package/src/adapters/bidderFactory.js +155 -131
  1943. package/src/adloader.js +3 -1
  1944. package/src/auction.js +111 -123
  1945. package/src/auctionIndex.js +85 -0
  1946. package/src/auctionManager.js +3 -0
  1947. package/src/bidderSettings.js +69 -0
  1948. package/src/bidfactory.js +18 -6
  1949. package/src/debugging.js +31 -19
  1950. package/src/native.js +29 -21
  1951. package/src/secureCreatives.js +26 -12
  1952. package/src/targeting.js +11 -2
  1953. package/src/utils.js +24 -17
  1954. package/src/video.js +10 -11
  1955. package/src/videoCache.js +10 -9
  1956. package/test/fixtures/fixtures.js +2 -1
  1957. package/test/helpers/indexStub.js +28 -0
  1958. package/test/spec/auctionmanager_spec.js +145 -98
  1959. package/test/spec/config_spec.js +24 -1
  1960. package/test/spec/debugging_spec.js +29 -6
  1961. package/test/spec/modules/adnuntiusRtdProvider_spec.js +145 -0
  1962. package/test/spec/modules/adotBidAdapter_spec.js +294 -3124
  1963. package/test/spec/modules/adpod_spec.js +91 -156
  1964. package/test/spec/modules/adyoulikeBidAdapter_spec.js +15 -1
  1965. package/test/spec/modules/asealBidAdapter_spec.js +144 -0
  1966. package/test/spec/modules/automatadBidAdapter_spec.js +23 -7
  1967. package/test/spec/modules/big-richmediaBidAdapter_spec.js +310 -0
  1968. package/test/spec/modules/bizzclickBidAdapter_spec.js +16 -0
  1969. package/test/spec/modules/conversantBidAdapter_spec.js +54 -2
  1970. package/test/spec/modules/currency_spec.js +15 -9
  1971. package/test/spec/modules/debugging_mod_spec.js +451 -0
  1972. package/test/spec/modules/dspxBidAdapter_spec.js +20 -15
  1973. package/test/spec/modules/eids_spec.js +2 -2
  1974. package/test/spec/modules/fluctBidAdapter_spec.js +92 -0
  1975. package/test/spec/modules/gridBidAdapter_spec.js +44 -0
  1976. package/test/spec/modules/gumgumBidAdapter_spec.js +3 -3
  1977. package/test/spec/modules/hadronIdSystem_spec.js +57 -0
  1978. package/test/spec/modules/hadronRtdProvider_spec.js +762 -0
  1979. package/test/spec/modules/imRtdProvider_spec.js +30 -1
  1980. package/test/spec/modules/improvedigitalBidAdapter_spec.js +19 -0
  1981. package/test/spec/modules/iqzoneBidAdapter_spec.js +1 -0
  1982. package/test/spec/modules/ixBidAdapter_spec.js +75 -2
  1983. package/test/spec/modules/justIdSystem_spec.js +216 -0
  1984. package/test/spec/modules/kubientBidAdapter_spec.js +183 -87
  1985. package/test/spec/modules/lkqdBidAdapter_spec.js +323 -0
  1986. package/test/spec/modules/lunamediahbBidAdapter_spec.js +27 -1
  1987. package/test/spec/modules/mass_spec.js +2 -14
  1988. package/test/spec/modules/mediakeysBidAdapter_spec.js +9 -5
  1989. package/test/spec/modules/mediasquareBidAdapter_spec.js +25 -1
  1990. package/test/spec/modules/nexx360BidAdapter_spec.js +140 -0
  1991. package/test/spec/modules/novatiqIdSystem_spec.js +18 -0
  1992. package/test/spec/modules/oguryBidAdapter_spec.js +63 -5
  1993. package/test/spec/modules/prebidServerBidAdapter_spec.js +43 -6
  1994. package/test/spec/modules/priceFloors_spec.js +83 -24
  1995. package/test/spec/modules/pubmaticBidAdapter_spec.js +40 -0
  1996. package/test/spec/modules/riseBidAdapter_spec.js +30 -4
  1997. package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +31 -1
  1998. package/test/spec/modules/rubiconBidAdapter_spec.js +1 -1
  1999. package/test/spec/modules/sortableAnalyticsAdapter_spec.js +2 -3
  2000. package/test/spec/modules/sspBCBidAdapter_spec.js +7 -7
  2001. package/test/spec/modules/telariaBidAdapter_spec.js +1 -3
  2002. package/test/spec/modules/trustpidSystem_spec.js +232 -0
  2003. package/test/spec/modules/trustxBidAdapter_spec.js +33 -0
  2004. package/test/spec/modules/userId_spec.js +39 -39
  2005. package/test/spec/modules/vibrantmediaBidAdapter_spec.js +1237 -0
  2006. package/test/spec/modules/vidazooBidAdapter_spec.js +3 -1
  2007. package/test/spec/modules/vidoomyBidAdapter_spec.js +7 -1
  2008. package/test/spec/modules/weboramaRtdProvider_spec.js +536 -20
  2009. package/test/spec/modules/yieldoneBidAdapter_spec.js +33 -0
  2010. package/test/spec/native_spec.js +62 -40
  2011. package/test/spec/unit/core/adapterManager_spec.js +22 -0
  2012. package/test/spec/unit/core/auctionIndex_spec.js +129 -0
  2013. package/test/spec/unit/core/bidderFactory_spec.js +65 -12
  2014. package/test/spec/unit/core/bidderSettings_spec.js +123 -0
  2015. package/test/spec/unit/core/targeting_spec.js +93 -0
  2016. package/test/spec/unit/pbjs_api_spec.js +63 -41
  2017. package/test/spec/unit/secureCreatives_spec.js +66 -32
  2018. package/test/spec/utils_spec.js +8 -1
  2019. package/test/spec/videoCache_spec.js +18 -19
  2020. package/test/spec/video_spec.js +51 -61
@@ -1,3163 +1,333 @@
1
1
  import { expect } from 'chai';
2
- import { executeRenderer } from 'src/Renderer.js';
3
- import * as utils from 'src/utils.js';
4
2
  import { spec } from 'modules/adotBidAdapter.js';
5
3
 
6
4
  const BIDDER_URL = 'https://dsp.adotmob.com/headerbidding/bidrequest';
7
5
 
8
6
  describe('Adot Adapter', function () {
9
- const examples = {
10
- adUnit_banner: {
11
- adUnitCode: 'ad_unit_banner',
12
- bidder: 'adot',
13
- bidderRequestId: 'bid_request_id',
14
- bidId: 'bid_id',
15
- params: {},
16
- mediaTypes: {
17
- banner: {
18
- sizes: [[300, 250]]
19
- }
20
- }
21
- },
22
-
23
- adUnit_video_outstream: {
24
- adUnitCode: 'ad_unit_video_outstream',
25
- bidder: 'adot',
26
- bidderRequestId: 'bid_request_id',
27
- bidId: 'bid_id',
28
- params: {},
29
- mediaTypes: {
30
- video: {
31
- context: 'outstream',
32
- playerSize: [[300, 250]],
33
- mimes: ['video/mp4'],
34
- minDuration: 5,
35
- maxDuration: 30,
36
- protocols: [2, 3]
37
- }
38
- }
39
- },
40
-
41
- adUnit_video_instream: {
42
- adUnitCode: 'ad_unit_video_instream',
43
- bidder: 'adot',
44
- bidderRequestId: 'bid_request_id',
45
- bidId: 'bid_id',
46
- params: {
47
- video: {
48
- instreamContext: 'pre-roll'
49
- }
50
- },
51
- mediaTypes: {
52
- video: {
53
- context: 'instream',
54
- playerSize: [[300, 250]],
55
- mimes: ['video/mp4'],
56
- minDuration: 5,
57
- maxDuration: 30,
58
- protocols: [2, 3]
59
- }
60
- }
61
- },
62
-
63
- adUnitContext: {
64
- refererInfo: {
65
- referer: 'https://we-are-adot.com/test',
66
- },
67
- gdprConsent: {
68
- consentString: 'consent_string',
69
- gdprApplies: true
70
- }
71
- },
72
-
73
- adUnit_position: {
74
- adUnitCode: 'ad_unit_position',
75
- bidder: 'adot',
76
- bidderRequestId: 'bid_request_id',
77
- bidId: 'bid_id',
78
- params: {
79
- position: 1
80
- },
81
- mediaTypes: {
82
- banner: {
83
- sizes: [[300, 250]]
84
- }
85
- }
86
- },
87
-
88
- adUnit_native: {
89
- adUnitCode: 'ad_unit_native',
90
- bidder: 'adot',
91
- bidderRequestId: 'bid_request_id',
92
- bidId: 'bid_id',
93
- params: {},
94
- mediaTypes: {
95
- native: {
96
- title: {required: true, len: 140},
97
- icon: {required: true, sizes: [50, 50]},
98
- image: {required: false, sizes: [320, 200]},
99
- sponsoredBy: {required: false},
100
- body: {required: false},
101
- cta: {required: true}
102
- }
103
- }
104
- },
7
+ describe('isBidRequestValid', function () {
8
+ it('should return false if video and !isValidVideo', function () {
9
+ const bid = { mediaTypes: { video: {} } };
10
+ const isBidRequestValid = spec.isBidRequestValid(bid);
11
+ expect(isBidRequestValid).to.equal(false);
12
+ })
13
+
14
+ it('should return true if video and isValidVideo', function () {
15
+ const bid = { mediaTypes: { video: { 'mimes': 1, 'minduration': 1, 'maxduration': 1, 'protocols': 1 } } };
16
+ const isBidRequestValid = spec.isBidRequestValid(bid);
17
+ expect(isBidRequestValid).to.equal(true);
18
+ })
19
+
20
+ it('should return true if !video', function () {
21
+ const bid = { mediaTypes: { banner: {} } };
22
+ const isBidRequestValid = spec.isBidRequestValid(bid);
23
+ expect(isBidRequestValid).to.equal(true);
24
+ })
25
+ });
105
26
 
106
- serverRequest_banner: {
107
- method: 'POST',
108
- url: 'https://we-are-adot.com/bidrequest',
109
- data: {
110
- id: 'bid_request_id',
111
- imp: [
112
- {
113
- id: 'imp_id_banner_0_0',
114
- banner: {
115
- format: [{
116
- w: 300,
117
- h: 200
118
- }]
119
- },
120
- video: null
121
- }
122
- ],
27
+ describe('buildRequests', function () {
28
+ it('should build request (banner)', function () {
29
+ const bidderRequestId = 'bidderRequestId';
30
+ const validBidRequests = [{ bidderRequestId, mediaTypes: {} }, { bidderRequestId, bidId: 'bidId', mediaTypes: { banner: { sizes: [[300, 250]] } }, params: { placementId: 'placementId', adUnitCode: 200 } }];
31
+ const bidderRequest = { position: 2, refererInfo: { referer: 'http://localhost.com' }, gdprConsent: { consentString: 'consentString', gdprApplies: true } };
32
+
33
+ const request = spec.buildRequests(validBidRequests, bidderRequest);
34
+ const buildBidRequestResponse = {
35
+ id: bidderRequestId,
36
+ imp: [{
37
+ id: validBidRequests[1].bidId,
38
+ ext: {
39
+ placementId: validBidRequests[1].params.placementId,
40
+ adUnitCode: validBidRequests[1].adUnitCode,
41
+ container: undefined
42
+ },
43
+ banner: {
44
+ pos: bidderRequest.position,
45
+ format: [{ w: validBidRequests[1].mediaTypes.banner.sizes[0][0], h: validBidRequests[1].mediaTypes.banner.sizes[0][1] }]
46
+ },
47
+ bidfloorcur: 'USD',
48
+ bidfloor: 0
49
+ }],
123
50
  site: {
124
- page: 'https://we-are-adot.com/test',
125
- domain: 'we-are-adot.com',
126
- name: 'we-are-adot.com'
127
- },
128
- device: {
129
- ua: '',
130
- language: 'en'
51
+ page: bidderRequest.refererInfo.referer,
52
+ domain: 'localhost.com',
53
+ name: 'localhost.com',
54
+ publisher: {
55
+ // id: 'adot'
56
+ id: undefined
57
+ }
131
58
  },
132
- user: null,
133
- regs: null,
134
- at: 1,
59
+ device: { ua: navigator.userAgent, language: navigator.language },
60
+ user: { ext: { consent: bidderRequest.gdprConsent.consentString } },
61
+ regs: { ext: { gdpr: bidderRequest.gdprConsent.gdprApplies } },
135
62
  ext: {
136
- adot: {
137
- 'adapter_version': 'v1.0.0'
138
- }
139
- }
140
- },
141
- _adot_internal: {
142
- impressions: [
143
- {
144
- impressionId: 'imp_id_banner_0_0',
145
- adUnitCode: 'ad_unit_banner',
146
- bidId: 'imp_id_banner'
147
- }
148
- ]
63
+ adot: { adapter_version: 'v2.0.0' },
64
+ should_use_gzip: true
65
+ },
66
+ at: 1
149
67
  }
150
- },
151
68
 
152
- serverRequest_banner_twoImps: {
153
- method: 'POST',
154
- url: 'https://we-are-adot.com/bidrequest',
155
- data: {
156
- id: 'bid_request_id',
157
- imp: [
158
- {
159
- id: 'imp_id_banner_0_0',
160
- banner: {
161
- format: [{
162
- w: 300,
163
- h: 200
164
- }]
165
- },
166
- video: null
69
+ expect(request).to.deep.equal([{
70
+ method: 'POST',
71
+ url: BIDDER_URL,
72
+ data: buildBidRequestResponse
73
+ }])
74
+ })
75
+
76
+ it('should build request (native)', function () {
77
+ const bidderRequestId = 'bidderRequestId';
78
+ const validBidRequests = [{ bidderRequestId, mediaTypes: {} }, { bidderRequestId, bidId: 'bidId', mediaTypes: { native: { title: { required: true, len: 50, sizes: [[300, 250]] }, wrong: {}, image: {} } }, params: { placementId: 'placementId', adUnitCode: 200 } }];
79
+ const bidderRequest = { position: 2, refererInfo: { referer: 'http://localhost.com' }, gdprConsent: { consentString: 'consentString', gdprApplies: true } };
80
+
81
+ const request = spec.buildRequests(validBidRequests, bidderRequest);
82
+ const buildBidRequestResponse = {
83
+ id: bidderRequestId,
84
+ imp: [{
85
+ id: validBidRequests[1].bidId,
86
+ ext: {
87
+ placementId: validBidRequests[1].params.placementId,
88
+ adUnitCode: validBidRequests[1].adUnitCode,
89
+ container: undefined
167
90
  },
168
- {
169
- id: 'imp_id_banner_2_0_0',
170
- banner: {
171
- format: [{
172
- w: 300,
173
- h: 200
174
- }]
175
- },
176
- video: null
177
- }
178
- ],
179
- site: {
180
- page: 'https://we-are-adot.com/test',
181
- domain: 'we-are-adot.com',
182
- name: 'we-are-adot.com'
183
- },
184
- device: {
185
- ua: '',
186
- language: 'en'
187
- },
188
- user: null,
189
- regs: null,
190
- at: 1,
191
- ext: {
192
- adot: {
193
- 'adapter_version': 'v1.0.0'
194
- }
195
- }
196
- },
197
- _adot_internal: {
198
- impressions: [
199
- {
200
- impressionId: 'imp_id_banner_0_0',
201
- adUnitCode: 'ad_unit_banner',
202
- bidId: 'imp_id_banner'
91
+ native: {
92
+ request: '{\"assets\":[{\"id\":1,\"required\":true,\"title\":{\"len\":50,\"wmin\":300,\"hmin\":250}},{\"id\":3,\"img\":{\"type\":3}}]}'
203
93
  },
204
- {
205
- impressionId: 'imp_id_banner_2_0_0',
206
- adUnitCode: 'ad_unit_banner_2',
207
- bidId: 'imp_id_banner_2'
208
- }
209
- ]
210
- }
211
- },
212
-
213
- serverRequest_video_instream: {
214
- method: 'POST',
215
- url: 'https://we-are-adot.com/bidrequest',
216
- data: {
217
- id: 'bid_request_id',
218
- imp: [
219
- {
220
- id: 'imp_id_video_instream_0',
221
- banner: null,
222
- video: {
223
- mimes: ['video/mp4'],
224
- w: 300,
225
- h: 200,
226
- startdelay: 0,
227
- minduration: 5,
228
- maxduration: 35,
229
- protocols: [2, 3]
230
- }
231
- }
232
- ],
94
+ bidfloorcur: 'USD',
95
+ bidfloor: 0
96
+ }],
233
97
  site: {
234
- page: 'https://we-are-adot.com/test',
235
- domain: 'we-are-adot.com',
236
- name: 'we-are-adot.com'
237
- },
238
- device: {
239
- ua: '',
240
- language: 'en'
241
- },
242
- user: null,
243
- regs: null,
244
- at: 1,
245
- ext: {
246
- adot: {
247
- 'adapter_version': 'v1.0.0'
248
- }
249
- }
250
- },
251
- _adot_internal: {
252
- impressions: [
253
- {
254
- impressionId: 'imp_id_video_instream_0',
255
- adUnitCode: 'ad_unit_video_instream',
256
- bidId: 'imp_id_video_instream'
257
- }
258
- ]
259
- }
260
- },
261
-
262
- serverRequest_video_outstream: {
263
- method: 'POST',
264
- url: 'https://we-are-adot.com/bidrequest',
265
- data: {
266
- id: 'bid_request_id',
267
- imp: [
268
- {
269
- id: 'imp_id_video_outstream_0',
270
- banner: null,
271
- video: {
272
- mimes: ['video/mp4'],
273
- w: 300,
274
- h: 200,
275
- startdelay: null,
276
- minduration: 5,
277
- maxduration: 35,
278
- protocols: [2, 3]
279
- }
98
+ page: bidderRequest.refererInfo.referer,
99
+ domain: 'localhost.com',
100
+ name: 'localhost.com',
101
+ publisher: {
102
+ // id: 'adot'
103
+ id: undefined
280
104
  }
281
- ],
282
- site: {
283
- page: 'https://we-are-adot.com/test',
284
- domain: 'we-are-adot.com',
285
- name: 'we-are-adot.com'
286
105
  },
287
- device: {
288
- ua: '',
289
- language: 'en'
290
- },
291
- user: null,
292
- regs: null,
293
- at: 1,
106
+ device: { ua: navigator.userAgent, language: navigator.language },
107
+ user: { ext: { consent: bidderRequest.gdprConsent.consentString } },
108
+ regs: { ext: { gdpr: bidderRequest.gdprConsent.gdprApplies } },
294
109
  ext: {
295
- adot: {
296
- 'adapter_version': 'v1.0.0'
297
- }
298
- }
299
- },
300
- _adot_internal: {
301
- impressions: [
302
- {
303
- impressionId: 'imp_id_video_outstream_0',
304
- adUnitCode: 'ad_unit_video_outstream',
305
- bidId: 'imp_id_video_outstream'
306
- }
307
- ]
110
+ adot: { adapter_version: 'v2.0.0' },
111
+ should_use_gzip: true
112
+ },
113
+ at: 1
308
114
  }
309
- },
310
115
 
311
- serverRequest_video_instream_outstream: {
312
- method: 'POST',
313
- url: 'https://we-are-adot.com/bidrequest',
314
- data: {
315
- id: 'bid_request_id',
316
- imp: [
317
- {
318
- id: 'imp_id_video_instream_0',
319
- banner: null,
320
- video: {
321
- mimes: ['video/mp4'],
322
- w: 300,
323
- h: 200,
324
- startdelay: 0,
325
- minduration: 5,
326
- maxduration: 35,
327
- protocols: [2, 3]
328
- }
116
+ expect(request).to.deep.equal([{
117
+ method: 'POST',
118
+ url: BIDDER_URL,
119
+ data: buildBidRequestResponse
120
+ }])
121
+ })
122
+
123
+ it('should build request (video)', function () {
124
+ const bidderRequestId = 'bidderRequestId';
125
+ const validBidRequests = [{ bidderRequestId, mediaTypes: {} }, { bidderRequestId, bidId: 'bidId', mediaTypes: { video: { playerSize: [[300, 250]], minduration: 1, maxduration: 2, api: 'api', linearity: 'linearity', mimes: [], placement: 'placement', playbackmethod: 'playbackmethod', protocols: 'protocol', startdelay: 'startdelay' } }, params: { placementId: 'placementId', adUnitCode: 200 } }];
126
+ const bidderRequest = { position: 2, refererInfo: { referer: 'http://localhost.com' }, gdprConsent: { consentString: 'consentString', gdprApplies: true } };
127
+
128
+ const request = spec.buildRequests(validBidRequests, bidderRequest);
129
+ const buildBidRequestResponse = {
130
+ id: bidderRequestId,
131
+ imp: [{
132
+ id: validBidRequests[1].bidId,
133
+ ext: {
134
+ placementId: validBidRequests[1].params.placementId,
135
+ adUnitCode: validBidRequests[1].adUnitCode,
136
+ container: undefined
329
137
  },
330
- {
331
- id: 'imp_id_video_outstream_0',
332
- banner: null,
333
- video: {
334
- mimes: ['video/mp4'],
335
- w: 300,
336
- h: 200,
337
- startdelay: null,
338
- minduration: 5,
339
- maxduration: 35,
340
- protocols: [2, 3]
341
- }
342
- }
343
- ],
344
- site: {
345
- page: 'https://we-are-adot.com/test',
346
- domain: 'we-are-adot.com',
347
- name: 'we-are-adot.com'
348
- },
349
- device: {
350
- ua: '',
351
- language: 'en'
352
- },
353
- user: null,
354
- regs: null,
355
- at: 1,
356
- ext: {
357
- adot: {
358
- 'adapter_version': 'v1.0.0'
359
- }
360
- }
361
- },
362
- _adot_internal: {
363
- impressions: [
364
- {
365
- impressionId: 'imp_id_video_instream_0',
366
- adUnitCode: 'ad_unit_video_instream',
367
- bidId: 'imp_id_video_instream'
138
+ video: {
139
+ api: 'api',
140
+ h: 250,
141
+ linearity: 'linearity',
142
+ maxduration: 2,
143
+ mimes: [],
144
+ minduration: 1,
145
+ placement: 'placement',
146
+ playbackmethod: 'playbackmethod',
147
+ pos: 0,
148
+ protocols: 'protocol',
149
+ skip: 0,
150
+ startdelay: 'startdelay',
151
+ w: 300
368
152
  },
369
- {
370
- impressionId: 'imp_id_video_outstream_0',
371
- adUnitCode: 'ad_unit_video_outstream',
372
- bidId: 'imp_id_video_outstream'
373
- }
374
- ]
375
- }
376
- },
377
-
378
- serverRequest_position: {
379
- method: 'POST',
380
- url: 'https://we-are-adot.com/bidrequest',
381
- data: {
382
- id: 'bid_request_id',
383
- imp: [
384
- {
385
- id: 'imp_id_banner',
386
- banner: {
387
- format: [{
388
- w: 300,
389
- h: 200
390
- }],
391
- position: 1
392
- },
393
- video: null
394
- }
395
- ],
153
+ bidfloorcur: 'USD',
154
+ bidfloor: 0
155
+ }],
396
156
  site: {
397
- page: 'https://we-are-adot.com/test',
398
- domain: 'we-are-adot.com',
399
- name: 'we-are-adot.com'
400
- },
401
- device: {
402
- ua: '',
403
- language: 'en'
404
- },
405
- user: null,
406
- regs: null,
407
- at: 1,
408
- ext: {
409
- adot: {
410
- 'adapter_version': 'v1.0.0'
411
- }
412
- }
413
- },
414
- _adot_internal: {
415
- impressions: [
416
- {
417
- impressionId: 'imp_id_banner',
418
- adUnitCode: 'ad_unit_position'
419
- }
420
- ]
421
- }
422
- },
423
-
424
- serverRequest_native: {
425
- method: 'POST',
426
- url: 'https://we-are-adot.com/bidrequest',
427
- data: {
428
- id: 'bid_request_id',
429
- imp: [
430
- {
431
- id: 'imp_id_native_0',
432
- native: {
433
- request: {
434
- assets: [
435
- {
436
- id: 1,
437
- required: true,
438
- title: {
439
- len: 140
440
- }
441
- },
442
- {
443
- id: 2,
444
- required: true,
445
- img: {
446
- type: 1,
447
- wmin: 50,
448
- hmin: 50
449
- }
450
- },
451
- {
452
- id: 3,
453
- required: false,
454
- img: {
455
- type: 3,
456
- wmin: 320,
457
- hmin: 200
458
- }
459
- },
460
- {
461
- id: 4,
462
- required: false,
463
- data: {
464
- type: 1
465
- }
466
- },
467
- {
468
- id: 5,
469
- required: false,
470
- data: {
471
- type: 2
472
- }
473
- },
474
- {
475
- id: 6,
476
- required: true,
477
- data: {
478
- type: 12
479
- }
480
- }
481
- ]
482
- }
483
- },
484
- video: null,
485
- banner: null
157
+ page: bidderRequest.refererInfo.referer,
158
+ domain: 'localhost.com',
159
+ name: 'localhost.com',
160
+ publisher: {
161
+ // id: 'adot'
162
+ id: undefined
486
163
  }
487
- ],
488
- site: {
489
- page: 'https://we-are-adot.com/test',
490
- domain: 'we-are-adot.com',
491
- name: 'we-are-adot.com'
492
- },
493
- device: {
494
- ua: '',
495
- language: 'en'
496
164
  },
497
- user: null,
498
- regs: null,
499
- at: 1,
165
+ device: { ua: navigator.userAgent, language: navigator.language },
166
+ user: { ext: { consent: bidderRequest.gdprConsent.consentString } },
167
+ regs: { ext: { gdpr: bidderRequest.gdprConsent.gdprApplies } },
500
168
  ext: {
501
- adot: {
502
- 'adapter_version': 'v1.0.0'
503
- }
504
- }
505
- },
506
- _adot_internal: {
507
- impressions: [
508
- {
509
- impressionId: 'imp_id_native_0',
510
- adUnitCode: 'ad_unit_native',
511
- bidId: 'imp_id_native'
512
- }
513
- ]
514
- }
515
- },
516
-
517
- serverResponse_banner: {
518
- body: {
519
- cur: 'EUR',
520
- seatbid: [
521
- {
522
- bid: [
523
- {
524
- impid: 'imp_id_banner_0_0',
525
- crid: 'creative_id',
526
- adm: 'creative_data_${AUCTION_PRICE}',
527
- nurl: 'win_notice_url_${AUCTION_PRICE}',
528
- price: 1.5,
529
- h: 350,
530
- w: 300,
531
- ext: {
532
- adot: {
533
- media_type: 'banner'
534
- }
535
- }
536
- }
537
- ]
538
- }
539
- ]
540
- }
541
- },
542
-
543
- serverResponse_banner_twoBids: {
544
- body: {
545
- cur: 'EUR',
546
- seatbid: [
547
- {
548
- bid: [
549
- {
550
- impid: 'imp_id_banner_0_0',
551
- crid: 'creative_id',
552
- adm: 'creative_data_${AUCTION_PRICE}',
553
- nurl: 'win_notice_url_${AUCTION_PRICE}',
554
- price: 1.5,
555
- h: 350,
556
- w: 300,
557
- adomain: ['adot'],
558
- ext: {
559
- adot: {
560
- media_type: 'banner'
561
- }
562
- }
563
- },
564
- {
565
- impid: 'imp_id_banner_2_0_0',
566
- crid: 'creative_id_2',
567
- adm: 'creative_data_2_${AUCTION_PRICE}',
568
- nurl: 'win_notice_url_2_${AUCTION_PRICE}',
569
- adomain: ['adot'],
570
- price: 2.5,
571
- h: 400,
572
- w: 350,
573
- ext: {
574
- adot: {
575
- media_type: 'banner'
576
- }
577
- }
578
- }
579
- ]
580
- }
581
- ]
169
+ adot: { adapter_version: 'v2.0.0' },
170
+ should_use_gzip: true
171
+ },
172
+ at: 1
582
173
  }
583
- },
584
174
 
585
- serverResponse_video_instream: {
586
- body: {
587
- cur: 'EUR',
588
- seatbid: [
589
- {
590
- bid: [
591
- {
592
- impid: 'imp_id_video_instream_0',
593
- crid: 'creative_id',
594
- adm: 'creative_data_${AUCTION_PRICE}',
595
- nurl: 'win_notice_url_${AUCTION_PRICE}',
596
- price: 1.5,
597
- ext: {
598
- adot: {
599
- media_type: 'video'
600
- }
601
- }
602
- }
603
- ]
604
- }
605
- ]
606
- }
607
- },
175
+ expect(request).to.deep.equal([{
176
+ method: 'POST',
177
+ url: BIDDER_URL,
178
+ data: buildBidRequestResponse
179
+ }])
180
+ })
181
+ });
608
182
 
609
- serverResponse_video_outstream: {
610
- body: {
611
- cur: 'EUR',
612
- seatbid: [
613
- {
614
- bid: [
615
- {
616
- impid: 'imp_id_video_outstream_0',
617
- crid: 'creative_id',
618
- adm: 'creative_data_${AUCTION_PRICE}',
619
- nurl: 'win_notice_url_${AUCTION_PRICE}',
620
- price: 1.5,
621
- ext: {
622
- adot: {
623
- media_type: 'video'
624
- }
625
- }
626
- }
627
- ]
628
- }
629
- ]
183
+ describe('interpretResponse', function () {
184
+ it('should return [] if !isValidResponse', function () {
185
+ const serverResponse = 'response';
186
+ const request = 'request';
187
+ const interpretedResponse = spec.interpretResponse(serverResponse, request);
188
+ expect(interpretedResponse).to.deep.equal([]);
189
+ })
190
+
191
+ it('should return [] if !isValidRequest', function () {
192
+ const serverResponse = { body: { cur: 'EUR', seatbid: [] } };
193
+ const request = 'request';
194
+ const interpretedResponse = spec.interpretResponse(serverResponse, request);
195
+ expect(interpretedResponse).to.deep.equal([]);
196
+ })
197
+
198
+ it('should return bidResponse with random media type', function () {
199
+ const impId = 'impId';
200
+ const bid = { adm: 'adm', impid: impId, price: 2, crid: 'crid', dealid: 'dealid', adomain: 'adomain', ext: { adot: { media_type: 'media_type', size: { w: 300, h: 250 } } } }
201
+ const serverResponse = { body: { cur: 'EUR', seatbid: [{ bid: {} }, { bid: [bid] }] } };
202
+ const request = { data: { imp: [{ id: impId }] } };
203
+ const bidResponse = {
204
+ requestId: impId,
205
+ cpm: bid.price,
206
+ currency: serverResponse.body.cur,
207
+ ttl: 10,
208
+ creativeId: bid.crid,
209
+ netRevenue: true,
210
+ mediaType: bid.ext.adot.media_type,
211
+ dealId: bid.dealid,
212
+ meta: { advertiserDomains: bid.adomain },
213
+ width: bid.ext.adot.size.w,
214
+ height: bid.ext.adot.size.h,
215
+ ad: bid.adm,
216
+ adUrl: null,
217
+ vastXml: null,
218
+ vastUrl: null,
219
+ renderer: null
630
220
  }
631
- },
632
221
 
633
- serverResponse_video_instream_outstream: {
634
- body: {
635
- cur: 'EUR',
636
- seatbid: [
637
- {
638
- bid: [
639
- {
640
- impid: 'imp_id_video_instream_0',
641
- crid: 'creative_id',
642
- adm: 'creative_data_${AUCTION_PRICE}',
643
- nurl: 'win_notice_url_${AUCTION_PRICE}',
644
- price: 1.5,
645
- ext: {
646
- adot: {
647
- media_type: 'video'
648
- }
649
- }
650
- },
651
- {
652
- impid: 'imp_id_video_outstream_0',
653
- crid: 'creative_id',
654
- adm: 'creative_data_${AUCTION_PRICE}',
655
- nurl: 'win_notice_url_${AUCTION_PRICE}',
656
- price: 1.5,
657
- ext: {
658
- adot: {
659
- media_type: 'video'
660
- }
661
- }
662
- }
663
- ]
664
- }
665
- ]
222
+ const interpretedResponse = spec.interpretResponse(serverResponse, request);
223
+ expect(interpretedResponse).to.deep.equal([bidResponse]);
224
+ })
225
+
226
+ it('should return bidResponse with native', function () {
227
+ const impId = 'impId';
228
+ const bid = { adm: '{"native":{"assets":[{"id":1,"title":{"text":"title"}},{"id":3,"img":{"url":"url","w":300,"h":250}}],"link":{"url":"clickUrl","clicktrackers":"clicktrackers"},"imptrackers":["imptracker"],"jstracker":"jstracker"}}', impid: impId, price: 2, crid: 'crid', dealid: 'dealid', adomain: 'adomain', ext: { adot: { media_type: 'native', size: { width: 300, height: 250 } } } }
229
+ const serverResponse = { body: { cur: 'EUR', seatbid: [{ bid: {} }, { bid: [bid] }] } };
230
+ const request = { data: { imp: [{ id: impId }] } };
231
+ const bidResponse = {
232
+ requestId: impId,
233
+ cpm: bid.price,
234
+ currency: serverResponse.body.cur,
235
+ ttl: 10,
236
+ creativeId: bid.crid,
237
+ netRevenue: true,
238
+ mediaType: bid.ext.adot.media_type,
239
+ dealId: bid.dealid,
240
+ meta: { advertiserDomains: bid.adomain },
241
+ native: {
242
+ title: 'title',
243
+ image: { url: 'url', width: 300, height: 250 },
244
+ clickUrl: 'clickUrl',
245
+ clickTrackers: 'clicktrackers',
246
+ impressionTrackers: ['imptracker'],
247
+ javascriptTrackers: ['jstracker']
248
+ }
666
249
  }
667
- },
668
250
 
669
- serverResponse_native: {
670
- body: {
671
- cur: 'EUR',
672
- seatbid: [
673
- {
674
- bid: [
675
- {
676
- impid: 'imp_id_native_0',
677
- crid: 'creative_id',
678
- adm: '{"native":{"assets":[{"id":1,"title":{"len":140,"text":"Hi everyone"}},{"id":2,"img":{"url":"https://adotmob.com","type":1,"w":50,"h":50}},{"id":3,"img":{"url":"https://adotmob.com","type":3,"w":320,"h":200}},{"id":4,"data":{"type":1,"value":"adotmob"}},{"id":5,"data":{"type":2,"value":"This is a test ad"}},{"id":6,"data":{"type":12,"value":"Click to buy"}}],"link":{"url":"https://adotmob.com?auction=${AUCTION_PRICE}"}}}',
679
- nurl: 'win_notice_url_${AUCTION_PRICE}',
680
- price: 1.5,
681
- ext: {
682
- adot: {
683
- media_type: 'native'
684
- }
685
- }
686
- }
687
- ]
688
- }
689
- ]
251
+ const interpretedResponse = spec.interpretResponse(serverResponse, request);
252
+ expect(interpretedResponse).to.deep.equal([bidResponse]);
253
+ })
254
+
255
+ it('should return bidResponse with video', function () {
256
+ const impId = 'impId';
257
+ const bid = { nurl: 'nurl', impid: impId, price: 2, crid: 'crid', dealid: 'dealid', adomain: 'adomain', ext: { adot: { media_type: 'video', size: { w: 300, h: 250 }, container: {}, adUnitCode: 20, video: { type: 'outstream' } } } }
258
+ const serverResponse = { body: { cur: 'EUR', seatbid: [{ bid: {} }, { bid: [bid] }] } };
259
+ const request = { data: { imp: [{ id: impId }] } };
260
+ const bidResponse = {
261
+ requestId: impId,
262
+ cpm: bid.price,
263
+ currency: serverResponse.body.cur,
264
+ ttl: 10,
265
+ creativeId: bid.crid,
266
+ netRevenue: true,
267
+ mediaType: bid.ext.adot.media_type,
268
+ dealId: bid.dealid,
269
+ meta: { advertiserDomains: bid.adomain },
270
+ w: bid.ext.adot.size.w,
271
+ h: bid.ext.adot.size.h,
272
+ ad: null,
273
+ adUrl: bid.nurl,
274
+ vastXml: null,
275
+ vastUrl: bid.nurl
690
276
  }
691
- }
692
- };
693
-
694
- describe('isBidRequestValid', function () {
695
- describe('General', function () {
696
- it('should return false when not given an ad unit', function () {
697
- const adUnit = undefined;
698
-
699
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
700
- });
701
-
702
- it('should return false when given an invalid ad unit', function () {
703
- const adUnit = 'bad_bid';
704
-
705
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
706
- });
707
-
708
- it('should return false when given an ad unit without bidder code', function () {
709
- const adUnit = utils.deepClone(examples.adUnit_banner);
710
- adUnit.bidder = undefined;
711
-
712
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
713
- });
714
-
715
- it('should return false when given an ad unit with a bad bidder code', function () {
716
- const adUnit = utils.deepClone(examples.adUnit_banner);
717
- adUnit.bidder = 'unknownBidder';
718
-
719
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
720
- });
721
-
722
- it('should return false when given an ad unit without ad unit code', function () {
723
- const adUnit = utils.deepClone(examples.adUnit_banner);
724
- adUnit.adUnitCode = undefined;
725
-
726
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
727
- });
728
-
729
- it('should return false when given an ad unit with an invalid ad unit code', function () {
730
- const adUnit = utils.deepClone(examples.adUnit_banner);
731
- adUnit.adUnitCode = {};
732
-
733
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
734
- });
735
-
736
- it('should return false when given an ad unit without bid request identifier', function () {
737
- const adUnit = utils.deepClone(examples.adUnit_banner);
738
- adUnit.bidderRequestId = undefined;
739
-
740
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
741
- });
742
-
743
- it('should return false when given an ad unit with an invalid bid request identifier', function () {
744
- const adUnit = utils.deepClone(examples.adUnit_banner);
745
- adUnit.bidderRequestId = {};
746
-
747
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
748
- });
749
-
750
- it('should return false when given an ad unit without impression identifier', function () {
751
- const adUnit = utils.deepClone(examples.adUnit_banner);
752
- adUnit.bidId = undefined;
753
-
754
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
755
- });
756
-
757
- it('should return false when given an ad unit with an invalid impression identifier', function () {
758
- const adUnit = utils.deepClone(examples.adUnit_banner);
759
- adUnit.bidId = {};
760
-
761
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
762
- });
763
-
764
- it('should return false when given an ad unit without media types', function () {
765
- const adUnit = utils.deepClone(examples.adUnit_banner);
766
- adUnit.mediaTypes = undefined;
767
-
768
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
769
- });
770
-
771
- it('should return false when given an ad unit with empty media types', function () {
772
- const adUnit = utils.deepClone(examples.adUnit_banner);
773
- adUnit.mediaTypes = {};
774
-
775
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
776
- });
777
-
778
- it('should return false when given an ad unit with invalid media types', function () {
779
- const adUnit = utils.deepClone(examples.adUnit_banner);
780
- adUnit.mediaTypes = 'bad_media_types';
781
-
782
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
783
- });
784
- });
785
-
786
- describe('Banner', function () {
787
- it('should return true when given a valid ad unit', function () {
788
- const adUnit = examples.adUnit_banner;
789
-
790
- expect(spec.isBidRequestValid(adUnit)).to.equal(true);
791
- });
792
-
793
- it('should return true when given a valid ad unit without bidder parameters', function () {
794
- const adUnit = utils.deepClone(examples.adUnit_banner);
795
- adUnit.params = undefined;
796
-
797
- expect(spec.isBidRequestValid(adUnit)).to.equal(true);
798
- });
799
-
800
- it('should return false when given an ad unit without size', function () {
801
- const adUnit = utils.deepClone(examples.adUnit_banner);
802
- adUnit.mediaTypes.banner.sizes = undefined;
803
-
804
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
805
- });
806
277
 
807
- it('should return false when given an ad unit with an invalid size', function () {
808
- const adUnit = utils.deepClone(examples.adUnit_banner);
809
- adUnit.mediaTypes.banner.sizes = 'bad_banner_size';
810
-
811
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
812
- });
813
-
814
- it('should return false when given an ad unit with an empty size', function () {
815
- const adUnit = utils.deepClone(examples.adUnit_banner);
816
- adUnit.mediaTypes.banner.sizes = [];
817
-
818
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
819
- });
820
-
821
- it('should return false when given an ad unit with an invalid size value', function () {
822
- const adUnit = utils.deepClone(examples.adUnit_banner);
823
- adUnit.mediaTypes.banner.sizes = ['bad_banner_size_value'];
824
-
825
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
826
- });
827
-
828
- it('should return false when given an ad unit with a size value with less than 2 dimensions', function () {
829
- const adUnit = utils.deepClone(examples.adUnit_banner);
830
- adUnit.mediaTypes.banner.sizes = [[300]];
831
-
832
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
833
- });
834
-
835
- it('should return false when given an ad unit with a size value with more than 2 dimensions', function () {
836
- const adUnit = utils.deepClone(examples.adUnit_banner);
837
- adUnit.mediaTypes.banner.sizes = [[300, 250, 30]];
838
-
839
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
840
- });
841
-
842
- it('should return false when given an ad unit with a negative width value', function () {
843
- const adUnit = utils.deepClone(examples.adUnit_banner);
844
- adUnit.mediaTypes.banner.sizes = [[-300, 250]];
845
-
846
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
847
- });
848
-
849
- it('should return false when given an ad unit with a negative height value', function () {
850
- const adUnit = utils.deepClone(examples.adUnit_banner);
851
- adUnit.mediaTypes.banner.sizes = [[300, -250]];
852
-
853
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
854
- });
855
-
856
- it('should return false when given an ad unit with an invalid width value', function () {
857
- const adUnit = utils.deepClone(examples.adUnit_banner);
858
- adUnit.mediaTypes.banner.sizes = [[false, 250]];
859
-
860
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
861
- });
862
-
863
- it('should return false when given an ad unit with an invalid height value', function () {
864
- const adUnit = utils.deepClone(examples.adUnit_banner);
865
- adUnit.mediaTypes.banner.sizes = [[300, {}]];
866
-
867
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
868
- });
869
- });
870
-
871
- describe('Video', function () {
872
- it('should return true when given a valid outstream ad unit', function () {
873
- const adUnit = examples.adUnit_video_outstream;
874
-
875
- expect(spec.isBidRequestValid(adUnit)).to.equal(true);
876
- });
877
-
878
- it('should return true when given a valid pre-roll instream ad unit', function () {
879
- const adUnit = utils.deepClone(examples.adUnit_video_instream);
880
- adUnit.params.video.instreamContext = 'pre-roll';
881
-
882
- expect(spec.isBidRequestValid(adUnit)).to.equal(true);
883
- });
884
-
885
- it('should return true when given a valid mid-roll instream ad unit', function () {
886
- const adUnit = utils.deepClone(examples.adUnit_video_instream);
887
- adUnit.params.video.instreamContext = 'mid-roll';
888
-
889
- expect(spec.isBidRequestValid(adUnit)).to.equal(true);
890
- });
891
-
892
- it('should return true when given a valid post-roll instream ad unit', function () {
893
- const adUnit = utils.deepClone(examples.adUnit_video_instream);
894
- adUnit.params.video.instreamContext = 'post-roll';
895
-
896
- expect(spec.isBidRequestValid(adUnit)).to.equal(true);
897
- });
898
-
899
- it('should return true when given an ad unit without size', function () {
900
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
901
- adUnit.mediaTypes.video.playerSize = undefined;
902
-
903
- expect(spec.isBidRequestValid(adUnit)).to.equal(true);
904
- });
905
-
906
- it('should return true when given an ad unit with an empty size', function () {
907
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
908
- adUnit.mediaTypes.video.playerSize = [];
909
-
910
- expect(spec.isBidRequestValid(adUnit)).to.equal(true);
911
- });
912
-
913
- it('should return true when given an ad unit without minimum duration parameter', function () {
914
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
915
- adUnit.mediaTypes.video.minDuration = undefined;
916
-
917
- expect(spec.isBidRequestValid(adUnit)).to.equal(true);
918
- });
919
-
920
- it('should return true when given an ad unit without maximum duration parameter', function () {
921
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
922
- adUnit.mediaTypes.video.maxDuration = undefined;
923
-
924
- expect(spec.isBidRequestValid(adUnit)).to.equal(true);
925
- });
926
-
927
- it('should return false when given an ad unit without bidder parameters', function () {
928
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
929
- adUnit.params = undefined;
930
-
931
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
932
- });
933
-
934
- it('should return false when given an ad unit with invalid bidder parameters', function () {
935
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
936
- adUnit.params = 'bad_bidder_parameters';
937
-
938
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
939
- });
940
-
941
- it('should return false when given an ad unit without video parameters', function () {
942
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
943
- adUnit.mediaTypes.video = undefined;
944
-
945
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
946
- });
947
-
948
- it('should return false when given an ad unit with invalid video parameters', function () {
949
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
950
- adUnit.mediaTypes.video = 'bad_bidder_parameters';
951
-
952
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
953
- });
954
-
955
- it('should return false when given an ad unit without mime types parameter', function () {
956
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
957
- adUnit.mediaTypes.video.mimes = undefined;
958
-
959
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
960
- });
961
-
962
- it('should return false when given an ad unit with an invalid mime types parameter', function () {
963
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
964
- adUnit.mediaTypes.video.mimes = 'bad_mime_types';
965
-
966
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
967
- });
968
-
969
- it('should return false when given an ad unit with an empty mime types parameter', function () {
970
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
971
- adUnit.mediaTypes.video.mimes = [];
972
-
973
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
974
- });
975
-
976
- it('should return false when given an ad unit with an invalid mime types parameter value', function () {
977
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
978
- adUnit.mediaTypes.video.mimes = [200];
979
-
980
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
981
- });
982
-
983
- it('should return false when given an ad unit with an invalid minimum duration parameter', function () {
984
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
985
- adUnit.mediaTypes.video.minDuration = 'bad_min_duration';
986
-
987
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
988
- });
989
-
990
- it('should return false when given an ad unit with an invalid maximum duration parameter', function () {
991
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
992
- adUnit.mediaTypes.video.maxDuration = 'bad_max_duration';
993
-
994
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
995
- });
996
-
997
- it('should return false when given an ad unit without protocols parameter', function () {
998
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
999
- adUnit.mediaTypes.video.protocols = undefined;
1000
-
1001
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1002
- });
1003
-
1004
- it('should return false when given an ad unit with an invalid protocols parameter', function () {
1005
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1006
- adUnit.mediaTypes.video.protocols = 'bad_protocols';
1007
-
1008
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1009
- });
1010
-
1011
- it('should return false when given an ad unit with an empty protocols parameter', function () {
1012
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1013
- adUnit.mediaTypes.video.protocols = [];
1014
-
1015
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1016
- });
1017
-
1018
- it('should return false when given an ad unit with an invalid protocols parameter value', function () {
1019
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1020
- adUnit.mediaTypes.video.protocols = ['bad_protocols_value'];
1021
-
1022
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1023
- });
1024
-
1025
- it('should return false when given an instream ad unit without instream context', function () {
1026
- const adUnit = utils.deepClone(examples.adUnit_video_instream);
1027
- adUnit.params.video.instreamContext = undefined;
1028
-
1029
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1030
- });
1031
-
1032
- it('should return false when given an instream ad unit with an invalid instream context', function () {
1033
- const adUnit = utils.deepClone(examples.adUnit_video_instream);
1034
- adUnit.params.video.instreamContext = 'bad_instream_context';
1035
-
1036
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1037
- });
1038
-
1039
- it('should return false when given an ad unit without context', function () {
1040
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1041
- adUnit.mediaTypes.video.context = undefined;
1042
-
1043
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1044
- });
1045
-
1046
- it('should return false when given an ad unit with an invalid context', function () {
1047
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1048
- adUnit.mediaTypes.video.context = [];
1049
-
1050
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1051
- });
1052
-
1053
- it('should return false when given an adpod ad unit', function () {
1054
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1055
- adUnit.mediaTypes.video.context = 'adpod';
1056
-
1057
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1058
- });
1059
-
1060
- it('should return false when given an ad unit with an unknown context', function () {
1061
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1062
- adUnit.mediaTypes.video.context = 'invalid_context';
1063
-
1064
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1065
- });
1066
-
1067
- it('should return false when given an ad unit with an invalid size', function () {
1068
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1069
- adUnit.mediaTypes.video.playerSize = 'bad_video_size';
1070
-
1071
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1072
- });
1073
-
1074
- it('should return false when given an ad unit with an invalid size value', function () {
1075
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1076
- adUnit.mediaTypes.video.playerSize = ['bad_video_size_value'];
1077
-
1078
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1079
- });
1080
-
1081
- it('should return false when given an ad unit with a size value with less than 2 dimensions', function () {
1082
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1083
- adUnit.mediaTypes.video.playerSize = [[300]];
1084
-
1085
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1086
- });
1087
-
1088
- it('should return false when given an ad unit with a size value with more than 2 dimensions', function () {
1089
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1090
- adUnit.mediaTypes.video.playerSize = [[300, 250, 30]];
1091
-
1092
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1093
- });
1094
-
1095
- it('should return false when given an ad unit with a negative width value', function () {
1096
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1097
- adUnit.mediaTypes.video.playerSize = [[-300, 250]];
1098
-
1099
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1100
- });
1101
-
1102
- it('should return false when given an ad unit with a negative height value', function () {
1103
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1104
- adUnit.mediaTypes.video.playerSize = [[300, -250]];
1105
-
1106
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1107
- });
1108
-
1109
- it('should return false when given an ad unit with an invalid width value', function () {
1110
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1111
- adUnit.mediaTypes.video.playerSize = [[false, 250]];
1112
-
1113
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1114
- });
1115
-
1116
- it('should return false when given an ad unit with an invalid height value', function () {
1117
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1118
- adUnit.mediaTypes.video.playerSize = [[300, {}]];
1119
-
1120
- expect(spec.isBidRequestValid(adUnit)).to.equal(false);
1121
- });
1122
- });
278
+ const interpretedResponse = spec.interpretResponse(serverResponse, request);
279
+ expect(interpretedResponse).to.be.an('array').and.to.have.lengthOf(1)
280
+ expect(interpretedResponse[0].requestId).to.deep.equal(bidResponse.requestId);
281
+ expect(interpretedResponse[0].cpm).to.deep.equal(bidResponse.cpm);
282
+ expect(interpretedResponse[0].currency).to.deep.equal(bidResponse.currency);
283
+ expect(interpretedResponse[0].ttl).to.deep.equal(bidResponse.ttl);
284
+ expect(interpretedResponse[0].creativeId).to.deep.equal(bidResponse.creativeId);
285
+ expect(interpretedResponse[0].netRevenue).to.deep.equal(bidResponse.netRevenue);
286
+ expect(interpretedResponse[0].mediaType).to.deep.equal(bidResponse.mediaType);
287
+ expect(interpretedResponse[0].dealId).to.deep.equal(bidResponse.dealId);
288
+ expect(interpretedResponse[0].meta).to.deep.equal(bidResponse.meta);
289
+ expect(interpretedResponse[0].width).to.deep.equal(bidResponse.w);
290
+ expect(interpretedResponse[0].height).to.deep.equal(bidResponse.h);
291
+ expect(interpretedResponse[0].ad).to.deep.equal(bidResponse.ad);
292
+ expect(interpretedResponse[0].adUrl).to.deep.equal(bidResponse.adUrl);
293
+ expect(interpretedResponse[0].vastXml).to.deep.equal(bidResponse.vastXml);
294
+ expect(interpretedResponse[0].vastUrl).to.deep.equal(bidResponse.vastUrl);
295
+ expect(interpretedResponse[0].renderer).to.be.an('object');
296
+ })
1123
297
  });
1124
298
 
1125
- describe('buildRequests', function () {
1126
- describe('ServerRequest', function () {
1127
- it('should return a server request when given a valid ad unit and a valid ad unit context', function () {
1128
- const adUnits = [examples.adUnit_banner];
1129
-
1130
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1131
-
1132
- expect(serverRequests).to.be.an('array').and.to.have.length(1);
1133
- expect(serverRequests[0].method).to.exist.and.to.be.a('string').and.to.equal('POST');
1134
- expect(serverRequests[0].url).to.exist.and.to.be.a('string').and.to.equal(BIDDER_URL);
1135
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1136
- expect(serverRequests[0]._adot_internal).to.exist.and.to.be.an('object');
1137
- expect(serverRequests[0]._adot_internal.impressions).to.exist.and.to.be.an('array').and.to.have.length(1);
1138
- expect(serverRequests[0]._adot_internal.impressions[0]).to.exist.and.to.be.an('object');
1139
- expect(serverRequests[0]._adot_internal.impressions[0].impressionId).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0_0`);
1140
- expect(serverRequests[0]._adot_internal.impressions[0].adUnitCode).to.exist.and.to.be.a('string').and.to.equal(adUnits[0].adUnitCode);
1141
- });
1142
-
1143
- it('should return a server request containing a position when given a valid ad unit and a valid ad unit context and a position in the bidder params', function () {
1144
- const adUnits = [examples.adUnit_position];
1145
-
1146
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1147
-
1148
- expect(serverRequests).to.be.an('array').and.to.have.length(1);
1149
- expect(serverRequests[0].method).to.exist.and.to.be.a('string').and.to.equal('POST');
1150
- expect(serverRequests[0].url).to.exist.and.to.be.a('string').and.to.equal(BIDDER_URL);
1151
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1152
- expect(serverRequests[0]._adot_internal).to.exist.and.to.be.an('object');
1153
- expect(serverRequests[0]._adot_internal.impressions).to.exist.and.to.be.an('array').and.to.have.length(1);
1154
- expect(serverRequests[0]._adot_internal.impressions[0]).to.exist.and.to.be.an('object');
1155
- expect(serverRequests[0]._adot_internal.impressions[0].impressionId).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0_0`);
1156
- expect(serverRequests[0]._adot_internal.impressions[0].adUnitCode).to.exist.and.to.be.a('string').and.to.equal(adUnits[0].adUnitCode);
1157
- expect(serverRequests[0].data.imp[0].banner.pos).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].params.position);
1158
- });
1159
-
1160
- it('should return a server request when given two valid ad units and a valid ad unit context', function () {
1161
- const adUnits_1 = utils.deepClone(examples.adUnit_banner);
1162
- adUnits_1.bidId = 'bid_id_1';
1163
- adUnits_1.adUnitCode = 'ad_unit_banner_1';
1164
-
1165
- const adUnits_2 = utils.deepClone(examples.adUnit_banner);
1166
- adUnits_2.bidId = 'bid_id_2';
1167
- adUnits_2.adUnitCode = 'ad_unit_banner_2';
1168
-
1169
- const adUnits = [adUnits_1, adUnits_2];
1170
-
1171
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1172
-
1173
- expect(serverRequests).to.be.an('array').and.to.have.length(1);
1174
- expect(serverRequests[0].method).to.exist.and.to.be.a('string').and.to.equal('POST');
1175
- expect(serverRequests[0].url).to.exist.and.to.be.a('string').and.to.equal(BIDDER_URL);
1176
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1177
- expect(serverRequests[0]._adot_internal).to.exist.and.to.be.an('object');
1178
- expect(serverRequests[0]._adot_internal.impressions).to.exist.and.to.be.an('array').and.to.have.length(2);
1179
- expect(serverRequests[0]._adot_internal.impressions[0]).to.exist.and.to.be.an('object');
1180
- expect(serverRequests[0]._adot_internal.impressions[0].impressionId).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0_0`);
1181
- expect(serverRequests[0]._adot_internal.impressions[0].adUnitCode).to.exist.and.to.be.a('string').and.to.equal(adUnits[0].adUnitCode);
1182
- expect(serverRequests[0]._adot_internal.impressions[1]).to.exist.and.to.be.an('object');
1183
- expect(serverRequests[0]._adot_internal.impressions[1].impressionId).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[1].bidId}_0_0`);
1184
- expect(serverRequests[0]._adot_internal.impressions[1].adUnitCode).to.exist.and.to.be.a('string').and.to.equal(adUnits[1].adUnitCode);
1185
- });
1186
-
1187
- it('should return an empty server request list when given an empty ad unit list and a valid ad unit context', function () {
1188
- const adUnits = [];
1189
-
1190
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1191
-
1192
- expect(serverRequests).to.be.an('array').and.to.have.length(0);
1193
- });
1194
-
1195
- it('should not return a server request when given no ad unit and a valid ad unit context', function () {
1196
- const serverRequests = spec.buildRequests(null, examples.adUnitContext);
1197
-
1198
- expect(serverRequests).to.equal(null);
1199
- });
1200
-
1201
- it('should not return a server request when given a valid ad unit and no ad unit context', function () {
1202
- const adUnits = [examples.adUnit_banner];
1203
-
1204
- const serverRequests = spec.buildRequests(adUnits, null);
1205
-
1206
- expect(serverRequests).to.be.an('array').and.to.have.length(1);
1207
- });
1208
-
1209
- it('should not return a server request when given a valid ad unit and an invalid ad unit context', function () {
1210
- const adUnits = [examples.adUnit_banner];
1211
-
1212
- const serverRequests = spec.buildRequests(adUnits, {});
1213
-
1214
- expect(serverRequests).to.be.an('array').and.to.have.length(1);
1215
- });
1216
- });
1217
-
1218
- describe('BidRequest', function () {
1219
- it('should return a valid server request when given a valid ad unit', function () {
1220
- const adUnits = [examples.adUnit_banner];
1221
-
1222
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1223
-
1224
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1225
- expect(serverRequests[0].data.id).to.exist.and.to.be.a('string').and.to.equal(adUnits[0].bidderRequestId);
1226
- expect(serverRequests[0].data.at).to.exist.and.to.be.a('number').and.to.equal(1);
1227
- expect(serverRequests[0].data.ext).to.exist.and.to.be.an('object');
1228
- expect(serverRequests[0].data.ext.adot).to.exist.and.to.be.an('object');
1229
- expect(serverRequests[0].data.ext.adot.adapter_version).to.exist.and.to.be.a('string').and.to.equal('v1.0.0');
1230
- });
1231
-
1232
- it('should return one server request when given one valid ad unit', function () {
1233
- const adUnits = [examples.adUnit_banner];
1234
-
1235
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1236
-
1237
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1238
- expect(serverRequests[0].data.id).to.exist.and.to.be.a('string').and.to.equal(adUnits[0].bidderRequestId);
1239
- });
1240
-
1241
- it('should return one server request when given two valid ad units with different impression identifiers', function () {
1242
- const adUnit_1 = utils.deepClone(examples.adUnit_banner);
1243
- adUnit_1.bidId = 'bid_id_1';
1244
-
1245
- const adUnit_2 = utils.deepClone(examples.adUnit_banner);
1246
- adUnit_2.bidId = 'bid_id_2';
1247
-
1248
- const adUnits = [adUnit_1, adUnit_2];
1249
-
1250
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1251
-
1252
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1253
- expect(serverRequests[0].data.id).to.exist.and.to.be.a('string').and.to.equal(adUnits[0].bidderRequestId);
1254
- expect(serverRequests[0].data.id).to.exist.and.to.be.a('string').and.to.equal(adUnits[1].bidderRequestId);
1255
- });
1256
-
1257
- it('should return two server requests when given two valid ad units with different bid request identifiers', function () {
1258
- const adUnit_1 = utils.deepClone(examples.adUnit_banner);
1259
- adUnit_1.bidderRequestId = 'bidder_request_id_1';
1260
-
1261
- const adUnit_2 = utils.deepClone(examples.adUnit_banner);
1262
- adUnit_2.bidderRequestId = 'bidder_request_id_2';
1263
-
1264
- const adUnits = [adUnit_1, adUnit_2];
1265
-
1266
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1267
-
1268
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(2);
1269
- expect(serverRequests[0].data.id).to.exist.and.to.be.a('string').and.to.equal(adUnits[0].bidderRequestId);
1270
- expect(serverRequests[1].data.id).to.exist.and.to.be.a('string').and.to.equal(adUnits[1].bidderRequestId);
1271
- });
1272
- });
1273
-
1274
- describe('Impression', function () {
1275
- describe('Banner', function () {
1276
- it('should return a server request with one impression when given a valid ad unit', function () {
1277
- const adUnits = [examples.adUnit_banner];
1278
-
1279
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1280
-
1281
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1282
-
1283
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1284
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1285
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1286
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0_0`);
1287
- expect(serverRequests[0].data.imp[0].banner).to.exist.and.to.be.an('object');
1288
- expect(serverRequests[0].data.imp[0].banner.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.banner.sizes[0][0]);
1289
- expect(serverRequests[0].data.imp[0].banner.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.banner.sizes[0][1]);
1290
- expect(serverRequests[0].data.imp[0].banner.format).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1291
- expect(serverRequests[0].data.imp[0].banner.format[0]).to.exist.and.to.be.an('object').and.to.deep.equal({
1292
- w: adUnits[0].mediaTypes.banner.sizes[0][0],
1293
- h: adUnits[0].mediaTypes.banner.sizes[0][1]
1294
- });
1295
- });
1296
-
1297
- it('should return a server request with two impressions containing one banner formats when given a valid ad unit with two banner sizes', function () {
1298
- const adUnit = utils.deepClone(examples.adUnit_banner);
1299
- adUnit.mediaTypes.banner.sizes = [
1300
- [300, 250],
1301
- [350, 300]
1302
- ];
1303
-
1304
- const adUnits = [adUnit];
1305
-
1306
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1307
-
1308
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1309
-
1310
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1311
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(2);
1312
-
1313
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1314
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0_0`);
1315
- expect(serverRequests[0].data.imp[0].banner).to.exist.and.to.be.an('object');
1316
- expect(serverRequests[0].data.imp[0].banner.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.banner.sizes[0][0]);
1317
- expect(serverRequests[0].data.imp[0].banner.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.banner.sizes[0][1]);
1318
- expect(serverRequests[0].data.imp[0].banner.format).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1319
- expect(serverRequests[0].data.imp[0].banner.format[0]).to.exist.and.to.be.an('object').and.to.deep.equal({
1320
- w: adUnits[0].mediaTypes.banner.sizes[0][0],
1321
- h: adUnits[0].mediaTypes.banner.sizes[0][1]
1322
- });
1323
-
1324
- expect(serverRequests[0].data.imp[1]).to.exist.and.to.be.an('object');
1325
- expect(serverRequests[0].data.imp[1].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0_1`);
1326
- expect(serverRequests[0].data.imp[1].banner).to.exist.and.to.be.an('object');
1327
- expect(serverRequests[0].data.imp[1].banner.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.banner.sizes[1][0]);
1328
- expect(serverRequests[0].data.imp[1].banner.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.banner.sizes[1][1]);
1329
- expect(serverRequests[0].data.imp[1].banner.format).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1330
- expect(serverRequests[0].data.imp[1].banner.format[0]).to.exist.and.to.be.an('object').and.to.deep.equal({
1331
- w: adUnits[0].mediaTypes.banner.sizes[1][0],
1332
- h: adUnits[0].mediaTypes.banner.sizes[1][1]
1333
- });
1334
- });
1335
-
1336
- it('should return a server request with two impressions when given two valid ad units with different impression identifiers', function () {
1337
- const adUnit_1 = utils.deepClone(examples.adUnit_banner);
1338
- adUnit_1.bidId = 'bid_id_1';
1339
-
1340
- const adUnit_2 = utils.deepClone(examples.adUnit_banner);
1341
- adUnit_2.bidId = 'bid_id_2';
1342
-
1343
- const adUnits = [adUnit_1, adUnit_2];
1344
-
1345
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1346
-
1347
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1348
-
1349
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1350
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(2);
1351
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1352
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0_0`);
1353
- expect(serverRequests[0].data.imp[0].banner).to.exist.and.to.be.an('object');
1354
- expect(serverRequests[0].data.imp[0].banner.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.banner.sizes[0][0]);
1355
- expect(serverRequests[0].data.imp[0].banner.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.banner.sizes[0][1]);
1356
- expect(serverRequests[0].data.imp[0].banner.format).to.exist.and.to.be.an('array');
1357
- expect(serverRequests[0].data.imp[0].banner.format[0]).to.exist.and.to.be.an('object').and.to.deep.equal({
1358
- w: adUnits[0].mediaTypes.banner.sizes[0][0],
1359
- h: adUnits[0].mediaTypes.banner.sizes[0][1]
1360
- });
1361
- expect(serverRequests[0].data.imp[1]).to.exist.and.to.be.an('object');
1362
- expect(serverRequests[0].data.imp[1].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[1].bidId}_0_0`);
1363
- expect(serverRequests[0].data.imp[1].banner).to.exist.and.to.be.an('object');
1364
- expect(serverRequests[0].data.imp[1].banner.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.banner.sizes[0][0]);
1365
- expect(serverRequests[0].data.imp[1].banner.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.banner.sizes[0][1]);
1366
- expect(serverRequests[0].data.imp[1].banner.format).to.exist.and.to.be.an('array');
1367
- expect(serverRequests[0].data.imp[1].banner.format[0]).to.exist.and.to.be.an('object').and.to.deep.equal({
1368
- w: adUnits[1].mediaTypes.banner.sizes[0][0],
1369
- h: adUnits[1].mediaTypes.banner.sizes[0][1]
1370
- });
1371
- });
1372
-
1373
- it('should return a server request with one overriden impression when given two valid ad units with identical identifiers', function () {
1374
- const adUnit_1 = utils.deepClone(examples.adUnit_banner);
1375
- adUnit_1.mediaTypes.banner.sizes = [[300, 250]];
1376
-
1377
- const adUnit_2 = utils.deepClone(examples.adUnit_banner);
1378
- adUnit_2.mediaTypes.banner.sizes = [[350, 300]];
1379
-
1380
- const adUnits = [adUnit_1, adUnit_2];
1381
-
1382
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1383
-
1384
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1385
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1386
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1387
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1388
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[1].bidId}_0_0`);
1389
- expect(serverRequests[0].data.imp[0].banner).to.exist.and.to.be.an('object');
1390
- expect(serverRequests[0].data.imp[0].banner.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.banner.sizes[0][0]);
1391
- expect(serverRequests[0].data.imp[0].banner.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.banner.sizes[0][1]);
1392
- expect(serverRequests[0].data.imp[0].banner.format).to.exist.and.to.be.an('array');
1393
- expect(serverRequests[0].data.imp[0].banner.format[0]).to.exist.and.to.be.an('object').and.to.deep.equal({
1394
- w: adUnits[1].mediaTypes.banner.sizes[0][0],
1395
- h: adUnits[1].mediaTypes.banner.sizes[0][1]
1396
- });
1397
- });
1398
-
1399
- it('should return two server requests with one impression when given two valid ad units with different bid request identifiers', function () {
1400
- const adUnit_1 = utils.deepClone(examples.adUnit_banner);
1401
- adUnit_1.bidderRequestId = 'bidder_request_id_1';
1402
-
1403
- const adUnit_2 = utils.deepClone(examples.adUnit_banner);
1404
- adUnit_2.bidderRequestId = 'bidder_request_id_2';
1405
-
1406
- const adUnits = [adUnit_1, adUnit_2];
1407
-
1408
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1409
-
1410
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(2);
1411
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1412
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1413
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1414
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0_0`);
1415
- expect(serverRequests[0].data.imp[0].banner).to.exist.and.to.be.an('object');
1416
- expect(serverRequests[0].data.imp[0].banner.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.banner.sizes[0][0]);
1417
- expect(serverRequests[0].data.imp[0].banner.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.banner.sizes[0][1]);
1418
- expect(serverRequests[0].data.imp[0].banner.format).to.exist.and.to.be.an('array');
1419
- expect(serverRequests[0].data.imp[0].banner.format[0]).to.exist.and.to.be.an('object').and.to.deep.equal({
1420
- w: adUnits[0].mediaTypes.banner.sizes[0][0],
1421
- h: adUnits[0].mediaTypes.banner.sizes[0][1]
1422
- });
1423
- expect(serverRequests[1].data).to.exist.and.to.be.an('object');
1424
- expect(serverRequests[1].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[1].bidderRequestId);
1425
- expect(serverRequests[1].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1426
- expect(serverRequests[1].data.imp[0]).to.exist.and.to.be.an('object');
1427
- expect(serverRequests[1].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[1].bidId}_0_0`);
1428
- expect(serverRequests[1].data.imp[0].banner).to.exist.and.to.be.an('object');
1429
- expect(serverRequests[1].data.imp[0].banner.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.banner.sizes[0][0]);
1430
- expect(serverRequests[1].data.imp[0].banner.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.banner.sizes[0][1]);
1431
- expect(serverRequests[1].data.imp[0].banner.format).to.exist.and.to.be.an('array');
1432
- expect(serverRequests[1].data.imp[0].banner.format[0]).to.exist.and.to.be.an('object').and.to.deep.equal({
1433
- w: adUnits[1].mediaTypes.banner.sizes[0][0],
1434
- h: adUnits[1].mediaTypes.banner.sizes[0][1]
1435
- });
1436
- });
1437
- });
1438
-
1439
- describe('Video', function () {
1440
- it('should return a server request with one impression when given a valid outstream ad unit', function () {
1441
- const adUnit = examples.adUnit_video_outstream;
1442
-
1443
- const adUnits = [adUnit];
1444
-
1445
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1446
-
1447
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1448
-
1449
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1450
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1451
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1452
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1453
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1454
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1455
- expect(serverRequests[0].data.imp[0].video.startdelay).to.equal(null);
1456
- expect(serverRequests[0].data.imp[0].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][0]);
1457
- expect(serverRequests[0].data.imp[0].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][1]);
1458
- expect(serverRequests[0].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.minDuration);
1459
- expect(serverRequests[0].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.maxDuration);
1460
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.protocols);
1461
- });
1462
-
1463
- it('should return a server request with one impression when given a valid pre-roll instream ad unit', function () {
1464
- const adUnit = utils.deepClone(examples.adUnit_video_instream);
1465
- adUnit.params.video.instreamContext = 'pre-roll';
1466
-
1467
- const adUnits = [adUnit];
1468
-
1469
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1470
-
1471
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1472
-
1473
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1474
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1475
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1476
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1477
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1478
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1479
- expect(serverRequests[0].data.imp[0].video.startdelay).to.exist.and.to.be.a('number').and.to.equal(0);
1480
- expect(serverRequests[0].data.imp[0].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][0]);
1481
- expect(serverRequests[0].data.imp[0].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][1]);
1482
- expect(serverRequests[0].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.minDuration);
1483
- expect(serverRequests[0].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.maxDuration);
1484
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.protocols);
1485
- });
1486
-
1487
- it('should return a server request with one impression when given a valid mid-roll instream ad unit', function () {
1488
- const adUnit = utils.deepClone(examples.adUnit_video_instream);
1489
- adUnit.params.video.instreamContext = 'mid-roll';
1490
-
1491
- const adUnits = [adUnit];
1492
-
1493
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1494
-
1495
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1496
-
1497
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1498
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1499
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1500
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1501
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1502
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1503
- expect(serverRequests[0].data.imp[0].video.startdelay).to.exist.and.to.be.a('number').and.to.equal(-1);
1504
- expect(serverRequests[0].data.imp[0].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][0]);
1505
- expect(serverRequests[0].data.imp[0].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][1]);
1506
- expect(serverRequests[0].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.minDuration);
1507
- expect(serverRequests[0].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.maxDuration);
1508
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.protocols);
1509
- });
1510
-
1511
- it('should return a server request with one impression when given a valid post-roll instream ad unit', function () {
1512
- const adUnit = utils.deepClone(examples.adUnit_video_instream);
1513
- adUnit.params.video.instreamContext = 'post-roll';
1514
-
1515
- const adUnits = [adUnit];
1516
-
1517
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1518
-
1519
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1520
-
1521
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1522
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1523
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1524
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1525
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1526
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1527
- expect(serverRequests[0].data.imp[0].video.startdelay).to.exist.and.to.be.a('number').and.to.equal(-2);
1528
- expect(serverRequests[0].data.imp[0].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][0]);
1529
- expect(serverRequests[0].data.imp[0].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][1]);
1530
- expect(serverRequests[0].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.minDuration);
1531
- expect(serverRequests[0].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.maxDuration);
1532
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.protocols);
1533
- });
1534
-
1535
- it('should return a server request with one impression when given a valid ad unit without player size', function () {
1536
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1537
- adUnit.mediaTypes.video.playerSize = undefined;
1538
-
1539
- const adUnits = [adUnit];
1540
-
1541
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1542
-
1543
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1544
-
1545
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1546
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1547
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1548
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1549
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1550
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1551
- expect(serverRequests[0].data.imp[0].video.startdelay).to.equal(null);
1552
- expect(serverRequests[0].data.imp[0].video.w).to.equal(null);
1553
- expect(serverRequests[0].data.imp[0].video.h).to.equal(null);
1554
- expect(serverRequests[0].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.minDuration);
1555
- expect(serverRequests[0].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.maxDuration);
1556
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.protocols);
1557
- });
1558
-
1559
- it('should return a server request with one impression when given a valid ad unit with an empty player size', function () {
1560
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1561
- adUnit.mediaTypes.video.playerSize = [];
1562
-
1563
- const adUnits = [adUnit];
1564
-
1565
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1566
-
1567
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1568
-
1569
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1570
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1571
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1572
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1573
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1574
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1575
- expect(serverRequests[0].data.imp[0].video.startdelay).to.equal(null);
1576
- expect(serverRequests[0].data.imp[0].video.w).to.equal(null);
1577
- expect(serverRequests[0].data.imp[0].video.h).to.equal(null);
1578
- expect(serverRequests[0].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.minDuration);
1579
- expect(serverRequests[0].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.maxDuration);
1580
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.protocols);
1581
- });
1582
-
1583
- it('should return a server request with one impression when given a valid ad unit with multiple player sizes', function () {
1584
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1585
- adUnit.mediaTypes.video.playerSize = [[350, 300], [400, 350]];
1586
-
1587
- const adUnits = [adUnit];
1588
-
1589
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1590
-
1591
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1592
-
1593
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1594
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1595
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1596
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1597
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1598
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1599
- expect(serverRequests[0].data.imp[0].video.startdelay).to.equal(null);
1600
- expect(serverRequests[0].data.imp[0].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][0]);
1601
- expect(serverRequests[0].data.imp[0].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][1]);
1602
- expect(serverRequests[0].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.minDuration);
1603
- expect(serverRequests[0].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.maxDuration);
1604
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.protocols);
1605
- });
1606
-
1607
- it('should return a server request with one impression when given a valid ad unit without minimum duration', function () {
1608
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1609
- adUnit.mediaTypes.video.minDuration = undefined;
1610
-
1611
- const adUnits = [adUnit];
1612
-
1613
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1614
-
1615
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1616
-
1617
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1618
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1619
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1620
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1621
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1622
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1623
- expect(serverRequests[0].data.imp[0].video.startdelay).to.equal(null);
1624
- expect(serverRequests[0].data.imp[0].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][0]);
1625
- expect(serverRequests[0].data.imp[0].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][1]);
1626
- expect(serverRequests[0].data.imp[0].video.minduration).to.equal(null);
1627
- expect(serverRequests[0].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.maxDuration);
1628
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.protocols);
1629
- });
1630
-
1631
- it('should return a server request with one impression when given a valid ad unit without maximum duration', function () {
1632
- const adUnit = utils.deepClone(examples.adUnit_video_outstream);
1633
- adUnit.mediaTypes.video.maxDuration = undefined;
1634
-
1635
- const adUnits = [adUnit];
1636
-
1637
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1638
-
1639
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1640
-
1641
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1642
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1643
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1644
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1645
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1646
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1647
- expect(serverRequests[0].data.imp[0].video.startdelay).to.equal(null);
1648
- expect(serverRequests[0].data.imp[0].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][0]);
1649
- expect(serverRequests[0].data.imp[0].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][1]);
1650
- expect(serverRequests[0].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.minDuration);
1651
- expect(serverRequests[0].data.imp[0].video.maxduration).to.equal(null);
1652
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.protocols);
1653
- });
1654
-
1655
- it('should return a server request with two impressions when given two valid ad units with different impression identifiers', function () {
1656
- const adUnit_1 = utils.deepClone(examples.adUnit_video_outstream);
1657
- adUnit_1.bidId = 'bid_id_1';
1658
-
1659
- const adUnit_2 = utils.deepClone(examples.adUnit_video_outstream);
1660
- adUnit_2.bidId = 'bid_id_2';
1661
-
1662
- const adUnits = [adUnit_1, adUnit_2];
1663
-
1664
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1665
-
1666
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1667
-
1668
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1669
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(2);
1670
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1671
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1672
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1673
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1674
- expect(serverRequests[0].data.imp[0].video.startdelay).to.equal(null);
1675
- expect(serverRequests[0].data.imp[0].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][0]);
1676
- expect(serverRequests[0].data.imp[0].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][1]);
1677
- expect(serverRequests[0].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.minDuration);
1678
- expect(serverRequests[0].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.maxDuration);
1679
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.protocols);
1680
- expect(serverRequests[0].data.imp[1]).to.exist.and.to.be.an('object');
1681
- expect(serverRequests[0].data.imp[1].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[1].bidId}_0`);
1682
- expect(serverRequests[0].data.imp[1].video).to.exist.and.to.be.an('object');
1683
- expect(serverRequests[0].data.imp[1].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1684
- expect(serverRequests[0].data.imp[1].video.startdelay).to.equal(null);
1685
- expect(serverRequests[0].data.imp[1].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.playerSize[0][0]);
1686
- expect(serverRequests[0].data.imp[1].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.playerSize[0][1]);
1687
- expect(serverRequests[0].data.imp[1].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.minDuration);
1688
- expect(serverRequests[0].data.imp[1].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.maxDuration);
1689
- expect(serverRequests[0].data.imp[1].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[1].mediaTypes.video.protocols);
1690
- });
1691
-
1692
- it('should return a server request with one overridden impression when given two valid ad units with identical identifiers', function () {
1693
- const adUnit_1 = utils.deepClone(examples.adUnit_video_outstream);
1694
- adUnit_1.mediaTypes.video.minDuration = 10;
1695
-
1696
- const adUnit_2 = utils.deepClone(examples.adUnit_video_outstream);
1697
- adUnit_2.mediaTypes.video.minDuration = 15;
1698
-
1699
- const adUnits = [adUnit_1, adUnit_2];
1700
-
1701
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1702
-
1703
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1704
-
1705
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1706
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1707
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1708
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[1].bidId}_0`);
1709
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1710
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1711
- expect(serverRequests[0].data.imp[0].video.startdelay).to.equal(null);
1712
- expect(serverRequests[0].data.imp[0].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.playerSize[0][0]);
1713
- expect(serverRequests[0].data.imp[0].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.playerSize[0][1]);
1714
- expect(serverRequests[0].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.minDuration);
1715
- expect(serverRequests[0].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.maxDuration);
1716
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[1].mediaTypes.video.protocols);
1717
- });
1718
-
1719
- it('should return two server requests with one impression when given two valid ad units with different bid request identifiers', function () {
1720
- const adUnit_1 = utils.deepClone(examples.adUnit_video_outstream);
1721
- adUnit_1.bidderRequestId = 'bidder_request_id_1';
1722
-
1723
- const adUnit_2 = utils.deepClone(examples.adUnit_video_outstream);
1724
- adUnit_2.bidderRequestId = 'bidder_request_id_2';
1725
-
1726
- const adUnits = [adUnit_1, adUnit_2];
1727
-
1728
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1729
-
1730
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(2);
1731
-
1732
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1733
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1734
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1735
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1736
- expect(serverRequests[0].data.imp[0].video).to.exist.and.to.be.an('object');
1737
- expect(serverRequests[0].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1738
- expect(serverRequests[0].data.imp[0].video.startdelay).to.equal(null);
1739
- expect(serverRequests[0].data.imp[0].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][0]);
1740
- expect(serverRequests[0].data.imp[0].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.playerSize[0][1]);
1741
- expect(serverRequests[0].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.minDuration);
1742
- expect(serverRequests[0].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[0].mediaTypes.video.maxDuration);
1743
- expect(serverRequests[0].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.protocols);
1744
- expect(serverRequests[1].data).to.exist.and.to.be.an('object');
1745
- expect(serverRequests[1].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1746
- expect(serverRequests[1].data.imp[0]).to.exist.and.to.be.an('object');
1747
- expect(serverRequests[1].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[1].bidId}_0`);
1748
- expect(serverRequests[1].data.imp[0].video).to.exist.and.to.be.an('object');
1749
- expect(serverRequests[1].data.imp[0].video.mimes).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[0].mediaTypes.video.mimes);
1750
- expect(serverRequests[1].data.imp[0].video.startdelay).to.equal(null);
1751
- expect(serverRequests[1].data.imp[0].video.w).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.playerSize[0][0]);
1752
- expect(serverRequests[1].data.imp[0].video.h).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.playerSize[0][1]);
1753
- expect(serverRequests[1].data.imp[0].video.minduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.minDuration);
1754
- expect(serverRequests[1].data.imp[0].video.maxduration).to.exist.and.to.be.a('number').and.to.equal(adUnits[1].mediaTypes.video.maxDuration);
1755
- expect(serverRequests[1].data.imp[0].video.protocols).to.exist.and.to.be.an('array').and.to.deep.equal(adUnits[1].mediaTypes.video.protocols);
1756
- });
1757
- });
1758
-
1759
- describe('Native', function () {
1760
- it('should return a server request with one impression when given a valid ad unit', function () {
1761
- const adUnits = [examples.adUnit_native];
1762
-
1763
- const serverRequests = spec.buildRequests(adUnits, examples.adUnit_native);
1764
-
1765
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1766
-
1767
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1768
- expect(serverRequests[0].data.imp).to.exist.and.to.be.an('array').and.to.have.lengthOf(1);
1769
- expect(serverRequests[0].data.imp[0]).to.exist.and.to.be.an('object');
1770
- expect(serverRequests[0].data.imp[0].id).to.exist.and.to.be.a('string').and.to.equal(`${adUnits[0].bidId}_0`);
1771
- expect(serverRequests[0].data.imp[0].native).to.exist.and.to.be.an('object');
1772
- expect(serverRequests[0].data.imp[0].native.request).to.exist.and.to.be.a('string').and.to.equal(JSON.stringify(examples.serverRequest_native.data.imp[0].native.request))
1773
- });
1774
- });
1775
- });
1776
-
1777
- describe('Site', function () {
1778
- it('should return a server request with site information when given a valid ad unit and a valid ad unit context', function () {
1779
- const adUnits = [examples.adUnit_banner];
1780
-
1781
- const adUnitContext = examples.adUnitContext;
1782
-
1783
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1784
-
1785
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1786
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1787
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1788
- expect(serverRequests[0].data.site).to.exist.and.to.be.an('object');
1789
- expect(serverRequests[0].data.site.page).to.exist.and.to.be.an('string').and.to.equal(adUnitContext.refererInfo.referer);
1790
- expect(serverRequests[0].data.site.id).to.equal(undefined);
1791
- expect(serverRequests[0].data.site.domain).to.exist.and.to.be.an('string').and.to.equal('we-are-adot.com');
1792
- expect(serverRequests[0].data.site.name).to.exist.and.to.be.an('string').and.to.equal('we-are-adot.com');
1793
- });
1794
-
1795
- it('should return a server request without site information when not given an ad unit context', function () {
1796
- const adUnits = [examples.adUnit_banner];
1797
-
1798
- const adUnitContext = undefined;
1799
-
1800
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1801
-
1802
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1803
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1804
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1805
- expect(serverRequests[0].data.site).to.equal(null);
1806
- });
1807
-
1808
- it('should return a server request without site information when given an ad unit context without referer information', function () {
1809
- const adUnits = [examples.adUnit_banner];
1810
-
1811
- const adUnitContext = utils.deepClone(examples.adUnitContext);
1812
- adUnitContext.refererInfo = undefined;
1813
-
1814
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1815
-
1816
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1817
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1818
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1819
- expect(serverRequests[0].data.site).to.equal(null);
1820
- });
1821
-
1822
- it('should return a server request without site information when given an ad unit context with invalid referer information', function () {
1823
- const adUnits = [examples.adUnit_banner];
1824
-
1825
- const adUnitContext = utils.deepClone(examples.adUnitContext);
1826
- adUnitContext.refererInfo = 'bad_referer_information';
1827
-
1828
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1829
-
1830
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1831
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1832
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1833
- expect(serverRequests[0].data.site).to.equal(null);
1834
- });
1835
-
1836
- it('should return a server request without site information when given an ad unit context without referer', function () {
1837
- const adUnits = [examples.adUnit_banner];
1838
-
1839
- const adUnitContext = utils.deepClone(examples.adUnitContext);
1840
- adUnitContext.refererInfo.referer = undefined;
1841
-
1842
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1843
-
1844
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1845
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1846
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1847
- expect(serverRequests[0].data.site).to.equal(null);
1848
- });
1849
-
1850
- it('should return a server request without site information when given an ad unit context with an invalid referer', function () {
1851
- const adUnits = [examples.adUnit_banner];
1852
-
1853
- const adUnitContext = utils.deepClone(examples.adUnitContext);
1854
- adUnitContext.refererInfo.referer = {};
1855
-
1856
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1857
-
1858
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1859
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1860
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1861
- expect(serverRequests[0].data.site).to.equal(null);
1862
- });
1863
-
1864
- it('should return a server request without site information when given an ad unit context with a misformatted referer', function () {
1865
- const adUnits = [examples.adUnit_banner];
1866
-
1867
- const adUnitContext = utils.deepClone(examples.adUnitContext);
1868
- adUnitContext.refererInfo.referer = 'we-are-adot';
1869
-
1870
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1871
-
1872
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1873
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1874
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1875
- expect(serverRequests[0].data.site).to.equal(null);
1876
- });
1877
- });
1878
-
1879
- describe('Device', function () {
1880
- it('should return a server request with device information when given a valid ad unit and a valid ad unit context', function () {
1881
- const adUnits = [examples.adUnit_banner];
1882
-
1883
- const serverRequests = spec.buildRequests(adUnits, examples.adUnitContext);
1884
-
1885
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1886
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1887
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1888
- expect(serverRequests[0].data.device).to.exist.and.to.be.an('object');
1889
- expect(serverRequests[0].data.device.ua).to.exist.and.to.be.a('string');
1890
- expect(serverRequests[0].data.device.language).to.exist.and.to.be.a('string');
1891
- });
1892
- });
1893
-
1894
- describe('Regs', function () {
1895
- it('should return a server request with regulations information when given a valid ad unit and a valid ad unit context with GDPR applying', function () {
1896
- const adUnits = [examples.adUnit_banner];
1897
-
1898
- const adUnitContext = examples.adUnitContext;
1899
-
1900
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1901
-
1902
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1903
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1904
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1905
- expect(serverRequests[0].data.regs).to.exist.and.to.be.an('object');
1906
- expect(serverRequests[0].data.regs.ext).to.exist.and.to.be.an('object');
1907
- expect(serverRequests[0].data.regs.ext.gdpr).to.exist.and.to.be.a('boolean').and.to.equal(adUnitContext.gdprConsent.gdprApplies);
1908
- });
1909
-
1910
- it('should return a server request with regulations information when given a valid ad unit and a valid ad unit context with GDPR not applying', function () {
1911
- const adUnits = [examples.adUnit_banner];
1912
-
1913
- const adUnitContext = utils.deepClone(examples.adUnitContext);
1914
- adUnitContext.gdprConsent.gdprApplies = false;
1915
-
1916
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1917
-
1918
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1919
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1920
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1921
- expect(serverRequests[0].data.regs).to.exist.and.to.be.an('object');
1922
- expect(serverRequests[0].data.regs.ext).to.exist.and.to.be.an('object');
1923
- expect(serverRequests[0].data.regs.ext.gdpr).to.exist.and.to.be.a('boolean').and.to.equal(adUnitContext.gdprConsent.gdprApplies);
1924
- });
1925
-
1926
- it('should return a server request without regulations information when not given an ad unit context', function () {
1927
- const adUnits = [examples.adUnit_banner];
1928
-
1929
- const adUnitContext = undefined;
1930
-
1931
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1932
-
1933
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1934
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1935
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1936
- expect(serverRequests[0].data.regs).to.equal(null);
1937
- });
1938
-
1939
- it('should return a server request without regulations information when given an ad unit context without GDPR information', function () {
1940
- const adUnits = [examples.adUnit_banner];
1941
-
1942
- const adUnitContext = utils.deepClone(examples.adUnitContext);
1943
- adUnitContext.gdprConsent = undefined;
1944
-
1945
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1946
-
1947
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1948
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1949
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1950
- expect(serverRequests[0].data.regs).to.equal(null);
1951
- });
1952
-
1953
- it('should return a server request without regulations information when given an ad unit context with invalid GDPR information', function () {
1954
- const adUnits = [examples.adUnit_banner];
1955
-
1956
- const adUnitContext = utils.deepClone(examples.adUnitContext);
1957
- adUnitContext.gdprConsent = 'bad_gdpr_consent';
1958
-
1959
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1960
-
1961
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1962
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1963
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1964
- expect(serverRequests[0].data.regs).to.equal(null);
1965
- });
1966
-
1967
- it('should return a server request without regulations information when given an ad unit context with invalid GDPR application information', function () {
1968
- const adUnits = [examples.adUnit_banner];
1969
-
1970
- const adUnitContext = utils.deepClone(examples.adUnitContext);
1971
- adUnitContext.gdprConsent.gdprApplies = 'bad_gdpr_applies';
1972
-
1973
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1974
-
1975
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1976
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1977
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1978
- expect(serverRequests[0].data.regs).to.equal(null);
1979
- });
1980
- });
1981
-
1982
- describe('User', function () {
1983
- it('should return a server request with user information when given a valid ad unit and a valid ad unit context', function () {
1984
- const adUnits = [examples.adUnit_banner];
1985
-
1986
- const adUnitContext = examples.adUnitContext;
1987
-
1988
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
1989
-
1990
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
1991
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
1992
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
1993
- expect(serverRequests[0].data.user).to.exist.and.to.be.an('object');
1994
- expect(serverRequests[0].data.user.ext).to.exist.and.to.be.an('object');
1995
- expect(serverRequests[0].data.user.ext.consent).to.exist.and.to.be.a('string').and.to.equal(adUnitContext.gdprConsent.consentString);
1996
- });
1997
-
1998
- it('should return a server request without user information when not given an ad unit context', function () {
1999
- const adUnits = [examples.adUnit_banner];
2000
-
2001
- const adUnitContext = undefined;
2002
-
2003
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
2004
-
2005
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
2006
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
2007
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
2008
- expect(serverRequests[0].data.user).to.equal(null);
2009
- });
2010
-
2011
- it('should return a server request without user information when given an ad unit context without GDPR information', function () {
2012
- const adUnits = [examples.adUnit_banner];
2013
-
2014
- const adUnitContext = utils.deepClone(examples.adUnitContext);
2015
- adUnitContext.gdprConsent = undefined;
2016
-
2017
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
2018
-
2019
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
2020
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
2021
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
2022
- expect(serverRequests[0].data.user).to.equal(null);
2023
- });
2024
-
2025
- it('should return a server request without user information when given an ad unit context with invalid GDPR information', function () {
2026
- const adUnits = [examples.adUnit_banner];
2027
-
2028
- const adUnitContext = utils.deepClone(examples.adUnitContext);
2029
- adUnitContext.gdprConsent = 'bad_gdpr_consent';
2030
-
2031
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
2032
-
2033
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
2034
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
2035
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
2036
- expect(serverRequests[0].data.user).to.equal(null);
2037
- });
2038
-
2039
- it('should return a server request without user information when given an ad unit context with an invalid consent string', function () {
2040
- const adUnits = [examples.adUnit_banner];
2041
-
2042
- const adUnitContext = utils.deepClone(examples.adUnitContext);
2043
- adUnitContext.gdprConsent.consentString = true;
2044
-
2045
- const serverRequests = spec.buildRequests(adUnits, adUnitContext);
2046
-
2047
- expect(serverRequests).to.be.an('array').and.to.have.lengthOf(1);
2048
- expect(serverRequests[0].data).to.exist.and.to.be.an('object');
2049
- expect(serverRequests[0].data.id).to.exist.and.to.be.an('string').and.to.equal(adUnits[0].bidderRequestId);
2050
- expect(serverRequests[0].data.user).to.equal(null);
2051
- });
2052
- });
2053
- });
2054
-
2055
- describe('interpretResponse', function () {
2056
- describe('General', function () {
2057
- it('should return an ad when given a valid server response with one bid with USD currency', function () {
2058
- const serverRequest = examples.serverRequest_banner;
2059
-
2060
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2061
- serverResponse.body.cur = 'USD';
2062
-
2063
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2064
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2065
-
2066
- expect(ads).to.be.an('array').and.to.have.length(1);
2067
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2068
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2069
- expect(ads[0].adUrl).to.equal(null);
2070
- expect(ads[0].vastXml).to.equal(null);
2071
- expect(ads[0].vastUrl).to.equal(null);
2072
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2073
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2074
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2075
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2076
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2077
- expect(ads[0].height).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].h);
2078
- expect(ads[0].width).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].w);
2079
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('banner');
2080
- expect(ads[0].renderer).to.equal(null);
2081
- });
2082
-
2083
- it('should return two ads when given a valid server response with two bids', function () {
2084
- const serverRequest = examples.serverRequest_banner_twoImps;
2085
-
2086
- const serverResponse = examples.serverResponse_banner_twoBids;
2087
-
2088
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2089
-
2090
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2091
- const adm2WithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[1].adm, serverResponse.body.seatbid[0].bid[1].price);
2092
-
2093
- expect(ads).to.be.an('array').and.to.have.length(2);
2094
-
2095
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2096
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2097
- expect(ads[0].adUrl).to.equal(null);
2098
- expect(ads[0].vastXml).to.equal(null);
2099
- expect(ads[0].vastUrl).to.equal(null);
2100
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2101
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2102
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2103
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2104
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2105
- expect(ads[0].height).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].h);
2106
- expect(ads[0].width).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].w);
2107
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('banner');
2108
- expect(ads[0].renderer).to.equal(null);
2109
- expect(ads[1].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[1].bidId);
2110
- expect(ads[1].ad).to.exist.and.to.be.a('string').and.to.have.string(adm2WithAuctionPriceReplaced);
2111
- expect(ads[1].adUrl).to.equal(null);
2112
- expect(ads[1].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[1].crid);
2113
- expect(ads[1].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[1].price);
2114
- expect(ads[1].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2115
- expect(ads[1].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2116
- expect(ads[1].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2117
- expect(ads[1].height).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[1].h);
2118
- expect(ads[1].width).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[1].w);
2119
- expect(ads[1].mediaType).to.exist.and.to.be.a('string').and.to.equal('banner');
2120
- expect(ads[1].renderer).to.equal(null);
2121
- });
2122
-
2123
- it('should return two ads when given a valid server response with two bids that contains adomain', function () {
2124
- const serverRequest = examples.serverRequest_banner_twoImps;
2125
-
2126
- const serverResponse = examples.serverResponse_banner_twoBids;
2127
-
2128
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2129
-
2130
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2131
- const adm2WithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[1].adm, serverResponse.body.seatbid[0].bid[1].price);
2132
-
2133
- expect(ads).to.be.an('array').and.to.have.length(2);
2134
-
2135
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2136
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2137
- expect(ads[0].adUrl).to.equal(null);
2138
- expect(ads[0].vastXml).to.equal(null);
2139
- expect(ads[0].vastUrl).to.equal(null);
2140
- expect(ads[0].meta.advertiserDomains[0]).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].adomain[0])
2141
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2142
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2143
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2144
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2145
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2146
- expect(ads[0].height).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].h);
2147
- expect(ads[0].width).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].w);
2148
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('banner');
2149
- expect(ads[0].renderer).to.equal(null);
2150
- expect(ads[1].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[1].bidId);
2151
- expect(ads[1].meta.advertiserDomains[0]).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[1].adomain[0])
2152
- expect(ads[1].ad).to.exist.and.to.be.a('string').and.to.have.string(adm2WithAuctionPriceReplaced);
2153
- expect(ads[1].adUrl).to.equal(null);
2154
- expect(ads[1].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[1].crid);
2155
- expect(ads[1].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[1].price);
2156
- expect(ads[1].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2157
- expect(ads[1].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2158
- expect(ads[1].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2159
- expect(ads[1].height).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[1].h);
2160
- expect(ads[1].width).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[1].w);
2161
- expect(ads[1].mediaType).to.exist.and.to.be.a('string').and.to.equal('banner');
2162
- expect(ads[1].renderer).to.equal(null);
2163
- });
2164
-
2165
- it('should return no ad when not given a server response', function () {
2166
- const ads = spec.interpretResponse(null);
2167
-
2168
- expect(ads).to.be.an('array').and.to.have.length(0);
2169
- });
2170
-
2171
- it('should return no ad when not given a server response body', function () {
2172
- const serverRequest = examples.serverRequest_banner;
2173
-
2174
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2175
- serverResponse.body = undefined;
2176
-
2177
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2178
-
2179
- expect(ads).to.be.an('array').and.to.have.length(0);
2180
- });
2181
-
2182
- it('should return no ad when given an invalid server response body', function () {
2183
- const serverRequest = examples.serverRequest_banner;
2184
-
2185
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2186
- serverResponse.body = 'invalid_body';
2187
-
2188
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2189
-
2190
- expect(ads).to.be.an('array').and.to.have.length(0);
2191
- });
2192
-
2193
- it('should return no ad when given a server response without seat bids', function () {
2194
- const serverRequest = examples.serverRequest_banner;
2195
-
2196
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2197
- serverResponse.body.seatbid = undefined;
2198
-
2199
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2200
-
2201
- expect(ads).to.be.an('array').and.to.have.length(0);
2202
- });
2203
-
2204
- it('should return no ad when given a server response with invalid seat bids', function () {
2205
- const serverRequest = examples.serverRequest_banner;
2206
-
2207
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2208
- serverResponse.body.seatbid = 'invalid_seat_bids';
2209
-
2210
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2211
-
2212
- expect(ads).to.be.an('array').and.to.have.length(0);
2213
- });
2214
-
2215
- it('should return no ad when given a server response with an empty seat bids array', function () {
2216
- const serverRequest = examples.serverRequest_banner;
2217
-
2218
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2219
- serverResponse.body.seatbid = [];
2220
-
2221
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2222
-
2223
- expect(ads).to.be.an('array').and.to.have.length(0);
2224
- });
2225
-
2226
- it('should return no ad when given a server response with an invalid seat bid', function () {
2227
- const serverRequest = examples.serverRequest_banner;
2228
-
2229
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2230
- serverResponse.body.seatbid[0].bid = 'invalid_bids';
2231
-
2232
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2233
-
2234
- expect(ads).to.be.an('array').and.to.have.length(0);
2235
- });
2236
-
2237
- it('should return no ad when given a server response with an empty bids array', function () {
2238
- const serverRequest = examples.serverRequest_banner;
2239
-
2240
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2241
- serverResponse.body.seatbid[0].bid = [];
2242
-
2243
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2244
-
2245
- expect(ads).to.be.an('array').and.to.have.length(0);
2246
- });
2247
-
2248
- it('should return no ad when given a server response with an invalid bid', function () {
2249
- const serverRequest = examples.serverRequest_banner;
2250
-
2251
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2252
- serverResponse.body.seatbid[0].bid = ['invalid_bid'];
2253
-
2254
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2255
-
2256
- expect(ads).to.be.an('array').and.to.have.length(0);
2257
- });
2258
-
2259
- it('should return no ad when given a server response with a bid without currency', function () {
2260
- const serverRequest = examples.serverRequest_banner;
2261
-
2262
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2263
- serverResponse.body.cur = undefined;
2264
-
2265
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2266
-
2267
- expect(ads).to.be.an('array').and.to.have.length(0);
2268
- });
2269
-
2270
- it('should return no ad when given a server response with a bid with an invalid currency', function () {
2271
- const serverRequest = examples.serverRequest_banner;
2272
-
2273
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2274
- serverResponse.body.cur = {};
2275
-
2276
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2277
-
2278
- expect(ads).to.be.an('array').and.to.have.length(0);
2279
- });
2280
-
2281
- it('should return no ad when given a server response with a bid without impression identifier', function () {
2282
- const serverRequest = examples.serverRequest_banner;
2283
-
2284
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2285
- serverResponse.body.seatbid[0].bid[0].impid = undefined;
2286
-
2287
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2288
-
2289
- expect(ads).to.be.an('array').and.to.have.length(0);
2290
- });
2291
-
2292
- it('should return no ad when given a server response with a bid with an invalid impression identifier', function () {
2293
- const serverRequest = examples.serverRequest_banner;
2294
-
2295
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2296
- serverResponse.body.seatbid[0].bid[0].impid = {};
2297
-
2298
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2299
-
2300
- expect(ads).to.be.an('array').and.to.have.length(0);
2301
- });
2302
-
2303
- it('should return no ad when given a server response with a bid without creative identifier', function () {
2304
- const serverRequest = examples.serverRequest_banner;
2305
-
2306
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2307
- serverResponse.body.seatbid[0].bid[0].crid = undefined;
2308
-
2309
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2310
-
2311
- expect(ads).to.be.an('array').and.to.have.length(0);
2312
- });
2313
-
2314
- it('should return no ad when given a server response with a bid with an invalid creative identifier', function () {
2315
- const serverRequest = examples.serverRequest_banner;
2316
-
2317
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2318
- serverResponse.body.seatbid[0].bid[0].crid = {};
2319
-
2320
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2321
-
2322
- expect(ads).to.be.an('array').and.to.have.length(0);
2323
- });
2324
-
2325
- it('should return no ad when given a server response with a bid without ad markup and ad serving URL', function () {
2326
- const serverRequest = examples.serverRequest_banner;
2327
-
2328
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2329
- serverResponse.body.seatbid[0].bid[0].adm = undefined;
2330
- serverResponse.body.seatbid[0].bid[0].nurl = undefined;
2331
-
2332
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2333
-
2334
- expect(ads).to.be.an('array').and.to.have.length(0);
2335
- });
2336
-
2337
- it('should return no ad when given a server response with a bid with an invalid ad markup', function () {
2338
- const serverRequest = examples.serverRequest_banner;
2339
-
2340
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2341
- serverResponse.body.seatbid[0].bid[0].adm = {};
2342
-
2343
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2344
-
2345
- expect(ads).to.be.an('array').and.to.have.length(0);
2346
- });
2347
-
2348
- it('should return no ad when given a server response with a bid with an ad markup without auction price macro', function () {
2349
- const serverRequest = examples.serverRequest_banner;
2350
-
2351
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2352
- serverResponse.body.seatbid[0].bid[0].adm = 'creative_data';
2353
-
2354
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2355
-
2356
- expect(ads).to.be.an('array').and.to.have.length(0);
2357
- });
2358
-
2359
- it('should return no ad when given a server response with a bid with an invalid ad serving URL', function () {
2360
- const serverRequest = examples.serverRequest_banner;
2361
-
2362
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2363
- serverResponse.body.seatbid[0].bid[0].nurl = {};
2364
-
2365
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2366
-
2367
- expect(ads).to.be.an('array').and.to.have.length(0);
2368
- });
2369
-
2370
- it('should return no ad when given a server response with a bid with an ad serving URL without auction price macro', function () {
2371
- const serverRequest = examples.serverRequest_banner;
2372
-
2373
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2374
- serverResponse.body.seatbid[0].bid[0].nurl = 'win_notice_url';
2375
-
2376
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2377
-
2378
- expect(ads).to.be.an('array').and.to.have.length(0);
2379
- });
2380
-
2381
- it('should return no ad when given a server response with a bid without bid price', function () {
2382
- const serverRequest = examples.serverRequest_banner;
2383
-
2384
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2385
- serverResponse.body.seatbid[0].bid[0].price = undefined;
2386
-
2387
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2388
-
2389
- expect(ads).to.be.an('array').and.to.have.length(0);
2390
- });
2391
-
2392
- it('should return no ad when given a server response with a bid with an invalid bid price', function () {
2393
- const serverRequest = examples.serverRequest_banner;
2394
-
2395
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2396
- serverResponse.body.seatbid[0].bid[0].price = {};
2397
-
2398
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2399
-
2400
- expect(ads).to.be.an('array').and.to.have.length(0);
2401
- });
2402
-
2403
- it('should return no ad when given a server response with a bid without extension', function () {
2404
- const serverRequest = examples.serverRequest_banner;
2405
-
2406
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2407
- serverResponse.body.seatbid[0].bid[0].ext = undefined;
2408
-
2409
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2410
-
2411
- expect(ads).to.be.an('array').and.to.have.length(0);
2412
- });
2413
-
2414
- it('should return no ad when given a server response with a bid with an invalid extension', function () {
2415
- const serverRequest = examples.serverRequest_banner;
2416
-
2417
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2418
- serverResponse.body.seatbid[0].bid[0].ext = 'bad_ext';
2419
-
2420
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2421
-
2422
- expect(ads).to.be.an('array').and.to.have.length(0);
2423
- });
2424
-
2425
- it('should return no ad when given a server response with a bid without adot extension', function () {
2426
- const serverRequest = examples.serverRequest_banner;
2427
-
2428
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2429
- serverResponse.body.seatbid[0].bid[0].ext.adot = undefined;
2430
-
2431
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2432
-
2433
- expect(ads).to.be.an('array').and.to.have.length(0);
2434
- });
2435
-
2436
- it('should return no ad when given a server response with a bid with an invalid adot extension', function () {
2437
- const serverRequest = examples.serverRequest_banner;
2438
-
2439
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2440
- serverResponse.body.seatbid[0].bid[0].ext.adot = 'bad_adot_ext';
2441
-
2442
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2443
-
2444
- expect(ads).to.be.an('array').and.to.have.length(0);
2445
- });
2446
-
2447
- it('should return no ad when given a server response with a bid without media type', function () {
2448
- const serverRequest = examples.serverRequest_banner;
2449
-
2450
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2451
- serverResponse.body.seatbid[0].bid[0].ext.adot.media_type = undefined;
2452
-
2453
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2454
-
2455
- expect(ads).to.be.an('array').and.to.have.length(0);
2456
- });
2457
-
2458
- it('should return no ad when given a server response with a bid with an invalid media type', function () {
2459
- const serverRequest = examples.serverRequest_banner;
2460
-
2461
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2462
- serverResponse.body.seatbid[0].bid[0].ext.adot.media_type = {};
2463
-
2464
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2465
-
2466
- expect(ads).to.be.an('array').and.to.have.length(0);
2467
- });
2468
-
2469
- it('should return no ad when given a server response with a bid with an unknown media type', function () {
2470
- const serverRequest = examples.serverRequest_banner;
2471
-
2472
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2473
- serverResponse.body.seatbid[0].bid[0].ext.adot.media_type = 'unknown_media_type';
2474
-
2475
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2476
-
2477
- expect(ads).to.be.an('array').and.to.have.length(0);
2478
- });
2479
-
2480
- it('should return no ad when given a valid server response and no server request', function () {
2481
- const serverRequest = undefined;
2482
-
2483
- const serverResponse = examples.serverResponse_banner;
2484
-
2485
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2486
-
2487
- expect(ads).to.be.an('array').and.to.have.length(0);
2488
- });
2489
-
2490
- it('should return no ad when given a valid server response and an invalid server request', function () {
2491
- const serverRequest = 'bad_server_request';
2492
-
2493
- const serverResponse = examples.serverResponse_banner;
2494
-
2495
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2496
-
2497
- expect(ads).to.be.an('array').and.to.have.length(0);
2498
- });
2499
-
2500
- it('should return no ad when given a valid server response and a server request without bid request', function () {
2501
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2502
- serverRequest.data = undefined;
2503
-
2504
- const serverResponse = examples.serverResponse_banner;
2505
-
2506
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2507
-
2508
- expect(ads).to.be.an('array').and.to.have.length(0);
2509
- });
2510
-
2511
- it('should return no ad when given a valid server response and a server request with an invalid bid request', function () {
2512
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2513
- serverRequest.data = 'bad_bid_request';
2514
-
2515
- const serverResponse = examples.serverResponse_banner;
2516
-
2517
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2518
-
2519
- expect(ads).to.be.an('array').and.to.have.length(0);
2520
- });
2521
-
2522
- it('should return no ad when given a valid server response and a server request without impression', function () {
2523
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2524
- serverRequest.data.imp = undefined;
2525
-
2526
- const serverResponse = examples.serverResponse_banner;
2527
-
2528
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2529
-
2530
- expect(ads).to.be.an('array').and.to.have.length(0);
2531
- });
2532
-
2533
- it('should return no ad when given a valid server response and a server request with an invalid impression field', function () {
2534
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2535
- serverRequest.data.imp = 'invalid_impressions';
2536
-
2537
- const serverResponse = examples.serverResponse_banner;
2538
-
2539
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2540
-
2541
- expect(ads).to.be.an('array').and.to.have.length(0);
2542
- });
2543
-
2544
- it('should return no ad when given a valid server response and a server request without matching impression', function () {
2545
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2546
- serverRequest.data.imp[0].id = 'unknown_imp_id';
2547
-
2548
- const serverResponse = examples.serverResponse_banner;
2549
-
2550
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2551
-
2552
- expect(ads).to.be.an('array').and.to.have.length(0);
2553
- });
2554
-
2555
- it('should return no ad when given a valid server response and a server request without internal data', function () {
2556
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2557
- serverRequest._adot_internal = undefined;
2558
-
2559
- const serverResponse = examples.serverResponse_banner;
2560
-
2561
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2562
-
2563
- expect(ads).to.be.an('array').and.to.have.length(0);
2564
- });
2565
-
2566
- it('should return no ad when given a valid server response and a server request with invalid internal data', function () {
2567
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2568
- serverRequest._adot_internal = 'bad_internal_data';
2569
-
2570
- const serverResponse = examples.serverResponse_banner;
2571
-
2572
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2573
-
2574
- expect(ads).to.be.an('array').and.to.have.length(0);
2575
- });
2576
-
2577
- it('should return no ad when given a valid server response and a server request without internal impression data', function () {
2578
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2579
- serverRequest._adot_internal.impressions = undefined;
2580
-
2581
- const serverResponse = examples.serverResponse_banner;
2582
-
2583
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2584
-
2585
- expect(ads).to.be.an('array').and.to.have.length(0);
2586
- });
2587
-
2588
- it('should return no ad when given a valid server response and a server request with invalid internal impression data', function () {
2589
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2590
- serverRequest._adot_internal.impressions = 'bad_internal_impression_data';
2591
-
2592
- const serverResponse = examples.serverResponse_banner;
2593
-
2594
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2595
-
2596
- expect(ads).to.be.an('array').and.to.have.length(0);
2597
- });
2598
-
2599
- it('should return no ad when given a valid server response and a server request without matching internal impression', function () {
2600
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2601
- serverRequest._adot_internal.impressions[0].impressionId = 'unknown_imp_id';
2602
-
2603
- const serverResponse = examples.serverResponse_banner;
2604
-
2605
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2606
-
2607
- expect(ads).to.be.an('array').and.to.have.length(0);
2608
- });
2609
-
2610
- it('should return no ad when given a valid server response and a server request without internal impression ad unit code', function () {
2611
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2612
- serverRequest._adot_internal.impressions[0].adUnitCode = undefined;
2613
-
2614
- const serverResponse = examples.serverResponse_banner;
2615
-
2616
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2617
-
2618
- expect(ads).to.be.an('array').and.to.have.length(0);
2619
- });
2620
-
2621
- it('should return no ad when given a valid server response and a server request with an invalid internal impression ad unit code', function () {
2622
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2623
- serverRequest._adot_internal.impressions[0].adUnitCode = {};
2624
-
2625
- const serverResponse = examples.serverResponse_banner;
2626
-
2627
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2628
-
2629
- expect(ads).to.be.an('array').and.to.have.length(0);
2630
- });
2631
- });
2632
-
2633
- describe('Banner', function () {
2634
- it('should return an ad when given a valid server response with one bid', function () {
2635
- const serverRequest = examples.serverRequest_banner;
2636
-
2637
- const serverResponse = examples.serverResponse_banner;
2638
-
2639
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2640
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2641
-
2642
- expect(ads).to.be.an('array').and.to.have.length(1);
2643
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2644
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2645
- expect(ads[0].adUrl).to.equal(null);
2646
- expect(ads[0].vastXml).to.equal(null);
2647
- expect(ads[0].vastUrl).to.equal(null);
2648
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2649
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2650
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2651
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2652
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2653
- expect(ads[0].height).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].h);
2654
- expect(ads[0].width).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].w);
2655
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('banner');
2656
- expect(ads[0].renderer).to.equal(null);
2657
- });
2658
-
2659
- it('should return an ad when given a valid server response with one bid without a win notice URL', function () {
2660
- const serverRequest = examples.serverRequest_banner;
2661
-
2662
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2663
- serverResponse.body.seatbid[0].bid[0].nurl = undefined;
2664
-
2665
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2666
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2667
-
2668
- expect(ads).to.be.an('array').and.to.have.length(1);
2669
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2670
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.equal(admWithAuctionPriceReplaced);
2671
- expect(ads[0].adUrl).to.equal(null);
2672
- expect(ads[0].vastXml).to.equal(null);
2673
- expect(ads[0].vastUrl).to.equal(null);
2674
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2675
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2676
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2677
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2678
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2679
- expect(ads[0].height).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].h);
2680
- expect(ads[0].width).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].w);
2681
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('banner');
2682
- expect(ads[0].renderer).to.equal(null);
2683
- });
2684
-
2685
- it('should return an ad when given a valid server response with one bid using an ad serving URL', function () {
2686
- const serverRequest = examples.serverRequest_banner;
2687
-
2688
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2689
- serverResponse.body.seatbid[0].bid[0].adm = undefined;
2690
-
2691
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2692
- const nurlWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].nurl, serverResponse.body.seatbid[0].bid[0].price);
2693
-
2694
- expect(ads).to.be.an('array').and.to.have.length(1);
2695
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2696
- expect(ads[0].ad).to.equal(null);
2697
- expect(ads[0].adUrl).to.exist.and.to.be.a('string').and.to.equal(nurlWithAuctionPriceReplaced);
2698
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2699
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2700
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2701
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2702
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2703
- expect(ads[0].height).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].h);
2704
- expect(ads[0].width).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].w);
2705
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('banner');
2706
- expect(ads[0].renderer).to.equal(null);
2707
- });
2708
-
2709
- it('should return no ad when given a server response with a bid without height', function () {
2710
- const serverRequest = examples.serverRequest_banner;
2711
-
2712
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2713
- serverResponse.body.seatbid[0].bid[0].h = undefined;
2714
-
2715
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2716
-
2717
- expect(ads).to.be.an('array').and.to.have.length(0);
2718
- });
2719
-
2720
- it('should return no ad when given a server response with a bid with an invalid height', function () {
2721
- const serverRequest = examples.serverRequest_banner;
2722
-
2723
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2724
- serverResponse.body.seatbid[0].bid[0].h = {};
2725
-
2726
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2727
-
2728
- expect(ads).to.be.an('array').and.to.have.length(0);
2729
- });
2730
-
2731
- it('should return no ad when given a server response with a bid without width', function () {
2732
- const serverRequest = examples.serverRequest_banner;
2733
-
2734
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2735
- serverResponse.body.seatbid[0].bid[0].w = undefined;
2736
-
2737
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2738
-
2739
- expect(ads).to.be.an('array').and.to.have.length(0);
2740
- });
2741
-
2742
- it('should return no ad when given a server response with a bid with an invalid width', function () {
2743
- const serverRequest = examples.serverRequest_banner;
2744
-
2745
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2746
- serverResponse.body.seatbid[0].bid[0].w = {};
2747
-
2748
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2749
-
2750
- expect(ads).to.be.an('array').and.to.have.length(0);
2751
- });
2752
-
2753
- it('should return no ad when given a valid server response and a server request without banner impression', function () {
2754
- const serverRequest = utils.deepClone(examples.serverRequest_banner);
2755
- serverRequest.data.imp[0].banner = undefined;
2756
-
2757
- const serverResponse = utils.deepClone(examples.serverResponse_banner);
2758
-
2759
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2760
-
2761
- expect(ads).to.be.an('array').and.to.have.length(0);
2762
- });
2763
- });
2764
-
2765
- describe('Video', function () {
2766
- it('should return an ad when given a valid server response with one bid on an instream impression', function () {
2767
- const serverRequest = examples.serverRequest_video_instream;
2768
-
2769
- const serverResponse = examples.serverResponse_video_instream;
2770
-
2771
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2772
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2773
-
2774
- expect(ads).to.be.an('array').and.to.have.length(1);
2775
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2776
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2777
- expect(ads[0].adUrl).to.equal(null);
2778
- expect(ads[0].vastXml).to.equal(admWithAuctionPriceReplaced);
2779
- expect(ads[0].vastUrl).to.equal(null);
2780
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2781
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2782
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2783
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2784
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2785
- expect(ads[0].height).to.equal(serverRequest.data.imp[0].video.h);
2786
- expect(ads[0].width).to.equal(serverRequest.data.imp[0].video.w);
2787
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('video');
2788
- expect(ads[0].renderer).to.equal(null);
2789
- });
2790
-
2791
- it('should return an ad when given a valid server response with one bid on an outstream impression', function () {
2792
- const serverRequest = examples.serverRequest_video_outstream;
2793
-
2794
- const serverResponse = examples.serverResponse_video_outstream;
2795
-
2796
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2797
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2798
-
2799
- expect(ads).to.be.an('array').and.to.have.length(1);
2800
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2801
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2802
- expect(ads[0].adUrl).to.equal(null);
2803
- expect(ads[0].vastXml).to.equal(admWithAuctionPriceReplaced);
2804
- expect(ads[0].vastUrl).to.equal(null);
2805
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2806
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2807
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2808
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2809
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2810
- expect(ads[0].height).to.equal(serverRequest.data.imp[0].video.h);
2811
- expect(ads[0].width).to.equal(serverRequest.data.imp[0].video.w);
2812
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('video');
2813
- expect(ads[0].renderer).to.be.an('object');
2814
- });
2815
-
2816
- it('should return two ads when given a valid server response with two bids on both instream and outstream impressions', function () {
2817
- const serverRequest = examples.serverRequest_video_instream_outstream;
2818
-
2819
- const serverResponse = examples.serverResponse_video_instream_outstream;
2820
-
2821
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2822
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2823
- const adm2WithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[1].adm, serverResponse.body.seatbid[0].bid[1].price);
2824
-
2825
- expect(ads).to.be.an('array').and.to.have.length(2);
2826
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2827
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2828
- expect(ads[0].adUrl).to.equal(null);
2829
- expect(ads[0].vastXml).to.equal(admWithAuctionPriceReplaced);
2830
- expect(ads[0].vastUrl).to.equal(null);
2831
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2832
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2833
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2834
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2835
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2836
- expect(ads[0].height).to.equal(serverRequest.data.imp[0].video.h);
2837
- expect(ads[0].width).to.equal(serverRequest.data.imp[0].video.w);
2838
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('video');
2839
- expect(ads[0].renderer).to.equal(null);
2840
- expect(ads[1].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[1].bidId);
2841
- expect(ads[1].ad).to.exist.and.to.be.a('string').and.to.have.string(adm2WithAuctionPriceReplaced);
2842
- expect(ads[1].adUrl).to.equal(null);
2843
- expect(ads[1].vastXml).to.equal(adm2WithAuctionPriceReplaced);
2844
- expect(ads[1].vastUrl).to.equal(null);
2845
- expect(ads[1].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[1].crid);
2846
- expect(ads[1].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[1].price);
2847
- expect(ads[1].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2848
- expect(ads[1].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2849
- expect(ads[1].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2850
- expect(ads[0].height).to.equal(serverRequest.data.imp[1].video.h);
2851
- expect(ads[0].width).to.equal(serverRequest.data.imp[1].video.w);
2852
- expect(ads[1].mediaType).to.exist.and.to.be.a('string').and.to.equal('video');
2853
- expect(ads[1].renderer).to.be.an('object');
2854
- });
2855
-
2856
- it('should return an ad when given a valid server response with one bid without a win notice URL', function () {
2857
- const serverRequest = examples.serverRequest_video_instream;
2858
-
2859
- const serverResponse = utils.deepClone(examples.serverResponse_video_instream);
2860
- serverResponse.body.seatbid[0].bid[0].nurl = undefined;
2861
-
2862
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2863
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2864
-
2865
- expect(ads).to.be.an('array').and.to.have.length(1);
2866
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2867
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2868
- expect(ads[0].adUrl).to.equal(null);
2869
- expect(ads[0].vastXml).to.equal(admWithAuctionPriceReplaced);
2870
- expect(ads[0].vastUrl).to.equal(null);
2871
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2872
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2873
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2874
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2875
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2876
- expect(ads[0].height).to.equal(serverRequest.data.imp[0].video.h);
2877
- expect(ads[0].width).to.equal(serverRequest.data.imp[0].video.w);
2878
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('video');
2879
- expect(ads[0].renderer).to.equal(null);
2880
- });
2881
-
2882
- it('should return an ad when given a valid server response with one bid using an ad serving URL', function () {
2883
- const serverRequest = examples.serverRequest_video_instream;
2884
-
2885
- const serverResponse = utils.deepClone(examples.serverResponse_video_instream);
2886
- serverResponse.body.seatbid[0].bid[0].adm = undefined;
2887
-
2888
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2889
- const nurlWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].nurl, serverResponse.body.seatbid[0].bid[0].price);
2890
-
2891
- expect(ads).to.be.an('array').and.to.have.length(1);
2892
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2893
- expect(ads[0].ad).to.equal(null);
2894
- expect(ads[0].adUrl).to.exist.and.to.be.a('string').and.to.have.string(nurlWithAuctionPriceReplaced);
2895
- expect(ads[0].vastXml).to.equal(null);
2896
- expect(ads[0].vastUrl).to.equal(nurlWithAuctionPriceReplaced);
2897
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2898
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2899
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2900
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2901
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2902
- expect(ads[0].height).to.equal(serverRequest.data.imp[0].video.h);
2903
- expect(ads[0].width).to.equal(serverRequest.data.imp[0].video.w);
2904
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('video');
2905
- expect(ads[0].renderer).to.equal(null);
2906
- });
2907
-
2908
- it('should return an ad when given a valid server response with a bid with a video height', function () {
2909
- const serverRequest = examples.serverRequest_video_instream;
2910
-
2911
- const serverResponse = utils.deepClone(examples.serverResponse_video_instream);
2912
- serverResponse.body.seatbid[0].bid[0].h = 500;
2913
-
2914
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2915
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2916
-
2917
- expect(ads).to.be.an('array').and.to.have.length(1);
2918
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2919
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2920
- expect(ads[0].adUrl).to.equal(null);
2921
- expect(ads[0].vastXml).to.equal(admWithAuctionPriceReplaced);
2922
- expect(ads[0].vastUrl).to.equal(null);
2923
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2924
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2925
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2926
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2927
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2928
- expect(ads[0].height).to.equal(serverRequest.data.imp[0].video.h);
2929
- expect(ads[0].width).to.equal(serverRequest.data.imp[0].video.w);
2930
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('video');
2931
- expect(ads[0].renderer).to.equal(null);
2932
- });
2933
-
2934
- it('should return an ad when given a valid server response with a bid with a video width', function () {
2935
- const serverRequest = examples.serverRequest_video_instream;
2936
-
2937
- const serverResponse = utils.deepClone(examples.serverResponse_video_instream);
2938
- serverResponse.body.seatbid[0].bid[0].w = 500;
2939
-
2940
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2941
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2942
-
2943
- expect(ads).to.be.an('array').and.to.have.length(1);
2944
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2945
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2946
- expect(ads[0].adUrl).to.equal(null);
2947
- expect(ads[0].vastXml).to.equal(admWithAuctionPriceReplaced);
2948
- expect(ads[0].vastUrl).to.equal(null);
2949
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2950
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2951
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2952
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2953
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2954
- expect(ads[0].height).to.equal(serverRequest.data.imp[0].video.h);
2955
- expect(ads[0].width).to.equal(serverRequest.data.imp[0].video.w);
2956
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('video');
2957
- expect(ads[0].renderer).to.equal(null);
2958
- });
2959
-
2960
- it('should return an ad when given a valid server response with a bid with a video width and height', function () {
2961
- const serverRequest = examples.serverRequest_video_instream;
2962
-
2963
- const serverResponse = utils.deepClone(examples.serverResponse_video_instream);
2964
- serverResponse.body.seatbid[0].bid[0].w = 500;
2965
- serverResponse.body.seatbid[0].bid[0].h = 400;
2966
-
2967
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2968
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2969
-
2970
- expect(ads).to.be.an('array').and.to.have.length(1);
2971
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2972
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2973
- expect(ads[0].adUrl).to.equal(null);
2974
- expect(ads[0].vastXml).to.equal(admWithAuctionPriceReplaced);
2975
- expect(ads[0].vastUrl).to.equal(null);
2976
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
2977
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
2978
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
2979
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
2980
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
2981
- expect(ads[0].height).to.equal(serverResponse.body.seatbid[0].bid[0].h);
2982
- expect(ads[0].width).to.equal(serverResponse.body.seatbid[0].bid[0].w);
2983
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('video');
2984
- expect(ads[0].renderer).to.equal(null);
2985
- });
2986
-
2987
- it('should return an ad when given a valid server response and server request with a video impression without width', function () {
2988
- const serverRequest = utils.deepClone(examples.serverRequest_video_instream);
2989
- serverRequest.data.imp[0].video.w = null;
2990
-
2991
- const serverResponse = utils.deepClone(examples.serverResponse_video_instream);
2992
-
2993
- const ads = spec.interpretResponse(serverResponse, serverRequest);
2994
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
2995
-
2996
- expect(ads).to.be.an('array').and.to.have.length(1);
2997
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
2998
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
2999
- expect(ads[0].adUrl).to.equal(null);
3000
- expect(ads[0].vastXml).to.equal(admWithAuctionPriceReplaced);
3001
- expect(ads[0].vastUrl).to.equal(null);
3002
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
3003
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
3004
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
3005
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
3006
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
3007
- expect(ads[0].height).to.equal(null);
3008
- expect(ads[0].width).to.equal(null);
3009
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('video');
3010
- expect(ads[0].renderer).to.equal(null);
3011
- });
3012
-
3013
- it('should return an ad when given a valid server response and server request with a video impression without height', function () {
3014
- const serverRequest = utils.deepClone(examples.serverRequest_video_instream);
3015
- serverRequest.data.imp[0].video.h = null;
3016
-
3017
- const serverResponse = utils.deepClone(examples.serverResponse_video_instream);
3018
-
3019
- const ads = spec.interpretResponse(serverResponse, serverRequest);
3020
- const admWithAuctionPriceReplaced = utils.replaceAuctionPrice(serverResponse.body.seatbid[0].bid[0].adm, serverResponse.body.seatbid[0].bid[0].price);
3021
-
3022
- expect(ads).to.be.an('array').and.to.have.length(1);
3023
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
3024
- expect(ads[0].ad).to.exist.and.to.be.a('string').and.to.have.string(admWithAuctionPriceReplaced);
3025
- expect(ads[0].adUrl).to.equal(null);
3026
- expect(ads[0].vastXml).to.equal(admWithAuctionPriceReplaced);
3027
- expect(ads[0].vastUrl).to.equal(null);
3028
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
3029
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
3030
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
3031
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
3032
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
3033
- expect(ads[0].height).to.equal(null);
3034
- expect(ads[0].width).to.equal(null);
3035
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('video');
3036
- expect(ads[0].renderer).to.equal(null);
3037
- });
3038
-
3039
- it('should return no ad when given a server response with a bid with an invalid height', function () {
3040
- const serverRequest = examples.serverRequest_video_instream;
3041
-
3042
- const serverResponse = utils.deepClone(examples.serverResponse_video_instream);
3043
- serverResponse.body.seatbid[0].bid[0].h = {};
3044
-
3045
- const ads = spec.interpretResponse(serverResponse, serverRequest);
3046
-
3047
- expect(ads).to.be.an('array').and.to.have.length(0);
3048
- });
3049
-
3050
- it('should return no ad when given a server response with a bid with an invalid width', function () {
3051
- const serverRequest = examples.serverRequest_video_instream;
3052
-
3053
- const serverResponse = utils.deepClone(examples.serverResponse_video_instream);
3054
- serverResponse.body.seatbid[0].bid[0].w = {};
3055
-
3056
- const ads = spec.interpretResponse(serverResponse, serverRequest);
3057
-
3058
- expect(ads).to.be.an('array').and.to.have.length(0);
3059
- });
3060
-
3061
- it('should return no ad when given a valid server response and a server request without video impression', function () {
3062
- const serverRequest = utils.deepClone(examples.serverRequest_video_instream);
3063
- serverRequest.data.imp[0].video = undefined;
3064
-
3065
- const serverResponse = utils.deepClone(examples.serverResponse_video_instream);
3066
-
3067
- const ads = spec.interpretResponse(serverResponse, serverRequest);
3068
-
3069
- expect(ads).to.be.an('array').and.to.have.length(0);
3070
- });
3071
-
3072
- describe('Outstream renderer', function () {
3073
- function spyAdRenderingQueue(ad) {
3074
- const spy = sinon.spy(ad.renderer, 'push');
3075
-
3076
- this.sinonSpies.push(spy);
3077
- }
3078
-
3079
- function executeAdRenderer(ad, onRendererExecution, done) {
3080
- executeRenderer(ad.renderer, ad);
3081
-
3082
- setTimeout(() => {
3083
- try {
3084
- onRendererExecution();
3085
- } catch (err) {
3086
- done(err);
3087
- }
3088
-
3089
- done()
3090
- }, 100);
3091
- }
3092
-
3093
- before('Bind helper functions to the Mocha context', function () {
3094
- this.spyAdRenderingQueue = spyAdRenderingQueue.bind(this);
3095
-
3096
- window.VASTPlayer = function VASTPlayer() {};
3097
- window.VASTPlayer.prototype.loadXml = function loadXml() {
3098
- return new Promise((resolve, reject) => resolve())
3099
- };
3100
- window.VASTPlayer.prototype.load = function load() {
3101
- return new Promise((resolve, reject) => resolve())
3102
- };
3103
- window.VASTPlayer.prototype.on = function on(event, callback) {};
3104
- window.VASTPlayer.prototype.startAd = function startAd() {};
3105
- });
3106
-
3107
- beforeEach('Initialize the Sinon spies list', function () {
3108
- this.sinonSpies = [];
3109
- });
3110
-
3111
- afterEach('Clear the registered Sinon spies', function () {
3112
- this.sinonSpies.forEach(spy => spy.restore());
3113
- });
3114
-
3115
- after('clear data', () => {
3116
- window.VASTPlayer = null;
3117
- });
3118
-
3119
- it('should return an ad with valid renderer', function () {
3120
- const serverRequest = examples.serverRequest_video_outstream;
3121
- const serverResponse = examples.serverResponse_video_outstream;
3122
-
3123
- const ads = spec.interpretResponse(serverResponse, serverRequest);
3124
-
3125
- expect(ads).to.be.an('array').and.to.have.length(1);
3126
- expect(ads[0].renderer).to.be.an('object');
3127
- });
3128
- });
3129
- });
3130
-
3131
- describe('Native', function () {
3132
- it('should return an ad when given a valid server response with one bid', function () {
3133
- const serverRequest = examples.serverRequest_native;
3134
- const serverResponse = examples.serverResponse_native;
3135
- const native = JSON.parse(serverResponse.body.seatbid[0].bid[0].adm).native;
3136
- const {link, assets} = native;
3137
- const ads = spec.interpretResponse(serverResponse, serverRequest);
3138
-
3139
- expect(ads).to.be.an('array').and.to.have.length(1);
3140
- expect(ads[0].requestId).to.exist.and.to.be.a('string').and.to.equal(serverRequest._adot_internal.impressions[0].bidId);
3141
- expect(ads[0].creativeId).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.seatbid[0].bid[0].crid);
3142
- expect(ads[0].cpm).to.exist.and.to.be.a('number').and.to.equal(serverResponse.body.seatbid[0].bid[0].price);
3143
- expect(ads[0].currency).to.exist.and.to.be.a('string').and.to.equal(serverResponse.body.cur);
3144
- expect(ads[0].netRevenue).to.exist.and.to.be.a('boolean').and.to.equal(true);
3145
- expect(ads[0].ttl).to.exist.and.to.be.a('number').and.to.equal(10);
3146
- expect(ads[0].mediaType).to.exist.and.to.be.a('string').and.to.equal('native');
3147
- expect(ads[0].native).to.exist.and.to.be.an('object');
3148
- expect(Object.keys(ads[0].native)).to.have.length(10);
3149
- expect(ads[0].native.title).to.equal(assets[0].title.text);
3150
- expect(ads[0].native.icon.url).to.equal(assets[1].img.url);
3151
- expect(ads[0].native.icon.width).to.equal(assets[1].img.w);
3152
- expect(ads[0].native.icon.height).to.equal(assets[1].img.h);
3153
- expect(ads[0].native.image.url).to.equal(assets[2].img.url);
3154
- expect(ads[0].native.image.width).to.equal(assets[2].img.w);
3155
- expect(ads[0].native.image.height).to.equal(assets[2].img.h);
3156
- expect(ads[0].native.sponsoredBy).to.equal(assets[3].data.value);
3157
- expect(ads[0].native.body).to.equal(assets[4].data.value);
3158
- expect(ads[0].native.cta).to.equal(assets[5].data.value);
3159
- expect(ads[0].native.clickUrl).to.equal(link.url);
3160
- });
3161
- });
299
+ describe('getFloor', function () {
300
+ it('should return 0 if getFloor is not a function', function () {
301
+ const floor = spec.getFloor({ getFloor: 0 });
302
+ expect(floor).to.deep.equal(0);
303
+ })
304
+
305
+ it('should return floor result if currency are correct', function () {
306
+ const currency = 'EUR';
307
+ const floorResult = 2;
308
+ const fn = sinon.stub().callsFake(() => ({ currency, floor: floorResult }))
309
+ const adUnit = { getFloor: fn };
310
+ const size = {};
311
+ const mediaType = {};
312
+
313
+ const floor = spec.getFloor(adUnit, size, mediaType, currency);
314
+ expect(floor).to.deep.equal(floorResult);
315
+ expect(fn.calledOnce).to.equal(true);
316
+ expect(fn.calledWithExactly({ currency, mediaType, size })).to.equal(true);
317
+ })
318
+
319
+ it('should return floor result if currency are not correct', function () {
320
+ const currency = 'EUR';
321
+ const floorResult = 2;
322
+ const fn = sinon.stub().callsFake(() => ({ currency: 'wrong_currency', floor: floorResult }))
323
+ const adUnit = { getFloor: fn };
324
+ const size = {};
325
+ const mediaType = {};
326
+
327
+ const floor = spec.getFloor(adUnit, size, mediaType, currency);
328
+ expect(floor).to.deep.equal(0);
329
+ expect(fn.calledOnce).to.equal(true);
330
+ expect(fn.calledWithExactly({ currency, mediaType, size })).to.equal(true);
331
+ })
3162
332
  });
3163
333
  });