prebid.js 10.2.0 → 10.4.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.
- package/.github/dependabot.yml +8 -0
- package/.github/workflows/scripts/codepath-notification +1 -0
- package/creative/renderers/display/renderer.js +3 -4
- package/dist/chunks/1plusXRtdProvider.js +1 -1
- package/dist/chunks/33acrossAnalyticsAdapter.js +1 -1
- package/dist/chunks/33acrossBidAdapter.js +1 -1
- package/dist/chunks/33acrossBidAdapter.metadata.js +1 -1
- package/dist/chunks/33acrossIdSystem.js +1 -1
- package/dist/chunks/33acrossIdSystem.metadata.js +1 -1
- package/dist/chunks/acuityadsBidAdapter.metadata.js +1 -1
- package/dist/chunks/adagioAnalyticsAdapter.js +1 -1
- package/dist/chunks/adagioBidAdapter.js +1 -1
- package/dist/chunks/adagioBidAdapter.metadata.js +1 -1
- package/dist/chunks/adagioRtdProvider.metadata.js +1 -1
- package/dist/chunks/adagioUtils.js +1 -1
- package/dist/chunks/addefendBidAdapter.js +1 -1
- package/dist/chunks/addefendBidAdapter.metadata.js +1 -1
- package/dist/chunks/adfBidAdapter.metadata.js +1 -1
- package/dist/chunks/adfusionBidAdapter.metadata.js +1 -1
- package/dist/chunks/adgenerationBidAdapter.js +1 -1
- package/dist/chunks/adheseBidAdapter.metadata.js +1 -1
- package/dist/chunks/adkernelAdnBidAdapter.metadata.js +1 -1
- package/dist/chunks/adkernelBidAdapter.metadata.js +1 -1
- package/dist/chunks/adlooxRtdProvider.js +1 -1
- package/dist/chunks/admaticBidAdapter.metadata.js +1 -1
- package/dist/chunks/admixerBidAdapter.js +1 -1
- package/dist/chunks/admixerBidAdapter.metadata.js +1 -1
- package/dist/chunks/admixerIdSystem.metadata.js +1 -1
- package/dist/chunks/adnowBidAdapter.metadata.js +1 -1
- package/dist/chunks/adnuntiusBidAdapter.metadata.js +1 -1
- package/dist/chunks/adnuntiusRtdProvider.metadata.js +1 -1
- package/dist/chunks/adotBidAdapter.metadata.js +1 -1
- package/dist/chunks/adponeBidAdapter.metadata.js +1 -1
- package/dist/chunks/adqueryBidAdapter.js +1 -1
- package/dist/chunks/adqueryBidAdapter.metadata.js +1 -1
- package/dist/chunks/adqueryIdSystem.metadata.js +1 -1
- package/dist/chunks/adrelevantisBidAdapter.js +1 -1
- package/dist/chunks/adrinoBidAdapter.metadata.js +1 -1
- package/dist/chunks/ads_interactiveBidAdapter.metadata.js +1 -1
- package/dist/chunks/adstirBidAdapter.js +1 -1
- package/dist/chunks/adtargetBidAdapter.metadata.js +1 -1
- package/dist/chunks/adtelligentBidAdapter.metadata.js +1 -1
- package/dist/chunks/adtelligentIdSystem.metadata.js +1 -1
- package/dist/chunks/adtrgtmeBidAdapter.js +1 -1
- package/dist/chunks/aduptechBidAdapter.metadata.js +1 -1
- package/dist/chunks/advertisingBidAdapter.js +1 -1
- package/dist/chunks/adxcgAnalyticsAdapter.js +1 -1
- package/dist/chunks/adxcgBidAdapter.js +1 -1
- package/dist/chunks/adyoulikeBidAdapter.js +1 -1
- package/dist/chunks/adyoulikeBidAdapter.metadata.js +1 -1
- package/dist/chunks/agmaAnalyticsAdapter.js +1 -1
- package/dist/chunks/aidemBidAdapter.metadata.js +1 -1
- package/dist/chunks/airgridRtdProvider.metadata.js +1 -1
- package/dist/chunks/ajaBidAdapter.js +1 -1
- package/dist/chunks/alkimiBidAdapter.metadata.js +1 -1
- package/dist/chunks/ampliffyBidAdapter.metadata.js +1 -1
- package/dist/chunks/amxBidAdapter.js +1 -1
- package/dist/chunks/amxBidAdapter.metadata.js +1 -1
- package/dist/chunks/amxIdSystem.js +1 -1
- package/dist/chunks/amxIdSystem.metadata.js +1 -1
- package/dist/chunks/aniviewBidAdapter.js +1 -1
- package/dist/chunks/aniviewBidAdapter.metadata.js +1 -1
- package/dist/chunks/anonymisedRtdProvider.metadata.js +1 -1
- package/dist/chunks/appierAnalyticsAdapter.js +1 -1
- package/dist/chunks/appierBidAdapter.metadata.js +1 -1
- package/dist/chunks/appnexusBidAdapter.js +1 -1
- package/dist/chunks/appnexusBidAdapter.metadata.js +1 -1
- package/dist/chunks/appnexusUtils.js +1 -1
- package/dist/chunks/appushBidAdapter.metadata.js +1 -1
- package/dist/chunks/apstreamBidAdapter.metadata.js +1 -1
- package/dist/chunks/asoBidAdapter.js +1 -1
- package/dist/chunks/audiencerunBidAdapter.metadata.js +1 -1
- package/dist/chunks/axisBidAdapter.metadata.js +1 -1
- package/dist/chunks/axonixBidAdapter.js +1 -1
- package/dist/chunks/azerionedgeRtdProvider.metadata.js +1 -1
- package/dist/chunks/beopBidAdapter.js +1 -1
- package/dist/chunks/beopBidAdapter.metadata.js +1 -1
- package/dist/chunks/betweenBidAdapter.metadata.js +1 -1
- package/dist/chunks/bidglassBidAdapter.js +1 -1
- package/dist/chunks/bidmaticBidAdapter.metadata.js +1 -1
- package/dist/chunks/bidtheatreBidAdapter.metadata.js +1 -1
- package/dist/chunks/big-richmediaBidAdapter.js +1 -1
- package/dist/chunks/bitmediaBidAdapter.js +1 -1
- package/dist/chunks/bliinkBidAdapter.metadata.js +1 -1
- package/dist/chunks/blockthroughBidAdapter.js +1 -1
- package/dist/chunks/blockthroughBidAdapter.metadata.js +1 -1
- package/dist/chunks/blueBidAdapter.metadata.js +1 -1
- package/dist/chunks/bmsBidAdapter.metadata.js +1 -1
- package/dist/chunks/bmtmBidAdapter.js +1 -1
- package/dist/chunks/boldwinBidAdapter.metadata.js +1 -1
- package/dist/chunks/bridBidAdapter.js +1 -1
- package/dist/chunks/bridBidAdapter.metadata.js +1 -1
- package/dist/chunks/bridgewellBidAdapter.js +1 -1
- package/dist/chunks/browsiBidAdapter.metadata.js +1 -1
- package/dist/chunks/bucksenseBidAdapter.metadata.js +1 -1
- package/dist/chunks/carodaBidAdapter.js +1 -1
- package/dist/chunks/carodaBidAdapter.metadata.js +1 -1
- package/dist/chunks/categoryTranslation.metadata.js +1 -1
- package/dist/chunks/ccxBidAdapter.metadata.js +1 -1
- package/dist/chunks/ceeIdSystem.metadata.js +1 -1
- package/dist/chunks/chromeAiRtdProvider.metadata.js +1 -1
- package/dist/chunks/chtnwBidAdapter.js +1 -1
- package/dist/chunks/chunk-core.js +1 -1
- package/dist/chunks/compassBidAdapter.metadata.js +1 -1
- package/dist/chunks/conceptxBidAdapter.metadata.js +1 -1
- package/dist/chunks/concertBidAdapter.js +1 -1
- package/dist/chunks/connatixBidAdapter.metadata.js +1 -1
- package/dist/chunks/connectIdSystem.metadata.js +1 -1
- package/dist/chunks/connectadBidAdapter.js +1 -1
- package/dist/chunks/connectadBidAdapter.metadata.js +1 -1
- package/dist/chunks/consumableBidAdapter.js +1 -1
- package/dist/chunks/contentexchangeBidAdapter.metadata.js +1 -1
- package/dist/chunks/contxtfulBidAdapter.js +1 -1
- package/dist/chunks/conversantBidAdapter.js +1 -1
- package/dist/chunks/conversantBidAdapter.metadata.js +1 -1
- package/dist/chunks/copper6sspBidAdapter.metadata.js +1 -1
- package/dist/chunks/cpmstarBidAdapter.metadata.js +1 -1
- package/dist/chunks/craftBidAdapter.js +1 -1
- package/dist/chunks/creative-renderer-display.js +1 -1
- package/dist/chunks/criteoBidAdapter.js +1 -1
- package/dist/chunks/criteoBidAdapter.metadata.js +1 -1
- package/dist/chunks/criteoIdSystem.metadata.js +1 -1
- package/dist/chunks/cryptoUtils.js +1 -0
- package/dist/chunks/cwireBidAdapter.js +1 -1
- package/dist/chunks/cwireBidAdapter.metadata.js +1 -1
- package/dist/chunks/czechAdIdSystem.metadata.js +1 -1
- package/dist/chunks/dailymotionBidAdapter.js +1 -1
- package/dist/chunks/dailymotionBidAdapter.metadata.js +1 -1
- package/dist/chunks/debugging-standalone.js +1 -1
- package/dist/chunks/debugging.metadata.js +1 -1
- package/dist/chunks/deepintentBidAdapter.metadata.js +1 -1
- package/dist/chunks/deltaprojectsBidAdapter.metadata.js +1 -1
- package/dist/chunks/dependencies.json +13 -0
- package/dist/chunks/dianomiBidAdapter.metadata.js +1 -1
- package/dist/chunks/digitalMatterBidAdapter.metadata.js +1 -1
- package/dist/chunks/distroscaleBidAdapter.metadata.js +1 -1
- package/dist/chunks/docereeAdManagerBidAdapter.metadata.js +1 -1
- package/dist/chunks/docereeBidAdapter.metadata.js +1 -1
- package/dist/chunks/dspxBidAdapter.js +1 -1
- package/dist/chunks/dspxBidAdapter.metadata.js +1 -1
- package/dist/chunks/dxkultureBidAdapter.js +1 -1
- package/dist/chunks/e_volutionBidAdapter.metadata.js +1 -1
- package/dist/chunks/edge226BidAdapter.metadata.js +1 -1
- package/dist/chunks/eplanningBidAdapter.js +1 -1
- package/dist/chunks/equativBidAdapter.js +1 -1
- package/dist/chunks/equativBidAdapter.metadata.js +1 -1
- package/dist/chunks/eskimiBidAdapter.js +1 -1
- package/dist/chunks/eskimiBidAdapter.metadata.js +1 -1
- package/dist/chunks/etargetBidAdapter.metadata.js +1 -1
- package/dist/chunks/euidIdSystem.js +1 -1
- package/dist/chunks/euidIdSystem.metadata.js +1 -1
- package/dist/chunks/exadsBidAdapter.js +1 -1
- package/dist/chunks/exadsBidAdapter.metadata.js +1 -1
- package/dist/chunks/excoBidAdapter.js +1 -1
- package/dist/chunks/feedadBidAdapter.js +1 -1
- package/dist/chunks/feedadBidAdapter.metadata.js +1 -1
- package/dist/chunks/finativeBidAdapter.js +1 -1
- package/dist/chunks/fwsspBidAdapter.metadata.js +1 -1
- package/dist/chunks/gamoshiBidAdapter.metadata.js +1 -1
- package/dist/chunks/getintentBidAdapter.js +1 -1
- package/dist/chunks/glomexBidAdapter.metadata.js +1 -1
- package/dist/chunks/gmosspBidAdapter.js +1 -1
- package/dist/chunks/goldbachBidAdapter.metadata.js +1 -1
- package/dist/chunks/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/chunks/greenbidsBidAdapter.js +1 -1
- package/dist/chunks/greenbidsBidAdapter.metadata.js +1 -1
- package/dist/chunks/greenbidsRtdProvider.js +1 -1
- package/dist/chunks/gridBidAdapter.js +1 -1
- package/dist/chunks/gridBidAdapter.metadata.js +1 -1
- package/dist/chunks/gumgumBidAdapter.js +1 -1
- package/dist/chunks/gumgumBidAdapter.metadata.js +1 -1
- package/dist/chunks/h12mediaBidAdapter.js +1 -1
- package/dist/chunks/hadronIdSystem.metadata.js +1 -1
- package/dist/chunks/hadronRtdProvider.metadata.js +1 -1
- package/dist/chunks/holidBidAdapter.metadata.js +1 -1
- package/dist/chunks/hybridBidAdapter.metadata.js +1 -1
- package/dist/chunks/hypelabBidAdapter.js +1 -1
- package/dist/chunks/iasRtdProvider.js +1 -1
- package/dist/chunks/id5AnalyticsAdapter.js +1 -1
- package/dist/chunks/id5IdSystem.js +1 -1
- package/dist/chunks/id5IdSystem.metadata.js +1 -1
- package/dist/chunks/identityLinkIdSystem.metadata.js +1 -1
- package/dist/chunks/illuminBidAdapter.metadata.js +1 -1
- package/dist/chunks/impactifyBidAdapter.metadata.js +1 -1
- package/dist/chunks/improvedigitalBidAdapter.js +1 -1
- package/dist/chunks/improvedigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/inmobiBidAdapter.js +1 -1
- package/dist/chunks/inmobiBidAdapter.metadata.js +1 -1
- package/dist/chunks/innityBidAdapter.metadata.js +1 -1
- package/dist/chunks/insticatorBidAdapter.js +1 -1
- package/dist/chunks/insticatorBidAdapter.metadata.js +1 -1
- package/dist/chunks/intentIqAnalyticsAdapter.js +1 -1
- package/dist/chunks/intentIqIdSystem.metadata.js +1 -1
- package/dist/chunks/invibesBidAdapter.metadata.js +1 -1
- package/dist/chunks/ipromBidAdapter.metadata.js +1 -1
- package/dist/chunks/ixBidAdapter.js +1 -1
- package/dist/chunks/ixBidAdapter.metadata.js +1 -1
- package/dist/chunks/jixieBidAdapter.js +1 -1
- package/dist/chunks/justIdSystem.metadata.js +1 -1
- package/dist/chunks/justpremiumBidAdapter.js +1 -1
- package/dist/chunks/justpremiumBidAdapter.metadata.js +1 -1
- package/dist/chunks/jwplayerBidAdapter.metadata.js +1 -1
- package/dist/chunks/jwplayerRtdProvider.js +1 -1
- package/dist/chunks/jwplayerVideoProvider.js +1 -1
- package/dist/chunks/kargoBidAdapter.js +1 -1
- package/dist/chunks/kargoBidAdapter.metadata.js +1 -1
- package/dist/chunks/kimberliteBidAdapter.js +1 -1
- package/dist/chunks/kubientBidAdapter.js +1 -1
- package/dist/chunks/kubientBidAdapter.metadata.js +1 -1
- package/dist/chunks/kueezRtbBidAdapter.metadata.js +1 -1
- package/dist/chunks/lassoBidAdapter.js +1 -1
- package/dist/chunks/lifestreetBidAdapter.js +1 -1
- package/dist/chunks/limelightDigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/liveIntentId.js +1 -1
- package/dist/chunks/liveIntentIdSystem.metadata.js +1 -1
- package/dist/chunks/liveIntentRtdProvider.metadata.js +1 -1
- package/dist/chunks/livewrappedBidAdapter.metadata.js +1 -1
- package/dist/chunks/logicadBidAdapter.js +1 -1
- package/dist/chunks/loopmeBidAdapter.metadata.js +1 -1
- package/dist/chunks/lotamePanoramaIdSystem.metadata.js +1 -1
- package/dist/chunks/luceadBidAdapter.js +1 -1
- package/dist/chunks/luceadBidAdapter.metadata.js +1 -1
- package/dist/chunks/luponmediaBidAdapter.metadata.js +1 -1
- package/dist/chunks/mabidderBidAdapter.js +1 -1
- package/dist/chunks/madsenseBidAdapter.js +1 -1
- package/dist/chunks/madvertiseBidAdapter.metadata.js +1 -1
- package/dist/chunks/magniteAnalyticsAdapter.js +1 -1
- package/dist/chunks/malltvAnalyticsAdapter.js +1 -1
- package/dist/chunks/marsmediaBidAdapter.js +1 -1
- package/dist/chunks/marsmediaBidAdapter.metadata.js +1 -1
- package/dist/chunks/mediaConsortiumBidAdapter.metadata.js +1 -1
- package/dist/chunks/mediaforceBidAdapter.metadata.js +1 -1
- package/dist/chunks/mediafuseBidAdapter.js +1 -1
- package/dist/chunks/mediafuseBidAdapter.metadata.js +1 -1
- package/dist/chunks/mediagoBidAdapter.metadata.js +1 -1
- package/dist/chunks/mediakeysBidAdapter.metadata.js +1 -1
- package/dist/chunks/medianetBidAdapter.js +1 -1
- package/dist/chunks/medianetBidAdapter.metadata.js +1 -1
- package/dist/chunks/medianetUtils.js +1 -1
- package/dist/chunks/mediasquareBidAdapter.js +1 -1
- package/dist/chunks/mediasquareBidAdapter.metadata.js +1 -1
- package/dist/chunks/mgidBidAdapter.js +1 -1
- package/dist/chunks/mgidBidAdapter.metadata.js +1 -1
- package/dist/chunks/mgidRtdProvider.metadata.js +1 -1
- package/dist/chunks/mgidXBidAdapter.metadata.js +1 -1
- package/dist/chunks/minutemediaBidAdapter.metadata.js +1 -1
- package/dist/chunks/missenaBidAdapter.js +1 -1
- package/dist/chunks/missenaBidAdapter.metadata.js +1 -1
- package/dist/chunks/mobianRtdProvider.metadata.js +1 -1
- package/dist/chunks/mobilefuseBidAdapter.js +1 -1
- package/dist/chunks/mobilefuseBidAdapter.metadata.js +1 -1
- package/dist/chunks/mobkoiBidAdapter.metadata.js +1 -1
- package/dist/chunks/mobkoiIdSystem.metadata.js +1 -1
- package/dist/chunks/nativeryBidAdapter.metadata.js +1 -1
- package/dist/chunks/nativoBidAdapter.metadata.js +1 -1
- package/dist/chunks/newspassidBidAdapter.metadata.js +1 -1
- package/dist/chunks/nextMillenniumBidAdapter.js +1 -1
- package/dist/chunks/nextMillenniumBidAdapter.metadata.js +1 -1
- package/dist/chunks/nextrollBidAdapter.metadata.js +1 -1
- package/dist/chunks/nexx360BidAdapter.metadata.js +1 -1
- package/dist/chunks/nexx360Utils.js +1 -1
- package/dist/chunks/nobidAnalyticsAdapter.js +1 -1
- package/dist/chunks/nobidBidAdapter.js +1 -1
- package/dist/chunks/nobidBidAdapter.metadata.js +1 -1
- package/dist/chunks/nodalsAiRtdProvider.js +1 -1
- package/dist/chunks/nodalsAiRtdProvider.metadata.js +1 -1
- package/dist/chunks/novatiqIdSystem.metadata.js +1 -1
- package/dist/chunks/oguryBidAdapter.js +1 -1
- package/dist/chunks/oguryBidAdapter.metadata.js +1 -1
- package/dist/chunks/omsBidAdapter.metadata.js +1 -1
- package/dist/chunks/onetagBidAdapter.js +1 -1
- package/dist/chunks/onetagBidAdapter.metadata.js +1 -1
- package/dist/chunks/ooloAnalyticsAdapter.js +1 -1
- package/dist/chunks/openwebBidAdapter.metadata.js +1 -1
- package/dist/chunks/openxBidAdapter.js +1 -1
- package/dist/chunks/openxBidAdapter.metadata.js +1 -1
- package/dist/chunks/operaadsBidAdapter.metadata.js +1 -1
- package/dist/chunks/optidigitalBidAdapter.js +1 -1
- package/dist/chunks/optidigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/optoutBidAdapter.metadata.js +1 -1
- package/dist/chunks/orbidderBidAdapter.js +1 -1
- package/dist/chunks/orbidderBidAdapter.metadata.js +1 -1
- package/dist/chunks/outbrainBidAdapter.js +1 -1
- package/dist/chunks/outbrainBidAdapter.metadata.js +1 -1
- package/dist/chunks/ozoneBidAdapter.metadata.js +1 -1
- package/dist/chunks/pairIdSystem.metadata.js +1 -1
- package/dist/chunks/performaxBidAdapter.metadata.js +1 -1
- package/dist/chunks/pgamsspBidAdapter.metadata.js +1 -1
- package/dist/chunks/pixfutureBidAdapter.js +1 -1
- package/dist/chunks/pixfutureBidAdapter.metadata.js +1 -1
- package/dist/chunks/playdigoBidAdapter.metadata.js +1 -1
- package/dist/chunks/prebid-core.metadata.js +1 -1
- package/dist/chunks/precisoBidAdapter.metadata.js +1 -1
- package/dist/chunks/prismaBidAdapter.metadata.js +1 -1
- package/dist/chunks/programmaticXBidAdapter.metadata.js +1 -1
- package/dist/chunks/proxistoreBidAdapter.metadata.js +1 -1
- package/dist/chunks/publinkIdSystem.js +1 -1
- package/dist/chunks/publinkIdSystem.metadata.js +1 -1
- package/dist/chunks/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/chunks/pubmaticBidAdapter.js +1 -1
- package/dist/chunks/pubmaticBidAdapter.metadata.js +1 -1
- package/dist/chunks/pubmaticIdSystem.metadata.js +1 -1
- package/dist/chunks/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/chunks/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/chunks/pulsepointBidAdapter.js +1 -1
- package/dist/chunks/pulsepointBidAdapter.metadata.js +1 -1
- package/dist/chunks/pwbidBidAdapter.metadata.js +1 -1
- package/dist/chunks/pxyzBidAdapter.js +1 -1
- package/dist/chunks/qtBidAdapter.metadata.js +1 -1
- package/dist/chunks/quantcastBidAdapter.js +1 -1
- package/dist/chunks/quantcastBidAdapter.metadata.js +1 -1
- package/dist/chunks/quantcastIdSystem.metadata.js +1 -1
- package/dist/chunks/r2b2BidAdapter.metadata.js +1 -1
- package/dist/chunks/raynRtdProvider.metadata.js +1 -1
- package/dist/chunks/readpeakBidAdapter.js +1 -1
- package/dist/chunks/readpeakBidAdapter.metadata.js +1 -1
- package/dist/chunks/relaidoBidAdapter.js +1 -1
- package/dist/chunks/relayBidAdapter.metadata.js +1 -1
- package/dist/chunks/relevantdigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/resetdigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/responsiveAdsBidAdapter.metadata.js +1 -1
- package/dist/chunks/retailspotBidAdapter.js +1 -1
- package/dist/chunks/retailspotBidAdapter.metadata.js +1 -1
- package/dist/chunks/revcontentBidAdapter.metadata.js +1 -1
- package/dist/chunks/rhythmoneBidAdapter.js +1 -1
- package/dist/chunks/rhythmoneBidAdapter.metadata.js +1 -1
- package/dist/chunks/richaudienceBidAdapter.metadata.js +1 -1
- package/dist/chunks/riseBidAdapter.metadata.js +1 -1
- package/dist/chunks/riseUtils.js +1 -1
- package/dist/chunks/rixengineBidAdapter.metadata.js +1 -1
- package/dist/chunks/rtbhouseBidAdapter.metadata.js +1 -1
- package/dist/chunks/rubiconBidAdapter.js +1 -1
- package/dist/chunks/rubiconBidAdapter.metadata.js +1 -1
- package/dist/chunks/rumbleBidAdapter.js +1 -0
- package/dist/chunks/rumbleBidAdapter.metadata.js +1 -0
- package/dist/chunks/scatteredBidAdapter.metadata.js +1 -1
- package/dist/chunks/seedingAllianceBidAdapter.js +1 -1
- package/dist/chunks/seedingAllianceBidAdapter.metadata.js +1 -1
- package/dist/chunks/seedtagBidAdapter.js +1 -1
- package/dist/chunks/seedtagBidAdapter.metadata.js +1 -1
- package/dist/chunks/semantiqRtdProvider.metadata.js +1 -1
- package/dist/chunks/setupadBidAdapter.metadata.js +1 -1
- package/dist/chunks/sevioBidAdapter.js +1 -0
- package/dist/chunks/sevioBidAdapter.metadata.js +1 -0
- package/dist/chunks/sharedIdSystem.metadata.js +1 -1
- package/dist/chunks/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/chunks/sharethroughBidAdapter.js +1 -1
- package/dist/chunks/sharethroughBidAdapter.metadata.js +1 -1
- package/dist/chunks/showheroes-bsBidAdapter.js +1 -1
- package/dist/chunks/showheroes-bsBidAdapter.metadata.js +1 -1
- package/dist/chunks/silvermobBidAdapter.metadata.js +1 -1
- package/dist/chunks/sirdataRtdProvider.metadata.js +1 -1
- package/dist/chunks/slimcutBidAdapter.metadata.js +1 -1
- package/dist/chunks/smaatoBidAdapter.js +1 -1
- package/dist/chunks/smaatoBidAdapter.metadata.js +1 -1
- package/dist/chunks/smartadserverBidAdapter.js +1 -1
- package/dist/chunks/smartadserverBidAdapter.metadata.js +1 -1
- package/dist/chunks/smartxBidAdapter.js +1 -1
- package/dist/chunks/smartxBidAdapter.metadata.js +1 -1
- package/dist/chunks/smartyadsBidAdapter.metadata.js +1 -1
- package/dist/chunks/smilewantedBidAdapter.js +1 -1
- package/dist/chunks/smilewantedBidAdapter.metadata.js +1 -1
- package/dist/chunks/snigelBidAdapter.js +1 -1
- package/dist/chunks/snigelBidAdapter.metadata.js +1 -1
- package/dist/chunks/sonaradsBidAdapter.js +1 -1
- package/dist/chunks/sonaradsBidAdapter.metadata.js +1 -1
- package/dist/chunks/sonobiBidAdapter.js +1 -1
- package/dist/chunks/sonobiBidAdapter.metadata.js +1 -1
- package/dist/chunks/sovrnBidAdapter.js +1 -1
- package/dist/chunks/sovrnBidAdapter.metadata.js +1 -1
- package/dist/chunks/sparteoBidAdapter.js +1 -1
- package/dist/chunks/sparteoBidAdapter.metadata.js +1 -1
- package/dist/chunks/ssmasBidAdapter.metadata.js +1 -1
- package/dist/chunks/sspBCBidAdapter.js +1 -1
- package/dist/chunks/sspBCBidAdapter.metadata.js +1 -1
- package/dist/chunks/stackadaptBidAdapter.metadata.js +1 -1
- package/dist/chunks/startioBidAdapter.metadata.js +1 -1
- package/dist/chunks/stroeerCoreBidAdapter.metadata.js +1 -1
- package/dist/chunks/stvBidAdapter.js +1 -1
- package/dist/chunks/stvBidAdapter.metadata.js +1 -1
- package/dist/chunks/sublimeBidAdapter.js +1 -1
- package/dist/chunks/sublimeBidAdapter.metadata.js +1 -1
- package/dist/chunks/taboolaBidAdapter.js +1 -1
- package/dist/chunks/taboolaBidAdapter.metadata.js +1 -1
- package/dist/chunks/taboolaIdSystem.metadata.js +1 -1
- package/dist/chunks/tappxBidAdapter.js +1 -1
- package/dist/chunks/tappxBidAdapter.metadata.js +1 -1
- package/dist/chunks/targetVideoBidAdapter.js +1 -1
- package/dist/chunks/targetVideoBidAdapter.metadata.js +1 -1
- package/dist/chunks/teadsBidAdapter.js +1 -1
- package/dist/chunks/teadsBidAdapter.metadata.js +1 -1
- package/dist/chunks/teadsIdSystem.metadata.js +1 -1
- package/dist/chunks/tealBidAdapter.metadata.js +1 -1
- package/dist/chunks/terceptAnalyticsAdapter.js +1 -1
- package/dist/chunks/themoneytizerBidAdapter.js +1 -1
- package/dist/chunks/themoneytizerBidAdapter.metadata.js +1 -1
- package/dist/chunks/tncIdSystem.metadata.js +1 -1
- package/dist/chunks/topicsFpdModule.metadata.js +1 -1
- package/dist/chunks/trionBidAdapter.js +1 -1
- package/dist/chunks/tripleliftBidAdapter.js +1 -1
- package/dist/chunks/tripleliftBidAdapter.metadata.js +1 -1
- package/dist/chunks/ttdBidAdapter.js +1 -1
- package/dist/chunks/ttdBidAdapter.metadata.js +1 -1
- package/dist/chunks/twistDigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/chunks/uid2IdSystem.js +1 -1
- package/dist/chunks/underdogmediaBidAdapter.js +1 -1
- package/dist/chunks/underdogmediaBidAdapter.metadata.js +1 -1
- package/dist/chunks/undertoneBidAdapter.js +1 -1
- package/dist/chunks/undertoneBidAdapter.metadata.js +1 -1
- package/dist/chunks/unifiedIdSystem.metadata.js +1 -1
- package/dist/chunks/unrulyBidAdapter.js +1 -1
- package/dist/chunks/unrulyBidAdapter.metadata.js +1 -1
- package/dist/chunks/userId.js +1 -1
- package/dist/chunks/userId.metadata.js +1 -1
- package/dist/chunks/validationFpdModule.metadata.js +1 -1
- package/dist/chunks/vidazooBidAdapter.metadata.js +1 -1
- package/dist/chunks/vidazooUtils.js +1 -1
- package/dist/chunks/videobyteBidAdapter.js +1 -1
- package/dist/chunks/vidoomyBidAdapter.metadata.js +1 -1
- package/dist/chunks/viewdeosDXBidAdapter.metadata.js +1 -1
- package/dist/chunks/viouslyBidAdapter.metadata.js +1 -1
- package/dist/chunks/visxBidAdapter.js +1 -1
- package/dist/chunks/visxBidAdapter.metadata.js +1 -1
- package/dist/chunks/vlybyBidAdapter.metadata.js +1 -1
- package/dist/chunks/voxBidAdapter.metadata.js +1 -1
- package/dist/chunks/vrtcalBidAdapter.metadata.js +1 -1
- package/dist/chunks/vuukleBidAdapter.js +1 -1
- package/dist/chunks/vuukleBidAdapter.metadata.js +1 -1
- package/dist/chunks/weboramaRtdProvider.js +1 -1
- package/dist/chunks/weboramaRtdProvider.metadata.js +1 -1
- package/dist/chunks/welectBidAdapter.metadata.js +1 -1
- package/dist/chunks/widespaceBidAdapter.js +1 -1
- package/dist/chunks/winrBidAdapter.js +1 -1
- package/dist/chunks/yahooAdsBidAdapter.js +1 -1
- package/dist/chunks/yahooAdsBidAdapter.metadata.js +1 -1
- package/dist/chunks/yandexBidAdapter.js +1 -1
- package/dist/chunks/yieldlabBidAdapter.metadata.js +1 -1
- package/dist/chunks/yieldliftBidAdapter.metadata.js +1 -1
- package/dist/chunks/yieldloveBidAdapter.metadata.js +1 -1
- package/dist/chunks/yieldmoBidAdapter.js +1 -1
- package/dist/chunks/yieldmoBidAdapter.metadata.js +1 -1
- package/dist/chunks/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/chunks/zeotapIdPlusIdSystem.metadata.js +1 -1
- package/dist/chunks/zeta_globalBidAdapter.metadata.js +1 -1
- package/dist/chunks/zeta_global_sspBidAdapter.metadata.js +1 -1
- package/dist/not-for-prod/prebid.js +443 -438
- package/dist/src/creative/renderers/display/renderer.js +3 -4
- package/dist/src/creative/renderers/display/renderer.js.map +1 -1
- package/dist/src/libraries/adagioUtils/adagioUtils.js +1 -1
- package/dist/src/libraries/analyticsAdapter/AnalyticsAdapter.js.map +1 -1
- package/dist/src/libraries/appnexusUtils/anKeywords.js +15 -1
- package/dist/src/libraries/appnexusUtils/anKeywords.js.map +1 -1
- package/dist/src/libraries/consentManagement/cmUtils.js.map +1 -1
- package/dist/src/libraries/creative-renderer-display/renderer.d.ts +1 -1
- package/dist/src/libraries/creative-renderer-display/renderer.js +1 -1
- package/dist/src/libraries/creative-renderer-display/renderer.js.map +1 -1
- package/dist/src/libraries/cryptoUtils/wallets.js +14 -0
- package/dist/src/libraries/cryptoUtils/wallets.js.map +1 -0
- package/dist/src/libraries/dspxUtils/bidderUtils.js.map +1 -1
- package/dist/src/libraries/impUtils.js +36 -0
- package/dist/src/libraries/impUtils.js.map +1 -0
- package/dist/src/libraries/liveIntentId/externalIdSystem.js +1 -1
- package/dist/src/libraries/liveIntentId/idSystem.js +1 -1
- package/dist/src/libraries/liveIntentId/shared.js +20 -0
- package/dist/src/libraries/liveIntentId/shared.js.map +1 -1
- package/dist/src/libraries/medianetUtils/constants.js +1 -1
- package/dist/src/libraries/nexx360Utils/index.js +1 -1
- package/dist/src/libraries/nexx360Utils/index.js.map +1 -1
- package/dist/src/libraries/ortbConverter/converter.js.map +1 -1
- package/dist/src/libraries/riseUtils/index.js +1 -1
- package/dist/src/libraries/vidazooUtils/bidderUtils.js +1 -1
- package/dist/src/libraries/video/constants/events.js.map +1 -1
- package/dist/src/metadata/modules/33acrossBidAdapter.js +1 -1
- package/dist/src/metadata/modules/33acrossIdSystem.js +1 -1
- package/dist/src/metadata/modules/acuityadsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adagioBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adagioRtdProvider.js +1 -1
- package/dist/src/metadata/modules/addefendBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adfBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adfusionBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adheseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adkernelAdnBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adkernelBidAdapter.js +1 -1
- package/dist/src/metadata/modules/admaticBidAdapter.js +1 -1
- package/dist/src/metadata/modules/admixerBidAdapter.js +1 -1
- package/dist/src/metadata/modules/admixerIdSystem.js +1 -1
- package/dist/src/metadata/modules/adnowBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adnuntiusBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adnuntiusRtdProvider.js +1 -1
- package/dist/src/metadata/modules/adotBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adponeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adqueryBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adqueryIdSystem.js +1 -1
- package/dist/src/metadata/modules/adrinoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ads_interactiveBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adtargetBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adtelligentBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adtelligentIdSystem.js +1 -1
- package/dist/src/metadata/modules/aduptechBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adyoulikeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/aidemBidAdapter.js +1 -1
- package/dist/src/metadata/modules/airgridRtdProvider.js +1 -1
- package/dist/src/metadata/modules/alkimiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ampliffyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/amxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/amxIdSystem.js +1 -1
- package/dist/src/metadata/modules/aniviewBidAdapter.js +1 -1
- package/dist/src/metadata/modules/anonymisedRtdProvider.js +1 -1
- package/dist/src/metadata/modules/appierBidAdapter.js +1 -1
- package/dist/src/metadata/modules/appnexusBidAdapter.js +1 -1
- package/dist/src/metadata/modules/appushBidAdapter.js +1 -1
- package/dist/src/metadata/modules/apstreamBidAdapter.js +1 -1
- package/dist/src/metadata/modules/audiencerunBidAdapter.js +1 -1
- package/dist/src/metadata/modules/axisBidAdapter.js +1 -1
- package/dist/src/metadata/modules/azerionedgeRtdProvider.js +1 -1
- package/dist/src/metadata/modules/beopBidAdapter.js +1 -1
- package/dist/src/metadata/modules/betweenBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bidmaticBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bidtheatreBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bliinkBidAdapter.js +1 -1
- package/dist/src/metadata/modules/blockthroughBidAdapter.js +1 -1
- package/dist/src/metadata/modules/blueBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bmsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/boldwinBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bridBidAdapter.js +1 -1
- package/dist/src/metadata/modules/browsiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bucksenseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/carodaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/categoryTranslation.js +1 -1
- package/dist/src/metadata/modules/ccxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ceeIdSystem.js +1 -1
- package/dist/src/metadata/modules/chromeAiRtdProvider.js +1 -1
- package/dist/src/metadata/modules/compassBidAdapter.js +1 -1
- package/dist/src/metadata/modules/conceptxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/connatixBidAdapter.js +1 -1
- package/dist/src/metadata/modules/connectIdSystem.js +1 -1
- package/dist/src/metadata/modules/connectadBidAdapter.js +1 -1
- package/dist/src/metadata/modules/contentexchangeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/conversantBidAdapter.js +1 -1
- package/dist/src/metadata/modules/copper6sspBidAdapter.js +1 -1
- package/dist/src/metadata/modules/cpmstarBidAdapter.js +1 -1
- package/dist/src/metadata/modules/criteoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/criteoIdSystem.js +1 -1
- package/dist/src/metadata/modules/cwireBidAdapter.js +1 -1
- package/dist/src/metadata/modules/czechAdIdSystem.js +1 -1
- package/dist/src/metadata/modules/dailymotionBidAdapter.js +1 -1
- package/dist/src/metadata/modules/debugging.js +1 -1
- package/dist/src/metadata/modules/deepintentBidAdapter.js +1 -1
- package/dist/src/metadata/modules/deltaprojectsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/dianomiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/digitalMatterBidAdapter.js +1 -1
- package/dist/src/metadata/modules/distroscaleBidAdapter.js +1 -1
- package/dist/src/metadata/modules/docereeAdManagerBidAdapter.js +1 -1
- package/dist/src/metadata/modules/docereeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/dspxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/e_volutionBidAdapter.js +1 -1
- package/dist/src/metadata/modules/edge226BidAdapter.js +1 -1
- package/dist/src/metadata/modules/equativBidAdapter.js +1 -1
- package/dist/src/metadata/modules/eskimiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/etargetBidAdapter.js +1 -1
- package/dist/src/metadata/modules/euidIdSystem.js +1 -1
- package/dist/src/metadata/modules/exadsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/feedadBidAdapter.js +1 -1
- package/dist/src/metadata/modules/fwsspBidAdapter.js +1 -1
- package/dist/src/metadata/modules/gamoshiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/glomexBidAdapter.js +1 -1
- package/dist/src/metadata/modules/goldbachBidAdapter.js +1 -1
- package/dist/src/metadata/modules/greenbidsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/gridBidAdapter.js +1 -1
- package/dist/src/metadata/modules/gumgumBidAdapter.js +1 -1
- package/dist/src/metadata/modules/hadronIdSystem.js +1 -1
- package/dist/src/metadata/modules/hadronRtdProvider.js +1 -1
- package/dist/src/metadata/modules/holidBidAdapter.js +1 -1
- package/dist/src/metadata/modules/hybridBidAdapter.js +1 -1
- package/dist/src/metadata/modules/id5IdSystem.js +1 -1
- package/dist/src/metadata/modules/identityLinkIdSystem.js +1 -1
- package/dist/src/metadata/modules/illuminBidAdapter.js +1 -1
- package/dist/src/metadata/modules/impactifyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/improvedigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/inmobiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/innityBidAdapter.js +1 -1
- package/dist/src/metadata/modules/insticatorBidAdapter.js +1 -1
- package/dist/src/metadata/modules/intentIqIdSystem.js +1 -1
- package/dist/src/metadata/modules/invibesBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ipromBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ixBidAdapter.js +1 -1
- package/dist/src/metadata/modules/justIdSystem.js +1 -1
- package/dist/src/metadata/modules/justpremiumBidAdapter.js +1 -1
- package/dist/src/metadata/modules/jwplayerBidAdapter.js +1 -1
- package/dist/src/metadata/modules/kargoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/kubientBidAdapter.js +1 -1
- package/dist/src/metadata/modules/kueezRtbBidAdapter.js +1 -1
- package/dist/src/metadata/modules/limelightDigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/liveIntentIdSystem.js +1 -1
- package/dist/src/metadata/modules/liveIntentRtdProvider.js +1 -1
- package/dist/src/metadata/modules/livewrappedBidAdapter.js +1 -1
- package/dist/src/metadata/modules/loopmeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/lotamePanoramaIdSystem.js +1 -1
- package/dist/src/metadata/modules/luceadBidAdapter.js +1 -1
- package/dist/src/metadata/modules/luponmediaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/madvertiseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/marsmediaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediaConsortiumBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediaforceBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediafuseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediagoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediakeysBidAdapter.js +1 -1
- package/dist/src/metadata/modules/medianetBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediasquareBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mgidBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mgidRtdProvider.js +1 -1
- package/dist/src/metadata/modules/mgidXBidAdapter.js +1 -1
- package/dist/src/metadata/modules/minutemediaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/missenaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mobianRtdProvider.js +1 -1
- package/dist/src/metadata/modules/mobilefuseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mobkoiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mobkoiIdSystem.js +1 -1
- package/dist/src/metadata/modules/nativeryBidAdapter.js +1 -1
- package/dist/src/metadata/modules/nativoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/newspassidBidAdapter.js +1 -1
- package/dist/src/metadata/modules/nextMillenniumBidAdapter.js +1 -1
- package/dist/src/metadata/modules/nextrollBidAdapter.js +1 -1
- package/dist/src/metadata/modules/nexx360BidAdapter.js +1 -1
- package/dist/src/metadata/modules/nobidBidAdapter.js +1 -1
- package/dist/src/metadata/modules/nodalsAiRtdProvider.js +1 -1
- package/dist/src/metadata/modules/novatiqIdSystem.js +1 -1
- package/dist/src/metadata/modules/oguryBidAdapter.js +1 -1
- package/dist/src/metadata/modules/omsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/onetagBidAdapter.js +1 -1
- package/dist/src/metadata/modules/openwebBidAdapter.js +1 -1
- package/dist/src/metadata/modules/openxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/operaadsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/optidigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/optoutBidAdapter.js +1 -1
- package/dist/src/metadata/modules/orbidderBidAdapter.js +1 -1
- package/dist/src/metadata/modules/outbrainBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ozoneBidAdapter.js +1 -1
- package/dist/src/metadata/modules/pairIdSystem.js +1 -1
- package/dist/src/metadata/modules/performaxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/pgamsspBidAdapter.js +1 -1
- package/dist/src/metadata/modules/pixfutureBidAdapter.js +1 -1
- package/dist/src/metadata/modules/playdigoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/prebid-core.js +1 -1
- package/dist/src/metadata/modules/precisoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/prismaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/programmaticXBidAdapter.js +1 -1
- package/dist/src/metadata/modules/proxistoreBidAdapter.js +1 -1
- package/dist/src/metadata/modules/publinkIdSystem.js +1 -1
- package/dist/src/metadata/modules/pubmaticBidAdapter.js +1 -1
- package/dist/src/metadata/modules/pubmaticIdSystem.js +1 -1
- package/dist/src/metadata/modules/pulsepointBidAdapter.js +1 -1
- package/dist/src/metadata/modules/pwbidBidAdapter.js +1 -1
- package/dist/src/metadata/modules/qtBidAdapter.js +1 -1
- package/dist/src/metadata/modules/quantcastBidAdapter.js +1 -1
- package/dist/src/metadata/modules/quantcastIdSystem.js +1 -1
- package/dist/src/metadata/modules/r2b2BidAdapter.js +1 -1
- package/dist/src/metadata/modules/raynRtdProvider.js +1 -1
- package/dist/src/metadata/modules/readpeakBidAdapter.js +1 -1
- package/dist/src/metadata/modules/relayBidAdapter.js +1 -1
- package/dist/src/metadata/modules/relevantdigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/resetdigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/responsiveAdsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/retailspotBidAdapter.js +1 -1
- package/dist/src/metadata/modules/revcontentBidAdapter.js +1 -1
- package/dist/src/metadata/modules/rhythmoneBidAdapter.js +1 -1
- package/dist/src/metadata/modules/richaudienceBidAdapter.js +1 -1
- package/dist/src/metadata/modules/riseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/rixengineBidAdapter.js +1 -1
- package/dist/src/metadata/modules/rtbhouseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/rubiconBidAdapter.js +1 -1
- package/dist/src/metadata/modules/rumbleBidAdapter.js +2 -0
- package/dist/src/metadata/modules/scatteredBidAdapter.js +1 -1
- package/dist/src/metadata/modules/seedingAllianceBidAdapter.js +1 -1
- package/dist/src/metadata/modules/seedtagBidAdapter.js +1 -1
- package/dist/src/metadata/modules/semantiqRtdProvider.js +1 -1
- package/dist/src/metadata/modules/setupadBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sevioBidAdapter.js +2 -0
- package/dist/src/metadata/modules/sharedIdSystem.js +1 -1
- package/dist/src/metadata/modules/sharethroughBidAdapter.js +1 -1
- package/dist/src/metadata/modules/showheroes-bsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/silvermobBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sirdataRtdProvider.js +1 -1
- package/dist/src/metadata/modules/slimcutBidAdapter.js +1 -1
- package/dist/src/metadata/modules/smaatoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/smartadserverBidAdapter.js +1 -1
- package/dist/src/metadata/modules/smartxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/smartyadsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/smilewantedBidAdapter.js +1 -1
- package/dist/src/metadata/modules/snigelBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sonaradsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sonobiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sovrnBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sparteoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ssmasBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sspBCBidAdapter.js +1 -1
- package/dist/src/metadata/modules/stackadaptBidAdapter.js +1 -1
- package/dist/src/metadata/modules/startioBidAdapter.js +1 -1
- package/dist/src/metadata/modules/stroeerCoreBidAdapter.js +1 -1
- package/dist/src/metadata/modules/stvBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sublimeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/taboolaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/taboolaIdSystem.js +1 -1
- package/dist/src/metadata/modules/tappxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/targetVideoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/teadsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/teadsIdSystem.js +1 -1
- package/dist/src/metadata/modules/tealBidAdapter.js +1 -1
- package/dist/src/metadata/modules/themoneytizerBidAdapter.js +1 -1
- package/dist/src/metadata/modules/tncIdSystem.js +1 -1
- package/dist/src/metadata/modules/topicsFpdModule.js +1 -1
- package/dist/src/metadata/modules/tripleliftBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ttdBidAdapter.js +1 -1
- package/dist/src/metadata/modules/twistDigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/underdogmediaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/undertoneBidAdapter.js +1 -1
- package/dist/src/metadata/modules/unifiedIdSystem.js +1 -1
- package/dist/src/metadata/modules/unrulyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/userId.js +1 -1
- package/dist/src/metadata/modules/validationFpdModule.js +1 -1
- package/dist/src/metadata/modules/vidazooBidAdapter.js +1 -1
- package/dist/src/metadata/modules/vidoomyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/viewdeosDXBidAdapter.js +1 -1
- package/dist/src/metadata/modules/viouslyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/visxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/vlybyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/voxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/vrtcalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/vuukleBidAdapter.js +1 -1
- package/dist/src/metadata/modules/weboramaRtdProvider.js +1 -1
- package/dist/src/metadata/modules/welectBidAdapter.js +1 -1
- package/dist/src/metadata/modules/yahooAdsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/yieldlabBidAdapter.js +1 -1
- package/dist/src/metadata/modules/yieldliftBidAdapter.js +1 -1
- package/dist/src/metadata/modules/yieldloveBidAdapter.js +1 -1
- package/dist/src/metadata/modules/yieldmoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/zeotapIdPlusIdSystem.js +1 -1
- package/dist/src/metadata/modules/zeta_globalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/zeta_global_sspBidAdapter.js +1 -1
- package/dist/src/modules/1plusXRtdProvider.js +6 -2
- package/dist/src/modules/1plusXRtdProvider.js.map +1 -1
- package/dist/src/modules/33acrossAnalyticsAdapter.js +1 -1
- package/dist/src/modules/33acrossBidAdapter.js +1 -1
- package/dist/src/modules/33acrossIdSystem.js +1 -1
- package/dist/src/modules/adWMGBidAdapter.js.map +1 -1
- package/dist/src/modules/adagioAnalyticsAdapter.js +1 -1
- package/dist/src/modules/adagioBidAdapter.js +1 -1
- package/dist/src/modules/addefendBidAdapter.js +1 -1
- package/dist/src/modules/adgenerationBidAdapter.js +1 -1
- package/dist/src/modules/adlooxRtdProvider.js +1 -1
- package/dist/src/modules/admixerBidAdapter.js +5 -4
- package/dist/src/modules/admixerBidAdapter.js.map +1 -1
- package/dist/src/modules/adqueryBidAdapter.js +1 -1
- package/dist/src/modules/adrelevantisBidAdapter.js +1 -1
- package/dist/src/modules/adspiritBidAdapter.js.map +1 -1
- package/dist/src/modules/adstirBidAdapter.js +1 -1
- package/dist/src/modules/adtrgtmeBidAdapter.js +1 -1
- package/dist/src/modules/adtrgtmeBidAdapter.js.map +1 -1
- package/dist/src/modules/advertisingBidAdapter.js +2 -2
- package/dist/src/modules/adxcgAnalyticsAdapter.js +1 -1
- package/dist/src/modules/adxcgBidAdapter.js +4 -39
- package/dist/src/modules/adxcgBidAdapter.js.map +1 -1
- package/dist/src/modules/adyoulikeBidAdapter.js +1 -1
- package/dist/src/modules/agmaAnalyticsAdapter.js +1 -1
- package/dist/src/modules/ajaBidAdapter.js +1 -1
- package/dist/src/modules/amxBidAdapter.js +2 -2
- package/dist/src/modules/amxBidAdapter.js.map +1 -1
- package/dist/src/modules/amxIdSystem.js +1 -1
- package/dist/src/modules/aniviewBidAdapter.js +1 -1
- package/dist/src/modules/appierAnalyticsAdapter.js +1 -1
- package/dist/src/modules/appnexusBidAdapter.js +2 -2
- package/dist/src/modules/asoBidAdapter.js +1 -1
- package/dist/src/modules/axonixBidAdapter.js +1 -1
- package/dist/src/modules/beopBidAdapter.js +2 -2
- package/dist/src/modules/bidglassBidAdapter.js +1 -1
- package/dist/src/modules/bitmediaBidAdapter.js +1 -1
- package/dist/src/modules/blockthroughBidAdapter.js +1 -1
- package/dist/src/modules/bmtmBidAdapter.js +1 -1
- package/dist/src/modules/bridBidAdapter.js +1 -1
- package/dist/src/modules/bridgewellBidAdapter.js +1 -1
- package/dist/src/modules/carodaBidAdapter.js +1 -1
- package/dist/src/modules/chromeAiRtdProvider.js.map +1 -1
- package/dist/src/modules/chtnwBidAdapter.js +1 -1
- package/dist/src/modules/concertBidAdapter.js +1 -1
- package/dist/src/modules/connectadBidAdapter.js +1 -1
- package/dist/src/modules/consentManagementGpp.js.map +1 -1
- package/dist/src/modules/consentManagementTcf.js.map +1 -1
- package/dist/src/modules/consentManagementUsp.js.map +1 -1
- package/dist/src/modules/consumableBidAdapter.js +1 -1
- package/dist/src/modules/contxtfulBidAdapter.js +1 -1
- package/dist/src/modules/conversantBidAdapter.js +1 -1
- package/dist/src/modules/craftBidAdapter.js +1 -1
- package/dist/src/modules/criteoBidAdapter.js +2 -2
- package/dist/src/modules/currency.js.map +1 -1
- package/dist/src/modules/cwireBidAdapter.js +1 -1
- package/dist/src/modules/cwireBidAdapter.js.map +1 -1
- package/dist/src/modules/dailymotionBidAdapter.js +1 -1
- package/dist/src/modules/dailymotionBidAdapter.js.map +1 -1
- package/dist/src/modules/dchain.js.map +1 -1
- package/dist/src/modules/dspxBidAdapter.js +1 -1
- package/dist/src/modules/dspxBidAdapter.js.map +1 -1
- package/dist/src/modules/dxkultureBidAdapter.js +1 -1
- package/dist/src/modules/eightPodBidAdapter.js.map +1 -1
- package/dist/src/modules/eplanningBidAdapter.js +1 -1
- package/dist/src/modules/equativBidAdapter.js +1 -1
- package/dist/src/modules/eskimiBidAdapter.js +1 -1
- package/dist/src/modules/euidIdSystem.js +1 -1
- package/dist/src/modules/exadsBidAdapter.js +1 -1
- package/dist/src/modules/excoBidAdapter.js +3 -3
- package/dist/src/modules/feedadBidAdapter.js +2 -2
- package/dist/src/modules/finativeBidAdapter.js +1 -1
- package/dist/src/modules/genericAnalyticsAdapter.js.map +1 -1
- package/dist/src/modules/geolocationRtdProvider.js.map +1 -1
- package/dist/src/modules/getintentBidAdapter.js +4 -2
- package/dist/src/modules/getintentBidAdapter.js.map +1 -1
- package/dist/src/modules/gmosspBidAdapter.js +1 -1
- package/dist/src/modules/gmosspBidAdapter.js.map +1 -1
- package/dist/src/modules/gppControl_usstates.js.map +1 -1
- package/dist/src/modules/gptPreAuction.d.ts +3 -3
- package/dist/src/modules/gptPreAuction.js.map +1 -1
- package/dist/src/modules/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/src/modules/greenbidsBidAdapter.js +1 -1
- package/dist/src/modules/greenbidsRtdProvider.js +1 -1
- package/dist/src/modules/gridBidAdapter.js +2 -2
- package/dist/src/modules/gumgumBidAdapter.js +2 -2
- package/dist/src/modules/h12mediaBidAdapter.js +1 -1
- package/dist/src/modules/hypelabBidAdapter.js +1 -1
- package/dist/src/modules/iasRtdProvider.js +110 -5
- package/dist/src/modules/iasRtdProvider.js.map +1 -1
- package/dist/src/modules/id5AnalyticsAdapter.js +1 -1
- package/dist/src/modules/id5IdSystem.js +1 -1
- package/dist/src/modules/improvedigitalBidAdapter.js +1 -1
- package/dist/src/modules/inmobiBidAdapter.js +1 -1
- package/dist/src/modules/insticatorBidAdapter.js +1 -1
- package/dist/src/modules/intentIqAnalyticsAdapter.js +1 -1
- package/dist/src/modules/intentIqAnalyticsAdapter.js.map +1 -1
- package/dist/src/modules/intentIqIdSystem.js.map +1 -1
- package/dist/src/modules/ixBidAdapter.js +1 -1
- package/dist/src/modules/jixieBidAdapter.js +1 -1
- package/dist/src/modules/justpremiumBidAdapter.js +1 -1
- package/dist/src/modules/jwplayerRtdProvider.js +6 -2
- package/dist/src/modules/jwplayerRtdProvider.js.map +1 -1
- package/dist/src/modules/jwplayerVideoProvider.js +12 -9
- package/dist/src/modules/jwplayerVideoProvider.js.map +1 -1
- package/dist/src/modules/kargoBidAdapter.js +1 -1
- package/dist/src/modules/kimberliteBidAdapter.js +1 -1
- package/dist/src/modules/kubientBidAdapter.js +0 -1
- package/dist/src/modules/kubientBidAdapter.js.map +1 -1
- package/dist/src/modules/lassoBidAdapter.js +1 -1
- package/dist/src/modules/lifestreetBidAdapter.js +1 -1
- package/dist/src/modules/logicadBidAdapter.js +1 -1
- package/dist/src/modules/luceadBidAdapter.js +1 -1
- package/dist/src/modules/mabidderBidAdapter.js +1 -1
- package/dist/src/modules/madsenseBidAdapter.js +1 -1
- package/dist/src/modules/magniteAnalyticsAdapter.js +1 -1
- package/dist/src/modules/malltvAnalyticsAdapter.js +1 -1
- package/dist/src/modules/marsmediaBidAdapter.js +1 -1
- package/dist/src/modules/mediafuseBidAdapter.js +2 -2
- package/dist/src/modules/medianetAnalyticsAdapter.js.map +1 -1
- package/dist/src/modules/medianetBidAdapter.js +6 -2
- package/dist/src/modules/medianetBidAdapter.js.map +1 -1
- package/dist/src/modules/mediasquareBidAdapter.js +2 -2
- package/dist/src/modules/mgidBidAdapter.js +1 -1
- package/dist/src/modules/michaoBidAdapter.js.map +1 -1
- package/dist/src/modules/missenaBidAdapter.js +1 -1
- package/dist/src/modules/mobilefuseBidAdapter.js +1 -1
- package/dist/src/modules/multibid/index.js.map +1 -1
- package/dist/src/modules/nextMillenniumBidAdapter.js +1 -1
- package/dist/src/modules/nexverseBidAdapter.js.map +1 -1
- package/dist/src/modules/nobidAnalyticsAdapter.js +1 -1
- package/dist/src/modules/nobidBidAdapter.js +1 -1
- package/dist/src/modules/nodalsAiRtdProvider.js +4 -2
- package/dist/src/modules/nodalsAiRtdProvider.js.map +1 -1
- package/dist/src/modules/oguryBidAdapter.js +1 -1
- package/dist/src/modules/onetagBidAdapter.js +1 -1
- package/dist/src/modules/onetagBidAdapter.js.map +1 -1
- package/dist/src/modules/ooloAnalyticsAdapter.js +1 -1
- package/dist/src/modules/openxBidAdapter.js +7 -2
- package/dist/src/modules/openxBidAdapter.js.map +1 -1
- package/dist/src/modules/optidigitalBidAdapter.js +1 -1
- package/dist/src/modules/orbidderBidAdapter.js +1 -1
- package/dist/src/modules/outbrainBidAdapter.js +1 -1
- package/dist/src/modules/pixfutureBidAdapter.js +2 -2
- package/dist/src/modules/prebidServerBidAdapter/index.js.map +1 -1
- package/dist/src/modules/priceFloors.d.ts +2 -2
- package/dist/src/modules/priceFloors.js.map +1 -1
- package/dist/src/modules/publinkIdSystem.js +1 -1
- package/dist/src/modules/pubmaticAnalyticsAdapter.js +2 -2
- package/dist/src/modules/pubmaticBidAdapter.js +23 -3
- package/dist/src/modules/pubmaticBidAdapter.js.map +1 -1
- package/dist/src/modules/pubmaticRtdProvider.js.map +1 -1
- package/dist/src/modules/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/src/modules/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/src/modules/pulsepointBidAdapter.js +2 -38
- package/dist/src/modules/pulsepointBidAdapter.js.map +1 -1
- package/dist/src/modules/pxyzBidAdapter.js +1 -1
- package/dist/src/modules/quantcastBidAdapter.js +1 -1
- package/dist/src/modules/readpeakBidAdapter.js +1 -1
- package/dist/src/modules/readpeakBidAdapter.js.map +1 -1
- package/dist/src/modules/relaidoBidAdapter.js +1 -1
- package/dist/src/modules/retailspotBidAdapter.js +1 -1
- package/dist/src/modules/rhythmoneBidAdapter.js +1 -1
- package/dist/src/modules/rtdModule/index.js.map +1 -1
- package/dist/src/modules/rtdModule/spec.js.map +1 -1
- package/dist/src/modules/rubiconBidAdapter.js +6 -2
- package/dist/src/modules/rubiconBidAdapter.js.map +1 -1
- package/dist/src/modules/rumbleBidAdapter.js +103 -0
- package/dist/src/modules/rumbleBidAdapter.js.map +1 -0
- package/dist/src/modules/schain.js.map +1 -1
- package/dist/src/modules/seedingAllianceBidAdapter.js +1 -1
- package/dist/src/modules/seedtagBidAdapter.js +1 -1
- package/dist/src/modules/sevioBidAdapter.js +254 -0
- package/dist/src/modules/sevioBidAdapter.js.map +1 -0
- package/dist/src/modules/sharedIdSystem.js.map +1 -1
- package/dist/src/modules/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/src/modules/sharethroughBidAdapter.js +1 -1
- package/dist/src/modules/showheroes-bsBidAdapter.js +1 -1
- package/dist/src/modules/smaatoBidAdapter.js +1 -1
- package/dist/src/modules/smartadserverBidAdapter.js +1 -1
- package/dist/src/modules/smartxBidAdapter.js +1 -1
- package/dist/src/modules/smilewantedBidAdapter.js +1 -1
- package/dist/src/modules/snigelBidAdapter.js +1 -1
- package/dist/src/modules/sonaradsBidAdapter.js +2 -2
- package/dist/src/modules/sonobiBidAdapter.js +1 -1
- package/dist/src/modules/sovrnBidAdapter.js +1 -1
- package/dist/src/modules/sparteoBidAdapter.js +1 -1
- package/dist/src/modules/sspBCBidAdapter.js +1 -1
- package/dist/src/modules/storageControl.js.map +1 -1
- package/dist/src/modules/stvBidAdapter.js +1 -1
- package/dist/src/modules/sublimeBidAdapter.js +2 -2
- package/dist/src/modules/taboolaBidAdapter.js +1 -1
- package/dist/src/modules/tappxBidAdapter.js +1 -1
- package/dist/src/modules/targetVideoBidAdapter.js +1 -1
- package/dist/src/modules/tcfControl.js.map +1 -1
- package/dist/src/modules/teadsBidAdapter.js +1 -1
- package/dist/src/modules/terceptAnalyticsAdapter.js +1 -1
- package/dist/src/modules/themoneytizerBidAdapter.js +1 -3
- package/dist/src/modules/themoneytizerBidAdapter.js.map +1 -1
- package/dist/src/modules/trionBidAdapter.js +1 -1
- package/dist/src/modules/tripleliftBidAdapter.js +1 -1
- package/dist/src/modules/ttdBidAdapter.js +9 -2
- package/dist/src/modules/ttdBidAdapter.js.map +1 -1
- package/dist/src/modules/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/src/modules/uid2IdSystem.js +1 -1
- package/dist/src/modules/underdogmediaBidAdapter.js +1 -1
- package/dist/src/modules/undertoneBidAdapter.js +1 -1
- package/dist/src/modules/unrulyBidAdapter.js +1 -1
- package/dist/src/modules/userId/index.js +12 -8
- package/dist/src/modules/userId/index.js.map +1 -1
- package/dist/src/modules/userId/spec.js.map +1 -1
- package/dist/src/modules/validationFpdModule/index.js.map +1 -1
- package/dist/src/modules/videoModule/index.js.map +1 -1
- package/dist/src/modules/videobyteBidAdapter.js +1 -1
- package/dist/src/modules/visxBidAdapter.js +1 -1
- package/dist/src/modules/vuukleBidAdapter.js +1 -1
- package/dist/src/modules/weboramaRtdProvider.js +30 -11
- package/dist/src/modules/weboramaRtdProvider.js.map +1 -1
- package/dist/src/modules/welectBidAdapter.js.map +1 -1
- package/dist/src/modules/widespaceBidAdapter.js +1 -1
- package/dist/src/modules/winrBidAdapter.js +1 -1
- package/dist/src/modules/yahooAdsBidAdapter.js +1 -1
- package/dist/src/modules/yandexBidAdapter.js +47 -15
- package/dist/src/modules/yandexBidAdapter.js.map +1 -1
- package/dist/src/modules/yieldmoBidAdapter.js +2 -2
- package/dist/src/modules/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/src/package.json +2 -3
- package/dist/src/public/rumbleBidAdapter.js +1 -0
- package/dist/src/public/sevioBidAdapter.js +1 -0
- package/dist/src/src/activities/params.d.ts +5 -0
- package/dist/src/src/activities/params.js +6 -0
- package/dist/src/src/activities/params.js.map +1 -1
- package/dist/src/src/activities/redactor.js.map +1 -1
- package/dist/src/src/adRendering.js.map +1 -1
- package/dist/src/src/adUnits.js.map +1 -1
- package/dist/src/src/adapterManager.js.map +1 -1
- package/dist/src/src/adapters/bidderFactory.js.map +1 -1
- package/dist/src/src/ajax.js.map +1 -1
- package/dist/src/src/auction.js.map +1 -1
- package/dist/src/src/banner.js.map +1 -1
- package/dist/src/src/bidTTL.js.map +1 -1
- package/dist/src/src/bidderSettings.js.map +1 -1
- package/dist/src/src/bidfactory.js.map +1 -1
- package/dist/src/src/config.js +3 -3
- package/dist/src/src/config.js.map +1 -1
- package/dist/src/src/consentHandler.js.map +1 -1
- package/dist/src/src/constants.js.map +1 -1
- package/dist/src/src/cpmBucketManager.js.map +1 -1
- package/dist/src/src/debugging.js +1 -1
- package/dist/src/src/events.js.map +1 -1
- package/dist/src/src/fpd/enrichment.js.map +1 -1
- package/dist/src/src/hook.js.map +1 -1
- package/dist/src/src/mediaTypes.js.map +1 -1
- package/dist/src/src/native.js.map +1 -1
- package/dist/src/src/prebid.js +2 -2
- package/dist/src/src/prebid.js.map +1 -1
- package/dist/src/src/prebidGlobal.js.map +1 -1
- package/dist/src/src/refererDetection.js.map +1 -1
- package/dist/src/src/storageManager.js +26 -25
- package/dist/src/src/storageManager.js.map +1 -1
- package/dist/src/src/targeting.d.ts +7 -7
- package/dist/src/src/targeting.js.map +1 -1
- package/dist/src/src/types/common.d.js.map +1 -1
- package/dist/src/src/types/common.d.ts +29 -29
- package/dist/src/src/types/local/buildOptions.d.js.map +1 -1
- package/dist/src/src/types/local/shim.d.js.map +1 -1
- package/dist/src/src/types/objects.d.js.map +1 -1
- package/dist/src/src/types/objects.d.ts +15 -15
- package/dist/src/src/types/ortb/common.d.js.map +1 -1
- package/dist/src/src/types/ortb/common.d.ts +1 -1
- package/dist/src/src/types/ortb/ext/dchain.d.js.map +1 -1
- package/dist/src/src/types/ortb/ext/dchain.d.ts +69 -69
- package/dist/src/src/types/ortb/ext/dsa.d.js.map +1 -1
- package/dist/src/src/types/ortb/ext/dsa.d.ts +50 -50
- package/dist/src/src/types/ortb/request.d.js.map +1 -1
- package/dist/src/src/types/ortb/request.d.ts +21 -21
- package/dist/src/src/types/ortb/response.d.js.map +1 -1
- package/dist/src/src/types/ortb/response.d.ts +6 -6
- package/dist/src/src/types/summary/core.d.ts +5 -5
- package/dist/src/src/userSync.js.map +1 -1
- package/dist/src/src/utils/objects.js.map +1 -1
- package/dist/src/src/utils/perfMetrics.js.map +1 -1
- package/dist/src/src/utils/promise.js.map +1 -1
- package/dist/src/src/utils/ttlCollection.js.map +1 -1
- package/dist/src/src/video.js.map +1 -1
- package/dist/src/src/videoCache.js.map +1 -1
- package/dist/src/test/helpers/index_adapter_utils.js +1 -1
- package/dist/src/test/helpers/index_adapter_utils.js.map +1 -1
- package/dist/src/test/helpers/refererDetectionHelper.js.map +1 -1
- package/dist/src/test/mocks/timers.js +12 -12
- package/dist/src/test/mocks/timers.js.map +1 -1
- package/dist/src/test/spec/adloader_spec.js.map +1 -1
- package/dist/src/test/spec/config_spec.js +9 -3
- package/dist/src/test/spec/config_spec.js.map +1 -1
- package/dist/src/test/spec/libraries/greedy/greedyPromise_spec.js +2 -2
- package/dist/src/test/spec/libraries/greedy/greedyPromise_spec.js.map +1 -1
- package/dist/src/test/spec/modules/1plusXRtdProvider_spec.js +2 -9
- package/dist/src/test/spec/modules/1plusXRtdProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/33acrossAnalyticsAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/33acrossBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/33acrossIdSystem_spec.js +1 -1
- package/dist/src/test/spec/modules/adagioAnalyticsAdapter_spec.js +4 -4
- package/dist/src/test/spec/modules/adgridBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adkernelAdnBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adkernelBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/admediaBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adnuntiusBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adqueryBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/adrelevantisBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/adspiritBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adtrgtmeBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/adtrgtmeBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adtrueBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/advertisingBidAdapter_spec.js +9 -9
- package/dist/src/test/spec/modules/advertisingBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adyoulikeBidAdapter_spec.js +3 -3
- package/dist/src/test/spec/modules/ajaBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/amxBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/appierAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/appnexusBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/asoBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/bidmaticBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/blockthroughBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/bridBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/criteoBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/dailymotionBidAdapter_spec.js +4 -4
- package/dist/src/test/spec/modules/datablocksBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/deepintentBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/dexertoBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/dochaseBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/dspxBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/dxkultureBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/ehealthcaresolutionsBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/enrichmentLiftMeasurement_spec.js.map +1 -1
- package/dist/src/test/spec/modules/eplanningBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/equativBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/equativBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/excoBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/feedadBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/finativeBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/ftrackIdSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/fwsspBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/gmosspBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/gridBidAdapter_spec.js +6 -6
- package/dist/src/test/spec/modules/gumgumBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/hypelabBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/iasRtdProvider_spec.js +104 -1
- package/dist/src/test/spec/modules/iasRtdProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/id5IdSystem_spec.js +4 -4
- package/dist/src/test/spec/modules/insticatorBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/intentIqIdSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/invibesBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/ixBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/justpremiumBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/kargoBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/kargoBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/lane4BidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/lemmaDigitalBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/liveIntentExternalIdSystem_spec.js +29 -10
- package/dist/src/test/spec/modules/liveIntentExternalIdSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/liveIntentIdMinimalSystem_spec.js +19 -0
- package/dist/src/test/spec/modules/liveIntentIdMinimalSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/liveIntentIdSystem_spec.js +58 -1
- package/dist/src/test/spec/modules/liveIntentIdSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/liveIntentRtdProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/magniteAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/malltvAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/mediaeyesBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/mediafuseBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/mediagoBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/medianetBidAdapter_spec.js +43 -26
- package/dist/src/test/spec/modules/medianetBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/mediasquareBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/missenaBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/nexx360BidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/nobidAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/nobidBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/nobidBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/oguryBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/onetagBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/openxBidAdapter_spec.js +113 -0
- package/dist/src/test/spec/modules/openxBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/optoutBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/orbitsoftBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/outbrainBidAdapter_spec.js +3 -3
- package/dist/src/test/spec/modules/oxxionAnalyticsAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/ozoneBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/prebidServerBidAdapter_spec.js +4 -4
- package/dist/src/test/spec/modules/prebidServerBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/prismaBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/publinkIdSystem_spec.js +5 -5
- package/dist/src/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +6 -6
- package/dist/src/test/spec/modules/pubmaticBidAdapter_spec.js +58 -0
- package/dist/src/test/spec/modules/pubmaticBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/pubmaticRtdProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +6 -6
- package/dist/src/test/spec/modules/pwbidBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/quantcastBidAdapter_spec.js +6 -6
- package/dist/src/test/spec/modules/readpeakBidAdapter_spec.js +4 -4
- package/dist/src/test/spec/modules/relaidoBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/relevadRtdProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/relevatehealthBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/richaudienceBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/rubiconBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/rubiconBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/rumbleBidAdapter_spec.js +110 -0
- package/dist/src/test/spec/modules/rumbleBidAdapter_spec.js.map +1 -0
- package/dist/src/test/spec/modules/sevioBidAdapter_spec.js +182 -0
- package/dist/src/test/spec/modules/sevioBidAdapter_spec.js.map +1 -0
- package/dist/src/test/spec/modules/smaatoBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/smarticoBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/smartxBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/sonaradsBidAdapter_spec.js +5 -5
- package/dist/src/test/spec/modules/sovrnBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/sparteoBidAdapter_spec.js +3 -3
- package/dist/src/test/spec/modules/sspBCBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/stvBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/taboolaBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/tapnativeBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/targetVideoBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/themoneytizerBidAdapter_spec.js +0 -5
- package/dist/src/test/spec/modules/themoneytizerBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/trionBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/ttdBidAdapter_spec.js +24 -3
- package/dist/src/test/spec/modules/ttdBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/ucfunnelAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/uid2IdSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/unrulyBidAdapter_spec.js +3 -3
- package/dist/src/test/spec/modules/userId_spec.js +41 -6
- package/dist/src/test/spec/modules/userId_spec.js.map +1 -1
- package/dist/src/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +1738 -9
- package/dist/src/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/videobyteBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/visxBidAdapter_spec.js +12 -12
- package/dist/src/test/spec/modules/winrBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/yahooAdsBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/yandexBidAdapter_spec.js +107 -2
- package/dist/src/test/spec/modules/yandexBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +2 -2
- package/dist/src/test/spec/refererDetection_spec.js.map +1 -1
- package/dist/src/test/spec/unit/core/storageManager_spec.js +18 -1
- package/dist/src/test/spec/unit/core/storageManager_spec.js.map +1 -1
- package/dist/src/test/spec/unit/core/targeting_spec.js.map +1 -1
- package/dist/src/test/spec/utils_spec.js.map +1 -1
- package/eslint.config.js +2 -6
- package/gulpfile.js +0 -7
- package/libraries/analyticsAdapter/AnalyticsAdapter.ts +28 -28
- package/libraries/appnexusUtils/anKeywords.js +11 -0
- package/libraries/consentManagement/cmUtils.ts +18 -18
- package/libraries/creative-renderer-display/renderer.js +1 -1
- package/libraries/cryptoUtils/wallets.js +38 -0
- package/libraries/dspxUtils/bidderUtils.js +1 -1
- package/libraries/impUtils.js +33 -0
- package/libraries/liveIntentId/shared.js +16 -0
- package/libraries/nexx360Utils/index.js +8 -8
- package/libraries/ortbConverter/converter.ts +79 -79
- package/libraries/video/constants/events.ts +5 -5
- package/metadata/modules/33acrossBidAdapter.json +1 -1
- package/metadata/modules/33acrossIdSystem.json +1 -1
- package/metadata/modules/acuityadsBidAdapter.json +1 -1
- package/metadata/modules/adagioBidAdapter.json +1 -1
- package/metadata/modules/adagioRtdProvider.json +1 -1
- package/metadata/modules/addefendBidAdapter.json +1 -1
- package/metadata/modules/adfBidAdapter.json +1 -1
- package/metadata/modules/adfusionBidAdapter.json +1 -1
- package/metadata/modules/adheseBidAdapter.json +1 -1
- package/metadata/modules/adkernelAdnBidAdapter.json +1 -1
- package/metadata/modules/adkernelBidAdapter.json +4 -4
- package/metadata/modules/admaticBidAdapter.json +2 -2
- package/metadata/modules/admixerBidAdapter.json +8 -1
- package/metadata/modules/admixerIdSystem.json +1 -1
- package/metadata/modules/adnowBidAdapter.json +1 -1
- package/metadata/modules/adnuntiusBidAdapter.json +1 -1
- package/metadata/modules/adnuntiusRtdProvider.json +1 -1
- package/metadata/modules/adotBidAdapter.json +1 -1
- package/metadata/modules/adponeBidAdapter.json +1 -1
- package/metadata/modules/adqueryBidAdapter.json +1 -1
- package/metadata/modules/adqueryIdSystem.json +1 -1
- package/metadata/modules/adrinoBidAdapter.json +1 -1
- package/metadata/modules/ads_interactiveBidAdapter.json +1 -1
- package/metadata/modules/adtargetBidAdapter.json +1 -1
- package/metadata/modules/adtelligentBidAdapter.json +3 -3
- package/metadata/modules/adtelligentIdSystem.json +1 -1
- package/metadata/modules/aduptechBidAdapter.json +1 -1
- package/metadata/modules/adyoulikeBidAdapter.json +1 -1
- package/metadata/modules/aidemBidAdapter.json +1 -1
- package/metadata/modules/airgridRtdProvider.json +1 -1
- package/metadata/modules/alkimiBidAdapter.json +1 -1
- package/metadata/modules/ampliffyBidAdapter.json +1 -1
- package/metadata/modules/amxBidAdapter.json +1 -1
- package/metadata/modules/amxIdSystem.json +1 -1
- package/metadata/modules/aniviewBidAdapter.json +1 -1
- package/metadata/modules/anonymisedRtdProvider.json +1 -1
- package/metadata/modules/appierBidAdapter.json +15 -29
- package/metadata/modules/appnexusBidAdapter.json +5 -5
- package/metadata/modules/appushBidAdapter.json +1 -1
- package/metadata/modules/apstreamBidAdapter.json +1 -1
- package/metadata/modules/audiencerunBidAdapter.json +1 -1
- package/metadata/modules/axisBidAdapter.json +1 -1
- package/metadata/modules/azerionedgeRtdProvider.json +1 -1
- package/metadata/modules/beopBidAdapter.json +1 -1
- package/metadata/modules/betweenBidAdapter.json +1 -1
- package/metadata/modules/bidmaticBidAdapter.json +1 -1
- package/metadata/modules/bidtheatreBidAdapter.json +1 -1
- package/metadata/modules/bliinkBidAdapter.json +1 -1
- package/metadata/modules/blockthroughBidAdapter.json +1 -1
- package/metadata/modules/blueBidAdapter.json +1 -1
- package/metadata/modules/bmsBidAdapter.json +1 -1
- package/metadata/modules/boldwinBidAdapter.json +1 -1
- package/metadata/modules/bridBidAdapter.json +1 -1
- package/metadata/modules/browsiBidAdapter.json +1 -1
- package/metadata/modules/bucksenseBidAdapter.json +1 -1
- package/metadata/modules/carodaBidAdapter.json +1 -1
- package/metadata/modules/categoryTranslation.json +1 -1
- package/metadata/modules/ccxBidAdapter.json +1 -1
- package/metadata/modules/ceeIdSystem.json +1 -1
- package/metadata/modules/chromeAiRtdProvider.json +1 -1
- package/metadata/modules/compassBidAdapter.json +1 -1
- package/metadata/modules/conceptxBidAdapter.json +1 -1
- package/metadata/modules/connatixBidAdapter.json +1 -1
- package/metadata/modules/connectIdSystem.json +1 -1
- package/metadata/modules/connectadBidAdapter.json +1 -1
- package/metadata/modules/contentexchangeBidAdapter.json +1 -1
- package/metadata/modules/conversantBidAdapter.json +1 -1
- package/metadata/modules/copper6sspBidAdapter.json +1 -1
- package/metadata/modules/cpmstarBidAdapter.json +1 -1
- package/metadata/modules/criteoBidAdapter.json +1 -1
- package/metadata/modules/criteoIdSystem.json +1 -1
- package/metadata/modules/cwireBidAdapter.json +1 -1
- package/metadata/modules/czechAdIdSystem.json +1 -1
- package/metadata/modules/dailymotionBidAdapter.json +1 -1
- package/metadata/modules/debugging.json +1 -1
- package/metadata/modules/deepintentBidAdapter.json +1 -1
- package/metadata/modules/deltaprojectsBidAdapter.json +1 -1
- package/metadata/modules/dianomiBidAdapter.json +1 -1
- package/metadata/modules/digitalMatterBidAdapter.json +1 -1
- package/metadata/modules/distroscaleBidAdapter.json +1 -1
- package/metadata/modules/docereeAdManagerBidAdapter.json +3 -3
- package/metadata/modules/docereeBidAdapter.json +3 -3
- package/metadata/modules/dspxBidAdapter.json +1 -1
- package/metadata/modules/e_volutionBidAdapter.json +1 -1
- package/metadata/modules/edge226BidAdapter.json +3 -3
- package/metadata/modules/equativBidAdapter.json +1 -1
- package/metadata/modules/eskimiBidAdapter.json +1 -1
- package/metadata/modules/etargetBidAdapter.json +1 -1
- package/metadata/modules/euidIdSystem.json +1 -1
- package/metadata/modules/exadsBidAdapter.json +1 -1
- package/metadata/modules/feedadBidAdapter.json +1 -1
- package/metadata/modules/fwsspBidAdapter.json +1 -1
- package/metadata/modules/gamoshiBidAdapter.json +1 -1
- package/metadata/modules/glomexBidAdapter.json +1 -1
- package/metadata/modules/goldbachBidAdapter.json +1 -1
- package/metadata/modules/greenbidsBidAdapter.json +1 -1
- package/metadata/modules/gridBidAdapter.json +1 -1
- package/metadata/modules/gumgumBidAdapter.json +1 -1
- package/metadata/modules/hadronIdSystem.json +1 -1
- package/metadata/modules/hadronRtdProvider.json +1 -1
- package/metadata/modules/holidBidAdapter.json +1 -1
- package/metadata/modules/hybridBidAdapter.json +1 -1
- package/metadata/modules/id5IdSystem.json +1 -1
- package/metadata/modules/identityLinkIdSystem.json +1 -1
- package/metadata/modules/illuminBidAdapter.json +1 -1
- package/metadata/modules/impactifyBidAdapter.json +1 -1
- package/metadata/modules/improvedigitalBidAdapter.json +1 -1
- package/metadata/modules/inmobiBidAdapter.json +1 -1
- package/metadata/modules/innityBidAdapter.json +1 -1
- package/metadata/modules/insticatorBidAdapter.json +1 -1
- package/metadata/modules/intentIqIdSystem.json +1 -1
- package/metadata/modules/invibesBidAdapter.json +1 -1
- package/metadata/modules/ipromBidAdapter.json +1 -1
- package/metadata/modules/ixBidAdapter.json +1 -1
- package/metadata/modules/justIdSystem.json +1 -1
- package/metadata/modules/justpremiumBidAdapter.json +1 -1
- package/metadata/modules/jwplayerBidAdapter.json +1 -1
- package/metadata/modules/kargoBidAdapter.json +1 -1
- package/metadata/modules/kubientBidAdapter.json +3 -8
- package/metadata/modules/kueezRtbBidAdapter.json +1 -1
- package/metadata/modules/limelightDigitalBidAdapter.json +2 -2
- package/metadata/modules/liveIntentIdSystem.json +1 -1
- package/metadata/modules/liveIntentRtdProvider.json +1 -1
- package/metadata/modules/livewrappedBidAdapter.json +1 -1
- package/metadata/modules/loopmeBidAdapter.json +1 -1
- package/metadata/modules/lotamePanoramaIdSystem.json +1 -1
- package/metadata/modules/luceadBidAdapter.json +1 -1
- package/metadata/modules/luponmediaBidAdapter.json +1 -1
- package/metadata/modules/madvertiseBidAdapter.json +1 -1
- package/metadata/modules/marsmediaBidAdapter.json +1 -1
- package/metadata/modules/mediaConsortiumBidAdapter.json +1 -1
- package/metadata/modules/mediaforceBidAdapter.json +1 -1
- package/metadata/modules/mediafuseBidAdapter.json +1 -1
- package/metadata/modules/mediagoBidAdapter.json +1 -1
- package/metadata/modules/mediakeysBidAdapter.json +1 -1
- package/metadata/modules/medianetBidAdapter.json +2 -2
- package/metadata/modules/mediasquareBidAdapter.json +1 -1
- package/metadata/modules/mgidBidAdapter.json +1 -1
- package/metadata/modules/mgidRtdProvider.json +1 -1
- package/metadata/modules/mgidXBidAdapter.json +1 -1
- package/metadata/modules/minutemediaBidAdapter.json +1 -1
- package/metadata/modules/missenaBidAdapter.json +1 -1
- package/metadata/modules/mobianRtdProvider.json +1 -1
- package/metadata/modules/mobilefuseBidAdapter.json +1 -1
- package/metadata/modules/mobkoiBidAdapter.json +1 -1
- package/metadata/modules/mobkoiIdSystem.json +1 -1
- package/metadata/modules/nativeryBidAdapter.json +1 -1
- package/metadata/modules/nativoBidAdapter.json +1 -1
- package/metadata/modules/newspassidBidAdapter.json +1 -1
- package/metadata/modules/nextMillenniumBidAdapter.json +1 -1
- package/metadata/modules/nextrollBidAdapter.json +1 -1
- package/metadata/modules/nexx360BidAdapter.json +8 -8
- package/metadata/modules/nobidBidAdapter.json +2 -2
- package/metadata/modules/nodalsAiRtdProvider.json +1 -1
- package/metadata/modules/novatiqIdSystem.json +1 -1
- package/metadata/modules/oguryBidAdapter.json +1 -1
- package/metadata/modules/omsBidAdapter.json +1 -1
- package/metadata/modules/onetagBidAdapter.json +1 -1
- package/metadata/modules/openwebBidAdapter.json +1 -1
- package/metadata/modules/openxBidAdapter.json +1 -1
- package/metadata/modules/operaadsBidAdapter.json +1 -1
- package/metadata/modules/optidigitalBidAdapter.json +1 -1
- package/metadata/modules/optoutBidAdapter.json +1 -1
- package/metadata/modules/orbidderBidAdapter.json +1 -1
- package/metadata/modules/outbrainBidAdapter.json +1 -1
- package/metadata/modules/ozoneBidAdapter.json +1 -1
- package/metadata/modules/pairIdSystem.json +1 -1
- package/metadata/modules/performaxBidAdapter.json +4 -5
- package/metadata/modules/pgamsspBidAdapter.json +1 -1
- package/metadata/modules/pixfutureBidAdapter.json +1 -1
- package/metadata/modules/playdigoBidAdapter.json +1 -1
- package/metadata/modules/prebid-core.json +2 -2
- package/metadata/modules/precisoBidAdapter.json +1 -1
- package/metadata/modules/prismaBidAdapter.json +1 -1
- package/metadata/modules/programmaticXBidAdapter.json +1 -1
- package/metadata/modules/proxistoreBidAdapter.json +1 -1
- package/metadata/modules/publinkIdSystem.json +1 -1
- package/metadata/modules/pubmaticBidAdapter.json +1 -1
- package/metadata/modules/pubmaticIdSystem.json +1 -1
- package/metadata/modules/pulsepointBidAdapter.json +1 -1
- package/metadata/modules/pwbidBidAdapter.json +1 -1
- package/metadata/modules/qtBidAdapter.json +1 -1
- package/metadata/modules/quantcastBidAdapter.json +1 -1
- package/metadata/modules/quantcastIdSystem.json +1 -1
- package/metadata/modules/r2b2BidAdapter.json +1 -1
- package/metadata/modules/raynRtdProvider.json +1 -1
- package/metadata/modules/readpeakBidAdapter.json +1 -1
- package/metadata/modules/relayBidAdapter.json +1 -1
- package/metadata/modules/relevantdigitalBidAdapter.json +1 -1
- package/metadata/modules/resetdigitalBidAdapter.json +1 -1
- package/metadata/modules/responsiveAdsBidAdapter.json +1 -1
- package/metadata/modules/retailspotBidAdapter.json +1 -1
- package/metadata/modules/revcontentBidAdapter.json +7 -117
- package/metadata/modules/rhythmoneBidAdapter.json +1 -1
- package/metadata/modules/richaudienceBidAdapter.json +1 -1
- package/metadata/modules/riseBidAdapter.json +2 -2
- package/metadata/modules/rixengineBidAdapter.json +1 -1
- package/metadata/modules/rtbhouseBidAdapter.json +1 -1
- package/metadata/modules/rubiconBidAdapter.json +1 -1
- package/metadata/modules/rumbleBidAdapter.json +13 -0
- package/metadata/modules/scatteredBidAdapter.json +1 -1
- package/metadata/modules/seedingAllianceBidAdapter.json +1 -1
- package/metadata/modules/seedtagBidAdapter.json +1 -1
- package/metadata/modules/semantiqRtdProvider.json +1 -1
- package/metadata/modules/setupadBidAdapter.json +1 -1
- package/metadata/modules/sevioBidAdapter.json +18 -0
- package/metadata/modules/sharedIdSystem.json +1 -1
- package/metadata/modules/sharethroughBidAdapter.json +1 -1
- package/metadata/modules/showheroes-bsBidAdapter.json +1 -1
- package/metadata/modules/silvermobBidAdapter.json +1 -1
- package/metadata/modules/sirdataRtdProvider.json +1 -1
- package/metadata/modules/slimcutBidAdapter.json +1 -1
- package/metadata/modules/smaatoBidAdapter.json +1 -1
- package/metadata/modules/smartadserverBidAdapter.json +1 -1
- package/metadata/modules/smartxBidAdapter.json +1 -1
- package/metadata/modules/smartyadsBidAdapter.json +1 -1
- package/metadata/modules/smilewantedBidAdapter.json +1 -1
- package/metadata/modules/snigelBidAdapter.json +1 -1
- package/metadata/modules/sonaradsBidAdapter.json +1 -1
- package/metadata/modules/sonobiBidAdapter.json +1 -1
- package/metadata/modules/sovrnBidAdapter.json +4 -4
- package/metadata/modules/sparteoBidAdapter.json +1 -1
- package/metadata/modules/ssmasBidAdapter.json +1 -1
- package/metadata/modules/sspBCBidAdapter.json +1 -1
- package/metadata/modules/stackadaptBidAdapter.json +1 -1
- package/metadata/modules/startioBidAdapter.json +1 -1
- package/metadata/modules/stroeerCoreBidAdapter.json +1 -1
- package/metadata/modules/stvBidAdapter.json +1 -1
- package/metadata/modules/sublimeBidAdapter.json +1 -1
- package/metadata/modules/taboolaBidAdapter.json +1 -1
- package/metadata/modules/taboolaIdSystem.json +1 -1
- package/metadata/modules/tappxBidAdapter.json +1 -1
- package/metadata/modules/targetVideoBidAdapter.json +1 -1
- package/metadata/modules/teadsBidAdapter.json +1 -1
- package/metadata/modules/teadsIdSystem.json +1 -1
- package/metadata/modules/tealBidAdapter.json +1 -1
- package/metadata/modules/themoneytizerBidAdapter.json +3 -8
- package/metadata/modules/tncIdSystem.json +1 -1
- package/metadata/modules/topicsFpdModule.json +1 -1
- package/metadata/modules/tripleliftBidAdapter.json +1 -1
- package/metadata/modules/ttdBidAdapter.json +1 -1
- package/metadata/modules/twistDigitalBidAdapter.json +1 -1
- package/metadata/modules/underdogmediaBidAdapter.json +1 -1
- package/metadata/modules/undertoneBidAdapter.json +1 -1
- package/metadata/modules/unifiedIdSystem.json +1 -1
- package/metadata/modules/unrulyBidAdapter.json +1 -1
- package/metadata/modules/userId.json +1 -1
- package/metadata/modules/validationFpdModule.json +1 -1
- package/metadata/modules/vidazooBidAdapter.json +1 -1
- package/metadata/modules/vidoomyBidAdapter.json +1 -1
- package/metadata/modules/viewdeosDXBidAdapter.json +1 -1
- package/metadata/modules/viouslyBidAdapter.json +1 -1
- package/metadata/modules/visxBidAdapter.json +1 -1
- package/metadata/modules/vlybyBidAdapter.json +1 -1
- package/metadata/modules/voxBidAdapter.json +1 -1
- package/metadata/modules/vrtcalBidAdapter.json +1 -1
- package/metadata/modules/vuukleBidAdapter.json +1 -1
- package/metadata/modules/weboramaRtdProvider.json +1 -1
- package/metadata/modules/welectBidAdapter.json +1 -1
- package/metadata/modules/yahooAdsBidAdapter.json +1 -1
- package/metadata/modules/yieldlabBidAdapter.json +1 -1
- package/metadata/modules/yieldliftBidAdapter.json +1 -1
- package/metadata/modules/yieldloveBidAdapter.json +1 -1
- package/metadata/modules/yieldmoBidAdapter.json +1 -1
- package/metadata/modules/zeotapIdPlusIdSystem.json +1 -1
- package/metadata/modules/zeta_globalBidAdapter.json +1 -1
- package/metadata/modules/zeta_global_sspBidAdapter.json +1 -1
- package/metadata/modules.json +23 -2
- package/modules/1plusXRtdProvider.js +6 -2
- package/modules/adWMGBidAdapter.js +8 -8
- package/modules/admixerBidAdapter.js +9 -4
- package/modules/adspiritBidAdapter.js +8 -8
- package/modules/adtrgtmeBidAdapter.js +2 -2
- package/modules/adxcgBidAdapter.js +2 -36
- package/modules/amxBidAdapter.js +3 -3
- package/modules/chromeAiRtdProvider.js +5 -5
- package/modules/consentManagementGpp.ts +11 -11
- package/modules/consentManagementTcf.ts +33 -33
- package/modules/consentManagementUsp.ts +14 -14
- package/modules/currency.ts +59 -59
- package/modules/cwireBidAdapter.js +2 -2
- package/modules/dailymotionBidAdapter.js +4 -4
- package/modules/dchain.ts +4 -4
- package/modules/dspxBidAdapter.js +8 -8
- package/modules/eightPodBidAdapter.js +8 -8
- package/modules/genericAnalyticsAdapter.ts +50 -50
- package/modules/geolocationRtdProvider.ts +48 -48
- package/modules/getintentBidAdapter.js +4 -2
- package/modules/gmosspBidAdapter.js +1 -1
- package/modules/gppControl_usstates.ts +40 -40
- package/modules/gptPreAuction.ts +34 -34
- package/modules/iasRtdProvider.js +87 -5
- package/modules/intentIqAnalyticsAdapter.js +8 -8
- package/modules/intentIqIdSystem.js +2 -2
- package/modules/jwplayerRtdProvider.js +6 -2
- package/modules/jwplayerVideoProvider.js +13 -9
- package/modules/kubientBidAdapter.js +0 -1
- package/modules/medianetAnalyticsAdapter.js +5 -5
- package/modules/medianetBidAdapter.js +5 -1
- package/modules/michaoBidAdapter.ts +7 -7
- package/modules/multibid/index.ts +31 -31
- package/modules/nexverseBidAdapter.js +1 -1
- package/modules/nodalsAiRtdProvider.js +4 -2
- package/modules/onetagBidAdapter.js +12 -12
- package/modules/openxBidAdapter.js +6 -1
- package/modules/prebidServerBidAdapter/index.ts +130 -130
- package/modules/priceFloors.ts +131 -131
- package/modules/pubmaticBidAdapter.js +21 -1
- package/modules/pubmaticRtdProvider.js +143 -143
- package/modules/pulsepointBidAdapter.js +3 -38
- package/modules/readpeakBidAdapter.js +17 -17
- package/modules/rtdModule/index.ts +8 -8
- package/modules/rtdModule/spec.ts +30 -30
- package/modules/rubiconBidAdapter.js +5 -1
- package/modules/rumbleBidAdapter.js +128 -0
- package/modules/rumbleBidAdapter.md +114 -0
- package/modules/schain.ts +4 -4
- package/modules/sevioBidAdapter.js +262 -0
- package/modules/sevioBidAdapter.md +29 -0
- package/modules/sharedIdSystem.ts +29 -29
- package/modules/storageControl.ts +72 -72
- package/modules/tcfControl.ts +60 -60
- package/modules/themoneytizerBidAdapter.js +2 -4
- package/modules/ttdBidAdapter.js +11 -1
- package/modules/ttdBidAdapter.md +3 -1
- package/modules/userId/index.ts +129 -119
- package/modules/userId/spec.ts +136 -136
- package/modules/validationFpdModule/index.ts +4 -4
- package/modules/videoModule/index.ts +37 -37
- package/modules/weboramaRtdProvider.js +30 -11
- package/modules/welectBidAdapter.js +3 -3
- package/modules/yandexBidAdapter.js +67 -24
- package/package.json +2 -3
- package/src/activities/params.js +6 -0
- package/src/activities/redactor.ts +8 -8
- package/src/adRendering.ts +61 -61
- package/src/adUnits.ts +100 -100
- package/src/adapterManager.ts +605 -605
- package/src/adapters/bidderFactory.ts +99 -99
- package/src/ajax.ts +39 -39
- package/src/auction.ts +217 -217
- package/src/banner.ts +28 -28
- package/src/bidTTL.ts +16 -16
- package/src/bidderSettings.ts +46 -46
- package/src/bidfactory.ts +107 -107
- package/src/config.ts +65 -65
- package/src/consentHandler.ts +25 -25
- package/src/constants.ts +14 -14
- package/src/cpmBucketManager.ts +7 -7
- package/src/events.ts +75 -75
- package/src/fpd/enrichment.ts +8 -8
- package/src/hook.ts +14 -14
- package/src/mediaTypes.ts +16 -16
- package/src/native.ts +62 -62
- package/src/prebid.ts +362 -362
- package/src/prebidGlobal.ts +18 -18
- package/src/refererDetection.ts +54 -54
- package/src/storageManager.ts +76 -73
- package/src/targeting.ts +215 -215
- package/src/types/common.d.ts +29 -29
- package/src/types/local/buildOptions.d.ts +3 -3
- package/src/types/local/shim.d.ts +6 -6
- package/src/types/objects.d.ts +15 -15
- package/src/types/ortb/common.d.ts +1 -1
- package/src/types/ortb/ext/dchain.d.ts +69 -69
- package/src/types/ortb/ext/dsa.d.ts +50 -50
- package/src/types/ortb/request.d.ts +21 -21
- package/src/types/ortb/response.d.ts +6 -6
- package/src/userSync.ts +32 -32
- package/src/utils/objects.ts +11 -11
- package/src/utils/perfMetrics.ts +193 -193
- package/src/utils/promise.ts +14 -14
- package/src/utils/ttlCollection.ts +25 -25
- package/src/video.ts +73 -73
- package/src/videoCache.ts +60 -60
- package/test/helpers/index_adapter_utils.js +1 -2
- package/test/helpers/refererDetectionHelper.js +2 -2
- package/test/mocks/timers.js +12 -9
- package/test/spec/adloader_spec.js +13 -13
- package/test/spec/config_spec.js +9 -3
- package/test/spec/libraries/greedy/greedyPromise_spec.js +2 -2
- package/test/spec/modules/1plusXRtdProvider_spec.js +2 -9
- package/test/spec/modules/adgridBidAdapter_spec.js +6 -6
- package/test/spec/modules/adkernelAdnBidAdapter_spec.js +127 -127
- package/test/spec/modules/adkernelBidAdapter_spec.js +308 -308
- package/test/spec/modules/admediaBidAdapter_spec.js +34 -34
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +7 -7
- package/test/spec/modules/adspiritBidAdapter_spec.js +1 -1
- package/test/spec/modules/adtrgtmeBidAdapter_spec.js +3 -3
- package/test/spec/modules/adtrueBidAdapter_spec.js +19 -19
- package/test/spec/modules/advertisingBidAdapter_spec.js +2 -2
- package/test/spec/modules/bidmaticBidAdapter_spec.js +2 -2
- package/test/spec/modules/datablocksBidAdapter_spec.js +115 -115
- package/test/spec/modules/deepintentBidAdapter_spec.js +51 -51
- package/test/spec/modules/dexertoBidAdapter_spec.js +16 -16
- package/test/spec/modules/dochaseBidAdapter_spec.js +17 -17
- package/test/spec/modules/dspxBidAdapter_spec.js +23 -23
- package/test/spec/modules/ehealthcaresolutionsBidAdapter_spec.js +17 -17
- package/test/spec/modules/enrichmentLiftMeasurement_spec.js +8 -8
- package/test/spec/modules/equativBidAdapter_spec.js +1 -1
- package/test/spec/modules/finativeBidAdapter_spec.js +11 -11
- package/test/spec/modules/ftrackIdSystem_spec.js +16 -16
- package/test/spec/modules/fwsspBidAdapter_spec.js +5 -5
- package/test/spec/modules/hypelabBidAdapter_spec.js +9 -9
- package/test/spec/modules/iasRtdProvider_spec.js +89 -8
- package/test/spec/modules/intentIqIdSystem_spec.js +3 -3
- package/test/spec/modules/invibesBidAdapter_spec.js +2 -2
- package/test/spec/modules/kargoBidAdapter_spec.js +7 -7
- package/test/spec/modules/lane4BidAdapter_spec.js +17 -17
- package/test/spec/modules/lemmaDigitalBidAdapter_spec.js +37 -37
- package/test/spec/modules/liveIntentExternalIdSystem_spec.js +5 -0
- package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +5 -0
- package/test/spec/modules/liveIntentIdSystem_spec.js +38 -0
- package/test/spec/modules/liveIntentRtdProvider_spec.js +2 -2
- package/test/spec/modules/mediaeyesBidAdapter_spec.js +166 -166
- package/test/spec/modules/mediagoBidAdapter_spec.js +1 -1
- package/test/spec/modules/medianetBidAdapter_spec.js +1724 -1707
- package/test/spec/modules/mediasquareBidAdapter_spec.js +7 -7
- package/test/spec/modules/nexx360BidAdapter_spec.js +6 -6
- package/test/spec/modules/nobidBidAdapter_spec.js +16 -16
- package/test/spec/modules/onetagBidAdapter_spec.js +47 -47
- package/test/spec/modules/openxBidAdapter_spec.js +129 -0
- package/test/spec/modules/optoutBidAdapter_spec.js +1 -1
- package/test/spec/modules/orbitsoftBidAdapter_spec.js +85 -85
- package/test/spec/modules/oxxionAnalyticsAdapter_spec.js +1 -1
- package/test/spec/modules/ozoneBidAdapter_spec.js +439 -439
- package/test/spec/modules/prebidServerBidAdapter_spec.js +2 -2
- package/test/spec/modules/prismaBidAdapter_spec.js +6 -6
- package/test/spec/modules/pubmaticBidAdapter_spec.js +73 -3
- package/test/spec/modules/pubmaticRtdProvider_spec.js +1389 -1389
- package/test/spec/modules/pwbidBidAdapter_spec.js +25 -25
- package/test/spec/modules/relevadRtdProvider_spec.js +1 -1
- package/test/spec/modules/relevatehealthBidAdapter_spec.js +16 -16
- package/test/spec/modules/richaudienceBidAdapter_spec.js +10 -10
- package/test/spec/modules/rubiconBidAdapter_spec.js +7 -7
- package/test/spec/modules/rumbleBidAdapter_spec.js +125 -0
- package/test/spec/modules/sevioBidAdapter_spec.js +209 -0
- package/test/spec/modules/smaatoBidAdapter_spec.js +30 -30
- package/test/spec/modules/smarticoBidAdapter_spec.js +10 -10
- package/test/spec/modules/stvBidAdapter_spec.js +32 -32
- package/test/spec/modules/tapnativeBidAdapter_spec.js +17 -17
- package/test/spec/modules/themoneytizerBidAdapter_spec.js +0 -6
- package/test/spec/modules/ttdBidAdapter_spec.js +27 -2
- package/test/spec/modules/uid2IdSystem_spec.js +3 -3
- package/test/spec/modules/userId_spec.js +41 -7
- package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +1953 -154
- package/test/spec/modules/yandexBidAdapter_spec.js +128 -0
- package/test/spec/refererDetection_spec.js +11 -11
- package/test/spec/unit/core/storageManager_spec.js +20 -1
- package/test/spec/unit/core/targeting_spec.js +8 -8
- package/test/spec/utils_spec.js +25 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prebidServerBidAdapter_spec.js","names":["expect","PrebidServer","Adapter","resetSyncedStatus","validateConfig","s2sDefaultConfig","processPBSRequest","adapterManager","PBS_ADAPTER_NAME","utils","deepAccess","deepClone","mergeDeep","ajax","config","events","EVENTS","DEBUG_MODE","server","requestBids","redactor","activityRules","hook","decorateAdUnitsWithNativeParams","auctionManager","stubAuctionIndex","addPaapiConfig","registerBidder","getGlobal","addFPDToBidderRequest","deepSetValue","ACTIVITY_TRANSMIT_UFPD","MODULE_TYPE_PREBID","consolidateEids","extractEids","getPBSBidderConfig","markWinningBid","CONFIG","accountId","enabled","bidders","cacheMarkup","endpoint","p1Consent","noP1Consent","REQUEST","NATIVE_ORTB_MTO","ortb","context","plcmttype","eventtrackers","event","methods","assets","id","required","img","type","w","h","data","len","title","ext","custom_param","key","ver","VIDEO_REQUEST","OUTSTREAM_VIDEO_REQUEST","playerSize","mimes","renderer","url","render","bid","ANOutstreamVideo","renderAd","targetId","adUnitCode","adResponse","banner","sizes","code","mediaTypes","video","skip","bids","bidder","params","placementId","skippable","playback_method","BID_REQUESTS","RESPONSE_NO_BID_NO_UNIT","RESPONSE_NO_BID_UNIT_SET","RESPONSE_NO_COOKIE","RESPONSE_NO_PBS_COOKIE","RESPONSE_OPENRTB","RESPONSE_OPENRTB_VIDEO","seatbid","impid","price","adm","adid","adomain","iurl","cid","crid","dealid","prebid","bidid","appnexus","brand_id","auction_id","bidder_id","bid_ad_type","seat","responsetimemillis","RESPONSE_OPENRTB_NATIVE","addFpdEnrichmentsToS2SRequest","s2sReq","bidderRequests","ortb2Fragments","global","ortb2","describe","cfg1","cfg2","beforeEach","it","adapter","to","eql","addBidResponse","sinon","spy","done","reject","prepRequest","req","ad_units","forEach","adUnit","nativeParams","before","ready","resetConfig","setConfig","floors","afterEach","resetHistory","after","sandbox","redactorMocks","createSandbox","stub","callsFake","hasOwnProperty","component","o","bidRequest","mock","s2sConfig","restore","callBids","assert","calledWithMatch","Object","entries","_ref","calledWith","au","map","ortb2Imp","tid","makeRequest","JSON","parse","requests","requestBody","enableTIDs","source","not","exist","imp","createtids","equal","auctionId","_ref2","t","allow","activity","match","any","browsingTopics","cfg","tmaxmax","s2sCfg","payloadWithFragments","requestBidsTimeout","maxTimeout","tmax","Math","floor","configWithCustomHeaders","customHeaders","customHeader1","reqWithNewConfig","reqHeaders","requestHeaders","badConfig","badCfgRequest","length","badBidderRequest","gdprConsent","consentString","addtlConsent","gdprApplies","apiVersion","vendorData","purpose","consents","filterBidderlessCalls","badReq","bidderCode","requestBid","ortb2Config","videoBid","be","undefined","gzipStub","gzipSupportStub","getParamStub","debugStub","resolves","assign","endpointCompression","returns","withArgs","setTimeout","calledOnce","true","include","called","false","and","a","mockTCF","applies","hasP1Consent","arguments","removeAll","consentConfig","consentManagement","cmpApi","gdprBidRequest","regs","gdpr","is","user","consent","ConsentedProvidersSettings","consented_providers","uspBidRequest","uspConsent","us_privacy","consentBidRequest","cookieSyncConfig","syncEndpoint","s2sBidRequest","gdpr_consent","contain","have","lengthOf","account","_config","s2sreq","device","ifa","app","bundle","window","screen","width","height","publisher","runTest","expectedFloor","expectedCur","requestCount","bidfloor","bidfloorcur","getFloorResponse","getFloor","currency","mediaType","size","adServerCurrency","bidId","adUnits","transactionId","bid_id","pbsReq","imp1","imp2","Error","_ref3","updateBid","format","obj","target","floorFilter","_ref4","_ref5","_ref6","flatMap","orig","expectDesc","conversionFn","amount","from","parseFloat","_ref7","mockConvertCurrency","origConvertCurrency","convertCurrency","ORTB_NATIVE_REQ","native","ortbReq","request","deep","openRtbNativeRequest","nativeReq","ortbNative","icon","aspect_ratios","icons","filter","hmin","wmin","site","domain","content","language","page","aliasBidder","haveOwnProperty","aliases","beintoo","auctiontimestamp","targeting","includebidderkeys","includewinners","adjustedConfig","unit","pbjs","bidderD","alias","skipPbsAliasing","aid","channel","name","version","bidderReqs","callCookieSync","userSync","filterSettings","all","iframe","image","userSyncLimit","limit","missing","0","_ref8","setup","gppConsent","applicableSections","gppString","gpp","gpp_sid","adapterOptions","requestParams","ua","ip","foo","eids","payload","eidpermissions","unknown","push","rubicon","globalEids","bidderconfig","members","concat","bidRequests","parsedRequestBody","find","method","cur","extPrebid","cache","vastxml","schain","complete","nodes","asi","hp","sid","schains","siteId","zoneId","_ref9","fpd","chain1","chain","chain2","multibid","maxBids","expected","maxbids","test","commonSite","keywords","search","commonUser","gender","userrating","pageType","category","yob","geo","country","registered","interests","bcat","badv","allowedBidders","commonContextExpected","fromEntries","allowUnknownBidderCodes","clonedReq","console","log","nested","property","adserver","adslot","l0","l2","A","B","storedRequestId","storedrequest","triggerPixel","insertUserSyncIframe","logError","emit","respond","bidderRequest","BIDDER_ERROR","success","error","mockAjax","_","callback","_ref0","timedOut","stringify","notCalled","firstCall","args","response","cacheResponse","targetingTestData","hb_cache_path","hb_cache_host","item","adserverTargeting","pbjsResponse","modifiedResponse","that","equals","rubiconAdapter","registerSyncs","getBidAdapter","calledTwice","secondCall","BIDDER_DONE","meta","advertiserDomains","dchain","original","returnallbidstatus","nonbidResponse","seatnonbid","responding","thirdCall","SEAT_NON_BID","requestedBidders","getCall","PBS_ANALYTICS","atagResponse","analytics","tags","atag","BEFORE_PBS_HTTP","defaultTtl","s2sVidRequest","vastXml","cacheId","hb_uuid","win","get","bidReq","mks2sReq","requestId","actual","RESPONSE_OPENRTB2","adaptercode","deferBilling","deferRendering","csRes","_ref1","syncer","syncTimeout","bidder_status","usersync","AU","FLEDGE_RESP","fledge","auctionconfigs","fledgeStub","fledgeHook","next","_len","Array","_key","getHooks","remove","paapi","expectFledgeCalls","fail","_ref10","getCurrentBidder","e","uniqueIdCount","triggerPixelStub","staticUniqueIds","getUniqueIdentifierStr","burlEvent","winEvent","trackerEvent","resp","burl","clonedResponse","logErrorSpy","options","timeout","defaultVendor","singleRequest","getConfig","syncUrlModifier","an alias","aliasBidAdapter","a server side alias","_ref11","setupAlias","aliasRegistry","accoundId","coopSync","api","instl","debug","floorMin","floorMinCur","k1","bidderA","k2","k3","k","inner","array","_ref12","mkEid","value","eidEntry","eid","conflicts","bidderB","_ref13","permissions","Set"],"sourceRoot":"../../../../..","sources":["test/spec/modules/prebidServerBidAdapter_spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {\n PrebidServer as Adapter,\n resetSyncedStatus,\n validateConfig,\n s2sDefaultConfig,\n processPBSRequest\n} from 'modules/prebidServerBidAdapter/index.js';\nimport adapterManager, {PBS_ADAPTER_NAME} from 'src/adapterManager.js';\nimport * as utils from 'src/utils.js';\nimport {deepAccess, deepClone, mergeDeep} from 'src/utils.js';\nimport {ajax} from 'src/ajax.js';\nimport {config} from 'src/config.js';\nimport * as events from 'src/events.js';\nimport { EVENTS, DEBUG_MODE } from 'src/constants.js';\nimport {server} from 'test/mocks/xhr.js';\nimport 'modules/appnexusBidAdapter.js'; // appnexus alias test\nimport 'modules/rubiconBidAdapter.js'; // rubicon alias test\nimport {requestBids} from 'src/prebid.js';\nimport 'modules/currency.js'; // adServerCurrency test\nimport 'modules/userId/index.js';\nimport 'modules/multibid/index.js';\nimport 'modules/priceFloors.js';\nimport 'modules/consentManagementTcf.js';\nimport 'modules/consentManagementUsp.js';\nimport 'modules/consentManagementGpp.js';\nimport 'modules/paapi.js';\nimport * as redactor from 'src/activities/redactor.js';\nimport * as activityRules from 'src/activities/rules.js';\nimport {hook} from '../../../src/hook.js';\nimport {decorateAdUnitsWithNativeParams} from '../../../src/native.js';\nimport {auctionManager} from '../../../src/auctionManager.js';\nimport {stubAuctionIndex} from '../../helpers/indexStub.js';\nimport {addPaapiConfig, registerBidder} from 'src/adapters/bidderFactory.js';\nimport {getGlobal} from '../../../src/prebidGlobal.js';\nimport {addFPDToBidderRequest} from '../../helpers/fpd.js';\nimport {deepSetValue} from '../../../src/utils.js';\nimport {ACTIVITY_TRANSMIT_UFPD} from '../../../src/activities/activities.js';\nimport {MODULE_TYPE_PREBID} from '../../../src/activities/modules.js';\nimport {\n consolidateEids,\n extractEids,\n getPBSBidderConfig\n} from '../../../modules/prebidServerBidAdapter/bidderConfig.js';\nimport {markWinningBid} from '../../../src/adRendering.js';\n\nlet CONFIG = {\n accountId: '1',\n enabled: true,\n bidders: ['appnexus'],\n cacheMarkup: 2,\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction',\n noP1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n};\n\nconst REQUEST = {\n 'account_id': '1',\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'max_bids': 1,\n 'timeout_millis': 1000,\n 'secure': 0,\n 'url': '',\n 'prebid_version': '0.30.0-pre',\n 's2sConfig': CONFIG,\n 'ad_units': [\n {\n 'code': 'div-gpt-ad-1460505748561-0',\n 'sizes': [[300, 250], [300, 600]],\n 'mediaTypes': {\n 'banner': {\n 'sizes': [[300, 250], [300, 300]]\n },\n 'native': {\n 'title': {\n 'required': true,\n 'len': 800\n },\n 'image': {\n 'required': true,\n 'sizes': [989, 742],\n },\n 'icon': {\n 'required': true,\n 'aspect_ratios': [{\n 'min_height': 10,\n 'min_width': 10,\n 'ratio_height': 1,\n 'ratio_width': 1\n }]\n },\n 'sponsoredBy': {\n 'required': true\n }\n }\n },\n 'transactionId': '4ef956ad-fd83-406d-bd35-e4bb786ab86c',\n 'adUnitId': 'au-id-1',\n 'bids': [\n {\n 'bid_id': '123',\n 'bidder': 'appnexus',\n 'params': {\n 'placementId': '10433394',\n 'member': 123\n }\n }\n ]\n }\n ]\n};\n\nconst NATIVE_ORTB_MTO = {\n ortb: {\n context: 3,\n plcmttype: 2,\n eventtrackers: [\n {\n event: 1,\n methods: [\n 1\n ]\n },\n {\n event: 2,\n methods: [\n 2\n ]\n }\n ],\n assets: [\n {\n id: 1,\n required: 1,\n img: {\n type: 3,\n w: 300,\n h: 250\n }\n },\n {\n id: 2,\n required: 1,\n img: {\n type: 1,\n w: 127,\n h: 83\n }\n },\n {\n id: 3,\n required: 1,\n data: {\n type: 1,\n len: 25\n }\n },\n {\n id: 4,\n required: 1,\n title: {\n len: 140\n }\n },\n {\n id: 5,\n required: 1,\n data: {\n type: 2,\n len: 40\n }\n },\n {\n id: 6,\n required: 1,\n data: {\n type: 12,\n len: 15\n }\n },\n ],\n ext: {\n custom_param: {\n key: 'custom_value'\n }\n },\n ver: '1.2'\n }\n}\n\nconst VIDEO_REQUEST = {\n 'account_id': '1',\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'max_bids': 1,\n 'timeout_millis': 1000,\n 'secure': 0,\n 'url': '',\n 'prebid_version': '1.4.0-pre',\n 's2sConfig': CONFIG,\n 'ad_units': [\n {\n 'code': 'div-gpt-ad-1460505748561-0',\n 'sizes': [640, 480],\n 'mediaTypes': {\n 'video': {\n 'playerSize': [[640, 480]],\n 'mimes': ['video/mp4']\n }\n },\n 'transactionId': '4ef956ad-fd83-406d-bd35-e4bb786ab86c',\n 'bids': [\n {\n 'bid_id': '123',\n 'bidder': 'appnexus',\n 'params': { 'placementId': '12349520' }\n }\n ]\n }\n ]\n};\n\nconst OUTSTREAM_VIDEO_REQUEST = {\n 'account_id': '1',\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'max_bids': 1,\n 'timeout_millis': 1000,\n 'secure': 0,\n 'url': '',\n 'prebid_version': '1.4.0-pre',\n 's2sConfig': CONFIG,\n 'ad_units': [\n {\n 'code': 'div-gpt-ad-1460505748561-0',\n 'sizes': [640, 480],\n 'mediaTypes': {\n 'video': {\n playerSize: [[640, 480]],\n context: 'outstream',\n mimes: ['video/mp4'],\n renderer: {\n url: 'https://acdn.adnxs.com/video/outstream/ANOutstreamVideo.js',\n render: function (bid) {\n ANOutstreamVideo.renderAd({\n targetId: bid.adUnitCode,\n adResponse: bid.adResponse,\n });\n }\n }\n },\n banner: { sizes: [[300, 250]] }\n },\n 'transactionId': '4ef956ad-fd83-406d-bd35-e4bb786ab86c',\n 'bids': [\n {\n 'bid_id': '123',\n 'bidder': 'appnexus',\n 'params': { 'placementId': '12349520' }\n }\n ]\n },\n {\n code: 'video1',\n mediaTypes: {\n video: {\n playerSize: [640, 480],\n context: 'outstream',\n mimes: ['video/mp4'],\n skip: 1\n }\n },\n bids: [\n {\n bidder: 'appnexus',\n params: {\n placementId: 13232385,\n video: {\n skippable: true,\n playback_method: ['auto_play_sound_off']\n }\n }\n }\n ]\n }\n ],\n};\n\nlet BID_REQUESTS;\n\nconst RESPONSE_NO_BID_NO_UNIT = {\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'status': 'OK',\n 'bidder_status': [{\n 'bidder': 'appnexus',\n 'response_time_ms': 132,\n 'no_bid': true\n }]\n};\n\nconst RESPONSE_NO_BID_UNIT_SET = {\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'status': 'OK',\n 'bidder_status': [{\n 'bidder': 'appnexus',\n 'ad_unit': 'div-gpt-ad-1460505748561-0',\n 'response_time_ms': 91,\n 'no_bid': true\n }]\n};\n\nconst RESPONSE_NO_COOKIE = {\n 'tid': 'd6eca075-4a59-4346-bdb3-86531830ef2c',\n 'status': 'OK',\n 'bidder_status': [{\n 'bidder': 'pubmatic',\n 'no_cookie': true,\n 'usersync': {\n 'url': '//ads.pubmatic.com/AdServer/js/user_sync.html?predirect=http://localhost:8000/setuid?bidder=pubmatic&uid=',\n 'type': 'iframe'\n }\n }]\n};\n\nconst RESPONSE_NO_PBS_COOKIE = {\n 'tid': '882fe33e-2981-4257-bd44-bd3b03945f48',\n 'status': 'no_cookie',\n 'bidder_status': [{\n 'bidder': 'rubicon',\n 'no_cookie': true,\n 'usersync': {\n 'url': 'https://pixel.rubiconproject.com/exchange/sync.php?p=prebid',\n 'type': 'redirect'\n }\n }, {\n 'bidder': 'pubmatic',\n 'no_cookie': true,\n 'usersync': {\n 'url': '//ads.pubmatic.com/AdServer/js/user_sync.html?predirect=https%3A%2F%2Fprebid.adnxs.com%2Fpbs%2Fv1%2Fsetuid%3Fbidder%3Dpubmatic%26uid%3D',\n 'type': 'iframe'\n }\n }, {\n 'bidder': 'appnexus',\n 'response_time_ms': 162,\n 'num_bids': 1,\n 'debug': [{\n 'request_uri': 'http://ib.adnxs.com/openrtb2',\n 'request_body': '{\"id\":\"882fe33e-2981-4257-bd44-bd3b03945f48\",\"imp\":[{\"id\":\"/19968336/header-bid-tag-0\",\"banner\":{\"w\":300,\"h\":250,\"format\":[{\"w\":300,\"h\":250}]},\"secure\":1,\"ext\":{\"appnexus\":{\"placement_id\":5914989}}}],\"site\":{\"domain\":\"nytimes.com\",\"page\":\"http://www.nytimes.com\"},\"device\":{\"ua\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\",\"ip\":\"75.97.0.47\"},\"user\":{\"id\":\"3519479852893340159\",\"buyeruid\":\"3519479852893340159\"},\"at\":1,\"tmax\":1000,\"source\":{\"fd\":1,\"tid\":\"882fe33e-2981-4257-bd44-bd3b03945f48\"}}',\n 'response_body': '{\"id\":\"882fe33e-2981-4257-bd44-bd3b03945f48\"}',\n 'status_code': 200\n }]\n }],\n 'bids': [{\n 'bid_id': '123',\n 'code': 'div-gpt-ad-1460505748561-0',\n 'creative_id': '70928274',\n 'bidder': 'appnexus',\n 'price': 0.07425,\n 'adm': '<script type=\"application/javascript\" src=\"https://secure-nym.adnxs.com/ab?e=wqT_3QLeCPBOXgQAAAMA1gAFAQi5krDKBRCwho2ft8LKoCMY_4PozveI7eswIAEqLQnbgoxDEVi5PxElYqnyDAKzPxkAAAAgXA8zQCHOzMzMzMy8PykzMwECsMM_MO2C6QI47RtA_AxIAlCSj-khWL-tNGAAaNfUTniivwSAAQGKAQNVU0SSAQEG8FSYAawCoAH6AagBAbABALgBAsABBcgBAtABCdgBAOABAPABAIoCkgF1ZignYScsIDE2OTc2MjksIDE0OTgxNTUzMjEpO3VmKCdyJywgNzA5MjgyNzQsQh4ABGMnATsQODY2NTVKPAAgZycsIDM5OTgzTh0AKGknLCA0OTM1MTUsMlcA8IeSAs0CIWhWRE5jZ2pfdVlVSUVKS1A2U0VZQUNDX3JUUXdBRGdBUUFCSV9BeFE3WUxwQWxnQVlKOEJhQUJ3QUhnQWdBRUFpQUVBa0FFQm1BRUJvQUVCcUFFRHNBRUF1UUhPRGRmZE16UERQOEVCemczWDNUTXp3el9KQVFBQUFBQUFBUEFfMlFFCQw0QUR3UC1BQnk0OGU5UUUFFChnQUlCaUFLMzdjRQEIQEIzNWNCaUFMZzZJNEVpQUxoDQgAag0IAG4NCABvAQhIa0FJSG1BSUFvQUlBcUFJR3RRSQVUAHYNCPBed0FJQXlBSUEwQUlBMkFJQTRBTDYtd2ZvQXBqaXI4b0Y4Z0lGZG1semFUSDRBZ0NBQXdHUUF3Q1lBd0dvQV8tNWhRaTZBd2xPV1UweU9qTTJNamcumgItIV93ajdud2oyUAHwTHY2MDBJQUFvQURvSlRsbE5Nam96TmpJNNgCAOACvtUr6gIWaHR0cDovL3d3dy5ueXRpbWVzLmNvbfICEQoGQURWX0lEEgcxNjk3NjI5BRQIQ1BHBRQt9AEUCAVDUAETBAgxTSXA8gINCghBRFZfRlJFURIBMPICGQoPQ1VTVE9NX01PREVMX0lEEgYxMzA1NTTyAh8KFjIcAFBMRUFGX05BTUUSBXZpc2kx8gIoCho2IgAIQVNUAUkcSUZJRUQSCjFBzvB4NDkxNDSAAwCIAwGQAwCYAxSgAwGqAwDAA6wCyAMA2APjBuADAOgDAPgDA4AEAJIECS9vcGVucnRiMpgEAKIECjc1Ljk3LjAuNDeoBACyBAoIABAAGAAgADAAuAQAwAQAyAQA0gQJTllNMjozNjI42gQCCAHgBADwBGGlIIgFAZgFAKAF_xEBuAGqBSQ4ODJmZTMzZS0yOTgxLTQyNTctYmQ0NC1iZDNiMDM5NDVmNDjABQDJBQAAAQI08D_SBQkJAAAAAAAAAAA.&s=d4bc7cd2e5d7e1910a591bc97df6ae9e63333e52&referrer=http%3A%2F%2Fwww.nytimes.com&pp=${AUCTION_PRICE}&\"></script>',\n 'width': 300,\n 'height': 250,\n 'response_time_ms': 162\n }]\n};\n\nconst RESPONSE_OPENRTB = {\n 'id': 'c7dcf14f',\n 'seatbid': [\n {\n 'bid': [\n {\n 'id': '8750901685062148',\n 'impid': 'div-gpt-ad-1460505748561-0',\n 'price': 0.5,\n 'adm': '<script src=\"http://lax1-ib.adnxs.com/ab?e=wqT_3QKgB6CgAwAAAwDWAAUBCJ7kvtMFEPft7JnIuImSdBj87IDv8q21rXcqNgkAAAECCOA_EQEHNAAA4D8ZAAAAgOtR4D8hERIAKREJADERG6Aw8ub8BDi-B0C-B0gCUNbLkw5Y4YBIYABokUB48NIEgAEBigEDVVNEkgUG8FKYAawCoAH6AagBAbABALgBAsABA8gBAtABCdgBAOABAPABAIoCOnVmKCdhJywgNDk0NDcyLCAxNTE3MjY5NTM0KTt1ZigncicsIDI5NjgxMTEwLDIeAPCckgKBAiFqRHF3RUFpNjBJY0VFTmJMa3c0WUFDRGhnRWd3QURnQVFBUkl2Z2RROHViOEJGZ0FZUF9fX184UGFBQndBWGdCZ0FFQmlBRUJrQUVCbUFFQm9BRUJxQUVEc0FFQXVRRXBpNGlEQUFEZ1A4RUJLWXVJZ3dBQTREX0pBVkx3MU5mdl9lMF8yUUVBQUFBQUFBRHdQLUFCQVBVQgUPKEpnQ0FLQUNBTFVDBRAETDAJCPBUTUFDQWNnQ0FkQUNBZGdDQWVBQ0FPZ0NBUGdDQUlBREFaQURBSmdEQWFnRHV0Q0hCTG9ERVdSbFptRjFiSFFqVEVGWU1Ub3pPRFk1mgI5IS1ndndfUTYEAfCENFlCSUlBUW9BRG9SWkdWbVlYVnNkQ05NUVZneE9qTTROamsu2ALoB-ACx9MB6gJHaHR0cDovL3ByZWJpZC5sb2NhbGhvc3Q6OTk5OS9pbnRlZ3JhdGlvbkV4YW1wbGVzL2dwdC9hcHBuZXh1cy10ZXN0Lmh0bWzyAhAKBkFEVl9JRBIGNCXTHPICEQoGQ1BHARM4BzE5Nzc5MzPyAhAKBUNQBRPwljg1MTM1OTSAAwGIAwGQAwCYAxSgAwGqAwDAA6wCyAMA2AMA4AMA6AMA-AMDgAQAkgQJL29wZW5ydGIymAQAogQMMjE2LjU1LjQ3Ljk0qAQAsgQMCAAQABgAIAAwADgAuAQAwAQAyAQA0gQRZGVmYXVsdCNMQVgxOjM4NjnaBAIIAeAEAPAE1suTDogFAZgFAKAF______8BA7ABqgUkYzdkY2YxNGYtZjliYS00Yzc3LWEzYjQtMjdmNmRmMzkwNjdmwAUAyQVpLhTwP9IFCQkJDFAAANgFAeAFAfAFAfoFBAgAEACQBgA.&s=f4dc8b6fa65845d08f0a87c145e12cb7d6288c2a&referrer=http%3A%2F%2Fprebid.localhost%3A9999%2FintegrationExamples%2Fgpt%2Fappnexus-test.html&pp=${AUCTION_PRICE}\"></script>',\n 'adid': '29681110',\n 'adomain': ['appnexus.com'],\n 'iurl': 'http://lax1-ib.adnxs.com/cr?id=2968111',\n 'cid': '958',\n 'crid': '2968111',\n 'dealid': 'test-dealid',\n 'w': 300,\n 'h': 250,\n 'ext': {\n 'prebid': {\n 'type': 'banner',\n 'event': {\n 'win': 'http://wurl.org?id=333'\n },\n 'meta': {\n 'dchain': { 'ver': '1.0', 'complete': 0, 'nodes': [{ 'asi': 'magnite.com', 'bsid': '123456789', }] }\n }\n },\n 'bidder': {\n 'appnexus': {\n 'brand_id': 1,\n 'auction_id': 3,\n 'bidder_id': 2\n }\n }\n }\n }\n ],\n 'seat': 'appnexus'\n },\n ],\n 'cur': 'EUR',\n 'ext': {\n 'responsetimemillis': {\n 'appnexus': 8,\n }\n }\n};\n\nconst RESPONSE_OPENRTB_VIDEO = {\n id: 'c7dcf14f',\n seatbid: [\n {\n bid: [\n {\n id: '1987250005171537465',\n impid: 'div-gpt-ad-1460505748561-0',\n price: 10,\n adm: '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><VAST version=\"3.0\"><Ad id=\"81877115\" sequence=\"0\"><Wrapper><AdSystem version=\"3.0\">adnxs</AdSystem><VASTAdTagURI><![CDATA[http://lax1-ib.adnxs.com/ab?e=wqT_3QLZBq]]></VASTAdTagURI><Impression><![CDATA[http://ib.adnxs.com/nop]]></Impression><Creatives><Creative adID=\"81877115\"><Linear></Linear></Creative></Creatives></Wrapper></Ad></VAST>',\n adid: '81877115',\n adomain: ['appnexus.com'],\n iurl: 'http://lax1-ib.adnxs.com/cr?id=81877115',\n cid: '3535',\n crid: '81877115',\n dealid: 'test-dealid',\n w: 1,\n h: 1,\n ext: {\n prebid: {\n type: 'video',\n bidid: '654321'\n },\n bidder: {\n appnexus: {\n brand_id: 1,\n auction_id: '6673622101799484743',\n bidder_id: 2,\n bid_ad_type: 1,\n },\n },\n },\n },\n ],\n seat: 'appnexus',\n },\n ],\n ext: {\n responsetimemillis: {\n appnexus: 81,\n },\n },\n};\n\nconst RESPONSE_OPENRTB_NATIVE = {\n 'id': 'c7dcf14f',\n 'seatbid': [\n {\n 'bid': [\n {\n 'id': '6451317310275562039',\n 'impid': 'div-gpt-ad-1460505748561-0',\n 'price': 10,\n 'adm': {\n 'ver': '1.2',\n 'assets': [\n {\n 'id': 1,\n 'img': {\n 'url': 'https://vcdn.adnxs.com/p/creative-image/f8/7f/0f/13/f87f0f13-230c-4f05-8087-db9216e393de.jpg',\n 'w': 989,\n 'h': 742,\n 'ext': {\n 'appnexus': {\n 'prevent_crop': 0\n }\n }\n }\n },\n {\n 'id': 2,\n 'img': {\n 'url': 'https://vcdn.adnxs.com/p/creative-image/1a/3e/e9/5b/1a3ee95b-06cd-4260-98c7-0258627c9197.png',\n 'w': 127,\n 'h': 83,\n 'ext': {\n 'appnexus': {\n 'prevent_crop': 0\n }\n }\n }\n },\n {\n 'id': 0,\n 'title': {\n 'text': 'This is a Prebid Native Creative'\n }\n },\n {\n 'id': 3,\n 'data': {\n 'value': 'Prebid.org'\n }\n }\n ],\n 'link': {\n 'url': 'https://lax1-ib.adnxs.com/click?AAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQGdce2vBWudAJZpFu1er1zA7ZzddAAAAAOLoyQBtJAAAbSQAAAIAAAC8pM8FnPgWAAAAAABVU0QAVVNEAAEAAQBNXQAAAAABAgMCAAAAALsAuhVqdgAAAAA./cpcpm=AAAAAAAAAAA=/bcr=AAAAAAAA8D8=/pp=${AUCTION_PRICE}/cnd=%213Q5HCQj8-LwKELzJvi4YnPFbIAQoADEAAAAAAAAkQDoJTEFYMTo0MDc3QKcPSQAAAAAAAPA_UQAAAAAAAAAAWQAAAAAAAAAAYQAAAAAAAAAAaQAAAAAAAAAAcQAAAAAAAAAA/cca=OTMyNSNMQVgxOjQwNzc=/bn=84305/test=1/clickenc=http%3A%2F%2Fprebid.org%2Fdev-docs%2Fshow-native-ads.html'\n },\n 'eventtrackers': [\n {\n 'event': 1,\n 'method': 1,\n 'url': 'https://lax1-ib.adnxs.com/it?an_audit=0&test=1&referrer=http%3A%2F%2Flocalhost%3A9999%2FintegrationExamples%2Fgpt%2Fdemo_native.html&e=wqT_3QKCCKACBAAAAwDWAAUBCLvO3ekFEOe47duW2NbzQBiltJba--rq6zAqNgkAAAECCCRAEQEHEAAAJEAZEQkAIREJACkRCQAxEQmoMOLRpwY47UhA7UhIAlC8yb4uWJzxW2AAaM26dXjRkgWAAQGKAQNVU0SSAQEG8FKYAQGgAQGoAQGwAQC4AQLAAQPIAQLQAQnYAQDgAQHwAQCKAjt1ZignYScsIDI1Mjk4ODUsIDE1NjM5MTE5OTUpO3VmKCdyJywgOTc0OTQyMDQsIC4eAPQ0AZICnQIhb2pkaWlnajgtTHdLRUx6SnZpNFlBQ0NjOFZzd0FEZ0FRQVJJN1VoUTR0R25CbGdBWVAwQmFBQndBSGdBZ0FFQWlBRUFrQUVCbUFFQm9BRUJxQUVEc0FFQXVRSHpyV3FrQUFBa1FNRUI4NjFxcEFBQUpFREpBVVZpYmxDaFpRQkEyUUVBQUFBQUFBRHdQLUFCQVBVQkFBQUFBUGdCQUpnQ0FLQUNBTFVDQUFBQUFMMENBQUFBQU1BQ0FNZ0NBT0FDQU9nQ0FQZ0NBSUFEQVpBREFKZ0RBYWdEX1BpOENyb0RDVXhCV0RFNk5EQTNOLUFEcHctUUJBQ1lCQUhCQkFBQUFBQUFBQUFBeVFRQUFBQUFBQUFBQU5nRUFBLi6aAoUBITNRNUhDUWo4LUx3S0VMeiUhJG5QRmJJQVFvQUQRvVhBa1FEb0pURUZZTVRvME1EYzNRS2NQUxFUDFBBX1URDAxBQUFXHQwAWR0MAGEdDABjHQz0FwHYAgDgAq2YSOoCPmh0dHA6Ly9sb2NhbGhvc3Q6OTk5OS9pbnRlZ3JhdGlvbkV4YW1wbGVzL2dwdC9kZW1vX25hdGl2ZS5odG1sgAMAiAMBkAMAmAMUoAMBqgMAwAPgqAHIAwDYAwDgAwDoAwD4AwOABACSBAkvb3BlbnJ0YjKYBACiBA0xNzMuMjQ0LjM2LjQwqATtoySyBAwIABAAGAAgADAAOAC4BADABADIBADSBA45MzI1I0xBWDE6NDA3N9oEAggB4AQA8AS8yb4uiAUBmAUAoAX___________8BqgUkZTU5YzNlYjYtNmRkNi00MmQ5LWExMWEtM2FhMTFjOTc5MGUwwAUAyQUAAAAAAADwP9IFCQkAaVh0ANgFAeAFAfAFmfQh-gUECAAQAJAGAZgGALgGAMEGCSQk8D_IBgDaBhYKEAkQGQEBwTTgBgzyBgIIAIAHAYgHAA..&s=11ababa390e9f7983de260493fc5b91ec5b1b3d4&pp=${AUCTION_PRICE}'\n }\n ]\n },\n 'adid': '97494204',\n 'adomain': [\n 'http://prebid.org'\n ],\n 'iurl': 'https://lax1-ib.adnxs.com/cr?id=97494204',\n 'cid': '9325',\n 'crid': '97494204',\n 'cat': [\n 'IAB3-1'\n ],\n 'ext': {\n 'prebid': {\n 'targeting': {\n 'hb_bidder': 'appnexus',\n 'hb_pb': '10.00'\n },\n 'type': 'native',\n 'video': {\n 'duration': 0,\n 'primary_category': ''\n }\n },\n 'bidder': {\n 'appnexus': {\n 'brand_id': 555545,\n 'auction_id': '4676806524825984103',\n 'bidder_id': 2,\n 'bid_ad_type': 3\n }\n }\n }\n }\n ],\n 'seat': 'appnexus'\n }\n ]\n};\n\nasync function addFpdEnrichmentsToS2SRequest(s2sReq, bidderRequests) {\n return {\n ...s2sReq,\n ortb2Fragments: {\n ...(s2sReq.ortb2Fragments || {}),\n global: (await addFPDToBidderRequest({\n ...(bidderRequests?.[0] || {}),\n ortb2: s2sReq.ortb2Fragments?.global || {}\n })).ortb2\n }\n }\n}\n\ndescribe('s2s configuration', () => {\n let cfg1, cfg2;\n beforeEach(() => {\n cfg1 = {\n enabled: true,\n bidders: ['bidderB'],\n accountId: '123456',\n endpoint: {\n p1Consent: 'first.endpoint'\n }\n };\n cfg2 = {\n enabled: true,\n bidders: ['bidderA'],\n accountId: '123456',\n endpoint: {\n p1Consent: 'second.endpoint',\n }\n };\n })\n it('sets prebid server adapter by default', () => {\n expect(validateConfig(cfg1)[0].adapter).to.eql('prebidServer');\n });\n it('filters out disabled configs', () => {\n cfg1.enabled = false;\n expect(validateConfig([cfg1, cfg2])).to.eql([cfg2]);\n })\n});\n\ndescribe('S2S Adapter', function () {\n let adapter;\n let addBidResponse = sinon.spy();\n let done = sinon.spy();\n\n addBidResponse.reject = sinon.spy();\n\n function prepRequest(req) {\n req.ad_units.forEach((adUnit) => {\n delete adUnit.nativeParams\n });\n decorateAdUnitsWithNativeParams(req.ad_units);\n }\n\n before(() => {\n hook.ready();\n prepRequest(REQUEST);\n });\n\n beforeEach(function () {\n config.resetConfig();\n config.setConfig({floors: {enabled: false}});\n adapter = new Adapter();\n BID_REQUESTS = [\n {\n 'bidderCode': 'appnexus',\n 'auctionId': '173afb6d132ba3',\n 'bidderRequestId': '3d1063078dfcc8',\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'bids': [\n {\n 'bidder': 'appnexus',\n 'params': {\n 'placementId': '10433394',\n 'member': 123,\n 'keywords': {\n 'foo': ['bar', 'baz'],\n 'fizz': ['buzz']\n }\n },\n 'bid_id': '123',\n 'adUnitCode': 'div-gpt-ad-1460505748561-0',\n 'mediaTypes': {\n 'banner': {\n 'sizes': [[300, 250]]\n }\n },\n 'transactionId': '4ef956ad-fd83-406d-bd35-e4bb786ab86c',\n 'sizes': [300, 250],\n 'bidId': '123',\n 'bidderRequestId': '3d1063078dfcc8',\n 'auctionId': '173afb6d132ba3'\n }\n ],\n 'auctionStart': 1510852447530,\n 'timeout': 5000,\n 'src': 's2s',\n 'doneCbCallCount': 0,\n 'refererInfo': {\n 'page': 'http://mytestpage.com'\n }\n }\n ];\n });\n\n afterEach(function () {\n addBidResponse.resetHistory();\n addBidResponse.reject = sinon.spy();\n done.resetHistory();\n });\n\n after(function () {\n config.resetConfig();\n });\n\n describe('request function', function () {\n beforeEach(function () {\n resetSyncedStatus();\n });\n\n describe('FPD redaction', () => {\n let sandbox, ortb2Fragments, redactorMocks, s2sReq;\n\n beforeEach(() => {\n sandbox = sinon.createSandbox();\n redactorMocks = {};\n sandbox.stub(redactor, 'redactor').callsFake((params) => {\n if (!redactorMocks.hasOwnProperty(params.component)) {\n redactorMocks[params.component] = {\n ortb2: sinon.stub().callsFake(o => o),\n bidRequest: sinon.stub().callsFake(o => o)\n }\n }\n return redactorMocks[params.component];\n })\n ortb2Fragments = {\n global: {\n mock: 'value'\n },\n bidder: {\n appnexus: {\n mock: 'A'\n }\n }\n }\n const s2sConfig = {\n ...CONFIG,\n };\n config.setConfig({s2sConfig});\n s2sReq = {\n ...REQUEST,\n s2sConfig\n };\n });\n\n afterEach(() => {\n sandbox.restore();\n })\n\n function callBids() {\n adapter.callBids({\n ...s2sReq,\n ortb2Fragments\n }, BID_REQUESTS, addBidResponse, done, ajax);\n }\n\n it('should be applied to ortb2Fragments', () => {\n callBids();\n sinon.assert.calledWithMatch(redactorMocks['prebid.pbsBidAdapter'].ortb2, ortb2Fragments.global);\n Object.entries(ortb2Fragments.bidder).forEach(([bidder, ortb2]) => {\n sinon.assert.calledWith(redactorMocks[`bidder.${bidder}`].ortb2, ortb2);\n });\n });\n\n it('should be applied to ad units', () => {\n callBids();\n s2sReq.ad_units.forEach(au => {\n sinon.assert.calledWith(redactorMocks['prebid.pbsBidAdapter'].bidRequest, au);\n au.bids.forEach((bid) => {\n sinon.assert.calledWith(redactorMocks[`bidder.${bid.bidder}`].bidRequest, bid);\n })\n })\n })\n });\n\n describe('transaction IDs', () => {\n let s2sReq;\n beforeEach(() => {\n s2sReq = {\n ...REQUEST,\n ortb2Fragments: {global: {}},\n ad_units: REQUEST.ad_units.map(au => ({...au, ortb2Imp: {ext: {tid: 'mock-tid'}}})),\n };\n BID_REQUESTS[0].bids[0].ortb2Imp = {ext: {tid: 'mock-tid'}};\n });\n\n function makeRequest() {\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n return JSON.parse(server.requests[0].requestBody);\n }\n\n it('should not be set when transmitTid is not allowed, with ext.prebid.createtids: false', () => {\n config.setConfig({ s2sConfig: CONFIG, enableTIDs: false });\n const req = makeRequest();\n expect(req.source?.tid).to.not.exist;\n expect(req.imp[0].ext?.tid).to.not.exist;\n expect(req.ext.prebid.createtids).to.equal(false);\n });\n\n it('should be set to auction ID otherwise', () => {\n config.setConfig({s2sConfig: CONFIG, enableTIDs: true});\n const req = makeRequest();\n expect(req.source.tid).to.eql(BID_REQUESTS[0].auctionId);\n expect(req.imp[0].ext.tid).to.eql('mock-tid');\n })\n })\n\n describe('browsingTopics', () => {\n const sandbox = sinon.createSandbox();\n afterEach(() => {\n sandbox.restore()\n });\n Object.entries({\n 'allowed': true,\n 'not allowed': false,\n }).forEach(([t, allow]) => {\n it(`should be set to ${allow} when transmitUfpd is ${t}`, () => {\n sandbox.stub(activityRules, 'isActivityAllowed').callsFake((activity, params) => {\n if (activity === ACTIVITY_TRANSMIT_UFPD && params.component === `${MODULE_TYPE_PREBID}.${PBS_ADAPTER_NAME}`) {\n return allow;\n }\n return false;\n });\n config.setConfig({s2sConfig: CONFIG});\n const ajax = sinon.stub();\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n sinon.assert.calledWith(ajax, sinon.match.any, sinon.match.any, sinon.match.any, sinon.match({\n browsingTopics: allow\n }));\n });\n });\n })\n\n it('should set tmaxmax correctly when publisher has specified it', () => {\n const cfg = {...CONFIG};\n config.setConfig({s2sConfig: cfg})\n\n // publisher has specified a tmaxmax in their setup\n const ortb2Fragments = {\n global: {\n ext: {\n tmaxmax: 4242\n }\n }\n };\n const s2sCfg = {...REQUEST, cfg}\n const payloadWithFragments = { ...s2sCfg, ortb2Fragments };\n\n adapter.callBids(payloadWithFragments, BID_REQUESTS, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n\n expect(req.ext.tmaxmax).to.eql(4242);\n });\n\n it('should set tmaxmax correctly when publisher has not specified it', () => {\n const cfg = {...CONFIG};\n config.setConfig({s2sConfig: cfg})\n\n // publisher has not specified a tmaxmax in their setup - so we should be\n // falling back to requestBidsTimeout\n const ortb2Fragments = {};\n const s2sCfg = {...REQUEST, cfg};\n const requestBidsTimeout = 808;\n const payloadWithFragments = { ...s2sCfg, ortb2Fragments, requestBidsTimeout };\n\n adapter.callBids(payloadWithFragments, BID_REQUESTS, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n\n expect(req.ext.tmaxmax).to.eql(808);\n });\n\n describe('default tmax', () => {\n [null, 3000].forEach(maxTimeout => {\n describe(`when maxTimeout is ${maxTimeout}`, () => {\n let cfg;\n\n beforeEach(() => {\n cfg = {accountId: '1', endpoint: 'mock-endpoint', maxTimeout};\n config.setConfig({s2sConfig: cfg});\n maxTimeout = maxTimeout ?? s2sDefaultConfig.maxTimeout\n });\n\n it('should cap tmax to maxTimeout', () => {\n adapter.callBids({...REQUEST, requestBidsTimeout: maxTimeout * 2, s2sConfig: cfg}, BID_REQUESTS, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n expect(req.tmax).to.eql(maxTimeout);\n });\n\n it('should be set to 0.75 * requestTimeout, if lower than maxTimeout', () => {\n adapter.callBids({...REQUEST, requestBidsTimeout: maxTimeout / 2}, BID_REQUESTS, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n expect(req.tmax).to.eql(Math.floor(maxTimeout / 2 * 0.75));\n })\n })\n })\n })\n\n it('should set customHeaders correctly when publisher has provided it', () => {\n const configWithCustomHeaders = utils.deepClone(CONFIG);\n configWithCustomHeaders.customHeaders = { customHeader1: 'customHeader1Value' };\n config.setConfig({ s2sConfig: configWithCustomHeaders });\n\n const reqWithNewConfig = utils.deepClone(REQUEST);\n reqWithNewConfig.s2sConfig = configWithCustomHeaders;\n\n adapter.callBids(reqWithNewConfig, BID_REQUESTS, addBidResponse, done, ajax);\n const reqHeaders = server.requests[0].requestHeaders\n expect(reqHeaders.customHeader1).to.exist;\n expect(reqHeaders.customHeader1).to.equal('customHeader1Value');\n });\n\n it('should block request if config did not define p1Consent URL in endpoint object config', function () {\n const badConfig = utils.deepClone(CONFIG);\n badConfig.endpoint = { noP1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction' };\n config.setConfig({ s2sConfig: badConfig });\n\n const badCfgRequest = utils.deepClone(REQUEST);\n badCfgRequest.s2sConfig = badConfig;\n\n adapter.callBids(badCfgRequest, BID_REQUESTS, addBidResponse, done, ajax);\n\n expect(server.requests.length).to.equal(0);\n });\n\n it('should block request if config did not define noP1Consent URL in endpoint object config', function () {\n const badConfig = utils.deepClone(CONFIG);\n badConfig.endpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction' };\n config.setConfig({ s2sConfig: badConfig });\n\n const badCfgRequest = utils.deepClone(REQUEST);\n badCfgRequest.s2sConfig = badConfig;\n\n const badBidderRequest = utils.deepClone(BID_REQUESTS);\n badBidderRequest[0].gdprConsent = {\n consentString: 'abc123',\n addtlConsent: 'superduperconsent',\n gdprApplies: true,\n apiVersion: 2,\n vendorData: {\n purpose: {\n consents: {\n 1: false\n }\n }\n }\n };\n\n adapter.callBids(badCfgRequest, badBidderRequest, addBidResponse, done, ajax);\n\n expect(server.requests.length).to.equal(0);\n });\n\n it('should block request if config did not define any URLs in endpoint object config', function () {\n const badConfig = utils.deepClone(CONFIG);\n badConfig.endpoint = {};\n config.setConfig({ s2sConfig: badConfig });\n\n const badCfgRequest = utils.deepClone(REQUEST);\n badCfgRequest.s2sConfig = badConfig;\n\n adapter.callBids(badCfgRequest, BID_REQUESTS, addBidResponse, done, ajax);\n\n expect(server.requests.length).to.equal(0);\n });\n\n it('filters ad units without bidders when filterBidderlessCalls is true', function () {\n const cfg = {...CONFIG, filterBidderlessCalls: true};\n config.setConfig({s2sConfig: cfg});\n\n const badReq = utils.deepClone(REQUEST);\n badReq.s2sConfig = cfg;\n badReq.ad_units = [{...REQUEST.ad_units[0], bids: [{bidder: null}]}];\n\n const badBidderRequest = utils.deepClone(BID_REQUESTS);\n badBidderRequest[0].bidderCode = null;\n badBidderRequest[0].bids = [{...badBidderRequest[0].bids[0], bidder: null}];\n\n adapter.callBids(badReq, badBidderRequest, addBidResponse, done, ajax);\n\n expect(server.requests.length).to.equal(0);\n });\n\n if (FEATURES.VIDEO) {\n it('should add outstream bc renderer exists on mediatype', function () {\n config.setConfig({ s2sConfig: CONFIG });\n\n adapter.callBids(OUTSTREAM_VIDEO_REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.imp[0].banner).to.exist;\n expect(requestBid.imp[0].video).to.exist;\n });\n\n it('converts video mediaType properties into openRTB format', function () {\n const ortb2Config = utils.deepClone(CONFIG);\n ortb2Config.endpoint.p1Consent = 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction';\n\n config.setConfig({ s2sConfig: ortb2Config });\n\n const videoBid = utils.deepClone(VIDEO_REQUEST);\n videoBid.ad_units[0].mediaTypes.video.context = 'instream';\n adapter.callBids(videoBid, BID_REQUESTS, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.imp[0].banner).to.not.exist;\n expect(requestBid.imp[0].video).to.exist;\n expect(requestBid.imp[0].video.w).to.equal(640);\n expect(requestBid.imp[0].video.h).to.equal(480);\n expect(requestBid.imp[0].video.playerSize).to.be.undefined;\n expect(requestBid.imp[0].video.context).to.be.undefined;\n });\n }\n describe('gzip compression', function () {\n let gzipStub, gzipSupportStub, getParamStub, debugStub;\n beforeEach(function() {\n gzipStub = sinon.stub(utils, 'compressDataWithGZip').resolves('compressed');\n gzipSupportStub = sinon.stub(utils, 'isGzipCompressionSupported');\n getParamStub = sinon.stub(utils, 'getParameterByName');\n debugStub = sinon.stub(utils, 'debugTurnedOn');\n });\n\n afterEach(function() {\n gzipStub.restore();\n gzipSupportStub.restore();\n getParamStub.restore();\n debugStub.restore();\n });\n\n it('should gzip payload when enabled and supported', function(done) {\n const s2sCfg = Object.assign({}, CONFIG, {endpointCompression: true});\n config.setConfig({s2sConfig: s2sCfg});\n const req = utils.deepClone(REQUEST);\n req.s2sConfig = s2sCfg;\n gzipSupportStub.returns(true);\n getParamStub.withArgs(DEBUG_MODE).returns('false');\n debugStub.returns(false);\n\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n\n setTimeout(() => {\n expect(gzipStub.calledOnce).to.be.true;\n expect(server.requests[0].url).to.include('gzip=1');\n expect(server.requests[0].requestBody).to.equal('compressed');\n done();\n });\n });\n\n it('should not gzip when debug mode is enabled', function(done) {\n const s2sCfg = Object.assign({}, CONFIG, {endpointCompression: true});\n config.setConfig({s2sConfig: s2sCfg});\n const req = utils.deepClone(REQUEST);\n req.s2sConfig = s2sCfg;\n gzipSupportStub.returns(true);\n getParamStub.withArgs(DEBUG_MODE).returns('true');\n debugStub.returns(true);\n\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n\n setTimeout(() => {\n expect(gzipStub.called).to.be.false;\n expect(server.requests[0].url).to.not.include('gzip=1');\n done();\n });\n });\n });\n it('exists and is a function', function () {\n expect(adapter.callBids).to.exist.and.to.be.a('function');\n });\n\n function mockTCF({applies = true, hasP1Consent = true} = {}) {\n return {\n consentString: 'mockConsent',\n gdprApplies: applies,\n vendorData: {purpose: {consents: {1: hasP1Consent}}},\n }\n }\n\n describe('gdpr tests', function () {\n afterEach(function () {\n requestBids.removeAll();\n });\n\n it('adds gdpr consent information to ortb2 request depending on presence of module', async function () {\n const consentConfig = {consentManagement: {cmpApi: 'iab'}, s2sConfig: CONFIG};\n config.setConfig(consentConfig);\n\n const gdprBidRequest = utils.deepClone(BID_REQUESTS);\n gdprBidRequest[0].gdprConsent = mockTCF();\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, gdprBidRequest), gdprBidRequest, addBidResponse, done, ajax);\n let requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.regs.ext.gdpr).is.equal(1);\n expect(requestBid.user.ext.consent).is.equal('mockConsent');\n\n config.resetConfig();\n config.setConfig({s2sConfig: CONFIG});\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, BID_REQUESTS), BID_REQUESTS, addBidResponse, done, ajax);\n requestBid = JSON.parse(server.requests[1].requestBody);\n\n expect(requestBid.regs?.ext?.gdpr).to.not.exist;\n expect(requestBid.user?.ext?.consent).to.not.exist;\n });\n\n it('adds additional consent information to ortb2 request depending on presence of module', async function () {\n const consentConfig = {consentManagement: {cmpApi: 'iab'}, s2sConfig: CONFIG};\n config.setConfig(consentConfig);\n\n const gdprBidRequest = utils.deepClone(BID_REQUESTS);\n gdprBidRequest[0].gdprConsent = Object.assign(mockTCF(), {\n addtlConsent: 'superduperconsent',\n });\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, gdprBidRequest), gdprBidRequest, addBidResponse, done, ajax);\n let requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.regs.ext.gdpr).is.equal(1);\n expect(requestBid.user.ext.consent).is.equal('mockConsent');\n expect(requestBid.user.ext.ConsentedProvidersSettings.consented_providers).is.equal('superduperconsent');\n\n config.resetConfig();\n config.setConfig({s2sConfig: CONFIG});\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n requestBid = JSON.parse(server.requests[1].requestBody);\n\n expect(requestBid.regs).to.not.exist;\n expect(requestBid.user).to.not.exist;\n });\n });\n\n describe('us_privacy (ccpa) consent data', function () {\n afterEach(function () {\n requestBids.removeAll();\n });\n\n it('is added to ortb2 request when in FPD', async function () {\n config.setConfig({s2sConfig: CONFIG});\n\n const uspBidRequest = utils.deepClone(BID_REQUESTS);\n uspBidRequest[0].uspConsent = '1NYN';\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, uspBidRequest), uspBidRequest, addBidResponse, done, ajax);\n let requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.regs.ext.us_privacy).is.equal('1NYN');\n\n config.resetConfig();\n config.setConfig({s2sConfig: CONFIG});\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, BID_REQUESTS), BID_REQUESTS, addBidResponse, done, ajax);\n requestBid = JSON.parse(server.requests[1].requestBody);\n\n expect(requestBid.regs?.ext?.us_privacy).to.not.exist;\n });\n });\n\n describe('gdpr and us_privacy (ccpa) consent data', function () {\n afterEach(function () {\n requestBids.removeAll();\n });\n\n it('is added to ortb2 request when in bidRequest', async function () {\n config.setConfig({s2sConfig: CONFIG});\n\n const consentBidRequest = utils.deepClone(BID_REQUESTS);\n consentBidRequest[0].uspConsent = '1NYN';\n consentBidRequest[0].gdprConsent = mockTCF();\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, consentBidRequest), consentBidRequest, addBidResponse, done, ajax);\n let requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.regs.ext.us_privacy).is.equal('1NYN');\n expect(requestBid.regs.ext.gdpr).is.equal(1);\n expect(requestBid.user.ext.consent).is.equal('mockConsent');\n\n config.resetConfig();\n config.setConfig({s2sConfig: CONFIG});\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n requestBid = JSON.parse(server.requests[1].requestBody);\n\n expect(requestBid.regs).to.not.exist;\n expect(requestBid.user).to.not.exist;\n });\n\n it('is added to cookie_sync request when in bidRequest', function () {\n const cookieSyncConfig = utils.deepClone(CONFIG);\n cookieSyncConfig.syncEndpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync' };\n config.setConfig({ s2sConfig: cookieSyncConfig });\n\n const consentBidRequest = utils.deepClone(BID_REQUESTS);\n consentBidRequest[0].uspConsent = '1YNN';\n consentBidRequest[0].gdprConsent = mockTCF();\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = cookieSyncConfig\n\n adapter.callBids(s2sBidRequest, consentBidRequest, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.us_privacy).is.equal('1YNN');\n expect(requestBid.gdpr).is.equal(1);\n expect(requestBid.gdpr_consent).is.equal('mockConsent');\n expect(requestBid.bidders).to.contain('appnexus').and.to.have.lengthOf(1);\n expect(requestBid.account).is.equal('1');\n });\n });\n\n it('adds device and app objects to request', async function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n config.setConfig(_config);\n const s2sreq = await addFpdEnrichmentsToS2SRequest({\n ...REQUEST,\n ortb2Fragments: {\n global: {\n device: {ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC'},\n app: {bundle: 'com.test.app'},\n }\n }\n }, BID_REQUESTS)\n adapter.callBids(s2sreq, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n sinon.assert.match(requestBid.device, {\n ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC',\n w: window.screen.width,\n h: window.screen.height,\n })\n sinon.assert.match(requestBid.app, {\n bundle: 'com.test.app',\n publisher: {'id': '1'}\n });\n });\n\n it('adds device and app objects to request for OpenRTB', async function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n };\n config.setConfig(_config);\n const s2sReq = await addFpdEnrichmentsToS2SRequest({\n ...REQUEST,\n ortb2Fragments: {\n global: {\n device: {ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC'},\n app: {bundle: 'com.test.app'},\n }\n }\n }, BID_REQUESTS)\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n sinon.assert.match(requestBid.device, {\n ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC',\n w: window.screen.width,\n h: window.screen.height,\n })\n sinon.assert.match(requestBid.app, {\n bundle: 'com.test.app',\n publisher: {'id': '1'}\n });\n });\n\n describe('price floors module', function () {\n function runTest(expectedFloor, expectedCur) {\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[requestCount].requestBody);\n expect(requestBid.imp[0].bidfloor).to.equal(expectedFloor);\n expect(requestBid.imp[0].bidfloorcur).to.equal(expectedCur);\n requestCount += 1;\n }\n\n let getFloorResponse, requestCount;\n beforeEach(function () {\n getFloorResponse = {};\n requestCount = 0;\n });\n\n it('should NOT pass bidfloor and bidfloorcur when getFloor not present or returns invalid response', function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n\n config.setConfig(_config);\n\n // if no get floor\n runTest(undefined, undefined);\n\n // if getFloor returns empty object\n BID_REQUESTS[0].bids[0].getFloor = () => getFloorResponse;\n sinon.spy(BID_REQUESTS[0].bids[0], 'getFloor');\n\n runTest(undefined, undefined);\n // make sure getFloor was called\n expect(\n BID_REQUESTS[0].bids[0].getFloor.calledWith({\n currency: 'USD',\n mediaType: '*',\n size: '*'\n })\n ).to.be.true;\n\n // if getFloor does not return number\n getFloorResponse = { currency: 'EUR', floor: 'not a number' };\n runTest(undefined, undefined);\n\n // if getFloor does not return currency\n getFloorResponse = { floor: 1.1 };\n runTest(undefined, undefined);\n });\n\n it('should correctly pass bidfloor and bidfloorcur', function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n\n config.setConfig(_config);\n\n BID_REQUESTS[0].bids[0].getFloor = () => getFloorResponse;\n sinon.spy(BID_REQUESTS[0].bids[0], 'getFloor');\n\n // returns USD and string floor\n getFloorResponse = { currency: 'USD', floor: '1.23' };\n runTest(1.23, 'USD');\n // make sure getFloor was called\n expect(\n BID_REQUESTS[0].bids[0].getFloor.calledWith({\n currency: 'USD',\n mediaType: '*',\n size: '*'\n })\n ).to.be.true;\n\n // returns non USD and number floor\n getFloorResponse = { currency: 'EUR', floor: 0.85 };\n runTest(0.85, 'EUR');\n });\n\n it('should correctly pass adServerCurrency when set to getFloor not default', function () {\n config.setConfig({\n s2sConfig: CONFIG,\n currency: { adServerCurrency: 'JPY' },\n });\n\n // we have to start requestCount at 1 because a conversion rates fetch occurs when adServerCur is not USD!\n requestCount = 1;\n\n BID_REQUESTS[0].bids[0].getFloor = () => getFloorResponse;\n sinon.spy(BID_REQUESTS[0].bids[0], 'getFloor');\n\n // returns USD and string floor\n getFloorResponse = { currency: 'JPY', floor: 97.2 };\n runTest(97.2, 'JPY');\n // make sure getFloor was called with JPY\n expect(\n BID_REQUESTS[0].bids[0].getFloor.calledWith({\n currency: 'JPY',\n mediaType: '*',\n size: '*'\n })\n ).to.be.true;\n });\n\n it('should find the floor when not all bidderRequests contain it', () => {\n config.setConfig({\n s2sConfig: {\n ...CONFIG,\n bidders: ['b1', 'b2']\n },\n });\n const bidderRequests = [\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b1',\n bids: [{\n bidder: 'b1',\n bidId: 1,\n }]\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b2',\n bids: [{\n bidder: 'b2',\n bidId: 2,\n getFloor: () => ({\n currency: 'CUR',\n floor: 123\n })\n }],\n }\n ];\n const adUnits = [\n {\n code: 'au1',\n transactionId: 't1',\n mediaTypes: {\n banner: {sizes: [1, 1]}\n },\n bids: [{bidder: 'b1', bid_id: 1}]\n },\n {\n code: 'au2',\n transactionId: 't2',\n bids: [{bidder: 'b2', bid_id: 2}],\n mediaTypes: {\n banner: {sizes: [1, 1]}\n }\n }\n ];\n const s2sReq = {\n ...REQUEST,\n ad_units: adUnits\n }\n\n adapter.callBids(s2sReq, bidderRequests, addBidResponse, done, ajax);\n\n const pbsReq = JSON.parse(server.requests[server.requests.length - 1].requestBody);\n const [imp1, imp2] = pbsReq.imp;\n\n expect(imp1.bidfloor).to.be.undefined;\n expect(imp1.bidfloorcur).to.be.undefined;\n\n expect(imp2.bidfloor).to.eql(123);\n expect(imp2.bidfloorcur).to.eql('CUR');\n });\n\n describe('when different bids have different floors', () => {\n let s2sReq;\n beforeEach(() => {\n config.setConfig({\n s2sConfig: {\n ...CONFIG,\n bidders: ['b1', 'b2', 'b3']\n },\n });\n BID_REQUESTS = [\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b2',\n bids: [{\n bidder: 'b2',\n bidId: 2,\n getFloor: () => ({\n currency: '1',\n floor: 2\n })\n }],\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b1',\n bids: [{\n bidder: 'b1',\n bidId: 1,\n getFloor: () => ({\n floor: 10,\n currency: '0.1'\n })\n }]\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b3',\n bids: [{\n bidder: 'b3',\n bidId: 3,\n getFloor: () => ({\n currency: '10',\n floor: 1\n })\n }],\n }\n ];\n s2sReq = {\n ...REQUEST,\n ad_units: [\n {\n code: 'au1',\n transactionId: 't1',\n mediaTypes: {\n banner: {sizes: [1, 1]}\n },\n bids: [\n {bidder: 'b2', bid_id: 2},\n {bidder: 'b3', bid_id: 3},\n {bidder: 'b1', bid_id: 1},\n ]\n }\n ]\n };\n });\n\n Object.entries({\n 'cannot compute a floor': (bid) => { bid.getFloor = () => { throw new Error() } },\n 'does not set a floor': (bid) => { delete bid.getFloor; },\n }).forEach(([t, updateBid]) => {\n it(`should not set pricefloor if any one of them ${t}`, () => {\n updateBid(BID_REQUESTS[1].bids[0]);\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const pbsReq = JSON.parse(server.requests[server.requests.length - 1].requestBody);\n [pbsReq.imp[0], pbsReq.imp[0].banner, pbsReq.imp[0].banner.format[0]].forEach(obj => {\n expect(obj.bidfloor).to.be.undefined;\n expect(obj.bidfloorcur).to.be.undefined;\n })\n });\n })\n\n Object.entries({\n 'imp level floors': {\n target: 'imp.0'\n },\n 'mediaType level floors': {\n target: 'imp.0.banner.ext',\n floorFilter: ({mediaType, size}) => size === '*' && mediaType !== '*'\n },\n 'format level floors': {\n target: 'imp.0.banner.format.0.ext',\n floorFilter: ({size}) => size !== '*'\n }\n }).forEach(([t, {target, floorFilter}]) => {\n describe(t, () => {\n beforeEach(() => {\n if (floorFilter != null) {\n BID_REQUESTS\n .flatMap(req => req.bids)\n .forEach(req => {\n req.getFloor = ((orig) => (params) => {\n if (floorFilter(params)) {\n return orig(params);\n }\n })(req.getFloor);\n })\n }\n })\n\n Object.entries({\n 'is available': {\n expectDesc: 'minimum after conversion',\n expectedFloor: 10,\n expectedCur: '0.1',\n conversionFn: (amount, from, to) => {\n from = parseFloat(from);\n to = parseFloat(to);\n return amount * from / to;\n },\n },\n 'is not available': {\n expectDesc: 'absolute minimum',\n expectedFloor: 1,\n expectedCur: '10',\n conversionFn: null\n },\n 'is not working': {\n expectDesc: 'absolute minimum',\n expectedFloor: 1,\n expectedCur: '10',\n conversionFn: () => {\n throw new Error();\n }\n }\n }).forEach(([t, {expectDesc, expectedFloor, expectedCur, conversionFn}]) => {\n describe(`and currency conversion ${t}`, () => {\n let mockConvertCurrency;\n const origConvertCurrency = getGlobal().convertCurrency;\n beforeEach(() => {\n if (conversionFn) {\n getGlobal().convertCurrency = mockConvertCurrency = sinon.stub().callsFake(conversionFn)\n } else {\n mockConvertCurrency = null;\n delete getGlobal().convertCurrency;\n }\n });\n\n afterEach(() => {\n if (origConvertCurrency != null) {\n getGlobal().convertCurrency = origConvertCurrency;\n } else {\n delete getGlobal().convertCurrency;\n }\n });\n\n it(`should pick the ${expectDesc}`, () => {\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const pbsReq = JSON.parse(server.requests[server.requests.length - 1].requestBody);\n expect(deepAccess(pbsReq, `${target}.bidfloor`)).to.eql(expectedFloor);\n expect(deepAccess(pbsReq, `${target}.bidfloorcur`)).to.eql(expectedCur)\n });\n });\n });\n })\n })\n });\n });\n\n if (FEATURES.NATIVE) {\n describe('native requests', function () {\n const ORTB_NATIVE_REQ = {\n 'ver': '1.2',\n 'assets': [\n {\n 'required': 1,\n 'id': 0,\n 'title': {\n 'len': 800\n }\n },\n {\n 'required': 1,\n 'id': 1,\n 'img': {\n 'type': 3,\n 'w': 989,\n 'h': 742\n }\n },\n {\n 'required': 1,\n 'id': 2,\n 'img': {\n 'type': 1,\n 'wmin': 10,\n 'hmin': 10,\n 'ext': {\n 'aspectratios': ['1:1']\n }\n }\n },\n {\n 'required': 1,\n 'id': 3,\n 'data': {\n 'type': 1\n }\n }\n ]\n };\n\n it('adds device.w and device.h even if the config lacks a device object', async function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n config.setConfig(_config);\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, BID_REQUESTS), BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n sinon.assert.match(requestBid.device, {\n w: window.screen.width,\n h: window.screen.height,\n })\n expect(requestBid.imp[0].native.ver).to.equal('1.2');\n });\n\n it('adds native request for OpenRTB', function () {\n const _config = {\n s2sConfig: CONFIG\n };\n\n config.setConfig(_config);\n adapter.callBids({...REQUEST, s2sConfig: Object.assign({}, CONFIG, s2sDefaultConfig)}, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n const ortbReq = JSON.parse(requestBid.imp[0].native.request);\n expect(ortbReq).to.deep.equal({\n ...ORTB_NATIVE_REQ,\n 'eventtrackers': [{\n event: 1,\n methods: [1, 2]\n }],\n });\n expect(requestBid.imp[0].native.ver).to.equal('1.2');\n });\n\n it('adds native ortb request for OpenRTB', function () {\n const _config = {\n s2sConfig: CONFIG\n };\n\n const openRtbNativeRequest = deepClone(REQUEST);\n delete openRtbNativeRequest.ad_units[0].mediaTypes.native;\n delete openRtbNativeRequest.ad_units[0].nativeParams;\n\n openRtbNativeRequest.ad_units[0].mediaTypes.native = NATIVE_ORTB_MTO;\n prepRequest(openRtbNativeRequest);\n\n config.setConfig(_config);\n adapter.callBids(openRtbNativeRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n const nativeReq = JSON.parse(requestBid.imp[0].native.request);\n expect(nativeReq).to.deep.equal(NATIVE_ORTB_MTO.ortb);\n expect(requestBid.imp[0].native.ver).to.equal('1.2');\n });\n\n it('can override default values for imp.native.request with s2sConfig.ortbNative', () => {\n const cfg = {\n ...CONFIG,\n ortbNative: {\n eventtrackers: [\n {event: 1, methods: [1, 2]}\n ]\n }\n }\n config.setConfig({\n s2sConfig: cfg\n });\n adapter.callBids({...REQUEST, s2sConfig: cfg}, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n const ortbReq = JSON.parse(requestBid.imp[0].native.request);\n expect(ortbReq).to.eql({\n ...ORTB_NATIVE_REQ,\n eventtrackers: [\n {event: 1, methods: [1, 2]}\n ]\n })\n })\n\n it('should not include ext.aspectratios if adunit\\'s aspect_ratios do not define radio_width and ratio_height', () => {\n const req = deepClone(REQUEST);\n req.ad_units[0].mediaTypes.native.icon.aspect_ratios[0] = {'min_width': 1, 'min_height': 2};\n prepRequest(req);\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n const nativeReq = JSON.parse(JSON.parse(server.requests[0].requestBody).imp[0].native.request);\n const icons = nativeReq.assets.map((a) => a.img).filter((img) => img && img.type === 1);\n expect(icons).to.have.length(1);\n expect(icons[0].hmin).to.equal(2);\n expect(icons[0].wmin).to.equal(1);\n expect(deepAccess(icons[0], 'ext.aspectratios')).to.be.undefined;\n });\n });\n }\n\n it('adds site if app is not present', async function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n\n config.setConfig(_config);\n const s2sReq = await addFpdEnrichmentsToS2SRequest({\n ...REQUEST,\n ortb2Fragments: {\n global: {\n site: {\n publisher: {\n id: '1234',\n domain: 'test.com'\n },\n content: {\n language: 'en'\n }\n }\n }\n }\n }, BID_REQUESTS);\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.site).to.exist.and.to.be.a('object');\n expect(requestBid.site.publisher).to.exist.and.to.be.a('object');\n expect(requestBid.site.publisher.id).to.exist.and.to.be.a('string');\n expect(requestBid.site.publisher.domain).to.exist.and.to.be.a('string');\n expect(requestBid.site.page).to.exist.and.to.be.a('string');\n expect(requestBid.site.content).to.exist.and.to.be.a('object');\n expect(requestBid.site.content.language).to.exist.and.to.be.a('string');\n expect(requestBid.site).to.deep.equal({\n publisher: {\n id: '1234',\n domain: 'test.com'\n },\n content: {\n language: 'en'\n },\n domain: 'mytestpage.com',\n page: 'http://mytestpage.com'\n });\n });\n\n it('site should not be present when app is present', async function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n\n config.setConfig(_config);\n\n const s2sReq = await addFpdEnrichmentsToS2SRequest({\n ...REQUEST,\n ortb2Fragments: {\n global: {\n app: {bundle: 'com.test.app'},\n site: {\n publisher: {\n id: '1234',\n domain: 'test.com'\n },\n content: {\n language: 'en'\n }\n }\n }\n }\n }, BID_REQUESTS)\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.site).to.not.exist;\n expect(requestBid.app.bundle).to.eql('com.test.app');\n });\n\n it('adds appnexus aliases to request', function () {\n config.setConfig({ s2sConfig: CONFIG });\n\n const aliasBidder = {\n bidder: 'beintoo',\n bid_id: REQUEST.ad_units[0].bids[0].bid_id,\n params: { placementId: '123456' }\n };\n\n const request = utils.deepClone(REQUEST);\n request.ad_units[0].bids = [aliasBidder];\n\n adapter.callBids(request, [{...BID_REQUESTS[0], bidderCode: 'beintoo'}], addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.ext).to.haveOwnProperty('prebid');\n expect(requestBid.ext.prebid).to.deep.include({\n aliases: {\n beintoo: 'appnexus'\n },\n auctiontimestamp: 1510852447530,\n targeting: {\n includebidderkeys: false,\n includewinners: true\n }\n });\n });\n\n it('unregistered bidder should alias', function () {\n const adjustedConfig = utils.deepClone(CONFIG);\n adjustedConfig.bidders = 'bidderD'\n config.setConfig({ s2sConfig: adjustedConfig });\n\n const aliasBidder = {\n ...REQUEST.ad_units[0].bids[0],\n bidder: 'bidderD',\n params: {\n unit: '10433394',\n }\n };\n\n $$PREBID_GLOBAL$$.aliasBidder('mockBidder', aliasBidder.bidder);\n\n const request = utils.deepClone(REQUEST);\n request.ad_units[0].bids = [aliasBidder];\n request.s2sConfig = adjustedConfig;\n\n adapter.callBids(request, [{...BID_REQUESTS[0], bidderCode: aliasBidder.bidder}], addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.ext.prebid.aliases).to.deep.equal({ bidderD: 'mockBidder' });\n });\n\n it('adds dynamic aliases to request', function () {\n config.setConfig({ s2sConfig: CONFIG });\n\n const alias = 'foobar';\n const aliasBidder = {\n bidder: alias,\n bid_id: REQUEST.ad_units[0].bids[0].bid_id,\n params: { placementId: '123456' }\n };\n\n const request = utils.deepClone(REQUEST);\n request.ad_units[0].bids = [aliasBidder];\n\n // TODO: stub this\n $$PREBID_GLOBAL$$.aliasBidder('appnexus', alias);\n adapter.callBids(request, [{...BID_REQUESTS[0], bidderCode: 'foobar'}], addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.ext).to.haveOwnProperty('prebid');\n expect(requestBid.ext.prebid).to.deep.include({\n aliases: {\n [alias]: 'appnexus'\n },\n auctiontimestamp: 1510852447530,\n targeting: {\n includebidderkeys: false,\n includewinners: true\n }\n });\n });\n\n it('skips pbs alias when skipPbsAliasing is enabled in adapter', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n });\n config.setConfig({ s2sConfig: s2sConfig });\n registerBidder({\n code: 'bidderCodeForTestSkipBPSAlias',\n aliases: [{\n code: 'bidderCodeForTestSkipBPSAlias_Alias',\n skipPbsAliasing: true\n }]\n })\n const aliasBidder = {\n bidder: 'bidderCodeForTestSkipBPSAlias_Alias',\n bid_id: REQUEST.ad_units[0].bids[0].bid_id,\n params: { aid: 123 }\n };\n\n const request = utils.deepClone(REQUEST);\n request.ad_units[0].bids = [aliasBidder];\n\n adapter.callBids(request, [{...BID_REQUESTS[0], bidderCode: aliasBidder.bidder}], addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n sinon.assert.match(requestBid.ext.prebid, {\n auctiontimestamp: 1510852447530,\n targeting: {\n includebidderkeys: false,\n includewinners: true\n },\n channel: {\n name: 'pbjs',\n version: 'v$prebid.version$'\n }\n })\n });\n\n it('skips dynamic aliases to request when skipPbsAliasing enabled', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n });\n config.setConfig({ s2sConfig: s2sConfig });\n\n const alias = 'foobar_1';\n const aliasBidder = {\n bidder: alias,\n bid_id: REQUEST.ad_units[0].bids[0].bid_id,\n params: { aid: 1234567 }\n };\n\n const request = utils.deepClone(REQUEST);\n request.ad_units[0].bids = [aliasBidder];\n\n // TODO: stub this\n $$PREBID_GLOBAL$$.aliasBidder('appnexus', alias, { skipPbsAliasing: true });\n adapter.callBids(request, [{...BID_REQUESTS[0], bidderCode: aliasBidder.bidder}], addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n sinon.assert.match(requestBid.ext.prebid, {\n auctiontimestamp: 1510852447530,\n targeting: {\n includebidderkeys: false,\n includewinners: true\n },\n channel: {\n name: 'pbjs',\n version: 'v$prebid.version$'\n }\n });\n });\n\n describe('cookie sync', () => {\n let s2sConfig, bidderReqs;\n\n beforeEach(() => {\n bidderReqs = utils.deepClone(BID_REQUESTS);\n s2sConfig = utils.deepClone(CONFIG);\n s2sConfig.syncEndpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync' };\n })\n\n function callCookieSync() {\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n config.setConfig({ s2sConfig: s2sConfig });\n adapter.callBids(s2sBidRequest, bidderReqs, addBidResponse, done, ajax);\n return JSON.parse(server.requests[0].requestBody);\n }\n\n describe('filterSettings', function () {\n it('correctly adds filterSettings to the cookie_sync request if userSync.filterSettings is present in the config and only the all key is present in userSync.filterSettings', function () {\n config.setConfig({\n userSync: {\n filterSettings: {\n all: {\n bidders: ['appnexus', 'rubicon', 'pubmatic'],\n filter: 'exclude'\n }\n }\n }\n });\n expect(callCookieSync().filterSettings).to.deep.equal({\n 'image': {\n 'bidders': ['appnexus', 'rubicon', 'pubmatic'],\n 'filter': 'exclude'\n },\n 'iframe': {\n 'bidders': ['appnexus', 'rubicon', 'pubmatic'],\n 'filter': 'exclude'\n }\n });\n });\n\n it('correctly adds filterSettings to the cookie_sync request if userSync.filterSettings is present in the config and only the iframe key is present in userSync.filterSettings', function () {\n config.setConfig({\n userSync: {\n filterSettings: {\n iframe: {\n bidders: ['rubicon', 'pubmatic'],\n filter: 'include'\n }\n }\n }\n })\n\n expect(callCookieSync().filterSettings).to.deep.equal({\n 'image': {\n 'bidders': '*',\n 'filter': 'include'\n },\n 'iframe': {\n 'bidders': ['rubicon', 'pubmatic'],\n 'filter': 'include'\n }\n });\n });\n\n it('correctly adds filterSettings to the cookie_sync request if userSync.filterSettings is present in the config and the image and iframe keys are both present in userSync.filterSettings', function () {\n config.setConfig({\n userSync: {\n filterSettings: {\n image: {\n bidders: ['triplelift', 'appnexus'],\n filter: 'include'\n },\n iframe: {\n bidders: ['pulsepoint', 'triplelift', 'appnexus', 'rubicon'],\n filter: 'exclude'\n }\n }\n }\n })\n\n expect(callCookieSync().filterSettings).to.deep.equal({\n 'image': {\n 'bidders': ['triplelift', 'appnexus'],\n 'filter': 'include'\n },\n 'iframe': {\n 'bidders': ['pulsepoint', 'triplelift', 'appnexus', 'rubicon'],\n 'filter': 'exclude'\n }\n });\n });\n\n it('correctly adds filterSettings to the cookie_sync request if userSync.filterSettings is present in the config and the all and iframe keys are both present in userSync.filterSettings', function () {\n config.setConfig({\n userSync: {\n filterSettings: {\n all: {\n bidders: ['triplelift', 'appnexus'],\n filter: 'include'\n },\n iframe: {\n bidders: ['pulsepoint', 'triplelift', 'appnexus', 'rubicon'],\n filter: 'exclude'\n }\n }\n }\n })\n\n expect(callCookieSync().filterSettings).to.deep.equal({\n 'image': {\n 'bidders': ['triplelift', 'appnexus'],\n 'filter': 'include'\n },\n 'iframe': {\n 'bidders': ['pulsepoint', 'triplelift', 'appnexus', 'rubicon'],\n 'filter': 'exclude'\n }\n });\n });\n });\n\n describe('limit', () => {\n it('is added to request if userSyncLimit is greater than 0', function () {\n s2sConfig.userSyncLimit = 1;\n const req = callCookieSync();\n expect(req.limit).is.equal(1);\n });\n\n Object.entries({\n 'missing': () => null,\n '0': () => { s2sConfig.userSyncLimit = 0; }\n }).forEach(([t, setup]) => {\n it(`is not added to request if userSyncLimit is ${t}`, () => {\n setup();\n const req = callCookieSync();\n expect(req.limit).to.not.exist;\n });\n });\n });\n\n describe('gdpr data is set', () => {\n it('when we have consent data', function () {\n bidderReqs[0].gdprConsent = mockTCF();\n const req = callCookieSync();\n expect(req.gdpr).is.equal(1);\n expect(req.gdpr_consent).is.equal('mockConsent');\n });\n\n it('when gdprApplies is false', () => {\n bidderReqs[0].gdprConsent = mockTCF({applies: false});\n const req = callCookieSync();\n expect(req.gdpr).is.equal(0);\n expect(req.gdpr_consent).is.undefined;\n });\n });\n\n it('adds USP data from bidder request', () => {\n bidderReqs[0].uspConsent = '1YNN';\n expect(callCookieSync().us_privacy).to.equal('1YNN');\n });\n\n it('adds GPP data from bidder requests', () => {\n bidderReqs[0].gppConsent = {\n applicableSections: [1, 2, 3],\n gppString: 'mock-string'\n };\n const req = callCookieSync();\n expect(req.gpp).to.eql('mock-string');\n expect(req.gpp_sid).to.eql('1,2,3');\n });\n });\n\n it('adds s2sConfig adapterOptions to request for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n adapterOptions: {\n appnexus: {\n key: 'value'\n }\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n config.setConfig(_config);\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n const requestParams = requestBid.imp[0].ext.prebid.bidder;\n expect(requestParams.appnexus).to.haveOwnProperty('key');\n expect(requestParams.appnexus.key).to.be.equal('value')\n });\n\n describe('config site value is added to the oRTB request', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n adapterOptions: {\n appnexus: {\n key: 'value'\n }\n }\n });\n const device = {\n ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',\n ip: '75.97.0.47'\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n it('and overrides publisher and page', async function () {\n config.setConfig({\n s2sConfig: s2sConfig,\n });\n const s2sReq = await addFpdEnrichmentsToS2SRequest({\n ...s2sBidRequest,\n ortb2Fragments: {\n global: {\n site: {\n domain: 'nytimes.com',\n page: 'http://www.nytimes.com',\n publisher: {id: '2'}\n },\n device,\n }\n }\n }, BID_REQUESTS);\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.site).to.exist.and.to.be.a('object');\n expect(requestBid.site.domain).to.equal('nytimes.com');\n expect(requestBid.site.page).to.equal('http://www.nytimes.com');\n expect(requestBid.site.publisher).to.exist.and.to.be.a('object');\n expect(requestBid.site.publisher.id).to.equal('2');\n });\n\n it('and merges domain and page with the config site value', async function () {\n config.setConfig({\n s2sConfig: s2sConfig,\n });\n const s2sReq = await addFpdEnrichmentsToS2SRequest({\n ...s2sBidRequest,\n ortb2Fragments: {\n global: {\n site: {\n foo: 'bar'\n },\n device: device\n }\n }\n }, BID_REQUESTS);\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.site).to.exist.and.to.be.a('object');\n expect(requestBid.site.foo).to.equal('bar');\n expect(requestBid.site.page).to.equal('http://mytestpage.com');\n expect(requestBid.site.publisher).to.exist.and.to.be.a('object');\n expect(requestBid.site.publisher.id).to.equal('1');\n });\n });\n\n describe('user.ext.eids', () => {\n let req;\n beforeEach(() => {\n const s2sConfig = {\n ...CONFIG,\n bidders: ['appnexus', 'rubicon']\n }\n config.setConfig({s2sConfig});\n req = {\n ...REQUEST,\n s2sConfig,\n ortb2Fragments: {\n global: {\n user: {\n ext: {\n eids: [{source: 'idA', id: 1}, {source: 'idB', id: 2}]\n }\n }\n },\n bidder: {\n appnexus: {\n user: {\n ext: {\n eids: [{source: 'idC', id: 3}]\n }\n }\n }\n }\n }\n }\n })\n it('should get picked up from from FPD', function () {\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n const payload = JSON.parse(server.requests[0].requestBody);\n expect(payload.user.ext.eids).to.eql([\n {source: 'idA', id: 1},\n {source: 'idB', id: 2},\n {source: 'idC', id: 3}\n ]);\n expect(payload.ext.prebid.data.eidpermissions).to.eql([{\n bidders: ['appnexus'],\n source: 'idC'\n }]);\n });\n\n it('should not set eidpermissions for unrequested bidders', () => {\n req.ortb2Fragments.bidder.unknown = {\n user: {\n eids: [{source: 'idC', id: 3}, {source: 'idD', id: 4}]\n }\n }\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n const payload = JSON.parse(server.requests[0].requestBody);\n expect(payload.ext.prebid.data.eidpermissions).to.eql([{\n bidders: ['appnexus'],\n source: 'idC'\n }, {\n bidders: [],\n source: 'idD'\n }]);\n });\n\n it('should repeat global EIDs when bidder-specific EIDs conflict', () => {\n BID_REQUESTS.push({\n ...BID_REQUESTS[0],\n bidderCode: 'rubicon',\n bids: [{\n bidder: 'rubicon',\n params: {}\n }]\n })\n req.ortb2Fragments.bidder.rubicon = {\n user: {\n ext: {\n eids: [{source: 'idC', id: 4}]\n }\n }\n }\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n const payload = JSON.parse(server.requests[0].requestBody);\n const globalEids = [\n {source: 'idA', id: 1},\n {source: 'idB', id: 2},\n ]\n expect(payload.user.ext.eids).to.eql(globalEids);\n expect(payload.ext.prebid?.data?.eidpermissions).to.not.exist;\n expect(payload.ext.prebid.bidderconfig).to.have.deep.members([\n {\n bidders: ['appnexus'],\n config: {\n ortb2: {\n user: {ext: {eids: globalEids.concat([{source: 'idC', id: 3}])}}\n }\n }\n },\n {\n bidders: ['rubicon'],\n config: {\n ortb2: {\n user: {ext: {eids: globalEids.concat([{source: 'idC', id: 4}])}}\n }\n }\n }\n ])\n })\n })\n\n it('when config \\'currency.adServerCurrency\\' value is a string: ORTB has property \\'cur\\' value set to a single item array', function () {\n config.setConfig({\n currency: { adServerCurrency: 'NZ' },\n });\n\n const bidRequests = utils.deepClone(BID_REQUESTS);\n adapter.callBids(REQUEST, bidRequests, addBidResponse, done, ajax);\n\n const parsedRequestBody = JSON.parse(server.requests.find(req => req.method === 'POST').requestBody);\n expect(parsedRequestBody.cur).to.deep.equal(['NZ']);\n });\n\n it('when config \\'currency.adServerCurrency\\' is unset: ORTB should not define a \\'cur\\' property', function () {\n config.setConfig({ s2sConfig: CONFIG });\n\n const bidRequests = utils.deepClone(BID_REQUESTS);\n adapter.callBids(REQUEST, bidRequests, addBidResponse, done, ajax);\n\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n expect(typeof parsedRequestBody.cur).to.equal('undefined');\n });\n\n it('always add ext.prebid.targeting.includebidderkeys: false for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n adapterOptions: {\n appnexus: {\n key: 'value'\n }\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n\n config.setConfig(_config);\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.ext.prebid.targeting).to.haveOwnProperty('includebidderkeys');\n expect(requestBid.ext.prebid.targeting.includebidderkeys).to.equal(false);\n });\n\n it('always add ext.prebid.targeting.includewinners: true for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n adapterOptions: {\n appnexus: {\n key: 'value'\n }\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n config.setConfig(_config);\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.ext.prebid.targeting).to.haveOwnProperty('includewinners');\n expect(requestBid.ext.prebid.targeting.includewinners).to.equal(true);\n });\n\n it('adds s2sConfig video.ext.prebid to request for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n foo: 'bar'\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n config.setConfig(_config);\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid).to.haveOwnProperty('ext');\n expect(requestBid.ext).to.haveOwnProperty('prebid');\n expect(requestBid.ext.prebid).to.deep.include({\n auctiontimestamp: 1510852447530,\n foo: 'bar',\n targeting: {\n includewinners: true,\n includebidderkeys: false\n }\n });\n });\n\n it('overrides request.ext.prebid properties using s2sConfig video.ext.prebid values for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n targeting: {\n includewinners: false,\n includebidderkeys: true\n }\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n config.setConfig(_config);\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid).to.haveOwnProperty('ext');\n expect(requestBid.ext).to.haveOwnProperty('prebid');\n expect(requestBid.ext.prebid).to.deep.include({\n auctiontimestamp: 1510852447530,\n targeting: {\n includewinners: false,\n includebidderkeys: true\n }\n });\n });\n\n it('overrides request.ext.prebid properties using s2sConfig video.ext.prebid values for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n cache: {\n vastxml: 'vastxml-set-though-extPrebid.cache.vastXml'\n },\n targeting: {\n includewinners: false,\n includebidderkeys: false\n }\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n config.setConfig(_config);\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid).to.haveOwnProperty('ext');\n expect(requestBid.ext).to.haveOwnProperty('prebid');\n expect(requestBid.ext.prebid).to.deep.include({\n auctiontimestamp: 1510852447530,\n cache: {\n vastxml: 'vastxml-set-though-extPrebid.cache.vastXml'\n },\n targeting: {\n includewinners: false,\n includebidderkeys: false\n }\n });\n });\n\n it('should have extPrebid.schains present on req object if bidder specific schains were configured with pbjs', function () {\n const bidRequest = utils.deepClone(BID_REQUESTS);\n bidRequest[0].bids[0].ortb2 = {\n source: {\n schain: {\n complete: 1,\n nodes: [{\n asi: 'test.com',\n hp: 1,\n sid: '11111'\n }],\n ver: '1.0'\n }\n }\n };\n\n adapter.callBids(REQUEST, bidRequest, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.ext.prebid.schains).to.deep.equal([\n {\n bidders: ['appnexus'],\n schain: {\n complete: 1,\n nodes: [\n {\n asi: 'test.com',\n hp: 1,\n sid: '11111'\n }\n ],\n ver: '1.0'\n }\n }\n ]);\n });\n\n it('should skip over adding any bid specific schain entries that already exist on extPrebid.schains', function () {\n const bidRequest = utils.deepClone(BID_REQUESTS);\n bidRequest[0].bids[0].schain = {\n complete: 1,\n nodes: [{\n asi: 'pbjs.com',\n hp: 1,\n sid: '22222'\n }],\n ver: '1.0'\n };\n\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n schains: [\n {\n bidders: ['appnexus'],\n schain: {\n complete: 1,\n nodes: [\n {\n asi: 'pbs.com',\n hp: 1,\n sid: '11111'\n }\n ],\n ver: '1.0'\n }\n }\n ]\n }\n });\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, bidRequest, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.ext.prebid.schains).to.deep.equal([\n {\n bidders: ['appnexus'],\n schain: {\n complete: 1,\n nodes: [\n {\n asi: 'pbs.com',\n hp: 1,\n sid: '11111'\n }\n ],\n ver: '1.0'\n }\n }\n ]);\n });\n\n it('should add a bidder name to pbs schain if the schain is equal to a pbjs one but the pbjs bidder name is not in the bidder array on the pbs side', function () {\n const bidRequest = utils.deepClone(BID_REQUESTS);\n bidRequest[0].bids[0].ortb2 = {\n source: {\n schain: {\n complete: 1,\n nodes: [{\n asi: 'test.com',\n hp: 1,\n sid: '11111'\n }],\n ver: '1.0'\n }\n }\n };\n\n bidRequest[0].bids[1] = {\n bidder: 'rubicon',\n params: {\n accountId: 14062,\n siteId: 70608,\n zoneId: 498816\n }\n };\n\n const s2sConfig = Object.assign({}, CONFIG, {\n bidders: ['rubicon', 'appnexus'],\n extPrebid: {\n schains: [\n {\n bidders: ['rubicon'],\n schain: {\n complete: 1,\n nodes: [\n {\n asi: 'test.com',\n hp: 1,\n sid: '11111'\n }\n ],\n ver: '1.0'\n }\n }\n ]\n }\n });\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, bidRequest, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.ext.prebid.schains).to.deep.equal([\n {\n bidders: ['rubicon', 'appnexus'],\n schain: {\n complete: 1,\n nodes: [\n {\n asi: 'test.com',\n hp: 1,\n sid: '11111'\n }\n ],\n ver: '1.0'\n }\n }\n ]);\n });\n\n Object.entries({\n 'set': {},\n 'override': {source: {ext: {schain: 'pub-provided'}}}\n }).forEach(([t, fpd]) => {\n it(`should not ${t} source.ext.schain`, () => {\n const bidderReqs = [\n {...deepClone(BID_REQUESTS[0]), bidderCode: 'A'},\n {...deepClone(BID_REQUESTS[0]), bidderCode: 'B'},\n {...deepClone(BID_REQUESTS[0]), bidderCode: 'C'}\n ];\n const chain1 = {chain: 1};\n const chain2 = {chain: 2};\n\n bidderReqs[0].bids[0].schain = chain1;\n bidderReqs[1].bids[0].schain = chain2;\n bidderReqs[2].bids[0].schain = chain2;\n\n adapter.callBids({...REQUEST, ortb2Fragments: {global: fpd}}, bidderReqs, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n expect(req.source?.ext?.schain).to.eql(fpd?.source?.ext?.schain);\n })\n })\n\n it('passes multibid array in request', function () {\n const bidRequests = utils.deepClone(BID_REQUESTS);\n const multibid = [{\n bidder: 'bidderA',\n maxBids: 2\n }, {\n bidder: 'bidderB',\n maxBids: 2\n }];\n const expected = [{\n bidder: 'bidderA',\n maxbids: 2\n }, {\n bidder: 'bidderB',\n maxbids: 2\n }];\n\n config.setConfig({ multibid: multibid });\n\n adapter.callBids(REQUEST, bidRequests, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n expect(parsedRequestBody.ext.prebid.multibid).to.deep.equal(expected);\n });\n\n it('sets and passes pbjs version in request if channel does not exist in s2sConfig', () => {\n const s2sBidRequest = utils.deepClone(REQUEST);\n const bidRequests = utils.deepClone(BID_REQUESTS);\n\n adapter.callBids(s2sBidRequest, bidRequests, addBidResponse, done, ajax);\n\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n expect(parsedRequestBody.ext.prebid.channel).to.deep.equal({ name: 'pbjs', version: 'v$prebid.version$' });\n });\n\n it('extPrebid is now mergedDeep -> should include default channel as well', () => {\n const s2sBidRequest = utils.deepClone(REQUEST);\n const bidRequests = utils.deepClone(BID_REQUESTS);\n\n utils.deepSetValue(s2sBidRequest, 's2sConfig.extPrebid.channel', { test: 1 });\n\n adapter.callBids(s2sBidRequest, bidRequests, addBidResponse, done, ajax);\n\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n // extPrebid is now deep merged with\n expect(parsedRequestBody.ext.prebid.channel).to.deep.equal({\n name: 'pbjs',\n test: 1,\n version: 'v$prebid.version$'\n });\n });\n\n it('passes first party data in request', async () => {\n const s2sBidRequest = utils.deepClone(REQUEST);\n const bidRequests = utils.deepClone(BID_REQUESTS);\n\n const commonSite = {\n keywords: ['power tools'],\n search: 'drill'\n };\n const commonUser = {\n keywords: ['a', 'b'],\n gender: 'M'\n };\n\n const site = {\n content: {userrating: 4},\n ext: {\n data: {\n pageType: 'article',\n category: 'tools'\n }\n }\n };\n const user = {\n yob: '1984',\n geo: {country: 'ca'},\n ext: {\n data: {\n registered: true,\n interests: ['cars']\n }\n }\n };\n const bcat = ['IAB25', 'IAB7-39'];\n const badv = ['blockedAdv-1.com', 'blockedAdv-2.com'];\n const allowedBidders = ['appnexus'];\n\n const expected = allowedBidders.map(bidder => ({\n bidders: [bidder],\n config: {\n ortb2: {\n site: {\n content: {userrating: 4},\n ext: {\n data: {\n pageType: 'article',\n category: 'tools'\n }\n }\n },\n user: {\n yob: '1984',\n geo: {country: 'ca'},\n ext: {\n data: {\n registered: true,\n interests: ['cars']\n }\n }\n },\n bcat: ['IAB25', 'IAB7-39'],\n badv: ['blockedAdv-1.com', 'blockedAdv-2.com']\n }\n }\n }));\n const commonContextExpected = utils.mergeDeep({\n 'page': 'http://mytestpage.com',\n 'domain': 'mytestpage.com',\n 'publisher': {\n 'id': '1',\n 'domain': 'mytestpage.com'\n }\n }, commonSite);\n\n const ortb2Fragments = {\n global: {site: commonSite, user: commonUser, badv, bcat},\n bidder: Object.fromEntries(allowedBidders.map(bidder => [bidder, {site, user, bcat, badv}]))\n };\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest({\n ...s2sBidRequest,\n ortb2Fragments\n }, bidRequests), bidRequests, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n expect(parsedRequestBody.ext.prebid.bidderconfig).to.deep.equal(expected);\n expect(parsedRequestBody.site).to.deep.equal(commonContextExpected);\n expect(parsedRequestBody.user).to.deep.equal(commonUser);\n expect(parsedRequestBody.badv).to.deep.equal(badv);\n expect(parsedRequestBody.bcat).to.deep.equal(bcat);\n });\n\n it('passes first party data in request for unknown when allowUnknownBidderCodes is true', async () => {\n const cfg = {...CONFIG, allowUnknownBidderCodes: true};\n config.setConfig({s2sConfig: cfg});\n\n const clonedReq = {...REQUEST, s2sConfig: cfg}\n const s2sBidRequest = utils.deepClone(clonedReq);\n const bidRequests = utils.deepClone(BID_REQUESTS);\n\n const commonSite = {\n keywords: ['power tools'],\n search: 'drill'\n };\n const commonUser = {\n keywords: ['a', 'b'],\n gender: 'M'\n };\n\n const site = {\n content: {userrating: 4},\n ext: {\n data: {\n pageType: 'article',\n category: 'tools'\n }\n }\n };\n const user = {\n yob: '1984',\n geo: {country: 'ca'},\n ext: {\n data: {\n registered: true,\n interests: ['cars']\n }\n }\n };\n const bcat = ['IAB25', 'IAB7-39'];\n const badv = ['blockedAdv-1.com', 'blockedAdv-2.com'];\n const allowedBidders = ['appnexus', 'unknown'];\n\n const expected = allowedBidders.map(bidder => ({\n bidders: [bidder],\n config: {\n ortb2: {\n site: {\n content: {userrating: 4},\n ext: {\n data: {\n pageType: 'article',\n category: 'tools'\n }\n }\n },\n user: {\n yob: '1984',\n geo: {country: 'ca'},\n ext: {\n data: {\n registered: true,\n interests: ['cars']\n }\n }\n },\n bcat: ['IAB25', 'IAB7-39'],\n badv: ['blockedAdv-1.com', 'blockedAdv-2.com']\n }\n }\n }));\n const commonContextExpected = utils.mergeDeep({\n 'page': 'http://mytestpage.com',\n 'domain': 'mytestpage.com',\n 'publisher': {\n 'id': '1',\n 'domain': 'mytestpage.com'\n }\n }, commonSite);\n\n const ortb2Fragments = {\n global: {site: commonSite, user: commonUser, badv, bcat},\n bidder: Object.fromEntries(allowedBidders.map(bidder => [bidder, {site, user, bcat, badv}]))\n };\n\n // adapter.callBids({ ...REQUEST, s2sConfig: cfg }, BID_REQUESTS, addBidResponse, done, ajax);\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest({\n ...s2sBidRequest,\n ortb2Fragments\n }, bidRequests, cfg), bidRequests, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n // eslint-disable-next-line no-console\n console.log(parsedRequestBody);\n expect(parsedRequestBody.ext.prebid.bidderconfig).to.deep.equal(expected);\n expect(parsedRequestBody.site).to.deep.equal(commonContextExpected);\n expect(parsedRequestBody.user).to.deep.equal(commonUser);\n expect(parsedRequestBody.badv).to.deep.equal(badv);\n expect(parsedRequestBody.bcat).to.deep.equal(bcat);\n });\n\n describe('GAM ad unit config', function () {\n it('should not send \\\"imp.ext.data.adserver.adslot\\\" if \\\"ortb2Imp.ext\\\" is undefined', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp).to.be.a('array');\n expect(parsedRequestBody.imp[0]).to.be.a('object');\n expect(parsedRequestBody.imp[0]).to.not.have.deep.nested.property('ext.data.adslot');\n });\n\n it('should not send \\\"imp.ext.data.adserver.adslot\\\" if \\\"ortb2Imp.ext.data.adserver.adslot\\\" is undefined', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n bidRequest.ad_units[0].ortb2Imp = {};\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp).to.be.a('array');\n expect(parsedRequestBody.imp[0]).to.be.a('object');\n expect(parsedRequestBody.imp[0]).to.not.have.deep.nested.property('ext.data.adslot');\n });\n\n it('should not send \\\"imp.ext.data.adserver.adslot\\\" if \\\"ortb2Imp.ext.data.adserver.adslot\\\" is empty string', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n bidRequest.ad_units[0].ortb2Imp = {\n ext: {\n data: {\n adserver: {\n adslot: ''\n }\n }\n }\n };\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp).to.be.a('array');\n expect(parsedRequestBody.imp[0]).to.be.a('object');\n expect(parsedRequestBody.imp[0]).to.not.have.deep.nested.property('ext.data.adslot');\n });\n\n it('should send both \\\"adslot\\\" and \\\"name\\\" from \\\"imp.ext.data.adserver\\\" if \\\"ortb2Imp.ext.data.adserver.adslot\\\" and \\\"ortb2Imp.ext.data.adserver.name\\\" values are non-empty strings', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n bidRequest.ad_units[0].ortb2Imp = {\n ext: {\n data: {\n adserver: {\n adslot: '/a/b/c',\n name: 'adserverName1'\n }\n }\n }\n };\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp).to.be.a('array');\n expect(parsedRequestBody.imp[0]).to.be.a('object');\n expect(parsedRequestBody.imp[0]).to.have.deep.nested.property('ext.data.adserver.adslot');\n expect(parsedRequestBody.imp[0]).to.have.deep.nested.property('ext.data.adserver.name');\n expect(parsedRequestBody.imp[0].ext.data.adserver.adslot).to.equal('/a/b/c');\n expect(parsedRequestBody.imp[0].ext.data.adserver.name).to.equal('adserverName1');\n });\n });\n });\n\n describe('Bidder-level ortb2Imp', () => {\n beforeEach(() => {\n config.setConfig({\n s2sConfig: {\n ...CONFIG,\n bidders: ['A', 'B']\n }\n })\n })\n it('should be set on imp.ext.prebid.imp', () => {\n const s2sReq = utils.deepClone(REQUEST);\n s2sReq.ad_units[0].ortb2Imp = {l0: 'adUnit'};\n s2sReq.ad_units[0].bids = [\n {\n bidder: 'A',\n bid_id: 1,\n ortb2Imp: {\n l2: 'A'\n }\n },\n {\n bidder: 'B',\n bid_id: 2,\n ortb2Imp: {\n l2: 'B'\n }\n }\n ];\n const bidderReqs = [\n {\n ...BID_REQUESTS[0],\n bidderCode: 'A',\n bids: [{\n bidId: 1,\n bidder: 'A'\n }]\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'B',\n bids: [{\n bidId: 2,\n bidder: 'B'\n }]\n }\n ]\n adapter.callBids(s2sReq, bidderReqs, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n expect(req.imp[0].l0).to.eql('adUnit');\n expect(req.imp[0].ext.prebid.imp).to.eql({\n A: {l2: 'A'},\n B: {l2: 'B'}\n });\n });\n });\n\n describe('ext.prebid config', function () {\n it('should send \\\"imp.ext.prebid.storedrequest.id\\\" if \\\"ortb2Imp.ext.prebid.storedrequest.id\\\" is set', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n const storedRequestId = 'my-id';\n bidRequest.ad_units[0].ortb2Imp = {\n ext: {\n prebid: {\n storedrequest: {\n id: storedRequestId\n }\n }\n }\n };\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp).to.be.a('array');\n expect(parsedRequestBody.imp[0]).to.be.a('object');\n expect(parsedRequestBody.imp[0]).to.have.deep.nested.property('ext.prebid.storedrequest.id');\n expect(parsedRequestBody.imp[0].ext.prebid.storedrequest.id).to.equal(storedRequestId);\n });\n });\n\n describe('response handler', function () {\n beforeEach(function () {\n sinon.stub(utils, 'triggerPixel');\n sinon.stub(utils, 'insertUserSyncIframe');\n sinon.stub(utils, 'logError');\n sinon.stub(events, 'emit');\n });\n\n afterEach(function () {\n utils.triggerPixel.restore();\n utils.insertUserSyncIframe.restore();\n utils.logError.restore();\n events.emit.restore();\n });\n\n it('triggers BIDDER_ERROR on server error', () => {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(400, {}, {});\n BID_REQUESTS.forEach(bidderRequest => {\n sinon.assert.calledWith(events.emit, EVENTS.BIDDER_ERROR, sinon.match({ bidderRequest }))\n })\n })\n\n describe('calls done', () => {\n let success, error;\n beforeEach(() => {\n const mockAjax = function (_, callback) {\n ({success, error} = callback);\n }\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, mockAjax);\n })\n\n it('passing timedOut = false on succcess', () => {\n success({});\n sinon.assert.calledWith(done, false);\n });\n\n Object.entries({\n 'timeouts': true,\n 'other errors': false\n }).forEach(([t, timedOut]) => {\n it(`passing timedOut = ${timedOut} on ${t}`, () => {\n error('', {timedOut});\n sinon.assert.calledWith(done, timedOut);\n })\n })\n })\n\n // TODO: test dependent on pbjs_api_spec. Needs to be isolated\n it('does not call addBidResponse and calls done when ad unit not set', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_NO_BID_NO_UNIT));\n\n sinon.assert.notCalled(addBidResponse);\n sinon.assert.calledOnce(done);\n });\n\n it('does not call addBidResponse and calls done when server requests cookie sync', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_NO_COOKIE));\n\n sinon.assert.notCalled(addBidResponse);\n sinon.assert.calledOnce(done);\n });\n\n it('does not call addBidResponse and calls done when ad unit is set', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_NO_BID_UNIT_SET));\n\n sinon.assert.notCalled(addBidResponse);\n sinon.assert.calledOnce(done);\n });\n\n it('registers successful bids and calls done when there are less bids than requests', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n sinon.assert.calledOnce(addBidResponse);\n sinon.assert.calledOnce(done);\n\n expect(addBidResponse.firstCall.args[0]).to.equal('div-gpt-ad-1460505748561-0');\n\n expect(addBidResponse.firstCall.args[1]).to.have.property('requestId', '123');\n });\n\n it('should have dealId in bidObject', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('dealId', 'test-dealid');\n });\n\n if (FEATURES.VIDEO) {\n it('should pass through default adserverTargeting if present in bidObject for video request', function () {\n config.setConfig({ s2sConfig: CONFIG });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB);\n const targetingTestData = {\n hb_cache_path: '/cache',\n hb_cache_host: 'prebid-cache.testurl.com'\n };\n\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.targeting = targetingTestData\n });\n adapter.callBids(VIDEO_REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('adserverTargeting');\n expect(response.adserverTargeting).to.deep.equal({\n 'hb_cache_path': '/cache',\n 'hb_cache_host': 'prebid-cache.testurl.com'\n });\n });\n }\n\n it('should set the bidResponse currency to whats in the PBS response', function () {\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n sinon.assert.calledOnce(addBidResponse);\n const pbjsResponse = addBidResponse.firstCall.args[1];\n expect(pbjsResponse).to.have.property('currency', 'EUR');\n });\n\n it('should set the default bidResponse currency when not specified in OpenRTB', function () {\n const modifiedResponse = utils.deepClone(RESPONSE_OPENRTB);\n modifiedResponse.cur = '';\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(modifiedResponse));\n sinon.assert.calledOnce(addBidResponse);\n const pbjsResponse = addBidResponse.firstCall.args[1];\n expect(pbjsResponse).to.have.property('currency', 'USD');\n });\n\n it('should pass through default adserverTargeting if present in bidObject for banner request', function () {\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB);\n\n const targetingTestData = {\n 'foo': 'bar'\n };\n\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.targeting = targetingTestData\n });\n\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('adserverTargeting').that.deep.equals({ 'foo': 'bar' });\n });\n\n it('registers client user syncs when client bid adapter is present', function () {\n const rubiconAdapter = {\n registerSyncs: sinon.spy()\n };\n sinon.stub(adapterManager, 'getBidAdapter').callsFake(() => rubiconAdapter);\n\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_NO_PBS_COOKIE));\n\n sinon.assert.calledOnce(rubiconAdapter.registerSyncs);\n\n adapterManager.getBidAdapter.restore();\n });\n\n it('registers client user syncs when using OpenRTB endpoint', function () {\n const rubiconAdapter = {\n registerSyncs: sinon.spy()\n };\n sinon.stub(adapterManager, 'getBidAdapter').returns(rubiconAdapter);\n\n config.setConfig({ CONFIG });\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n sinon.assert.calledOnce(rubiconAdapter.registerSyncs);\n\n adapterManager.getBidAdapter.restore();\n });\n\n it('handles OpenRTB responses and call BIDDER_DONE', function () {\n config.setConfig({ CONFIG });\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n sinon.assert.calledTwice(events.emit);\n const event = events.emit.secondCall.args;\n expect(event[0]).to.equal(EVENTS.BIDDER_DONE);\n expect(event[1].bids[0]).to.have.property('serverResponseTimeMs', 8);\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('bidderCode', 'appnexus');\n expect(response).to.have.property('requestId', '123');\n expect(response).to.have.property('cpm', 0.5);\n expect(response).to.have.property('meta');\n expect(response.meta).to.have.property('advertiserDomains');\n expect(response.meta.advertiserDomains[0]).to.equal('appnexus.com');\n expect(response.meta).to.have.property('dchain');\n expect(response.meta.dchain.ver).to.equal('1.0');\n expect(response.meta.dchain.nodes[0].asi).to.equal('magnite.com');\n expect(response).to.not.have.property('vastUrl');\n expect(response).to.not.have.property('videoCacheKey');\n expect(response).to.have.property('ttl', 60);\n });\n\n it('handles seatnonbid responses and emits SEAT_NON_BID', function () {\n const original = CONFIG;\n CONFIG.extPrebid = { returnallbidstatus: true };\n const nonbidResponse = {...RESPONSE_OPENRTB, ext: {seatnonbid: [{}]}};\n config.setConfig({ CONFIG });\n CONFIG = original;\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const responding = deepClone(nonbidResponse);\n Object.assign(responding.ext.seatnonbid, [{auctionId: 2}])\n server.requests[0].respond(200, {}, JSON.stringify(responding));\n const event = events.emit.thirdCall.args;\n expect(event[0]).to.equal(EVENTS.SEAT_NON_BID);\n expect(event[1].seatnonbid[0]).to.have.property('auctionId', 2);\n expect(event[1].requestedBidders).to.deep.equal(['appnexus']);\n expect(event[1].response).to.deep.equal(responding);\n });\n\n it('emits the PBS_ANALYTICS event and captures seatnonbid responses', function () {\n const original = CONFIG;\n CONFIG.extPrebid = { returnallbidstatus: true };\n const nonbidResponse = {...RESPONSE_OPENRTB, ext: {seatnonbid: [{}]}};\n config.setConfig({ CONFIG });\n CONFIG = original;\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const responding = deepClone(nonbidResponse);\n Object.assign(responding.ext.seatnonbid, [{auctionId: 2}])\n server.requests[0].respond(200, {}, JSON.stringify(responding));\n const event = events.emit.getCall(3).args;\n expect(event[0]).to.equal(EVENTS.PBS_ANALYTICS);\n expect(event[1].seatnonbid[0]).to.have.property('auctionId', 2);\n expect(event[1].requestedBidders).to.deep.equal(['appnexus']);\n expect(event[1].response).to.deep.equal(responding);\n });\n\n it('emits the PBS_ANALYTICS event and captures atag responses', function () {\n const original = CONFIG;\n CONFIG.extPrebid = { returnallbidstatus: true };\n const atagResponse = {...RESPONSE_OPENRTB, ext: {prebid: {analytics: {tags: ['data']}}}};\n config.setConfig({ CONFIG });\n CONFIG = original;\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const responding = deepClone(atagResponse);\n Object.assign(responding.ext.prebid.analytics.tags, ['stuff'])\n server.requests[0].respond(200, {}, JSON.stringify(responding));\n const event = events.emit.thirdCall.args;\n expect(event[0]).to.equal(EVENTS.PBS_ANALYTICS);\n expect(event[1].atag[0]).to.deep.equal('stuff');\n expect(event[1].response).to.deep.equal(responding);\n });\n\n it('emits the BEFORE_PBS_HTTP event and captures responses', function () {\n config.setConfig({ CONFIG });\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n sinon.assert.calledTwice(events.emit);\n const event = events.emit.firstCall.args;\n expect(event[0]).to.equal(EVENTS.BEFORE_PBS_HTTP);\n expect(event[1]).to.have.property('requestJson', server.requests[0].requestBody);\n expect(event[1]).to.have.property('endpointUrl', CONFIG.endpoint.p1Consent);\n expect(event[1].customHeaders).to.deep.equal({});\n });\n\n it('respects defaultTtl', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n defaultTtl: 30\n });\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n sinon.assert.calledTwice(events.emit);\n const event = events.emit.firstCall.args;\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('ttl', 30);\n });\n\n if (FEATURES.VIDEO) {\n it('handles OpenRTB video responses', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB_VIDEO));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('vastXml', RESPONSE_OPENRTB_VIDEO.seatbid[0].bid[0].adm);\n expect(response).to.have.property('mediaType', 'video');\n expect(response).to.have.property('bidderCode', 'appnexus');\n expect(response).to.have.property('requestId', '123');\n expect(response).to.have.property('cpm', 10);\n });\n\n it('handles response cache from ext.prebid.cache.vastXml', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB_VIDEO);\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.cache = {\n vastXml: {\n cacheId: 'abcd1234',\n url: 'https://prebid-cache.net/cache?uuid=abcd1234'\n }\n }\n });\n\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n\n expect(response).to.have.property('videoCacheKey', 'abcd1234');\n expect(response).to.have.property('vastUrl', 'https://prebid-cache.net/cache?uuid=abcd1234');\n });\n }\n\n it('add adserverTargeting object to bids when ext.prebid.targeting is defined', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB_VIDEO);\n const targetingTestData = {\n hb_cache_path: '/cache',\n hb_cache_host: 'prebid-cache.testurl.com'\n };\n\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.targeting = targetingTestData\n });\n\n if (FEATURES.VIDEO) {\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n\n expect(response).to.have.property('adserverTargeting');\n expect(response.adserverTargeting).to.deep.equal({\n 'hb_cache_path': '/cache',\n 'hb_cache_host': 'prebid-cache.testurl.com'\n });\n }\n });\n\n it('handles response cache from ext.prebid.targeting', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB_VIDEO);\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.targeting = {\n hb_uuid: 'a5ad3993',\n hb_cache_host: 'prebid-cache.net',\n hb_cache_path: '/cache'\n }\n });\n\n if (FEATURES.VIDEO) {\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n\n expect(response).to.have.property('videoCacheKey', 'a5ad3993');\n expect(response).to.have.property('vastUrl', 'https://prebid-cache.net/cache?uuid=a5ad3993');\n }\n });\n\n it('handles response cache from ext.prebid.targeting with wurl', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB_VIDEO);\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.events = {\n win: 'https://wurl.com?a=1&b=2'\n };\n item.bid[0].ext.prebid.targeting = {\n hb_uuid: 'a5ad3993',\n hb_cache_host: 'prebid-cache.net',\n hb_cache_path: '/cache'\n }\n });\n\n if (FEATURES.VIDEO) {\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('pbsBidId', '654321');\n }\n });\n\n it('add request property pbsBidId with ext.prebid.bidid value', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB_VIDEO);\n\n if (FEATURES.VIDEO) {\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n\n expect(response).to.have.property('pbsBidId', '654321');\n }\n });\n\n if (FEATURES.NATIVE) {\n it('handles OpenRTB native responses', function () {\n const stub = sinon.stub(auctionManager, 'index');\n stub.get(() => stubAuctionIndex({adUnits: REQUEST.ad_units}));\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({s2sConfig});\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB_NATIVE));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('adm').deep.equal(RESPONSE_OPENRTB_NATIVE.seatbid[0].bid[0].adm);\n expect(response).to.have.property('mediaType', 'native');\n expect(response).to.have.property('bidderCode', 'appnexus');\n expect(response).to.have.property('requestId', '123');\n expect(response).to.have.property('cpm', 10);\n\n stub.restore();\n });\n }\n\n it('should reject invalid bids', () => {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const response = deepClone(RESPONSE_OPENRTB);\n Object.assign(response.seatbid[0].bid[0], {w: null, h: null});\n server.requests[0].respond(200, {}, JSON.stringify(response));\n expect(addBidResponse.reject.calledOnce).to.be.true;\n expect(addBidResponse.called).to.be.false;\n });\n\n it('does not (by default) allow bids that were not requested', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const response = deepClone(RESPONSE_OPENRTB);\n response.seatbid[0].seat = 'unknown';\n server.requests[0].respond(200, {}, JSON.stringify(response));\n\n expect(addBidResponse.called).to.be.false;\n expect(addBidResponse.reject.calledOnce).to.be.true;\n });\n\n it('allows unrequested bids if config.allowUnknownBidderCodes', function () {\n const cfg = { ...CONFIG, allowUnknownBidderCodes: true };\n config.setConfig({ s2sConfig: cfg });\n adapter.callBids({ ...REQUEST, s2sConfig: cfg }, BID_REQUESTS, addBidResponse, done, ajax);\n const response = deepClone(RESPONSE_OPENRTB);\n response.seatbid[0].seat = 'unknown';\n server.requests[0].respond(200, {}, JSON.stringify(response));\n\n expect(addBidResponse.calledWith(sinon.match.any, sinon.match({ bidderCode: 'unknown' }))).to.be.true;\n });\n\n describe('stored impressions', () => {\n let bidReq, response;\n\n function mks2sReq(s2sConfig = CONFIG) {\n return {...REQUEST, s2sConfig, ad_units: [{...REQUEST.ad_units[0], bids: [{bidder: null, bid_id: 'testId'}]}]};\n }\n\n beforeEach(() => {\n bidReq = {...BID_REQUESTS[0], bidderCode: null, bids: [{...BID_REQUESTS[0].bids[0], bidder: null, bidId: 'testId'}]}\n response = deepClone(RESPONSE_OPENRTB);\n response.seatbid[0].seat = 'storedImpression';\n })\n\n it('uses \"null\" request\\'s ID for all responses, when a null request is present', function () {\n const cfg = {...CONFIG, allowUnknownBidderCodes: true};\n config.setConfig({s2sConfig: cfg});\n adapter.callBids(mks2sReq(cfg), [bidReq], addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(response));\n sinon.assert.calledWith(addBidResponse, sinon.match.any, sinon.match({bidderCode: 'storedImpression', requestId: 'testId'}))\n });\n\n it('does not allow null requests (= stored impressions) if allowUnknownBidderCodes is not set', () => {\n config.setConfig({s2sConfig: CONFIG});\n adapter.callBids(mks2sReq(), [bidReq], addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(response));\n expect(addBidResponse.called).to.be.false;\n expect(addBidResponse.reject.calledOnce).to.be.true;\n });\n })\n\n it('copies ortb2Imp to response when there is only a null bid', () => {\n const cfg = {...CONFIG};\n config.setConfig({s2sConfig: cfg});\n const ortb2Imp = {ext: {prebid: {storedrequest: 'value'}}};\n const req = {...REQUEST, s2sConfig: cfg, ad_units: [{...REQUEST.ad_units[0], bids: [{bidder: null, bid_id: 'testId'}], ortb2Imp}]};\n const bidReq = {...BID_REQUESTS[0], bidderCode: null, bids: [{...BID_REQUESTS[0].bids[0], bidder: null, bidId: 'testId'}]}\n adapter.callBids(req, [bidReq], addBidResponse, done, ajax);\n const actual = JSON.parse(server.requests[0].requestBody);\n sinon.assert.match(actual.imp[0], sinon.match(ortb2Imp));\n });\n\n it('setting adapterCode for default bidder', function () {\n config.setConfig({ CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('adapterCode', 'appnexus');\n });\n\n it('setting adapterCode for alternate bidder', function () {\n config.setConfig({ CONFIG });\n const RESPONSE_OPENRTB2 = deepClone(RESPONSE_OPENRTB);\n RESPONSE_OPENRTB2.seatbid[0].bid[0].ext.prebid.meta.adaptercode = 'appnexus2'\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB2));\n\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('adapterCode', 'appnexus2');\n });\n\n it('should set deferBilling and deferRendering to true when request has deferBilling = true', () => {\n config.setConfig({ CONFIG });\n const req = deepClone(REQUEST);\n req.ad_units.forEach(au => au.deferBilling = true);\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n sinon.assert.match(addBidResponse.firstCall.args[1], {\n deferBilling: true,\n deferRendering: true\n });\n });\n\n describe('on sync requested with no cookie', () => {\n let cfg, req, csRes;\n\n beforeEach(() => {\n cfg = utils.deepClone(CONFIG);\n req = utils.deepClone(REQUEST);\n cfg.syncEndpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync' };\n req.s2sConfig = cfg;\n config.setConfig({ s2sConfig: cfg });\n csRes = utils.deepClone(RESPONSE_NO_COOKIE);\n });\n\n afterEach(() => {\n resetSyncedStatus();\n })\n\n Object.entries({\n iframe: () => utils.insertUserSyncIframe,\n image: () => utils.triggerPixel,\n }).forEach(([type, syncer]) => {\n it(`passes timeout to ${type} syncs`, () => {\n cfg.syncTimeout = 123;\n csRes.bidder_status[0].usersync.type = type;\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(csRes));\n expect(syncer().args[0]).to.include.members([123]);\n });\n });\n });\n describe('when the response contains ext.prebid.fledge', () => {\n const AU = 'div-gpt-ad-1460505748561-0';\n const FLEDGE_RESP = {\n ext: {\n prebid: {\n fledge: {\n auctionconfigs: [\n {\n impid: AU,\n bidder: 'appnexus',\n config: {\n id: 1\n }\n },\n {\n impid: AU,\n bidder: 'other',\n config: {\n id: 2\n }\n }\n ]\n }\n }\n }\n }\n\n let fledgeStub, request, bidderRequests;\n\n function fledgeHook(next, ...args) {\n fledgeStub(...args);\n }\n\n before(() => {\n addPaapiConfig.before(fledgeHook);\n });\n\n after(() => {\n addPaapiConfig.getHooks({hook: fledgeHook}).remove();\n })\n\n beforeEach(function () {\n fledgeStub = sinon.stub();\n config.setConfig({\n s2sConfig: CONFIG,\n });\n bidderRequests = deepClone(BID_REQUESTS);\n bidderRequests.forEach(req => {\n Object.assign(req, {\n paapi: {\n enabled: true\n },\n ortb2: {\n fpd: 1\n }\n })\n req.bids.forEach(bid => {\n Object.assign(bid, {\n ortb2Imp: {\n fpd: 2,\n }\n })\n })\n });\n request = deepClone(REQUEST);\n request.ad_units.forEach(au => deepSetValue(au, 'ortb2Imp.ext.ae', 1));\n });\n\n function expectFledgeCalls() {\n const auctionId = bidderRequests[0].auctionId;\n sinon.assert.calledWith(fledgeStub, sinon.match({auctionId, adUnitCode: AU, ortb2: bidderRequests[0].ortb2, ortb2Imp: bidderRequests[0].bids[0].ortb2Imp}), sinon.match({config: {id: 1}}))\n sinon.assert.calledWith(fledgeStub, sinon.match({auctionId, adUnitCode: AU, ortb2: undefined, ortb2Imp: undefined}), sinon.match({config: {id: 2}}))\n }\n\n it('calls addPaapiConfig alongside addBidResponse', function () {\n adapter.callBids(request, bidderRequests, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(mergeDeep({}, RESPONSE_OPENRTB, FLEDGE_RESP)));\n expect(addBidResponse.called).to.be.true;\n expectFledgeCalls();\n });\n\n it('calls addPaapiConfig when there is no bid in the response', () => {\n adapter.callBids(request, bidderRequests, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(FLEDGE_RESP));\n expect(addBidResponse.called).to.be.false;\n expectFledgeCalls();\n });\n\n it('wraps call in runWithBidder', () => {\n let fail = false;\n fledgeStub.callsFake(({bidder}) => {\n try {\n expect(bidder).to.exist.and.to.eql(config.getCurrentBidder());\n } catch (e) {\n fail = true;\n }\n });\n adapter.callBids(request, bidderRequests, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(FLEDGE_RESP));\n expect(fail).to.be.false;\n })\n });\n });\n\n describe('bid won events', function () {\n let uniqueIdCount = 0;\n let triggerPixelStub;\n const staticUniqueIds = ['1000', '1001', '1002', '1003'];\n\n before(function () {\n triggerPixelStub = sinon.stub(utils, 'triggerPixel');\n });\n\n beforeEach(function () {\n sinon.stub(utils, 'insertUserSyncIframe');\n sinon.stub(utils, 'logError');\n sinon.stub(utils, 'getUniqueIdentifierStr').callsFake(() => {\n uniqueIdCount++;\n return staticUniqueIds[uniqueIdCount - 1];\n });\n triggerPixelStub.resetHistory();\n\n config.setConfig({\n s2sConfig: Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n })\n });\n });\n\n afterEach(function () {\n utils.triggerPixel.resetHistory();\n utils.insertUserSyncIframe.restore();\n utils.logError.restore();\n utils.getUniqueIdentifierStr.restore();\n uniqueIdCount = 0;\n });\n\n after(function () {\n triggerPixelStub.restore();\n });\n\n it('should translate wurl and burl into eventtrackers', () => {\n const burlEvent = {event: 1, method: 1, url: 'burl'};\n const winEvent = {event: 500, method: 1, url: 'events.win'};\n const trackerEvent = {event: 500, method: 1, url: 'eventtracker'};\n\n const resp = utils.deepClone(RESPONSE_OPENRTB);\n resp.seatbid[0].bid[0].ext.eventtrackers = [\n trackerEvent,\n burlEvent\n ]\n resp.seatbid[0].bid[0].ext.prebid.events = {\n win: winEvent.url\n };\n resp.seatbid[0].bid[0].burl = burlEvent.url;\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(resp));\n expect(addBidResponse.getCall(0).args[1].eventtrackers).to.have.deep.members([\n burlEvent, trackerEvent, winEvent\n ]);\n })\n\n it('should call triggerPixel if wurl is defined', function () {\n const clonedResponse = utils.deepClone(RESPONSE_OPENRTB);\n clonedResponse.seatbid[0].bid[0].ext.prebid.events = {\n win: 'https://wurl.org'\n };\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(clonedResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n markWinningBid(addBidResponse.getCall(0).args[1]);\n\n expect(utils.triggerPixel.called).to.be.true;\n expect(utils.triggerPixel.getCall(0).args[0]).to.include('https://wurl.org');\n });\n\n it('should not call triggerPixel if wurl is undefined', function () {\n const clonedResponse = utils.deepClone(RESPONSE_OPENRTB);\n clonedResponse.seatbid[0].bid[0].ext.prebid.events = {};\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(clonedResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n markWinningBid(addBidResponse.getCall(0).args[1]);\n expect(utils.triggerPixel.called).to.be.false;\n });\n })\n\n describe('s2sConfig', function () {\n let logErrorSpy;\n\n beforeEach(function () {\n logErrorSpy = sinon.spy(utils, 'logError');\n resetSyncedStatus();\n });\n\n afterEach(function () {\n utils.logError.restore();\n });\n\n it('should log an error when accountId is missing', function () {\n const options = {\n enabled: true,\n bidders: ['appnexus'],\n timeout: 1000,\n adapter: 'prebidServer',\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n };\n\n config.setConfig({ s2sConfig: options });\n sinon.assert.calledOnce(logErrorSpy);\n });\n\n it('should log an error when endpoint is missing', function () {\n const options = {\n accountId: '1',\n bidders: ['appnexus'],\n timeout: 1000,\n enabled: true,\n adapter: 'prebidServer'\n };\n\n config.setConfig({ s2sConfig: options });\n sinon.assert.calledOnce(logErrorSpy);\n });\n\n it('should log an error when using an unknown vendor', function () {\n const options = {\n accountId: '1',\n bidders: ['appnexus'],\n defaultVendor: 'mytest'\n };\n\n config.setConfig({ s2sConfig: options });\n sinon.assert.calledOnce(logErrorSpy);\n });\n\n it('should set adapterOptions', function () {\n config.setConfig({\n s2sConfig: {\n adapterOptions: {\n rubicon: {\n singleRequest: true,\n foo: 'bar'\n }\n }\n }\n });\n expect(config.getConfig('s2sConfig').adapterOptions).to.deep.equal({\n rubicon: {\n singleRequest: true,\n foo: 'bar'\n }\n })\n });\n\n it('should set default s2s ttl', function () {\n config.setConfig({\n s2sConfig: {\n defaultTtl: 30\n }\n });\n expect(config.getConfig('s2sConfig').defaultTtl).to.deep.equal(30);\n });\n\n it('should set syncUrlModifier', function () {\n config.setConfig({\n s2sConfig: {\n syncUrlModifier: {\n appnexus: () => {\n }\n }\n }\n });\n expect(typeof config.getConfig('s2sConfig').syncUrlModifier.appnexus).to.equal('function')\n });\n\n Object.entries({\n 'an alias'() {\n adapterManager.aliasBidAdapter('rubicon', 'rubicon-alias');\n },\n 'a server side alias'(s2sConfig) {\n s2sConfig.extPrebid = {\n aliases: {\n 'rubicon-alias': 'rubicon'\n }\n }\n }\n }).forEach(([t, setupAlias]) => {\n describe(`when using ${t}`, () => {\n afterEach(() => {\n delete adapterManager.aliasRegistry['rubicon-alias'];\n });\n it(`should set correct bidder names to bidders property`, function () {\n const s2sConfig = utils.deepClone(CONFIG);\n\n // Add syncEndpoint so that the request goes to the User Sync endpoint\n // Modify the bidders property to include an alias for Rubicon adapter\n s2sConfig.syncEndpoint = {p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync'};\n s2sConfig.bidders = ['appnexus', 'rubicon-alias'];\n\n setupAlias(s2sConfig);\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n // Add another bidder, `rubicon-alias`\n s2sBidRequest.ad_units[0].bids.push({\n bidder: 'rubicon-alias',\n params: {\n accoundId: 14062,\n siteId: 70608,\n zoneId: 498816\n }\n });\n\n const bidRequest = utils.deepClone(BID_REQUESTS);\n bidRequest.push({\n 'bidderCode': 'rubicon-alias',\n 'auctionId': '4146ab2b-9422-4040-9b1c-966fffbfe2d4',\n 'bidderRequestId': '4b1a4f9c3e4546',\n 'tid': 'd7fa8342-ae22-4ca1-b237-331169350f84',\n 'bids': [\n {\n 'bidder': 'rubicon-alias',\n 'params': {\n 'accountId': 14062,\n 'siteId': 70608,\n 'zoneId': 498816\n },\n 'bid_id': '2a9523915411c3',\n 'mediaTypes': {\n 'banner': {\n 'sizes': [\n [\n 300,\n 250\n ]\n ]\n }\n },\n 'adUnitCode': 'div-gpt-ad-1460505748561-0',\n 'transactionId': '78ddc106-b7d8-45d1-bd29-86993098e53d',\n 'sizes': [\n [\n 300,\n 250\n ]\n ],\n 'bidId': '2a9523915411c3',\n 'bidderRequestId': '4b1a4f9c3e4546',\n 'auctionId': '4146ab2b-9422-4040-9b1c-966fffbfe2d4'\n }\n ],\n 'auctionStart': 1569234122602,\n 'timeout': 1000,\n 'src': 's2s'\n });\n\n adapter.callBids(s2sBidRequest, bidRequest, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.bidders).to.deep.equal(['appnexus', 'rubicon']);\n });\n });\n });\n\n it('should add cooperative sync flag to cookie_sync request if property is present', function () {\n const s2sConfig = utils.deepClone(CONFIG);\n s2sConfig.coopSync = false;\n s2sConfig.syncEndpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync' };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n const bidRequest = utils.deepClone(BID_REQUESTS);\n\n adapter.callBids(s2sBidRequest, bidRequest, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.coopSync).to.equal(false);\n });\n\n it('should not add cooperative sync flag to cookie_sync request if property is not present', function () {\n const s2sConfig = utils.deepClone(CONFIG);\n s2sConfig.syncEndpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync' };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n const bidRequest = utils.deepClone(BID_REQUESTS);\n\n adapter.callBids(s2sBidRequest, bidRequest, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.coopSync).to.be.undefined;\n });\n\n it('should set imp banner if ortb2Imp.banner is present', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n bidRequest.ad_units[0].ortb2Imp = {\n banner: {\n api: 7\n },\n instl: 1\n };\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp[0].banner.api).to.equal(7);\n expect(parsedRequestBody.imp[0].instl).to.equal(1);\n });\n\n it('adds debug flag', function () {\n config.setConfig({ debug: true });\n\n const bidRequest = utils.deepClone(BID_REQUESTS);\n\n adapter.callBids(REQUEST, bidRequest, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.ext.prebid.debug).is.equal(true);\n });\n\n it('should correctly add floors flag', function () {\n const bidRequest = utils.deepClone(BID_REQUESTS);\n\n // should not pass if floorData is undefined\n adapter.callBids(REQUEST, bidRequest, addBidResponse, done, ajax);\n let requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.ext.prebid.floors).to.be.undefined;\n\n config.setConfig({floors: {}});\n\n adapter.callBids(REQUEST, bidRequest, addBidResponse, done, ajax);\n requestBid = JSON.parse(server.requests[1].requestBody);\n\n expect(requestBid.ext.prebid.floors).to.deep.equal({ enabled: false });\n });\n\n it('should override prebid server default DEFAULT_S2S_CURRENCY', function () {\n config.setConfig({\n currency: { adServerCurrency: 'JPY' },\n });\n\n const bidRequests = utils.deepClone(BID_REQUESTS);\n adapter.callBids(REQUEST, bidRequests, addBidResponse, done, ajax);\n\n const parsedRequestBody = JSON.parse(server.requests[1].requestBody);\n expect(parsedRequestBody.cur).to.deep.equal(['JPY']);\n });\n\n it('should correctly set the floorMin key when multiple bids with various bidfloors exist', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n floors: {\n enabled: true\n }\n },\n bidders: ['b1', 'b2']\n });\n\n const bidderRequests = [\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b1',\n bids: [{\n bidder: 'b1',\n bidId: 1,\n getFloor: () => ({\n currency: 'US',\n floor: 1.23\n })\n }]\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b2',\n bids: [{\n bidder: 'b2',\n bidId: 2,\n getFloor: () => ({\n currency: 'EUR',\n floor: 3.21\n })\n }],\n }\n ];\n\n const adUnits = [\n {\n code: 'au1',\n transactionId: 't1',\n mediaTypes: {\n banner: {sizes: [1, 1]}\n },\n bids: [{bidder: 'b1', bid_id: 1}]\n },\n {\n code: 'au2',\n transactionId: 't2',\n bids: [{bidder: 'b2', bid_id: 2}],\n mediaTypes: {\n banner: {sizes: [1, 1]}\n }\n }\n ];\n\n const _config = {\n s2sConfig: s2sConfig,\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n s2sBidRequest.ad_units = adUnits;\n config.setConfig(_config);\n\n adapter.callBids(s2sBidRequest, bidderRequests, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.imp[0].bidfloor).to.equal(1.23);\n expect(requestBid.imp[1].bidfloor).to.equal(3.21);\n\n // first imp floorCur should be set\n expect(requestBid.ext.prebid.floors).to.deep.equal({ enabled: true, floorMin: 1.23, floorMinCur: 'US' });\n });\n\n it('should correctly set the floorMin key when multiple bids with various bidfloors exist and ortb2Imp contains the lowest floorMin', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n floors: {\n enabled: true\n }\n },\n bidders: ['b1', 'b2']\n });\n\n const bidderRequests = [\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b1',\n bids: [{\n bidder: 'b1',\n bidId: 1,\n getFloor: () => ({\n currency: 'CUR',\n floor: 1.23\n })\n }]\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b2',\n bids: [{\n bidder: 'b2',\n bidId: 2,\n getFloor: () => ({\n currency: 'CUR',\n floor: 3.21\n })\n }],\n }\n ];\n\n const adUnits = [\n {\n code: 'au1',\n transactionId: 't1',\n mediaTypes: {\n banner: {sizes: [1, 1]}\n },\n bids: [{bidder: 'b1', bid_id: 1}]\n },\n {\n code: 'au2',\n transactionId: 't2',\n bids: [{bidder: 'b2', bid_id: 2}],\n mediaTypes: {\n banner: {sizes: [1, 1]}\n },\n ortb2Imp: {\n ext: {\n prebid: {\n floors: {\n floorMin: 1\n }\n }\n }\n }\n }\n ];\n\n const _config = {\n s2sConfig: s2sConfig,\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n s2sBidRequest.ad_units = adUnits;\n config.setConfig(_config);\n\n adapter.callBids(s2sBidRequest, bidderRequests, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.imp[0].bidfloor).to.equal(1.23);\n expect(requestBid.imp[1].bidfloor).to.equal(3.21);\n\n expect(requestBid.ext.prebid.floors).to.deep.equal({ enabled: true, floorMin: 1, floorMinCur: 'CUR' });\n });\n });\n\n describe('getPBSBidderConfig', () => {\n [\n {\n t: 'does not alter config when there are no conflicts',\n global: {\n k1: 'val'\n },\n bidder: {\n bidderA: {\n k2: 'val'\n }\n },\n expected: {\n bidderA: {\n k2: 'val'\n }\n }\n },\n {\n t: 'uses bidder config on type mismatch (scalar/object)',\n global: {\n k1: 'val',\n k2: 'val'\n },\n bidder: {\n bidderA: {\n k1: {k3: 'val'}\n }\n },\n expected: {\n bidderA: {\n k1: {k3: 'val'}\n }\n }\n },\n {\n t: 'uses bidder config on type mismatch (array/object)',\n global: {\n k: [1, 2]\n },\n bidder: {\n bidderA: {\n k: {inner: 'val'}\n }\n },\n expected: {\n bidderA: {\n k: {inner: 'val'}\n }\n }\n },\n {\n t: 'uses bidder config on type mismatch (object/array)',\n global: {\n k: {inner: 'val'}\n },\n bidder: {\n bidderA: {\n k: [1, 2]\n }\n },\n expected: {\n bidderA: {\n k: [1, 2]\n }\n }\n },\n {\n t: 'uses bidder config on type mismatch (array/null)',\n global: {\n k: [1, 2]\n },\n bidder: {\n bidderA: {\n k: null\n }\n },\n expected: {\n bidderA: {\n k: null\n }\n }\n },\n {\n t: 'uses bidder config on type mismatch (null/array)',\n global: {},\n bidder: {\n bidderA: {\n k: [1, 2]\n }\n },\n expected: {\n bidderA: {\n k: [1, 2]\n }\n }\n },\n {\n t: 'concatenates arrays',\n global: {\n key: 'value',\n array: [1]\n },\n bidder: {\n bidderA: {\n array: [2]\n }\n },\n expected: {\n bidderA: {\n array: [1, 2]\n }\n }\n },\n {\n t: 'concatenates nested arrays',\n global: {\n nested: {\n array: [1]\n }\n },\n bidder: {\n bidderA: {\n key: 'value',\n nested: {\n array: [2]\n }\n }\n },\n expected: {\n bidderA: {\n key: 'value',\n nested: {\n array: [1, 2]\n }\n }\n }\n },\n {\n t: 'does not repeat equal elements',\n global: {\n array: [{id: 1}]\n },\n bidder: {\n bidderA: {\n array: [{id: 1}, {id: 2}]\n }\n },\n expected: {\n bidderA: {\n array: [{id: 1}, {id: 2}]\n }\n }\n }\n ].forEach(({t, global, bidder, expected}) => {\n it(t, () => {\n expect(getPBSBidderConfig({global, bidder})).to.eql(expected);\n })\n })\n });\n describe('EID handling', () => {\n function mkEid(source, value = source) {\n return {source, value};\n }\n\n function eidEntry(source, value = source, bidders = false) {\n return {eid: {source, value}, bidders};\n }\n\n describe('extractEids', () => {\n [\n {\n t: 'no bidder-specific eids',\n global: {\n user: {\n ext: {\n eids: [\n mkEid('idA', 'id1'),\n mkEid('idA', 'id2')\n ]\n },\n eids: [mkEid('idB')]\n }\n },\n expected: {\n eids: [\n eidEntry('idA', 'id1'),\n eidEntry('idA', 'id2'),\n eidEntry('idB')\n ],\n conflicts: ['idA']\n }\n },\n {\n t: 'bidder-specific eids',\n global: {\n user: {\n eids: [\n mkEid('idA')\n ]\n },\n },\n bidder: {\n bidderA: {\n user: {\n ext: {\n eids: [\n mkEid('idB')\n ]\n }\n }\n }\n },\n expected: {\n eids: [\n eidEntry('idA'),\n eidEntry('idB', 'idB', ['bidderA'])\n ]\n }\n },\n {\n t: 'conflicting bidder-specific eids',\n global: {\n user: {\n eids: [mkEid('idA', 'idA1')]\n },\n },\n bidder: {\n bidderA: {\n user: {\n eids: [mkEid('idA', 'idA2'), mkEid('idB', 'idB1'), mkEid('idD')]\n },\n },\n bidderB: {\n user: {\n ext: {\n eids: [mkEid('idB', 'idB2'), mkEid('idC'), mkEid('idD')]\n }\n }\n },\n },\n expected: {\n eids: [\n eidEntry('idA', 'idA1'),\n eidEntry('idA', 'idA2', ['bidderA']),\n eidEntry('idB', 'idB1', ['bidderA']),\n eidEntry('idB', 'idB2', ['bidderB']),\n eidEntry('idC', 'idC', ['bidderB']),\n eidEntry('idD', 'idD', ['bidderA', 'bidderB'])\n ],\n conflicts: ['idA', 'idB']\n }\n },\n {\n t: 'duplicated bidder-specific eids',\n bidder: {\n bidderA: {\n user: {\n eids: [mkEid('id'), mkEid('id')]\n }\n }\n },\n expected: {\n eids: [\n eidEntry('id', 'id', ['bidderA'])\n ]\n }\n }\n ].forEach(({t, global = {}, bidder = {}, expected}) => {\n it(t, () => {\n const {eids, conflicts} = extractEids({global, bidder});\n expect(eids).to.have.deep.members(expected.eids);\n expect(Array.from(conflicts)).to.have.members(expected.conflicts || []);\n })\n });\n });\n describe('consolidateEids', () => {\n it('returns global EIDs without permissions', () => {\n expect(consolidateEids({\n eids: [eidEntry('idA'), eidEntry('idB')]\n })).to.eql({\n global: [mkEid('idA'), mkEid('idB')],\n permissions: [],\n bidder: {}\n })\n });\n\n it('returns conflicting, but global EIDs', () => {\n expect(consolidateEids({\n eids: [eidEntry('idA', 'idA1'), eidEntry('idA', 'idA2')],\n conflicts: new Set(['idA'])\n })).to.eql({\n global: [mkEid('idA', 'idA1'), mkEid('idA', 'idA2')],\n permissions: [],\n bidder: {}\n })\n })\n\n it('sets permissions for bidder-speficic EIDS', () => {\n expect(consolidateEids({\n eids: [\n eidEntry('idA'),\n eidEntry('idB', 'idB', ['bidderB'])\n ]\n })).to.eql({\n global: [mkEid('idA'), mkEid('idB')],\n permissions: [{source: 'idB', bidders: ['bidderB']}],\n bidder: {}\n })\n })\n\n it('does not consolidate conflicting bidder-specific EIDs', () => {\n expect(consolidateEids({\n eids: [\n eidEntry('global'),\n eidEntry('idA', 'idA1', ['bidderA']),\n eidEntry('idA', 'idA2', ['bidderB'])\n ],\n conflicts: new Set(['idA'])\n })).to.eql({\n global: [mkEid('global')],\n permissions: [],\n bidder: {\n bidderA: [mkEid('idA', 'idA1')],\n bidderB: [mkEid('idA', 'idA2')]\n }\n })\n })\n\n it('does not set permissions for conflicting bidder-specific eids', () => {\n expect(consolidateEids({\n eids: [eidEntry('idA', 'idA1'), eidEntry('idA', 'idA2', ['bidderA'])],\n conflicts: new Set(['idA'])\n })).to.eql({\n global: [mkEid('idA', 'idA1')],\n permissions: [],\n bidder: {\n bidderA: [mkEid('idA', 'idA2')]\n }\n })\n });\n\n it('can do partial consolidation when only some IDs are conflicting', () => {\n expect(consolidateEids({\n eids: [\n eidEntry('idA', 'idA1'),\n eidEntry('idB', 'idB', ['bidderB']),\n eidEntry('idA', 'idA2', ['bidderA'])\n ],\n conflicts: new Set(['idA'])\n })).to.eql({\n global: [mkEid('idA', 'idA1'), mkEid('idB')],\n permissions: [{source: 'idB', bidders: ['bidderB']}],\n bidder: {\n bidderA: [mkEid('idA', 'idA2')]\n }\n });\n });\n })\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"prebidServerBidAdapter_spec.js","names":["expect","PrebidServer","Adapter","resetSyncedStatus","validateConfig","s2sDefaultConfig","processPBSRequest","adapterManager","PBS_ADAPTER_NAME","utils","deepAccess","deepClone","mergeDeep","ajax","config","events","EVENTS","DEBUG_MODE","server","requestBids","redactor","activityRules","hook","decorateAdUnitsWithNativeParams","auctionManager","stubAuctionIndex","addPaapiConfig","registerBidder","getGlobal","addFPDToBidderRequest","deepSetValue","ACTIVITY_TRANSMIT_UFPD","MODULE_TYPE_PREBID","consolidateEids","extractEids","getPBSBidderConfig","markWinningBid","CONFIG","accountId","enabled","bidders","cacheMarkup","endpoint","p1Consent","noP1Consent","REQUEST","NATIVE_ORTB_MTO","ortb","context","plcmttype","eventtrackers","event","methods","assets","id","required","img","type","w","h","data","len","title","ext","custom_param","key","ver","VIDEO_REQUEST","OUTSTREAM_VIDEO_REQUEST","playerSize","mimes","renderer","url","render","bid","ANOutstreamVideo","renderAd","targetId","adUnitCode","adResponse","banner","sizes","code","mediaTypes","video","skip","bids","bidder","params","placementId","skippable","playback_method","BID_REQUESTS","RESPONSE_NO_BID_NO_UNIT","RESPONSE_NO_BID_UNIT_SET","RESPONSE_NO_COOKIE","RESPONSE_NO_PBS_COOKIE","RESPONSE_OPENRTB","RESPONSE_OPENRTB_VIDEO","seatbid","impid","price","adm","adid","adomain","iurl","cid","crid","dealid","prebid","bidid","appnexus","brand_id","auction_id","bidder_id","bid_ad_type","seat","responsetimemillis","RESPONSE_OPENRTB_NATIVE","addFpdEnrichmentsToS2SRequest","s2sReq","bidderRequests","ortb2Fragments","global","ortb2","describe","cfg1","cfg2","beforeEach","it","adapter","to","eql","addBidResponse","sinon","spy","done","reject","prepRequest","req","ad_units","forEach","adUnit","nativeParams","before","ready","resetConfig","setConfig","floors","afterEach","resetHistory","after","sandbox","redactorMocks","createSandbox","stub","callsFake","hasOwnProperty","component","o","bidRequest","mock","s2sConfig","restore","callBids","assert","calledWithMatch","Object","entries","_ref","calledWith","au","map","ortb2Imp","tid","makeRequest","JSON","parse","requests","requestBody","enableTIDs","source","not","exist","imp","createtids","equal","auctionId","_ref2","t","allow","activity","match","any","browsingTopics","cfg","tmaxmax","s2sCfg","payloadWithFragments","requestBidsTimeout","maxTimeout","tmax","Math","floor","configWithCustomHeaders","customHeaders","customHeader1","reqWithNewConfig","reqHeaders","requestHeaders","badConfig","badCfgRequest","length","badBidderRequest","gdprConsent","consentString","addtlConsent","gdprApplies","apiVersion","vendorData","purpose","consents","filterBidderlessCalls","badReq","bidderCode","requestBid","ortb2Config","videoBid","be","undefined","gzipStub","gzipSupportStub","getParamStub","debugStub","resolves","assign","endpointCompression","returns","withArgs","setTimeout","calledOnce","true","include","called","false","and","a","mockTCF","applies","hasP1Consent","arguments","removeAll","consentConfig","consentManagement","cmpApi","gdprBidRequest","regs","gdpr","is","user","consent","ConsentedProvidersSettings","consented_providers","uspBidRequest","uspConsent","us_privacy","consentBidRequest","cookieSyncConfig","syncEndpoint","s2sBidRequest","gdpr_consent","contain","have","lengthOf","account","_config","s2sreq","device","ifa","app","bundle","window","screen","width","height","publisher","runTest","expectedFloor","expectedCur","requestCount","bidfloor","bidfloorcur","getFloorResponse","getFloor","currency","mediaType","size","adServerCurrency","bidId","adUnits","transactionId","bid_id","pbsReq","imp1","imp2","Error","_ref3","updateBid","format","obj","target","floorFilter","_ref4","_ref5","_ref6","flatMap","orig","expectDesc","conversionFn","amount","from","parseFloat","_ref7","mockConvertCurrency","origConvertCurrency","convertCurrency","ORTB_NATIVE_REQ","native","ortbReq","request","deep","openRtbNativeRequest","nativeReq","ortbNative","icon","aspect_ratios","icons","filter","hmin","wmin","site","domain","content","language","page","aliasBidder","haveOwnProperty","aliases","beintoo","auctiontimestamp","targeting","includebidderkeys","includewinners","adjustedConfig","unit","pbjs","bidderD","alias","skipPbsAliasing","aid","channel","name","version","bidderReqs","callCookieSync","userSync","filterSettings","all","iframe","image","userSyncLimit","limit","missing","0","_ref8","setup","gppConsent","applicableSections","gppString","gpp","gpp_sid","adapterOptions","requestParams","ua","ip","foo","eids","payload","eidpermissions","unknown","push","rubicon","globalEids","bidderconfig","members","concat","bidRequests","parsedRequestBody","find","method","cur","extPrebid","cache","vastxml","schain","complete","nodes","asi","hp","sid","schains","siteId","zoneId","_ref9","fpd","chain1","chain","chain2","multibid","maxBids","expected","maxbids","test","commonSite","keywords","search","commonUser","gender","userrating","pageType","category","yob","geo","country","registered","interests","bcat","badv","allowedBidders","commonContextExpected","fromEntries","allowUnknownBidderCodes","clonedReq","console","log","nested","property","adserver","adslot","l0","l2","A","B","storedRequestId","storedrequest","triggerPixel","insertUserSyncIframe","logError","emit","respond","bidderRequest","BIDDER_ERROR","success","error","mockAjax","_","callback","_ref0","timedOut","stringify","notCalled","firstCall","args","response","cacheResponse","targetingTestData","hb_cache_path","hb_cache_host","item","adserverTargeting","pbjsResponse","modifiedResponse","that","equals","rubiconAdapter","registerSyncs","getBidAdapter","calledTwice","secondCall","BIDDER_DONE","meta","advertiserDomains","dchain","original","returnallbidstatus","nonbidResponse","seatnonbid","responding","thirdCall","SEAT_NON_BID","requestedBidders","getCall","PBS_ANALYTICS","atagResponse","analytics","tags","atag","BEFORE_PBS_HTTP","defaultTtl","s2sVidRequest","vastXml","cacheId","hb_uuid","win","get","bidReq","mks2sReq","requestId","actual","RESPONSE_OPENRTB2","adaptercode","deferBilling","deferRendering","csRes","_ref1","syncer","syncTimeout","bidder_status","usersync","AU","FLEDGE_RESP","fledge","auctionconfigs","fledgeStub","fledgeHook","next","_len","Array","_key","getHooks","remove","paapi","expectFledgeCalls","fail","_ref10","getCurrentBidder","e","uniqueIdCount","triggerPixelStub","staticUniqueIds","getUniqueIdentifierStr","burlEvent","winEvent","trackerEvent","resp","burl","clonedResponse","logErrorSpy","options","timeout","defaultVendor","singleRequest","getConfig","syncUrlModifier","an alias","aliasBidAdapter","a server side alias","_ref11","setupAlias","aliasRegistry","accoundId","coopSync","api","instl","debug","floorMin","floorMinCur","k1","bidderA","k2","k3","k","inner","array","_ref12","mkEid","value","eidEntry","eid","conflicts","bidderB","_ref13","permissions","Set"],"sourceRoot":"../../../../..","sources":["test/spec/modules/prebidServerBidAdapter_spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {\n PrebidServer as Adapter,\n resetSyncedStatus,\n validateConfig,\n s2sDefaultConfig,\n processPBSRequest\n} from 'modules/prebidServerBidAdapter/index.js';\nimport adapterManager, {PBS_ADAPTER_NAME} from 'src/adapterManager.js';\nimport * as utils from 'src/utils.js';\nimport {deepAccess, deepClone, mergeDeep} from 'src/utils.js';\nimport {ajax} from 'src/ajax.js';\nimport {config} from 'src/config.js';\nimport * as events from 'src/events.js';\nimport { EVENTS, DEBUG_MODE } from 'src/constants.js';\nimport {server} from 'test/mocks/xhr.js';\nimport 'modules/appnexusBidAdapter.js'; // appnexus alias test\nimport 'modules/rubiconBidAdapter.js'; // rubicon alias test\nimport {requestBids} from 'src/prebid.js';\nimport 'modules/currency.js'; // adServerCurrency test\nimport 'modules/userId/index.js';\nimport 'modules/multibid/index.js';\nimport 'modules/priceFloors.js';\nimport 'modules/consentManagementTcf.js';\nimport 'modules/consentManagementUsp.js';\nimport 'modules/consentManagementGpp.js';\nimport 'modules/paapi.js';\nimport * as redactor from 'src/activities/redactor.js';\nimport * as activityRules from 'src/activities/rules.js';\nimport {hook} from '../../../src/hook.js';\nimport {decorateAdUnitsWithNativeParams} from '../../../src/native.js';\nimport {auctionManager} from '../../../src/auctionManager.js';\nimport {stubAuctionIndex} from '../../helpers/indexStub.js';\nimport {addPaapiConfig, registerBidder} from 'src/adapters/bidderFactory.js';\nimport {getGlobal} from '../../../src/prebidGlobal.js';\nimport {addFPDToBidderRequest} from '../../helpers/fpd.js';\nimport {deepSetValue} from '../../../src/utils.js';\nimport {ACTIVITY_TRANSMIT_UFPD} from '../../../src/activities/activities.js';\nimport {MODULE_TYPE_PREBID} from '../../../src/activities/modules.js';\nimport {\n consolidateEids,\n extractEids,\n getPBSBidderConfig\n} from '../../../modules/prebidServerBidAdapter/bidderConfig.js';\nimport {markWinningBid} from '../../../src/adRendering.js';\n\nlet CONFIG = {\n accountId: '1',\n enabled: true,\n bidders: ['appnexus'],\n cacheMarkup: 2,\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction',\n noP1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n};\n\nconst REQUEST = {\n 'account_id': '1',\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'max_bids': 1,\n 'timeout_millis': 1000,\n 'secure': 0,\n 'url': '',\n 'prebid_version': '0.30.0-pre',\n 's2sConfig': CONFIG,\n 'ad_units': [\n {\n 'code': 'div-gpt-ad-1460505748561-0',\n 'sizes': [[300, 250], [300, 600]],\n 'mediaTypes': {\n 'banner': {\n 'sizes': [[300, 250], [300, 300]]\n },\n 'native': {\n 'title': {\n 'required': true,\n 'len': 800\n },\n 'image': {\n 'required': true,\n 'sizes': [989, 742],\n },\n 'icon': {\n 'required': true,\n 'aspect_ratios': [{\n 'min_height': 10,\n 'min_width': 10,\n 'ratio_height': 1,\n 'ratio_width': 1\n }]\n },\n 'sponsoredBy': {\n 'required': true\n }\n }\n },\n 'transactionId': '4ef956ad-fd83-406d-bd35-e4bb786ab86c',\n 'adUnitId': 'au-id-1',\n 'bids': [\n {\n 'bid_id': '123',\n 'bidder': 'appnexus',\n 'params': {\n 'placementId': '10433394',\n 'member': 123\n }\n }\n ]\n }\n ]\n};\n\nconst NATIVE_ORTB_MTO = {\n ortb: {\n context: 3,\n plcmttype: 2,\n eventtrackers: [\n {\n event: 1,\n methods: [\n 1\n ]\n },\n {\n event: 2,\n methods: [\n 2\n ]\n }\n ],\n assets: [\n {\n id: 1,\n required: 1,\n img: {\n type: 3,\n w: 300,\n h: 250\n }\n },\n {\n id: 2,\n required: 1,\n img: {\n type: 1,\n w: 127,\n h: 83\n }\n },\n {\n id: 3,\n required: 1,\n data: {\n type: 1,\n len: 25\n }\n },\n {\n id: 4,\n required: 1,\n title: {\n len: 140\n }\n },\n {\n id: 5,\n required: 1,\n data: {\n type: 2,\n len: 40\n }\n },\n {\n id: 6,\n required: 1,\n data: {\n type: 12,\n len: 15\n }\n },\n ],\n ext: {\n custom_param: {\n key: 'custom_value'\n }\n },\n ver: '1.2'\n }\n}\n\nconst VIDEO_REQUEST = {\n 'account_id': '1',\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'max_bids': 1,\n 'timeout_millis': 1000,\n 'secure': 0,\n 'url': '',\n 'prebid_version': '1.4.0-pre',\n 's2sConfig': CONFIG,\n 'ad_units': [\n {\n 'code': 'div-gpt-ad-1460505748561-0',\n 'sizes': [640, 480],\n 'mediaTypes': {\n 'video': {\n 'playerSize': [[640, 480]],\n 'mimes': ['video/mp4']\n }\n },\n 'transactionId': '4ef956ad-fd83-406d-bd35-e4bb786ab86c',\n 'bids': [\n {\n 'bid_id': '123',\n 'bidder': 'appnexus',\n 'params': { 'placementId': '12349520' }\n }\n ]\n }\n ]\n};\n\nconst OUTSTREAM_VIDEO_REQUEST = {\n 'account_id': '1',\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'max_bids': 1,\n 'timeout_millis': 1000,\n 'secure': 0,\n 'url': '',\n 'prebid_version': '1.4.0-pre',\n 's2sConfig': CONFIG,\n 'ad_units': [\n {\n 'code': 'div-gpt-ad-1460505748561-0',\n 'sizes': [640, 480],\n 'mediaTypes': {\n 'video': {\n playerSize: [[640, 480]],\n context: 'outstream',\n mimes: ['video/mp4'],\n renderer: {\n url: 'https://acdn.adnxs.com/video/outstream/ANOutstreamVideo.js',\n render: function (bid) {\n ANOutstreamVideo.renderAd({\n targetId: bid.adUnitCode,\n adResponse: bid.adResponse,\n });\n }\n }\n },\n banner: { sizes: [[300, 250]] }\n },\n 'transactionId': '4ef956ad-fd83-406d-bd35-e4bb786ab86c',\n 'bids': [\n {\n 'bid_id': '123',\n 'bidder': 'appnexus',\n 'params': { 'placementId': '12349520' }\n }\n ]\n },\n {\n code: 'video1',\n mediaTypes: {\n video: {\n playerSize: [640, 480],\n context: 'outstream',\n mimes: ['video/mp4'],\n skip: 1\n }\n },\n bids: [\n {\n bidder: 'appnexus',\n params: {\n placementId: 13232385,\n video: {\n skippable: true,\n playback_method: ['auto_play_sound_off']\n }\n }\n }\n ]\n }\n ],\n};\n\nlet BID_REQUESTS;\n\nconst RESPONSE_NO_BID_NO_UNIT = {\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'status': 'OK',\n 'bidder_status': [{\n 'bidder': 'appnexus',\n 'response_time_ms': 132,\n 'no_bid': true\n }]\n};\n\nconst RESPONSE_NO_BID_UNIT_SET = {\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'status': 'OK',\n 'bidder_status': [{\n 'bidder': 'appnexus',\n 'ad_unit': 'div-gpt-ad-1460505748561-0',\n 'response_time_ms': 91,\n 'no_bid': true\n }]\n};\n\nconst RESPONSE_NO_COOKIE = {\n 'tid': 'd6eca075-4a59-4346-bdb3-86531830ef2c',\n 'status': 'OK',\n 'bidder_status': [{\n 'bidder': 'pubmatic',\n 'no_cookie': true,\n 'usersync': {\n 'url': '//ads.pubmatic.com/AdServer/js/user_sync.html?predirect=http://localhost:8000/setuid?bidder=pubmatic&uid=',\n 'type': 'iframe'\n }\n }]\n};\n\nconst RESPONSE_NO_PBS_COOKIE = {\n 'tid': '882fe33e-2981-4257-bd44-bd3b03945f48',\n 'status': 'no_cookie',\n 'bidder_status': [{\n 'bidder': 'rubicon',\n 'no_cookie': true,\n 'usersync': {\n 'url': 'https://pixel.rubiconproject.com/exchange/sync.php?p=prebid',\n 'type': 'redirect'\n }\n }, {\n 'bidder': 'pubmatic',\n 'no_cookie': true,\n 'usersync': {\n 'url': '//ads.pubmatic.com/AdServer/js/user_sync.html?predirect=https%3A%2F%2Fprebid.adnxs.com%2Fpbs%2Fv1%2Fsetuid%3Fbidder%3Dpubmatic%26uid%3D',\n 'type': 'iframe'\n }\n }, {\n 'bidder': 'appnexus',\n 'response_time_ms': 162,\n 'num_bids': 1,\n 'debug': [{\n 'request_uri': 'http://ib.adnxs.com/openrtb2',\n 'request_body': '{\"id\":\"882fe33e-2981-4257-bd44-bd3b03945f48\",\"imp\":[{\"id\":\"/19968336/header-bid-tag-0\",\"banner\":{\"w\":300,\"h\":250,\"format\":[{\"w\":300,\"h\":250}]},\"secure\":1,\"ext\":{\"appnexus\":{\"placement_id\":5914989}}}],\"site\":{\"domain\":\"nytimes.com\",\"page\":\"http://www.nytimes.com\"},\"device\":{\"ua\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\",\"ip\":\"75.97.0.47\"},\"user\":{\"id\":\"3519479852893340159\",\"buyeruid\":\"3519479852893340159\"},\"at\":1,\"tmax\":1000,\"source\":{\"fd\":1,\"tid\":\"882fe33e-2981-4257-bd44-bd3b03945f48\"}}',\n 'response_body': '{\"id\":\"882fe33e-2981-4257-bd44-bd3b03945f48\"}',\n 'status_code': 200\n }]\n }],\n 'bids': [{\n 'bid_id': '123',\n 'code': 'div-gpt-ad-1460505748561-0',\n 'creative_id': '70928274',\n 'bidder': 'appnexus',\n 'price': 0.07425,\n 'adm': '<script type=\"application/javascript\" src=\"https://secure-nym.adnxs.com/ab?e=wqT_3QLeCPBOXgQAAAMA1gAFAQi5krDKBRCwho2ft8LKoCMY_4PozveI7eswIAEqLQnbgoxDEVi5PxElYqnyDAKzPxkAAAAgXA8zQCHOzMzMzMy8PykzMwECsMM_MO2C6QI47RtA_AxIAlCSj-khWL-tNGAAaNfUTniivwSAAQGKAQNVU0SSAQEG8FSYAawCoAH6AagBAbABALgBAsABBcgBAtABCdgBAOABAPABAIoCkgF1ZignYScsIDE2OTc2MjksIDE0OTgxNTUzMjEpO3VmKCdyJywgNzA5MjgyNzQsQh4ABGMnATsQODY2NTVKPAAgZycsIDM5OTgzTh0AKGknLCA0OTM1MTUsMlcA8IeSAs0CIWhWRE5jZ2pfdVlVSUVKS1A2U0VZQUNDX3JUUXdBRGdBUUFCSV9BeFE3WUxwQWxnQVlKOEJhQUJ3QUhnQWdBRUFpQUVBa0FFQm1BRUJvQUVCcUFFRHNBRUF1UUhPRGRmZE16UERQOEVCemczWDNUTXp3el9KQVFBQUFBQUFBUEFfMlFFCQw0QUR3UC1BQnk0OGU5UUUFFChnQUlCaUFLMzdjRQEIQEIzNWNCaUFMZzZJNEVpQUxoDQgAag0IAG4NCABvAQhIa0FJSG1BSUFvQUlBcUFJR3RRSQVUAHYNCPBed0FJQXlBSUEwQUlBMkFJQTRBTDYtd2ZvQXBqaXI4b0Y4Z0lGZG1semFUSDRBZ0NBQXdHUUF3Q1lBd0dvQV8tNWhRaTZBd2xPV1UweU9qTTJNamcumgItIV93ajdud2oyUAHwTHY2MDBJQUFvQURvSlRsbE5Nam96TmpJNNgCAOACvtUr6gIWaHR0cDovL3d3dy5ueXRpbWVzLmNvbfICEQoGQURWX0lEEgcxNjk3NjI5BRQIQ1BHBRQt9AEUCAVDUAETBAgxTSXA8gINCghBRFZfRlJFURIBMPICGQoPQ1VTVE9NX01PREVMX0lEEgYxMzA1NTTyAh8KFjIcAFBMRUFGX05BTUUSBXZpc2kx8gIoCho2IgAIQVNUAUkcSUZJRUQSCjFBzvB4NDkxNDSAAwCIAwGQAwCYAxSgAwGqAwDAA6wCyAMA2APjBuADAOgDAPgDA4AEAJIECS9vcGVucnRiMpgEAKIECjc1Ljk3LjAuNDeoBACyBAoIABAAGAAgADAAuAQAwAQAyAQA0gQJTllNMjozNjI42gQCCAHgBADwBGGlIIgFAZgFAKAF_xEBuAGqBSQ4ODJmZTMzZS0yOTgxLTQyNTctYmQ0NC1iZDNiMDM5NDVmNDjABQDJBQAAAQI08D_SBQkJAAAAAAAAAAA.&s=d4bc7cd2e5d7e1910a591bc97df6ae9e63333e52&referrer=http%3A%2F%2Fwww.nytimes.com&pp=${AUCTION_PRICE}&\"></script>',\n 'width': 300,\n 'height': 250,\n 'response_time_ms': 162\n }]\n};\n\nconst RESPONSE_OPENRTB = {\n 'id': 'c7dcf14f',\n 'seatbid': [\n {\n 'bid': [\n {\n 'id': '8750901685062148',\n 'impid': 'div-gpt-ad-1460505748561-0',\n 'price': 0.5,\n 'adm': '<script src=\"http://lax1-ib.adnxs.com/ab?e=wqT_3QKgB6CgAwAAAwDWAAUBCJ7kvtMFEPft7JnIuImSdBj87IDv8q21rXcqNgkAAAECCOA_EQEHNAAA4D8ZAAAAgOtR4D8hERIAKREJADERG6Aw8ub8BDi-B0C-B0gCUNbLkw5Y4YBIYABokUB48NIEgAEBigEDVVNEkgUG8FKYAawCoAH6AagBAbABALgBAsABA8gBAtABCdgBAOABAPABAIoCOnVmKCdhJywgNDk0NDcyLCAxNTE3MjY5NTM0KTt1ZigncicsIDI5NjgxMTEwLDIeAPCckgKBAiFqRHF3RUFpNjBJY0VFTmJMa3c0WUFDRGhnRWd3QURnQVFBUkl2Z2RROHViOEJGZ0FZUF9fX184UGFBQndBWGdCZ0FFQmlBRUJrQUVCbUFFQm9BRUJxQUVEc0FFQXVRRXBpNGlEQUFEZ1A4RUJLWXVJZ3dBQTREX0pBVkx3MU5mdl9lMF8yUUVBQUFBQUFBRHdQLUFCQVBVQgUPKEpnQ0FLQUNBTFVDBRAETDAJCPBUTUFDQWNnQ0FkQUNBZGdDQWVBQ0FPZ0NBUGdDQUlBREFaQURBSmdEQWFnRHV0Q0hCTG9ERVdSbFptRjFiSFFqVEVGWU1Ub3pPRFk1mgI5IS1ndndfUTYEAfCENFlCSUlBUW9BRG9SWkdWbVlYVnNkQ05NUVZneE9qTTROamsu2ALoB-ACx9MB6gJHaHR0cDovL3ByZWJpZC5sb2NhbGhvc3Q6OTk5OS9pbnRlZ3JhdGlvbkV4YW1wbGVzL2dwdC9hcHBuZXh1cy10ZXN0Lmh0bWzyAhAKBkFEVl9JRBIGNCXTHPICEQoGQ1BHARM4BzE5Nzc5MzPyAhAKBUNQBRPwljg1MTM1OTSAAwGIAwGQAwCYAxSgAwGqAwDAA6wCyAMA2AMA4AMA6AMA-AMDgAQAkgQJL29wZW5ydGIymAQAogQMMjE2LjU1LjQ3Ljk0qAQAsgQMCAAQABgAIAAwADgAuAQAwAQAyAQA0gQRZGVmYXVsdCNMQVgxOjM4NjnaBAIIAeAEAPAE1suTDogFAZgFAKAF______8BA7ABqgUkYzdkY2YxNGYtZjliYS00Yzc3LWEzYjQtMjdmNmRmMzkwNjdmwAUAyQVpLhTwP9IFCQkJDFAAANgFAeAFAfAFAfoFBAgAEACQBgA.&s=f4dc8b6fa65845d08f0a87c145e12cb7d6288c2a&referrer=http%3A%2F%2Fprebid.localhost%3A9999%2FintegrationExamples%2Fgpt%2Fappnexus-test.html&pp=${AUCTION_PRICE}\"></script>',\n 'adid': '29681110',\n 'adomain': ['appnexus.com'],\n 'iurl': 'http://lax1-ib.adnxs.com/cr?id=2968111',\n 'cid': '958',\n 'crid': '2968111',\n 'dealid': 'test-dealid',\n 'w': 300,\n 'h': 250,\n 'ext': {\n 'prebid': {\n 'type': 'banner',\n 'event': {\n 'win': 'http://wurl.org?id=333'\n },\n 'meta': {\n 'dchain': { 'ver': '1.0', 'complete': 0, 'nodes': [{ 'asi': 'magnite.com', 'bsid': '123456789', }] }\n }\n },\n 'bidder': {\n 'appnexus': {\n 'brand_id': 1,\n 'auction_id': 3,\n 'bidder_id': 2\n }\n }\n }\n }\n ],\n 'seat': 'appnexus'\n },\n ],\n 'cur': 'EUR',\n 'ext': {\n 'responsetimemillis': {\n 'appnexus': 8,\n }\n }\n};\n\nconst RESPONSE_OPENRTB_VIDEO = {\n id: 'c7dcf14f',\n seatbid: [\n {\n bid: [\n {\n id: '1987250005171537465',\n impid: 'div-gpt-ad-1460505748561-0',\n price: 10,\n adm: '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><VAST version=\"3.0\"><Ad id=\"81877115\" sequence=\"0\"><Wrapper><AdSystem version=\"3.0\">adnxs</AdSystem><VASTAdTagURI><![CDATA[http://lax1-ib.adnxs.com/ab?e=wqT_3QLZBq]]></VASTAdTagURI><Impression><![CDATA[http://ib.adnxs.com/nop]]></Impression><Creatives><Creative adID=\"81877115\"><Linear></Linear></Creative></Creatives></Wrapper></Ad></VAST>',\n adid: '81877115',\n adomain: ['appnexus.com'],\n iurl: 'http://lax1-ib.adnxs.com/cr?id=81877115',\n cid: '3535',\n crid: '81877115',\n dealid: 'test-dealid',\n w: 1,\n h: 1,\n ext: {\n prebid: {\n type: 'video',\n bidid: '654321'\n },\n bidder: {\n appnexus: {\n brand_id: 1,\n auction_id: '6673622101799484743',\n bidder_id: 2,\n bid_ad_type: 1,\n },\n },\n },\n },\n ],\n seat: 'appnexus',\n },\n ],\n ext: {\n responsetimemillis: {\n appnexus: 81,\n },\n },\n};\n\nconst RESPONSE_OPENRTB_NATIVE = {\n 'id': 'c7dcf14f',\n 'seatbid': [\n {\n 'bid': [\n {\n 'id': '6451317310275562039',\n 'impid': 'div-gpt-ad-1460505748561-0',\n 'price': 10,\n 'adm': {\n 'ver': '1.2',\n 'assets': [\n {\n 'id': 1,\n 'img': {\n 'url': 'https://vcdn.adnxs.com/p/creative-image/f8/7f/0f/13/f87f0f13-230c-4f05-8087-db9216e393de.jpg',\n 'w': 989,\n 'h': 742,\n 'ext': {\n 'appnexus': {\n 'prevent_crop': 0\n }\n }\n }\n },\n {\n 'id': 2,\n 'img': {\n 'url': 'https://vcdn.adnxs.com/p/creative-image/1a/3e/e9/5b/1a3ee95b-06cd-4260-98c7-0258627c9197.png',\n 'w': 127,\n 'h': 83,\n 'ext': {\n 'appnexus': {\n 'prevent_crop': 0\n }\n }\n }\n },\n {\n 'id': 0,\n 'title': {\n 'text': 'This is a Prebid Native Creative'\n }\n },\n {\n 'id': 3,\n 'data': {\n 'value': 'Prebid.org'\n }\n }\n ],\n 'link': {\n 'url': 'https://lax1-ib.adnxs.com/click?AAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQGdce2vBWudAJZpFu1er1zA7ZzddAAAAAOLoyQBtJAAAbSQAAAIAAAC8pM8FnPgWAAAAAABVU0QAVVNEAAEAAQBNXQAAAAABAgMCAAAAALsAuhVqdgAAAAA./cpcpm=AAAAAAAAAAA=/bcr=AAAAAAAA8D8=/pp=${AUCTION_PRICE}/cnd=%213Q5HCQj8-LwKELzJvi4YnPFbIAQoADEAAAAAAAAkQDoJTEFYMTo0MDc3QKcPSQAAAAAAAPA_UQAAAAAAAAAAWQAAAAAAAAAAYQAAAAAAAAAAaQAAAAAAAAAAcQAAAAAAAAAA/cca=OTMyNSNMQVgxOjQwNzc=/bn=84305/test=1/clickenc=http%3A%2F%2Fprebid.org%2Fdev-docs%2Fshow-native-ads.html'\n },\n 'eventtrackers': [\n {\n 'event': 1,\n 'method': 1,\n 'url': 'https://lax1-ib.adnxs.com/it?an_audit=0&test=1&referrer=http%3A%2F%2Flocalhost%3A9999%2FintegrationExamples%2Fgpt%2Fdemo_native.html&e=wqT_3QKCCKACBAAAAwDWAAUBCLvO3ekFEOe47duW2NbzQBiltJba--rq6zAqNgkAAAECCCRAEQEHEAAAJEAZEQkAIREJACkRCQAxEQmoMOLRpwY47UhA7UhIAlC8yb4uWJzxW2AAaM26dXjRkgWAAQGKAQNVU0SSAQEG8FKYAQGgAQGoAQGwAQC4AQLAAQPIAQLQAQnYAQDgAQHwAQCKAjt1ZignYScsIDI1Mjk4ODUsIDE1NjM5MTE5OTUpO3VmKCdyJywgOTc0OTQyMDQsIC4eAPQ0AZICnQIhb2pkaWlnajgtTHdLRUx6SnZpNFlBQ0NjOFZzd0FEZ0FRQVJJN1VoUTR0R25CbGdBWVAwQmFBQndBSGdBZ0FFQWlBRUFrQUVCbUFFQm9BRUJxQUVEc0FFQXVRSHpyV3FrQUFBa1FNRUI4NjFxcEFBQUpFREpBVVZpYmxDaFpRQkEyUUVBQUFBQUFBRHdQLUFCQVBVQkFBQUFBUGdCQUpnQ0FLQUNBTFVDQUFBQUFMMENBQUFBQU1BQ0FNZ0NBT0FDQU9nQ0FQZ0NBSUFEQVpBREFKZ0RBYWdEX1BpOENyb0RDVXhCV0RFNk5EQTNOLUFEcHctUUJBQ1lCQUhCQkFBQUFBQUFBQUFBeVFRQUFBQUFBQUFBQU5nRUFBLi6aAoUBITNRNUhDUWo4LUx3S0VMeiUhJG5QRmJJQVFvQUQRvVhBa1FEb0pURUZZTVRvME1EYzNRS2NQUxFUDFBBX1URDAxBQUFXHQwAWR0MAGEdDABjHQz0FwHYAgDgAq2YSOoCPmh0dHA6Ly9sb2NhbGhvc3Q6OTk5OS9pbnRlZ3JhdGlvbkV4YW1wbGVzL2dwdC9kZW1vX25hdGl2ZS5odG1sgAMAiAMBkAMAmAMUoAMBqgMAwAPgqAHIAwDYAwDgAwDoAwD4AwOABACSBAkvb3BlbnJ0YjKYBACiBA0xNzMuMjQ0LjM2LjQwqATtoySyBAwIABAAGAAgADAAOAC4BADABADIBADSBA45MzI1I0xBWDE6NDA3N9oEAggB4AQA8AS8yb4uiAUBmAUAoAX___________8BqgUkZTU5YzNlYjYtNmRkNi00MmQ5LWExMWEtM2FhMTFjOTc5MGUwwAUAyQUAAAAAAADwP9IFCQkAaVh0ANgFAeAFAfAFmfQh-gUECAAQAJAGAZgGALgGAMEGCSQk8D_IBgDaBhYKEAkQGQEBwTTgBgzyBgIIAIAHAYgHAA..&s=11ababa390e9f7983de260493fc5b91ec5b1b3d4&pp=${AUCTION_PRICE}'\n }\n ]\n },\n 'adid': '97494204',\n 'adomain': [\n 'http://prebid.org'\n ],\n 'iurl': 'https://lax1-ib.adnxs.com/cr?id=97494204',\n 'cid': '9325',\n 'crid': '97494204',\n 'cat': [\n 'IAB3-1'\n ],\n 'ext': {\n 'prebid': {\n 'targeting': {\n 'hb_bidder': 'appnexus',\n 'hb_pb': '10.00'\n },\n 'type': 'native',\n 'video': {\n 'duration': 0,\n 'primary_category': ''\n }\n },\n 'bidder': {\n 'appnexus': {\n 'brand_id': 555545,\n 'auction_id': '4676806524825984103',\n 'bidder_id': 2,\n 'bid_ad_type': 3\n }\n }\n }\n }\n ],\n 'seat': 'appnexus'\n }\n ]\n};\n\nasync function addFpdEnrichmentsToS2SRequest(s2sReq, bidderRequests) {\n return {\n ...s2sReq,\n ortb2Fragments: {\n ...(s2sReq.ortb2Fragments || {}),\n global: (await addFPDToBidderRequest({\n ...(bidderRequests?.[0] || {}),\n ortb2: s2sReq.ortb2Fragments?.global || {}\n })).ortb2\n }\n }\n}\n\ndescribe('s2s configuration', () => {\n let cfg1, cfg2;\n beforeEach(() => {\n cfg1 = {\n enabled: true,\n bidders: ['bidderB'],\n accountId: '123456',\n endpoint: {\n p1Consent: 'first.endpoint'\n }\n };\n cfg2 = {\n enabled: true,\n bidders: ['bidderA'],\n accountId: '123456',\n endpoint: {\n p1Consent: 'second.endpoint',\n }\n };\n })\n it('sets prebid server adapter by default', () => {\n expect(validateConfig(cfg1)[0].adapter).to.eql('prebidServer');\n });\n it('filters out disabled configs', () => {\n cfg1.enabled = false;\n expect(validateConfig([cfg1, cfg2])).to.eql([cfg2]);\n })\n});\n\ndescribe('S2S Adapter', function () {\n let adapter;\n let addBidResponse = sinon.spy();\n let done = sinon.spy();\n\n addBidResponse.reject = sinon.spy();\n\n function prepRequest(req) {\n req.ad_units.forEach((adUnit) => {\n delete adUnit.nativeParams\n });\n decorateAdUnitsWithNativeParams(req.ad_units);\n }\n\n before(() => {\n hook.ready();\n prepRequest(REQUEST);\n });\n\n beforeEach(function () {\n config.resetConfig();\n config.setConfig({floors: {enabled: false}});\n adapter = new Adapter();\n BID_REQUESTS = [\n {\n 'bidderCode': 'appnexus',\n 'auctionId': '173afb6d132ba3',\n 'bidderRequestId': '3d1063078dfcc8',\n 'tid': '437fbbf5-33f5-487a-8e16-a7112903cfe5',\n 'bids': [\n {\n 'bidder': 'appnexus',\n 'params': {\n 'placementId': '10433394',\n 'member': 123,\n 'keywords': {\n 'foo': ['bar', 'baz'],\n 'fizz': ['buzz']\n }\n },\n 'bid_id': '123',\n 'adUnitCode': 'div-gpt-ad-1460505748561-0',\n 'mediaTypes': {\n 'banner': {\n 'sizes': [[300, 250]]\n }\n },\n 'transactionId': '4ef956ad-fd83-406d-bd35-e4bb786ab86c',\n 'sizes': [300, 250],\n 'bidId': '123',\n 'bidderRequestId': '3d1063078dfcc8',\n 'auctionId': '173afb6d132ba3'\n }\n ],\n 'auctionStart': 1510852447530,\n 'timeout': 5000,\n 'src': 's2s',\n 'doneCbCallCount': 0,\n 'refererInfo': {\n 'page': 'http://mytestpage.com'\n }\n }\n ];\n });\n\n afterEach(function () {\n addBidResponse.resetHistory();\n addBidResponse.reject = sinon.spy();\n done.resetHistory();\n });\n\n after(function () {\n config.resetConfig();\n });\n\n describe('request function', function () {\n beforeEach(function () {\n resetSyncedStatus();\n });\n\n describe('FPD redaction', () => {\n let sandbox, ortb2Fragments, redactorMocks, s2sReq;\n\n beforeEach(() => {\n sandbox = sinon.createSandbox();\n redactorMocks = {};\n sandbox.stub(redactor, 'redactor').callsFake((params) => {\n if (!redactorMocks.hasOwnProperty(params.component)) {\n redactorMocks[params.component] = {\n ortb2: sinon.stub().callsFake(o => o),\n bidRequest: sinon.stub().callsFake(o => o)\n }\n }\n return redactorMocks[params.component];\n })\n ortb2Fragments = {\n global: {\n mock: 'value'\n },\n bidder: {\n appnexus: {\n mock: 'A'\n }\n }\n }\n const s2sConfig = {\n ...CONFIG,\n };\n config.setConfig({s2sConfig});\n s2sReq = {\n ...REQUEST,\n s2sConfig\n };\n });\n\n afterEach(() => {\n sandbox.restore();\n })\n\n function callBids() {\n adapter.callBids({\n ...s2sReq,\n ortb2Fragments\n }, BID_REQUESTS, addBidResponse, done, ajax);\n }\n\n it('should be applied to ortb2Fragments', () => {\n callBids();\n sinon.assert.calledWithMatch(redactorMocks['prebid.pbsBidAdapter'].ortb2, ortb2Fragments.global);\n Object.entries(ortb2Fragments.bidder).forEach(([bidder, ortb2]) => {\n sinon.assert.calledWith(redactorMocks[`bidder.${bidder}`].ortb2, ortb2);\n });\n });\n\n it('should be applied to ad units', () => {\n callBids();\n s2sReq.ad_units.forEach(au => {\n sinon.assert.calledWith(redactorMocks['prebid.pbsBidAdapter'].bidRequest, au);\n au.bids.forEach((bid) => {\n sinon.assert.calledWith(redactorMocks[`bidder.${bid.bidder}`].bidRequest, bid);\n })\n })\n })\n });\n\n describe('transaction IDs', () => {\n let s2sReq;\n beforeEach(() => {\n s2sReq = {\n ...REQUEST,\n ortb2Fragments: {global: {}},\n ad_units: REQUEST.ad_units.map(au => ({...au, ortb2Imp: {ext: {tid: 'mock-tid'}}})),\n };\n BID_REQUESTS[0].bids[0].ortb2Imp = {ext: {tid: 'mock-tid'}};\n });\n\n function makeRequest() {\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n return JSON.parse(server.requests[0].requestBody);\n }\n\n it('should not be set when transmitTid is not allowed, with ext.prebid.createtids: false', () => {\n config.setConfig({ s2sConfig: CONFIG, enableTIDs: false });\n const req = makeRequest();\n expect(req.source?.tid).to.not.exist;\n expect(req.imp[0].ext?.tid).to.not.exist;\n expect(req.ext.prebid.createtids).to.equal(false);\n });\n\n it('should be set to auction ID otherwise', () => {\n config.setConfig({s2sConfig: CONFIG, enableTIDs: true});\n const req = makeRequest();\n expect(req.source.tid).to.eql(BID_REQUESTS[0].auctionId);\n expect(req.imp[0].ext.tid).to.eql('mock-tid');\n })\n })\n\n describe('browsingTopics', () => {\n const sandbox = sinon.createSandbox();\n afterEach(() => {\n sandbox.restore()\n });\n Object.entries({\n 'allowed': true,\n 'not allowed': false,\n }).forEach(([t, allow]) => {\n it(`should be set to ${allow} when transmitUfpd is ${t}`, () => {\n sandbox.stub(activityRules, 'isActivityAllowed').callsFake((activity, params) => {\n if (activity === ACTIVITY_TRANSMIT_UFPD && params.component === `${MODULE_TYPE_PREBID}.${PBS_ADAPTER_NAME}`) {\n return allow;\n }\n return false;\n });\n config.setConfig({s2sConfig: CONFIG});\n const ajax = sinon.stub();\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n sinon.assert.calledWith(ajax, sinon.match.any, sinon.match.any, sinon.match.any, sinon.match({\n browsingTopics: allow\n }));\n });\n });\n })\n\n it('should set tmaxmax correctly when publisher has specified it', () => {\n const cfg = {...CONFIG};\n config.setConfig({s2sConfig: cfg})\n\n // publisher has specified a tmaxmax in their setup\n const ortb2Fragments = {\n global: {\n ext: {\n tmaxmax: 4242\n }\n }\n };\n const s2sCfg = {...REQUEST, cfg}\n const payloadWithFragments = { ...s2sCfg, ortb2Fragments };\n\n adapter.callBids(payloadWithFragments, BID_REQUESTS, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n\n expect(req.ext.tmaxmax).to.eql(4242);\n });\n\n it('should set tmaxmax correctly when publisher has not specified it', () => {\n const cfg = {...CONFIG};\n config.setConfig({s2sConfig: cfg})\n\n // publisher has not specified a tmaxmax in their setup - so we should be\n // falling back to requestBidsTimeout\n const ortb2Fragments = {};\n const s2sCfg = {...REQUEST, cfg};\n const requestBidsTimeout = 808;\n const payloadWithFragments = { ...s2sCfg, ortb2Fragments, requestBidsTimeout };\n\n adapter.callBids(payloadWithFragments, BID_REQUESTS, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n\n expect(req.ext.tmaxmax).to.eql(808);\n });\n\n describe('default tmax', () => {\n [null, 3000].forEach(maxTimeout => {\n describe(`when maxTimeout is ${maxTimeout}`, () => {\n let cfg;\n\n beforeEach(() => {\n cfg = {accountId: '1', endpoint: 'mock-endpoint', maxTimeout};\n config.setConfig({s2sConfig: cfg});\n maxTimeout = maxTimeout ?? s2sDefaultConfig.maxTimeout\n });\n\n it('should cap tmax to maxTimeout', () => {\n adapter.callBids({...REQUEST, requestBidsTimeout: maxTimeout * 2, s2sConfig: cfg}, BID_REQUESTS, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n expect(req.tmax).to.eql(maxTimeout);\n });\n\n it('should be set to 0.75 * requestTimeout, if lower than maxTimeout', () => {\n adapter.callBids({...REQUEST, requestBidsTimeout: maxTimeout / 2}, BID_REQUESTS, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n expect(req.tmax).to.eql(Math.floor(maxTimeout / 2 * 0.75));\n })\n })\n })\n })\n\n it('should set customHeaders correctly when publisher has provided it', () => {\n const configWithCustomHeaders = utils.deepClone(CONFIG);\n configWithCustomHeaders.customHeaders = { customHeader1: 'customHeader1Value' };\n config.setConfig({ s2sConfig: configWithCustomHeaders });\n\n const reqWithNewConfig = utils.deepClone(REQUEST);\n reqWithNewConfig.s2sConfig = configWithCustomHeaders;\n\n adapter.callBids(reqWithNewConfig, BID_REQUESTS, addBidResponse, done, ajax);\n const reqHeaders = server.requests[0].requestHeaders\n expect(reqHeaders.customHeader1).to.exist;\n expect(reqHeaders.customHeader1).to.equal('customHeader1Value');\n });\n\n it('should block request if config did not define p1Consent URL in endpoint object config', function () {\n const badConfig = utils.deepClone(CONFIG);\n badConfig.endpoint = { noP1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction' };\n config.setConfig({ s2sConfig: badConfig });\n\n const badCfgRequest = utils.deepClone(REQUEST);\n badCfgRequest.s2sConfig = badConfig;\n\n adapter.callBids(badCfgRequest, BID_REQUESTS, addBidResponse, done, ajax);\n\n expect(server.requests.length).to.equal(0);\n });\n\n it('should block request if config did not define noP1Consent URL in endpoint object config', function () {\n const badConfig = utils.deepClone(CONFIG);\n badConfig.endpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction' };\n config.setConfig({ s2sConfig: badConfig });\n\n const badCfgRequest = utils.deepClone(REQUEST);\n badCfgRequest.s2sConfig = badConfig;\n\n const badBidderRequest = utils.deepClone(BID_REQUESTS);\n badBidderRequest[0].gdprConsent = {\n consentString: 'abc123',\n addtlConsent: 'superduperconsent',\n gdprApplies: true,\n apiVersion: 2,\n vendorData: {\n purpose: {\n consents: {\n 1: false\n }\n }\n }\n };\n\n adapter.callBids(badCfgRequest, badBidderRequest, addBidResponse, done, ajax);\n\n expect(server.requests.length).to.equal(0);\n });\n\n it('should block request if config did not define any URLs in endpoint object config', function () {\n const badConfig = utils.deepClone(CONFIG);\n badConfig.endpoint = {};\n config.setConfig({ s2sConfig: badConfig });\n\n const badCfgRequest = utils.deepClone(REQUEST);\n badCfgRequest.s2sConfig = badConfig;\n\n adapter.callBids(badCfgRequest, BID_REQUESTS, addBidResponse, done, ajax);\n\n expect(server.requests.length).to.equal(0);\n });\n\n it('filters ad units without bidders when filterBidderlessCalls is true', function () {\n const cfg = {...CONFIG, filterBidderlessCalls: true};\n config.setConfig({s2sConfig: cfg});\n\n const badReq = utils.deepClone(REQUEST);\n badReq.s2sConfig = cfg;\n badReq.ad_units = [{...REQUEST.ad_units[0], bids: [{bidder: null}]}];\n\n const badBidderRequest = utils.deepClone(BID_REQUESTS);\n badBidderRequest[0].bidderCode = null;\n badBidderRequest[0].bids = [{...badBidderRequest[0].bids[0], bidder: null}];\n\n adapter.callBids(badReq, badBidderRequest, addBidResponse, done, ajax);\n\n expect(server.requests.length).to.equal(0);\n });\n\n if (FEATURES.VIDEO) {\n it('should add outstream bc renderer exists on mediatype', function () {\n config.setConfig({ s2sConfig: CONFIG });\n\n adapter.callBids(OUTSTREAM_VIDEO_REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.imp[0].banner).to.exist;\n expect(requestBid.imp[0].video).to.exist;\n });\n\n it('converts video mediaType properties into openRTB format', function () {\n const ortb2Config = utils.deepClone(CONFIG);\n ortb2Config.endpoint.p1Consent = 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction';\n\n config.setConfig({ s2sConfig: ortb2Config });\n\n const videoBid = utils.deepClone(VIDEO_REQUEST);\n videoBid.ad_units[0].mediaTypes.video.context = 'instream';\n adapter.callBids(videoBid, BID_REQUESTS, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.imp[0].banner).to.not.exist;\n expect(requestBid.imp[0].video).to.exist;\n expect(requestBid.imp[0].video.w).to.equal(640);\n expect(requestBid.imp[0].video.h).to.equal(480);\n expect(requestBid.imp[0].video.playerSize).to.be.undefined;\n expect(requestBid.imp[0].video.context).to.be.undefined;\n });\n }\n describe('gzip compression', function () {\n let gzipStub, gzipSupportStub, getParamStub, debugStub;\n beforeEach(function() {\n gzipStub = sinon.stub(utils, 'compressDataWithGZip').resolves('compressed');\n gzipSupportStub = sinon.stub(utils, 'isGzipCompressionSupported');\n getParamStub = sinon.stub(utils, 'getParameterByName');\n debugStub = sinon.stub(utils, 'debugTurnedOn');\n });\n\n afterEach(function() {\n gzipStub.restore();\n gzipSupportStub.restore();\n getParamStub.restore();\n debugStub.restore();\n });\n\n it('should gzip payload when enabled and supported', function(done) {\n const s2sCfg = Object.assign({}, CONFIG, {endpointCompression: true});\n config.setConfig({s2sConfig: s2sCfg});\n const req = utils.deepClone(REQUEST);\n req.s2sConfig = s2sCfg;\n gzipSupportStub.returns(true);\n getParamStub.withArgs(DEBUG_MODE).returns('false');\n debugStub.returns(false);\n\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n\n setTimeout(() => {\n expect(gzipStub.calledOnce).to.be.true;\n expect(server.requests[0].url).to.include('gzip=1');\n expect(server.requests[0].requestBody).to.equal('compressed');\n done();\n });\n });\n\n it('should not gzip when debug mode is enabled', function(done) {\n const s2sCfg = Object.assign({}, CONFIG, {endpointCompression: true});\n config.setConfig({s2sConfig: s2sCfg});\n const req = utils.deepClone(REQUEST);\n req.s2sConfig = s2sCfg;\n gzipSupportStub.returns(true);\n getParamStub.withArgs(DEBUG_MODE).returns('true');\n debugStub.returns(true);\n\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n\n setTimeout(() => {\n expect(gzipStub.called).to.be.false;\n expect(server.requests[0].url).to.not.include('gzip=1');\n done();\n });\n });\n });\n it('exists and is a function', function () {\n expect(adapter.callBids).to.exist.and.to.be.a('function');\n });\n\n function mockTCF({applies = true, hasP1Consent = true} = {}) {\n return {\n consentString: 'mockConsent',\n gdprApplies: applies,\n vendorData: {purpose: {consents: {1: hasP1Consent}}},\n }\n }\n\n describe('gdpr tests', function () {\n afterEach(function () {\n requestBids.removeAll();\n });\n\n it('adds gdpr consent information to ortb2 request depending on presence of module', async function () {\n const consentConfig = {consentManagement: {cmpApi: 'iab'}, s2sConfig: CONFIG};\n config.setConfig(consentConfig);\n\n const gdprBidRequest = utils.deepClone(BID_REQUESTS);\n gdprBidRequest[0].gdprConsent = mockTCF();\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, gdprBidRequest), gdprBidRequest, addBidResponse, done, ajax);\n let requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.regs.ext.gdpr).is.equal(1);\n expect(requestBid.user.ext.consent).is.equal('mockConsent');\n\n config.resetConfig();\n config.setConfig({s2sConfig: CONFIG});\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, BID_REQUESTS), BID_REQUESTS, addBidResponse, done, ajax);\n requestBid = JSON.parse(server.requests[1].requestBody);\n\n expect(requestBid.regs?.ext?.gdpr).to.not.exist;\n expect(requestBid.user?.ext?.consent).to.not.exist;\n });\n\n it('adds additional consent information to ortb2 request depending on presence of module', async function () {\n const consentConfig = {consentManagement: {cmpApi: 'iab'}, s2sConfig: CONFIG};\n config.setConfig(consentConfig);\n\n const gdprBidRequest = utils.deepClone(BID_REQUESTS);\n gdprBidRequest[0].gdprConsent = Object.assign(mockTCF(), {\n addtlConsent: 'superduperconsent',\n });\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, gdprBidRequest), gdprBidRequest, addBidResponse, done, ajax);\n let requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.regs.ext.gdpr).is.equal(1);\n expect(requestBid.user.ext.consent).is.equal('mockConsent');\n expect(requestBid.user.ext.ConsentedProvidersSettings.consented_providers).is.equal('superduperconsent');\n\n config.resetConfig();\n config.setConfig({s2sConfig: CONFIG});\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n requestBid = JSON.parse(server.requests[1].requestBody);\n\n expect(requestBid.regs).to.not.exist;\n expect(requestBid.user).to.not.exist;\n });\n });\n\n describe('us_privacy (ccpa) consent data', function () {\n afterEach(function () {\n requestBids.removeAll();\n });\n\n it('is added to ortb2 request when in FPD', async function () {\n config.setConfig({s2sConfig: CONFIG});\n\n const uspBidRequest = utils.deepClone(BID_REQUESTS);\n uspBidRequest[0].uspConsent = '1NYN';\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, uspBidRequest), uspBidRequest, addBidResponse, done, ajax);\n let requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.regs.ext.us_privacy).is.equal('1NYN');\n\n config.resetConfig();\n config.setConfig({s2sConfig: CONFIG});\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, BID_REQUESTS), BID_REQUESTS, addBidResponse, done, ajax);\n requestBid = JSON.parse(server.requests[1].requestBody);\n\n expect(requestBid.regs?.ext?.us_privacy).to.not.exist;\n });\n });\n\n describe('gdpr and us_privacy (ccpa) consent data', function () {\n afterEach(function () {\n requestBids.removeAll();\n });\n\n it('is added to ortb2 request when in bidRequest', async function () {\n config.setConfig({s2sConfig: CONFIG});\n\n const consentBidRequest = utils.deepClone(BID_REQUESTS);\n consentBidRequest[0].uspConsent = '1NYN';\n consentBidRequest[0].gdprConsent = mockTCF();\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, consentBidRequest), consentBidRequest, addBidResponse, done, ajax);\n let requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.regs.ext.us_privacy).is.equal('1NYN');\n expect(requestBid.regs.ext.gdpr).is.equal(1);\n expect(requestBid.user.ext.consent).is.equal('mockConsent');\n\n config.resetConfig();\n config.setConfig({s2sConfig: CONFIG});\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n requestBid = JSON.parse(server.requests[1].requestBody);\n\n expect(requestBid.regs).to.not.exist;\n expect(requestBid.user).to.not.exist;\n });\n\n it('is added to cookie_sync request when in bidRequest', function () {\n const cookieSyncConfig = utils.deepClone(CONFIG);\n cookieSyncConfig.syncEndpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync' };\n config.setConfig({ s2sConfig: cookieSyncConfig });\n\n const consentBidRequest = utils.deepClone(BID_REQUESTS);\n consentBidRequest[0].uspConsent = '1YNN';\n consentBidRequest[0].gdprConsent = mockTCF();\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = cookieSyncConfig\n\n adapter.callBids(s2sBidRequest, consentBidRequest, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.us_privacy).is.equal('1YNN');\n expect(requestBid.gdpr).is.equal(1);\n expect(requestBid.gdpr_consent).is.equal('mockConsent');\n expect(requestBid.bidders).to.contain('appnexus').and.to.have.lengthOf(1);\n expect(requestBid.account).is.equal('1');\n });\n });\n\n it('adds device and app objects to request', async function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n config.setConfig(_config);\n const s2sreq = await addFpdEnrichmentsToS2SRequest({\n ...REQUEST,\n ortb2Fragments: {\n global: {\n device: {ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC'},\n app: {bundle: 'com.test.app'},\n }\n }\n }, BID_REQUESTS)\n adapter.callBids(s2sreq, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n sinon.assert.match(requestBid.device, {\n ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC',\n w: window.screen.width,\n h: window.screen.height,\n })\n sinon.assert.match(requestBid.app, {\n bundle: 'com.test.app',\n publisher: {'id': '1'}\n });\n });\n\n it('adds device and app objects to request for OpenRTB', async function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n };\n config.setConfig(_config);\n const s2sReq = await addFpdEnrichmentsToS2SRequest({\n ...REQUEST,\n ortb2Fragments: {\n global: {\n device: {ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC'},\n app: {bundle: 'com.test.app'},\n }\n }\n }, BID_REQUESTS)\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n sinon.assert.match(requestBid.device, {\n ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC',\n w: window.screen.width,\n h: window.screen.height,\n })\n sinon.assert.match(requestBid.app, {\n bundle: 'com.test.app',\n publisher: {'id': '1'}\n });\n });\n\n describe('price floors module', function () {\n function runTest(expectedFloor, expectedCur) {\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[requestCount].requestBody);\n expect(requestBid.imp[0].bidfloor).to.equal(expectedFloor);\n expect(requestBid.imp[0].bidfloorcur).to.equal(expectedCur);\n requestCount += 1;\n }\n\n let getFloorResponse, requestCount;\n beforeEach(function () {\n getFloorResponse = {};\n requestCount = 0;\n });\n\n it('should NOT pass bidfloor and bidfloorcur when getFloor not present or returns invalid response', function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n\n config.setConfig(_config);\n\n // if no get floor\n runTest(undefined, undefined);\n\n // if getFloor returns empty object\n BID_REQUESTS[0].bids[0].getFloor = () => getFloorResponse;\n sinon.spy(BID_REQUESTS[0].bids[0], 'getFloor');\n\n runTest(undefined, undefined);\n // make sure getFloor was called\n expect(\n BID_REQUESTS[0].bids[0].getFloor.calledWith({\n currency: 'USD',\n mediaType: '*',\n size: '*'\n })\n ).to.be.true;\n\n // if getFloor does not return number\n getFloorResponse = { currency: 'EUR', floor: 'not a number' };\n runTest(undefined, undefined);\n\n // if getFloor does not return currency\n getFloorResponse = { floor: 1.1 };\n runTest(undefined, undefined);\n });\n\n it('should correctly pass bidfloor and bidfloorcur', function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n\n config.setConfig(_config);\n\n BID_REQUESTS[0].bids[0].getFloor = () => getFloorResponse;\n sinon.spy(BID_REQUESTS[0].bids[0], 'getFloor');\n\n // returns USD and string floor\n getFloorResponse = { currency: 'USD', floor: '1.23' };\n runTest(1.23, 'USD');\n // make sure getFloor was called\n expect(\n BID_REQUESTS[0].bids[0].getFloor.calledWith({\n currency: 'USD',\n mediaType: '*',\n size: '*'\n })\n ).to.be.true;\n\n // returns non USD and number floor\n getFloorResponse = { currency: 'EUR', floor: 0.85 };\n runTest(0.85, 'EUR');\n });\n\n it('should correctly pass adServerCurrency when set to getFloor not default', function () {\n config.setConfig({\n s2sConfig: CONFIG,\n currency: { adServerCurrency: 'JPY' },\n });\n\n // we have to start requestCount at 1 because a conversion rates fetch occurs when adServerCur is not USD!\n requestCount = 1;\n\n BID_REQUESTS[0].bids[0].getFloor = () => getFloorResponse;\n sinon.spy(BID_REQUESTS[0].bids[0], 'getFloor');\n\n // returns USD and string floor\n getFloorResponse = { currency: 'JPY', floor: 97.2 };\n runTest(97.2, 'JPY');\n // make sure getFloor was called with JPY\n expect(\n BID_REQUESTS[0].bids[0].getFloor.calledWith({\n currency: 'JPY',\n mediaType: '*',\n size: '*'\n })\n ).to.be.true;\n });\n\n it('should find the floor when not all bidderRequests contain it', () => {\n config.setConfig({\n s2sConfig: {\n ...CONFIG,\n bidders: ['b1', 'b2']\n },\n });\n const bidderRequests = [\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b1',\n bids: [{\n bidder: 'b1',\n bidId: 1,\n }]\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b2',\n bids: [{\n bidder: 'b2',\n bidId: 2,\n getFloor: () => ({\n currency: 'CUR',\n floor: 123\n })\n }],\n }\n ];\n const adUnits = [\n {\n code: 'au1',\n transactionId: 't1',\n mediaTypes: {\n banner: {sizes: [1, 1]}\n },\n bids: [{bidder: 'b1', bid_id: 1}]\n },\n {\n code: 'au2',\n transactionId: 't2',\n bids: [{bidder: 'b2', bid_id: 2}],\n mediaTypes: {\n banner: {sizes: [1, 1]}\n }\n }\n ];\n const s2sReq = {\n ...REQUEST,\n ad_units: adUnits\n }\n\n adapter.callBids(s2sReq, bidderRequests, addBidResponse, done, ajax);\n\n const pbsReq = JSON.parse(server.requests[server.requests.length - 1].requestBody);\n const [imp1, imp2] = pbsReq.imp;\n\n expect(imp1.bidfloor).to.be.undefined;\n expect(imp1.bidfloorcur).to.be.undefined;\n\n expect(imp2.bidfloor).to.eql(123);\n expect(imp2.bidfloorcur).to.eql('CUR');\n });\n\n describe('when different bids have different floors', () => {\n let s2sReq;\n beforeEach(() => {\n config.setConfig({\n s2sConfig: {\n ...CONFIG,\n bidders: ['b1', 'b2', 'b3']\n },\n });\n BID_REQUESTS = [\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b2',\n bids: [{\n bidder: 'b2',\n bidId: 2,\n getFloor: () => ({\n currency: '1',\n floor: 2\n })\n }],\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b1',\n bids: [{\n bidder: 'b1',\n bidId: 1,\n getFloor: () => ({\n floor: 10,\n currency: '0.1'\n })\n }]\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b3',\n bids: [{\n bidder: 'b3',\n bidId: 3,\n getFloor: () => ({\n currency: '10',\n floor: 1\n })\n }],\n }\n ];\n s2sReq = {\n ...REQUEST,\n ad_units: [\n {\n code: 'au1',\n transactionId: 't1',\n mediaTypes: {\n banner: {sizes: [1, 1]}\n },\n bids: [\n {bidder: 'b2', bid_id: 2},\n {bidder: 'b3', bid_id: 3},\n {bidder: 'b1', bid_id: 1},\n ]\n }\n ]\n };\n });\n\n Object.entries({\n 'cannot compute a floor': (bid) => { bid.getFloor = () => { throw new Error() } },\n 'does not set a floor': (bid) => { delete bid.getFloor; },\n }).forEach(([t, updateBid]) => {\n it(`should not set pricefloor if any one of them ${t}`, () => {\n updateBid(BID_REQUESTS[1].bids[0]);\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const pbsReq = JSON.parse(server.requests[server.requests.length - 1].requestBody);\n [pbsReq.imp[0], pbsReq.imp[0].banner, pbsReq.imp[0].banner.format[0]].forEach(obj => {\n expect(obj.bidfloor).to.be.undefined;\n expect(obj.bidfloorcur).to.be.undefined;\n })\n });\n })\n\n Object.entries({\n 'imp level floors': {\n target: 'imp.0'\n },\n 'mediaType level floors': {\n target: 'imp.0.banner.ext',\n floorFilter: ({mediaType, size}) => size === '*' && mediaType !== '*'\n },\n 'format level floors': {\n target: 'imp.0.banner.format.0.ext',\n floorFilter: ({size}) => size !== '*'\n }\n }).forEach(([t, {target, floorFilter}]) => {\n describe(t, () => {\n beforeEach(() => {\n if (floorFilter != null) {\n BID_REQUESTS\n .flatMap(req => req.bids)\n .forEach(req => {\n req.getFloor = ((orig) => (params) => {\n if (floorFilter(params)) {\n return orig(params);\n }\n })(req.getFloor);\n })\n }\n })\n\n Object.entries({\n 'is available': {\n expectDesc: 'minimum after conversion',\n expectedFloor: 10,\n expectedCur: '0.1',\n conversionFn: (amount, from, to) => {\n from = parseFloat(from);\n to = parseFloat(to);\n return amount * from / to;\n },\n },\n 'is not available': {\n expectDesc: 'absolute minimum',\n expectedFloor: 1,\n expectedCur: '10',\n conversionFn: null\n },\n 'is not working': {\n expectDesc: 'absolute minimum',\n expectedFloor: 1,\n expectedCur: '10',\n conversionFn: () => {\n throw new Error();\n }\n }\n }).forEach(([t, {expectDesc, expectedFloor, expectedCur, conversionFn}]) => {\n describe(`and currency conversion ${t}`, () => {\n let mockConvertCurrency;\n const origConvertCurrency = getGlobal().convertCurrency;\n beforeEach(() => {\n if (conversionFn) {\n getGlobal().convertCurrency = mockConvertCurrency = sinon.stub().callsFake(conversionFn)\n } else {\n mockConvertCurrency = null;\n delete getGlobal().convertCurrency;\n }\n });\n\n afterEach(() => {\n if (origConvertCurrency != null) {\n getGlobal().convertCurrency = origConvertCurrency;\n } else {\n delete getGlobal().convertCurrency;\n }\n });\n\n it(`should pick the ${expectDesc}`, () => {\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const pbsReq = JSON.parse(server.requests[server.requests.length - 1].requestBody);\n expect(deepAccess(pbsReq, `${target}.bidfloor`)).to.eql(expectedFloor);\n expect(deepAccess(pbsReq, `${target}.bidfloorcur`)).to.eql(expectedCur)\n });\n });\n });\n })\n })\n });\n });\n\n if (FEATURES.NATIVE) {\n describe('native requests', function () {\n const ORTB_NATIVE_REQ = {\n 'ver': '1.2',\n 'assets': [\n {\n 'required': 1,\n 'id': 0,\n 'title': {\n 'len': 800\n }\n },\n {\n 'required': 1,\n 'id': 1,\n 'img': {\n 'type': 3,\n 'w': 989,\n 'h': 742\n }\n },\n {\n 'required': 1,\n 'id': 2,\n 'img': {\n 'type': 1,\n 'wmin': 10,\n 'hmin': 10,\n 'ext': {\n 'aspectratios': ['1:1']\n }\n }\n },\n {\n 'required': 1,\n 'id': 3,\n 'data': {\n 'type': 1\n }\n }\n ]\n };\n\n it('adds device.w and device.h even if the config lacks a device object', async function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n config.setConfig(_config);\n adapter.callBids(await addFpdEnrichmentsToS2SRequest(REQUEST, BID_REQUESTS), BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n sinon.assert.match(requestBid.device, {\n w: window.screen.width,\n h: window.screen.height,\n })\n expect(requestBid.imp[0].native.ver).to.equal('1.2');\n });\n\n it('adds native request for OpenRTB', function () {\n const _config = {\n s2sConfig: CONFIG\n };\n\n config.setConfig(_config);\n adapter.callBids({...REQUEST, s2sConfig: Object.assign({}, CONFIG, s2sDefaultConfig)}, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n const ortbReq = JSON.parse(requestBid.imp[0].native.request);\n expect(ortbReq).to.deep.equal({\n ...ORTB_NATIVE_REQ,\n 'eventtrackers': [{\n event: 1,\n methods: [1, 2]\n }],\n });\n expect(requestBid.imp[0].native.ver).to.equal('1.2');\n });\n\n it('adds native ortb request for OpenRTB', function () {\n const _config = {\n s2sConfig: CONFIG\n };\n\n const openRtbNativeRequest = deepClone(REQUEST);\n delete openRtbNativeRequest.ad_units[0].mediaTypes.native;\n delete openRtbNativeRequest.ad_units[0].nativeParams;\n\n openRtbNativeRequest.ad_units[0].mediaTypes.native = NATIVE_ORTB_MTO;\n prepRequest(openRtbNativeRequest);\n\n config.setConfig(_config);\n adapter.callBids(openRtbNativeRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n const nativeReq = JSON.parse(requestBid.imp[0].native.request);\n expect(nativeReq).to.deep.equal(NATIVE_ORTB_MTO.ortb);\n expect(requestBid.imp[0].native.ver).to.equal('1.2');\n });\n\n it('can override default values for imp.native.request with s2sConfig.ortbNative', () => {\n const cfg = {\n ...CONFIG,\n ortbNative: {\n eventtrackers: [\n {event: 1, methods: [1, 2]}\n ]\n }\n }\n config.setConfig({\n s2sConfig: cfg\n });\n adapter.callBids({...REQUEST, s2sConfig: cfg}, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n const ortbReq = JSON.parse(requestBid.imp[0].native.request);\n expect(ortbReq).to.eql({\n ...ORTB_NATIVE_REQ,\n eventtrackers: [\n {event: 1, methods: [1, 2]}\n ]\n })\n })\n\n it('should not include ext.aspectratios if adunit\\'s aspect_ratios do not define radio_width and ratio_height', () => {\n const req = deepClone(REQUEST);\n req.ad_units[0].mediaTypes.native.icon.aspect_ratios[0] = {'min_width': 1, 'min_height': 2};\n prepRequest(req);\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n const nativeReq = JSON.parse(JSON.parse(server.requests[0].requestBody).imp[0].native.request);\n const icons = nativeReq.assets.map((a) => a.img).filter((img) => img && img.type === 1);\n expect(icons).to.have.length(1);\n expect(icons[0].hmin).to.equal(2);\n expect(icons[0].wmin).to.equal(1);\n expect(deepAccess(icons[0], 'ext.aspectratios')).to.be.undefined;\n });\n });\n }\n\n it('adds site if app is not present', async function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n\n config.setConfig(_config);\n const s2sReq = await addFpdEnrichmentsToS2SRequest({\n ...REQUEST,\n ortb2Fragments: {\n global: {\n site: {\n publisher: {\n id: '1234',\n domain: 'test.com'\n },\n content: {\n language: 'en'\n }\n }\n }\n }\n }, BID_REQUESTS);\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.site).to.exist.and.to.be.a('object');\n expect(requestBid.site.publisher).to.exist.and.to.be.a('object');\n expect(requestBid.site.publisher.id).to.exist.and.to.be.a('string');\n expect(requestBid.site.publisher.domain).to.exist.and.to.be.a('string');\n expect(requestBid.site.page).to.exist.and.to.be.a('string');\n expect(requestBid.site.content).to.exist.and.to.be.a('object');\n expect(requestBid.site.content.language).to.exist.and.to.be.a('string');\n expect(requestBid.site).to.deep.equal({\n publisher: {\n id: '1234',\n domain: 'test.com'\n },\n content: {\n language: 'en'\n },\n domain: 'mytestpage.com',\n page: 'http://mytestpage.com'\n });\n });\n\n it('site should not be present when app is present', async function () {\n const _config = {\n s2sConfig: CONFIG,\n };\n\n config.setConfig(_config);\n\n const s2sReq = await addFpdEnrichmentsToS2SRequest({\n ...REQUEST,\n ortb2Fragments: {\n global: {\n app: {bundle: 'com.test.app'},\n site: {\n publisher: {\n id: '1234',\n domain: 'test.com'\n },\n content: {\n language: 'en'\n }\n }\n }\n }\n }, BID_REQUESTS)\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.site).to.not.exist;\n expect(requestBid.app.bundle).to.eql('com.test.app');\n });\n\n it('adds appnexus aliases to request', function () {\n config.setConfig({ s2sConfig: CONFIG });\n\n const aliasBidder = {\n bidder: 'beintoo',\n bid_id: REQUEST.ad_units[0].bids[0].bid_id,\n params: { placementId: '123456' }\n };\n\n const request = utils.deepClone(REQUEST);\n request.ad_units[0].bids = [aliasBidder];\n\n adapter.callBids(request, [{...BID_REQUESTS[0], bidderCode: 'beintoo'}], addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.ext).to.haveOwnProperty('prebid');\n expect(requestBid.ext.prebid).to.deep.include({\n aliases: {\n beintoo: 'appnexus'\n },\n auctiontimestamp: 1510852447530,\n targeting: {\n includebidderkeys: false,\n includewinners: true\n }\n });\n });\n\n it('unregistered bidder should alias', function () {\n const adjustedConfig = utils.deepClone(CONFIG);\n adjustedConfig.bidders = 'bidderD'\n config.setConfig({ s2sConfig: adjustedConfig });\n\n const aliasBidder = {\n ...REQUEST.ad_units[0].bids[0],\n bidder: 'bidderD',\n params: {\n unit: '10433394',\n }\n };\n\n $$PREBID_GLOBAL$$.aliasBidder('mockBidder', aliasBidder.bidder);\n\n const request = utils.deepClone(REQUEST);\n request.ad_units[0].bids = [aliasBidder];\n request.s2sConfig = adjustedConfig;\n\n adapter.callBids(request, [{...BID_REQUESTS[0], bidderCode: aliasBidder.bidder}], addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.ext.prebid.aliases).to.deep.equal({ bidderD: 'mockBidder' });\n });\n\n it('adds dynamic aliases to request', function () {\n config.setConfig({ s2sConfig: CONFIG });\n\n const alias = 'foobar';\n const aliasBidder = {\n bidder: alias,\n bid_id: REQUEST.ad_units[0].bids[0].bid_id,\n params: { placementId: '123456' }\n };\n\n const request = utils.deepClone(REQUEST);\n request.ad_units[0].bids = [aliasBidder];\n\n // TODO: stub this\n $$PREBID_GLOBAL$$.aliasBidder('appnexus', alias);\n adapter.callBids(request, [{...BID_REQUESTS[0], bidderCode: 'foobar'}], addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.ext).to.haveOwnProperty('prebid');\n expect(requestBid.ext.prebid).to.deep.include({\n aliases: {\n [alias]: 'appnexus'\n },\n auctiontimestamp: 1510852447530,\n targeting: {\n includebidderkeys: false,\n includewinners: true\n }\n });\n });\n\n it('skips pbs alias when skipPbsAliasing is enabled in adapter', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n });\n config.setConfig({ s2sConfig: s2sConfig });\n registerBidder({\n code: 'bidderCodeForTestSkipBPSAlias',\n aliases: [{\n code: 'bidderCodeForTestSkipBPSAlias_Alias',\n skipPbsAliasing: true\n }]\n })\n const aliasBidder = {\n bidder: 'bidderCodeForTestSkipBPSAlias_Alias',\n bid_id: REQUEST.ad_units[0].bids[0].bid_id,\n params: { aid: 123 }\n };\n\n const request = utils.deepClone(REQUEST);\n request.ad_units[0].bids = [aliasBidder];\n\n adapter.callBids(request, [{...BID_REQUESTS[0], bidderCode: aliasBidder.bidder}], addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n sinon.assert.match(requestBid.ext.prebid, {\n auctiontimestamp: 1510852447530,\n targeting: {\n includebidderkeys: false,\n includewinners: true\n },\n channel: {\n name: 'pbjs',\n version: 'v$prebid.version$'\n }\n })\n });\n\n it('skips dynamic aliases to request when skipPbsAliasing enabled', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n });\n config.setConfig({ s2sConfig: s2sConfig });\n\n const alias = 'foobar_1';\n const aliasBidder = {\n bidder: alias,\n bid_id: REQUEST.ad_units[0].bids[0].bid_id,\n params: { aid: 1234567 }\n };\n\n const request = utils.deepClone(REQUEST);\n request.ad_units[0].bids = [aliasBidder];\n\n // TODO: stub this\n $$PREBID_GLOBAL$$.aliasBidder('appnexus', alias, { skipPbsAliasing: true });\n adapter.callBids(request, [{...BID_REQUESTS[0], bidderCode: aliasBidder.bidder}], addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n sinon.assert.match(requestBid.ext.prebid, {\n auctiontimestamp: 1510852447530,\n targeting: {\n includebidderkeys: false,\n includewinners: true\n },\n channel: {\n name: 'pbjs',\n version: 'v$prebid.version$'\n }\n });\n });\n\n describe('cookie sync', () => {\n let s2sConfig, bidderReqs;\n\n beforeEach(() => {\n bidderReqs = utils.deepClone(BID_REQUESTS);\n s2sConfig = utils.deepClone(CONFIG);\n s2sConfig.syncEndpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync' };\n })\n\n function callCookieSync() {\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n config.setConfig({ s2sConfig: s2sConfig });\n adapter.callBids(s2sBidRequest, bidderReqs, addBidResponse, done, ajax);\n return JSON.parse(server.requests[0].requestBody);\n }\n\n describe('filterSettings', function () {\n it('correctly adds filterSettings to the cookie_sync request if userSync.filterSettings is present in the config and only the all key is present in userSync.filterSettings', function () {\n config.setConfig({\n userSync: {\n filterSettings: {\n all: {\n bidders: ['appnexus', 'rubicon', 'pubmatic'],\n filter: 'exclude'\n }\n }\n }\n });\n expect(callCookieSync().filterSettings).to.deep.equal({\n 'image': {\n 'bidders': ['appnexus', 'rubicon', 'pubmatic'],\n 'filter': 'exclude'\n },\n 'iframe': {\n 'bidders': ['appnexus', 'rubicon', 'pubmatic'],\n 'filter': 'exclude'\n }\n });\n });\n\n it('correctly adds filterSettings to the cookie_sync request if userSync.filterSettings is present in the config and only the iframe key is present in userSync.filterSettings', function () {\n config.setConfig({\n userSync: {\n filterSettings: {\n iframe: {\n bidders: ['rubicon', 'pubmatic'],\n filter: 'include'\n }\n }\n }\n })\n\n expect(callCookieSync().filterSettings).to.deep.equal({\n 'image': {\n 'bidders': '*',\n 'filter': 'include'\n },\n 'iframe': {\n 'bidders': ['rubicon', 'pubmatic'],\n 'filter': 'include'\n }\n });\n });\n\n it('correctly adds filterSettings to the cookie_sync request if userSync.filterSettings is present in the config and the image and iframe keys are both present in userSync.filterSettings', function () {\n config.setConfig({\n userSync: {\n filterSettings: {\n image: {\n bidders: ['triplelift', 'appnexus'],\n filter: 'include'\n },\n iframe: {\n bidders: ['pulsepoint', 'triplelift', 'appnexus', 'rubicon'],\n filter: 'exclude'\n }\n }\n }\n })\n\n expect(callCookieSync().filterSettings).to.deep.equal({\n 'image': {\n 'bidders': ['triplelift', 'appnexus'],\n 'filter': 'include'\n },\n 'iframe': {\n 'bidders': ['pulsepoint', 'triplelift', 'appnexus', 'rubicon'],\n 'filter': 'exclude'\n }\n });\n });\n\n it('correctly adds filterSettings to the cookie_sync request if userSync.filterSettings is present in the config and the all and iframe keys are both present in userSync.filterSettings', function () {\n config.setConfig({\n userSync: {\n filterSettings: {\n all: {\n bidders: ['triplelift', 'appnexus'],\n filter: 'include'\n },\n iframe: {\n bidders: ['pulsepoint', 'triplelift', 'appnexus', 'rubicon'],\n filter: 'exclude'\n }\n }\n }\n })\n\n expect(callCookieSync().filterSettings).to.deep.equal({\n 'image': {\n 'bidders': ['triplelift', 'appnexus'],\n 'filter': 'include'\n },\n 'iframe': {\n 'bidders': ['pulsepoint', 'triplelift', 'appnexus', 'rubicon'],\n 'filter': 'exclude'\n }\n });\n });\n });\n\n describe('limit', () => {\n it('is added to request if userSyncLimit is greater than 0', function () {\n s2sConfig.userSyncLimit = 1;\n const req = callCookieSync();\n expect(req.limit).is.equal(1);\n });\n\n Object.entries({\n 'missing': () => null,\n '0': () => { s2sConfig.userSyncLimit = 0; }\n }).forEach(([t, setup]) => {\n it(`is not added to request if userSyncLimit is ${t}`, () => {\n setup();\n const req = callCookieSync();\n expect(req.limit).to.not.exist;\n });\n });\n });\n\n describe('gdpr data is set', () => {\n it('when we have consent data', function () {\n bidderReqs[0].gdprConsent = mockTCF();\n const req = callCookieSync();\n expect(req.gdpr).is.equal(1);\n expect(req.gdpr_consent).is.equal('mockConsent');\n });\n\n it('when gdprApplies is false', () => {\n bidderReqs[0].gdprConsent = mockTCF({applies: false});\n const req = callCookieSync();\n expect(req.gdpr).is.equal(0);\n expect(req.gdpr_consent).is.undefined;\n });\n });\n\n it('adds USP data from bidder request', () => {\n bidderReqs[0].uspConsent = '1YNN';\n expect(callCookieSync().us_privacy).to.equal('1YNN');\n });\n\n it('adds GPP data from bidder requests', () => {\n bidderReqs[0].gppConsent = {\n applicableSections: [1, 2, 3],\n gppString: 'mock-string'\n };\n const req = callCookieSync();\n expect(req.gpp).to.eql('mock-string');\n expect(req.gpp_sid).to.eql('1,2,3');\n });\n });\n\n it('adds s2sConfig adapterOptions to request for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n adapterOptions: {\n appnexus: {\n key: 'value'\n }\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n config.setConfig(_config);\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n const requestParams = requestBid.imp[0].ext.prebid.bidder;\n expect(requestParams.appnexus).to.haveOwnProperty('key');\n expect(requestParams.appnexus.key).to.be.equal('value')\n });\n\n describe('config site value is added to the oRTB request', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n adapterOptions: {\n appnexus: {\n key: 'value'\n }\n }\n });\n const device = {\n ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',\n ip: '75.97.0.47'\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n it('and overrides publisher and page', async function () {\n config.setConfig({\n s2sConfig: s2sConfig,\n });\n const s2sReq = await addFpdEnrichmentsToS2SRequest({\n ...s2sBidRequest,\n ortb2Fragments: {\n global: {\n site: {\n domain: 'nytimes.com',\n page: 'http://www.nytimes.com',\n publisher: {id: '2'}\n },\n device,\n }\n }\n }, BID_REQUESTS);\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.site).to.exist.and.to.be.a('object');\n expect(requestBid.site.domain).to.equal('nytimes.com');\n expect(requestBid.site.page).to.equal('http://www.nytimes.com');\n expect(requestBid.site.publisher).to.exist.and.to.be.a('object');\n expect(requestBid.site.publisher.id).to.equal('2');\n });\n\n it('and merges domain and page with the config site value', async function () {\n config.setConfig({\n s2sConfig: s2sConfig,\n });\n const s2sReq = await addFpdEnrichmentsToS2SRequest({\n ...s2sBidRequest,\n ortb2Fragments: {\n global: {\n site: {\n foo: 'bar'\n },\n device: device\n }\n }\n }, BID_REQUESTS);\n adapter.callBids(s2sReq, BID_REQUESTS, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.site).to.exist.and.to.be.a('object');\n expect(requestBid.site.foo).to.equal('bar');\n expect(requestBid.site.page).to.equal('http://mytestpage.com');\n expect(requestBid.site.publisher).to.exist.and.to.be.a('object');\n expect(requestBid.site.publisher.id).to.equal('1');\n });\n });\n\n describe('user.ext.eids', () => {\n let req;\n beforeEach(() => {\n const s2sConfig = {\n ...CONFIG,\n bidders: ['appnexus', 'rubicon']\n }\n config.setConfig({s2sConfig});\n req = {\n ...REQUEST,\n s2sConfig,\n ortb2Fragments: {\n global: {\n user: {\n ext: {\n eids: [{source: 'idA', id: 1}, {source: 'idB', id: 2}]\n }\n }\n },\n bidder: {\n appnexus: {\n user: {\n ext: {\n eids: [{source: 'idC', id: 3}]\n }\n }\n }\n }\n }\n }\n })\n it('should get picked up from from FPD', function () {\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n const payload = JSON.parse(server.requests[0].requestBody);\n expect(payload.user.ext.eids).to.eql([\n {source: 'idA', id: 1},\n {source: 'idB', id: 2},\n {source: 'idC', id: 3}\n ]);\n expect(payload.ext.prebid.data.eidpermissions).to.eql([{\n bidders: ['appnexus'],\n source: 'idC'\n }]);\n });\n\n it('should not set eidpermissions for unrequested bidders', () => {\n req.ortb2Fragments.bidder.unknown = {\n user: {\n eids: [{source: 'idC', id: 3}, {source: 'idD', id: 4}]\n }\n }\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n const payload = JSON.parse(server.requests[0].requestBody);\n expect(payload.ext.prebid.data.eidpermissions).to.eql([{\n bidders: ['appnexus'],\n source: 'idC'\n }, {\n bidders: [],\n source: 'idD'\n }]);\n });\n\n it('should repeat global EIDs when bidder-specific EIDs conflict', () => {\n BID_REQUESTS.push({\n ...BID_REQUESTS[0],\n bidderCode: 'rubicon',\n bids: [{\n bidder: 'rubicon',\n params: {}\n }]\n })\n req.ortb2Fragments.bidder.rubicon = {\n user: {\n ext: {\n eids: [{source: 'idC', id: 4}]\n }\n }\n }\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n const payload = JSON.parse(server.requests[0].requestBody);\n const globalEids = [\n {source: 'idA', id: 1},\n {source: 'idB', id: 2},\n ]\n expect(payload.user.ext.eids).to.eql(globalEids);\n expect(payload.ext.prebid?.data?.eidpermissions).to.not.exist;\n expect(payload.ext.prebid.bidderconfig).to.have.deep.members([\n {\n bidders: ['appnexus'],\n config: {\n ortb2: {\n user: {ext: {eids: globalEids.concat([{source: 'idC', id: 3}])}}\n }\n }\n },\n {\n bidders: ['rubicon'],\n config: {\n ortb2: {\n user: {ext: {eids: globalEids.concat([{source: 'idC', id: 4}])}}\n }\n }\n }\n ])\n })\n })\n\n it('when config \\'currency.adServerCurrency\\' value is a string: ORTB has property \\'cur\\' value set to a single item array', function () {\n config.setConfig({\n currency: { adServerCurrency: 'NZ' },\n });\n\n const bidRequests = utils.deepClone(BID_REQUESTS);\n adapter.callBids(REQUEST, bidRequests, addBidResponse, done, ajax);\n\n const parsedRequestBody = JSON.parse(server.requests.find(req => req.method === 'POST').requestBody);\n expect(parsedRequestBody.cur).to.deep.equal(['NZ']);\n });\n\n it('when config \\'currency.adServerCurrency\\' is unset: ORTB should not define a \\'cur\\' property', function () {\n config.setConfig({ s2sConfig: CONFIG });\n\n const bidRequests = utils.deepClone(BID_REQUESTS);\n adapter.callBids(REQUEST, bidRequests, addBidResponse, done, ajax);\n\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n expect(typeof parsedRequestBody.cur).to.equal('undefined');\n });\n\n it('always add ext.prebid.targeting.includebidderkeys: false for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n adapterOptions: {\n appnexus: {\n key: 'value'\n }\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n\n config.setConfig(_config);\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.ext.prebid.targeting).to.haveOwnProperty('includebidderkeys');\n expect(requestBid.ext.prebid.targeting.includebidderkeys).to.equal(false);\n });\n\n it('always add ext.prebid.targeting.includewinners: true for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n adapterOptions: {\n appnexus: {\n key: 'value'\n }\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n config.setConfig(_config);\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.ext.prebid.targeting).to.haveOwnProperty('includewinners');\n expect(requestBid.ext.prebid.targeting.includewinners).to.equal(true);\n });\n\n it('adds s2sConfig video.ext.prebid to request for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n foo: 'bar'\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n config.setConfig(_config);\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid).to.haveOwnProperty('ext');\n expect(requestBid.ext).to.haveOwnProperty('prebid');\n expect(requestBid.ext.prebid).to.deep.include({\n auctiontimestamp: 1510852447530,\n foo: 'bar',\n targeting: {\n includewinners: true,\n includebidderkeys: false\n }\n });\n });\n\n it('overrides request.ext.prebid properties using s2sConfig video.ext.prebid values for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n targeting: {\n includewinners: false,\n includebidderkeys: true\n }\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n config.setConfig(_config);\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid).to.haveOwnProperty('ext');\n expect(requestBid.ext).to.haveOwnProperty('prebid');\n expect(requestBid.ext.prebid).to.deep.include({\n auctiontimestamp: 1510852447530,\n targeting: {\n includewinners: false,\n includebidderkeys: true\n }\n });\n });\n\n it('overrides request.ext.prebid properties using s2sConfig video.ext.prebid values for ORTB', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n cache: {\n vastxml: 'vastxml-set-though-extPrebid.cache.vastXml'\n },\n targeting: {\n includewinners: false,\n includebidderkeys: false\n }\n }\n });\n const _config = {\n s2sConfig: s2sConfig,\n device: { ifa: '6D92078A-8246-4BA4-AE5B-76104861E7DC' },\n app: { bundle: 'com.test.app' },\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n config.setConfig(_config);\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid).to.haveOwnProperty('ext');\n expect(requestBid.ext).to.haveOwnProperty('prebid');\n expect(requestBid.ext.prebid).to.deep.include({\n auctiontimestamp: 1510852447530,\n cache: {\n vastxml: 'vastxml-set-though-extPrebid.cache.vastXml'\n },\n targeting: {\n includewinners: false,\n includebidderkeys: false\n }\n });\n });\n\n it('should have extPrebid.schains present on req object if bidder specific schains were configured with pbjs', function () {\n const bidRequest = utils.deepClone(BID_REQUESTS);\n bidRequest[0].bids[0].ortb2 = {\n source: {\n schain: {\n complete: 1,\n nodes: [{\n asi: 'test.com',\n hp: 1,\n sid: '11111'\n }],\n ver: '1.0'\n }\n }\n };\n\n adapter.callBids(REQUEST, bidRequest, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.ext.prebid.schains).to.deep.equal([\n {\n bidders: ['appnexus'],\n schain: {\n complete: 1,\n nodes: [\n {\n asi: 'test.com',\n hp: 1,\n sid: '11111'\n }\n ],\n ver: '1.0'\n }\n }\n ]);\n });\n\n it('should skip over adding any bid specific schain entries that already exist on extPrebid.schains', function () {\n const bidRequest = utils.deepClone(BID_REQUESTS);\n bidRequest[0].bids[0].schain = {\n complete: 1,\n nodes: [{\n asi: 'pbjs.com',\n hp: 1,\n sid: '22222'\n }],\n ver: '1.0'\n };\n\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n schains: [\n {\n bidders: ['appnexus'],\n schain: {\n complete: 1,\n nodes: [\n {\n asi: 'pbs.com',\n hp: 1,\n sid: '11111'\n }\n ],\n ver: '1.0'\n }\n }\n ]\n }\n });\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, bidRequest, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.ext.prebid.schains).to.deep.equal([\n {\n bidders: ['appnexus'],\n schain: {\n complete: 1,\n nodes: [\n {\n asi: 'pbs.com',\n hp: 1,\n sid: '11111'\n }\n ],\n ver: '1.0'\n }\n }\n ]);\n });\n\n it('should add a bidder name to pbs schain if the schain is equal to a pbjs one but the pbjs bidder name is not in the bidder array on the pbs side', function () {\n const bidRequest = utils.deepClone(BID_REQUESTS);\n bidRequest[0].bids[0].ortb2 = {\n source: {\n schain: {\n complete: 1,\n nodes: [{\n asi: 'test.com',\n hp: 1,\n sid: '11111'\n }],\n ver: '1.0'\n }\n }\n };\n\n bidRequest[0].bids[1] = {\n bidder: 'rubicon',\n params: {\n accountId: 14062,\n siteId: 70608,\n zoneId: 498816\n }\n };\n\n const s2sConfig = Object.assign({}, CONFIG, {\n bidders: ['rubicon', 'appnexus'],\n extPrebid: {\n schains: [\n {\n bidders: ['rubicon'],\n schain: {\n complete: 1,\n nodes: [\n {\n asi: 'test.com',\n hp: 1,\n sid: '11111'\n }\n ],\n ver: '1.0'\n }\n }\n ]\n }\n });\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, bidRequest, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.ext.prebid.schains).to.deep.equal([\n {\n bidders: ['rubicon', 'appnexus'],\n schain: {\n complete: 1,\n nodes: [\n {\n asi: 'test.com',\n hp: 1,\n sid: '11111'\n }\n ],\n ver: '1.0'\n }\n }\n ]);\n });\n\n Object.entries({\n 'set': {},\n 'override': {source: {ext: {schain: 'pub-provided'}}}\n }).forEach(([t, fpd]) => {\n it(`should not ${t} source.ext.schain`, () => {\n const bidderReqs = [\n {...deepClone(BID_REQUESTS[0]), bidderCode: 'A'},\n {...deepClone(BID_REQUESTS[0]), bidderCode: 'B'},\n {...deepClone(BID_REQUESTS[0]), bidderCode: 'C'}\n ];\n const chain1 = {chain: 1};\n const chain2 = {chain: 2};\n\n bidderReqs[0].bids[0].schain = chain1;\n bidderReqs[1].bids[0].schain = chain2;\n bidderReqs[2].bids[0].schain = chain2;\n\n adapter.callBids({...REQUEST, ortb2Fragments: {global: fpd}}, bidderReqs, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n expect(req.source?.ext?.schain).to.eql(fpd?.source?.ext?.schain);\n })\n })\n\n it('passes multibid array in request', function () {\n const bidRequests = utils.deepClone(BID_REQUESTS);\n const multibid = [{\n bidder: 'bidderA',\n maxBids: 2\n }, {\n bidder: 'bidderB',\n maxBids: 2\n }];\n const expected = [{\n bidder: 'bidderA',\n maxbids: 2\n }, {\n bidder: 'bidderB',\n maxbids: 2\n }];\n\n config.setConfig({ multibid: multibid });\n\n adapter.callBids(REQUEST, bidRequests, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n expect(parsedRequestBody.ext.prebid.multibid).to.deep.equal(expected);\n });\n\n it('sets and passes pbjs version in request if channel does not exist in s2sConfig', () => {\n const s2sBidRequest = utils.deepClone(REQUEST);\n const bidRequests = utils.deepClone(BID_REQUESTS);\n\n adapter.callBids(s2sBidRequest, bidRequests, addBidResponse, done, ajax);\n\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n expect(parsedRequestBody.ext.prebid.channel).to.deep.equal({ name: 'pbjs', version: 'v$prebid.version$' });\n });\n\n it('extPrebid is now mergedDeep -> should include default channel as well', () => {\n const s2sBidRequest = utils.deepClone(REQUEST);\n const bidRequests = utils.deepClone(BID_REQUESTS);\n\n utils.deepSetValue(s2sBidRequest, 's2sConfig.extPrebid.channel', { test: 1 });\n\n adapter.callBids(s2sBidRequest, bidRequests, addBidResponse, done, ajax);\n\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n // extPrebid is now deep merged with\n expect(parsedRequestBody.ext.prebid.channel).to.deep.equal({\n name: 'pbjs',\n test: 1,\n version: 'v$prebid.version$'\n });\n });\n\n it('passes first party data in request', async () => {\n const s2sBidRequest = utils.deepClone(REQUEST);\n const bidRequests = utils.deepClone(BID_REQUESTS);\n\n const commonSite = {\n keywords: ['power tools'],\n search: 'drill'\n };\n const commonUser = {\n keywords: ['a', 'b'],\n gender: 'M'\n };\n\n const site = {\n content: {userrating: 4},\n ext: {\n data: {\n pageType: 'article',\n category: 'tools'\n }\n }\n };\n const user = {\n yob: '1984',\n geo: {country: 'ca'},\n ext: {\n data: {\n registered: true,\n interests: ['cars']\n }\n }\n };\n const bcat = ['IAB25', 'IAB7-39'];\n const badv = ['blockedAdv-1.com', 'blockedAdv-2.com'];\n const allowedBidders = ['appnexus'];\n\n const expected = allowedBidders.map(bidder => ({\n bidders: [bidder],\n config: {\n ortb2: {\n site: {\n content: {userrating: 4},\n ext: {\n data: {\n pageType: 'article',\n category: 'tools'\n }\n }\n },\n user: {\n yob: '1984',\n geo: {country: 'ca'},\n ext: {\n data: {\n registered: true,\n interests: ['cars']\n }\n }\n },\n bcat: ['IAB25', 'IAB7-39'],\n badv: ['blockedAdv-1.com', 'blockedAdv-2.com']\n }\n }\n }));\n const commonContextExpected = utils.mergeDeep({\n 'page': 'http://mytestpage.com',\n 'domain': 'mytestpage.com',\n 'publisher': {\n 'id': '1',\n 'domain': 'mytestpage.com'\n }\n }, commonSite);\n\n const ortb2Fragments = {\n global: {site: commonSite, user: commonUser, badv, bcat},\n bidder: Object.fromEntries(allowedBidders.map(bidder => [bidder, {site, user, bcat, badv}]))\n };\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest({\n ...s2sBidRequest,\n ortb2Fragments\n }, bidRequests), bidRequests, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n expect(parsedRequestBody.ext.prebid.bidderconfig).to.deep.equal(expected);\n expect(parsedRequestBody.site).to.deep.equal(commonContextExpected);\n expect(parsedRequestBody.user).to.deep.equal(commonUser);\n expect(parsedRequestBody.badv).to.deep.equal(badv);\n expect(parsedRequestBody.bcat).to.deep.equal(bcat);\n });\n\n it('passes first party data in request for unknown when allowUnknownBidderCodes is true', async () => {\n const cfg = {...CONFIG, allowUnknownBidderCodes: true};\n config.setConfig({s2sConfig: cfg});\n\n const clonedReq = {...REQUEST, s2sConfig: cfg}\n const s2sBidRequest = utils.deepClone(clonedReq);\n const bidRequests = utils.deepClone(BID_REQUESTS);\n\n const commonSite = {\n keywords: ['power tools'],\n search: 'drill'\n };\n const commonUser = {\n keywords: ['a', 'b'],\n gender: 'M'\n };\n\n const site = {\n content: {userrating: 4},\n ext: {\n data: {\n pageType: 'article',\n category: 'tools'\n }\n }\n };\n const user = {\n yob: '1984',\n geo: {country: 'ca'},\n ext: {\n data: {\n registered: true,\n interests: ['cars']\n }\n }\n };\n const bcat = ['IAB25', 'IAB7-39'];\n const badv = ['blockedAdv-1.com', 'blockedAdv-2.com'];\n const allowedBidders = ['appnexus', 'unknown'];\n\n const expected = allowedBidders.map(bidder => ({\n bidders: [bidder],\n config: {\n ortb2: {\n site: {\n content: {userrating: 4},\n ext: {\n data: {\n pageType: 'article',\n category: 'tools'\n }\n }\n },\n user: {\n yob: '1984',\n geo: {country: 'ca'},\n ext: {\n data: {\n registered: true,\n interests: ['cars']\n }\n }\n },\n bcat: ['IAB25', 'IAB7-39'],\n badv: ['blockedAdv-1.com', 'blockedAdv-2.com']\n }\n }\n }));\n const commonContextExpected = utils.mergeDeep({\n 'page': 'http://mytestpage.com',\n 'domain': 'mytestpage.com',\n 'publisher': {\n 'id': '1',\n 'domain': 'mytestpage.com'\n }\n }, commonSite);\n\n const ortb2Fragments = {\n global: {site: commonSite, user: commonUser, badv, bcat},\n bidder: Object.fromEntries(allowedBidders.map(bidder => [bidder, {site, user, bcat, badv}]))\n };\n\n // adapter.callBids({ ...REQUEST, s2sConfig: cfg }, BID_REQUESTS, addBidResponse, done, ajax);\n\n adapter.callBids(await addFpdEnrichmentsToS2SRequest({\n ...s2sBidRequest,\n ortb2Fragments\n }, bidRequests, cfg), bidRequests, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n // eslint-disable-next-line no-console\n console.log(parsedRequestBody);\n expect(parsedRequestBody.ext.prebid.bidderconfig).to.deep.equal(expected);\n expect(parsedRequestBody.site).to.deep.equal(commonContextExpected);\n expect(parsedRequestBody.user).to.deep.equal(commonUser);\n expect(parsedRequestBody.badv).to.deep.equal(badv);\n expect(parsedRequestBody.bcat).to.deep.equal(bcat);\n });\n\n describe('GAM ad unit config', function () {\n it('should not send \\\"imp.ext.data.adserver.adslot\\\" if \\\"ortb2Imp.ext\\\" is undefined', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp).to.be.a('array');\n expect(parsedRequestBody.imp[0]).to.be.a('object');\n expect(parsedRequestBody.imp[0]).to.not.have.deep.nested.property('ext.data.adslot');\n });\n\n it('should not send \\\"imp.ext.data.adserver.adslot\\\" if \\\"ortb2Imp.ext.data.adserver.adslot\\\" is undefined', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n bidRequest.ad_units[0].ortb2Imp = {};\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp).to.be.a('array');\n expect(parsedRequestBody.imp[0]).to.be.a('object');\n expect(parsedRequestBody.imp[0]).to.not.have.deep.nested.property('ext.data.adslot');\n });\n\n it('should not send \\\"imp.ext.data.adserver.adslot\\\" if \\\"ortb2Imp.ext.data.adserver.adslot\\\" is empty string', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n bidRequest.ad_units[0].ortb2Imp = {\n ext: {\n data: {\n adserver: {\n adslot: ''\n }\n }\n }\n };\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp).to.be.a('array');\n expect(parsedRequestBody.imp[0]).to.be.a('object');\n expect(parsedRequestBody.imp[0]).to.not.have.deep.nested.property('ext.data.adslot');\n });\n\n it('should send both \\\"adslot\\\" and \\\"name\\\" from \\\"imp.ext.data.adserver\\\" if \\\"ortb2Imp.ext.data.adserver.adslot\\\" and \\\"ortb2Imp.ext.data.adserver.name\\\" values are non-empty strings', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n bidRequest.ad_units[0].ortb2Imp = {\n ext: {\n data: {\n adserver: {\n adslot: '/a/b/c',\n name: 'adserverName1'\n }\n }\n }\n };\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp).to.be.a('array');\n expect(parsedRequestBody.imp[0]).to.be.a('object');\n expect(parsedRequestBody.imp[0]).to.have.deep.nested.property('ext.data.adserver.adslot');\n expect(parsedRequestBody.imp[0]).to.have.deep.nested.property('ext.data.adserver.name');\n expect(parsedRequestBody.imp[0].ext.data.adserver.adslot).to.equal('/a/b/c');\n expect(parsedRequestBody.imp[0].ext.data.adserver.name).to.equal('adserverName1');\n });\n });\n });\n\n describe('Bidder-level ortb2Imp', () => {\n beforeEach(() => {\n config.setConfig({\n s2sConfig: {\n ...CONFIG,\n bidders: ['A', 'B']\n }\n })\n })\n it('should be set on imp.ext.prebid.imp', () => {\n const s2sReq = utils.deepClone(REQUEST);\n s2sReq.ad_units[0].ortb2Imp = {l0: 'adUnit'};\n s2sReq.ad_units[0].bids = [\n {\n bidder: 'A',\n bid_id: 1,\n ortb2Imp: {\n l2: 'A'\n }\n },\n {\n bidder: 'B',\n bid_id: 2,\n ortb2Imp: {\n l2: 'B'\n }\n }\n ];\n const bidderReqs = [\n {\n ...BID_REQUESTS[0],\n bidderCode: 'A',\n bids: [{\n bidId: 1,\n bidder: 'A'\n }]\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'B',\n bids: [{\n bidId: 2,\n bidder: 'B'\n }]\n }\n ]\n adapter.callBids(s2sReq, bidderReqs, addBidResponse, done, ajax);\n const req = JSON.parse(server.requests[0].requestBody);\n expect(req.imp[0].l0).to.eql('adUnit');\n expect(req.imp[0].ext.prebid.imp).to.eql({\n A: {l2: 'A'},\n B: {l2: 'B'}\n });\n });\n });\n\n describe('ext.prebid config', function () {\n it('should send \\\"imp.ext.prebid.storedrequest.id\\\" if \\\"ortb2Imp.ext.prebid.storedrequest.id\\\" is set', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n const storedRequestId = 'my-id';\n bidRequest.ad_units[0].ortb2Imp = {\n ext: {\n prebid: {\n storedrequest: {\n id: storedRequestId\n }\n }\n }\n };\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp).to.be.a('array');\n expect(parsedRequestBody.imp[0]).to.be.a('object');\n expect(parsedRequestBody.imp[0]).to.have.deep.nested.property('ext.prebid.storedrequest.id');\n expect(parsedRequestBody.imp[0].ext.prebid.storedrequest.id).to.equal(storedRequestId);\n });\n });\n\n describe('response handler', function () {\n beforeEach(function () {\n sinon.stub(utils, 'triggerPixel');\n sinon.stub(utils, 'insertUserSyncIframe');\n sinon.stub(utils, 'logError');\n sinon.stub(events, 'emit');\n });\n\n afterEach(function () {\n utils.triggerPixel.restore();\n utils.insertUserSyncIframe.restore();\n utils.logError.restore();\n events.emit.restore();\n });\n\n it('triggers BIDDER_ERROR on server error', () => {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(400, {}, {});\n BID_REQUESTS.forEach(bidderRequest => {\n sinon.assert.calledWith(events.emit, EVENTS.BIDDER_ERROR, sinon.match({ bidderRequest }))\n })\n })\n\n describe('calls done', () => {\n let success, error;\n beforeEach(() => {\n const mockAjax = function (_, callback) {\n ({success, error} = callback);\n }\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, mockAjax);\n })\n\n it('passing timedOut = false on succcess', () => {\n success({});\n sinon.assert.calledWith(done, false);\n });\n\n Object.entries({\n 'timeouts': true,\n 'other errors': false\n }).forEach(([t, timedOut]) => {\n it(`passing timedOut = ${timedOut} on ${t}`, () => {\n error('', {timedOut});\n sinon.assert.calledWith(done, timedOut);\n })\n })\n })\n\n // TODO: test dependent on pbjs_api_spec. Needs to be isolated\n it('does not call addBidResponse and calls done when ad unit not set', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_NO_BID_NO_UNIT));\n\n sinon.assert.notCalled(addBidResponse);\n sinon.assert.calledOnce(done);\n });\n\n it('does not call addBidResponse and calls done when server requests cookie sync', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_NO_COOKIE));\n\n sinon.assert.notCalled(addBidResponse);\n sinon.assert.calledOnce(done);\n });\n\n it('does not call addBidResponse and calls done when ad unit is set', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_NO_BID_UNIT_SET));\n\n sinon.assert.notCalled(addBidResponse);\n sinon.assert.calledOnce(done);\n });\n\n it('registers successful bids and calls done when there are less bids than requests', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n sinon.assert.calledOnce(addBidResponse);\n sinon.assert.calledOnce(done);\n\n expect(addBidResponse.firstCall.args[0]).to.equal('div-gpt-ad-1460505748561-0');\n\n expect(addBidResponse.firstCall.args[1]).to.have.property('requestId', '123');\n });\n\n it('should have dealId in bidObject', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('dealId', 'test-dealid');\n });\n\n if (FEATURES.VIDEO) {\n it('should pass through default adserverTargeting if present in bidObject for video request', function () {\n config.setConfig({ s2sConfig: CONFIG });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB);\n const targetingTestData = {\n hb_cache_path: '/cache',\n hb_cache_host: 'prebid-cache.testurl.com'\n };\n\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.targeting = targetingTestData\n });\n adapter.callBids(VIDEO_REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('adserverTargeting');\n expect(response.adserverTargeting).to.deep.equal({\n 'hb_cache_path': '/cache',\n 'hb_cache_host': 'prebid-cache.testurl.com'\n });\n });\n }\n\n it('should set the bidResponse currency to whats in the PBS response', function () {\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n sinon.assert.calledOnce(addBidResponse);\n const pbjsResponse = addBidResponse.firstCall.args[1];\n expect(pbjsResponse).to.have.property('currency', 'EUR');\n });\n\n it('should set the default bidResponse currency when not specified in OpenRTB', function () {\n const modifiedResponse = utils.deepClone(RESPONSE_OPENRTB);\n modifiedResponse.cur = '';\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(modifiedResponse));\n sinon.assert.calledOnce(addBidResponse);\n const pbjsResponse = addBidResponse.firstCall.args[1];\n expect(pbjsResponse).to.have.property('currency', 'USD');\n });\n\n it('should pass through default adserverTargeting if present in bidObject for banner request', function () {\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB);\n\n const targetingTestData = {\n 'foo': 'bar'\n };\n\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.targeting = targetingTestData\n });\n\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('adserverTargeting').that.deep.equals({ 'foo': 'bar' });\n });\n\n it('registers client user syncs when client bid adapter is present', function () {\n const rubiconAdapter = {\n registerSyncs: sinon.spy()\n };\n sinon.stub(adapterManager, 'getBidAdapter').callsFake(() => rubiconAdapter);\n\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_NO_PBS_COOKIE));\n\n sinon.assert.calledOnce(rubiconAdapter.registerSyncs);\n\n adapterManager.getBidAdapter.restore();\n });\n\n it('registers client user syncs when using OpenRTB endpoint', function () {\n const rubiconAdapter = {\n registerSyncs: sinon.spy()\n };\n sinon.stub(adapterManager, 'getBidAdapter').returns(rubiconAdapter);\n\n config.setConfig({ CONFIG });\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n sinon.assert.calledOnce(rubiconAdapter.registerSyncs);\n\n adapterManager.getBidAdapter.restore();\n });\n\n it('handles OpenRTB responses and call BIDDER_DONE', function () {\n config.setConfig({ CONFIG });\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n sinon.assert.calledTwice(events.emit);\n const event = events.emit.secondCall.args;\n expect(event[0]).to.equal(EVENTS.BIDDER_DONE);\n expect(event[1].bids[0]).to.have.property('serverResponseTimeMs', 8);\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('bidderCode', 'appnexus');\n expect(response).to.have.property('requestId', '123');\n expect(response).to.have.property('cpm', 0.5);\n expect(response).to.have.property('meta');\n expect(response.meta).to.have.property('advertiserDomains');\n expect(response.meta.advertiserDomains[0]).to.equal('appnexus.com');\n expect(response.meta).to.have.property('dchain');\n expect(response.meta.dchain.ver).to.equal('1.0');\n expect(response.meta.dchain.nodes[0].asi).to.equal('magnite.com');\n expect(response).to.not.have.property('vastUrl');\n expect(response).to.not.have.property('videoCacheKey');\n expect(response).to.have.property('ttl', 60);\n });\n\n it('handles seatnonbid responses and emits SEAT_NON_BID', function () {\n const original = CONFIG;\n CONFIG.extPrebid = { returnallbidstatus: true };\n const nonbidResponse = {...RESPONSE_OPENRTB, ext: {seatnonbid: [{}]}};\n config.setConfig({ CONFIG });\n CONFIG = original;\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const responding = deepClone(nonbidResponse);\n Object.assign(responding.ext.seatnonbid, [{auctionId: 2}])\n server.requests[0].respond(200, {}, JSON.stringify(responding));\n const event = events.emit.thirdCall.args;\n expect(event[0]).to.equal(EVENTS.SEAT_NON_BID);\n expect(event[1].seatnonbid[0]).to.have.property('auctionId', 2);\n expect(event[1].requestedBidders).to.deep.equal(['appnexus']);\n expect(event[1].response).to.deep.equal(responding);\n });\n\n it('emits the PBS_ANALYTICS event and captures seatnonbid responses', function () {\n const original = CONFIG;\n CONFIG.extPrebid = { returnallbidstatus: true };\n const nonbidResponse = {...RESPONSE_OPENRTB, ext: {seatnonbid: [{}]}};\n config.setConfig({ CONFIG });\n CONFIG = original;\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const responding = deepClone(nonbidResponse);\n Object.assign(responding.ext.seatnonbid, [{auctionId: 2}])\n server.requests[0].respond(200, {}, JSON.stringify(responding));\n const event = events.emit.getCall(3).args;\n expect(event[0]).to.equal(EVENTS.PBS_ANALYTICS);\n expect(event[1].seatnonbid[0]).to.have.property('auctionId', 2);\n expect(event[1].requestedBidders).to.deep.equal(['appnexus']);\n expect(event[1].response).to.deep.equal(responding);\n });\n\n it('emits the PBS_ANALYTICS event and captures atag responses', function () {\n const original = CONFIG;\n CONFIG.extPrebid = { returnallbidstatus: true };\n const atagResponse = {...RESPONSE_OPENRTB, ext: {prebid: {analytics: {tags: ['data']}}}};\n config.setConfig({ CONFIG });\n CONFIG = original;\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const responding = deepClone(atagResponse);\n Object.assign(responding.ext.prebid.analytics.tags, ['stuff'])\n server.requests[0].respond(200, {}, JSON.stringify(responding));\n const event = events.emit.thirdCall.args;\n expect(event[0]).to.equal(EVENTS.PBS_ANALYTICS);\n expect(event[1].atag[0]).to.deep.equal('stuff');\n expect(event[1].response).to.deep.equal(responding);\n });\n\n it('emits the BEFORE_PBS_HTTP event and captures responses', function () {\n config.setConfig({ CONFIG });\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n sinon.assert.calledTwice(events.emit);\n const event = events.emit.firstCall.args;\n expect(event[0]).to.equal(EVENTS.BEFORE_PBS_HTTP);\n expect(event[1]).to.have.property('requestJson', server.requests[0].requestBody);\n expect(event[1]).to.have.property('endpointUrl', CONFIG.endpoint.p1Consent);\n expect(event[1].customHeaders).to.deep.equal({});\n });\n\n it('respects defaultTtl', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n defaultTtl: 30\n });\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n sinon.assert.calledTwice(events.emit);\n const event = events.emit.firstCall.args;\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('ttl', 30);\n });\n\n if (FEATURES.VIDEO) {\n it('handles OpenRTB video responses', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB_VIDEO));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('vastXml', RESPONSE_OPENRTB_VIDEO.seatbid[0].bid[0].adm);\n expect(response).to.have.property('mediaType', 'video');\n expect(response).to.have.property('bidderCode', 'appnexus');\n expect(response).to.have.property('requestId', '123');\n expect(response).to.have.property('cpm', 10);\n });\n\n it('handles response cache from ext.prebid.cache.vastXml', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB_VIDEO);\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.cache = {\n vastXml: {\n cacheId: 'abcd1234',\n url: 'https://prebid-cache.net/cache?uuid=abcd1234'\n }\n }\n });\n\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n\n expect(response).to.have.property('videoCacheKey', 'abcd1234');\n expect(response).to.have.property('vastUrl', 'https://prebid-cache.net/cache?uuid=abcd1234');\n });\n }\n\n it('add adserverTargeting object to bids when ext.prebid.targeting is defined', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB_VIDEO);\n const targetingTestData = {\n hb_cache_path: '/cache',\n hb_cache_host: 'prebid-cache.testurl.com'\n };\n\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.targeting = targetingTestData\n });\n\n if (FEATURES.VIDEO) {\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n\n expect(response).to.have.property('adserverTargeting');\n expect(response.adserverTargeting).to.deep.equal({\n 'hb_cache_path': '/cache',\n 'hb_cache_host': 'prebid-cache.testurl.com'\n });\n }\n });\n\n it('handles response cache from ext.prebid.targeting', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB_VIDEO);\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.targeting = {\n hb_uuid: 'a5ad3993',\n hb_cache_host: 'prebid-cache.net',\n hb_cache_path: '/cache'\n }\n });\n\n if (FEATURES.VIDEO) {\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n\n expect(response).to.have.property('videoCacheKey', 'a5ad3993');\n expect(response).to.have.property('vastUrl', 'https://prebid-cache.net/cache?uuid=a5ad3993');\n }\n });\n\n it('handles response cache from ext.prebid.targeting with wurl', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB_VIDEO);\n cacheResponse.seatbid.forEach(item => {\n item.bid[0].ext.prebid.events = {\n win: 'https://wurl.com?a=1&b=2'\n };\n item.bid[0].ext.prebid.targeting = {\n hb_uuid: 'a5ad3993',\n hb_cache_host: 'prebid-cache.net',\n hb_cache_path: '/cache'\n }\n });\n\n if (FEATURES.VIDEO) {\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('pbsBidId', '654321');\n }\n });\n\n it('add request property pbsBidId with ext.prebid.bidid value', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({ s2sConfig });\n const cacheResponse = utils.deepClone(RESPONSE_OPENRTB_VIDEO);\n\n if (FEATURES.VIDEO) {\n const s2sVidRequest = utils.deepClone(VIDEO_REQUEST);\n s2sVidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sVidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(cacheResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n\n expect(response).to.have.property('pbsBidId', '654321');\n }\n });\n\n if (FEATURES.NATIVE) {\n it('handles OpenRTB native responses', function () {\n const stub = sinon.stub(auctionManager, 'index');\n stub.get(() => stubAuctionIndex({adUnits: REQUEST.ad_units}));\n const s2sConfig = Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebidserverurl/openrtb2/auction?querystring=param'\n }\n });\n config.setConfig({s2sConfig});\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n adapter.callBids(s2sBidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB_NATIVE));\n\n sinon.assert.calledOnce(addBidResponse);\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('adm').deep.equal(RESPONSE_OPENRTB_NATIVE.seatbid[0].bid[0].adm);\n expect(response).to.have.property('mediaType', 'native');\n expect(response).to.have.property('bidderCode', 'appnexus');\n expect(response).to.have.property('requestId', '123');\n expect(response).to.have.property('cpm', 10);\n\n stub.restore();\n });\n }\n\n it('should reject invalid bids', () => {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const response = deepClone(RESPONSE_OPENRTB);\n Object.assign(response.seatbid[0].bid[0], {w: null, h: null});\n server.requests[0].respond(200, {}, JSON.stringify(response));\n expect(addBidResponse.reject.calledOnce).to.be.true;\n expect(addBidResponse.called).to.be.false;\n });\n\n it('does not (by default) allow bids that were not requested', function () {\n config.setConfig({ s2sConfig: CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n const response = deepClone(RESPONSE_OPENRTB);\n response.seatbid[0].seat = 'unknown';\n server.requests[0].respond(200, {}, JSON.stringify(response));\n\n expect(addBidResponse.called).to.be.false;\n expect(addBidResponse.reject.calledOnce).to.be.true;\n });\n\n it('allows unrequested bids if config.allowUnknownBidderCodes', function () {\n const cfg = { ...CONFIG, allowUnknownBidderCodes: true };\n config.setConfig({ s2sConfig: cfg });\n adapter.callBids({ ...REQUEST, s2sConfig: cfg }, BID_REQUESTS, addBidResponse, done, ajax);\n const response = deepClone(RESPONSE_OPENRTB);\n response.seatbid[0].seat = 'unknown';\n server.requests[0].respond(200, {}, JSON.stringify(response));\n\n expect(addBidResponse.calledWith(sinon.match.any, sinon.match({ bidderCode: 'unknown' }))).to.be.true;\n });\n\n describe('stored impressions', () => {\n let bidReq, response;\n\n function mks2sReq(s2sConfig = CONFIG) {\n return {...REQUEST, s2sConfig, ad_units: [{...REQUEST.ad_units[0], bids: [{bidder: null, bid_id: 'testId'}]}]};\n }\n\n beforeEach(() => {\n bidReq = {...BID_REQUESTS[0], bidderCode: null, bids: [{...BID_REQUESTS[0].bids[0], bidder: null, bidId: 'testId'}]}\n response = deepClone(RESPONSE_OPENRTB);\n response.seatbid[0].seat = 'storedImpression';\n })\n\n it('uses \"null\" request\\'s ID for all responses, when a null request is present', function () {\n const cfg = {...CONFIG, allowUnknownBidderCodes: true};\n config.setConfig({s2sConfig: cfg});\n adapter.callBids(mks2sReq(cfg), [bidReq], addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(response));\n sinon.assert.calledWith(addBidResponse, sinon.match.any, sinon.match({bidderCode: 'storedImpression', requestId: 'testId'}))\n });\n\n it('does not allow null requests (= stored impressions) if allowUnknownBidderCodes is not set', () => {\n config.setConfig({s2sConfig: CONFIG});\n adapter.callBids(mks2sReq(), [bidReq], addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(response));\n expect(addBidResponse.called).to.be.false;\n expect(addBidResponse.reject.calledOnce).to.be.true;\n });\n })\n\n it('copies ortb2Imp to response when there is only a null bid', () => {\n const cfg = {...CONFIG};\n config.setConfig({s2sConfig: cfg});\n const ortb2Imp = {ext: {prebid: {storedrequest: 'value'}}};\n const req = {...REQUEST, s2sConfig: cfg, ad_units: [{...REQUEST.ad_units[0], bids: [{bidder: null, bid_id: 'testId'}], ortb2Imp}]};\n const bidReq = {...BID_REQUESTS[0], bidderCode: null, bids: [{...BID_REQUESTS[0].bids[0], bidder: null, bidId: 'testId'}]}\n adapter.callBids(req, [bidReq], addBidResponse, done, ajax);\n const actual = JSON.parse(server.requests[0].requestBody);\n sinon.assert.match(actual.imp[0], sinon.match(ortb2Imp));\n });\n\n it('setting adapterCode for default bidder', function () {\n config.setConfig({ CONFIG });\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('adapterCode', 'appnexus');\n });\n\n it('setting adapterCode for alternate bidder', function () {\n config.setConfig({ CONFIG });\n const RESPONSE_OPENRTB2 = deepClone(RESPONSE_OPENRTB);\n RESPONSE_OPENRTB2.seatbid[0].bid[0].ext.prebid.meta.adaptercode = 'appnexus2'\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB2));\n\n const response = addBidResponse.firstCall.args[1];\n expect(response).to.have.property('adapterCode', 'appnexus2');\n });\n\n it('should set deferBilling and deferRendering to true when request has deferBilling = true', () => {\n config.setConfig({ CONFIG });\n const req = deepClone(REQUEST);\n req.ad_units.forEach(au => au.deferBilling = true);\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(RESPONSE_OPENRTB));\n sinon.assert.match(addBidResponse.firstCall.args[1], {\n deferBilling: true,\n deferRendering: true\n });\n });\n\n describe('on sync requested with no cookie', () => {\n let cfg, req, csRes;\n\n beforeEach(() => {\n cfg = utils.deepClone(CONFIG);\n req = utils.deepClone(REQUEST);\n cfg.syncEndpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync' };\n req.s2sConfig = cfg;\n config.setConfig({ s2sConfig: cfg });\n csRes = utils.deepClone(RESPONSE_NO_COOKIE);\n });\n\n afterEach(() => {\n resetSyncedStatus();\n })\n\n Object.entries({\n iframe: () => utils.insertUserSyncIframe,\n image: () => utils.triggerPixel,\n }).forEach(([type, syncer]) => {\n it(`passes timeout to ${type} syncs`, () => {\n cfg.syncTimeout = 123;\n csRes.bidder_status[0].usersync.type = type;\n adapter.callBids(req, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(csRes));\n expect(syncer().args[0]).to.include.members([123]);\n });\n });\n });\n describe('when the response contains ext.prebid.fledge', () => {\n const AU = 'div-gpt-ad-1460505748561-0';\n const FLEDGE_RESP = {\n ext: {\n prebid: {\n fledge: {\n auctionconfigs: [\n {\n impid: AU,\n bidder: 'appnexus',\n config: {\n id: 1\n }\n },\n {\n impid: AU,\n bidder: 'other',\n config: {\n id: 2\n }\n }\n ]\n }\n }\n }\n }\n\n let fledgeStub, request, bidderRequests;\n\n function fledgeHook(next, ...args) {\n fledgeStub(...args);\n }\n\n before(() => {\n addPaapiConfig.before(fledgeHook);\n });\n\n after(() => {\n addPaapiConfig.getHooks({hook: fledgeHook}).remove();\n })\n\n beforeEach(function () {\n fledgeStub = sinon.stub();\n config.setConfig({\n s2sConfig: CONFIG,\n });\n bidderRequests = deepClone(BID_REQUESTS);\n bidderRequests.forEach(req => {\n Object.assign(req, {\n paapi: {\n enabled: true\n },\n ortb2: {\n fpd: 1\n }\n })\n req.bids.forEach(bid => {\n Object.assign(bid, {\n ortb2Imp: {\n fpd: 2,\n }\n })\n })\n });\n request = deepClone(REQUEST);\n request.ad_units.forEach(au => deepSetValue(au, 'ortb2Imp.ext.ae', 1));\n });\n\n function expectFledgeCalls() {\n const auctionId = bidderRequests[0].auctionId;\n sinon.assert.calledWith(fledgeStub, sinon.match({auctionId, adUnitCode: AU, ortb2: bidderRequests[0].ortb2, ortb2Imp: bidderRequests[0].bids[0].ortb2Imp}), sinon.match({config: {id: 1}}))\n sinon.assert.calledWith(fledgeStub, sinon.match({auctionId, adUnitCode: AU, ortb2: undefined, ortb2Imp: undefined}), sinon.match({config: {id: 2}}))\n }\n\n it('calls addPaapiConfig alongside addBidResponse', function () {\n adapter.callBids(request, bidderRequests, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(mergeDeep({}, RESPONSE_OPENRTB, FLEDGE_RESP)));\n expect(addBidResponse.called).to.be.true;\n expectFledgeCalls();\n });\n\n it('calls addPaapiConfig when there is no bid in the response', () => {\n adapter.callBids(request, bidderRequests, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(FLEDGE_RESP));\n expect(addBidResponse.called).to.be.false;\n expectFledgeCalls();\n });\n\n it('wraps call in runWithBidder', () => {\n let fail = false;\n fledgeStub.callsFake(({bidder}) => {\n try {\n expect(bidder).to.exist.and.to.eql(config.getCurrentBidder());\n } catch (e) {\n fail = true;\n }\n });\n adapter.callBids(request, bidderRequests, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(FLEDGE_RESP));\n expect(fail).to.be.false;\n })\n });\n });\n\n describe('bid won events', function () {\n let uniqueIdCount = 0;\n let triggerPixelStub;\n const staticUniqueIds = ['1000', '1001', '1002', '1003'];\n\n before(function () {\n triggerPixelStub = sinon.stub(utils, 'triggerPixel');\n });\n\n beforeEach(function () {\n sinon.stub(utils, 'insertUserSyncIframe');\n sinon.stub(utils, 'logError');\n sinon.stub(utils, 'getUniqueIdentifierStr').callsFake(() => {\n uniqueIdCount++;\n return staticUniqueIds[uniqueIdCount - 1];\n });\n triggerPixelStub.resetHistory();\n\n config.setConfig({\n s2sConfig: Object.assign({}, CONFIG, {\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n })\n });\n });\n\n afterEach(function () {\n utils.triggerPixel.resetHistory();\n utils.insertUserSyncIframe.restore();\n utils.logError.restore();\n utils.getUniqueIdentifierStr.restore();\n uniqueIdCount = 0;\n });\n\n after(function () {\n triggerPixelStub.restore();\n });\n\n it('should translate wurl and burl into eventtrackers', () => {\n const burlEvent = {event: 1, method: 1, url: 'burl'};\n const winEvent = {event: 500, method: 1, url: 'events.win'};\n const trackerEvent = {event: 500, method: 1, url: 'eventtracker'};\n\n const resp = utils.deepClone(RESPONSE_OPENRTB);\n resp.seatbid[0].bid[0].ext.eventtrackers = [\n trackerEvent,\n burlEvent\n ]\n resp.seatbid[0].bid[0].ext.prebid.events = {\n win: winEvent.url\n };\n resp.seatbid[0].bid[0].burl = burlEvent.url;\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(resp));\n expect(addBidResponse.getCall(0).args[1].eventtrackers).to.have.deep.members([\n burlEvent, trackerEvent, winEvent\n ]);\n })\n\n it('should call triggerPixel if wurl is defined', function () {\n const clonedResponse = utils.deepClone(RESPONSE_OPENRTB);\n clonedResponse.seatbid[0].bid[0].ext.prebid.events = {\n win: 'https://wurl.org'\n };\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(clonedResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n markWinningBid(addBidResponse.getCall(0).args[1]);\n\n expect(utils.triggerPixel.called).to.be.true;\n expect(utils.triggerPixel.getCall(0).args[0]).to.include('https://wurl.org');\n });\n\n it('should not call triggerPixel if wurl is undefined', function () {\n const clonedResponse = utils.deepClone(RESPONSE_OPENRTB);\n clonedResponse.seatbid[0].bid[0].ext.prebid.events = {};\n\n adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);\n server.requests[0].respond(200, {}, JSON.stringify(clonedResponse));\n\n sinon.assert.calledOnce(addBidResponse);\n markWinningBid(addBidResponse.getCall(0).args[1]);\n expect(utils.triggerPixel.called).to.be.false;\n });\n })\n\n describe('s2sConfig', function () {\n let logErrorSpy;\n\n beforeEach(function () {\n logErrorSpy = sinon.spy(utils, 'logError');\n resetSyncedStatus();\n });\n\n afterEach(function () {\n utils.logError.restore();\n });\n\n it('should log an error when accountId is missing', function () {\n const options = {\n enabled: true,\n bidders: ['appnexus'],\n timeout: 1000,\n adapter: 'prebidServer',\n endpoint: {\n p1Consent: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'\n }\n };\n\n config.setConfig({ s2sConfig: options });\n sinon.assert.calledOnce(logErrorSpy);\n });\n\n it('should log an error when endpoint is missing', function () {\n const options = {\n accountId: '1',\n bidders: ['appnexus'],\n timeout: 1000,\n enabled: true,\n adapter: 'prebidServer'\n };\n\n config.setConfig({ s2sConfig: options });\n sinon.assert.calledOnce(logErrorSpy);\n });\n\n it('should log an error when using an unknown vendor', function () {\n const options = {\n accountId: '1',\n bidders: ['appnexus'],\n defaultVendor: 'mytest'\n };\n\n config.setConfig({ s2sConfig: options });\n sinon.assert.calledOnce(logErrorSpy);\n });\n\n it('should set adapterOptions', function () {\n config.setConfig({\n s2sConfig: {\n adapterOptions: {\n rubicon: {\n singleRequest: true,\n foo: 'bar'\n }\n }\n }\n });\n expect(config.getConfig('s2sConfig').adapterOptions).to.deep.equal({\n rubicon: {\n singleRequest: true,\n foo: 'bar'\n }\n })\n });\n\n it('should set default s2s ttl', function () {\n config.setConfig({\n s2sConfig: {\n defaultTtl: 30\n }\n });\n expect(config.getConfig('s2sConfig').defaultTtl).to.deep.equal(30);\n });\n\n it('should set syncUrlModifier', function () {\n config.setConfig({\n s2sConfig: {\n syncUrlModifier: {\n appnexus: () => {\n }\n }\n }\n });\n expect(typeof config.getConfig('s2sConfig').syncUrlModifier.appnexus).to.equal('function')\n });\n\n Object.entries({\n 'an alias'() {\n adapterManager.aliasBidAdapter('rubicon', 'rubicon-alias');\n },\n 'a server side alias'(s2sConfig) {\n s2sConfig.extPrebid = {\n aliases: {\n 'rubicon-alias': 'rubicon'\n }\n }\n }\n }).forEach(([t, setupAlias]) => {\n describe(`when using ${t}`, () => {\n afterEach(() => {\n delete adapterManager.aliasRegistry['rubicon-alias'];\n });\n it(`should set correct bidder names to bidders property`, function () {\n const s2sConfig = utils.deepClone(CONFIG);\n\n // Add syncEndpoint so that the request goes to the User Sync endpoint\n // Modify the bidders property to include an alias for Rubicon adapter\n s2sConfig.syncEndpoint = {p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync'};\n s2sConfig.bidders = ['appnexus', 'rubicon-alias'];\n\n setupAlias(s2sConfig);\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n // Add another bidder, `rubicon-alias`\n s2sBidRequest.ad_units[0].bids.push({\n bidder: 'rubicon-alias',\n params: {\n accoundId: 14062,\n siteId: 70608,\n zoneId: 498816\n }\n });\n\n const bidRequest = utils.deepClone(BID_REQUESTS);\n bidRequest.push({\n 'bidderCode': 'rubicon-alias',\n 'auctionId': '4146ab2b-9422-4040-9b1c-966fffbfe2d4',\n 'bidderRequestId': '4b1a4f9c3e4546',\n 'tid': 'd7fa8342-ae22-4ca1-b237-331169350f84',\n 'bids': [\n {\n 'bidder': 'rubicon-alias',\n 'params': {\n 'accountId': 14062,\n 'siteId': 70608,\n 'zoneId': 498816\n },\n 'bid_id': '2a9523915411c3',\n 'mediaTypes': {\n 'banner': {\n 'sizes': [\n [\n 300,\n 250\n ]\n ]\n }\n },\n 'adUnitCode': 'div-gpt-ad-1460505748561-0',\n 'transactionId': '78ddc106-b7d8-45d1-bd29-86993098e53d',\n 'sizes': [\n [\n 300,\n 250\n ]\n ],\n 'bidId': '2a9523915411c3',\n 'bidderRequestId': '4b1a4f9c3e4546',\n 'auctionId': '4146ab2b-9422-4040-9b1c-966fffbfe2d4'\n }\n ],\n 'auctionStart': 1569234122602,\n 'timeout': 1000,\n 'src': 's2s'\n });\n\n adapter.callBids(s2sBidRequest, bidRequest, addBidResponse, done, ajax);\n\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.bidders).to.deep.equal(['appnexus', 'rubicon']);\n });\n });\n });\n\n it('should add cooperative sync flag to cookie_sync request if property is present', function () {\n const s2sConfig = utils.deepClone(CONFIG);\n s2sConfig.coopSync = false;\n s2sConfig.syncEndpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync' };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n const bidRequest = utils.deepClone(BID_REQUESTS);\n\n adapter.callBids(s2sBidRequest, bidRequest, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.coopSync).to.equal(false);\n });\n\n it('should not add cooperative sync flag to cookie_sync request if property is not present', function () {\n const s2sConfig = utils.deepClone(CONFIG);\n s2sConfig.syncEndpoint = { p1Consent: 'https://prebid.adnxs.com/pbs/v1/cookie_sync' };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n\n const bidRequest = utils.deepClone(BID_REQUESTS);\n\n adapter.callBids(s2sBidRequest, bidRequest, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.coopSync).to.be.undefined;\n });\n\n it('should set imp banner if ortb2Imp.banner is present', function () {\n const consentConfig = { s2sConfig: CONFIG };\n config.setConfig(consentConfig);\n const bidRequest = utils.deepClone(REQUEST);\n bidRequest.ad_units[0].ortb2Imp = {\n banner: {\n api: 7\n },\n instl: 1\n };\n\n adapter.callBids(bidRequest, BID_REQUESTS, addBidResponse, done, ajax);\n const parsedRequestBody = JSON.parse(server.requests[0].requestBody);\n\n expect(parsedRequestBody.imp[0].banner.api).to.equal(7);\n expect(parsedRequestBody.imp[0].instl).to.equal(1);\n });\n\n it('adds debug flag', function () {\n config.setConfig({ debug: true });\n\n const bidRequest = utils.deepClone(BID_REQUESTS);\n\n adapter.callBids(REQUEST, bidRequest, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.ext.prebid.debug).is.equal(true);\n });\n\n it('should correctly add floors flag', function () {\n const bidRequest = utils.deepClone(BID_REQUESTS);\n\n // should not pass if floorData is undefined\n adapter.callBids(REQUEST, bidRequest, addBidResponse, done, ajax);\n let requestBid = JSON.parse(server.requests[0].requestBody);\n\n expect(requestBid.ext.prebid.floors).to.be.undefined;\n\n config.setConfig({floors: {}});\n\n adapter.callBids(REQUEST, bidRequest, addBidResponse, done, ajax);\n requestBid = JSON.parse(server.requests[1].requestBody);\n\n expect(requestBid.ext.prebid.floors).to.deep.equal({ enabled: false });\n });\n\n it('should override prebid server default DEFAULT_S2S_CURRENCY', function () {\n config.setConfig({\n currency: { adServerCurrency: 'JPY' },\n });\n\n const bidRequests = utils.deepClone(BID_REQUESTS);\n adapter.callBids(REQUEST, bidRequests, addBidResponse, done, ajax);\n\n const parsedRequestBody = JSON.parse(server.requests[1].requestBody);\n expect(parsedRequestBody.cur).to.deep.equal(['JPY']);\n });\n\n it('should correctly set the floorMin key when multiple bids with various bidfloors exist', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n floors: {\n enabled: true\n }\n },\n bidders: ['b1', 'b2']\n });\n\n const bidderRequests = [\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b1',\n bids: [{\n bidder: 'b1',\n bidId: 1,\n getFloor: () => ({\n currency: 'US',\n floor: 1.23\n })\n }]\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b2',\n bids: [{\n bidder: 'b2',\n bidId: 2,\n getFloor: () => ({\n currency: 'EUR',\n floor: 3.21\n })\n }],\n }\n ];\n\n const adUnits = [\n {\n code: 'au1',\n transactionId: 't1',\n mediaTypes: {\n banner: {sizes: [1, 1]}\n },\n bids: [{bidder: 'b1', bid_id: 1}]\n },\n {\n code: 'au2',\n transactionId: 't2',\n bids: [{bidder: 'b2', bid_id: 2}],\n mediaTypes: {\n banner: {sizes: [1, 1]}\n }\n }\n ];\n\n const _config = {\n s2sConfig: s2sConfig,\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n s2sBidRequest.ad_units = adUnits;\n config.setConfig(_config);\n\n adapter.callBids(s2sBidRequest, bidderRequests, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.imp[0].bidfloor).to.equal(1.23);\n expect(requestBid.imp[1].bidfloor).to.equal(3.21);\n\n // first imp floorCur should be set\n expect(requestBid.ext.prebid.floors).to.deep.equal({ enabled: true, floorMin: 1.23, floorMinCur: 'US' });\n });\n\n it('should correctly set the floorMin key when multiple bids with various bidfloors exist and ortb2Imp contains the lowest floorMin', function () {\n const s2sConfig = Object.assign({}, CONFIG, {\n extPrebid: {\n floors: {\n enabled: true\n }\n },\n bidders: ['b1', 'b2']\n });\n\n const bidderRequests = [\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b1',\n bids: [{\n bidder: 'b1',\n bidId: 1,\n getFloor: () => ({\n currency: 'CUR',\n floor: 1.23\n })\n }]\n },\n {\n ...BID_REQUESTS[0],\n bidderCode: 'b2',\n bids: [{\n bidder: 'b2',\n bidId: 2,\n getFloor: () => ({\n currency: 'CUR',\n floor: 3.21\n })\n }],\n }\n ];\n\n const adUnits = [\n {\n code: 'au1',\n transactionId: 't1',\n mediaTypes: {\n banner: {sizes: [1, 1]}\n },\n bids: [{bidder: 'b1', bid_id: 1}]\n },\n {\n code: 'au2',\n transactionId: 't2',\n bids: [{bidder: 'b2', bid_id: 2}],\n mediaTypes: {\n banner: {sizes: [1, 1]}\n },\n ortb2Imp: {\n ext: {\n prebid: {\n floors: {\n floorMin: 1\n }\n }\n }\n }\n }\n ];\n\n const _config = {\n s2sConfig: s2sConfig,\n };\n\n const s2sBidRequest = utils.deepClone(REQUEST);\n s2sBidRequest.s2sConfig = s2sConfig;\n s2sBidRequest.ad_units = adUnits;\n config.setConfig(_config);\n\n adapter.callBids(s2sBidRequest, bidderRequests, addBidResponse, done, ajax);\n const requestBid = JSON.parse(server.requests[0].requestBody);\n expect(requestBid.imp[0].bidfloor).to.equal(1.23);\n expect(requestBid.imp[1].bidfloor).to.equal(3.21);\n\n expect(requestBid.ext.prebid.floors).to.deep.equal({ enabled: true, floorMin: 1, floorMinCur: 'CUR' });\n });\n });\n\n describe('getPBSBidderConfig', () => {\n [\n {\n t: 'does not alter config when there are no conflicts',\n global: {\n k1: 'val'\n },\n bidder: {\n bidderA: {\n k2: 'val'\n }\n },\n expected: {\n bidderA: {\n k2: 'val'\n }\n }\n },\n {\n t: 'uses bidder config on type mismatch (scalar/object)',\n global: {\n k1: 'val',\n k2: 'val'\n },\n bidder: {\n bidderA: {\n k1: {k3: 'val'}\n }\n },\n expected: {\n bidderA: {\n k1: {k3: 'val'}\n }\n }\n },\n {\n t: 'uses bidder config on type mismatch (array/object)',\n global: {\n k: [1, 2]\n },\n bidder: {\n bidderA: {\n k: {inner: 'val'}\n }\n },\n expected: {\n bidderA: {\n k: {inner: 'val'}\n }\n }\n },\n {\n t: 'uses bidder config on type mismatch (object/array)',\n global: {\n k: {inner: 'val'}\n },\n bidder: {\n bidderA: {\n k: [1, 2]\n }\n },\n expected: {\n bidderA: {\n k: [1, 2]\n }\n }\n },\n {\n t: 'uses bidder config on type mismatch (array/null)',\n global: {\n k: [1, 2]\n },\n bidder: {\n bidderA: {\n k: null\n }\n },\n expected: {\n bidderA: {\n k: null\n }\n }\n },\n {\n t: 'uses bidder config on type mismatch (null/array)',\n global: {},\n bidder: {\n bidderA: {\n k: [1, 2]\n }\n },\n expected: {\n bidderA: {\n k: [1, 2]\n }\n }\n },\n {\n t: 'concatenates arrays',\n global: {\n key: 'value',\n array: [1]\n },\n bidder: {\n bidderA: {\n array: [2]\n }\n },\n expected: {\n bidderA: {\n array: [1, 2]\n }\n }\n },\n {\n t: 'concatenates nested arrays',\n global: {\n nested: {\n array: [1]\n }\n },\n bidder: {\n bidderA: {\n key: 'value',\n nested: {\n array: [2]\n }\n }\n },\n expected: {\n bidderA: {\n key: 'value',\n nested: {\n array: [1, 2]\n }\n }\n }\n },\n {\n t: 'does not repeat equal elements',\n global: {\n array: [{id: 1}]\n },\n bidder: {\n bidderA: {\n array: [{id: 1}, {id: 2}]\n }\n },\n expected: {\n bidderA: {\n array: [{id: 1}, {id: 2}]\n }\n }\n }\n ].forEach(({t, global, bidder, expected}) => {\n it(t, () => {\n expect(getPBSBidderConfig({global, bidder})).to.eql(expected);\n })\n })\n });\n describe('EID handling', () => {\n function mkEid(source, value = source) {\n return {source, value};\n }\n\n function eidEntry(source, value = source, bidders = false) {\n return {eid: {source, value}, bidders};\n }\n\n describe('extractEids', () => {\n [\n {\n t: 'no bidder-specific eids',\n global: {\n user: {\n ext: {\n eids: [\n mkEid('idA', 'id1'),\n mkEid('idA', 'id2')\n ]\n },\n eids: [mkEid('idB')]\n }\n },\n expected: {\n eids: [\n eidEntry('idA', 'id1'),\n eidEntry('idA', 'id2'),\n eidEntry('idB')\n ],\n conflicts: ['idA']\n }\n },\n {\n t: 'bidder-specific eids',\n global: {\n user: {\n eids: [\n mkEid('idA')\n ]\n },\n },\n bidder: {\n bidderA: {\n user: {\n ext: {\n eids: [\n mkEid('idB')\n ]\n }\n }\n }\n },\n expected: {\n eids: [\n eidEntry('idA'),\n eidEntry('idB', 'idB', ['bidderA'])\n ]\n }\n },\n {\n t: 'conflicting bidder-specific eids',\n global: {\n user: {\n eids: [mkEid('idA', 'idA1')]\n },\n },\n bidder: {\n bidderA: {\n user: {\n eids: [mkEid('idA', 'idA2'), mkEid('idB', 'idB1'), mkEid('idD')]\n },\n },\n bidderB: {\n user: {\n ext: {\n eids: [mkEid('idB', 'idB2'), mkEid('idC'), mkEid('idD')]\n }\n }\n },\n },\n expected: {\n eids: [\n eidEntry('idA', 'idA1'),\n eidEntry('idA', 'idA2', ['bidderA']),\n eidEntry('idB', 'idB1', ['bidderA']),\n eidEntry('idB', 'idB2', ['bidderB']),\n eidEntry('idC', 'idC', ['bidderB']),\n eidEntry('idD', 'idD', ['bidderA', 'bidderB'])\n ],\n conflicts: ['idA', 'idB']\n }\n },\n {\n t: 'duplicated bidder-specific eids',\n bidder: {\n bidderA: {\n user: {\n eids: [mkEid('id'), mkEid('id')]\n }\n }\n },\n expected: {\n eids: [\n eidEntry('id', 'id', ['bidderA'])\n ]\n }\n }\n ].forEach(({t, global = {}, bidder = {}, expected}) => {\n it(t, () => {\n const {eids, conflicts} = extractEids({global, bidder});\n expect(eids).to.have.deep.members(expected.eids);\n expect(Array.from(conflicts)).to.have.members(expected.conflicts || []);\n })\n });\n });\n describe('consolidateEids', () => {\n it('returns global EIDs without permissions', () => {\n expect(consolidateEids({\n eids: [eidEntry('idA'), eidEntry('idB')]\n })).to.eql({\n global: [mkEid('idA'), mkEid('idB')],\n permissions: [],\n bidder: {}\n })\n });\n\n it('returns conflicting, but global EIDs', () => {\n expect(consolidateEids({\n eids: [eidEntry('idA', 'idA1'), eidEntry('idA', 'idA2')],\n conflicts: new Set(['idA'])\n })).to.eql({\n global: [mkEid('idA', 'idA1'), mkEid('idA', 'idA2')],\n permissions: [],\n bidder: {}\n })\n })\n\n it('sets permissions for bidder-speficic EIDS', () => {\n expect(consolidateEids({\n eids: [\n eidEntry('idA'),\n eidEntry('idB', 'idB', ['bidderB'])\n ]\n })).to.eql({\n global: [mkEid('idA'), mkEid('idB')],\n permissions: [{source: 'idB', bidders: ['bidderB']}],\n bidder: {}\n })\n })\n\n it('does not consolidate conflicting bidder-specific EIDs', () => {\n expect(consolidateEids({\n eids: [\n eidEntry('global'),\n eidEntry('idA', 'idA1', ['bidderA']),\n eidEntry('idA', 'idA2', ['bidderB'])\n ],\n conflicts: new Set(['idA'])\n })).to.eql({\n global: [mkEid('global')],\n permissions: [],\n bidder: {\n bidderA: [mkEid('idA', 'idA1')],\n bidderB: [mkEid('idA', 'idA2')]\n }\n })\n })\n\n it('does not set permissions for conflicting bidder-specific eids', () => {\n expect(consolidateEids({\n eids: [eidEntry('idA', 'idA1'), eidEntry('idA', 'idA2', ['bidderA'])],\n conflicts: new Set(['idA'])\n })).to.eql({\n global: [mkEid('idA', 'idA1')],\n permissions: [],\n bidder: {\n bidderA: [mkEid('idA', 'idA2')]\n }\n })\n });\n\n it('can do partial consolidation when only some IDs are conflicting', () => {\n expect(consolidateEids({\n eids: [\n eidEntry('idA', 'idA1'),\n eidEntry('idB', 'idB', ['bidderB']),\n eidEntry('idA', 'idA2', ['bidderA'])\n ],\n conflicts: new Set(['idA'])\n })).to.eql({\n global: [mkEid('idA', 'idA1'), mkEid('idB')],\n permissions: [{source: 'idB', bidders: ['bidderB']}],\n bidder: {\n bidderA: [mkEid('idA', 'idA2')]\n }\n });\n });\n })\n });\n});\n"],"mappings":"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","ignoreList":[]}
|