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":"userId_spec.js","names":["attachIdSystem","auctionDelay","coreStorage","dep","enrichEids","findRootDomain","getConsentHash","getValidSubmoduleConfigs","init","PBJS_USER_ID_OPTOUT_NAME","startAuctionHook","requestDataDeletion","setStoredValue","setSubmoduleRegistry","syncDelay","COOKIE_SUFFIXES","HTML5_SUFFIXES","UID1_EIDS","createEidsArray","EID_CONFIG","getEids","config","utils","events","EVENTS","getGlobal","resetConsentData","setEventFiredFlag","liveIntentIdSubmoduleDoNotFireEvent","sharedIdSystemSubmodule","pubProvidedIdSubmodule","mockGpt","requestBids","startAuction","hook","mockGdprConsent","getPPID","uninstall","uninstallTcfControl","allConsent","GDPR_GVLIDS","gdprDataHandler","MODULE_TYPE_UID","ACTIVITY_ENRICH_EIDS","ACTIVITY_PARAM_COMPONENT_NAME","ACTIVITY_PARAM_COMPONENT_TYPE","extractEids","generateSubmoduleContainers","addIdData","registerActivityControl","discloseStorageUse","STORAGE_TYPE_COOKIES","STORAGE_TYPE_LOCALSTORAGE","getStorageManager","assert","require","expect","EXPIRED_COOKIE_DATE","CONSENT_LOCAL_STORAGE_NAME","describe","getConfigMock","_len","arguments","length","configArrays","Array","_key","userSync","userIds","map","configArray","getStorageMock","apply","name","undefined","key","type","expires","refreshInSeconds","storage","getConfigValueMock","value","createMockIdSubmodule","aliasName","eids","getId","decode","v","primaryIds","createMockEid","source","atype","getValue","data","id","getUidExt","ext","getAdUnitMock","code","mediaTypes","banner","native","sizes","bids","bidder","params","placementId","addConfig","cfg","forEach","element","Object","assign","sandbox","consentData","startDelay","callbackDelay","clearStack","Promise","resolve","setTimeout","delay","stub","sinon","callsFake","runBidsHook","_len2","args","_key2","result","mkDelay","expectImmediateBidHook","then","calledWith","initModule","before","ready","localStorage","removeItem","beforeEach","createSandbox","setCookie","afterEach","restore","resetConfig","getHooks","remove","after","register","it","gvlid","mockConfig","storageConfig","entries","_ref","t","to","equal","called","logWarn","eql","notCalled","param","not","exist","disable","enable","Date","now","toUTCString","spy","removeAll","getGlobalEids","ortb2Fragments","global","user","pubcid","getCookie","be","null","setConfig","eids1","uids","eids2","deepEqual","pubcid1","pubcid2","customConfig","extend","fpd","deep","create","getEidExt","mockId2v3","ids","inserter","mockId2v4","mockId1","mockId2v1","mockId2v2","uid","pubProvidedId","have","u","members","done","getUserIdsAsync","getUserIds","mockId2","mockId3","mockId4","idPriority","uidsFirstRequest","uidsSecondRequest","getUserIdsAsEids","eidFn","mockId","moduleConfig","some","uid2","lipb","lipbid","merkleId","expected","tdid","mockSubmod","size","mock1","m","mock2","get","m1","m2","i","adUnits","window","googletag","_ppid","ppid","TEST_KEY","setVal","val","setDataInLocalStorage","removeDataFromLocalStorage","_1","_2","storedId","callback","_","readId","d","yield","and","contain","refreshUserIds","MOCK_ID","mockIdCallback","startInit","mockIdSystem","returns","method","cb","callArg","MOCKID","getIds","reject","Error","err","catch","e","id1","id2","in init","in callback","mockCallback","_ref2","setup","submoduleNames","refreshUserIdsCallback","refreshedIdCallback","refreshedIdSystem","callCount","logInfo","test","auctionSpy","calledOnce","should","callArgWith","on","unit","bid","userIdAsEids","AUCTION_END","match","func","withArgs","_ref3","setItem","expiration","stype","eidsFunction","mid","find","eid","disclose","discloseStorageHook","next","_len3","_key3","setStorage","expectDisclosure","storageType","maxAgeSeconds","suffixes","suffix","expectation","identifier","purposes","cookieRefresh","isAllowed","MOCK_IDS","mods","activity","activeSources","_ref4","from","Set","getEvents","triggerPixel","__tcfapi","endAuction","emit","customCfg","pixelUrl","mergeConfig","false","getCall","include","submodule","storageMgr","enabledStorageTypes","domainOverride","expStr","mockGetId","mockDecode","mockExtendId","userIdConfig","mockIdCookieName","extendId","reset","JSON","stringify","lastDelta","cst","innerAdUnits","setConsentData","consentString","idMod","onDataDeletionRequest","mod1","mod2","mod3","mod4","cfg1","cfg2","cfg3","cfg4","id4","getDataFromLocalStorage","id3","is missing","throws","_ref5","arg","random","registerSignalSources","signalSources","getEncryptedEidsForSource","encrypt","users","EIDS","expctedIds","all","startsWith","true","getCustomSignal","expectedString","getUserIdsAsEidBySource","uid2Eids","pubcEids","liveIntentEids","merkleEids","idValues","mockIdSubmodule","_len4","extraKeys","_key4","fromEntries","mod","extraKey","provider","enrich","eidsFrom","nameFromModuleMapping","_ref6","module","owner","bidderEids","bidderMappings","_ref7","mapping","_ref8","_ref9","_ref0","bidders","_ref1","bidderA","bidderB","bidderCfg","bidderEidMap","_ref10","eidMap","bidderC","_ref11","globalEids","pub","bidderAEids","_ref12","concat","UNALLOWED_MODULE","ALLOWED_MODULE","UNALLOWED_MODULE_FULLNAME","ALLOWED_MODULE_FULLNAME","unregisterRule","_ref13","componentName","allow","reason","bidderName","userIdModules","previousSubmoduleContainers","submoduleRegistry","configRegistry","lengthOf","retainConfig","autoRefresh","itemsWithRefreshIds","filter","item","refreshIds","warnLogSpy","UID_MODULE_NAME","document","cookie","moduleType","moduleName","enforceStorageType"],"sourceRoot":"../../../../..","sources":["test/spec/modules/userId_spec.js"],"sourcesContent":["import {\n attachIdSystem,\n auctionDelay,\n coreStorage,\n dep, enrichEids,\n findRootDomain,\n getConsentHash, getValidSubmoduleConfigs,\n init,\n PBJS_USER_ID_OPTOUT_NAME,\n startAuctionHook,\n requestDataDeletion,\n setStoredValue,\n setSubmoduleRegistry,\n syncDelay, COOKIE_SUFFIXES, HTML5_SUFFIXES,\n} from 'modules/userId/index.js';\nimport {UID1_EIDS} from 'libraries/uid1Eids/uid1Eids.js';\nimport {createEidsArray, EID_CONFIG, getEids} from 'modules/userId/eids.js';\nimport {config} from 'src/config.js';\nimport * as utils from 'src/utils.js';\nimport * as events from 'src/events.js';\nimport {EVENTS} from 'src/constants.js';\nimport {getGlobal} from 'src/prebidGlobal.js';\nimport {resetConsentData, } from 'modules/consentManagementTcf.js';\nimport {setEventFiredFlag as liveIntentIdSubmoduleDoNotFireEvent} from '../../../libraries/liveIntentId/idSystem.js';\nimport {sharedIdSystemSubmodule} from 'modules/sharedIdSystem.js';\nimport {pubProvidedIdSubmodule} from 'modules/pubProvidedIdSystem.js';\nimport * as mockGpt from '../integration/faker/googletag.js';\nimport {requestBids, startAuction} from 'src/prebid.js';\nimport {hook} from '../../../src/hook.js';\nimport {mockGdprConsent} from '../../helpers/consentData.js';\nimport {getPPID} from '../../../src/adserver.js';\nimport {uninstall as uninstallTcfControl} from 'modules/tcfControl.js';\nimport {allConsent, GDPR_GVLIDS, gdprDataHandler} from '../../../src/consentHandler.js';\nimport {MODULE_TYPE_UID} from '../../../src/activities/modules.js';\nimport {ACTIVITY_ENRICH_EIDS} from '../../../src/activities/activities.js';\nimport {ACTIVITY_PARAM_COMPONENT_NAME, ACTIVITY_PARAM_COMPONENT_TYPE} from '../../../src/activities/params.js';\nimport {extractEids} from '../../../modules/prebidServerBidAdapter/bidderConfig.js';\nimport {generateSubmoduleContainers, addIdData } from '../../../modules/userId/index.js';\nimport { registerActivityControl } from '../../../src/activities/rules.js';\n\nimport { discloseStorageUse, STORAGE_TYPE_COOKIES, STORAGE_TYPE_LOCALSTORAGE, getStorageManager } from '../../../src/storageManager.js';\n\nconst assert = require('chai').assert;\nconst expect = require('chai').expect;\nconst EXPIRED_COOKIE_DATE = 'Thu, 01 Jan 1970 00:00:01 GMT';\nconst CONSENT_LOCAL_STORAGE_NAME = '_pbjs_userid_consent_data';\n\ndescribe('User ID', function () {\n function getConfigMock(...configArrays) {\n return {\n userSync: {\n syncDelay: 0,\n userIds: configArrays.map(configArray => (configArray && configArray.length >= 3) ? getStorageMock.apply(null, configArray) : null)\n }\n }\n }\n\n function getStorageMock(name = 'pubCommonId', key = 'pubcid', type = 'cookie', expires = 30, refreshInSeconds) {\n return {name: name, storage: {name: key, type: type, expires: expires, refreshInSeconds: refreshInSeconds}}\n }\n\n function getConfigValueMock(name, value) {\n return {\n userSync: {syncDelay: 0, userIds: [{name: name, value: value}]}\n }\n }\n\n function createMockIdSubmodule(name, value, aliasName, eids) {\n return {\n name,\n getId() {\n return value;\n },\n decode(v) {\n return v;\n },\n primaryIds: [],\n aliasName,\n eids\n }\n }\n\n function createMockEid(name, source) {\n return {\n [name]: {\n source: source || `${name}Source`,\n atype: 3,\n getValue: function(data) {\n if (data.id) {\n return data.id;\n } else {\n return data;\n }\n },\n getUidExt: function(data) {\n return data.ext\n }\n }\n }\n }\n\n function getAdUnitMock(code = 'adUnit-code') {\n return {\n code,\n mediaTypes: {banner: {}, native: {}},\n sizes: [[300, 200], [300, 600]],\n bids: [{bidder: 'sampleBidder', params: {placementId: 'banner-only-bidder'}}, {bidder: 'anotherSampleBidder', params: {placementId: 'banner-only-bidder'}}]\n };\n }\n\n function addConfig(cfg, name, value) {\n if (cfg && cfg.userSync && cfg.userSync.userIds) {\n cfg.userSync.userIds.forEach(element => {\n if (element[name] !== undefined) {\n element[name] = Object.assign(element[name], value);\n } else {\n element[name] = value;\n }\n });\n }\n\n return cfg;\n }\n\n let sandbox, consentData, startDelay, callbackDelay;\n\n function clearStack() {\n return new Promise((resolve) => setTimeout(resolve));\n }\n\n function delay() {\n const stub = sinon.stub().callsFake(() => new Promise((resolve) => {\n stub.resolve = () => {\n resolve();\n return clearStack();\n };\n }));\n return stub;\n }\n\n function runBidsHook(...args) {\n startDelay = delay();\n\n const result = startAuctionHook(...args, {mkDelay: startDelay});\n return new Promise((resolve) => setTimeout(() => resolve(result)));\n }\n\n function expectImmediateBidHook(...args) {\n return runBidsHook(...args).then(() => {\n startDelay.calledWith(0);\n return startDelay.resolve();\n })\n }\n\n function initModule(config) {\n callbackDelay = delay();\n return init(config, {mkDelay: callbackDelay});\n }\n\n before(function () {\n hook.ready();\n uninstallTcfControl();\n localStorage.removeItem(PBJS_USER_ID_OPTOUT_NAME);\n liveIntentIdSubmoduleDoNotFireEvent();\n });\n\n beforeEach(function () {\n resetConsentData();\n sandbox = sinon.createSandbox();\n consentData = null;\n mockGdprConsent(sandbox, () => consentData);\n coreStorage.setCookie(CONSENT_LOCAL_STORAGE_NAME, '', EXPIRED_COOKIE_DATE);\n });\n\n afterEach(() => {\n sandbox.restore();\n config.resetConfig();\n startAuction.getHooks({hook: startAuctionHook}).remove();\n });\n\n after(() => {\n init(config);\n })\n\n describe('GVL IDs', () => {\n beforeEach(() => {\n sinon.stub(GDPR_GVLIDS, 'register');\n });\n afterEach(() => {\n GDPR_GVLIDS.register.restore();\n });\n\n it('are registered when ID submodule is registered', () => {\n attachIdSystem({name: 'gvlidMock', gvlid: 123});\n sinon.assert.calledWith(GDPR_GVLIDS.register, MODULE_TYPE_UID, 'gvlidMock', 123);\n })\n })\n\n describe('userId config validation', () => {\n beforeEach(() => {\n sandbox.stub(utils, 'logWarn');\n });\n\n function mockConfig(storageConfig = {}) {\n return {\n name: 'mockModule',\n storage: {\n name: 'mockStorage',\n type: 'cookie',\n ...storageConfig\n }\n }\n }\n\n Object.entries({\n 'not an object': 'garbage',\n 'missing name': {},\n 'empty name': {name: ''},\n 'empty storage config': {name: 'mockId', storage: {}},\n 'storage type, but no storage name': mockConfig({name: ''}),\n 'storage name, but no storage type': mockConfig({type: undefined}),\n }).forEach(([t, config]) => {\n it(`should log a warning and reject configuration with ${t}`, () => {\n expect(getValidSubmoduleConfigs([config]).length).to.equal(0);\n sinon.assert.called(utils.logWarn);\n });\n });\n\n it('should reject non-array userId configuration', () => {\n expect(getValidSubmoduleConfigs({})).to.eql([]);\n sinon.assert.called(utils.logWarn);\n });\n\n it('should accept null configuration', () => {\n expect(getValidSubmoduleConfigs()).to.eql([]);\n sinon.assert.notCalled(utils.logWarn);\n });\n\n ['refreshInSeconds', 'expires'].forEach(param => {\n describe(`${param} parameter`, () => {\n it('should be made a number, when possible', () => {\n expect(getValidSubmoduleConfigs([mockConfig({[param]: '123'})])[0].storage[param]).to.equal(123);\n });\n\n it('should log a warning when not a number', () => {\n expect(getValidSubmoduleConfigs([mockConfig({[param]: 'garbage'})])[0].storage[param]).to.not.exist;\n sinon.assert.called(utils.logWarn)\n });\n\n it('should be left untouched when not specified', () => {\n expect(getValidSubmoduleConfigs([mockConfig()])[0].storage[param]).to.not.exist;\n sinon.assert.notCalled(utils.logWarn);\n });\n })\n })\n })\n\n describe('Decorate Ad Units', function () {\n beforeEach(function () {\n // reset mockGpt so nothing else interferes\n mockGpt.disable();\n mockGpt.enable();\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n coreStorage.setCookie('pubcid_alt', 'altpubcid200000', (new Date(Date.now() + 20000).toUTCString()));\n sinon.spy(coreStorage, 'setCookie');\n sinon.stub(utils, 'logWarn');\n });\n\n afterEach(function () {\n mockGpt.enable();\n requestBids.removeAll();\n config.resetConfig();\n coreStorage.setCookie.restore();\n utils.logWarn.restore();\n });\n\n after(function () {\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n coreStorage.setCookie('pubcid_alt', '', EXPIRED_COOKIE_DATE);\n });\n\n function getGlobalEids() {\n const ortb2Fragments = {global: {}};\n return expectImmediateBidHook(sinon.stub(), {ortb2Fragments}).then(() => ortb2Fragments.global.user?.ext?.eids);\n }\n\n it('Check same cookie behavior', async function () {\n let pubcid = coreStorage.getCookie('pubcid');\n expect(pubcid).to.be.null; // there should be no cookie initially\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie']));\n const eids1 = await getGlobalEids();\n pubcid = coreStorage.getCookie('pubcid'); // cookies is created after requestbidHook\n expect(eids1).to.eql([\n {\n source: 'pubcid.org',\n uids: [{id: pubcid, atype: 1}]\n }\n ])\n const eids2 = await getGlobalEids();\n assert.deepEqual(eids1, eids2);\n });\n\n it('Check different cookies', async function () {\n let pubcid1;\n let pubcid2;\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie']));\n\n const eids1 = await getGlobalEids()\n pubcid1 = coreStorage.getCookie('pubcid'); // get first cookie\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE); // erase cookie\n expect(eids1).to.eql([{\n source: 'pubcid.org',\n uids: [{id: pubcid1, atype: 1}]\n }])\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie']));\n\n const eids2 = await getGlobalEids();\n pubcid2 = coreStorage.getCookie('pubcid'); // get second cookie\n expect(eids2).to.eql([{\n source: 'pubcid.org',\n uids: [{id: pubcid2, atype: 1}]\n }])\n expect(pubcid1).to.not.equal(pubcid2);\n });\n\n it('Use existing cookie', async function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid_alt', 'cookie']));\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'altpubcid200000', atype: 1}]\n }])\n });\n\n it('Extend cookie', async function () {\n let customConfig = getConfigMock(['pubCommonId', 'pubcid_alt', 'cookie']);\n customConfig = addConfig(customConfig, 'params', {extend: true});\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig(customConfig);\n const fpd = {};\n const eids = await getGlobalEids();\n expect(eids).to.deep.equal([{\n source: 'pubcid.org',\n uids: [{id: 'altpubcid200000', atype: 1}]\n }]);\n });\n\n it('Disable auto create', async function () {\n let customConfig = getConfigMock(['pubCommonId', 'pubcid', 'cookie']);\n customConfig = addConfig(customConfig, 'params', {create: false});\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig(customConfig);\n const eids = await getGlobalEids();\n expect(eids).to.not.exist;\n });\n\n describe('createEidsArray', () => {\n beforeEach(() => {\n init(config);\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1', null, null,\n {'mockId1': {source: 'mock1source', atype: 1}}),\n createMockIdSubmodule('mockId2v1', null, null,\n {'mockId2v1': {source: 'mock2source', atype: 2, getEidExt: () => ({v: 1})}}),\n createMockIdSubmodule('mockId2v2', null, null,\n {'mockId2v2': {source: 'mock2source', atype: 2, getEidExt: () => ({v: 2})}}),\n createMockIdSubmodule('mockId2v3', null, null, {\n 'mockId2v3'(ids) {\n return {\n source: 'mock2source',\n inserter: 'ins',\n ext: {v: 2},\n uids: ids.map(id => ({id, atype: 2}))\n }\n }\n }),\n createMockIdSubmodule('mockId2v4', null, null, {\n 'mockId2v4'(ids) {\n return ids.map(id => ({\n uids: [{id, atype: 0}],\n source: 'mock2source',\n inserter: 'ins',\n ext: {v: 2}\n }))\n }\n })\n ]);\n });\n\n it('should filter out non-string uid returned by generator functions', () => {\n const eids = createEidsArray({\n mockId2v3: [null, 'id1', 123],\n });\n expect(eids[0].uids).to.eql([\n {\n atype: 2,\n id: 'id1'\n }\n ]);\n });\n\n it('should filter out entire EID if none of the uids are strings', () => {\n const eids = createEidsArray({\n mockId2v3: [null],\n });\n expect(eids).to.eql([]);\n })\n\n it('should group UIDs by everything except uid', () => {\n const eids = createEidsArray({\n mockId1: ['mock-1-1', 'mock-1-2'],\n mockId2v1: ['mock-2-1', 'mock-2-2'],\n mockId2v2: ['mock-2-1', 'mock-2-2'],\n mockId2v3: ['mock-2-1', 'mock-2-2']\n });\n expect(eids).to.eql([\n {\n source: 'mock1source',\n uids: [\n {\n id: 'mock-1-1',\n atype: 1,\n },\n {\n id: 'mock-1-2',\n atype: 1,\n }\n ]\n },\n {\n source: 'mock2source',\n ext: {\n v: 1\n },\n uids: [\n {\n id: 'mock-2-1',\n atype: 2,\n },\n {\n id: 'mock-2-2',\n atype: 2,\n }\n ]\n },\n {\n source: 'mock2source',\n ext: {\n v: 2\n },\n uids: [\n {\n id: 'mock-2-1',\n atype: 2,\n },\n {\n id: 'mock-2-2',\n atype: 2,\n }\n ]\n },\n {\n source: 'mock2source',\n inserter: 'ins',\n ext: {v: 2},\n uids: [\n {\n id: 'mock-2-1',\n atype: 2,\n },\n {\n id: 'mock-2-2',\n atype: 2,\n }\n ]\n }\n ])\n });\n\n it('should group matching EIDs regardless of entry order', () => {\n const eids = createEidsArray({\n mockId2v3: ['id1', 'id2'],\n mockId2v4: ['id3']\n });\n expect(eids).to.eql([{\n source: 'mock2source',\n inserter: 'ins',\n uids: [\n {\n id: 'id1',\n atype: 2,\n },\n {\n id: 'id2',\n atype: 2\n },\n {\n id: 'id3',\n atype: 0\n }\n ],\n ext: {v: 2}\n }])\n })\n it('when merging with pubCommonId, should not alter its eids', () => {\n const uid = {\n pubProvidedId: [\n {\n source: 'mock1Source',\n uids: [\n {id: 'uid2'}\n ]\n }\n ],\n mockId1: 'uid1',\n };\n const eids = createEidsArray(uid);\n expect(eids).to.have.length(1);\n expect(eids[0].uids.map(u => u.id)).to.have.members(['uid1', 'uid2']);\n expect(uid.pubProvidedId[0].uids).to.eql([{id: 'uid2'}]);\n });\n })\n\n it('pbjs.getUserIds', function (done) {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n const ids = {pubcid: '11111'};\n config.setConfig({\n userSync: {\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [{\n name: 'pubCommonId', value: ids\n }]\n }\n });\n getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids).to.deep.equal(ids);\n expect(getGlobal().getUserIds()).to.deep.equal(ids);\n done();\n })\n });\n\n it('pbjs.getUserIds(Async) should prioritize user ids according to config available to core', () => {\n init(config);\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {mockId1: 'mockId1_value'}}),\n createMockIdSubmodule('mockId2Module', {id: {mockId2: 'mockId2_value', mockId3: 'mockId3_value_from_mockId2Module'}}),\n createMockIdSubmodule('mockId3Module', {id: {mockId1: 'mockId1_value_from_mockId3Module', mockId2: 'mockId2_value_from_mockId3Module', mockId3: 'mockId3_value', mockId4: 'mockId4_value_from_mockId3Module'}}),\n createMockIdSubmodule('mockId4Module', {id: {mockId4: 'mockId4_value'}})\n ]);\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module', 'mockId1Module'],\n mockId4: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids['mockId1']).to.deep.equal('mockId1_value_from_mockId3Module');\n expect(uids['mockId2']).to.deep.equal('mockId2_value');\n expect(uids['mockId3']).to.deep.equal('mockId3_value_from_mockId2Module');\n expect(uids['mockId4']).to.deep.equal('mockId4_value');\n });\n });\n\n it('pbjs.getUserIds(Async) should prioritize user ids according to config available to core when config uses aliases', () => {\n init(config);\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {mockId1: 'mockId1_value'}}),\n createMockIdSubmodule('mockId2Module', {id: {mockId2: 'mockId2_value', mockId3: 'mockId3_value_from_mockId2Module'}}, 'mockId2Module_alias'),\n createMockIdSubmodule('mockId3Module', {id: {mockId1: 'mockId1_value_from_mockId3Module', mockId2: 'mockId2_value_from_mockId3Module', mockId3: 'mockId3_value', mockId4: 'mockId4_value_from_mockId3Module'}}, 'mockId3Module_alias'),\n createMockIdSubmodule('mockId4Module', {id: {mockId4: 'mockId4_value'}})\n ]);\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module_alias', 'mockId1Module'],\n mockId4: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids['mockId1']).to.deep.equal('mockId1_value_from_mockId3Module');\n expect(uids['mockId2']).to.deep.equal('mockId2_value');\n expect(uids['mockId3']).to.deep.equal('mockId3_value_from_mockId2Module');\n expect(uids['mockId4']).to.deep.equal('mockId4_value');\n });\n });\n\n it('pbjs.getUserIds(Async) should prioritize user ids according to config available to core when called multiple times', () => {\n init(config);\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {mockId1: 'mockId1_value', mockId2: 'mockId2_value_from_mockId1Module'}}),\n createMockIdSubmodule('mockId2Module', {id: {mockId1: 'mockId1_value_from_mockId2Module', mockId2: 'mockId2_value'}}),\n ]);\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId2Module', 'mockId1Module'],\n mockId2: ['mockId1Module', 'mockId2Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uidsFirstRequest) => {\n getGlobal().getUserIdsAsync().then((uidsSecondRequest) => {\n expect(uidsFirstRequest['mockId1']).to.deep.equal('mockId1_value_from_mockId2Module');\n expect(uidsFirstRequest['mockId2']).to.deep.equal('mockId2_value_from_mockId1Module');\n expect(uidsFirstRequest).to.deep.equal(uidsSecondRequest);\n })\n });\n });\n\n it('pbjs.getUserIds(Async) with priority config but no collision', () => {\n init(config);\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {mockId1: 'mockId1_value'}}),\n createMockIdSubmodule('mockId2Module', {id: {mockId2: 'mockId2_value'}}),\n createMockIdSubmodule('mockId3Module', {id: undefined}),\n createMockIdSubmodule('mockId4Module', {id: {mockId4: 'mockId4_value'}})\n ]);\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module', 'mockId1Module'],\n mockId4: ['mockId2Module', 'mockId4Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids['mockId1']).to.deep.equal('mockId1_value');\n expect(uids['mockId2']).to.deep.equal('mockId2_value');\n expect(uids['mockId3']).to.be.undefined;\n expect(uids['mockId4']).to.deep.equal('mockId4_value');\n });\n });\n\n it('pbjs.getUserIdsAsEids', function (done) {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n const ids = {'pubcid': '11111'};\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'pubCommonId', value: ids\n }]\n }\n });\n getGlobal().getUserIdsAsync().then((ids) => {\n expect(getGlobal().getUserIdsAsEids()).to.deep.equal(createEidsArray(ids));\n done();\n });\n });\n\n it('pbjs.getUserIdsAsEids should pass config to eid function', async function () {\n const eidFn = sinon.stub();\n init(config);\n setSubmoduleRegistry([createMockIdSubmodule('mockId', null, null, {\n mockId: eidFn\n })]);\n const moduleConfig = {\n name: 'mockId',\n value: {mockId: 'mockIdValue'},\n some: 'config'\n };\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [moduleConfig]\n }\n });\n await getGlobal().getUserIdsAsync();\n sinon.assert.calledWith(eidFn, ['mockIdValue'], moduleConfig);\n })\n\n it('pbjs.getUserIdsAsEids should prioritize user ids according to config available to core', () => {\n init(config);\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {uid2: {id: 'uid2_value'}}}, null, createMockEid('uid2')),\n createMockIdSubmodule('mockId2Module', {id: {pubcid: 'pubcid_value', lipb: {lipbid: 'lipbid_value_from_mockId2Module'}}}, null, createMockEid('pubcid')),\n createMockIdSubmodule('mockId3Module', {id: {uid2: {id: 'uid2_value_from_mockId3Module'}, pubcid: 'pubcid_value_from_mockId3Module', lipb: {lipbid: 'lipbid_value'}, merkleId: {id: 'merkleId_value_from_mockId3Module'}}}, null, {...createMockEid('uid2'), ...createMockEid('merkleId'), ...createMockEid('lipb')}),\n createMockIdSubmodule('mockId4Module', {id: {merkleId: {id: 'merkleId_value'}}}, null, createMockEid('merkleId'))\n ]);\n config.setConfig({\n userSync: {\n idPriority: {\n uid2: ['mockId3Module', 'mockId1Module'],\n merkleId: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n const ids = {\n 'uid2': { id: 'uid2_value_from_mockId3Module' },\n 'pubcid': 'pubcid_value',\n 'lipb': { lipbid: 'lipbid_value_from_mockId2Module' },\n 'merkleId': { id: 'merkleId_value' }\n };\n\n return getGlobal().getUserIdsAsync().then(() => {\n const eids = getGlobal().getUserIdsAsEids();\n const expected = createEidsArray(ids);\n expect(eids).to.deep.equal(expected);\n });\n });\n\n it('pbjs.getUserIdsAsEids should prioritize the uid1 according to config available to core', () => {\n init(config);\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {tdid: {id: 'uid1_value'}}}, null, UID1_EIDS),\n createMockIdSubmodule('mockId2Module', {id: {tdid: {id: 'uid1Id_value_from_mockId2Module'}}}, null, UID1_EIDS),\n createMockIdSubmodule('mockId3Module', {id: {tdid: {id: 'uid1Id_value_from_mockId3Module'}}}, null, UID1_EIDS)\n ]);\n config.setConfig({\n userSync: {\n idPriority: {\n tdid: ['mockId2Module', 'mockId3Module', 'mockId1Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' }\n ]\n }\n });\n\n const ids = {\n 'tdid': { id: 'uid1Id_value_from_mockId2Module' },\n };\n\n return getGlobal().getUserIdsAsync().then(() => {\n const eids = getGlobal().getUserIdsAsEids();\n const expected = createEidsArray(ids);\n expect(eids).to.deep.equal(expected);\n })\n });\n\n describe('EID updateConfig', () => {\n function mockSubmod(name, eids) {\n return createMockIdSubmodule(name, null, null, eids);\n }\n\n it('does not choke if a submod does not provide an eids map', () => {\n setSubmoduleRegistry([\n mockSubmod('mock1'),\n mockSubmod('mock2')\n ]);\n expect(EID_CONFIG.size).to.equal(0);\n });\n\n it('should merge together submodules\\' eid configs', () => {\n setSubmoduleRegistry([\n mockSubmod('mock1', {mock1: {m: 1}}),\n mockSubmod('mock2', {mock2: {m: 2}})\n ]);\n expect(EID_CONFIG.get('mock1')).to.eql({m: 1});\n expect(EID_CONFIG.get('mock2')).to.eql({m: 2});\n });\n\n it('should respect idPriority', () => {\n config.setConfig({\n userSync: {\n idPriority: {\n m1: ['mod2', 'mod1'],\n m2: ['mod1', 'mod2']\n },\n userIds: [\n { name: 'mod1' },\n { name: 'mod2' },\n ]\n }\n });\n setSubmoduleRegistry([\n mockSubmod('mod1', {m1: {i: 1}, m2: {i: 2}}),\n mockSubmod('mod2', {m1: {i: 3}, m2: {i: 4}})\n ]);\n expect(EID_CONFIG.get('m1')).to.eql({i: 3});\n expect(EID_CONFIG.get('m2')).to.eql({i: 2});\n });\n })\n\n it('should set googletag ppid correctly', function () {\n const adUnits = [getAdUnitMock()];\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n // before ppid should not be set\n expect(window.googletag._ppid).to.equal(undefined);\n\n config.setConfig({\n userSync: {\n ppid: 'pubcid.org',\n userIds: [\n { name: 'pubCommonId', value: {'pubcid': 'pubCommon-id-value-pubCommon-id-value'} },\n ]\n }\n });\n return expectImmediateBidHook(() => {}, {adUnits}).then(() => {\n // ppid should have been set without dashes and stuff\n expect(window.googletag._ppid).to.equal('pubCommonidvaluepubCommonidvalue');\n });\n });\n\n it('should set googletag ppid correctly when prioritized according to config available to core', () => {\n const adUnits = [getAdUnitMock()];\n init(config);\n setSubmoduleRegistry([\n // some of the ids are padded to have length >= 32 characters\n createMockIdSubmodule('mockId1Module', {id: {uid2: {id: 'uid2_value_7ac66c0f148de9519b8bd264312c4d64'}}}),\n createMockIdSubmodule('mockId2Module', {id: {pubcid: 'pubcid_value_7ac66c0f148de9519b8bd264312c4d64', lipb: {lipbid: 'lipbid_value_from_mockId2Module_7ac66c0f148de9519b8bd264312c4d64'}}}),\n createMockIdSubmodule('mockId3Module', {\n id: {\n uid2: {\n id: 'uid2_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64'\n },\n pubcid: 'pubcid_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64',\n lipb: {\n lipbid: 'lipbid_value_7ac66c0f148de9519b8bd264312c4d64'\n },\n merkleId: {\n id: 'merkleId_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64'\n }\n }\n }, null, {\n uid2: {\n source: 'uidapi.com',\n getValue(data) { return data.id }\n }\n }),\n createMockIdSubmodule('mockId4Module', {id: {merkleId: {id: 'merkleId_value_7ac66c0f148de9519b8bd264312c4d64'}}})\n ]);\n\n // before ppid should not be set\n expect(window.googletag._ppid).to.equal(undefined);\n\n config.setConfig({\n userSync: {\n ppid: 'uidapi.com',\n idPriority: {\n uid2: ['mockId3Module', 'mockId1Module'],\n merkleId: ['mockId4Module', 'mockId3Module']\n },\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return expectImmediateBidHook(() => {}, {adUnits}).then(() => {\n expect(window.googletag._ppid).to.equal('uid2valuefrommockId3Module7ac66c0f148de9519b8bd264312c4d64');\n });\n });\n\n describe('submodule callback', () => {\n const TEST_KEY = 'testKey';\n\n function setVal(val) {\n if (val) {\n coreStorage.setDataInLocalStorage(TEST_KEY, val);\n coreStorage.setDataInLocalStorage(TEST_KEY + '_exp', '');\n } else {\n coreStorage.removeDataFromLocalStorage(TEST_KEY);\n coreStorage.removeDataFromLocalStorage(TEST_KEY + '_exp');\n }\n }\n afterEach(() => {\n setVal(null);\n })\n\n it('should be able to re-read ID changes', (done) => {\n setVal(null);\n init(config);\n setSubmoduleRegistry([{\n name: 'mockId',\n getId: function (_1, _2, storedId) {\n expect(storedId).to.not.exist;\n setVal('laterValue');\n return {\n callback(_, readId) {\n expect(readId()).to.eql('laterValue');\n done();\n }\n }\n },\n decode(d) {\n return d\n }\n }]);\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [\n {\n name: 'mockId',\n storage: {\n type: 'html5',\n name: TEST_KEY\n }\n }\n ]\n }\n });\n });\n });\n\n it('should set PPID when the source needs to call out to the network', () => {\n const adUnits = [getAdUnitMock()];\n init(config);\n const callback = sinon.stub();\n setSubmoduleRegistry([{\n name: 'sharedId',\n getId: function () {\n return {callback}\n },\n decode(d) {\n return d\n },\n eids: {\n pubcid: {\n source: 'pubcid.org',\n }\n }\n }]);\n config.setConfig({\n userSync: {\n ppid: 'pubcid.org',\n auctionDelay: 10,\n userIds: [\n {\n name: 'sharedId',\n }\n ]\n }\n });\n return expectImmediateBidHook(() => {}, {adUnits}).then(() => {\n expect(window.googletag._ppid).to.be.undefined;\n const uid = 'thismustbelongerthan32characters'\n callback.yield({pubcid: uid});\n expect(window.googletag._ppid).to.equal(uid);\n });\n });\n\n it('should log a warning if PPID too big or small', function () {\n const adUnits = [getAdUnitMock()];\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig({\n userSync: {\n ppid: 'pubcid.org',\n userIds: [\n { name: 'pubCommonId', value: {'pubcid': 'pubcommonIdValue'} },\n ]\n }\n });\n // before ppid should not be set\n expect(window.googletag._ppid).to.equal(undefined);\n return expectImmediateBidHook(() => {}, {adUnits}).then(() => {\n // ppid should NOT have been set\n expect(window.googletag._ppid).to.equal(undefined);\n // a warning should have been emmited\n expect(utils.logWarn.args[0][0]).to.exist.and.to.contain('User ID - Googletag Publisher Provided ID for pubcid.org is not between 32 and 150 characters - pubcommonIdValue');\n });\n });\n\n it('should make PPID available to core', () => {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n const id = 'thishastobelongerthan32characters';\n config.setConfig({\n userSync: {\n ppid: 'pubcid.org',\n userIds: [\n { name: 'pubCommonId', value: {'pubcid': id} },\n ]\n }\n });\n return getGlobal().refreshUserIds().then(() => {\n expect(getPPID()).to.eql(id);\n })\n });\n\n it('should make PPID available to core and respect priority', () => {\n init(config);\n setSubmoduleRegistry([\n // some of the ids are padded to have length >= 32 characters\n createMockIdSubmodule('mockId1Module', {id: {uid2: {id: 'uid2_value_7ac66c0f148de9519b8bd264312c4d64'}}}),\n createMockIdSubmodule('mockId2Module', {id: {pubcid: 'pubcid_value_7ac66c0f148de9519b8bd264312c4d64', lipb: {lipbid: 'lipbid_value_from_mockId2Module_7ac66c0f148de9519b8bd264312c4d64'}}}),\n createMockIdSubmodule('mockId3Module', {\n id: {\n uid2: {\n id: 'uid2_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64'\n },\n pubcid: 'pubcid_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64',\n lipb: {\n lipbid: 'lipbid_value_7ac66c0f148de9519b8bd264312c4d64'\n },\n merkleId: {\n id: 'merkleId_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64'\n }\n }\n }, null, {\n uid2: {\n source: 'uidapi.com',\n getValue(data) { return data.id }\n }\n }),\n createMockIdSubmodule('mockId4Module', {id: {merkleId: {id: 'merkleId_value_7ac66c0f148de9519b8bd264312c4d64'}}})\n ]);\n\n // before ppid should not be set\n expect(window.googletag._ppid).to.equal(undefined);\n\n config.setConfig({\n userSync: {\n ppid: 'uidapi.com',\n idPriority: {\n uid2: ['mockId3Module', 'mockId1Module'],\n merkleId: ['mockId4Module', 'mockId3Module']\n },\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().refreshUserIds().then(() => {\n expect(getPPID()).to.eql('uid2valuefrommockId3Module7ac66c0f148de9519b8bd264312c4d64');\n })\n });\n\n describe('refreshing before init is complete', () => {\n const MOCK_ID = {'MOCKID': '1111'};\n let mockIdCallback;\n let startInit;\n\n beforeEach(() => {\n mockIdCallback = sinon.stub();\n coreStorage.setCookie('MOCKID', '', EXPIRED_COOKIE_DATE);\n const mockIdSystem = {\n name: 'mockId',\n decode: function(value) {\n return {\n 'mid': value['MOCKID']\n };\n },\n getId: sinon.stub().returns({callback: mockIdCallback})\n };\n init(config);\n setSubmoduleRegistry([mockIdSystem]);\n startInit = () => config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'mockId',\n storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n });\n\n ['refreshUserIds', 'getUserIdsAsync'].forEach(method => {\n it(`should still resolve promises returned by ${method}`, () => {\n startInit();\n let result = null;\n getGlobal()[method]().then((val) => { result = val; });\n return clearStack().then(() => {\n expect(result).to.equal(null); // auction has not ended, callback should not have been called\n mockIdCallback.callsFake((cb) => cb(MOCK_ID));\n return getGlobal().refreshUserIds().then(clearStack);\n }).then(() => {\n expect(result).to.deep.equal(getGlobal().getUserIds()) // auction still not over, but refresh was explicitly forced\n });\n });\n })\n\n it('should not stop auctions', (done) => {\n // simulate an infinite `auctionDelay`; refreshing should still allow the auction to continue\n // as soon as ID submodules have completed init\n startInit();\n startAuctionHook(() => {\n done();\n }, {adUnits: [getAdUnitMock()]}, {delay: delay()});\n getGlobal().refreshUserIds();\n clearStack().then(() => {\n // simulate init complete\n mockIdCallback.callArg(0, {id: {MOCKID: '1111'}});\n });\n });\n\n it('should continue the auction when init fails', (done) => {\n startInit();\n startAuctionHook(() => {\n done();\n },\n {adUnits: [getAdUnitMock()]},\n {\n delay: delay(),\n getIds: () => Promise.reject(new Error())\n }\n );\n })\n\n it('should not get stuck when init fails', () => {\n const err = new Error();\n mockIdCallback.callsFake(() => { throw err; });\n startInit();\n return getGlobal().getUserIdsAsync().catch((e) =>\n expect(e).to.equal(err)\n );\n });\n });\n\n describe('when ID systems throw errors', () => {\n function mockIdSystem(name) {\n return {\n name,\n decode: function(value) {\n return {\n [name]: value\n };\n },\n getId: sinon.stub().callsFake(() => ({id: name}))\n };\n }\n let id1, id2;\n beforeEach(() => {\n id1 = mockIdSystem('mock1');\n id2 = mockIdSystem('mock2');\n init(config);\n setSubmoduleRegistry([id1, id2]);\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'mock1',\n storage: {name: 'mock1', type: 'cookie'}\n }, {\n name: 'mock2',\n storage: {name: 'mock2', type: 'cookie'}\n }]\n }\n })\n });\n afterEach(() => {\n config.resetConfig();\n })\n Object.entries({\n 'in init': () => id1.getId.callsFake(() => { throw new Error() }),\n 'in callback': () => {\n const mockCallback = sinon.stub().callsFake(() => { throw new Error() });\n id1.getId.callsFake(() => ({callback: mockCallback}))\n }\n }).forEach(([t, setup]) => {\n describe(`${t}`, () => {\n beforeEach(setup);\n it('should still retrieve IDs that do not throw', () => {\n return getGlobal().getUserIdsAsync().then((uid) => {\n expect(uid.mock2).to.not.be.undefined;\n })\n });\n })\n })\n });\n it('pbjs.refreshUserIds updates submodules', function(done) {\n const sandbox = sinon.createSandbox();\n const mockIdCallback = sandbox.stub().returns({id: {'MOCKID': '1111'}});\n const mockIdSystem = {\n name: 'mockId',\n decode: function(value) {\n return {\n 'mid': value['MOCKID']\n };\n },\n getId: mockIdCallback\n };\n init(config);\n setSubmoduleRegistry([mockIdSystem]);\n\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'mockId',\n value: {id: {mockId: '1111'}}\n }]\n }\n });\n\n getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids.id.mockId).to.equal('1111');\n // update to new config value\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'mockId',\n value: {id: {mockId: '1212'}}\n }]\n }\n });\n getGlobal().refreshUserIds({ submoduleNames: ['mockId'] }).then(() => {\n expect(getGlobal().getUserIds().id.mockId).to.equal('1212');\n done();\n });\n });\n });\n\n it('pbjs.refreshUserIds updates priority config', () => {\n init(config);\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {mockId1: 'mockId1_value'}}),\n createMockIdSubmodule('mockId2Module', {id: {mockId2: 'mockId2_value', mockId3: 'mockId3_value_from_mockId2Module'}}),\n createMockIdSubmodule('mockId3Module', {id: {mockId1: 'mockId1_value_from_mockId3Module', mockId2: 'mockId2_value_from_mockId3Module', mockId3: 'mockId3_value', mockId4: 'mockId4_value_from_mockId3Module'}}),\n createMockIdSubmodule('mockId4Module', {id: {mockId4: 'mockId4_value'}})\n ]);\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module', 'mockId1Module'],\n mockId4: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids['mockId1']).to.deep.equal('mockId1_value_from_mockId3Module');\n expect(uids['mockId2']).to.deep.equal('mockId2_value');\n expect(uids['mockId3']).to.deep.equal('mockId3_value_from_mockId2Module');\n expect(uids['mockId4']).to.deep.equal('mockId4_value');\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId1Module', 'mockId3Module'],\n mockId4: ['mockId3Module', 'mockId4Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids['mockId1']).to.deep.equal('mockId1_value');\n expect(uids['mockId2']).to.deep.equal('mockId2_value');\n expect(uids['mockId3']).to.deep.equal('mockId3_value_from_mockId2Module');\n expect(uids['mockId4']).to.deep.equal('mockId4_value_from_mockId3Module');\n });\n });\n });\n\n it('pbjs.refreshUserIds refreshes single', function() {\n coreStorage.setCookie('MOCKID', '', EXPIRED_COOKIE_DATE);\n coreStorage.setCookie('refreshedid', '', EXPIRED_COOKIE_DATE);\n\n const sandbox = sinon.createSandbox();\n const mockIdCallback = sandbox.stub().returns({id: {'MOCKID': '1111'}});\n const refreshUserIdsCallback = sandbox.stub();\n\n const mockIdSystem = {\n name: 'mockId',\n decode: function(value) {\n return {\n 'mid': value['MOCKID']\n };\n },\n getId: mockIdCallback\n };\n\n const refreshedIdCallback = sandbox.stub().returns({id: {'REFRESH': '1111'}});\n\n const refreshedIdSystem = {\n name: 'refreshedId',\n decode: function(value) {\n return {\n 'refresh': value['REFRESH']\n };\n },\n getId: refreshedIdCallback\n };\n\n init(config);\n setSubmoduleRegistry([refreshedIdSystem, mockIdSystem]);\n\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [\n {\n name: 'mockId',\n storage: {name: 'MOCKID', type: 'cookie'},\n },\n {\n name: 'refreshedId',\n storage: {name: 'refreshedid', type: 'cookie'},\n }\n ]\n }\n });\n\n return getGlobal().refreshUserIds({submoduleNames: 'refreshedId'}, refreshUserIdsCallback).then(() => {\n expect(refreshedIdCallback.callCount).to.equal(2);\n expect(mockIdCallback.callCount).to.equal(1);\n expect(refreshUserIdsCallback.callCount).to.equal(1);\n });\n });\n });\n\n describe('Opt out', function () {\n before(function () {\n coreStorage.setCookie(PBJS_USER_ID_OPTOUT_NAME, '1', (new Date(Date.now() + 5000).toUTCString()));\n });\n\n beforeEach(function () {\n sinon.stub(utils, 'logInfo');\n });\n\n afterEach(function () {\n // removed cookie\n coreStorage.setCookie(PBJS_USER_ID_OPTOUT_NAME, '', EXPIRED_COOKIE_DATE);\n requestBids.removeAll();\n utils.logInfo.restore();\n });\n\n it('does not fetch ids if opt out cookie exists', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n const cfg = getConfigMock(['pubCommonId', 'pubcid', 'cookie']);\n cfg.userSync.auctionDelay = 1; // to let init complete without an auction\n config.setConfig(cfg);\n return getGlobal().getUserIdsAsync().then((uid) => {\n expect(uid).to.eql({});\n })\n });\n\n it('initializes if no opt out cookie exists', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie']));\n expect(utils.logInfo.args[0][0]).to.exist.and.to.contain('User ID - usersync config updated for 1 submodules');\n });\n });\n\n describe('Handle variations of config values', function () {\n beforeEach(function () {\n sinon.stub(utils, 'logInfo');\n });\n\n afterEach(function () {\n requestBids.removeAll();\n utils.logInfo.restore();\n });\n\n it('handles config with no usersync object', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({});\n // usersync is undefined, and no logInfo message for 'User ID - usersync config updated'\n expect(typeof utils.logInfo.args[0]).to.equal('undefined');\n });\n\n it('handles config with empty usersync object', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({userSync: {}});\n expect(typeof utils.logInfo.args[0]).to.equal('undefined');\n });\n\n it('handles config with usersync and userIds that are empty objs', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n userIds: [{}]\n }\n });\n expect(typeof utils.logInfo.args[0]).to.equal('undefined');\n });\n\n it('handles config with usersync and userIds with empty names or that dont match a submodule.name', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n userIds: [{\n name: '',\n value: {test: '1'}\n }, {\n name: 'foo',\n value: {test: '1'}\n }]\n }\n });\n expect(typeof utils.logInfo.args[0]).to.equal('undefined');\n });\n\n it('config with 1 configurations should create 1 submodules', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule, pubProvidedIdSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubCommonId', 'cookie']));\n\n expect(utils.logInfo.args[0][0]).to.exist.and.to.contain('User ID - usersync config updated for 1 submodules');\n });\n\n it('handles config with name in different case', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n userIds: [{\n name: 'SharedId'\n }]\n }\n });\n\n expect(utils.logInfo.args[0][0]).to.exist.and.to.contain('User ID - usersync config updated for 1 submodules');\n });\n\n it('config with 2 configurations should result in 2 submodules add', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule, pubProvidedIdSubmodule]);\n config.setConfig({\n userSync: {\n syncDelay: 0,\n userIds: [{\n name: 'pubCommonId', value: {'pubcid': '11111'}\n }, {\n name: 'pubProvidedId',\n storage: {name: 'pubProvidedId', type: 'cookie'}\n }]\n }\n });\n expect(utils.logInfo.args[0][0]).to.exist.and.to.contain('User ID - usersync config updated for 2 submodules');\n });\n\n it('config syncDelay updates module correctly', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n syncDelay: 99,\n userIds: [{\n name: 'pubCommonId',\n storage: {name: 'pubCommonId', type: 'cookie'}\n }]\n }\n });\n expect(syncDelay).to.equal(99);\n });\n\n it('config auctionDelay updates module correctly', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n auctionDelay: 100,\n userIds: [{\n name: 'pubCommonId',\n storage: {name: 'pubCommonId', type: 'cookie'}\n }]\n }\n });\n expect(auctionDelay).to.equal(100);\n });\n\n it('config auctionDelay defaults to 500 if not a number', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n auctionDelay: '',\n userIds: [{\n name: 'pubCommonId',\n storage: {name: 'pubCommonId', type: 'cookie'}\n }]\n }\n });\n expect(auctionDelay).to.equal(500);\n });\n\n describe('auction and user sync delays', function () {\n let sandbox;\n let adUnits;\n let mockIdCallback;\n let auctionSpy;\n\n beforeEach(function () {\n sandbox = sinon.createSandbox();\n sandbox.stub(events, 'on');\n sandbox.stub(coreStorage, 'getCookie');\n\n // remove cookie\n coreStorage.setCookie('MOCKID', '', EXPIRED_COOKIE_DATE);\n\n adUnits = [getAdUnitMock()];\n\n auctionSpy = sandbox.spy();\n mockIdCallback = sandbox.stub();\n const mockIdSystem = {\n name: 'mockId',\n decode: function (value) {\n return {\n 'mid': value['MOCKID']\n };\n },\n getId: function () {\n const storedId = coreStorage.getCookie('MOCKID');\n if (storedId) {\n return {id: {'MOCKID': storedId}};\n }\n return {callback: mockIdCallback};\n }\n };\n initModule(config);\n attachIdSystem(mockIdSystem, true);\n });\n\n afterEach(function () {\n requestBids.removeAll();\n config.resetConfig();\n sandbox.restore();\n coreStorage.setCookie('MOCKID', '', EXPIRED_COOKIE_DATE);\n });\n\n it('delays auction if auctionDelay is set, timing out at auction delay', function () {\n config.setConfig({\n userSync: {\n auctionDelay: 33,\n syncDelay: 77,\n userIds: [{\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n return runBidsHook(auctionSpy, {adUnits}).then(() => {\n // check auction was delayed\n startDelay.calledWith(33);\n auctionSpy.calledOnce.should.equal(false);\n\n // check ids were fetched\n mockIdCallback.calledOnce.should.equal(true);\n\n // mock timeout\n return startDelay.resolve();\n }).then(() => {\n auctionSpy.calledOnce.should.equal(true);\n\n // does not call auction again once ids are synced\n mockIdCallback.callArgWith(0, {'MOCKID': '1234'});\n auctionSpy.calledOnce.should.equal(true);\n\n // no sync after auction ends\n events.on.called.should.equal(false);\n });\n });\n\n it('delays auction if auctionDelay is set, continuing auction if ids are fetched before timing out', function () {\n config.setConfig({\n userSync: {\n auctionDelay: 33,\n syncDelay: 77,\n userIds: [{\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n return runBidsHook(auctionSpy, {adUnits}).then(() => {\n // check auction was delayed\n startDelay.calledWith(33);\n auctionSpy.calledOnce.should.equal(false);\n\n // check ids were fetched\n mockIdCallback.calledOnce.should.equal(true);\n\n // if ids returned, should continue auction\n mockIdCallback.callArgWith(0, {'MOCKID': '1234'});\n return clearStack();\n }).then(() => {\n auctionSpy.calledOnce.should.equal(true);\n\n // check ids were copied to bids\n adUnits.forEach(unit => {\n unit.bids.forEach(bid => {\n expect(bid.userIdAsEids).to.not.exist;// \"mid\" is an un-known submodule for USER_IDS_CONFIG in eids.js\n });\n });\n\n // no sync after auction ends\n events.on.called.should.equal(false);\n });\n });\n\n it('does not delay auction if set to 0, delays id fetch after auction ends with syncDelay', function () {\n config.setConfig({\n userSync: {\n auctionDelay: 0,\n syncDelay: 77,\n userIds: [{\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n return expectImmediateBidHook(auctionSpy, {adUnits})\n .then(() => {\n // should not delay auction\n auctionSpy.calledOnce.should.equal(true);\n\n // check user sync is delayed after auction is ended\n mockIdCallback.calledOnce.should.equal(false);\n events.on.calledOnce.should.equal(true);\n events.on.calledWith(EVENTS.AUCTION_END, sinon.match.func);\n\n // once auction is ended, sync user ids after delay\n events.on.callArg(1);\n callbackDelay.calledWith(77);\n mockIdCallback.calledOnce.should.equal(false);\n\n return callbackDelay.resolve();\n }).then(() => {\n // once sync delay is over, ids should be fetched\n mockIdCallback.calledOnce.should.equal(true);\n });\n });\n\n it('does not delay user id sync after auction ends if set to 0', function () {\n config.setConfig({\n userSync: {\n auctionDelay: 0,\n syncDelay: 0,\n userIds: [{\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n return expectImmediateBidHook(auctionSpy, {adUnits})\n .then(() => {\n // auction should not be delayed\n auctionSpy.calledOnce.should.equal(true);\n\n // sync delay after auction is ended\n mockIdCallback.calledOnce.should.equal(false);\n events.on.calledOnce.should.equal(true);\n events.on.calledWith(EVENTS.AUCTION_END, sinon.match.func);\n\n // once auction is ended, if no sync delay, fetch ids\n events.on.callArg(1);\n callbackDelay.calledWith(0);\n return callbackDelay.resolve();\n }).then(() => {\n mockIdCallback.calledOnce.should.equal(true);\n });\n });\n\n it('does not delay auction if there are no ids to fetch', function () {\n coreStorage.getCookie.withArgs('MOCKID').returns('123456778');\n config.setConfig({\n userSync: {\n auctionDelay: 33,\n syncDelay: 77,\n userIds: [{\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n return runBidsHook(auctionSpy, {adUnits}).then(() => {\n auctionSpy.calledOnce.should.equal(true);\n mockIdCallback.calledOnce.should.equal(false);\n\n // no sync after auction ends\n events.on.called.should.equal(false);\n });\n });\n });\n\n describe('Start auction hook appends userId to first party data', function () {\n let adUnits;\n\n beforeEach(function () {\n adUnits = [getAdUnitMock()];\n });\n\n function getGlobalEids() {\n return new Promise((resolve) => {\n startAuctionHook(function ({ortb2Fragments}) {\n resolve(ortb2Fragments.global.user?.ext?.eids);\n }, {ortb2Fragments: { global: {} }})\n })\n }\n\n it('test hook from pubcommonid cookie', async function () {\n coreStorage.setCookie('pubcid', 'testpubcid', (new Date(Date.now() + 100000).toUTCString()));\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie']));\n try {\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'testpubcid', atype: 1}]\n }])\n } finally {\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n }\n });\n\n it('test hook from pubcommonid html5', async function () {\n // simulate existing browser local storage values\n localStorage.setItem('pubcid', 'testpubcid');\n localStorage.setItem('pubcid_exp', new Date(Date.now() + 100000).toUTCString());\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'html5']));\n\n try {\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'testpubcid', atype: 1}]\n }]);\n } finally {\n localStorage.removeItem('pubcid');\n localStorage.removeItem('pubcid_exp');\n }\n });\n\n it('test hook from pubcommonid cookie&html5', async function () {\n const expiration = new Date(Date.now() + 100000).toUTCString();\n coreStorage.setCookie('pubcid', 'testpubcid', expiration);\n localStorage.setItem('pubcid', 'testpubcid');\n localStorage.setItem('pubcid_exp', expiration);\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie&html5']));\n\n try {\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'testpubcid', atype: 1}]\n }]);\n } finally {\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n localStorage.removeItem('pubcid');\n localStorage.removeItem('pubcid_exp');\n }\n });\n\n it('test hook from pubcommonid cookie&html5, no cookie present', async function () {\n localStorage.setItem('pubcid', 'testpubcid');\n localStorage.setItem('pubcid_exp', new Date(Date.now() + 100000).toUTCString());\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie&html5']));\n\n try {\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'testpubcid', atype: 1}]\n }])\n } finally {\n localStorage.removeItem('pubcid');\n localStorage.removeItem('pubcid_exp');\n }\n });\n\n it('test hook from pubcommonid cookie&html5, no local storage entry', async function () {\n coreStorage.setCookie('pubcid', 'testpubcid', (new Date(Date.now() + 100000).toUTCString()));\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie&html5']));\n\n try {\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'testpubcid', atype: 1}]\n }]);\n } finally {\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n }\n });\n\n it('test hook from pubcommonid config value object', async function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigValueMock('pubCommonId', {'pubcidvalue': 'testpubcidvalue'}));\n expect(await getGlobalEids()).to.not.exist; // \"pubcidvalue\" is an un-known submodule for USER_IDS_CONFIG in eids.js\n });\n\n it('test hook from pubProvidedId config params', async function () {\n init(config);\n setSubmoduleRegistry([pubProvidedIdSubmodule]);\n config.setConfig({\n userSync: {\n syncDelay: 0,\n userIds: [{\n name: 'pubProvidedId',\n params: {\n eids: [{\n source: 'example.com',\n uids: [{\n id: 'value read from cookie or local storage',\n ext: {\n stype: 'ppuid'\n }\n }]\n }, {\n source: 'id-partner.com',\n uids: [{\n id: 'value read from cookie or local storage',\n ext: {\n stype: 'dmp'\n }\n }]\n }],\n eidsFunction: function () {\n return [{\n source: 'provider.com',\n uids: [{\n id: 'value read from cookie or local storage',\n ext: {\n stype: 'sha256email'\n }\n }]\n }]\n }\n }\n }\n ]\n }\n });\n\n const eids = await getGlobalEids();\n expect(eids).to.deep.contain(\n {\n source: 'example.com',\n uids: [{\n id: 'value read from cookie or local storage',\n ext: {\n stype: 'ppuid'\n }\n }]\n });\n expect(eids).to.deep.contain({\n source: 'provider.com',\n uids: [{\n id: 'value read from cookie or local storage',\n ext: {\n stype: 'sha256email'\n }\n }]\n });\n });\n\n it('should add new id system ', async function () {\n coreStorage.setCookie('pubcid', 'testpubcid', (new Date(Date.now() + 5000).toUTCString()));\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig({\n userSync: {\n syncDelay: 0,\n userIds: [{\n name: 'pubCommonId', storage: {name: 'pubcid', type: 'cookie'}\n }, {\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n // Add new submodule named 'mockId'\n attachIdSystem({\n name: 'mockId',\n decode: function (value) {\n return {\n 'mid': value['MOCKID']\n };\n },\n getId: function (config, consentData, storedId) {\n if (storedId) return {};\n return {id: {'MOCKID': '1234'}};\n },\n eids: {\n mid: {\n source: 'mockid'\n }\n }\n });\n\n const eids = await getGlobalEids();\n expect(eids.find(eid => eid.source === 'mockid')).to.exist;\n });\n\n describe('storage disclosure', () => {\n let disclose;\n function discloseStorageHook(next, ...args) {\n disclose(...args);\n next(...args);\n }\n before(() => {\n discloseStorageUse.before(discloseStorageHook)\n })\n after(() => {\n discloseStorageUse.getHooks({hook: discloseStorageHook}).remove();\n })\n beforeEach(() => {\n disclose = sinon.stub();\n setSubmoduleRegistry([\n {\n name: 'mockId',\n }\n ]);\n });\n\n function setStorage(storage) {\n config.setConfig({\n userSync: {\n userIds: [{\n name: 'mockId',\n storage\n }]\n }\n })\n }\n\n function expectDisclosure(storageType, name, maxAgeSeconds) {\n const suffixes = storageType === STORAGE_TYPE_COOKIES ? COOKIE_SUFFIXES : HTML5_SUFFIXES;\n suffixes.forEach(suffix => {\n const expectation = {\n identifier: name + suffix,\n type: storageType === STORAGE_TYPE_COOKIES ? 'cookie' : 'web',\n purposes: [1, 2, 3, 4, 7],\n }\n if (storageType === STORAGE_TYPE_COOKIES) {\n Object.assign(expectation, {\n maxAgeSeconds: maxAgeSeconds,\n cookieRefresh: true\n })\n }\n sinon.assert.calledWith(disclose, 'userId', expectation)\n })\n }\n\n it('should disclose cookie storage', async () => {\n setStorage({\n name: 'mid_cookie',\n type: STORAGE_TYPE_COOKIES,\n expires: 1\n })\n await getGlobal().refreshUserIds();\n expectDisclosure(STORAGE_TYPE_COOKIES, 'mid_cookie', 1 * 24 * 60 * 60);\n });\n\n it('should disclose html5 storage', async () => {\n setStorage({\n name: 'mid_localStorage',\n type: STORAGE_TYPE_LOCALSTORAGE,\n expires: 1\n });\n await getGlobal().refreshUserIds();\n expectDisclosure(STORAGE_TYPE_LOCALSTORAGE, 'mid_localStorage');\n });\n\n it('should disclose both', async () => {\n setStorage({\n name: 'both',\n type: `${STORAGE_TYPE_COOKIES}&${STORAGE_TYPE_LOCALSTORAGE}`,\n expires: 1\n });\n await getGlobal().refreshUserIds();\n expectDisclosure(STORAGE_TYPE_COOKIES, 'both', 1 * 24 * 60 * 60);\n expectDisclosure(STORAGE_TYPE_LOCALSTORAGE, 'both');\n });\n\n it('should handle cookies with no expires', async () => {\n setStorage({\n name: 'cookie',\n type: STORAGE_TYPE_COOKIES\n });\n await getGlobal().refreshUserIds();\n expectDisclosure(STORAGE_TYPE_COOKIES, 'cookie', 0);\n })\n })\n\n describe('activity controls', () => {\n let isAllowed;\n const MOCK_IDS = ['mockId1', 'mockId2']\n beforeEach(() => {\n isAllowed = sinon.stub(dep, 'isAllowed');\n init(config);\n setSubmoduleRegistry([]);\n const mods = MOCK_IDS.map((name) => ({\n name,\n decode: function (value) {\n return {\n [name]: value\n };\n },\n getId: function () {\n return {id: `${name}Value`};\n },\n eids: {\n [name]: {\n source: name\n }\n }\n }));\n mods.forEach(attachIdSystem);\n });\n afterEach(() => {\n isAllowed.restore();\n });\n\n it('should check for enrichEids activity permissions', async () => {\n isAllowed.callsFake((activity, params) => {\n return !(activity === ACTIVITY_ENRICH_EIDS &&\n params[ACTIVITY_PARAM_COMPONENT_TYPE] === MODULE_TYPE_UID &&\n params[ACTIVITY_PARAM_COMPONENT_NAME] === MOCK_IDS[0])\n })\n\n config.setConfig({\n userSync: {\n syncDelay: 0,\n userIds: MOCK_IDS.map(name => ({\n name, storage: {name, type: 'cookie'}\n }))\n }\n });\n const eids = await getGlobalEids();\n const activeSources = eids.map(({source}) => source);\n expect(Array.from(new Set(activeSources))).to.have.members([MOCK_IDS[1]]);\n });\n })\n });\n\n describe('callbacks at the end of auction', function () {\n beforeEach(function () {\n config.setConfig({\n // callbacks run after auction end only when auctionDelay is 0\n userSync: {\n auctionDelay: 0,\n }\n })\n sinon.stub(events, 'getEvents').returns([]);\n sinon.stub(utils, 'triggerPixel');\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n });\n\n afterEach(function () {\n events.getEvents.restore();\n utils.triggerPixel.restore();\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n resetConsentData();\n delete window.__tcfapi;\n });\n\n function endAuction() {\n events.emit(EVENTS.AUCTION_END, {});\n return new Promise((resolve) => setTimeout(resolve));\n }\n\n it('pubcid callback with url', function () {\n let customCfg = getConfigMock(['pubCommonId', 'pubcid', 'cookie']);\n customCfg = addConfig(customCfg, 'params', {pixelUrl: '/any/pubcid/url'});\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.mergeConfig(customCfg);\n return runBidsHook(sinon.stub(), {}).then(() => {\n expect(utils.triggerPixel.called).to.be.false;\n return endAuction();\n }).then(() => {\n expect(utils.triggerPixel.getCall(0).args[0]).to.include('/any/pubcid/url');\n });\n });\n });\n\n describe('Submodule ID storage', () => {\n let submodule;\n beforeEach(() => {\n submodule = {\n submodule: {},\n config: {\n name: 'mockId',\n },\n storageMgr: {\n setCookie: sinon.stub(),\n setDataInLocalStorage: sinon.stub()\n },\n enabledStorageTypes: ['cookie', 'html5']\n }\n });\n\n describe('Set cookie behavior', function () {\n beforeEach(() => {\n submodule.config.storage = {\n type: 'cookie'\n }\n });\n it('should allow submodules to override the domain', function () {\n submodule.submodule.domainOverride = function() {\n return 'foo.com'\n }\n setStoredValue(submodule, 'bar');\n expect(submodule.storageMgr.setCookie.getCall(0).args[4]).to.equal('foo.com');\n });\n\n it('should pass no domain if submodule does not override the domain', function () {\n setStoredValue(submodule, 'bar');\n expect(submodule.storageMgr.setCookie.getCall(0).args[4]).to.equal(null);\n });\n });\n });\n\n describe('Consent changes determine getId refreshes', function () {\n let expStr;\n let adUnits;\n let mockGetId;\n let mockDecode;\n let mockExtendId;\n let mockIdSystem;\n let userIdConfig;\n\n const mockIdCookieName = 'MOCKID';\n\n beforeEach(function () {\n mockGetId = sinon.stub();\n mockDecode = sinon.stub();\n mockExtendId = sinon.stub();\n mockIdSystem = {\n name: 'mockId',\n getId: mockGetId,\n decode: mockDecode,\n extendId: mockExtendId\n };\n userIdConfig = {\n userSync: {\n userIds: [{\n name: 'mockId',\n storage: {\n name: 'MOCKID',\n type: 'cookie',\n refreshInSeconds: 30\n }\n }],\n auctionDelay: 5\n }\n };\n\n // clear cookies\n expStr = (new Date(Date.now() + 25000).toUTCString());\n coreStorage.setCookie(mockIdCookieName, '', EXPIRED_COOKIE_DATE);\n coreStorage.setCookie(`${mockIdCookieName}_last`, '', EXPIRED_COOKIE_DATE);\n coreStorage.setCookie(`${mockIdCookieName}_cst`, '', EXPIRED_COOKIE_DATE);\n allConsent.reset();\n\n // init\n adUnits = [getAdUnitMock()];\n init(config);\n\n // init id system\n attachIdSystem(mockIdSystem);\n });\n\n afterEach(function () {\n config.resetConfig();\n });\n\n function setStorage({\n val = JSON.stringify({id: '1234'}),\n lastDelta = 60 * 1000,\n cst = null\n } = {}) {\n coreStorage.setCookie(mockIdCookieName, val, expStr);\n coreStorage.setCookie(`${mockIdCookieName}_last`, (new Date(Date.now() - lastDelta).toUTCString()), expStr);\n if (cst != null) {\n coreStorage.setCookie(`${mockIdCookieName}_cst`, cst, expStr);\n }\n }\n\n it('calls getId if no stored consent data and refresh is not needed', function () {\n setStorage({lastDelta: 1000});\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.calledOnce(mockGetId);\n sinon.assert.calledOnce(mockDecode);\n sinon.assert.notCalled(mockExtendId);\n });\n });\n\n it('calls getId if no stored consent data but refresh is needed', function () {\n setStorage();\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.calledOnce(mockGetId);\n sinon.assert.calledOnce(mockDecode);\n sinon.assert.notCalled(mockExtendId);\n });\n });\n\n it('calls getId if empty stored consent and refresh not needed', function () {\n setStorage({cst: ''});\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.calledOnce(mockGetId);\n sinon.assert.calledOnce(mockDecode);\n sinon.assert.notCalled(mockExtendId);\n });\n });\n\n it('calls getId if stored consent does not match current consent and refresh not needed', function () {\n setStorage({cst: getConsentHash()});\n gdprDataHandler.setConsentData({\n consentString: 'different'\n });\n\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.calledOnce(mockGetId);\n sinon.assert.calledOnce(mockDecode);\n sinon.assert.notCalled(mockExtendId);\n });\n });\n\n it('does not call getId if stored consent matches current consent and refresh not needed', function () {\n setStorage({lastDelta: 1000, cst: getConsentHash()});\n\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.notCalled(mockGetId);\n sinon.assert.calledOnce(mockDecode);\n sinon.assert.calledOnce(mockExtendId);\n });\n });\n\n it('calls getId with the list of enabled storage types', function() {\n setStorage({lastDelta: 1000});\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.calledOnce(mockGetId);\n\n expect(mockGetId.getCall(0).args[0].enabledStorageTypes).to.deep.equal([ userIdConfig.userSync.userIds[0].storage.type ]);\n });\n });\n });\n\n describe('requestDataDeletion', () => {\n function idMod(name, value) {\n return {\n name,\n getId() {\n return {id: value}\n },\n decode(d) {\n return {[name]: d}\n },\n onDataDeletionRequest: sinon.stub()\n }\n }\n let mod1, mod2, mod3, mod4, cfg1, cfg2, cfg3, cfg4;\n\n beforeEach(() => {\n init(config);\n mod1 = idMod('id1', 'val1');\n mod2 = idMod('id2', 'val2');\n mod3 = idMod('id3', 'val3');\n mod4 = idMod('id4', 'val4');\n cfg1 = getStorageMock('id1', 'id1', 'cookie');\n cfg2 = getStorageMock('id2', 'id2', 'html5');\n cfg3 = getStorageMock('id3', 'id3', 'cookie&html5');\n cfg4 = {name: 'id4', value: {id4: 'val4'}};\n setSubmoduleRegistry([mod1, mod2, mod3, mod4]);\n config.setConfig({\n auctionDelay: 1,\n userSync: {\n userIds: [cfg1, cfg2, cfg3, cfg4]\n }\n });\n return getGlobal().refreshUserIds();\n });\n\n it('deletes stored IDs', () => {\n expect(coreStorage.getCookie('id1')).to.exist;\n expect(coreStorage.getDataFromLocalStorage('id2')).to.exist;\n expect(coreStorage.getCookie('id3')).to.exist;\n expect(coreStorage.getDataFromLocalStorage('id3')).to.exist;\n requestDataDeletion(sinon.stub());\n expect(coreStorage.getCookie('id1')).to.not.exist;\n expect(coreStorage.getDataFromLocalStorage('id2')).to.not.exist;\n expect(coreStorage.getCookie('id3')).to.not.exist;\n expect(coreStorage.getDataFromLocalStorage('id3')).to.not.exist;\n });\n\n it('invokes onDataDeletionRequest', () => {\n requestDataDeletion(sinon.stub());\n sinon.assert.calledWith(mod1.onDataDeletionRequest, cfg1, {id1: 'val1'});\n sinon.assert.calledWith(mod2.onDataDeletionRequest, cfg2, {id2: 'val2'});\n sinon.assert.calledWith(mod3.onDataDeletionRequest, cfg3, {id3: 'val3'});\n sinon.assert.calledWith(mod4.onDataDeletionRequest, cfg4, {id4: 'val4'});\n });\n\n describe('does not choke when onDataDeletionRequest', () => {\n Object.entries({\n 'is missing': () => { delete mod1.onDataDeletionRequest },\n 'throws': () => { mod1.onDataDeletionRequest.throws(new Error()) }\n }).forEach(([t, setup]) => {\n it(t, () => {\n setup();\n const next = sinon.stub();\n const arg = {random: 'value'};\n requestDataDeletion(next, arg);\n sinon.assert.calledOnce(mod2.onDataDeletionRequest);\n sinon.assert.calledOnce(mod3.onDataDeletionRequest);\n sinon.assert.calledOnce(mod4.onDataDeletionRequest);\n sinon.assert.calledWith(next, arg);\n })\n })\n })\n });\n });\n\n describe('handles config with ESP configuration in user sync object', function() {\n describe('Call registerSignalSources to register signal sources with gtag', function () {\n it('pbjs.registerSignalSources should be defined', () => {\n expect(typeof (getGlobal()).registerSignalSources).to.equal('function');\n });\n })\n\n describe('Call getEncryptedEidsForSource to get encrypted Eids for source', function() {\n const signalSources = ['pubcid.org'];\n\n it('pbjs.getEncryptedEidsForSource should be defined', () => {\n expect(typeof (getGlobal()).getEncryptedEidsForSource).to.equal('function');\n });\n\n it('pbjs.getEncryptedEidsForSource should return the string without encryption if encryption is false', () => {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [\n {\n 'name': 'sharedId',\n 'storage': {\n 'type': 'cookie',\n 'name': '_pubcid',\n 'expires': 365\n }\n },\n {\n 'name': 'pubcid.org'\n }\n ]\n },\n });\n const encrypt = false;\n return (getGlobal()).getEncryptedEidsForSource(signalSources[0], encrypt).then((data) => {\n const users = (getGlobal()).getUserIdsAsEids();\n expect(data).to.equal(users[0].uids[0].id);\n })\n });\n\n it('pbjs.getEncryptedEidsForSource should return prioritized id as non-encrypted string', (done) => {\n init(config);\n const EIDS = {\n uid2: {\n source: 'uidapi.com',\n getValue(data) {\n return data.id\n }\n },\n pubcid: {\n source: 'pubcid.org',\n },\n lipb: {\n source: 'liveintent.com',\n getValue(data) {\n return data.lipbid\n }\n },\n merkleId: {\n source: 'merkleinc.com',\n getValue(data) {\n return data.id\n }\n }\n }\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {uid2: {id: 'uid2_value'}}}, null, EIDS),\n createMockIdSubmodule('mockId2Module', {id: {pubcid: 'pubcid_value', lipb: {lipbid: 'lipbid_value_from_mockId2Module'}}}, null, EIDS),\n createMockIdSubmodule('mockId3Module', {id: {uid2: {id: 'uid2_value_from_mockId3Module'}, pubcid: 'pubcid_value_from_mockId3Module', lipb: {lipbid: 'lipbid_value'}, merkleId: {id: 'merkleId_value_from_mockId3Module'}}}, null, EIDS),\n createMockIdSubmodule('mockId4Module', {id: {merkleId: {id: 'merkleId_value'}}}, null, EIDS)\n ]);\n config.setConfig({\n userSync: {\n idPriority: {\n uid2: ['mockId3Module', 'mockId1Module'],\n merkleId: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n const expctedIds = [\n 'pubcid_value',\n 'uid2_value_from_mockId3Module',\n 'merkleId_value',\n 'lipbid_value_from_mockId2Module'\n ];\n\n const encrypt = false;\n\n Promise.all([\n getGlobal().getEncryptedEidsForSource('pubcid.org', encrypt),\n getGlobal().getEncryptedEidsForSource('uidapi.com', encrypt),\n getGlobal().getEncryptedEidsForSource('merkleinc.com', encrypt),\n getGlobal().getEncryptedEidsForSource('liveintent.com', encrypt)\n ]).then((result) => {\n expect(result).to.deep.equal(expctedIds);\n done();\n })\n });\n\n describe('pbjs.getEncryptedEidsForSource', () => {\n beforeEach(() => {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'pubCommonId', value: {'pubcid': '11111'}\n }]\n }\n });\n });\n\n it('should return the string base64 encryption if encryption is true', (done) => {\n const encrypt = true;\n (getGlobal()).getEncryptedEidsForSource(signalSources[0], encrypt).then((result) => {\n expect(result.startsWith('1||')).to.true;\n done();\n }).catch(done);\n });\n\n it('pbjs.getEncryptedEidsForSource should return string if custom function is defined', () => {\n const getCustomSignal = () => {\n return '{\"keywords\":[\"tech\",\"auto\"]}';\n }\n const expectedString = '1||eyJrZXl3b3JkcyI6WyJ0ZWNoIiwiYXV0byJdfQ==';\n const encrypt = false;\n const source = 'pubmatic.com';\n return (getGlobal()).getEncryptedEidsForSource(source, encrypt, getCustomSignal).then((result) => {\n expect(result).to.equal(expectedString);\n });\n });\n });\n\n it('pbjs.getUserIdsAsEidBySource', (done) => {\n const users = {\n 'source': 'pubcid.org',\n 'uids': [\n {\n 'id': '11111',\n 'atype': 1\n }\n ]\n }\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'pubCommonId', value: {'pubcid': '11111'}\n }]\n }\n });\n expect(typeof (getGlobal()).getUserIdsAsEidBySource).to.equal('function');\n (getGlobal()).getUserIdsAsync().then(() => {\n expect(getGlobal().getUserIdsAsEidBySource(signalSources[0])).to.deep.equal(users);\n done();\n });\n });\n\n it('pbjs.getUserIdsAsEidBySource with priority config available to core', () => {\n init(config);\n const uid2Eids = createMockEid('uid2', 'uidapi.com')\n const pubcEids = createMockEid('pubcid', 'pubcid.org')\n const liveIntentEids = createMockEid('lipb', 'liveintent.com')\n const merkleEids = createMockEid('merkleId', 'merkleinc.com')\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {uid2: {id: 'uid2_value'}}}, null, uid2Eids),\n createMockIdSubmodule('mockId2Module', {id: {pubcid: 'pubcid_value', lipb: {lipbid: 'lipbid_value_from_mockId2Module'}}}, null, {...pubcEids, ...liveIntentEids}),\n createMockIdSubmodule('mockId3Module', {id: {uid2: {id: 'uid2_value_from_mockId3Module'}, pubcid: 'pubcid_value_from_mockId3Module', lipb: {lipbid: 'lipbid_value'}, merkleId: {id: 'merkleId_value_from_mockId3Module'}}}, null, {...uid2Eids, ...pubcEids, ...liveIntentEids}),\n createMockIdSubmodule('mockId4Module', {id: {merkleId: {id: 'merkleId_value'}}}, null, merkleEids)\n ]);\n config.setConfig({\n userSync: {\n idPriority: {\n uid2: ['mockId3Module', 'mockId1Module'],\n merkleId: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n const ids = {\n 'uidapi.com': {'uid2': {id: 'uid2_value_from_mockId3Module'}},\n 'pubcid.org': {'pubcid': 'pubcid_value'},\n 'liveintent.com': {'lipb': {lipbid: 'lipbid_value_from_mockId2Module'}},\n 'merkleinc.com': {'merkleId': {id: 'merkleId_value'}}\n };\n\n return getGlobal().getUserIdsAsync().then(() => {\n expect(getGlobal().getUserIdsAsEidBySource('pubcid.org')).to.deep.equal(createEidsArray(ids['pubcid.org'])[0]);\n expect(getGlobal().getUserIdsAsEidBySource('uidapi.com')).to.deep.equal(createEidsArray(ids['uidapi.com'])[0]);\n expect(getGlobal().getUserIdsAsEidBySource('merkleinc.com')).to.deep.equal(createEidsArray(ids['merkleinc.com'])[0]);\n expect(getGlobal().getUserIdsAsEidBySource('liveintent.com')).to.deep.equal(createEidsArray(ids['liveintent.com'])[0]);\n });\n });\n })\n });\n\n describe('enrichEids', () => {\n let idValues;\n\n function mockIdSubmodule(key, ...extraKeys) {\n return {\n name: `${key}Module`,\n decode(v) { return v },\n getId() {\n return {\n id: Object.fromEntries(\n idValues[key]?.map(mod => [mod, key === mod ? `${key}_value` : `${mod}_value_from_${key}Module`])\n )\n }\n },\n primaryIds: [key],\n eids: {\n [key]: {\n source: `${key}.com`,\n atype: 1,\n },\n ...Object.fromEntries(extraKeys.map(extraKey => [extraKey, {\n source: `${extraKey}.com`,\n atype: 1,\n getUidExt() {\n return {provider: `${key}Module`}\n }\n }]))\n }\n }\n }\n\n beforeEach(() => {\n idValues = {\n mockId1: ['mockId1'],\n mockId2: ['mockId2', 'mockId3'],\n mockId3: ['mockId1', 'mockId2', 'mockId3', 'mockId4'],\n mockId4: ['mockId4']\n }\n init(config);\n\n setSubmoduleRegistry([\n mockIdSubmodule('mockId1'),\n mockIdSubmodule('mockId2', 'mockId3'),\n mockIdSubmodule('mockId3', 'mockId1', 'mockId2', 'mockId4'),\n mockIdSubmodule('mockId4')\n ]);\n })\n\n function enrich({global = {}, bidder = {}} = {}) {\n return getGlobal().getUserIdsAsync().then(() => {\n enrichEids({global, bidder});\n return {global, bidder};\n })\n }\n\n function eidsFrom(nameFromModuleMapping) {\n return Object.entries(nameFromModuleMapping).map(([key, module]) => {\n const owner = `${key}Module` === module\n const uid = {\n id: owner ? `${key}_value` : `${key}_value_from_${module}`,\n atype: 1,\n };\n if (!owner) {\n uid.ext = {provider: module}\n }\n return {\n source: `${key}.com`,\n uids: [uid]\n }\n })\n }\n\n function bidderEids(bidderMappings) {\n return Object.fromEntries(\n Object.entries(bidderMappings).map(([bidder, mapping]) => [bidder, {user: {ext: {eids: eidsFrom(mapping)}}}])\n )\n }\n\n it('should use lower-priority module if higher priority module cannot provide an id', () => {\n idValues.mockId3 = []\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module', 'mockId1Module']\n },\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId3Module' },\n ]\n }\n });\n return enrich().then(({global}) => {\n expect(global.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId1Module'\n }))\n });\n });\n\n it('should not choke if no id is available for a module', () => {\n idValues.mockId1 = []\n config.setConfig({\n userSync: {\n userIds: [\n { name: 'mockId1Module' },\n ]\n }\n });\n return enrich().then(({global}) => {\n expect(global.user?.ext?.eids).to.not.exist;\n });\n });\n\n it('should add EIDs that are not bidder-restricted', () => {\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module', 'mockId1Module'],\n mockId4: ['mockId4Module', 'mockId3Module']\n },\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' },\n ]\n }\n });\n return enrich().then(({global}) => {\n expect(global.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId3Module',\n mockId2: 'mockId2Module',\n mockId3: 'mockId3Module',\n mockId4: 'mockId4Module'\n }));\n });\n });\n\n it('should separate bidder-restricted eids', () => {\n config.setConfig({\n userSync: {\n userIds: [\n { name: 'mockId1Module', bidders: ['bidderA', 'bidderB'] },\n { name: 'mockId4Module' },\n ]\n }\n });\n return enrich().then(({global, bidder}) => {\n expect(global.user.ext.eids).to.eql(eidsFrom({\n mockId4: 'mockId4Module'\n }));\n [bidder.bidderA, bidder.bidderB].forEach(bidderCfg => {\n expect(bidderCfg.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId1Module'\n }))\n })\n });\n })\n\n describe('conflicting bidder filters', () => {\n beforeEach(() => {\n idValues.mockId2 = ['mockId1'];\n idValues.mockId3 = ['mockId1'];\n idValues.mockId4 = ['mockId1'];\n setSubmoduleRegistry([\n mockIdSubmodule('mockId1'),\n mockIdSubmodule('mockId2', 'mockId1'),\n mockIdSubmodule('mockId3', 'mockId1'),\n mockIdSubmodule('mockId4', 'mockId1')\n ]);\n })\n\n function bidderEids(bidderEidMap) {\n return Object.fromEntries(\n Object.entries(bidderEidMap).map(([bidder, eidMap]) => [bidder, {\n user: {\n ext: {\n eids: eidsFrom(eidMap)\n }\n }\n }])\n )\n }\n describe('primary provider is restricted', () => {\n function setup() {\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId1Module', 'mockId2Module', 'mockId3Module', 'mockId4Module'],\n },\n userIds: [\n { name: 'mockId1Module', bidders: ['bidderA'] },\n { name: 'mockId2Module', bidders: ['bidderA', 'bidderB'] },\n { name: 'mockId3Module', bidders: ['bidderC'] },\n { name: 'mockId4Module' }\n ]\n }\n });\n }\n\n it('should restrict ID if it comes from restricted modules', async () => {\n setup();\n const {global, bidder} = await enrich();\n expect(global).to.eql({});\n expect(bidder).to.eql(bidderEids({\n bidderA: {\n mockId1: 'mockId1Module'\n },\n bidderB: {\n mockId1: 'mockId2Module'\n },\n bidderC: {\n mockId1: 'mockId3Module'\n }\n }))\n });\n it('should use secondary module restrictions if ID comes from it', async () => {\n idValues.mockId1 = [];\n setup();\n const {global, bidder} = await enrich();\n expect(global).to.eql({});\n expect(bidder).to.eql(bidderEids({\n bidderA: {\n mockId1: 'mockId2Module'\n },\n bidderB: {\n mockId1: 'mockId2Module'\n },\n bidderC: {\n mockId1: 'mockId3Module'\n }\n }));\n });\n it('should not restrict if ID comes from unrestricted module', async () => {\n idValues.mockId1 = [];\n idValues.mockId2 = [];\n idValues.mockId3 = [];\n setup();\n const {global, bidder} = await enrich();\n expect(global.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId4Module'\n }));\n expect(bidder).to.eql({});\n });\n });\n describe('secondary provider is restricted', () => {\n function setup() {\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId1Module', 'mockId2Module', 'mockId3Module', 'mockId4Module'],\n },\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module', bidders: ['bidderA'] },\n { name: 'mockId3Module', bidders: ['bidderA', 'bidderB'] },\n { name: 'mockId4Module', bidders: ['bidderC'] },\n ]\n }\n });\n }\n it('should not restrict if primary id is available', async () => {\n setup();\n const {global, bidder} = await enrich();\n expect(global.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId1Module'\n }));\n expect(bidder).to.eql({});\n });\n it('should use secondary modules\\' restrictions if they provide the ID', async () => {\n idValues.mockId1 = [];\n setup();\n const {global, bidder} = await enrich();\n expect(global).to.eql({});\n expect(bidder).to.eql(bidderEids({\n bidderA: {\n mockId1: 'mockId2Module'\n },\n bidderB: {\n mockId1: 'mockId3Module'\n },\n bidderC: {\n mockId1: 'mockId4Module'\n }\n }))\n });\n })\n })\n\n it('should provide bidder-specific IDs, even when they conflict across bidders', () => {\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId1Module', 'mockId3Module'],\n },\n userIds: [\n { name: 'mockId1Module', bidders: ['bidderA'] },\n { name: 'mockId3Module', bidders: ['bidderB'] },\n ]\n }\n });\n return enrich().then(({global, bidder}) => {\n expect(global.user?.ext?.eids).to.not.exist;\n expect(bidder).to.eql(bidderEids({\n bidderA: {\n mockId1: 'mockId1Module'\n },\n bidderB: {\n mockId1: 'mockId3Module',\n mockId2: 'mockId3Module',\n mockId3: 'mockId3Module',\n mockId4: 'mockId3Module'\n }\n }));\n });\n });\n\n it('should not override pub-provided EIDS', () => {\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [\n { name: 'mockId1Module', bidders: ['bidderA', 'bidderB'] },\n { name: 'mockId4Module' },\n ]\n }\n });\n const globalEids = [{pub: 'provided'}];\n const bidderAEids = [{bidder: 'A'}]\n const fpd = {\n global: {user: {ext: {eids: globalEids}}},\n bidder: {\n bidderA: {\n user: {ext: {eids: bidderAEids}}\n }\n }\n }\n return enrich(fpd).then(({global, bidder}) => {\n expect(global.user.ext.eids).to.eql(globalEids.concat(eidsFrom({\n mockId4: 'mockId4Module'\n })));\n expect(bidder.bidderA.user.ext.eids).to.eql(bidderAEids.concat(eidsFrom({\n mockId1: 'mockId1Module'\n })));\n expect(bidder.bidderB.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId1Module'\n }));\n });\n })\n\n it('adUnits and ortbFragments should not contain ids from a submodule that was disabled by activityControls', () => {\n const UNALLOWED_MODULE = 'mockId3';\n const ALLOWED_MODULE = 'mockId1';\n const UNALLOWED_MODULE_FULLNAME = UNALLOWED_MODULE + 'Module';\n const ALLOWED_MODULE_FULLNAME = ALLOWED_MODULE + 'Module';\n const bidders = ['bidderA', 'bidderB'];\n\n idValues = {\n [ALLOWED_MODULE]: [ALLOWED_MODULE],\n [UNALLOWED_MODULE]: [UNALLOWED_MODULE],\n };\n init(config);\n\n setSubmoduleRegistry([\n mockIdSubmodule(ALLOWED_MODULE),\n mockIdSubmodule(UNALLOWED_MODULE),\n ]);\n\n const unregisterRule = registerActivityControl(ACTIVITY_ENRICH_EIDS, 'ruleName', ({componentName, init}) => {\n if (componentName === 'mockId3Module' && init === false) { return ({ allow: false, reason: \"disabled\" }); }\n });\n\n config.setConfig({\n userSync: {\n userIds: [\n { name: ALLOWED_MODULE_FULLNAME, bidders },\n { name: UNALLOWED_MODULE_FULLNAME, bidders },\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then(() => {\n const ortb2Fragments = {\n global: {\n user: {}\n },\n bidder: {\n bidderA: {\n user: {}\n },\n bidderB: {\n user: {}\n }\n }\n };\n addIdData({ ortb2Fragments });\n\n bidders.forEach((bidderName) => {\n const userIdModules = ortb2Fragments.bidder[bidderName].user.ext.eids.map(eid => eid.source);\n expect(userIdModules).to.include(ALLOWED_MODULE + '.com');\n expect(userIdModules).to.not.include(UNALLOWED_MODULE + '.com');\n });\n\n unregisterRule();\n });\n })\n });\n\n describe('generateSubmoduleContainers', () => {\n it('should properly map registry to submodule containers for empty previous submodule containers', () => {\n const previousSubmoduleContainers = [];\n const submoduleRegistry = [\n sharedIdSystemSubmodule,\n createMockIdSubmodule('mockId1Module', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n createMockIdSubmodule('mockId2Module', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n ];\n const configRegistry = [{ name: 'sharedId' }];\n const result = generateSubmoduleContainers({}, configRegistry, previousSubmoduleContainers, submoduleRegistry);\n expect(result).to.have.lengthOf(1);\n expect(result[0].submodule.name).to.eql('sharedId');\n });\n\n it('should properly map registry to submodule containers for non-empty previous submodule containers', () => {\n const previousSubmoduleContainers = [\n {submodule: {name: 'notSharedId'}, config: {name: 'notSharedId'}},\n {submodule: {name: 'notSharedId2'}, config: {name: 'notSharedId2'}},\n ];\n const submoduleRegistry = [\n sharedIdSystemSubmodule,\n createMockIdSubmodule('mockId1Module', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n createMockIdSubmodule('mockId2Module', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n ];\n const configRegistry = [{ name: 'sharedId' }];\n const result = generateSubmoduleContainers({}, configRegistry, previousSubmoduleContainers, submoduleRegistry);\n expect(result).to.have.lengthOf(1);\n expect(result[0].submodule.name).to.eql('sharedId');\n });\n\n it('should properly map registry to submodule containers for retainConfig flag', () => {\n const previousSubmoduleContainers = [\n {submodule: {name: 'shouldBeKept'}, config: {name: 'shouldBeKept'}},\n ];\n const submoduleRegistry = [\n sharedIdSystemSubmodule,\n createMockIdSubmodule('shouldBeKept', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n ];\n const configRegistry = [{ name: 'sharedId' }];\n const result = generateSubmoduleContainers({retainConfig: true}, configRegistry, previousSubmoduleContainers, submoduleRegistry);\n expect(result).to.have.lengthOf(2);\n expect(result[0].submodule.name).to.eql('sharedId');\n expect(result[1].submodule.name).to.eql('shouldBeKept');\n });\n\n it('should properly map registry to submodule containers for autoRefresh flag', () => {\n const previousSubmoduleContainers = [\n {submodule: {name: 'modified'}, config: {name: 'modified', auctionDelay: 300}},\n {submodule: {name: 'unchanged'}, config: {name: 'unchanged', auctionDelay: 300}},\n ];\n const submoduleRegistry = [\n createMockIdSubmodule('modified', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n createMockIdSubmodule('new', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n createMockIdSubmodule('unchanged', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n ];\n const configRegistry = [\n {name: 'modified', auctionDelay: 200},\n {name: 'new'},\n {name: 'unchanged', auctionDelay: 300},\n ];\n const result = generateSubmoduleContainers({autoRefresh: true}, configRegistry, previousSubmoduleContainers, submoduleRegistry);\n expect(result).to.have.lengthOf(3);\n const itemsWithRefreshIds = result.filter(item => item.refreshIds);\n const submoduleNames = itemsWithRefreshIds.map(item => item.submodule.name);\n expect(submoduleNames).to.deep.eql(['modified', 'new']);\n });\n });\n describe('user id modules - enforceStorageType', () => {\n let warnLogSpy;\n const UID_MODULE_NAME = 'userIdModule';\n const userSync = {\n userIds: [\n {\n name: UID_MODULE_NAME,\n storage: {\n type: STORAGE_TYPE_LOCALSTORAGE,\n name: 'storageName'\n }\n }\n ]\n };\n\n before(() => {\n setSubmoduleRegistry([\n createMockIdSubmodule(UID_MODULE_NAME, {id: {uid2: {id: 'uid2_value'}}}, null, []),\n ]);\n })\n\n beforeEach(() => {\n warnLogSpy = sinon.spy(utils, 'logWarn');\n });\n\n afterEach(() => {\n warnLogSpy.restore();\n document.cookie = ''\n });\n\n it('should warn and allow userId module to store data for enforceStorageType unset', () => {\n config.setConfig({userSync});\n const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: UID_MODULE_NAME});\n storage.setCookie('cookieName', 'value', 20000);\n sinon.assert.calledWith(warnLogSpy, `${UID_MODULE_NAME} attempts to store data in ${STORAGE_TYPE_COOKIES} while configuration allows ${STORAGE_TYPE_LOCALSTORAGE}.`);\n expect(storage.getCookie('cookieName')).to.eql('value');\n });\n\n it('should not allow userId module to store data for enforceStorageType set to true', () => {\n config.setConfig({\n userSync: {\n enforceStorageType: true,\n ...userSync,\n }\n })\n const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: UID_MODULE_NAME});\n storage.setCookie('data', 'value', 20000);\n expect(storage.getCookie('data')).to.not.exist;\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"userId_spec.js","names":["attachIdSystem","auctionDelay","coreStorage","dep","enrichEids","findRootDomain","getConsentHash","getValidSubmoduleConfigs","init","PBJS_USER_ID_OPTOUT_NAME","startAuctionHook","requestDataDeletion","setStoredValue","setSubmoduleRegistry","syncDelay","COOKIE_SUFFIXES","HTML5_SUFFIXES","UID1_EIDS","createEidsArray","EID_CONFIG","getEids","config","utils","events","EVENTS","getGlobal","resetConsentData","setEventFiredFlag","liveIntentIdSubmoduleDoNotFireEvent","sharedIdSystemSubmodule","pubProvidedIdSubmodule","mockGpt","requestBids","startAuction","hook","mockGdprConsent","getPPID","uninstall","uninstallTcfControl","allConsent","GDPR_GVLIDS","gdprDataHandler","MODULE_TYPE_UID","ACTIVITY_ENRICH_EIDS","ACTIVITY_PARAM_COMPONENT_NAME","ACTIVITY_PARAM_COMPONENT_TYPE","extractEids","generateSubmoduleContainers","addIdData","registerActivityControl","discloseStorageUse","STORAGE_TYPE_COOKIES","STORAGE_TYPE_LOCALSTORAGE","getStorageManager","getCoreStorageManager","assert","require","expect","EXPIRED_COOKIE_DATE","CONSENT_LOCAL_STORAGE_NAME","describe","getConfigMock","_len","arguments","length","configArrays","Array","_key","userSync","userIds","map","configArray","getStorageMock","apply","name","undefined","key","type","expires","refreshInSeconds","storage","getConfigValueMock","value","createMockIdSubmodule","aliasName","eids","getId","decode","v","primaryIds","createMockEid","source","atype","getValue","data","id","getUidExt","ext","getAdUnitMock","code","mediaTypes","banner","native","sizes","bids","bidder","params","placementId","addConfig","cfg","forEach","element","Object","assign","sandbox","consentData","startDelay","callbackDelay","clearStack","Promise","resolve","setTimeout","delay","stub","sinon","callsFake","runBidsHook","_len2","args","_key2","result","mkDelay","expectImmediateBidHook","then","calledWith","initModule","before","ready","localStorage","removeItem","beforeEach","createSandbox","setCookie","afterEach","restore","resetConfig","getHooks","remove","after","register","it","gvlid","mockConfig","storageConfig","entries","_ref","t","to","equal","called","logWarn","eql","notCalled","param","not","exist","disable","enable","Date","now","toUTCString","spy","removeAll","getGlobalEids","ortb2Fragments","global","user","pubcid","getCookie","be","null","setConfig","eids1","uids","eids2","deepEqual","pubcid1","pubcid2","customConfig","extend","fpd","deep","create","getEidExt","mockId2v3","ids","inserter","mockId2v4","mockId1","mockId2v1","mockId2v2","uid","pubProvidedId","have","u","members","done","getUserIdsAsync","getUserIds","mockId2","mockId3","mockId4","idPriority","uidsFirstRequest","uidsSecondRequest","getUserIdsAsEids","eidFn","mockId","moduleConfig","some","uid2","lipb","lipbid","merkleId","expected","tdid","mockSubmod","size","mock1","m","mock2","get","m1","m2","i","adUnits","window","googletag","_ppid","ppid","TEST_KEY","setVal","val","setDataInLocalStorage","removeDataFromLocalStorage","_1","_2","storedId","callback","_","readId","d","yield","and","contain","refreshUserIds","MOCK_ID","mockIdCallback","startInit","mockIdSystem","returns","method","cb","callArg","MOCKID","getIds","reject","Error","err","catch","e","id1","id2","in init","in callback","mockCallback","_ref2","setup","submoduleNames","refreshUserIdsCallback","refreshedIdCallback","refreshedIdSystem","callCount","logInfo","test","auctionSpy","calledOnce","should","callArgWith","on","unit","bid","userIdAsEids","AUCTION_END","match","func","withArgs","_ref3","setItem","expiration","stype","eidsFunction","mid","find","eid","disclose","discloseStorageHook","next","_len3","_key3","setStorage","expectDisclosure","storageType","maxAgeSeconds","suffixes","suffix","expectation","identifier","purposes","cookieRefresh","isAllowed","MOCK_IDS","mods","activity","activeSources","_ref4","from","Set","getEvents","triggerPixel","__tcfapi","endAuction","emit","customCfg","pixelUrl","mergeConfig","false","getCall","include","submodule","storageMgr","enabledStorageTypes","domainOverride","expStr","mockGetId","mockDecode","mockExtendId","userIdConfig","mockIdCookieName","extendId","reset","JSON","stringify","lastDelta","cst","innerAdUnits","setConsentData","consentString","idMod","onDataDeletionRequest","mod1","mod2","mod3","mod4","cfg1","cfg2","cfg3","cfg4","id4","getDataFromLocalStorage","id3","is missing","throws","_ref5","arg","random","registerSignalSources","clock","useFakeTimers","secureSignalProviders","encryptedSignalSources","registerDelay","sources","encrypt","tick","signalSources","getEncryptedEidsForSource","users","EIDS","expctedIds","all","startsWith","true","getCustomSignal","expectedString","getUserIdsAsEidBySource","uid2Eids","pubcEids","liveIntentEids","merkleEids","idValues","mockIdSubmodule","_len4","extraKeys","_key4","fromEntries","mod","extraKey","provider","enrich","eidsFrom","nameFromModuleMapping","_ref6","module","owner","bidderEids","bidderMappings","_ref7","mapping","_ref8","_ref9","_ref0","bidders","_ref1","bidderA","bidderB","bidderCfg","bidderEidMap","_ref10","eidMap","bidderC","_ref11","globalEids","pub","bidderAEids","_ref12","concat","UNALLOWED_MODULE","ALLOWED_MODULE","UNALLOWED_MODULE_FULLNAME","ALLOWED_MODULE_FULLNAME","unregisterRule","_ref13","componentName","allow","reason","bidderName","userIdModules","previousSubmoduleContainers","submoduleRegistry","configRegistry","lengthOf","retainConfig","autoRefresh","itemsWithRefreshIds","filter","item","refreshIds","warnLogSpy","UID_MODULE_NAME","cookieName","moduleType","moduleName","cookiesAreEnabled","enforceStorageType"],"sourceRoot":"../../../../..","sources":["test/spec/modules/userId_spec.js"],"sourcesContent":["import {\n attachIdSystem,\n auctionDelay,\n coreStorage,\n dep, enrichEids,\n findRootDomain,\n getConsentHash, getValidSubmoduleConfigs,\n init,\n PBJS_USER_ID_OPTOUT_NAME,\n startAuctionHook,\n requestDataDeletion,\n setStoredValue,\n setSubmoduleRegistry,\n syncDelay, COOKIE_SUFFIXES, HTML5_SUFFIXES,\n} from 'modules/userId/index.js';\nimport {UID1_EIDS} from 'libraries/uid1Eids/uid1Eids.js';\nimport {createEidsArray, EID_CONFIG, getEids} from 'modules/userId/eids.js';\nimport {config} from 'src/config.js';\nimport * as utils from 'src/utils.js';\nimport * as events from 'src/events.js';\nimport {EVENTS} from 'src/constants.js';\nimport {getGlobal} from 'src/prebidGlobal.js';\nimport {resetConsentData, } from 'modules/consentManagementTcf.js';\nimport {setEventFiredFlag as liveIntentIdSubmoduleDoNotFireEvent} from '../../../libraries/liveIntentId/idSystem.js';\nimport {sharedIdSystemSubmodule} from 'modules/sharedIdSystem.js';\nimport {pubProvidedIdSubmodule} from 'modules/pubProvidedIdSystem.js';\nimport * as mockGpt from '../integration/faker/googletag.js';\nimport {requestBids, startAuction} from 'src/prebid.js';\nimport {hook} from '../../../src/hook.js';\nimport {mockGdprConsent} from '../../helpers/consentData.js';\nimport {getPPID} from '../../../src/adserver.js';\nimport {uninstall as uninstallTcfControl} from 'modules/tcfControl.js';\nimport {allConsent, GDPR_GVLIDS, gdprDataHandler} from '../../../src/consentHandler.js';\nimport {MODULE_TYPE_UID} from '../../../src/activities/modules.js';\nimport {ACTIVITY_ENRICH_EIDS} from '../../../src/activities/activities.js';\nimport {ACTIVITY_PARAM_COMPONENT_NAME, ACTIVITY_PARAM_COMPONENT_TYPE} from '../../../src/activities/params.js';\nimport {extractEids} from '../../../modules/prebidServerBidAdapter/bidderConfig.js';\nimport {generateSubmoduleContainers, addIdData } from '../../../modules/userId/index.js';\nimport { registerActivityControl } from '../../../src/activities/rules.js';\nimport {\n discloseStorageUse,\n STORAGE_TYPE_COOKIES,\n STORAGE_TYPE_LOCALSTORAGE,\n getStorageManager,\n getCoreStorageManager\n} from '../../../src/storageManager.js';\n\nconst assert = require('chai').assert;\nconst expect = require('chai').expect;\nconst EXPIRED_COOKIE_DATE = 'Thu, 01 Jan 1970 00:00:01 GMT';\nconst CONSENT_LOCAL_STORAGE_NAME = '_pbjs_userid_consent_data';\n\ndescribe('User ID', function () {\n function getConfigMock(...configArrays) {\n return {\n userSync: {\n syncDelay: 0,\n userIds: configArrays.map(configArray => (configArray && configArray.length >= 3) ? getStorageMock.apply(null, configArray) : null)\n }\n }\n }\n\n function getStorageMock(name = 'pubCommonId', key = 'pubcid', type = 'cookie', expires = 30, refreshInSeconds) {\n return {name: name, storage: {name: key, type: type, expires: expires, refreshInSeconds: refreshInSeconds}}\n }\n\n function getConfigValueMock(name, value) {\n return {\n userSync: {syncDelay: 0, userIds: [{name: name, value: value}]}\n }\n }\n\n function createMockIdSubmodule(name, value, aliasName, eids) {\n return {\n name,\n getId() {\n return value;\n },\n decode(v) {\n return v;\n },\n primaryIds: [],\n aliasName,\n eids\n }\n }\n\n function createMockEid(name, source) {\n return {\n [name]: {\n source: source || `${name}Source`,\n atype: 3,\n getValue: function(data) {\n if (data.id) {\n return data.id;\n } else {\n return data;\n }\n },\n getUidExt: function(data) {\n return data.ext\n }\n }\n }\n }\n\n function getAdUnitMock(code = 'adUnit-code') {\n return {\n code,\n mediaTypes: {banner: {}, native: {}},\n sizes: [[300, 200], [300, 600]],\n bids: [{bidder: 'sampleBidder', params: {placementId: 'banner-only-bidder'}}, {bidder: 'anotherSampleBidder', params: {placementId: 'banner-only-bidder'}}]\n };\n }\n\n function addConfig(cfg, name, value) {\n if (cfg && cfg.userSync && cfg.userSync.userIds) {\n cfg.userSync.userIds.forEach(element => {\n if (element[name] !== undefined) {\n element[name] = Object.assign(element[name], value);\n } else {\n element[name] = value;\n }\n });\n }\n\n return cfg;\n }\n\n let sandbox, consentData, startDelay, callbackDelay;\n\n function clearStack() {\n return new Promise((resolve) => setTimeout(resolve));\n }\n\n function delay() {\n const stub = sinon.stub().callsFake(() => new Promise((resolve) => {\n stub.resolve = () => {\n resolve();\n return clearStack();\n };\n }));\n return stub;\n }\n\n function runBidsHook(...args) {\n startDelay = delay();\n\n const result = startAuctionHook(...args, {mkDelay: startDelay});\n return new Promise((resolve) => setTimeout(() => resolve(result)));\n }\n\n function expectImmediateBidHook(...args) {\n return runBidsHook(...args).then(() => {\n startDelay.calledWith(0);\n return startDelay.resolve();\n })\n }\n\n function initModule(config) {\n callbackDelay = delay();\n return init(config, {mkDelay: callbackDelay});\n }\n\n before(function () {\n hook.ready();\n uninstallTcfControl();\n localStorage.removeItem(PBJS_USER_ID_OPTOUT_NAME);\n liveIntentIdSubmoduleDoNotFireEvent();\n });\n\n beforeEach(function () {\n resetConsentData();\n sandbox = sinon.createSandbox();\n consentData = null;\n mockGdprConsent(sandbox, () => consentData);\n coreStorage.setCookie(CONSENT_LOCAL_STORAGE_NAME, '', EXPIRED_COOKIE_DATE);\n });\n\n afterEach(() => {\n sandbox.restore();\n config.resetConfig();\n startAuction.getHooks({hook: startAuctionHook}).remove();\n });\n\n after(() => {\n init(config);\n })\n\n describe('GVL IDs', () => {\n beforeEach(() => {\n sinon.stub(GDPR_GVLIDS, 'register');\n });\n afterEach(() => {\n GDPR_GVLIDS.register.restore();\n });\n\n it('are registered when ID submodule is registered', () => {\n attachIdSystem({name: 'gvlidMock', gvlid: 123});\n sinon.assert.calledWith(GDPR_GVLIDS.register, MODULE_TYPE_UID, 'gvlidMock', 123);\n })\n })\n\n describe('userId config validation', () => {\n beforeEach(() => {\n sandbox.stub(utils, 'logWarn');\n });\n\n function mockConfig(storageConfig = {}) {\n return {\n name: 'mockModule',\n storage: {\n name: 'mockStorage',\n type: 'cookie',\n ...storageConfig\n }\n }\n }\n\n Object.entries({\n 'not an object': 'garbage',\n 'missing name': {},\n 'empty name': {name: ''},\n 'empty storage config': {name: 'mockId', storage: {}},\n 'storage type, but no storage name': mockConfig({name: ''}),\n 'storage name, but no storage type': mockConfig({type: undefined}),\n }).forEach(([t, config]) => {\n it(`should log a warning and reject configuration with ${t}`, () => {\n expect(getValidSubmoduleConfigs([config]).length).to.equal(0);\n sinon.assert.called(utils.logWarn);\n });\n });\n\n it('should reject non-array userId configuration', () => {\n expect(getValidSubmoduleConfigs({})).to.eql([]);\n sinon.assert.called(utils.logWarn);\n });\n\n it('should accept null configuration', () => {\n expect(getValidSubmoduleConfigs()).to.eql([]);\n sinon.assert.notCalled(utils.logWarn);\n });\n\n ['refreshInSeconds', 'expires'].forEach(param => {\n describe(`${param} parameter`, () => {\n it('should be made a number, when possible', () => {\n expect(getValidSubmoduleConfigs([mockConfig({[param]: '123'})])[0].storage[param]).to.equal(123);\n });\n\n it('should log a warning when not a number', () => {\n expect(getValidSubmoduleConfigs([mockConfig({[param]: 'garbage'})])[0].storage[param]).to.not.exist;\n sinon.assert.called(utils.logWarn)\n });\n\n it('should be left untouched when not specified', () => {\n expect(getValidSubmoduleConfigs([mockConfig()])[0].storage[param]).to.not.exist;\n sinon.assert.notCalled(utils.logWarn);\n });\n })\n })\n })\n\n describe('Decorate Ad Units', function () {\n beforeEach(function () {\n // reset mockGpt so nothing else interferes\n mockGpt.disable();\n mockGpt.enable();\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n coreStorage.setCookie('pubcid_alt', 'altpubcid200000', (new Date(Date.now() + 20000).toUTCString()));\n sinon.spy(coreStorage, 'setCookie');\n sinon.stub(utils, 'logWarn');\n });\n\n afterEach(function () {\n mockGpt.enable();\n requestBids.removeAll();\n config.resetConfig();\n coreStorage.setCookie.restore();\n utils.logWarn.restore();\n });\n\n after(function () {\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n coreStorage.setCookie('pubcid_alt', '', EXPIRED_COOKIE_DATE);\n });\n\n function getGlobalEids() {\n const ortb2Fragments = {global: {}};\n return expectImmediateBidHook(sinon.stub(), {ortb2Fragments}).then(() => ortb2Fragments.global.user?.ext?.eids);\n }\n\n it('Check same cookie behavior', async function () {\n let pubcid = coreStorage.getCookie('pubcid');\n expect(pubcid).to.be.null; // there should be no cookie initially\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie']));\n const eids1 = await getGlobalEids();\n pubcid = coreStorage.getCookie('pubcid'); // cookies is created after requestbidHook\n expect(eids1).to.eql([\n {\n source: 'pubcid.org',\n uids: [{id: pubcid, atype: 1}]\n }\n ])\n const eids2 = await getGlobalEids();\n assert.deepEqual(eids1, eids2);\n });\n\n it('Check different cookies', async function () {\n let pubcid1;\n let pubcid2;\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie']));\n\n const eids1 = await getGlobalEids()\n pubcid1 = coreStorage.getCookie('pubcid'); // get first cookie\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE); // erase cookie\n expect(eids1).to.eql([{\n source: 'pubcid.org',\n uids: [{id: pubcid1, atype: 1}]\n }])\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie']));\n\n const eids2 = await getGlobalEids();\n pubcid2 = coreStorage.getCookie('pubcid'); // get second cookie\n expect(eids2).to.eql([{\n source: 'pubcid.org',\n uids: [{id: pubcid2, atype: 1}]\n }])\n expect(pubcid1).to.not.equal(pubcid2);\n });\n\n it('Use existing cookie', async function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid_alt', 'cookie']));\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'altpubcid200000', atype: 1}]\n }])\n });\n\n it('Extend cookie', async function () {\n let customConfig = getConfigMock(['pubCommonId', 'pubcid_alt', 'cookie']);\n customConfig = addConfig(customConfig, 'params', {extend: true});\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig(customConfig);\n const fpd = {};\n const eids = await getGlobalEids();\n expect(eids).to.deep.equal([{\n source: 'pubcid.org',\n uids: [{id: 'altpubcid200000', atype: 1}]\n }]);\n });\n\n it('Disable auto create', async function () {\n let customConfig = getConfigMock(['pubCommonId', 'pubcid', 'cookie']);\n customConfig = addConfig(customConfig, 'params', {create: false});\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig(customConfig);\n const eids = await getGlobalEids();\n expect(eids).to.not.exist;\n });\n\n describe('createEidsArray', () => {\n beforeEach(() => {\n init(config);\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1', null, null,\n {'mockId1': {source: 'mock1source', atype: 1}}),\n createMockIdSubmodule('mockId2v1', null, null,\n {'mockId2v1': {source: 'mock2source', atype: 2, getEidExt: () => ({v: 1})}}),\n createMockIdSubmodule('mockId2v2', null, null,\n {'mockId2v2': {source: 'mock2source', atype: 2, getEidExt: () => ({v: 2})}}),\n createMockIdSubmodule('mockId2v3', null, null, {\n 'mockId2v3'(ids) {\n return {\n source: 'mock2source',\n inserter: 'ins',\n ext: {v: 2},\n uids: ids.map(id => ({id, atype: 2}))\n }\n }\n }),\n createMockIdSubmodule('mockId2v4', null, null, {\n 'mockId2v4'(ids) {\n return ids.map(id => ({\n uids: [{id, atype: 0}],\n source: 'mock2source',\n inserter: 'ins',\n ext: {v: 2}\n }))\n }\n })\n ]);\n });\n\n it('should filter out non-string uid returned by generator functions', () => {\n const eids = createEidsArray({\n mockId2v3: [null, 'id1', 123],\n });\n expect(eids[0].uids).to.eql([\n {\n atype: 2,\n id: 'id1'\n }\n ]);\n });\n\n it('should filter out entire EID if none of the uids are strings', () => {\n const eids = createEidsArray({\n mockId2v3: [null],\n });\n expect(eids).to.eql([]);\n })\n\n it('should group UIDs by everything except uid', () => {\n const eids = createEidsArray({\n mockId1: ['mock-1-1', 'mock-1-2'],\n mockId2v1: ['mock-2-1', 'mock-2-2'],\n mockId2v2: ['mock-2-1', 'mock-2-2'],\n mockId2v3: ['mock-2-1', 'mock-2-2']\n });\n expect(eids).to.eql([\n {\n source: 'mock1source',\n uids: [\n {\n id: 'mock-1-1',\n atype: 1,\n },\n {\n id: 'mock-1-2',\n atype: 1,\n }\n ]\n },\n {\n source: 'mock2source',\n ext: {\n v: 1\n },\n uids: [\n {\n id: 'mock-2-1',\n atype: 2,\n },\n {\n id: 'mock-2-2',\n atype: 2,\n }\n ]\n },\n {\n source: 'mock2source',\n ext: {\n v: 2\n },\n uids: [\n {\n id: 'mock-2-1',\n atype: 2,\n },\n {\n id: 'mock-2-2',\n atype: 2,\n }\n ]\n },\n {\n source: 'mock2source',\n inserter: 'ins',\n ext: {v: 2},\n uids: [\n {\n id: 'mock-2-1',\n atype: 2,\n },\n {\n id: 'mock-2-2',\n atype: 2,\n }\n ]\n }\n ])\n });\n\n it('should group matching EIDs regardless of entry order', () => {\n const eids = createEidsArray({\n mockId2v3: ['id1', 'id2'],\n mockId2v4: ['id3']\n });\n expect(eids).to.eql([{\n source: 'mock2source',\n inserter: 'ins',\n uids: [\n {\n id: 'id1',\n atype: 2,\n },\n {\n id: 'id2',\n atype: 2\n },\n {\n id: 'id3',\n atype: 0\n }\n ],\n ext: {v: 2}\n }])\n })\n it('when merging with pubCommonId, should not alter its eids', () => {\n const uid = {\n pubProvidedId: [\n {\n source: 'mock1Source',\n uids: [\n {id: 'uid2'}\n ]\n }\n ],\n mockId1: 'uid1',\n };\n const eids = createEidsArray(uid);\n expect(eids).to.have.length(1);\n expect(eids[0].uids.map(u => u.id)).to.have.members(['uid1', 'uid2']);\n expect(uid.pubProvidedId[0].uids).to.eql([{id: 'uid2'}]);\n });\n })\n\n it('pbjs.getUserIds', function (done) {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n const ids = {pubcid: '11111'};\n config.setConfig({\n userSync: {\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [{\n name: 'pubCommonId', value: ids\n }]\n }\n });\n getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids).to.deep.equal(ids);\n expect(getGlobal().getUserIds()).to.deep.equal(ids);\n done();\n })\n });\n\n it('pbjs.getUserIds(Async) should prioritize user ids according to config available to core', () => {\n init(config);\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {mockId1: 'mockId1_value'}}),\n createMockIdSubmodule('mockId2Module', {id: {mockId2: 'mockId2_value', mockId3: 'mockId3_value_from_mockId2Module'}}),\n createMockIdSubmodule('mockId3Module', {id: {mockId1: 'mockId1_value_from_mockId3Module', mockId2: 'mockId2_value_from_mockId3Module', mockId3: 'mockId3_value', mockId4: 'mockId4_value_from_mockId3Module'}}),\n createMockIdSubmodule('mockId4Module', {id: {mockId4: 'mockId4_value'}})\n ]);\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module', 'mockId1Module'],\n mockId4: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids['mockId1']).to.deep.equal('mockId1_value_from_mockId3Module');\n expect(uids['mockId2']).to.deep.equal('mockId2_value');\n expect(uids['mockId3']).to.deep.equal('mockId3_value_from_mockId2Module');\n expect(uids['mockId4']).to.deep.equal('mockId4_value');\n });\n });\n\n it('pbjs.getUserIds(Async) should prioritize user ids according to config available to core when config uses aliases', () => {\n init(config);\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {mockId1: 'mockId1_value'}}),\n createMockIdSubmodule('mockId2Module', {id: {mockId2: 'mockId2_value', mockId3: 'mockId3_value_from_mockId2Module'}}, 'mockId2Module_alias'),\n createMockIdSubmodule('mockId3Module', {id: {mockId1: 'mockId1_value_from_mockId3Module', mockId2: 'mockId2_value_from_mockId3Module', mockId3: 'mockId3_value', mockId4: 'mockId4_value_from_mockId3Module'}}, 'mockId3Module_alias'),\n createMockIdSubmodule('mockId4Module', {id: {mockId4: 'mockId4_value'}})\n ]);\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module_alias', 'mockId1Module'],\n mockId4: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids['mockId1']).to.deep.equal('mockId1_value_from_mockId3Module');\n expect(uids['mockId2']).to.deep.equal('mockId2_value');\n expect(uids['mockId3']).to.deep.equal('mockId3_value_from_mockId2Module');\n expect(uids['mockId4']).to.deep.equal('mockId4_value');\n });\n });\n\n it('pbjs.getUserIds(Async) should prioritize user ids according to config available to core when called multiple times', () => {\n init(config);\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {mockId1: 'mockId1_value', mockId2: 'mockId2_value_from_mockId1Module'}}),\n createMockIdSubmodule('mockId2Module', {id: {mockId1: 'mockId1_value_from_mockId2Module', mockId2: 'mockId2_value'}}),\n ]);\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId2Module', 'mockId1Module'],\n mockId2: ['mockId1Module', 'mockId2Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uidsFirstRequest) => {\n getGlobal().getUserIdsAsync().then((uidsSecondRequest) => {\n expect(uidsFirstRequest['mockId1']).to.deep.equal('mockId1_value_from_mockId2Module');\n expect(uidsFirstRequest['mockId2']).to.deep.equal('mockId2_value_from_mockId1Module');\n expect(uidsFirstRequest).to.deep.equal(uidsSecondRequest);\n })\n });\n });\n\n it('pbjs.getUserIds(Async) with priority config but no collision', () => {\n init(config);\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {mockId1: 'mockId1_value'}}),\n createMockIdSubmodule('mockId2Module', {id: {mockId2: 'mockId2_value'}}),\n createMockIdSubmodule('mockId3Module', {id: undefined}),\n createMockIdSubmodule('mockId4Module', {id: {mockId4: 'mockId4_value'}})\n ]);\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module', 'mockId1Module'],\n mockId4: ['mockId2Module', 'mockId4Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids['mockId1']).to.deep.equal('mockId1_value');\n expect(uids['mockId2']).to.deep.equal('mockId2_value');\n expect(uids['mockId3']).to.be.undefined;\n expect(uids['mockId4']).to.deep.equal('mockId4_value');\n });\n });\n\n it('pbjs.getUserIdsAsEids', function (done) {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n const ids = {'pubcid': '11111'};\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'pubCommonId', value: ids\n }]\n }\n });\n getGlobal().getUserIdsAsync().then((ids) => {\n expect(getGlobal().getUserIdsAsEids()).to.deep.equal(createEidsArray(ids));\n done();\n });\n });\n\n it('pbjs.getUserIdsAsEids should pass config to eid function', async function () {\n const eidFn = sinon.stub();\n init(config);\n setSubmoduleRegistry([createMockIdSubmodule('mockId', null, null, {\n mockId: eidFn\n })]);\n const moduleConfig = {\n name: 'mockId',\n value: {mockId: 'mockIdValue'},\n some: 'config'\n };\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [moduleConfig]\n }\n });\n await getGlobal().getUserIdsAsync();\n sinon.assert.calledWith(eidFn, ['mockIdValue'], moduleConfig);\n })\n\n it('pbjs.getUserIdsAsEids should prioritize user ids according to config available to core', () => {\n init(config);\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {uid2: {id: 'uid2_value'}}}, null, createMockEid('uid2')),\n createMockIdSubmodule('mockId2Module', {id: {pubcid: 'pubcid_value', lipb: {lipbid: 'lipbid_value_from_mockId2Module'}}}, null, createMockEid('pubcid')),\n createMockIdSubmodule('mockId3Module', {id: {uid2: {id: 'uid2_value_from_mockId3Module'}, pubcid: 'pubcid_value_from_mockId3Module', lipb: {lipbid: 'lipbid_value'}, merkleId: {id: 'merkleId_value_from_mockId3Module'}}}, null, {...createMockEid('uid2'), ...createMockEid('merkleId'), ...createMockEid('lipb')}),\n createMockIdSubmodule('mockId4Module', {id: {merkleId: {id: 'merkleId_value'}}}, null, createMockEid('merkleId'))\n ]);\n config.setConfig({\n userSync: {\n idPriority: {\n uid2: ['mockId3Module', 'mockId1Module'],\n merkleId: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n const ids = {\n 'uid2': { id: 'uid2_value_from_mockId3Module' },\n 'pubcid': 'pubcid_value',\n 'lipb': { lipbid: 'lipbid_value_from_mockId2Module' },\n 'merkleId': { id: 'merkleId_value' }\n };\n\n return getGlobal().getUserIdsAsync().then(() => {\n const eids = getGlobal().getUserIdsAsEids();\n const expected = createEidsArray(ids);\n expect(eids).to.deep.equal(expected);\n });\n });\n\n it('pbjs.getUserIdsAsEids should prioritize the uid1 according to config available to core', () => {\n init(config);\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {tdid: {id: 'uid1_value'}}}, null, UID1_EIDS),\n createMockIdSubmodule('mockId2Module', {id: {tdid: {id: 'uid1Id_value_from_mockId2Module'}}}, null, UID1_EIDS),\n createMockIdSubmodule('mockId3Module', {id: {tdid: {id: 'uid1Id_value_from_mockId3Module'}}}, null, UID1_EIDS)\n ]);\n config.setConfig({\n userSync: {\n idPriority: {\n tdid: ['mockId2Module', 'mockId3Module', 'mockId1Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' }\n ]\n }\n });\n\n const ids = {\n 'tdid': { id: 'uid1Id_value_from_mockId2Module' },\n };\n\n return getGlobal().getUserIdsAsync().then(() => {\n const eids = getGlobal().getUserIdsAsEids();\n const expected = createEidsArray(ids);\n expect(eids).to.deep.equal(expected);\n })\n });\n\n describe('EID updateConfig', () => {\n function mockSubmod(name, eids) {\n return createMockIdSubmodule(name, null, null, eids);\n }\n\n it('does not choke if a submod does not provide an eids map', () => {\n setSubmoduleRegistry([\n mockSubmod('mock1'),\n mockSubmod('mock2')\n ]);\n expect(EID_CONFIG.size).to.equal(0);\n });\n\n it('should merge together submodules\\' eid configs', () => {\n setSubmoduleRegistry([\n mockSubmod('mock1', {mock1: {m: 1}}),\n mockSubmod('mock2', {mock2: {m: 2}})\n ]);\n expect(EID_CONFIG.get('mock1')).to.eql({m: 1});\n expect(EID_CONFIG.get('mock2')).to.eql({m: 2});\n });\n\n it('should respect idPriority', () => {\n config.setConfig({\n userSync: {\n idPriority: {\n m1: ['mod2', 'mod1'],\n m2: ['mod1', 'mod2']\n },\n userIds: [\n { name: 'mod1' },\n { name: 'mod2' },\n ]\n }\n });\n setSubmoduleRegistry([\n mockSubmod('mod1', {m1: {i: 1}, m2: {i: 2}}),\n mockSubmod('mod2', {m1: {i: 3}, m2: {i: 4}})\n ]);\n expect(EID_CONFIG.get('m1')).to.eql({i: 3});\n expect(EID_CONFIG.get('m2')).to.eql({i: 2});\n });\n })\n\n it('should set googletag ppid correctly', function () {\n const adUnits = [getAdUnitMock()];\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n // before ppid should not be set\n expect(window.googletag._ppid).to.equal(undefined);\n\n config.setConfig({\n userSync: {\n ppid: 'pubcid.org',\n userIds: [\n { name: 'pubCommonId', value: {'pubcid': 'pubCommon-id-value-pubCommon-id-value'} },\n ]\n }\n });\n return expectImmediateBidHook(() => {}, {adUnits}).then(() => {\n // ppid should have been set without dashes and stuff\n expect(window.googletag._ppid).to.equal('pubCommonidvaluepubCommonidvalue');\n });\n });\n\n it('should set googletag ppid correctly when prioritized according to config available to core', () => {\n const adUnits = [getAdUnitMock()];\n init(config);\n setSubmoduleRegistry([\n // some of the ids are padded to have length >= 32 characters\n createMockIdSubmodule('mockId1Module', {id: {uid2: {id: 'uid2_value_7ac66c0f148de9519b8bd264312c4d64'}}}),\n createMockIdSubmodule('mockId2Module', {id: {pubcid: 'pubcid_value_7ac66c0f148de9519b8bd264312c4d64', lipb: {lipbid: 'lipbid_value_from_mockId2Module_7ac66c0f148de9519b8bd264312c4d64'}}}),\n createMockIdSubmodule('mockId3Module', {\n id: {\n uid2: {\n id: 'uid2_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64'\n },\n pubcid: 'pubcid_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64',\n lipb: {\n lipbid: 'lipbid_value_7ac66c0f148de9519b8bd264312c4d64'\n },\n merkleId: {\n id: 'merkleId_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64'\n }\n }\n }, null, {\n uid2: {\n source: 'uidapi.com',\n getValue(data) { return data.id }\n }\n }),\n createMockIdSubmodule('mockId4Module', {id: {merkleId: {id: 'merkleId_value_7ac66c0f148de9519b8bd264312c4d64'}}})\n ]);\n\n // before ppid should not be set\n expect(window.googletag._ppid).to.equal(undefined);\n\n config.setConfig({\n userSync: {\n ppid: 'uidapi.com',\n idPriority: {\n uid2: ['mockId3Module', 'mockId1Module'],\n merkleId: ['mockId4Module', 'mockId3Module']\n },\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return expectImmediateBidHook(() => {}, {adUnits}).then(() => {\n expect(window.googletag._ppid).to.equal('uid2valuefrommockId3Module7ac66c0f148de9519b8bd264312c4d64');\n });\n });\n\n describe('submodule callback', () => {\n const TEST_KEY = 'testKey';\n\n function setVal(val) {\n if (val) {\n coreStorage.setDataInLocalStorage(TEST_KEY, val);\n coreStorage.setDataInLocalStorage(TEST_KEY + '_exp', '');\n } else {\n coreStorage.removeDataFromLocalStorage(TEST_KEY);\n coreStorage.removeDataFromLocalStorage(TEST_KEY + '_exp');\n }\n }\n afterEach(() => {\n setVal(null);\n })\n\n it('should be able to re-read ID changes', (done) => {\n setVal(null);\n init(config);\n setSubmoduleRegistry([{\n name: 'mockId',\n getId: function (_1, _2, storedId) {\n expect(storedId).to.not.exist;\n setVal('laterValue');\n return {\n callback(_, readId) {\n expect(readId()).to.eql('laterValue');\n done();\n }\n }\n },\n decode(d) {\n return d\n }\n }]);\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [\n {\n name: 'mockId',\n storage: {\n type: 'html5',\n name: TEST_KEY\n }\n }\n ]\n }\n });\n });\n });\n\n it('should set PPID when the source needs to call out to the network', () => {\n const adUnits = [getAdUnitMock()];\n init(config);\n const callback = sinon.stub();\n setSubmoduleRegistry([{\n name: 'sharedId',\n getId: function () {\n return {callback}\n },\n decode(d) {\n return d\n },\n eids: {\n pubcid: {\n source: 'pubcid.org',\n }\n }\n }]);\n config.setConfig({\n userSync: {\n ppid: 'pubcid.org',\n auctionDelay: 10,\n userIds: [\n {\n name: 'sharedId',\n }\n ]\n }\n });\n return expectImmediateBidHook(() => {}, {adUnits}).then(() => {\n expect(window.googletag._ppid).to.be.undefined;\n const uid = 'thismustbelongerthan32characters'\n callback.yield({pubcid: uid});\n expect(window.googletag._ppid).to.equal(uid);\n });\n });\n\n it('should log a warning if PPID too big or small', function () {\n const adUnits = [getAdUnitMock()];\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig({\n userSync: {\n ppid: 'pubcid.org',\n userIds: [\n { name: 'pubCommonId', value: {'pubcid': 'pubcommonIdValue'} },\n ]\n }\n });\n // before ppid should not be set\n expect(window.googletag._ppid).to.equal(undefined);\n return expectImmediateBidHook(() => {}, {adUnits}).then(() => {\n // ppid should NOT have been set\n expect(window.googletag._ppid).to.equal(undefined);\n // a warning should have been emmited\n expect(utils.logWarn.args[0][0]).to.exist.and.to.contain('User ID - Googletag Publisher Provided ID for pubcid.org is not between 32 and 150 characters - pubcommonIdValue');\n });\n });\n\n it('should make PPID available to core', () => {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n const id = 'thishastobelongerthan32characters';\n config.setConfig({\n userSync: {\n ppid: 'pubcid.org',\n userIds: [\n { name: 'pubCommonId', value: {'pubcid': id} },\n ]\n }\n });\n return getGlobal().refreshUserIds().then(() => {\n expect(getPPID()).to.eql(id);\n })\n });\n\n it('should make PPID available to core and respect priority', () => {\n init(config);\n setSubmoduleRegistry([\n // some of the ids are padded to have length >= 32 characters\n createMockIdSubmodule('mockId1Module', {id: {uid2: {id: 'uid2_value_7ac66c0f148de9519b8bd264312c4d64'}}}),\n createMockIdSubmodule('mockId2Module', {id: {pubcid: 'pubcid_value_7ac66c0f148de9519b8bd264312c4d64', lipb: {lipbid: 'lipbid_value_from_mockId2Module_7ac66c0f148de9519b8bd264312c4d64'}}}),\n createMockIdSubmodule('mockId3Module', {\n id: {\n uid2: {\n id: 'uid2_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64'\n },\n pubcid: 'pubcid_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64',\n lipb: {\n lipbid: 'lipbid_value_7ac66c0f148de9519b8bd264312c4d64'\n },\n merkleId: {\n id: 'merkleId_value_from_mockId3Module_7ac66c0f148de9519b8bd264312c4d64'\n }\n }\n }, null, {\n uid2: {\n source: 'uidapi.com',\n getValue(data) { return data.id }\n }\n }),\n createMockIdSubmodule('mockId4Module', {id: {merkleId: {id: 'merkleId_value_7ac66c0f148de9519b8bd264312c4d64'}}})\n ]);\n\n // before ppid should not be set\n expect(window.googletag._ppid).to.equal(undefined);\n\n config.setConfig({\n userSync: {\n ppid: 'uidapi.com',\n idPriority: {\n uid2: ['mockId3Module', 'mockId1Module'],\n merkleId: ['mockId4Module', 'mockId3Module']\n },\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().refreshUserIds().then(() => {\n expect(getPPID()).to.eql('uid2valuefrommockId3Module7ac66c0f148de9519b8bd264312c4d64');\n })\n });\n\n describe('refreshing before init is complete', () => {\n const MOCK_ID = {'MOCKID': '1111'};\n let mockIdCallback;\n let startInit;\n\n beforeEach(() => {\n mockIdCallback = sinon.stub();\n coreStorage.setCookie('MOCKID', '', EXPIRED_COOKIE_DATE);\n const mockIdSystem = {\n name: 'mockId',\n decode: function(value) {\n return {\n 'mid': value['MOCKID']\n };\n },\n getId: sinon.stub().returns({callback: mockIdCallback})\n };\n init(config);\n setSubmoduleRegistry([mockIdSystem]);\n startInit = () => config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'mockId',\n storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n });\n\n ['refreshUserIds', 'getUserIdsAsync'].forEach(method => {\n it(`should still resolve promises returned by ${method}`, () => {\n startInit();\n let result = null;\n getGlobal()[method]().then((val) => { result = val; });\n return clearStack().then(() => {\n expect(result).to.equal(null); // auction has not ended, callback should not have been called\n mockIdCallback.callsFake((cb) => cb(MOCK_ID));\n return getGlobal().refreshUserIds().then(clearStack);\n }).then(() => {\n expect(result).to.deep.equal(getGlobal().getUserIds()) // auction still not over, but refresh was explicitly forced\n });\n });\n })\n\n it('should not stop auctions', (done) => {\n // simulate an infinite `auctionDelay`; refreshing should still allow the auction to continue\n // as soon as ID submodules have completed init\n startInit();\n startAuctionHook(() => {\n done();\n }, {adUnits: [getAdUnitMock()]}, {delay: delay()});\n getGlobal().refreshUserIds();\n clearStack().then(() => {\n // simulate init complete\n mockIdCallback.callArg(0, {id: {MOCKID: '1111'}});\n });\n });\n\n it('should continue the auction when init fails', (done) => {\n startInit();\n startAuctionHook(() => {\n done();\n },\n {adUnits: [getAdUnitMock()]},\n {\n delay: delay(),\n getIds: () => Promise.reject(new Error())\n }\n );\n })\n\n it('should not get stuck when init fails', () => {\n const err = new Error();\n mockIdCallback.callsFake(() => { throw err; });\n startInit();\n return getGlobal().getUserIdsAsync().catch((e) =>\n expect(e).to.equal(err)\n );\n });\n });\n\n describe('when ID systems throw errors', () => {\n function mockIdSystem(name) {\n return {\n name,\n decode: function(value) {\n return {\n [name]: value\n };\n },\n getId: sinon.stub().callsFake(() => ({id: name}))\n };\n }\n let id1, id2;\n beforeEach(() => {\n id1 = mockIdSystem('mock1');\n id2 = mockIdSystem('mock2');\n init(config);\n setSubmoduleRegistry([id1, id2]);\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'mock1',\n storage: {name: 'mock1', type: 'cookie'}\n }, {\n name: 'mock2',\n storage: {name: 'mock2', type: 'cookie'}\n }]\n }\n })\n });\n afterEach(() => {\n config.resetConfig();\n })\n Object.entries({\n 'in init': () => id1.getId.callsFake(() => { throw new Error() }),\n 'in callback': () => {\n const mockCallback = sinon.stub().callsFake(() => { throw new Error() });\n id1.getId.callsFake(() => ({callback: mockCallback}))\n }\n }).forEach(([t, setup]) => {\n describe(`${t}`, () => {\n beforeEach(setup);\n it('should still retrieve IDs that do not throw', () => {\n return getGlobal().getUserIdsAsync().then((uid) => {\n expect(uid.mock2).to.not.be.undefined;\n })\n });\n })\n })\n });\n it('pbjs.refreshUserIds updates submodules', function(done) {\n const sandbox = sinon.createSandbox();\n const mockIdCallback = sandbox.stub().returns({id: {'MOCKID': '1111'}});\n const mockIdSystem = {\n name: 'mockId',\n decode: function(value) {\n return {\n 'mid': value['MOCKID']\n };\n },\n getId: mockIdCallback\n };\n init(config);\n setSubmoduleRegistry([mockIdSystem]);\n\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'mockId',\n value: {id: {mockId: '1111'}}\n }]\n }\n });\n\n getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids.id.mockId).to.equal('1111');\n // update to new config value\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'mockId',\n value: {id: {mockId: '1212'}}\n }]\n }\n });\n getGlobal().refreshUserIds({ submoduleNames: ['mockId'] }).then(() => {\n expect(getGlobal().getUserIds().id.mockId).to.equal('1212');\n done();\n });\n });\n });\n\n it('pbjs.refreshUserIds updates priority config', () => {\n init(config);\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {mockId1: 'mockId1_value'}}),\n createMockIdSubmodule('mockId2Module', {id: {mockId2: 'mockId2_value', mockId3: 'mockId3_value_from_mockId2Module'}}),\n createMockIdSubmodule('mockId3Module', {id: {mockId1: 'mockId1_value_from_mockId3Module', mockId2: 'mockId2_value_from_mockId3Module', mockId3: 'mockId3_value', mockId4: 'mockId4_value_from_mockId3Module'}}),\n createMockIdSubmodule('mockId4Module', {id: {mockId4: 'mockId4_value'}})\n ]);\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module', 'mockId1Module'],\n mockId4: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids['mockId1']).to.deep.equal('mockId1_value_from_mockId3Module');\n expect(uids['mockId2']).to.deep.equal('mockId2_value');\n expect(uids['mockId3']).to.deep.equal('mockId3_value_from_mockId2Module');\n expect(uids['mockId4']).to.deep.equal('mockId4_value');\n\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId1Module', 'mockId3Module'],\n mockId4: ['mockId3Module', 'mockId4Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then((uids) => {\n expect(uids['mockId1']).to.deep.equal('mockId1_value');\n expect(uids['mockId2']).to.deep.equal('mockId2_value');\n expect(uids['mockId3']).to.deep.equal('mockId3_value_from_mockId2Module');\n expect(uids['mockId4']).to.deep.equal('mockId4_value_from_mockId3Module');\n });\n });\n });\n\n it('pbjs.refreshUserIds refreshes single', function() {\n coreStorage.setCookie('MOCKID', '', EXPIRED_COOKIE_DATE);\n coreStorage.setCookie('refreshedid', '', EXPIRED_COOKIE_DATE);\n\n const sandbox = sinon.createSandbox();\n const mockIdCallback = sandbox.stub().returns({id: {'MOCKID': '1111'}});\n const refreshUserIdsCallback = sandbox.stub();\n\n const mockIdSystem = {\n name: 'mockId',\n decode: function(value) {\n return {\n 'mid': value['MOCKID']\n };\n },\n getId: mockIdCallback\n };\n\n const refreshedIdCallback = sandbox.stub().returns({id: {'REFRESH': '1111'}});\n\n const refreshedIdSystem = {\n name: 'refreshedId',\n decode: function(value) {\n return {\n 'refresh': value['REFRESH']\n };\n },\n getId: refreshedIdCallback\n };\n\n init(config);\n setSubmoduleRegistry([refreshedIdSystem, mockIdSystem]);\n\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [\n {\n name: 'mockId',\n storage: {name: 'MOCKID', type: 'cookie'},\n },\n {\n name: 'refreshedId',\n storage: {name: 'refreshedid', type: 'cookie'},\n }\n ]\n }\n });\n\n return getGlobal().refreshUserIds({submoduleNames: 'refreshedId'}, refreshUserIdsCallback).then(() => {\n expect(refreshedIdCallback.callCount).to.equal(2);\n expect(mockIdCallback.callCount).to.equal(1);\n expect(refreshUserIdsCallback.callCount).to.equal(1);\n });\n });\n });\n\n describe('Opt out', function () {\n before(function () {\n coreStorage.setCookie(PBJS_USER_ID_OPTOUT_NAME, '1', (new Date(Date.now() + 5000).toUTCString()));\n });\n\n beforeEach(function () {\n sinon.stub(utils, 'logInfo');\n });\n\n afterEach(function () {\n // removed cookie\n coreStorage.setCookie(PBJS_USER_ID_OPTOUT_NAME, '', EXPIRED_COOKIE_DATE);\n requestBids.removeAll();\n utils.logInfo.restore();\n });\n\n it('does not fetch ids if opt out cookie exists', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n const cfg = getConfigMock(['pubCommonId', 'pubcid', 'cookie']);\n cfg.userSync.auctionDelay = 1; // to let init complete without an auction\n config.setConfig(cfg);\n return getGlobal().getUserIdsAsync().then((uid) => {\n expect(uid).to.eql({});\n })\n });\n\n it('initializes if no opt out cookie exists', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie']));\n expect(utils.logInfo.args[0][0]).to.exist.and.to.contain('User ID - usersync config updated for 1 submodules');\n });\n });\n\n describe('Handle variations of config values', function () {\n beforeEach(function () {\n sinon.stub(utils, 'logInfo');\n });\n\n afterEach(function () {\n requestBids.removeAll();\n utils.logInfo.restore();\n });\n\n it('handles config with no usersync object', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({});\n // usersync is undefined, and no logInfo message for 'User ID - usersync config updated'\n expect(typeof utils.logInfo.args[0]).to.equal('undefined');\n });\n\n it('handles config with empty usersync object', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({userSync: {}});\n expect(typeof utils.logInfo.args[0]).to.equal('undefined');\n });\n\n it('handles config with usersync and userIds that are empty objs', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n userIds: [{}]\n }\n });\n expect(typeof utils.logInfo.args[0]).to.equal('undefined');\n });\n\n it('handles config with usersync and userIds with empty names or that dont match a submodule.name', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n userIds: [{\n name: '',\n value: {test: '1'}\n }, {\n name: 'foo',\n value: {test: '1'}\n }]\n }\n });\n expect(typeof utils.logInfo.args[0]).to.equal('undefined');\n });\n\n it('config with 1 configurations should create 1 submodules', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule, pubProvidedIdSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubCommonId', 'cookie']));\n\n expect(utils.logInfo.args[0][0]).to.exist.and.to.contain('User ID - usersync config updated for 1 submodules');\n });\n\n it('handles config with name in different case', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n userIds: [{\n name: 'SharedId'\n }]\n }\n });\n\n expect(utils.logInfo.args[0][0]).to.exist.and.to.contain('User ID - usersync config updated for 1 submodules');\n });\n\n it('config with 2 configurations should result in 2 submodules add', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule, pubProvidedIdSubmodule]);\n config.setConfig({\n userSync: {\n syncDelay: 0,\n userIds: [{\n name: 'pubCommonId', value: {'pubcid': '11111'}\n }, {\n name: 'pubProvidedId',\n storage: {name: 'pubProvidedId', type: 'cookie'}\n }]\n }\n });\n expect(utils.logInfo.args[0][0]).to.exist.and.to.contain('User ID - usersync config updated for 2 submodules');\n });\n\n it('config syncDelay updates module correctly', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n syncDelay: 99,\n userIds: [{\n name: 'pubCommonId',\n storage: {name: 'pubCommonId', type: 'cookie'}\n }]\n }\n });\n expect(syncDelay).to.equal(99);\n });\n\n it('config auctionDelay updates module correctly', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n auctionDelay: 100,\n userIds: [{\n name: 'pubCommonId',\n storage: {name: 'pubCommonId', type: 'cookie'}\n }]\n }\n });\n expect(auctionDelay).to.equal(100);\n });\n\n it('config auctionDelay defaults to 500 if not a number', function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n auctionDelay: '',\n userIds: [{\n name: 'pubCommonId',\n storage: {name: 'pubCommonId', type: 'cookie'}\n }]\n }\n });\n expect(auctionDelay).to.equal(500);\n });\n\n describe('auction and user sync delays', function () {\n let sandbox;\n let adUnits;\n let mockIdCallback;\n let auctionSpy;\n\n beforeEach(function () {\n sandbox = sinon.createSandbox();\n sandbox.stub(events, 'on');\n sandbox.stub(coreStorage, 'getCookie');\n\n // remove cookie\n coreStorage.setCookie('MOCKID', '', EXPIRED_COOKIE_DATE);\n\n adUnits = [getAdUnitMock()];\n\n auctionSpy = sandbox.spy();\n mockIdCallback = sandbox.stub();\n const mockIdSystem = {\n name: 'mockId',\n decode: function (value) {\n return {\n 'mid': value['MOCKID']\n };\n },\n getId: function () {\n const storedId = coreStorage.getCookie('MOCKID');\n if (storedId) {\n return {id: {'MOCKID': storedId}};\n }\n return {callback: mockIdCallback};\n }\n };\n initModule(config);\n attachIdSystem(mockIdSystem, true);\n });\n\n afterEach(function () {\n requestBids.removeAll();\n config.resetConfig();\n sandbox.restore();\n coreStorage.setCookie('MOCKID', '', EXPIRED_COOKIE_DATE);\n });\n\n it('delays auction if auctionDelay is set, timing out at auction delay', function () {\n config.setConfig({\n userSync: {\n auctionDelay: 33,\n syncDelay: 77,\n userIds: [{\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n return runBidsHook(auctionSpy, {adUnits}).then(() => {\n // check auction was delayed\n startDelay.calledWith(33);\n auctionSpy.calledOnce.should.equal(false);\n\n // check ids were fetched\n mockIdCallback.calledOnce.should.equal(true);\n\n // mock timeout\n return startDelay.resolve();\n }).then(() => {\n auctionSpy.calledOnce.should.equal(true);\n\n // does not call auction again once ids are synced\n mockIdCallback.callArgWith(0, {'MOCKID': '1234'});\n auctionSpy.calledOnce.should.equal(true);\n\n // no sync after auction ends\n events.on.called.should.equal(false);\n });\n });\n\n it('delays auction if auctionDelay is set, continuing auction if ids are fetched before timing out', function () {\n config.setConfig({\n userSync: {\n auctionDelay: 33,\n syncDelay: 77,\n userIds: [{\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n return runBidsHook(auctionSpy, {adUnits}).then(() => {\n // check auction was delayed\n startDelay.calledWith(33);\n auctionSpy.calledOnce.should.equal(false);\n\n // check ids were fetched\n mockIdCallback.calledOnce.should.equal(true);\n\n // if ids returned, should continue auction\n mockIdCallback.callArgWith(0, {'MOCKID': '1234'});\n return clearStack();\n }).then(() => {\n auctionSpy.calledOnce.should.equal(true);\n\n // check ids were copied to bids\n adUnits.forEach(unit => {\n unit.bids.forEach(bid => {\n expect(bid.userIdAsEids).to.not.exist;// \"mid\" is an un-known submodule for USER_IDS_CONFIG in eids.js\n });\n });\n\n // no sync after auction ends\n events.on.called.should.equal(false);\n });\n });\n\n it('does not delay auction if set to 0, delays id fetch after auction ends with syncDelay', function () {\n config.setConfig({\n userSync: {\n auctionDelay: 0,\n syncDelay: 77,\n userIds: [{\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n return expectImmediateBidHook(auctionSpy, {adUnits})\n .then(() => {\n // should not delay auction\n auctionSpy.calledOnce.should.equal(true);\n\n // check user sync is delayed after auction is ended\n mockIdCallback.calledOnce.should.equal(false);\n events.on.calledOnce.should.equal(true);\n events.on.calledWith(EVENTS.AUCTION_END, sinon.match.func);\n\n // once auction is ended, sync user ids after delay\n events.on.callArg(1);\n callbackDelay.calledWith(77);\n mockIdCallback.calledOnce.should.equal(false);\n\n return callbackDelay.resolve();\n }).then(() => {\n // once sync delay is over, ids should be fetched\n mockIdCallback.calledOnce.should.equal(true);\n });\n });\n\n it('does not delay user id sync after auction ends if set to 0', function () {\n config.setConfig({\n userSync: {\n auctionDelay: 0,\n syncDelay: 0,\n userIds: [{\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n return expectImmediateBidHook(auctionSpy, {adUnits})\n .then(() => {\n // auction should not be delayed\n auctionSpy.calledOnce.should.equal(true);\n\n // sync delay after auction is ended\n mockIdCallback.calledOnce.should.equal(false);\n events.on.calledOnce.should.equal(true);\n events.on.calledWith(EVENTS.AUCTION_END, sinon.match.func);\n\n // once auction is ended, if no sync delay, fetch ids\n events.on.callArg(1);\n callbackDelay.calledWith(0);\n return callbackDelay.resolve();\n }).then(() => {\n mockIdCallback.calledOnce.should.equal(true);\n });\n });\n\n it('does not delay auction if there are no ids to fetch', function () {\n coreStorage.getCookie.withArgs('MOCKID').returns('123456778');\n config.setConfig({\n userSync: {\n auctionDelay: 33,\n syncDelay: 77,\n userIds: [{\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n return runBidsHook(auctionSpy, {adUnits}).then(() => {\n auctionSpy.calledOnce.should.equal(true);\n mockIdCallback.calledOnce.should.equal(false);\n\n // no sync after auction ends\n events.on.called.should.equal(false);\n });\n });\n });\n\n describe('Start auction hook appends userId to first party data', function () {\n let adUnits;\n\n beforeEach(function () {\n adUnits = [getAdUnitMock()];\n });\n\n function getGlobalEids() {\n return new Promise((resolve) => {\n startAuctionHook(function ({ortb2Fragments}) {\n resolve(ortb2Fragments.global.user?.ext?.eids);\n }, {ortb2Fragments: { global: {} }})\n })\n }\n\n it('test hook from pubcommonid cookie', async function () {\n coreStorage.setCookie('pubcid', 'testpubcid', (new Date(Date.now() + 100000).toUTCString()));\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie']));\n try {\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'testpubcid', atype: 1}]\n }])\n } finally {\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n }\n });\n\n it('test hook from pubcommonid html5', async function () {\n // simulate existing browser local storage values\n localStorage.setItem('pubcid', 'testpubcid');\n localStorage.setItem('pubcid_exp', new Date(Date.now() + 100000).toUTCString());\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'html5']));\n\n try {\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'testpubcid', atype: 1}]\n }]);\n } finally {\n localStorage.removeItem('pubcid');\n localStorage.removeItem('pubcid_exp');\n }\n });\n\n it('test hook from pubcommonid cookie&html5', async function () {\n const expiration = new Date(Date.now() + 100000).toUTCString();\n coreStorage.setCookie('pubcid', 'testpubcid', expiration);\n localStorage.setItem('pubcid', 'testpubcid');\n localStorage.setItem('pubcid_exp', expiration);\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie&html5']));\n\n try {\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'testpubcid', atype: 1}]\n }]);\n } finally {\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n localStorage.removeItem('pubcid');\n localStorage.removeItem('pubcid_exp');\n }\n });\n\n it('test hook from pubcommonid cookie&html5, no cookie present', async function () {\n localStorage.setItem('pubcid', 'testpubcid');\n localStorage.setItem('pubcid_exp', new Date(Date.now() + 100000).toUTCString());\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie&html5']));\n\n try {\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'testpubcid', atype: 1}]\n }])\n } finally {\n localStorage.removeItem('pubcid');\n localStorage.removeItem('pubcid_exp');\n }\n });\n\n it('test hook from pubcommonid cookie&html5, no local storage entry', async function () {\n coreStorage.setCookie('pubcid', 'testpubcid', (new Date(Date.now() + 100000).toUTCString()));\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigMock(['pubCommonId', 'pubcid', 'cookie&html5']));\n\n try {\n const eids = await getGlobalEids();\n expect(eids).to.eql([{\n source: 'pubcid.org',\n uids: [{id: 'testpubcid', atype: 1}]\n }]);\n } finally {\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n }\n });\n\n it('test hook from pubcommonid config value object', async function () {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig(getConfigValueMock('pubCommonId', {'pubcidvalue': 'testpubcidvalue'}));\n expect(await getGlobalEids()).to.not.exist; // \"pubcidvalue\" is an un-known submodule for USER_IDS_CONFIG in eids.js\n });\n\n it('test hook from pubProvidedId config params', async function () {\n init(config);\n setSubmoduleRegistry([pubProvidedIdSubmodule]);\n config.setConfig({\n userSync: {\n syncDelay: 0,\n userIds: [{\n name: 'pubProvidedId',\n params: {\n eids: [{\n source: 'example.com',\n uids: [{\n id: 'value read from cookie or local storage',\n ext: {\n stype: 'ppuid'\n }\n }]\n }, {\n source: 'id-partner.com',\n uids: [{\n id: 'value read from cookie or local storage',\n ext: {\n stype: 'dmp'\n }\n }]\n }],\n eidsFunction: function () {\n return [{\n source: 'provider.com',\n uids: [{\n id: 'value read from cookie or local storage',\n ext: {\n stype: 'sha256email'\n }\n }]\n }]\n }\n }\n }\n ]\n }\n });\n\n const eids = await getGlobalEids();\n expect(eids).to.deep.contain(\n {\n source: 'example.com',\n uids: [{\n id: 'value read from cookie or local storage',\n ext: {\n stype: 'ppuid'\n }\n }]\n });\n expect(eids).to.deep.contain({\n source: 'provider.com',\n uids: [{\n id: 'value read from cookie or local storage',\n ext: {\n stype: 'sha256email'\n }\n }]\n });\n });\n\n it('should add new id system ', async function () {\n coreStorage.setCookie('pubcid', 'testpubcid', (new Date(Date.now() + 5000).toUTCString()));\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n\n config.setConfig({\n userSync: {\n syncDelay: 0,\n userIds: [{\n name: 'pubCommonId', storage: {name: 'pubcid', type: 'cookie'}\n }, {\n name: 'mockId', storage: {name: 'MOCKID', type: 'cookie'}\n }]\n }\n });\n\n // Add new submodule named 'mockId'\n attachIdSystem({\n name: 'mockId',\n decode: function (value) {\n return {\n 'mid': value['MOCKID']\n };\n },\n getId: function (config, consentData, storedId) {\n if (storedId) return {};\n return {id: {'MOCKID': '1234'}};\n },\n eids: {\n mid: {\n source: 'mockid'\n }\n }\n });\n\n const eids = await getGlobalEids();\n expect(eids.find(eid => eid.source === 'mockid')).to.exist;\n });\n\n describe('storage disclosure', () => {\n let disclose;\n function discloseStorageHook(next, ...args) {\n disclose(...args);\n next(...args);\n }\n before(() => {\n discloseStorageUse.before(discloseStorageHook)\n })\n after(() => {\n discloseStorageUse.getHooks({hook: discloseStorageHook}).remove();\n })\n beforeEach(() => {\n disclose = sinon.stub();\n setSubmoduleRegistry([\n {\n name: 'mockId',\n }\n ]);\n });\n\n function setStorage(storage) {\n config.setConfig({\n userSync: {\n userIds: [{\n name: 'mockId',\n storage\n }]\n }\n })\n }\n\n function expectDisclosure(storageType, name, maxAgeSeconds) {\n const suffixes = storageType === STORAGE_TYPE_COOKIES ? COOKIE_SUFFIXES : HTML5_SUFFIXES;\n suffixes.forEach(suffix => {\n const expectation = {\n identifier: name + suffix,\n type: storageType === STORAGE_TYPE_COOKIES ? 'cookie' : 'web',\n purposes: [1, 2, 3, 4, 7],\n }\n if (storageType === STORAGE_TYPE_COOKIES) {\n Object.assign(expectation, {\n maxAgeSeconds: maxAgeSeconds,\n cookieRefresh: true\n })\n }\n sinon.assert.calledWith(disclose, 'userId', expectation)\n })\n }\n\n it('should disclose cookie storage', async () => {\n setStorage({\n name: 'mid_cookie',\n type: STORAGE_TYPE_COOKIES,\n expires: 1\n })\n await getGlobal().refreshUserIds();\n expectDisclosure(STORAGE_TYPE_COOKIES, 'mid_cookie', 1 * 24 * 60 * 60);\n });\n\n it('should disclose html5 storage', async () => {\n setStorage({\n name: 'mid_localStorage',\n type: STORAGE_TYPE_LOCALSTORAGE,\n expires: 1\n });\n await getGlobal().refreshUserIds();\n expectDisclosure(STORAGE_TYPE_LOCALSTORAGE, 'mid_localStorage');\n });\n\n it('should disclose both', async () => {\n setStorage({\n name: 'both',\n type: `${STORAGE_TYPE_COOKIES}&${STORAGE_TYPE_LOCALSTORAGE}`,\n expires: 1\n });\n await getGlobal().refreshUserIds();\n expectDisclosure(STORAGE_TYPE_COOKIES, 'both', 1 * 24 * 60 * 60);\n expectDisclosure(STORAGE_TYPE_LOCALSTORAGE, 'both');\n });\n\n it('should handle cookies with no expires', async () => {\n setStorage({\n name: 'cookie',\n type: STORAGE_TYPE_COOKIES\n });\n await getGlobal().refreshUserIds();\n expectDisclosure(STORAGE_TYPE_COOKIES, 'cookie', 0);\n })\n })\n\n describe('activity controls', () => {\n let isAllowed;\n const MOCK_IDS = ['mockId1', 'mockId2']\n beforeEach(() => {\n isAllowed = sinon.stub(dep, 'isAllowed');\n init(config);\n setSubmoduleRegistry([]);\n const mods = MOCK_IDS.map((name) => ({\n name,\n decode: function (value) {\n return {\n [name]: value\n };\n },\n getId: function () {\n return {id: `${name}Value`};\n },\n eids: {\n [name]: {\n source: name\n }\n }\n }));\n mods.forEach(attachIdSystem);\n });\n afterEach(() => {\n isAllowed.restore();\n });\n\n it('should check for enrichEids activity permissions', async () => {\n isAllowed.callsFake((activity, params) => {\n return !(activity === ACTIVITY_ENRICH_EIDS &&\n params[ACTIVITY_PARAM_COMPONENT_TYPE] === MODULE_TYPE_UID &&\n params[ACTIVITY_PARAM_COMPONENT_NAME] === MOCK_IDS[0])\n })\n\n config.setConfig({\n userSync: {\n syncDelay: 0,\n userIds: MOCK_IDS.map(name => ({\n name, storage: {name, type: 'cookie'}\n }))\n }\n });\n const eids = await getGlobalEids();\n const activeSources = eids.map(({source}) => source);\n expect(Array.from(new Set(activeSources))).to.have.members([MOCK_IDS[1]]);\n });\n })\n });\n\n describe('callbacks at the end of auction', function () {\n beforeEach(function () {\n config.setConfig({\n // callbacks run after auction end only when auctionDelay is 0\n userSync: {\n auctionDelay: 0,\n }\n })\n sinon.stub(events, 'getEvents').returns([]);\n sinon.stub(utils, 'triggerPixel');\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n });\n\n afterEach(function () {\n events.getEvents.restore();\n utils.triggerPixel.restore();\n coreStorage.setCookie('pubcid', '', EXPIRED_COOKIE_DATE);\n resetConsentData();\n delete window.__tcfapi;\n });\n\n function endAuction() {\n events.emit(EVENTS.AUCTION_END, {});\n return new Promise((resolve) => setTimeout(resolve));\n }\n\n it('pubcid callback with url', function () {\n let customCfg = getConfigMock(['pubCommonId', 'pubcid', 'cookie']);\n customCfg = addConfig(customCfg, 'params', {pixelUrl: '/any/pubcid/url'});\n\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.mergeConfig(customCfg);\n return runBidsHook(sinon.stub(), {}).then(() => {\n expect(utils.triggerPixel.called).to.be.false;\n return endAuction();\n }).then(() => {\n expect(utils.triggerPixel.getCall(0).args[0]).to.include('/any/pubcid/url');\n });\n });\n });\n\n describe('Submodule ID storage', () => {\n let submodule;\n beforeEach(() => {\n submodule = {\n submodule: {},\n config: {\n name: 'mockId',\n },\n storageMgr: {\n setCookie: sinon.stub(),\n setDataInLocalStorage: sinon.stub()\n },\n enabledStorageTypes: ['cookie', 'html5']\n }\n });\n\n describe('Set cookie behavior', function () {\n beforeEach(() => {\n submodule.config.storage = {\n type: 'cookie'\n }\n });\n it('should allow submodules to override the domain', function () {\n submodule.submodule.domainOverride = function() {\n return 'foo.com'\n }\n setStoredValue(submodule, 'bar');\n expect(submodule.storageMgr.setCookie.getCall(0).args[4]).to.equal('foo.com');\n });\n\n it('should pass no domain if submodule does not override the domain', function () {\n setStoredValue(submodule, 'bar');\n expect(submodule.storageMgr.setCookie.getCall(0).args[4]).to.equal(null);\n });\n });\n });\n\n describe('Consent changes determine getId refreshes', function () {\n let expStr;\n let adUnits;\n let mockGetId;\n let mockDecode;\n let mockExtendId;\n let mockIdSystem;\n let userIdConfig;\n\n const mockIdCookieName = 'MOCKID';\n\n beforeEach(function () {\n mockGetId = sinon.stub();\n mockDecode = sinon.stub();\n mockExtendId = sinon.stub();\n mockIdSystem = {\n name: 'mockId',\n getId: mockGetId,\n decode: mockDecode,\n extendId: mockExtendId\n };\n userIdConfig = {\n userSync: {\n userIds: [{\n name: 'mockId',\n storage: {\n name: 'MOCKID',\n type: 'cookie',\n refreshInSeconds: 30\n }\n }],\n auctionDelay: 5\n }\n };\n\n // clear cookies\n expStr = (new Date(Date.now() + 25000).toUTCString());\n coreStorage.setCookie(mockIdCookieName, '', EXPIRED_COOKIE_DATE);\n coreStorage.setCookie(`${mockIdCookieName}_last`, '', EXPIRED_COOKIE_DATE);\n coreStorage.setCookie(`${mockIdCookieName}_cst`, '', EXPIRED_COOKIE_DATE);\n allConsent.reset();\n\n // init\n adUnits = [getAdUnitMock()];\n init(config);\n\n // init id system\n attachIdSystem(mockIdSystem);\n });\n\n afterEach(function () {\n config.resetConfig();\n });\n\n function setStorage({\n val = JSON.stringify({id: '1234'}),\n lastDelta = 60 * 1000,\n cst = null\n } = {}) {\n coreStorage.setCookie(mockIdCookieName, val, expStr);\n coreStorage.setCookie(`${mockIdCookieName}_last`, (new Date(Date.now() - lastDelta).toUTCString()), expStr);\n if (cst != null) {\n coreStorage.setCookie(`${mockIdCookieName}_cst`, cst, expStr);\n }\n }\n\n it('calls getId if no stored consent data and refresh is not needed', function () {\n setStorage({lastDelta: 1000});\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.calledOnce(mockGetId);\n sinon.assert.calledOnce(mockDecode);\n sinon.assert.notCalled(mockExtendId);\n });\n });\n\n it('calls getId if no stored consent data but refresh is needed', function () {\n setStorage();\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.calledOnce(mockGetId);\n sinon.assert.calledOnce(mockDecode);\n sinon.assert.notCalled(mockExtendId);\n });\n });\n\n it('calls getId if empty stored consent and refresh not needed', function () {\n setStorage({cst: ''});\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.calledOnce(mockGetId);\n sinon.assert.calledOnce(mockDecode);\n sinon.assert.notCalled(mockExtendId);\n });\n });\n\n it('calls getId if stored consent does not match current consent and refresh not needed', function () {\n setStorage({cst: getConsentHash()});\n gdprDataHandler.setConsentData({\n consentString: 'different'\n });\n\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.calledOnce(mockGetId);\n sinon.assert.calledOnce(mockDecode);\n sinon.assert.notCalled(mockExtendId);\n });\n });\n\n it('does not call getId if stored consent matches current consent and refresh not needed', function () {\n setStorage({lastDelta: 1000, cst: getConsentHash()});\n\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.notCalled(mockGetId);\n sinon.assert.calledOnce(mockDecode);\n sinon.assert.calledOnce(mockExtendId);\n });\n });\n\n it('calls getId with the list of enabled storage types', function() {\n setStorage({lastDelta: 1000});\n config.setConfig(userIdConfig);\n\n let innerAdUnits;\n return runBidsHook((config) => {\n innerAdUnits = config.adUnits\n }, {adUnits}).then(() => {\n sinon.assert.calledOnce(mockGetId);\n\n expect(mockGetId.getCall(0).args[0].enabledStorageTypes).to.deep.equal([ userIdConfig.userSync.userIds[0].storage.type ]);\n });\n });\n });\n\n describe('requestDataDeletion', () => {\n function idMod(name, value) {\n return {\n name,\n getId() {\n return {id: value}\n },\n decode(d) {\n return {[name]: d}\n },\n onDataDeletionRequest: sinon.stub()\n }\n }\n let mod1, mod2, mod3, mod4, cfg1, cfg2, cfg3, cfg4;\n\n beforeEach(() => {\n init(config);\n mod1 = idMod('id1', 'val1');\n mod2 = idMod('id2', 'val2');\n mod3 = idMod('id3', 'val3');\n mod4 = idMod('id4', 'val4');\n cfg1 = getStorageMock('id1', 'id1', 'cookie');\n cfg2 = getStorageMock('id2', 'id2', 'html5');\n cfg3 = getStorageMock('id3', 'id3', 'cookie&html5');\n cfg4 = {name: 'id4', value: {id4: 'val4'}};\n setSubmoduleRegistry([mod1, mod2, mod3, mod4]);\n config.setConfig({\n auctionDelay: 1,\n userSync: {\n userIds: [cfg1, cfg2, cfg3, cfg4]\n }\n });\n return getGlobal().refreshUserIds();\n });\n\n it('deletes stored IDs', () => {\n expect(coreStorage.getCookie('id1')).to.exist;\n expect(coreStorage.getDataFromLocalStorage('id2')).to.exist;\n expect(coreStorage.getCookie('id3')).to.exist;\n expect(coreStorage.getDataFromLocalStorage('id3')).to.exist;\n requestDataDeletion(sinon.stub());\n expect(coreStorage.getCookie('id1')).to.not.exist;\n expect(coreStorage.getDataFromLocalStorage('id2')).to.not.exist;\n expect(coreStorage.getCookie('id3')).to.not.exist;\n expect(coreStorage.getDataFromLocalStorage('id3')).to.not.exist;\n });\n\n it('invokes onDataDeletionRequest', () => {\n requestDataDeletion(sinon.stub());\n sinon.assert.calledWith(mod1.onDataDeletionRequest, cfg1, {id1: 'val1'});\n sinon.assert.calledWith(mod2.onDataDeletionRequest, cfg2, {id2: 'val2'});\n sinon.assert.calledWith(mod3.onDataDeletionRequest, cfg3, {id3: 'val3'});\n sinon.assert.calledWith(mod4.onDataDeletionRequest, cfg4, {id4: 'val4'});\n });\n\n describe('does not choke when onDataDeletionRequest', () => {\n Object.entries({\n 'is missing': () => { delete mod1.onDataDeletionRequest },\n 'throws': () => { mod1.onDataDeletionRequest.throws(new Error()) }\n }).forEach(([t, setup]) => {\n it(t, () => {\n setup();\n const next = sinon.stub();\n const arg = {random: 'value'};\n requestDataDeletion(next, arg);\n sinon.assert.calledOnce(mod2.onDataDeletionRequest);\n sinon.assert.calledOnce(mod3.onDataDeletionRequest);\n sinon.assert.calledOnce(mod4.onDataDeletionRequest);\n sinon.assert.calledWith(next, arg);\n })\n })\n })\n });\n });\n\n describe('handles config with ESP configuration in user sync object', function() {\n describe('Call registerSignalSources to register signal sources with gtag', function () {\n it('pbjs.registerSignalSources should be defined', () => {\n expect(typeof (getGlobal()).registerSignalSources).to.equal('function');\n });\n\n it('does not add duplicate secureSignalProviders', function () {\n const clock = sinon.useFakeTimers();\n mockGpt.reset();\n window.googletag.secureSignalProviders = [];\n init(config);\n config.setConfig({\n userSync: {\n encryptedSignalSources: {\n registerDelay: 0,\n sources: [{source: ['pubcid.org'], encrypt: false}]\n }\n }\n });\n getGlobal().registerSignalSources();\n clock.tick(0);\n getGlobal().registerSignalSources();\n clock.tick(0);\n expect(window.googletag.secureSignalProviders.length).to.equal(1);\n clock.restore();\n });\n })\n\n describe('Call getEncryptedEidsForSource to get encrypted Eids for source', function() {\n const signalSources = ['pubcid.org'];\n\n it('pbjs.getEncryptedEidsForSource should be defined', () => {\n expect(typeof (getGlobal()).getEncryptedEidsForSource).to.equal('function');\n });\n\n it('pbjs.getEncryptedEidsForSource should return the string without encryption if encryption is false', () => {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [\n {\n 'name': 'sharedId',\n 'storage': {\n 'type': 'cookie',\n 'name': '_pubcid',\n 'expires': 365\n }\n },\n {\n 'name': 'pubcid.org'\n }\n ]\n },\n });\n const encrypt = false;\n return (getGlobal()).getEncryptedEidsForSource(signalSources[0], encrypt).then((data) => {\n const users = (getGlobal()).getUserIdsAsEids();\n expect(data).to.equal(users[0].uids[0].id);\n })\n });\n\n it('pbjs.getEncryptedEidsForSource should return prioritized id as non-encrypted string', (done) => {\n init(config);\n const EIDS = {\n uid2: {\n source: 'uidapi.com',\n getValue(data) {\n return data.id\n }\n },\n pubcid: {\n source: 'pubcid.org',\n },\n lipb: {\n source: 'liveintent.com',\n getValue(data) {\n return data.lipbid\n }\n },\n merkleId: {\n source: 'merkleinc.com',\n getValue(data) {\n return data.id\n }\n }\n }\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {uid2: {id: 'uid2_value'}}}, null, EIDS),\n createMockIdSubmodule('mockId2Module', {id: {pubcid: 'pubcid_value', lipb: {lipbid: 'lipbid_value_from_mockId2Module'}}}, null, EIDS),\n createMockIdSubmodule('mockId3Module', {id: {uid2: {id: 'uid2_value_from_mockId3Module'}, pubcid: 'pubcid_value_from_mockId3Module', lipb: {lipbid: 'lipbid_value'}, merkleId: {id: 'merkleId_value_from_mockId3Module'}}}, null, EIDS),\n createMockIdSubmodule('mockId4Module', {id: {merkleId: {id: 'merkleId_value'}}}, null, EIDS)\n ]);\n config.setConfig({\n userSync: {\n idPriority: {\n uid2: ['mockId3Module', 'mockId1Module'],\n merkleId: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n const expctedIds = [\n 'pubcid_value',\n 'uid2_value_from_mockId3Module',\n 'merkleId_value',\n 'lipbid_value_from_mockId2Module'\n ];\n\n const encrypt = false;\n\n Promise.all([\n getGlobal().getEncryptedEidsForSource('pubcid.org', encrypt),\n getGlobal().getEncryptedEidsForSource('uidapi.com', encrypt),\n getGlobal().getEncryptedEidsForSource('merkleinc.com', encrypt),\n getGlobal().getEncryptedEidsForSource('liveintent.com', encrypt)\n ]).then((result) => {\n expect(result).to.deep.equal(expctedIds);\n done();\n })\n });\n\n describe('pbjs.getEncryptedEidsForSource', () => {\n beforeEach(() => {\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'pubCommonId', value: {'pubcid': '11111'}\n }]\n }\n });\n });\n\n it('should return the string base64 encryption if encryption is true', (done) => {\n const encrypt = true;\n (getGlobal()).getEncryptedEidsForSource(signalSources[0], encrypt).then((result) => {\n expect(result.startsWith('1||')).to.true;\n done();\n }).catch(done);\n });\n\n it('pbjs.getEncryptedEidsForSource should return string if custom function is defined', () => {\n const getCustomSignal = () => {\n return '{\"keywords\":[\"tech\",\"auto\"]}';\n }\n const expectedString = '1||eyJrZXl3b3JkcyI6WyJ0ZWNoIiwiYXV0byJdfQ==';\n const encrypt = false;\n const source = 'pubmatic.com';\n return (getGlobal()).getEncryptedEidsForSource(source, encrypt, getCustomSignal).then((result) => {\n expect(result).to.equal(expectedString);\n });\n });\n });\n\n it('pbjs.getUserIdsAsEidBySource', (done) => {\n const users = {\n 'source': 'pubcid.org',\n 'uids': [\n {\n 'id': '11111',\n 'atype': 1\n }\n ]\n }\n init(config);\n setSubmoduleRegistry([sharedIdSystemSubmodule]);\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [{\n name: 'pubCommonId', value: {'pubcid': '11111'}\n }]\n }\n });\n expect(typeof (getGlobal()).getUserIdsAsEidBySource).to.equal('function');\n (getGlobal()).getUserIdsAsync().then(() => {\n expect(getGlobal().getUserIdsAsEidBySource(signalSources[0])).to.deep.equal(users);\n done();\n });\n });\n\n it('pbjs.getUserIdsAsEidBySource with priority config available to core', () => {\n init(config);\n const uid2Eids = createMockEid('uid2', 'uidapi.com')\n const pubcEids = createMockEid('pubcid', 'pubcid.org')\n const liveIntentEids = createMockEid('lipb', 'liveintent.com')\n const merkleEids = createMockEid('merkleId', 'merkleinc.com')\n\n setSubmoduleRegistry([\n createMockIdSubmodule('mockId1Module', {id: {uid2: {id: 'uid2_value'}}}, null, uid2Eids),\n createMockIdSubmodule('mockId2Module', {id: {pubcid: 'pubcid_value', lipb: {lipbid: 'lipbid_value_from_mockId2Module'}}}, null, {...pubcEids, ...liveIntentEids}),\n createMockIdSubmodule('mockId3Module', {id: {uid2: {id: 'uid2_value_from_mockId3Module'}, pubcid: 'pubcid_value_from_mockId3Module', lipb: {lipbid: 'lipbid_value'}, merkleId: {id: 'merkleId_value_from_mockId3Module'}}}, null, {...uid2Eids, ...pubcEids, ...liveIntentEids}),\n createMockIdSubmodule('mockId4Module', {id: {merkleId: {id: 'merkleId_value'}}}, null, merkleEids)\n ]);\n config.setConfig({\n userSync: {\n idPriority: {\n uid2: ['mockId3Module', 'mockId1Module'],\n merkleId: ['mockId4Module', 'mockId3Module']\n },\n auctionDelay: 10, // with auctionDelay > 0, no auction is needed to complete init\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' }\n ]\n }\n });\n\n const ids = {\n 'uidapi.com': {'uid2': {id: 'uid2_value_from_mockId3Module'}},\n 'pubcid.org': {'pubcid': 'pubcid_value'},\n 'liveintent.com': {'lipb': {lipbid: 'lipbid_value_from_mockId2Module'}},\n 'merkleinc.com': {'merkleId': {id: 'merkleId_value'}}\n };\n\n return getGlobal().getUserIdsAsync().then(() => {\n expect(getGlobal().getUserIdsAsEidBySource('pubcid.org')).to.deep.equal(createEidsArray(ids['pubcid.org'])[0]);\n expect(getGlobal().getUserIdsAsEidBySource('uidapi.com')).to.deep.equal(createEidsArray(ids['uidapi.com'])[0]);\n expect(getGlobal().getUserIdsAsEidBySource('merkleinc.com')).to.deep.equal(createEidsArray(ids['merkleinc.com'])[0]);\n expect(getGlobal().getUserIdsAsEidBySource('liveintent.com')).to.deep.equal(createEidsArray(ids['liveintent.com'])[0]);\n });\n });\n })\n });\n\n describe('enrichEids', () => {\n let idValues;\n\n function mockIdSubmodule(key, ...extraKeys) {\n return {\n name: `${key}Module`,\n decode(v) { return v },\n getId() {\n return {\n id: Object.fromEntries(\n idValues[key]?.map(mod => [mod, key === mod ? `${key}_value` : `${mod}_value_from_${key}Module`])\n )\n }\n },\n primaryIds: [key],\n eids: {\n [key]: {\n source: `${key}.com`,\n atype: 1,\n },\n ...Object.fromEntries(extraKeys.map(extraKey => [extraKey, {\n source: `${extraKey}.com`,\n atype: 1,\n getUidExt() {\n return {provider: `${key}Module`}\n }\n }]))\n }\n }\n }\n\n beforeEach(() => {\n idValues = {\n mockId1: ['mockId1'],\n mockId2: ['mockId2', 'mockId3'],\n mockId3: ['mockId1', 'mockId2', 'mockId3', 'mockId4'],\n mockId4: ['mockId4']\n }\n init(config);\n\n setSubmoduleRegistry([\n mockIdSubmodule('mockId1'),\n mockIdSubmodule('mockId2', 'mockId3'),\n mockIdSubmodule('mockId3', 'mockId1', 'mockId2', 'mockId4'),\n mockIdSubmodule('mockId4')\n ]);\n })\n\n function enrich({global = {}, bidder = {}} = {}) {\n return getGlobal().getUserIdsAsync().then(() => {\n enrichEids({global, bidder});\n return {global, bidder};\n })\n }\n\n function eidsFrom(nameFromModuleMapping) {\n return Object.entries(nameFromModuleMapping).map(([key, module]) => {\n const owner = `${key}Module` === module\n const uid = {\n id: owner ? `${key}_value` : `${key}_value_from_${module}`,\n atype: 1,\n };\n if (!owner) {\n uid.ext = {provider: module}\n }\n return {\n source: `${key}.com`,\n uids: [uid]\n }\n })\n }\n\n function bidderEids(bidderMappings) {\n return Object.fromEntries(\n Object.entries(bidderMappings).map(([bidder, mapping]) => [bidder, {user: {ext: {eids: eidsFrom(mapping)}}}])\n )\n }\n\n it('should use lower-priority module if higher priority module cannot provide an id', () => {\n idValues.mockId3 = []\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module', 'mockId1Module']\n },\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId3Module' },\n ]\n }\n });\n return enrich().then(({global}) => {\n expect(global.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId1Module'\n }))\n });\n });\n\n it('should not choke if no id is available for a module', () => {\n idValues.mockId1 = []\n config.setConfig({\n userSync: {\n userIds: [\n { name: 'mockId1Module' },\n ]\n }\n });\n return enrich().then(({global}) => {\n expect(global.user?.ext?.eids).to.not.exist;\n });\n });\n\n it('should add EIDs that are not bidder-restricted', () => {\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId3Module', 'mockId1Module'],\n mockId4: ['mockId4Module', 'mockId3Module']\n },\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module' },\n { name: 'mockId3Module' },\n { name: 'mockId4Module' },\n ]\n }\n });\n return enrich().then(({global}) => {\n expect(global.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId3Module',\n mockId2: 'mockId2Module',\n mockId3: 'mockId3Module',\n mockId4: 'mockId4Module'\n }));\n });\n });\n\n it('should separate bidder-restricted eids', () => {\n config.setConfig({\n userSync: {\n userIds: [\n { name: 'mockId1Module', bidders: ['bidderA', 'bidderB'] },\n { name: 'mockId4Module' },\n ]\n }\n });\n return enrich().then(({global, bidder}) => {\n expect(global.user.ext.eids).to.eql(eidsFrom({\n mockId4: 'mockId4Module'\n }));\n [bidder.bidderA, bidder.bidderB].forEach(bidderCfg => {\n expect(bidderCfg.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId1Module'\n }))\n })\n });\n })\n\n describe('conflicting bidder filters', () => {\n beforeEach(() => {\n idValues.mockId2 = ['mockId1'];\n idValues.mockId3 = ['mockId1'];\n idValues.mockId4 = ['mockId1'];\n setSubmoduleRegistry([\n mockIdSubmodule('mockId1'),\n mockIdSubmodule('mockId2', 'mockId1'),\n mockIdSubmodule('mockId3', 'mockId1'),\n mockIdSubmodule('mockId4', 'mockId1')\n ]);\n })\n\n function bidderEids(bidderEidMap) {\n return Object.fromEntries(\n Object.entries(bidderEidMap).map(([bidder, eidMap]) => [bidder, {\n user: {\n ext: {\n eids: eidsFrom(eidMap)\n }\n }\n }])\n )\n }\n describe('primary provider is restricted', () => {\n function setup() {\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId1Module', 'mockId2Module', 'mockId3Module', 'mockId4Module'],\n },\n userIds: [\n { name: 'mockId1Module', bidders: ['bidderA'] },\n { name: 'mockId2Module', bidders: ['bidderA', 'bidderB'] },\n { name: 'mockId3Module', bidders: ['bidderC'] },\n { name: 'mockId4Module' }\n ]\n }\n });\n }\n\n it('should restrict ID if it comes from restricted modules', async () => {\n setup();\n const {global, bidder} = await enrich();\n expect(global).to.eql({});\n expect(bidder).to.eql(bidderEids({\n bidderA: {\n mockId1: 'mockId1Module'\n },\n bidderB: {\n mockId1: 'mockId2Module'\n },\n bidderC: {\n mockId1: 'mockId3Module'\n }\n }))\n });\n it('should use secondary module restrictions if ID comes from it', async () => {\n idValues.mockId1 = [];\n setup();\n const {global, bidder} = await enrich();\n expect(global).to.eql({});\n expect(bidder).to.eql(bidderEids({\n bidderA: {\n mockId1: 'mockId2Module'\n },\n bidderB: {\n mockId1: 'mockId2Module'\n },\n bidderC: {\n mockId1: 'mockId3Module'\n }\n }));\n });\n it('should not restrict if ID comes from unrestricted module', async () => {\n idValues.mockId1 = [];\n idValues.mockId2 = [];\n idValues.mockId3 = [];\n setup();\n const {global, bidder} = await enrich();\n expect(global.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId4Module'\n }));\n expect(bidder).to.eql({});\n });\n });\n describe('secondary provider is restricted', () => {\n function setup() {\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId1Module', 'mockId2Module', 'mockId3Module', 'mockId4Module'],\n },\n userIds: [\n { name: 'mockId1Module' },\n { name: 'mockId2Module', bidders: ['bidderA'] },\n { name: 'mockId3Module', bidders: ['bidderA', 'bidderB'] },\n { name: 'mockId4Module', bidders: ['bidderC'] },\n ]\n }\n });\n }\n it('should not restrict if primary id is available', async () => {\n setup();\n const {global, bidder} = await enrich();\n expect(global.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId1Module'\n }));\n expect(bidder).to.eql({});\n });\n it('should use secondary modules\\' restrictions if they provide the ID', async () => {\n idValues.mockId1 = [];\n setup();\n const {global, bidder} = await enrich();\n expect(global).to.eql({});\n expect(bidder).to.eql(bidderEids({\n bidderA: {\n mockId1: 'mockId2Module'\n },\n bidderB: {\n mockId1: 'mockId3Module'\n },\n bidderC: {\n mockId1: 'mockId4Module'\n }\n }))\n });\n })\n })\n\n it('should provide bidder-specific IDs, even when they conflict across bidders', () => {\n config.setConfig({\n userSync: {\n idPriority: {\n mockId1: ['mockId1Module', 'mockId3Module'],\n },\n userIds: [\n { name: 'mockId1Module', bidders: ['bidderA'] },\n { name: 'mockId3Module', bidders: ['bidderB'] },\n ]\n }\n });\n return enrich().then(({global, bidder}) => {\n expect(global.user?.ext?.eids).to.not.exist;\n expect(bidder).to.eql(bidderEids({\n bidderA: {\n mockId1: 'mockId1Module'\n },\n bidderB: {\n mockId1: 'mockId3Module',\n mockId2: 'mockId3Module',\n mockId3: 'mockId3Module',\n mockId4: 'mockId3Module'\n }\n }));\n });\n });\n\n it('should not override pub-provided EIDS', () => {\n config.setConfig({\n userSync: {\n auctionDelay: 10,\n userIds: [\n { name: 'mockId1Module', bidders: ['bidderA', 'bidderB'] },\n { name: 'mockId4Module' },\n ]\n }\n });\n const globalEids = [{pub: 'provided'}];\n const bidderAEids = [{bidder: 'A'}]\n const fpd = {\n global: {user: {ext: {eids: globalEids}}},\n bidder: {\n bidderA: {\n user: {ext: {eids: bidderAEids}}\n }\n }\n }\n return enrich(fpd).then(({global, bidder}) => {\n expect(global.user.ext.eids).to.eql(globalEids.concat(eidsFrom({\n mockId4: 'mockId4Module'\n })));\n expect(bidder.bidderA.user.ext.eids).to.eql(bidderAEids.concat(eidsFrom({\n mockId1: 'mockId1Module'\n })));\n expect(bidder.bidderB.user.ext.eids).to.eql(eidsFrom({\n mockId1: 'mockId1Module'\n }));\n });\n })\n\n it('adUnits and ortbFragments should not contain ids from a submodule that was disabled by activityControls', () => {\n const UNALLOWED_MODULE = 'mockId3';\n const ALLOWED_MODULE = 'mockId1';\n const UNALLOWED_MODULE_FULLNAME = UNALLOWED_MODULE + 'Module';\n const ALLOWED_MODULE_FULLNAME = ALLOWED_MODULE + 'Module';\n const bidders = ['bidderA', 'bidderB'];\n\n idValues = {\n [ALLOWED_MODULE]: [ALLOWED_MODULE],\n [UNALLOWED_MODULE]: [UNALLOWED_MODULE],\n };\n init(config);\n\n setSubmoduleRegistry([\n mockIdSubmodule(ALLOWED_MODULE),\n mockIdSubmodule(UNALLOWED_MODULE),\n ]);\n\n const unregisterRule = registerActivityControl(ACTIVITY_ENRICH_EIDS, 'ruleName', ({componentName, init}) => {\n if (componentName === 'mockId3Module' && init === false) { return ({ allow: false, reason: \"disabled\" }); }\n });\n\n config.setConfig({\n userSync: {\n userIds: [\n { name: ALLOWED_MODULE_FULLNAME, bidders },\n { name: UNALLOWED_MODULE_FULLNAME, bidders },\n ]\n }\n });\n\n return getGlobal().getUserIdsAsync().then(() => {\n const ortb2Fragments = {\n global: {\n user: {}\n },\n bidder: {\n bidderA: {\n user: {}\n },\n bidderB: {\n user: {}\n }\n }\n };\n addIdData({ ortb2Fragments });\n\n bidders.forEach((bidderName) => {\n const userIdModules = ortb2Fragments.bidder[bidderName].user.ext.eids.map(eid => eid.source);\n expect(userIdModules).to.include(ALLOWED_MODULE + '.com');\n expect(userIdModules).to.not.include(UNALLOWED_MODULE + '.com');\n });\n\n unregisterRule();\n });\n })\n });\n\n describe('generateSubmoduleContainers', () => {\n it('should properly map registry to submodule containers for empty previous submodule containers', () => {\n const previousSubmoduleContainers = [];\n const submoduleRegistry = [\n sharedIdSystemSubmodule,\n createMockIdSubmodule('mockId1Module', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n createMockIdSubmodule('mockId2Module', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n ];\n const configRegistry = [{ name: 'sharedId' }];\n const result = generateSubmoduleContainers({}, configRegistry, previousSubmoduleContainers, submoduleRegistry);\n expect(result).to.have.lengthOf(1);\n expect(result[0].submodule.name).to.eql('sharedId');\n });\n\n it('should properly map registry to submodule containers for non-empty previous submodule containers', () => {\n const previousSubmoduleContainers = [\n {submodule: {name: 'notSharedId'}, config: {name: 'notSharedId'}},\n {submodule: {name: 'notSharedId2'}, config: {name: 'notSharedId2'}},\n ];\n const submoduleRegistry = [\n sharedIdSystemSubmodule,\n createMockIdSubmodule('mockId1Module', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n createMockIdSubmodule('mockId2Module', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n ];\n const configRegistry = [{ name: 'sharedId' }];\n const result = generateSubmoduleContainers({}, configRegistry, previousSubmoduleContainers, submoduleRegistry);\n expect(result).to.have.lengthOf(1);\n expect(result[0].submodule.name).to.eql('sharedId');\n });\n\n it('should properly map registry to submodule containers for retainConfig flag', () => {\n const previousSubmoduleContainers = [\n {submodule: {name: 'shouldBeKept'}, config: {name: 'shouldBeKept'}},\n ];\n const submoduleRegistry = [\n sharedIdSystemSubmodule,\n createMockIdSubmodule('shouldBeKept', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n ];\n const configRegistry = [{ name: 'sharedId' }];\n const result = generateSubmoduleContainers({retainConfig: true}, configRegistry, previousSubmoduleContainers, submoduleRegistry);\n expect(result).to.have.lengthOf(2);\n expect(result[0].submodule.name).to.eql('sharedId');\n expect(result[1].submodule.name).to.eql('shouldBeKept');\n });\n\n it('should properly map registry to submodule containers for autoRefresh flag', () => {\n const previousSubmoduleContainers = [\n {submodule: {name: 'modified'}, config: {name: 'modified', auctionDelay: 300}},\n {submodule: {name: 'unchanged'}, config: {name: 'unchanged', auctionDelay: 300}},\n ];\n const submoduleRegistry = [\n createMockIdSubmodule('modified', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n createMockIdSubmodule('new', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n createMockIdSubmodule('unchanged', { id: { uid2: { id: 'uid2_value' } } }, null, null),\n ];\n const configRegistry = [\n {name: 'modified', auctionDelay: 200},\n {name: 'new'},\n {name: 'unchanged', auctionDelay: 300},\n ];\n const result = generateSubmoduleContainers({autoRefresh: true}, configRegistry, previousSubmoduleContainers, submoduleRegistry);\n expect(result).to.have.lengthOf(3);\n const itemsWithRefreshIds = result.filter(item => item.refreshIds);\n const submoduleNames = itemsWithRefreshIds.map(item => item.submodule.name);\n expect(submoduleNames).to.deep.eql(['modified', 'new']);\n });\n });\n describe('user id modules - enforceStorageType', () => {\n let warnLogSpy;\n const UID_MODULE_NAME = 'userIdModule';\n const cookieName = 'testCookie';\n const userSync = {\n userIds: [\n {\n name: UID_MODULE_NAME,\n storage: {\n type: STORAGE_TYPE_LOCALSTORAGE,\n name: 'storageName'\n }\n }\n ]\n };\n\n before(() => {\n setSubmoduleRegistry([\n createMockIdSubmodule(UID_MODULE_NAME, {id: {uid2: {id: 'uid2_value'}}}, null, []),\n ]);\n })\n\n beforeEach(() => {\n warnLogSpy = sinon.spy(utils, 'logWarn');\n });\n\n afterEach(() => {\n warnLogSpy.restore();\n getCoreStorageManager('test').setCookie(cookieName, '', EXPIRED_COOKIE_DATE)\n });\n\n it('should not warn when reading', () => {\n config.setConfig({userSync});\n const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: UID_MODULE_NAME});\n storage.cookiesAreEnabled();\n sinon.assert.notCalled(warnLogSpy);\n })\n\n it('should warn and allow userId module to store data for enforceStorageType unset', () => {\n config.setConfig({userSync});\n const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: UID_MODULE_NAME});\n storage.setCookie(cookieName, 'value', 20000);\n sinon.assert.calledWith(warnLogSpy, `${UID_MODULE_NAME} attempts to store data in ${STORAGE_TYPE_COOKIES} while configuration allows ${STORAGE_TYPE_LOCALSTORAGE}.`);\n expect(storage.getCookie(cookieName)).to.eql('value');\n });\n\n it('should not allow userId module to store data for enforceStorageType set to true', () => {\n config.setConfig({\n userSync: {\n enforceStorageType: true,\n ...userSync,\n }\n })\n const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: UID_MODULE_NAME});\n storage.setCookie(cookieName, 'value', 20000);\n expect(storage.getCookie(cookieName)).to.not.exist;\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|