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":"chromeAiRtdProvider.js","names":["registerModule","__r0","submodule","logError","mergeDeep","logMessage","deepSetValue","deepAccess","getStorageManager","MODULE_TYPE_RTD","CONSTANTS","Object","freeze","SUBMODULE_NAME","REAL_TIME_MODULE","LOG_PRE_FIX","STORAGE_KEY","MIN_TEXT_LENGTH","DEFAULT_CONFIG","languageDetector","enabled","confidence","ortb2Path","summarizer","type","format","length","cacheInLocalStorage","storage","moduleType","moduleName","moduleConfig","JSON","parse","stringify","detectedKeywords","_createAiApiInstance","ApiConstructor","options","apiName","name","self","availability","instance","create","addEventListener","e","progress","total","Math","round","loaded","ready","error","mergeModuleConfig","config","newConfig","params","getCurrentUrl","window","location","href","getPageText","text","document","body","textContent","_getChromeAiDataFromLocalStorage","url","hasLocalStorage","localStorageIsEnabled","currentUrl","storedJson","getDataFromLocalStorage","storedObject","_storeChromeAiDataInLocalStorage","data","overallStorageObject","existingStoredJson","setDataInLocalStorage","isLanguageInLocalStorage","chromeAiData","language","getPrioritizedLanguageData","reqBidsConfigObj","langPath","lang","ortb2Fragments","global","source","storedLangData","getPrioritizedKeywordsData","keywordsPath","keywords","Array","isArray","storedKeywords","storeDetectedLanguage","dataPayload","detectLanguage","detector","LanguageDetector","results","detect","topResult","detectedLanguage","toFixed","detectSummary","summaryOptions","Summarizer","summaryResult","summarize","substring","initLanguageDetector","existingLanguage","pageText","detectionResult","storeDetectedKeywords","initSummarizer","prioritizedData","summaryText","init","activeInitializations","push","Promise","all","overallSuccess","some","result","getBidRequestData","callback","languageData","auctionKeywords","chromeAiSubmodule","disclosureURL","registerSubModule"],"sourceRoot":"../../..","sources":["modules/chromeAiRtdProvider.js"],"sourcesContent":["import { submodule } from '../src/hook.js';\nimport { logError, mergeDeep, logMessage, deepSetValue, deepAccess } from '../src/utils.js';\nimport {getStorageManager} from '../src/storageManager.js';\nimport {MODULE_TYPE_RTD} from '../src/activities/modules.js';\n\n/* global LanguageDetector, Summarizer */\n/**\n * @typedef {import('../modules/rtdModule/index.js').RtdSubmodule} RtdSubmodule\n */\n\nexport const CONSTANTS = Object.freeze({\n SUBMODULE_NAME: 'chromeAi',\n REAL_TIME_MODULE: 'realTimeData',\n LOG_PRE_FIX: 'ChromeAI-Rtd-Provider:',\n STORAGE_KEY: 'chromeAi_detected_data', // Single key for both language and keywords\n MIN_TEXT_LENGTH: 20,\n DEFAULT_CONFIG: {\n languageDetector: {\n enabled: true,\n confidence: 0.8,\n ortb2Path: 'site.content.language' // Default path for language\n },\n summarizer: {\n enabled: false,\n type: 'headline', // 'headline' or 'paragraph'\n format: 'markdown', // 'markdown' or 'plaintext'\n length: 'short', // 'short', 'medium', or 'long'\n ortb2Path: 'site.content.keywords', // Default path for keywords\n cacheInLocalStorage: true // Whether to cache detected keywords in localStorage\n }\n }\n});\n\nexport const storage = getStorageManager({moduleType: MODULE_TYPE_RTD, moduleName: CONSTANTS.SUBMODULE_NAME});\n\nlet moduleConfig = JSON.parse(JSON.stringify(CONSTANTS.DEFAULT_CONFIG));\nlet detectedKeywords = null; // To store generated summary/keywords\n\n// Helper to initialize Chrome AI API instances (LanguageDetector, Summarizer)\nconst _createAiApiInstance = async (ApiConstructor, options) => {\n const apiName = ApiConstructor.name; // e.g., \"LanguageDetector\" or \"Summarizer\"\n\n try {\n if (!(apiName in self) || typeof self[apiName] !== 'function') { // Also check if it's a function (constructor)\n logError(`${CONSTANTS.LOG_PRE_FIX} ${apiName} API not available or not a constructor in self.`);\n return null;\n }\n\n const availability = await ApiConstructor.availability();\n if (availability === 'unavailable') {\n logError(`${CONSTANTS.LOG_PRE_FIX} ${apiName} is unavailable.`);\n return null;\n }\n\n let instance;\n if (availability === 'available') {\n instance = await ApiConstructor.create(options);\n logMessage(`${CONSTANTS.LOG_PRE_FIX} ${apiName} instance created (was available).`);\n } else { // Assuming 'after-download' or similar state if not 'available'\n logMessage(`${CONSTANTS.LOG_PRE_FIX} ${apiName} model needs download.`);\n\n instance = await ApiConstructor.create(options);\n instance.addEventListener('downloadprogress', (e) => {\n const progress = e.total > 0 ? Math.round(e.loaded / e.total * 100) : (e.loaded > 0 ? 'In progress' : 'Starting');\n logMessage(`${CONSTANTS.LOG_PRE_FIX} ${apiName} model DL: ${progress}${e.total > 0 ? '%' : ''}`);\n });\n await instance.ready;\n logMessage(`${CONSTANTS.LOG_PRE_FIX} ${apiName} model ready after download.`);\n }\n return instance;\n } catch (error) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error creating ${apiName} instance:`, error);\n return null;\n }\n};\n\nconst mergeModuleConfig = (config) => {\n // Start with a deep copy of default_config to ensure all keys are present\n const newConfig = JSON.parse(JSON.stringify(CONSTANTS.DEFAULT_CONFIG));\n if (config?.params) {\n mergeDeep(newConfig, config.params);\n }\n moduleConfig = newConfig; // Assign to module-level variable\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Module config set:`, moduleConfig);\n return moduleConfig;\n};\n\nexport const getCurrentUrl = () => window.location.href;\n\nexport const getPageText = () => {\n const text = document.body.textContent;\n if (!text || text.length < CONSTANTS.MIN_TEXT_LENGTH) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Not enough text content (length: ${text?.length || 0}) for processing.`);\n return null;\n }\n return text;\n};\n\n// --- Chrome AI LocalStorage Helper Functions ---\nexport const _getChromeAiDataFromLocalStorage = (url) => {\n if (!storage.hasLocalStorage() || !storage.localStorageIsEnabled()) {\n return null;\n }\n const currentUrl = url || getCurrentUrl();\n const storedJson = storage.getDataFromLocalStorage(CONSTANTS.STORAGE_KEY);\n if (storedJson) {\n try {\n const storedObject = JSON.parse(storedJson);\n return storedObject?.[currentUrl] || null;\n } catch (e) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error parsing Chrome AI data from localStorage:`, e);\n }\n }\n return null;\n};\n\nconst _storeChromeAiDataInLocalStorage = (url, data) => {\n try {\n if (!storage.hasLocalStorage() || !storage.localStorageIsEnabled()) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} localStorage is not available, cannot store Chrome AI data.`);\n return false;\n }\n let overallStorageObject = {};\n const existingStoredJson = storage.getDataFromLocalStorage(CONSTANTS.STORAGE_KEY);\n if (existingStoredJson) {\n try {\n overallStorageObject = JSON.parse(existingStoredJson);\n } catch (e) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error parsing existing Chrome AI data from localStorage:`, e);\n }\n }\n const currentUrl = url || getCurrentUrl();\n overallStorageObject[currentUrl] = {\n ...overallStorageObject[currentUrl], // Preserve any existing data\n ...data // Overwrite or add new data\n };\n storage.setDataInLocalStorage(CONSTANTS.STORAGE_KEY, JSON.stringify(overallStorageObject));\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Chrome AI data stored in localStorage for ${currentUrl}:`, data);\n return true;\n } catch (error) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error storing Chrome AI data to localStorage:`, error);\n return false;\n }\n};\n\nconst isLanguageInLocalStorage = (url) => {\n const chromeAiData = _getChromeAiDataFromLocalStorage(url);\n return chromeAiData?.language || null;\n};\n\nexport const getPrioritizedLanguageData = (reqBidsConfigObj) => {\n // 1. Check auction-specific ORTB2 (passed in reqBidsConfigObj for getBidRequestData)\n // Uses configurable path for language\n if (reqBidsConfigObj && moduleConfig.languageDetector) {\n const langPath = moduleConfig.languageDetector.ortb2Path;\n const lang = deepAccess(reqBidsConfigObj.ortb2Fragments?.global, langPath);\n if (lang) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language '${lang}' found in auction-specific ortb2Fragments at path '${langPath}'.`);\n return { language: lang, source: 'auction_ortb2' };\n }\n }\n\n // 2. Check localStorage (relevant for both init and getBidRequestData)\n const storedLangData = isLanguageInLocalStorage(getCurrentUrl());\n if (storedLangData) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language '${storedLangData.language}' found in localStorage.`);\n return { ...storedLangData, source: 'localStorage' };\n }\n\n return null;\n};\n\nconst getPrioritizedKeywordsData = (reqBidsConfigObj) => {\n // 1. Check auction-specific ORTB2 (passed in reqBidsConfigObj for getBidRequestData)\n if (reqBidsConfigObj && moduleConfig.summarizer) {\n const keywordsPath = moduleConfig.summarizer.ortb2Path;\n const keywords = deepAccess(reqBidsConfigObj.ortb2Fragments?.global, keywordsPath);\n if (keywords && Array.isArray(keywords) && keywords.length > 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Keywords found in auction-specific ortb2Fragments at path '${keywordsPath}'.`, keywords);\n return { keywords: keywords, source: 'auction_ortb2' };\n }\n }\n\n // 2. Check localStorage (if enabled)\n if (moduleConfig.summarizer?.cacheInLocalStorage === true) {\n const chromeAiData = _getChromeAiDataFromLocalStorage();\n const storedKeywords = chromeAiData?.keywords;\n if (storedKeywords && Array.isArray(storedKeywords) && storedKeywords.length > 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Keywords found in localStorage.`, storedKeywords);\n return { keywords: storedKeywords, source: 'localStorage' };\n }\n }\n return null;\n};\n\nexport const storeDetectedLanguage = (language, confidence, url) => {\n if (!language) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} No valid language to store`);\n return false;\n }\n const dataPayload = { language: language, confidence: confidence };\n return _storeChromeAiDataInLocalStorage(url, { language: dataPayload });\n};\n\nexport const detectLanguage = async (text) => {\n const detector = await _createAiApiInstance(LanguageDetector);\n if (!detector) {\n return null; // Error already logged by _createAiApiInstance\n }\n\n try {\n const results = await detector.detect(text);\n if (!results || results.length === 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} No language results from API.`);\n return null;\n }\n const topResult = results[0];\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Detected lang: ${topResult.detectedLanguage} (conf: ${topResult.confidence.toFixed(2)})`);\n if (topResult.confidence < moduleConfig.languageDetector.confidence) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Lang confidence (${topResult.confidence.toFixed(2)}) < threshold (${moduleConfig.languageDetector.confidence}).`);\n return null;\n }\n return { language: topResult.detectedLanguage, confidence: topResult.confidence };\n } catch (error) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error during LanguageDetector.detect():`, error);\n return null;\n }\n};\n\nexport const detectSummary = async (text, config) => {\n const summaryOptions = {\n type: config.type,\n format: config.format,\n length: config.length,\n };\n const summarizer = await _createAiApiInstance(Summarizer, summaryOptions);\n if (!summarizer) {\n return null; // Error already logged by _createAiApiInstance\n }\n\n try {\n const summaryResult = await summarizer.summarize(text, summaryOptions);\n if (!summaryResult) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} No summary result from API.`);\n return null;\n }\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summary generated (type: ${summaryOptions.type}, len: ${summaryOptions.length}):`, summaryResult.substring(0, 100) + '...');\n return summaryResult; // This is a string\n } catch (error) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error during Summarizer.summarize():`, error);\n return null;\n }\n};\n\nconst initLanguageDetector = async () => {\n const existingLanguage = getPrioritizedLanguageData(null); // Pass null or undefined for reqBidsConfigObj\n if (existingLanguage && existingLanguage.source === 'localStorage') {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language detection skipped, language '${existingLanguage.language}' found in localStorage.`);\n return true;\n }\n\n const pageText = getPageText();\n if (!pageText) return false;\n\n const detectionResult = await detectLanguage(pageText);\n if (!detectionResult) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Failed to detect language from page content.`);\n return false;\n }\n return storeDetectedLanguage(detectionResult.language, detectionResult.confidence, getCurrentUrl());\n};\n\nexport const storeDetectedKeywords = (keywords, url) => {\n if (!keywords || !Array.isArray(keywords) || keywords.length === 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} No valid keywords array to store`);\n return false;\n }\n return _storeChromeAiDataInLocalStorage(url, { keywords: keywords });\n};\n\nconst initSummarizer = async () => {\n // Check for prioritized/cached keywords first (reqBidsConfigObj is null during init)\n const prioritizedData = getPrioritizedKeywordsData(null);\n if (prioritizedData && prioritizedData.source === 'localStorage') {\n detectedKeywords = prioritizedData.keywords;\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer skipped, keywords from localStorage.`, detectedKeywords);\n return true;\n }\n // If auction_ortb2 had data, it would be handled by getBidRequestData directly, init focuses on detection/localStorage\n\n const pageText = getPageText();\n if (!pageText) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer: No/short text, cannot generate keywords.`);\n return false;\n }\n\n if (!moduleConfig.summarizer) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Summarizer config missing during init.`);\n return false;\n }\n\n const summaryText = await detectSummary(pageText, moduleConfig.summarizer);\n if (summaryText) {\n // The API returns a single summary string. We treat this string as a single keyword.\n // If multiple keywords were desired from the summary, further processing would be needed here.\n detectedKeywords = [summaryText];\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summary processed and new keywords generated:`, detectedKeywords);\n\n if (moduleConfig.summarizer.cacheInLocalStorage === true) {\n storeDetectedKeywords(detectedKeywords, getCurrentUrl());\n }\n return true;\n }\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Failed to generate summary, no new keywords.`);\n return false;\n};\n\nconst init = async (config) => {\n moduleConfig = mergeModuleConfig(config);\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Initializing with config:`, moduleConfig);\n\n const activeInitializations = [];\n\n if (moduleConfig.languageDetector?.enabled !== false) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language detection enabled. Initializing...`);\n activeInitializations.push(initLanguageDetector());\n } else {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language detection disabled by config.`);\n }\n\n // Summarizer Initialization\n if (moduleConfig.summarizer?.enabled === true) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer enabled. Initializing...`);\n activeInitializations.push(initSummarizer());\n } else {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer disabled by config.`);\n }\n\n if (activeInitializations.length === 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} No features enabled for initialization.`);\n return true; // Module is considered initialized if no features are active/enabled.\n }\n\n // Wait for all enabled features to attempt initialization\n try {\n const results = await Promise.all(activeInitializations);\n // Consider init successful if at least one feature init succeeded, or if no features were meant to run.\n const overallSuccess = results.length > 0 ? results.some(result => result === true) : true;\n if (overallSuccess) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Relevant features initialized.`);\n } else {\n logError(`${CONSTANTS.LOG_PRE_FIX} All enabled features failed to initialize.`);\n }\n return overallSuccess;\n } catch (error) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error during feature initializations:`, error);\n return false;\n }\n};\n\n/**\n * Add language data to bid request\n * @param {Object} reqBidsConfigObj - Request bids configuration object\n * @param {function} callback - Callback function\n */\nconst getBidRequestData = (reqBidsConfigObj, callback) => {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} reqBidsConfigObj:`, reqBidsConfigObj);\n\n // Ensure ortb2Fragments and global path exist for potential deepSetValue operations\n reqBidsConfigObj.ortb2Fragments = reqBidsConfigObj.ortb2Fragments || {};\n reqBidsConfigObj.ortb2Fragments.global = reqBidsConfigObj.ortb2Fragments.global || {};\n\n // Language Data Enrichment\n if (moduleConfig.languageDetector?.enabled !== false) {\n const languageData = getPrioritizedLanguageData(reqBidsConfigObj);\n if (languageData && languageData.source !== 'auction_ortb2') {\n const langPath = moduleConfig.languageDetector.ortb2Path;\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Enriching ORTB2 path '${langPath}' with lang '${languageData.language}' from ${languageData.source}.`);\n deepSetValue(reqBidsConfigObj.ortb2Fragments.global, langPath, languageData.language);\n } else if (languageData?.source === 'auction_ortb2') {\n const langPath = moduleConfig.languageDetector.ortb2Path;\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Lang already in auction ORTB2 at path '${langPath}', no enrichment needed.`);\n }\n } else {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language detection disabled, no lang enrichment.`);\n }\n\n // Summarizer Data (Keywords) Enrichment\n if (moduleConfig.summarizer?.enabled === true) {\n const keywordsPath = moduleConfig.summarizer.ortb2Path;\n const auctionKeywords = deepAccess(reqBidsConfigObj.ortb2Fragments.global, keywordsPath);\n\n if (auctionKeywords && Array.isArray(auctionKeywords) && auctionKeywords.length > 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Keywords already present in auction_ortb2 at path '${keywordsPath}', no enrichment from module.`, auctionKeywords);\n } else {\n // auction_ortb2 path is empty, try to use keywords from initSummarizer (localStorage or fresh detection)\n if (detectedKeywords && detectedKeywords.length > 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Enriching ORTB2 path '${keywordsPath}' with keywords from module (localStorage/detection):`, detectedKeywords);\n deepSetValue(reqBidsConfigObj.ortb2Fragments.global, keywordsPath, detectedKeywords);\n } else {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer enabled, but no keywords from auction_ortb2, localStorage, or fresh detection for path '${keywordsPath}'.`);\n }\n }\n } else {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer disabled, no keyword enrichment.`);\n }\n\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Final reqBidsConfigObj for auction:`, reqBidsConfigObj);\n callback();\n};\n\n/** @type {RtdSubmodule} */\nexport const chromeAiSubmodule = {\n name: CONSTANTS.SUBMODULE_NAME,\n disclosureURL: 'local://modules/chromeAiRtdProvider.json',\n init,\n getBidRequestData\n};\n\nexport const registerSubModule = () => {\n submodule(CONSTANTS.REAL_TIME_MODULE, chromeAiSubmodule);\n};\n\nregisterSubModule();\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"chromeAiRtdProvider.js","names":["registerModule","__r0","submodule","logError","mergeDeep","logMessage","deepSetValue","deepAccess","getStorageManager","MODULE_TYPE_RTD","CONSTANTS","Object","freeze","SUBMODULE_NAME","REAL_TIME_MODULE","LOG_PRE_FIX","STORAGE_KEY","MIN_TEXT_LENGTH","DEFAULT_CONFIG","languageDetector","enabled","confidence","ortb2Path","summarizer","type","format","length","cacheInLocalStorage","storage","moduleType","moduleName","moduleConfig","JSON","parse","stringify","detectedKeywords","_createAiApiInstance","ApiConstructor","options","apiName","name","self","availability","instance","create","addEventListener","e","progress","total","Math","round","loaded","ready","error","mergeModuleConfig","config","newConfig","params","getCurrentUrl","window","location","href","getPageText","text","document","body","textContent","_getChromeAiDataFromLocalStorage","url","hasLocalStorage","localStorageIsEnabled","currentUrl","storedJson","getDataFromLocalStorage","storedObject","_storeChromeAiDataInLocalStorage","data","overallStorageObject","existingStoredJson","setDataInLocalStorage","isLanguageInLocalStorage","chromeAiData","language","getPrioritizedLanguageData","reqBidsConfigObj","langPath","lang","ortb2Fragments","global","source","storedLangData","getPrioritizedKeywordsData","keywordsPath","keywords","Array","isArray","storedKeywords","storeDetectedLanguage","dataPayload","detectLanguage","detector","LanguageDetector","results","detect","topResult","detectedLanguage","toFixed","detectSummary","summaryOptions","Summarizer","summaryResult","summarize","substring","initLanguageDetector","existingLanguage","pageText","detectionResult","storeDetectedKeywords","initSummarizer","prioritizedData","summaryText","init","activeInitializations","push","Promise","all","overallSuccess","some","result","getBidRequestData","callback","languageData","auctionKeywords","chromeAiSubmodule","disclosureURL","registerSubModule"],"sourceRoot":"../../..","sources":["modules/chromeAiRtdProvider.js"],"sourcesContent":["import { submodule } from '../src/hook.js';\nimport { logError, mergeDeep, logMessage, deepSetValue, deepAccess } from '../src/utils.js';\nimport {getStorageManager} from '../src/storageManager.js';\nimport {MODULE_TYPE_RTD} from '../src/activities/modules.js';\n\n/* global LanguageDetector, Summarizer */\n/**\n * @typedef {import('../modules/rtdModule/index.js').RtdSubmodule} RtdSubmodule\n */\n\nexport const CONSTANTS = Object.freeze({\n SUBMODULE_NAME: 'chromeAi',\n REAL_TIME_MODULE: 'realTimeData',\n LOG_PRE_FIX: 'ChromeAI-Rtd-Provider:',\n STORAGE_KEY: 'chromeAi_detected_data', // Single key for both language and keywords\n MIN_TEXT_LENGTH: 20,\n DEFAULT_CONFIG: {\n languageDetector: {\n enabled: true,\n confidence: 0.8,\n ortb2Path: 'site.content.language' // Default path for language\n },\n summarizer: {\n enabled: false,\n type: 'headline', // 'headline' or 'paragraph'\n format: 'markdown', // 'markdown' or 'plaintext'\n length: 'short', // 'short', 'medium', or 'long'\n ortb2Path: 'site.content.keywords', // Default path for keywords\n cacheInLocalStorage: true // Whether to cache detected keywords in localStorage\n }\n }\n});\n\nexport const storage = getStorageManager({moduleType: MODULE_TYPE_RTD, moduleName: CONSTANTS.SUBMODULE_NAME});\n\nlet moduleConfig = JSON.parse(JSON.stringify(CONSTANTS.DEFAULT_CONFIG));\nlet detectedKeywords = null; // To store generated summary/keywords\n\n// Helper to initialize Chrome AI API instances (LanguageDetector, Summarizer)\nconst _createAiApiInstance = async (ApiConstructor, options) => {\n const apiName = ApiConstructor.name; // e.g., \"LanguageDetector\" or \"Summarizer\"\n\n try {\n if (!(apiName in self) || typeof self[apiName] !== 'function') { // Also check if it's a function (constructor)\n logError(`${CONSTANTS.LOG_PRE_FIX} ${apiName} API not available or not a constructor in self.`);\n return null;\n }\n\n const availability = await ApiConstructor.availability();\n if (availability === 'unavailable') {\n logError(`${CONSTANTS.LOG_PRE_FIX} ${apiName} is unavailable.`);\n return null;\n }\n\n let instance;\n if (availability === 'available') {\n instance = await ApiConstructor.create(options);\n logMessage(`${CONSTANTS.LOG_PRE_FIX} ${apiName} instance created (was available).`);\n } else { // Assuming 'after-download' or similar state if not 'available'\n logMessage(`${CONSTANTS.LOG_PRE_FIX} ${apiName} model needs download.`);\n\n instance = await ApiConstructor.create(options);\n instance.addEventListener('downloadprogress', (e) => {\n const progress = e.total > 0 ? Math.round(e.loaded / e.total * 100) : (e.loaded > 0 ? 'In progress' : 'Starting');\n logMessage(`${CONSTANTS.LOG_PRE_FIX} ${apiName} model DL: ${progress}${e.total > 0 ? '%' : ''}`);\n });\n await instance.ready;\n logMessage(`${CONSTANTS.LOG_PRE_FIX} ${apiName} model ready after download.`);\n }\n return instance;\n } catch (error) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error creating ${apiName} instance:`, error);\n return null;\n }\n};\n\nconst mergeModuleConfig = (config) => {\n // Start with a deep copy of default_config to ensure all keys are present\n const newConfig = JSON.parse(JSON.stringify(CONSTANTS.DEFAULT_CONFIG));\n if (config?.params) {\n mergeDeep(newConfig, config.params);\n }\n moduleConfig = newConfig; // Assign to module-level variable\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Module config set:`, moduleConfig);\n return moduleConfig;\n};\n\nexport const getCurrentUrl = () => window.location.href;\n\nexport const getPageText = () => {\n const text = document.body.textContent;\n if (!text || text.length < CONSTANTS.MIN_TEXT_LENGTH) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Not enough text content (length: ${text?.length || 0}) for processing.`);\n return null;\n }\n return text;\n};\n\n// --- Chrome AI LocalStorage Helper Functions ---\nexport const _getChromeAiDataFromLocalStorage = (url) => {\n if (!storage.hasLocalStorage() || !storage.localStorageIsEnabled()) {\n return null;\n }\n const currentUrl = url || getCurrentUrl();\n const storedJson = storage.getDataFromLocalStorage(CONSTANTS.STORAGE_KEY);\n if (storedJson) {\n try {\n const storedObject = JSON.parse(storedJson);\n return storedObject?.[currentUrl] || null;\n } catch (e) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error parsing Chrome AI data from localStorage:`, e);\n }\n }\n return null;\n};\n\nconst _storeChromeAiDataInLocalStorage = (url, data) => {\n try {\n if (!storage.hasLocalStorage() || !storage.localStorageIsEnabled()) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} localStorage is not available, cannot store Chrome AI data.`);\n return false;\n }\n let overallStorageObject = {};\n const existingStoredJson = storage.getDataFromLocalStorage(CONSTANTS.STORAGE_KEY);\n if (existingStoredJson) {\n try {\n overallStorageObject = JSON.parse(existingStoredJson);\n } catch (e) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error parsing existing Chrome AI data from localStorage:`, e);\n }\n }\n const currentUrl = url || getCurrentUrl();\n overallStorageObject[currentUrl] = {\n ...overallStorageObject[currentUrl], // Preserve any existing data\n ...data // Overwrite or add new data\n };\n storage.setDataInLocalStorage(CONSTANTS.STORAGE_KEY, JSON.stringify(overallStorageObject));\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Chrome AI data stored in localStorage for ${currentUrl}:`, data);\n return true;\n } catch (error) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error storing Chrome AI data to localStorage:`, error);\n return false;\n }\n};\n\nconst isLanguageInLocalStorage = (url) => {\n const chromeAiData = _getChromeAiDataFromLocalStorage(url);\n return chromeAiData?.language || null;\n};\n\nexport const getPrioritizedLanguageData = (reqBidsConfigObj) => {\n // 1. Check auction-specific ORTB2 (passed in reqBidsConfigObj for getBidRequestData)\n // Uses configurable path for language\n if (reqBidsConfigObj && moduleConfig.languageDetector) {\n const langPath = moduleConfig.languageDetector.ortb2Path;\n const lang = deepAccess(reqBidsConfigObj.ortb2Fragments?.global, langPath);\n if (lang) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language '${lang}' found in auction-specific ortb2Fragments at path '${langPath}'.`);\n return { language: lang, source: 'auction_ortb2' };\n }\n }\n\n // 2. Check localStorage (relevant for both init and getBidRequestData)\n const storedLangData = isLanguageInLocalStorage(getCurrentUrl());\n if (storedLangData) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language '${storedLangData.language}' found in localStorage.`);\n return { ...storedLangData, source: 'localStorage' };\n }\n\n return null;\n};\n\nconst getPrioritizedKeywordsData = (reqBidsConfigObj) => {\n // 1. Check auction-specific ORTB2 (passed in reqBidsConfigObj for getBidRequestData)\n if (reqBidsConfigObj && moduleConfig.summarizer) {\n const keywordsPath = moduleConfig.summarizer.ortb2Path;\n const keywords = deepAccess(reqBidsConfigObj.ortb2Fragments?.global, keywordsPath);\n if (keywords && Array.isArray(keywords) && keywords.length > 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Keywords found in auction-specific ortb2Fragments at path '${keywordsPath}'.`, keywords);\n return { keywords: keywords, source: 'auction_ortb2' };\n }\n }\n\n // 2. Check localStorage (if enabled)\n if (moduleConfig.summarizer?.cacheInLocalStorage === true) {\n const chromeAiData = _getChromeAiDataFromLocalStorage();\n const storedKeywords = chromeAiData?.keywords;\n if (storedKeywords && Array.isArray(storedKeywords) && storedKeywords.length > 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Keywords found in localStorage.`, storedKeywords);\n return { keywords: storedKeywords, source: 'localStorage' };\n }\n }\n return null;\n};\n\nexport const storeDetectedLanguage = (language, confidence, url) => {\n if (!language) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} No valid language to store`);\n return false;\n }\n const dataPayload = { language: language, confidence: confidence };\n return _storeChromeAiDataInLocalStorage(url, { language: dataPayload });\n};\n\nexport const detectLanguage = async (text) => {\n const detector = await _createAiApiInstance(LanguageDetector);\n if (!detector) {\n return null; // Error already logged by _createAiApiInstance\n }\n\n try {\n const results = await detector.detect(text);\n if (!results || results.length === 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} No language results from API.`);\n return null;\n }\n const topResult = results[0];\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Detected lang: ${topResult.detectedLanguage} (conf: ${topResult.confidence.toFixed(2)})`);\n if (topResult.confidence < moduleConfig.languageDetector.confidence) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Lang confidence (${topResult.confidence.toFixed(2)}) < threshold (${moduleConfig.languageDetector.confidence}).`);\n return null;\n }\n return { language: topResult.detectedLanguage, confidence: topResult.confidence };\n } catch (error) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error during LanguageDetector.detect():`, error);\n return null;\n }\n};\n\nexport const detectSummary = async (text, config) => {\n const summaryOptions = {\n type: config.type,\n format: config.format,\n length: config.length,\n };\n const summarizer = await _createAiApiInstance(Summarizer, summaryOptions);\n if (!summarizer) {\n return null; // Error already logged by _createAiApiInstance\n }\n\n try {\n const summaryResult = await summarizer.summarize(text, summaryOptions);\n if (!summaryResult) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} No summary result from API.`);\n return null;\n }\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summary generated (type: ${summaryOptions.type}, len: ${summaryOptions.length}):`, summaryResult.substring(0, 100) + '...');\n return summaryResult; // This is a string\n } catch (error) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error during Summarizer.summarize():`, error);\n return null;\n }\n};\n\nconst initLanguageDetector = async () => {\n const existingLanguage = getPrioritizedLanguageData(null); // Pass null or undefined for reqBidsConfigObj\n if (existingLanguage && existingLanguage.source === 'localStorage') {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language detection skipped, language '${existingLanguage.language}' found in localStorage.`);\n return true;\n }\n\n const pageText = getPageText();\n if (!pageText) return false;\n\n const detectionResult = await detectLanguage(pageText);\n if (!detectionResult) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Failed to detect language from page content.`);\n return false;\n }\n return storeDetectedLanguage(detectionResult.language, detectionResult.confidence, getCurrentUrl());\n};\n\nexport const storeDetectedKeywords = (keywords, url) => {\n if (!keywords || !Array.isArray(keywords) || keywords.length === 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} No valid keywords array to store`);\n return false;\n }\n return _storeChromeAiDataInLocalStorage(url, { keywords: keywords });\n};\n\nconst initSummarizer = async () => {\n // Check for prioritized/cached keywords first (reqBidsConfigObj is null during init)\n const prioritizedData = getPrioritizedKeywordsData(null);\n if (prioritizedData && prioritizedData.source === 'localStorage') {\n detectedKeywords = prioritizedData.keywords;\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer skipped, keywords from localStorage.`, detectedKeywords);\n return true;\n }\n // If auction_ortb2 had data, it would be handled by getBidRequestData directly, init focuses on detection/localStorage\n\n const pageText = getPageText();\n if (!pageText) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer: No/short text, cannot generate keywords.`);\n return false;\n }\n\n if (!moduleConfig.summarizer) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Summarizer config missing during init.`);\n return false;\n }\n\n const summaryText = await detectSummary(pageText, moduleConfig.summarizer);\n if (summaryText) {\n // The API returns a single summary string. We treat this string as a single keyword.\n // If multiple keywords were desired from the summary, further processing would be needed here.\n detectedKeywords = [summaryText];\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summary processed and new keywords generated:`, detectedKeywords);\n\n if (moduleConfig.summarizer.cacheInLocalStorage === true) {\n storeDetectedKeywords(detectedKeywords, getCurrentUrl());\n }\n return true;\n }\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Failed to generate summary, no new keywords.`);\n return false;\n};\n\nconst init = async (config) => {\n moduleConfig = mergeModuleConfig(config);\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Initializing with config:`, moduleConfig);\n\n const activeInitializations = [];\n\n if (moduleConfig.languageDetector?.enabled !== false) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language detection enabled. Initializing...`);\n activeInitializations.push(initLanguageDetector());\n } else {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language detection disabled by config.`);\n }\n\n // Summarizer Initialization\n if (moduleConfig.summarizer?.enabled === true) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer enabled. Initializing...`);\n activeInitializations.push(initSummarizer());\n } else {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer disabled by config.`);\n }\n\n if (activeInitializations.length === 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} No features enabled for initialization.`);\n return true; // Module is considered initialized if no features are active/enabled.\n }\n\n // Wait for all enabled features to attempt initialization\n try {\n const results = await Promise.all(activeInitializations);\n // Consider init successful if at least one feature init succeeded, or if no features were meant to run.\n const overallSuccess = results.length > 0 ? results.some(result => result === true) : true;\n if (overallSuccess) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Relevant features initialized.`);\n } else {\n logError(`${CONSTANTS.LOG_PRE_FIX} All enabled features failed to initialize.`);\n }\n return overallSuccess;\n } catch (error) {\n logError(`${CONSTANTS.LOG_PRE_FIX} Error during feature initializations:`, error);\n return false;\n }\n};\n\n/**\n * Add language data to bid request\n * @param {Object} reqBidsConfigObj - Request bids configuration object\n * @param {function} callback - Callback function\n */\nconst getBidRequestData = (reqBidsConfigObj, callback) => {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} reqBidsConfigObj:`, reqBidsConfigObj);\n\n // Ensure ortb2Fragments and global path exist for potential deepSetValue operations\n reqBidsConfigObj.ortb2Fragments = reqBidsConfigObj.ortb2Fragments || {};\n reqBidsConfigObj.ortb2Fragments.global = reqBidsConfigObj.ortb2Fragments.global || {};\n\n // Language Data Enrichment\n if (moduleConfig.languageDetector?.enabled !== false) {\n const languageData = getPrioritizedLanguageData(reqBidsConfigObj);\n if (languageData && languageData.source !== 'auction_ortb2') {\n const langPath = moduleConfig.languageDetector.ortb2Path;\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Enriching ORTB2 path '${langPath}' with lang '${languageData.language}' from ${languageData.source}.`);\n deepSetValue(reqBidsConfigObj.ortb2Fragments.global, langPath, languageData.language);\n } else if (languageData?.source === 'auction_ortb2') {\n const langPath = moduleConfig.languageDetector.ortb2Path;\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Lang already in auction ORTB2 at path '${langPath}', no enrichment needed.`);\n }\n } else {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Language detection disabled, no lang enrichment.`);\n }\n\n // Summarizer Data (Keywords) Enrichment\n if (moduleConfig.summarizer?.enabled === true) {\n const keywordsPath = moduleConfig.summarizer.ortb2Path;\n const auctionKeywords = deepAccess(reqBidsConfigObj.ortb2Fragments.global, keywordsPath);\n\n if (auctionKeywords && Array.isArray(auctionKeywords) && auctionKeywords.length > 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Keywords already present in auction_ortb2 at path '${keywordsPath}', no enrichment from module.`, auctionKeywords);\n } else {\n // auction_ortb2 path is empty, try to use keywords from initSummarizer (localStorage or fresh detection)\n if (detectedKeywords && detectedKeywords.length > 0) {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Enriching ORTB2 path '${keywordsPath}' with keywords from module (localStorage/detection):`, detectedKeywords);\n deepSetValue(reqBidsConfigObj.ortb2Fragments.global, keywordsPath, detectedKeywords);\n } else {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer enabled, but no keywords from auction_ortb2, localStorage, or fresh detection for path '${keywordsPath}'.`);\n }\n }\n } else {\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Summarizer disabled, no keyword enrichment.`);\n }\n\n logMessage(`${CONSTANTS.LOG_PRE_FIX} Final reqBidsConfigObj for auction:`, reqBidsConfigObj);\n callback();\n};\n\n/** @type {RtdSubmodule} */\nexport const chromeAiSubmodule = {\n name: CONSTANTS.SUBMODULE_NAME,\n disclosureURL: 'local://modules/chromeAiRtdProvider.json',\n init,\n getBidRequestData\n};\n\nexport const registerSubModule = () => {\n submodule(CONSTANTS.REAL_TIME_MODULE, chromeAiSubmodule);\n};\n\nregisterSubModule();\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -42,7 +42,7 @@ export const spec = {
|
|
|
42
42
|
const eids = [];
|
|
43
43
|
const payload = {
|
|
44
44
|
meta: {
|
|
45
|
-
prebidVersion: "10.
|
|
45
|
+
prebidVersion: "10.4.0",
|
|
46
46
|
pageUrl: bidderRequest.refererInfo.page,
|
|
47
47
|
screen: [window.screen.width, window.screen.height].join('x'),
|
|
48
48
|
browserLanguage: window.navigator.language,
|
|
@@ -37,7 +37,7 @@ export const spec = {
|
|
|
37
37
|
dnt: navigator.doNotTrack == 'yes' || navigator.doNotTrack == '1' || navigator.msDoNotTrack == '1' ? 1 : 0,
|
|
38
38
|
language: navigator.language,
|
|
39
39
|
ua: navigator.userAgent,
|
|
40
|
-
pversion: "10.
|
|
40
|
+
pversion: "10.4.0",
|
|
41
41
|
cur: 'USD',
|
|
42
42
|
user: {},
|
|
43
43
|
regs: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consentManagementGpp.js","names":["registerModule","__r0","deepSetValue","isEmpty","isPlainObject","isStr","logInfo","logWarn","config","gppDataHandler","enrichFPD","cmpClient","MODE_CALLBACK","PbPromise","defer","configParser","CONSENT_GPP","consentConfig","GPPError","constructor","message","arg","args","GPPClient","apiVersion","get","mkCmp","arguments","length","undefined","INST","cmp","apiName","apiArgs","mode","resolve","reject","pending","initialized","map","slot","result","pop","init","pingData","ready","updateWhenReady","gppVersion","command","callback","event","success","cmpStatus","isCMPReady","includes","eventName","updateConsent","getConsentData","setConsentData","refresh","then","bind","consentData","parseConsentData","nextUpdate","def","push","promise","signalStatus","lookupIabConsent","cmpCallMap","cmpData","applicableSections","Array","isArray","gppString","parsedSections","forEach","section","toConsentData","gppData","resetConsentData","reset","parseConfig","namespace","displayName","consentDataHandler","getNullConsent","cmpHandlers","setConsentConfig","loadConsentData","catch","getConfig","consentManagement","enrichFPDHook","next","fpd","ortb2","consent","before"],"sourceRoot":"../../..","sources":["modules/consentManagementGpp.ts"],"sourcesContent":["/**\n * This module adds GPP consentManagement support to prebid.js. It interacts with\n * supported CMPs (Consent Management Platforms) to grab the user's consent information\n * and make it available for any GPP supported adapters to read/pass this information to\n * their system and for various other features/modules in Prebid.js.\n */\nimport {deepSetValue, isEmpty, isPlainObject, isStr, logInfo, logWarn} from '../src/utils.js';\nimport {config} from '../src/config.js';\nimport {gppDataHandler} from '../src/adapterManager.js';\nimport {enrichFPD} from '../src/fpd/enrichment.js';\nimport {cmpClient, MODE_CALLBACK} from '../libraries/cmp/cmpClient.js';\nimport {PbPromise, defer} from '../src/utils/promise.js';\nimport {type CMConfig, configParser} from '../libraries/consentManagement/cmUtils.js';\nimport {CONSENT_GPP} from \"../src/consentHandler.ts\";\n\nexport let consentConfig = {} as any;\n\ntype RelevantCMPData = {\n applicableSections: number[]\n gppString: string;\n parsedSections: Record<string, unknown>\n}\n\ntype CMPData = RelevantCMPData & { [key: string]: unknown };\n\nexport type GPPConsentData = RelevantCMPData & {\n gppData: CMPData;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface GPPConfig {\n // this is here to be extended by the control modules\n}\n\nexport type GPPCMConfig = GPPConfig & CMConfig<RelevantCMPData>;\n\ndeclare module '../src/consentHandler' {\n interface ConsentData {\n [CONSENT_GPP]: GPPConsentData;\n }\n interface ConsentManagementConfig {\n [CONSENT_GPP]?: GPPCMConfig;\n }\n}\n\nclass GPPError {\n message;\n args;\n constructor(message, arg?) {\n this.message = message;\n this.args = arg == null ? [] : [arg];\n }\n}\n\nexport class GPPClient {\n apiVersion = '1.1';\n cmp;\n static INST;\n\n static get(mkCmp = cmpClient) {\n if (this.INST == null) {\n const cmp = mkCmp({\n apiName: '__gpp',\n apiArgs: ['command', 'callback', 'parameter'], // do not pass version - not clear what it's for (or what we should use),\n mode: MODE_CALLBACK\n });\n if (cmp == null) {\n throw new GPPError('GPP CMP not found');\n }\n this.INST = new this(cmp);\n }\n return this.INST;\n }\n\n #resolve;\n #reject;\n #pending = [];\n\n initialized = false;\n\n constructor(cmp) {\n this.cmp = cmp;\n [this.#resolve, this.#reject] = ['resolve', 'reject'].map(slot => (result) => {\n while (this.#pending.length) {\n this.#pending.pop()[slot](result);\n }\n });\n }\n\n /**\n * initialize this client - update consent data if already available,\n * and set up event listeners to also update on CMP changes\n *\n * @param pingData\n * @returns {Promise<{}>} a promise to GPP consent data\n */\n init(pingData) {\n const ready = this.updateWhenReady(pingData);\n if (!this.initialized) {\n if (pingData.gppVersion !== this.apiVersion) {\n logWarn(`Unrecognized GPP CMP version: ${pingData.apiVersion}. Continuing using GPP API version ${this.apiVersion}...`);\n }\n this.initialized = true;\n this.cmp({\n command: 'addEventListener',\n callback: (event, success) => {\n if (success != null && !success) {\n this.#reject(new GPPError('Received error response from CMP', event));\n } else if (event?.pingData?.cmpStatus === 'error') {\n this.#reject(new GPPError('CMP status is \"error\"; please check CMP setup', event));\n } else if (this.isCMPReady(event?.pingData || {}) && ['sectionChange', 'signalStatus'].includes(event?.eventName)) {\n this.#resolve(this.updateConsent(event.pingData));\n }\n // NOTE: according to https://github.com/InteractiveAdvertisingBureau/Global-Privacy-Platform/blob/main/Core/CMP%20API%20Specification.md,\n // > [signalStatus] Event is called whenever the display status of the CMP changes (e.g. the CMP shows the consent layer).\n //\n // however, from real world testing, at least some CMPs only trigger 'cmpDisplayStatus'\n // other CMPs may do something else yet; here we just look for 'signalStatus: not ready' on any event\n // to decide if consent data is likely to change\n if (gppDataHandler.getConsentData() != null && event?.pingData != null && !this.isCMPReady(event.pingData)) {\n gppDataHandler.setConsentData(null);\n }\n }\n });\n }\n return ready;\n }\n\n refresh() {\n return this.cmp({command: 'ping'}).then(this.init.bind(this));\n }\n\n /**\n * Retrieve and store GPP consent data.\n *\n * @param pingData\n * @returns {Promise<{}>} a promise to GPP consent data\n */\n updateConsent(pingData) {\n return new PbPromise(resolve => {\n if (pingData == null || isEmpty(pingData)) {\n throw new GPPError('Received empty response from CMP', pingData);\n }\n const consentData = parseConsentData(pingData);\n logInfo('Retrieved GPP consent from CMP:', consentData);\n gppDataHandler.setConsentData(consentData);\n resolve(consentData);\n });\n }\n\n /**\n * Return a promise to GPP consent data, to be retrieved the next time the CMP signals it's ready.\n *\n * @returns {Promise<{}>}\n */\n nextUpdate() {\n const def = defer();\n this.#pending.push(def);\n return def.promise;\n }\n\n /**\n * Return a promise to GPP consent data, to be retrieved immediately if the CMP is ready according to `pingData`,\n * or as soon as it signals that it's ready otherwise.\n *\n * @param pingData\n * @returns {Promise<{}>}\n */\n updateWhenReady(pingData) {\n return this.isCMPReady(pingData) ? this.updateConsent(pingData) : this.nextUpdate();\n }\n\n isCMPReady(pingData) {\n return pingData.signalStatus === 'ready';\n }\n}\n\nfunction lookupIabConsent() {\n return new PbPromise((resolve) => resolve(GPPClient.get().refresh()))\n}\n\n// add new CMPs here, with their dedicated lookup function\nconst cmpCallMap = {\n 'iab': lookupIabConsent,\n};\n\nfunction parseConsentData(cmpData) {\n if (\n (cmpData?.applicableSections != null && !Array.isArray(cmpData.applicableSections)) ||\n (cmpData?.gppString != null && !isStr(cmpData.gppString)) ||\n (cmpData?.parsedSections != null && !isPlainObject(cmpData.parsedSections))\n ) {\n throw new GPPError('CMP returned unexpected value during lookup process.', cmpData);\n }\n ['usnatv1', 'uscav1'].forEach(section => {\n if (cmpData?.parsedSections?.[section]) {\n logWarn(`Received invalid section from cmp: '${section}'. Some functionality may not work as expected`, cmpData);\n }\n });\n return toConsentData(cmpData);\n}\n\nexport function toConsentData(gppData = {} as any): GPPConsentData {\n return {\n gppString: gppData?.gppString,\n applicableSections: gppData?.applicableSections || [],\n parsedSections: gppData?.parsedSections || {},\n gppData: gppData\n };\n}\n\n/**\n * Simply resets the module's consentData variable back to undefined, mainly for testing purposes\n */\nexport function resetConsentData() {\n consentConfig = {};\n gppDataHandler.reset();\n GPPClient.INST = null;\n}\n\nconst parseConfig = configParser({\n namespace: 'gpp',\n displayName: 'GPP',\n consentDataHandler: gppDataHandler,\n parseConsentData,\n getNullConsent: () => toConsentData(null),\n cmpHandlers: cmpCallMap\n});\n\nexport function setConsentConfig(config) {\n consentConfig = parseConfig(config);\n return consentConfig.loadConsentData?.()?.catch?.(() => null);\n}\nconfig.getConfig('consentManagement', config => setConsentConfig(config.consentManagement));\n\nexport function enrichFPDHook(next, fpd) {\n return next(fpd.then(ortb2 => {\n const consent = gppDataHandler.getConsentData();\n if (consent) {\n if (Array.isArray(consent.applicableSections)) {\n deepSetValue(ortb2, 'regs.gpp_sid', consent.applicableSections);\n }\n deepSetValue(ortb2, 'regs.gpp', consent.gppString);\n }\n return ortb2;\n }));\n}\n\nenrichFPD.before(enrichFPDHook);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"consentManagementGpp.js","names":["registerModule","__r0","deepSetValue","isEmpty","isPlainObject","isStr","logInfo","logWarn","config","gppDataHandler","enrichFPD","cmpClient","MODE_CALLBACK","PbPromise","defer","configParser","CONSENT_GPP","consentConfig","GPPError","constructor","message","arg","args","GPPClient","apiVersion","get","mkCmp","arguments","length","undefined","INST","cmp","apiName","apiArgs","mode","resolve","reject","pending","initialized","map","slot","result","pop","init","pingData","ready","updateWhenReady","gppVersion","command","callback","event","success","cmpStatus","isCMPReady","includes","eventName","updateConsent","getConsentData","setConsentData","refresh","then","bind","consentData","parseConsentData","nextUpdate","def","push","promise","signalStatus","lookupIabConsent","cmpCallMap","cmpData","applicableSections","Array","isArray","gppString","parsedSections","forEach","section","toConsentData","gppData","resetConsentData","reset","parseConfig","namespace","displayName","consentDataHandler","getNullConsent","cmpHandlers","setConsentConfig","loadConsentData","catch","getConfig","consentManagement","enrichFPDHook","next","fpd","ortb2","consent","before"],"sourceRoot":"../../..","sources":["modules/consentManagementGpp.ts"],"sourcesContent":["/**\n * This module adds GPP consentManagement support to prebid.js. It interacts with\n * supported CMPs (Consent Management Platforms) to grab the user's consent information\n * and make it available for any GPP supported adapters to read/pass this information to\n * their system and for various other features/modules in Prebid.js.\n */\nimport {deepSetValue, isEmpty, isPlainObject, isStr, logInfo, logWarn} from '../src/utils.js';\nimport {config} from '../src/config.js';\nimport {gppDataHandler} from '../src/adapterManager.js';\nimport {enrichFPD} from '../src/fpd/enrichment.js';\nimport {cmpClient, MODE_CALLBACK} from '../libraries/cmp/cmpClient.js';\nimport {PbPromise, defer} from '../src/utils/promise.js';\nimport {type CMConfig, configParser} from '../libraries/consentManagement/cmUtils.js';\nimport {CONSENT_GPP} from \"../src/consentHandler.ts\";\n\nexport let consentConfig = {} as any;\n\ntype RelevantCMPData = {\n applicableSections: number[]\n gppString: string;\n parsedSections: Record<string, unknown>\n}\n\ntype CMPData = RelevantCMPData & { [key: string]: unknown };\n\nexport type GPPConsentData = RelevantCMPData & {\n gppData: CMPData;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface GPPConfig {\n // this is here to be extended by the control modules\n}\n\nexport type GPPCMConfig = GPPConfig & CMConfig<RelevantCMPData>;\n\ndeclare module '../src/consentHandler' {\n interface ConsentData {\n [CONSENT_GPP]: GPPConsentData;\n }\n interface ConsentManagementConfig {\n [CONSENT_GPP]?: GPPCMConfig;\n }\n}\n\nclass GPPError {\n message;\n args;\n constructor(message, arg?) {\n this.message = message;\n this.args = arg == null ? [] : [arg];\n }\n}\n\nexport class GPPClient {\n apiVersion = '1.1';\n cmp;\n static INST;\n\n static get(mkCmp = cmpClient) {\n if (this.INST == null) {\n const cmp = mkCmp({\n apiName: '__gpp',\n apiArgs: ['command', 'callback', 'parameter'], // do not pass version - not clear what it's for (or what we should use),\n mode: MODE_CALLBACK\n });\n if (cmp == null) {\n throw new GPPError('GPP CMP not found');\n }\n this.INST = new this(cmp);\n }\n return this.INST;\n }\n\n #resolve;\n #reject;\n #pending = [];\n\n initialized = false;\n\n constructor(cmp) {\n this.cmp = cmp;\n [this.#resolve, this.#reject] = ['resolve', 'reject'].map(slot => (result) => {\n while (this.#pending.length) {\n this.#pending.pop()[slot](result);\n }\n });\n }\n\n /**\n * initialize this client - update consent data if already available,\n * and set up event listeners to also update on CMP changes\n *\n * @param pingData\n * @returns {Promise<{}>} a promise to GPP consent data\n */\n init(pingData) {\n const ready = this.updateWhenReady(pingData);\n if (!this.initialized) {\n if (pingData.gppVersion !== this.apiVersion) {\n logWarn(`Unrecognized GPP CMP version: ${pingData.apiVersion}. Continuing using GPP API version ${this.apiVersion}...`);\n }\n this.initialized = true;\n this.cmp({\n command: 'addEventListener',\n callback: (event, success) => {\n if (success != null && !success) {\n this.#reject(new GPPError('Received error response from CMP', event));\n } else if (event?.pingData?.cmpStatus === 'error') {\n this.#reject(new GPPError('CMP status is \"error\"; please check CMP setup', event));\n } else if (this.isCMPReady(event?.pingData || {}) && ['sectionChange', 'signalStatus'].includes(event?.eventName)) {\n this.#resolve(this.updateConsent(event.pingData));\n }\n // NOTE: according to https://github.com/InteractiveAdvertisingBureau/Global-Privacy-Platform/blob/main/Core/CMP%20API%20Specification.md,\n // > [signalStatus] Event is called whenever the display status of the CMP changes (e.g. the CMP shows the consent layer).\n //\n // however, from real world testing, at least some CMPs only trigger 'cmpDisplayStatus'\n // other CMPs may do something else yet; here we just look for 'signalStatus: not ready' on any event\n // to decide if consent data is likely to change\n if (gppDataHandler.getConsentData() != null && event?.pingData != null && !this.isCMPReady(event.pingData)) {\n gppDataHandler.setConsentData(null);\n }\n }\n });\n }\n return ready;\n }\n\n refresh() {\n return this.cmp({command: 'ping'}).then(this.init.bind(this));\n }\n\n /**\n * Retrieve and store GPP consent data.\n *\n * @param pingData\n * @returns {Promise<{}>} a promise to GPP consent data\n */\n updateConsent(pingData) {\n return new PbPromise(resolve => {\n if (pingData == null || isEmpty(pingData)) {\n throw new GPPError('Received empty response from CMP', pingData);\n }\n const consentData = parseConsentData(pingData);\n logInfo('Retrieved GPP consent from CMP:', consentData);\n gppDataHandler.setConsentData(consentData);\n resolve(consentData);\n });\n }\n\n /**\n * Return a promise to GPP consent data, to be retrieved the next time the CMP signals it's ready.\n *\n * @returns {Promise<{}>}\n */\n nextUpdate() {\n const def = defer();\n this.#pending.push(def);\n return def.promise;\n }\n\n /**\n * Return a promise to GPP consent data, to be retrieved immediately if the CMP is ready according to `pingData`,\n * or as soon as it signals that it's ready otherwise.\n *\n * @param pingData\n * @returns {Promise<{}>}\n */\n updateWhenReady(pingData) {\n return this.isCMPReady(pingData) ? this.updateConsent(pingData) : this.nextUpdate();\n }\n\n isCMPReady(pingData) {\n return pingData.signalStatus === 'ready';\n }\n}\n\nfunction lookupIabConsent() {\n return new PbPromise((resolve) => resolve(GPPClient.get().refresh()))\n}\n\n// add new CMPs here, with their dedicated lookup function\nconst cmpCallMap = {\n 'iab': lookupIabConsent,\n};\n\nfunction parseConsentData(cmpData) {\n if (\n (cmpData?.applicableSections != null && !Array.isArray(cmpData.applicableSections)) ||\n (cmpData?.gppString != null && !isStr(cmpData.gppString)) ||\n (cmpData?.parsedSections != null && !isPlainObject(cmpData.parsedSections))\n ) {\n throw new GPPError('CMP returned unexpected value during lookup process.', cmpData);\n }\n ['usnatv1', 'uscav1'].forEach(section => {\n if (cmpData?.parsedSections?.[section]) {\n logWarn(`Received invalid section from cmp: '${section}'. Some functionality may not work as expected`, cmpData);\n }\n });\n return toConsentData(cmpData);\n}\n\nexport function toConsentData(gppData = {} as any): GPPConsentData {\n return {\n gppString: gppData?.gppString,\n applicableSections: gppData?.applicableSections || [],\n parsedSections: gppData?.parsedSections || {},\n gppData: gppData\n };\n}\n\n/**\n * Simply resets the module's consentData variable back to undefined, mainly for testing purposes\n */\nexport function resetConsentData() {\n consentConfig = {};\n gppDataHandler.reset();\n GPPClient.INST = null;\n}\n\nconst parseConfig = configParser({\n namespace: 'gpp',\n displayName: 'GPP',\n consentDataHandler: gppDataHandler,\n parseConsentData,\n getNullConsent: () => toConsentData(null),\n cmpHandlers: cmpCallMap\n});\n\nexport function setConsentConfig(config) {\n consentConfig = parseConfig(config);\n return consentConfig.loadConsentData?.()?.catch?.(() => null);\n}\nconfig.getConfig('consentManagement', config => setConsentConfig(config.consentManagement));\n\nexport function enrichFPDHook(next, fpd) {\n return next(fpd.then(ortb2 => {\n const consent = gppDataHandler.getConsentData();\n if (consent) {\n if (Array.isArray(consent.applicableSections)) {\n deepSetValue(ortb2, 'regs.gpp_sid', consent.applicableSections);\n }\n deepSetValue(ortb2, 'regs.gpp', consent.gppString);\n }\n return ortb2;\n }));\n}\n\nenrichFPD.before(enrichFPDHook);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consentManagementTcf.js","names":["registerModule","__r0","deepSetValue","isStr","logInfo","config","gdprDataHandler","registerOrtbProcessor","REQUEST","enrichFPD","cmpClient","configParser","CONSENT_GDPR","consentConfig","gdprScope","dsaPlatform","CMP_VERSION","cmpCallMap","lookupIabConsent","setProvisionalConsent","Promise","resolve","reject","cmpResponseCallback","tcfData","success","parseConsentData","e","gdprApplies","eventStatus","setConsentData","Error","cmp","apiName","apiVersion","apiArgs","isDirect","command","callback","consentObject","checkData","tcString","Object","assign","args","toConsentData","cmpConsentObject","consentData","consentString","undefined","vendorData","addtlConsent","resetConsentData","reset","parseConfig","namespace","displayName","consentDataHandler","cmpHandlers","getNullConsent","setConsentConfig","tcfConfig","gdpr","usp","gpp","getTCData","defaultGdprScope","loadConsentData","catch","getConfig","consentManagement","enrichFPDHook","next","fpd","then","ortb2","consent","getConsentData","before","setOrtbAdditionalConsent","ortbRequest","bidderRequest","addtl","gdprConsent","type","name","fn"],"sourceRoot":"../../..","sources":["modules/consentManagementTcf.ts"],"sourcesContent":["/**\n * This module adds GDPR consentManagement support to prebid.js. It interacts with\n * supported CMPs (Consent Management Platforms) to grab the user's consent information\n * and make it available for any GDPR supported adapters to read/pass this information to\n * their system.\n */\nimport {deepSetValue, isStr, logInfo} from '../src/utils.js';\nimport {config} from '../src/config.js';\nimport {gdprDataHandler} from '../src/adapterManager.js';\nimport {registerOrtbProcessor, REQUEST} from '../src/pbjsORTB.js';\nimport {enrichFPD} from '../src/fpd/enrichment.js';\nimport {cmpClient} from '../libraries/cmp/cmpClient.js';\nimport {configParser} from '../libraries/consentManagement/cmUtils.js';\nimport {CONSENT_GDPR} from \"../src/consentHandler.ts\";\nimport type {CMConfig} from \"../libraries/consentManagement/cmUtils.ts\";\n\nexport let consentConfig: any = {};\nexport let gdprScope;\nlet dsaPlatform;\nconst CMP_VERSION = 2;\n\n// add new CMPs here, with their dedicated lookup function\nconst cmpCallMap = {\n 'iab': lookupIabConsent,\n};\n\n/**\n * @see https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework\n * @see https://github.com/InteractiveAdvertisingBureau/iabtcf-es/tree/master/modules/core#iabtcfcore\n */\nexport type TCFConsentData = {\n apiVersion: typeof CMP_VERSION;\n /**\n * The consent string.\n */\n consentString: string;\n /**\n * True if GDPR is in scope.\n */\n gdprApplies: boolean;\n /**\n * The response from the CMP.\n */\n vendorData: Record<string, unknown>;\n /**\n * Additional consent string, if provided by the CMP.\n * @see https://support.google.com/admanager/answer/9681920?hl=en\n */\n addtlConsent?: `${number}~${string}~${string}`;\n}\n\nexport interface TCFConfig {\n /**\n * Defines what the gdprApplies flag should be when the CMP doesn’t respond in time or the static data doesn’t supply.\n * Defaults to false.\n */\n defaultGdprScope?: boolean;\n /**\n * If true, indicates that the publisher is to be considered an “Online Platform” for the purposes of the Digital Services Act\n */\n dsaPlatform?: boolean;\n}\n\ntype TCFCMConfig = TCFConfig & CMConfig<TCFConsentData>;\n\ndeclare module '../src/consentHandler' {\n interface ConsentData {\n [CONSENT_GDPR]: TCFConsentData;\n }\n interface ConsentManagementConfig {\n [CONSENT_GDPR]?: TCFCMConfig;\n }\n}\n\n/**\n * This function handles interacting with an IAB compliant CMP to obtain the consent information of the user.\n */\nfunction lookupIabConsent(setProvisionalConsent) {\n return new Promise<void>((resolve, reject) => {\n function cmpResponseCallback(tcfData, success) {\n logInfo('Received a response from CMP', tcfData);\n if (success) {\n try {\n setProvisionalConsent(parseConsentData(tcfData));\n } catch (e) {\n }\n\n if (tcfData.gdprApplies === false || tcfData.eventStatus === 'tcloaded' || tcfData.eventStatus === 'useractioncomplete') {\n try {\n gdprDataHandler.setConsentData(parseConsentData(tcfData));\n resolve();\n } catch (e) {\n reject(e);\n }\n }\n } else {\n reject(Error('CMP unable to register callback function. Please check CMP setup.'))\n }\n }\n\n const cmp = cmpClient({\n apiName: '__tcfapi',\n apiVersion: CMP_VERSION,\n apiArgs: ['command', 'version', 'callback', 'parameter'],\n });\n\n if (!cmp) {\n reject(new Error('TCF2 CMP not found.'))\n }\n if ((cmp as any).isDirect) {\n logInfo('Detected CMP API is directly accessible, calling it now...');\n } else {\n logInfo('Detected CMP is outside the current iframe where Prebid.js is located, calling it now...');\n }\n\n cmp({\n command: 'addEventListener',\n callback: cmpResponseCallback\n })\n })\n}\n\nfunction parseConsentData(consentObject): TCFConsentData {\n function checkData() {\n // if CMP does not respond with a gdprApplies boolean, use defaultGdprScope (gdprScope)\n const gdprApplies = consentObject && typeof consentObject.gdprApplies === 'boolean' ? consentObject.gdprApplies : gdprScope;\n const tcString = consentObject && consentObject.tcString;\n return !!(\n (typeof gdprApplies !== 'boolean') ||\n (gdprApplies === true && (!tcString || !isStr(tcString)))\n );\n }\n\n if (checkData()) {\n throw Object.assign(new Error(`CMP returned unexpected value during lookup process.`), {args: [consentObject]})\n } else {\n return toConsentData(consentObject);\n }\n}\n\nfunction toConsentData(cmpConsentObject) {\n const consentData: TCFConsentData = {\n consentString: (cmpConsentObject) ? cmpConsentObject.tcString : undefined,\n vendorData: (cmpConsentObject) || undefined,\n gdprApplies: cmpConsentObject && typeof cmpConsentObject.gdprApplies === 'boolean' ? cmpConsentObject.gdprApplies : gdprScope,\n apiVersion: CMP_VERSION\n };\n if (cmpConsentObject && cmpConsentObject.addtlConsent && isStr(cmpConsentObject.addtlConsent)) {\n consentData.addtlConsent = cmpConsentObject.addtlConsent;\n }\n return consentData;\n}\n\n/**\n * Simply resets the module's consentData variable back to undefined, mainly for testing purposes\n */\nexport function resetConsentData() {\n consentConfig = {};\n gdprDataHandler.reset();\n}\n\nconst parseConfig = configParser({\n namespace: 'gdpr',\n displayName: 'TCF',\n consentDataHandler: gdprDataHandler,\n cmpHandlers: cmpCallMap,\n parseConsentData,\n getNullConsent: () => toConsentData(null)\n} as any)\n/**\n * A configuration function that initializes some module variables, as well as add a hook into the requestBids function\n */\nexport function setConsentConfig(config) {\n // if `config.gdpr`, `config.usp` or `config.gpp` exist, assume new config format.\n // else for backward compatability, just use `config`\n const tcfConfig: TCFCMConfig = config && (config.gdpr || config.usp || config.gpp ? config.gdpr : config);\n if ((tcfConfig?.consentData as any)?.getTCData != null) {\n tcfConfig.consentData = (tcfConfig.consentData as any).getTCData;\n }\n gdprScope = tcfConfig?.defaultGdprScope === true;\n dsaPlatform = !!tcfConfig?.dsaPlatform;\n consentConfig = parseConfig({gdpr: tcfConfig});\n return consentConfig.loadConsentData?.()?.catch?.(() => null);\n}\nconfig.getConfig('consentManagement', config => setConsentConfig(config.consentManagement));\n\nexport function enrichFPDHook(next, fpd) {\n return next(fpd.then(ortb2 => {\n const consent = gdprDataHandler.getConsentData();\n if (consent) {\n if (typeof consent.gdprApplies === 'boolean') {\n deepSetValue(ortb2, 'regs.ext.gdpr', consent.gdprApplies ? 1 : 0);\n }\n deepSetValue(ortb2, 'user.ext.consent', consent.consentString);\n }\n if (dsaPlatform) {\n deepSetValue(ortb2, 'regs.ext.dsa.dsarequired', 3);\n }\n return ortb2;\n }));\n}\n\nenrichFPD.before(enrichFPDHook);\n\nexport function setOrtbAdditionalConsent(ortbRequest, bidderRequest) {\n // this is not a standardized name for addtlConsent, so keep this as an ORTB library processor rather than an FPD enrichment\n const addtl = bidderRequest.gdprConsent?.addtlConsent;\n if (addtl && typeof addtl === 'string') {\n deepSetValue(ortbRequest, 'user.ext.ConsentedProvidersSettings.consented_providers', addtl);\n }\n}\n\nregisterOrtbProcessor({type: REQUEST, name: 'gdprAddtlConsent', fn: setOrtbAdditionalConsent})\n"],"mappings":"AAAA,SAAQA,cAAc,IAAIC,IAAI,QAAO,wBAAwB;AAA7D;AACA;AACA;AACA;AACA;AACA;AACA,SAAQC,YAAY,EAAEC,KAAK,EAAEC,OAAO,QAAO,iBAAiB;AAC5D,SAAQC,MAAM,QAAO,kBAAkB;AACvC,SAAQC,eAAe,QAAO,0BAA0B;AACxD,SAAQC,qBAAqB,EAAEC,OAAO,QAAO,oBAAoB;AACjE,SAAQC,SAAS,QAAO,0BAA0B;AAClD,SAAQC,SAAS,QAAO,+BAA+B;AACvD,SAAQC,YAAY,QAAO,2CAA2C;AACtE,SAAQC,YAAY,QAAO,0BAA0B;AAGrD,OAAO,IAAIC,aAAkB,GAAG,CAAC,CAAC;AAClC,OAAO,IAAIC,SAAS;AACpB,IAAIC,WAAW;AACf,MAAMC,WAAW,GAAG,CAAC;;AAErB;AACA,MAAMC,UAAU,GAAG;EACjB,KAAK,EAAEC;AACT,CAAC;;AAED;AACA;AACA;AACA;;AA6CA;AACA;AACA;AACA,SAASA,gBAAgBA,CAACC,qBAAqB,EAAE;EAC/C,OAAO,IAAIC,OAAO,CAAO,CAACC,OAAO,EAAEC,MAAM,KAAK;IAC5C,SAASC,mBAAmBA,CAACC,OAAO,EAAEC,OAAO,EAAE;MAC7CrB,OAAO,CAAC,8BAA8B,EAAEoB,OAAO,CAAC;MAChD,IAAIC,OAAO,EAAE;QACX,IAAI;UACFN,qBAAqB,CAACO,gBAAgB,CAACF,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC,OAAOG,CAAC,EAAE,CACZ;QAEA,IAAIH,OAAO,CAACI,WAAW,KAAK,KAAK,IAAIJ,OAAO,CAACK,WAAW,KAAK,UAAU,IAAIL,OAAO,CAACK,WAAW,KAAK,oBAAoB,EAAE;UACvH,IAAI;YACFvB,eAAe,CAACwB,cAAc,CAACJ,gBAAgB,CAACF,OAAO,CAAC,CAAC;YACzDH,OAAO,CAAC,CAAC;UACX,CAAC,CAAC,OAAOM,CAAC,EAAE;YACVL,MAAM,CAACK,CAAC,CAAC;UACX;QACF;MACF,CAAC,MAAM;QACLL,MAAM,CAACS,KAAK,CAAC,oEAAoE,CAAC,CAAC;MACrF;IACF;IAEA,MAAMC,GAAG,GAAGtB,SAAS,CAAC;MACpBuB,OAAO,EAAE,UAAU;MACnBC,UAAU,EAAElB,WAAW;MACvBmB,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW;IACzD,CAAC,CAAC;IAEF,IAAI,CAACH,GAAG,EAAE;MACRV,MAAM,CAAC,IAAIS,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC1C;IACA,IAAKC,GAAG,CAASI,QAAQ,EAAE;MACzBhC,OAAO,CAAC,4DAA4D,CAAC;IACvE,CAAC,MAAM;MACLA,OAAO,CAAC,0FAA0F,CAAC;IACrG;IAEA4B,GAAG,CAAC;MACFK,OAAO,EAAE,kBAAkB;MAC3BC,QAAQ,EAAEf;IACZ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,SAASG,gBAAgBA,CAACa,aAAa,EAAkB;EACvD,SAASC,SAASA,CAAA,EAAG;IACnB;IACA,MAAMZ,WAAW,GAAGW,aAAa,IAAI,OAAOA,aAAa,CAACX,WAAW,KAAK,SAAS,GAAGW,aAAa,CAACX,WAAW,GAAGd,SAAS;IAC3H,MAAM2B,QAAQ,GAAGF,aAAa,IAAIA,aAAa,CAACE,QAAQ;IACxD,OAAO,CAAC,EACL,OAAOb,WAAW,KAAK,SAAS,IAChCA,WAAW,KAAK,IAAI,KAAK,CAACa,QAAQ,IAAI,CAACtC,KAAK,CAACsC,QAAQ,CAAC,CAAE,CAC1D;EACH;EAEA,IAAID,SAAS,CAAC,CAAC,EAAE;IACf,MAAME,MAAM,CAACC,MAAM,CAAC,IAAIZ,KAAK,CAAC,sDAAsD,CAAC,EAAE;MAACa,IAAI,EAAE,CAACL,aAAa;IAAC,CAAC,CAAC;EACjH,CAAC,MAAM;IACL,OAAOM,aAAa,CAACN,aAAa,CAAC;EACrC;AACF;AAEA,SAASM,aAAaA,CAACC,gBAAgB,EAAE;EACvC,MAAMC,WAA2B,GAAG;IAClCC,aAAa,EAAGF,gBAAgB,GAAIA,gBAAgB,CAACL,QAAQ,GAAGQ,SAAS;IACzEC,UAAU,EAAGJ,gBAAgB,IAAKG,SAAS;IAC3CrB,WAAW,EAAEkB,gBAAgB,IAAI,OAAOA,gBAAgB,CAAClB,WAAW,KAAK,SAAS,GAAGkB,gBAAgB,CAAClB,WAAW,GAAGd,SAAS;IAC7HoB,UAAU,EAAElB;EACd,CAAC;EACD,IAAI8B,gBAAgB,IAAIA,gBAAgB,CAACK,YAAY,IAAIhD,KAAK,CAAC2C,gBAAgB,CAACK,YAAY,CAAC,EAAE;IAC7FJ,WAAW,CAACI,YAAY,GAAGL,gBAAgB,CAACK,YAAY;EAC1D;EACA,OAAOJ,WAAW;AACpB;;AAEA;AACA;AACA;AACA,OAAO,SAASK,gBAAgBA,CAAA,EAAG;EACjCvC,aAAa,GAAG,CAAC,CAAC;EAClBP,eAAe,CAAC+C,KAAK,CAAC,CAAC;AACzB;AAEA,MAAMC,WAAW,GAAG3C,YAAY,CAAC;EAC/B4C,SAAS,EAAE,MAAM;EACjBC,WAAW,EAAE,KAAK;EAClBC,kBAAkB,EAAEnD,eAAe;EACnCoD,WAAW,EAAEzC,UAAU;EACvBS,gBAAgB;EAChBiC,cAAc,EAAEA,CAAA,KAAMd,aAAa,CAAC,IAAI;AAC1C,CAAQ,CAAC;AACT;AACA;AACA;AACA,OAAO,SAASe,gBAAgBA,CAACvD,MAAM,EAAE;EACvC;EACA;EACA,MAAMwD,SAAsB,GAAGxD,MAAM,KAAKA,MAAM,CAACyD,IAAI,IAAIzD,MAAM,CAAC0D,GAAG,IAAI1D,MAAM,CAAC2D,GAAG,GAAG3D,MAAM,CAACyD,IAAI,GAAGzD,MAAM,CAAC;EACzG,IAAKwD,SAAS,EAAEd,WAAW,EAAUkB,SAAS,IAAI,IAAI,EAAE;IACtDJ,SAAS,CAACd,WAAW,GAAIc,SAAS,CAACd,WAAW,CAASkB,SAAS;EAClE;EACAnD,SAAS,GAAG+C,SAAS,EAAEK,gBAAgB,KAAK,IAAI;EAChDnD,WAAW,GAAG,CAAC,CAAC8C,SAAS,EAAE9C,WAAW;EACtCF,aAAa,GAAGyC,WAAW,CAAC;IAACQ,IAAI,EAAED;EAAS,CAAC,CAAC;EAC9C,OAAOhD,aAAa,CAACsD,eAAe,GAAG,CAAC,EAAEC,KAAK,GAAG,MAAM,IAAI,CAAC;AAC/D;AACA/D,MAAM,CAACgE,SAAS,CAAC,mBAAmB,EAAEhE,MAAM,IAAIuD,gBAAgB,CAACvD,MAAM,CAACiE,iBAAiB,CAAC,CAAC;AAE3F,OAAO,SAASC,aAAaA,CAACC,IAAI,EAAEC,GAAG,EAAE;EACvC,OAAOD,IAAI,CAACC,GAAG,CAACC,IAAI,CAACC,KAAK,IAAI;IAC5B,MAAMC,OAAO,GAAGtE,eAAe,CAACuE,cAAc,CAAC,CAAC;IAChD,IAAID,OAAO,EAAE;MACX,IAAI,OAAOA,OAAO,CAAChD,WAAW,KAAK,SAAS,EAAE;QAC5C1B,YAAY,CAACyE,KAAK,EAAE,eAAe,EAAEC,OAAO,CAAChD,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;MACnE;MACA1B,YAAY,CAACyE,KAAK,EAAE,kBAAkB,EAAEC,OAAO,CAAC5B,aAAa,CAAC;IAChE;IACA,IAAIjC,WAAW,EAAE;MACfb,YAAY,CAACyE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;IACpD;IACA,OAAOA,KAAK;EACd,CAAC,CAAC,CAAC;AACL;AAEAlE,SAAS,CAACqE,MAAM,CAACP,aAAa,CAAC;AAE/B,OAAO,SAASQ,wBAAwBA,CAACC,WAAW,EAAEC,aAAa,EAAE;EACnE;EACA,MAAMC,KAAK,GAAGD,aAAa,CAACE,WAAW,EAAEhC,YAAY;EACrD,IAAI+B,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACtChF,YAAY,CAAC8E,WAAW,EAAE,yDAAyD,EAAEE,KAAK,CAAC;EAC7F;AACF;AAEA3E,qBAAqB,CAAC;EAAC6E,IAAI,EAAE5E,OAAO;EAAE6E,IAAI,EAAE,kBAAkB;EAAEC,EAAE,EAAEP;AAAwB,CAAC,CAAC;AApN9F9E,IAAI,CAAC,sBAAsB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"consentManagementTcf.js","names":["registerModule","__r0","deepSetValue","isStr","logInfo","config","gdprDataHandler","registerOrtbProcessor","REQUEST","enrichFPD","cmpClient","configParser","CONSENT_GDPR","consentConfig","gdprScope","dsaPlatform","CMP_VERSION","cmpCallMap","lookupIabConsent","setProvisionalConsent","Promise","resolve","reject","cmpResponseCallback","tcfData","success","parseConsentData","e","gdprApplies","eventStatus","setConsentData","Error","cmp","apiName","apiVersion","apiArgs","isDirect","command","callback","consentObject","checkData","tcString","Object","assign","args","toConsentData","cmpConsentObject","consentData","consentString","undefined","vendorData","addtlConsent","resetConsentData","reset","parseConfig","namespace","displayName","consentDataHandler","cmpHandlers","getNullConsent","setConsentConfig","tcfConfig","gdpr","usp","gpp","getTCData","defaultGdprScope","loadConsentData","catch","getConfig","consentManagement","enrichFPDHook","next","fpd","then","ortb2","consent","getConsentData","before","setOrtbAdditionalConsent","ortbRequest","bidderRequest","addtl","gdprConsent","type","name","fn"],"sourceRoot":"../../..","sources":["modules/consentManagementTcf.ts"],"sourcesContent":["/**\n * This module adds GDPR consentManagement support to prebid.js. It interacts with\n * supported CMPs (Consent Management Platforms) to grab the user's consent information\n * and make it available for any GDPR supported adapters to read/pass this information to\n * their system.\n */\nimport {deepSetValue, isStr, logInfo} from '../src/utils.js';\nimport {config} from '../src/config.js';\nimport {gdprDataHandler} from '../src/adapterManager.js';\nimport {registerOrtbProcessor, REQUEST} from '../src/pbjsORTB.js';\nimport {enrichFPD} from '../src/fpd/enrichment.js';\nimport {cmpClient} from '../libraries/cmp/cmpClient.js';\nimport {configParser} from '../libraries/consentManagement/cmUtils.js';\nimport {CONSENT_GDPR} from \"../src/consentHandler.ts\";\nimport type {CMConfig} from \"../libraries/consentManagement/cmUtils.ts\";\n\nexport let consentConfig: any = {};\nexport let gdprScope;\nlet dsaPlatform;\nconst CMP_VERSION = 2;\n\n// add new CMPs here, with their dedicated lookup function\nconst cmpCallMap = {\n 'iab': lookupIabConsent,\n};\n\n/**\n * @see https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework\n * @see https://github.com/InteractiveAdvertisingBureau/iabtcf-es/tree/master/modules/core#iabtcfcore\n */\nexport type TCFConsentData = {\n apiVersion: typeof CMP_VERSION;\n /**\n * The consent string.\n */\n consentString: string;\n /**\n * True if GDPR is in scope.\n */\n gdprApplies: boolean;\n /**\n * The response from the CMP.\n */\n vendorData: Record<string, unknown>;\n /**\n * Additional consent string, if provided by the CMP.\n * @see https://support.google.com/admanager/answer/9681920?hl=en\n */\n addtlConsent?: `${number}~${string}~${string}`;\n}\n\nexport interface TCFConfig {\n /**\n * Defines what the gdprApplies flag should be when the CMP doesn’t respond in time or the static data doesn’t supply.\n * Defaults to false.\n */\n defaultGdprScope?: boolean;\n /**\n * If true, indicates that the publisher is to be considered an “Online Platform” for the purposes of the Digital Services Act\n */\n dsaPlatform?: boolean;\n}\n\ntype TCFCMConfig = TCFConfig & CMConfig<TCFConsentData>;\n\ndeclare module '../src/consentHandler' {\n interface ConsentData {\n [CONSENT_GDPR]: TCFConsentData;\n }\n interface ConsentManagementConfig {\n [CONSENT_GDPR]?: TCFCMConfig;\n }\n}\n\n/**\n * This function handles interacting with an IAB compliant CMP to obtain the consent information of the user.\n */\nfunction lookupIabConsent(setProvisionalConsent) {\n return new Promise<void>((resolve, reject) => {\n function cmpResponseCallback(tcfData, success) {\n logInfo('Received a response from CMP', tcfData);\n if (success) {\n try {\n setProvisionalConsent(parseConsentData(tcfData));\n } catch (e) {\n }\n\n if (tcfData.gdprApplies === false || tcfData.eventStatus === 'tcloaded' || tcfData.eventStatus === 'useractioncomplete') {\n try {\n gdprDataHandler.setConsentData(parseConsentData(tcfData));\n resolve();\n } catch (e) {\n reject(e);\n }\n }\n } else {\n reject(Error('CMP unable to register callback function. Please check CMP setup.'))\n }\n }\n\n const cmp = cmpClient({\n apiName: '__tcfapi',\n apiVersion: CMP_VERSION,\n apiArgs: ['command', 'version', 'callback', 'parameter'],\n });\n\n if (!cmp) {\n reject(new Error('TCF2 CMP not found.'))\n }\n if ((cmp as any).isDirect) {\n logInfo('Detected CMP API is directly accessible, calling it now...');\n } else {\n logInfo('Detected CMP is outside the current iframe where Prebid.js is located, calling it now...');\n }\n\n cmp({\n command: 'addEventListener',\n callback: cmpResponseCallback\n })\n })\n}\n\nfunction parseConsentData(consentObject): TCFConsentData {\n function checkData() {\n // if CMP does not respond with a gdprApplies boolean, use defaultGdprScope (gdprScope)\n const gdprApplies = consentObject && typeof consentObject.gdprApplies === 'boolean' ? consentObject.gdprApplies : gdprScope;\n const tcString = consentObject && consentObject.tcString;\n return !!(\n (typeof gdprApplies !== 'boolean') ||\n (gdprApplies === true && (!tcString || !isStr(tcString)))\n );\n }\n\n if (checkData()) {\n throw Object.assign(new Error(`CMP returned unexpected value during lookup process.`), {args: [consentObject]})\n } else {\n return toConsentData(consentObject);\n }\n}\n\nfunction toConsentData(cmpConsentObject) {\n const consentData: TCFConsentData = {\n consentString: (cmpConsentObject) ? cmpConsentObject.tcString : undefined,\n vendorData: (cmpConsentObject) || undefined,\n gdprApplies: cmpConsentObject && typeof cmpConsentObject.gdprApplies === 'boolean' ? cmpConsentObject.gdprApplies : gdprScope,\n apiVersion: CMP_VERSION\n };\n if (cmpConsentObject && cmpConsentObject.addtlConsent && isStr(cmpConsentObject.addtlConsent)) {\n consentData.addtlConsent = cmpConsentObject.addtlConsent;\n }\n return consentData;\n}\n\n/**\n * Simply resets the module's consentData variable back to undefined, mainly for testing purposes\n */\nexport function resetConsentData() {\n consentConfig = {};\n gdprDataHandler.reset();\n}\n\nconst parseConfig = configParser({\n namespace: 'gdpr',\n displayName: 'TCF',\n consentDataHandler: gdprDataHandler,\n cmpHandlers: cmpCallMap,\n parseConsentData,\n getNullConsent: () => toConsentData(null)\n} as any)\n/**\n * A configuration function that initializes some module variables, as well as add a hook into the requestBids function\n */\nexport function setConsentConfig(config) {\n // if `config.gdpr`, `config.usp` or `config.gpp` exist, assume new config format.\n // else for backward compatability, just use `config`\n const tcfConfig: TCFCMConfig = config && (config.gdpr || config.usp || config.gpp ? config.gdpr : config);\n if ((tcfConfig?.consentData as any)?.getTCData != null) {\n tcfConfig.consentData = (tcfConfig.consentData as any).getTCData;\n }\n gdprScope = tcfConfig?.defaultGdprScope === true;\n dsaPlatform = !!tcfConfig?.dsaPlatform;\n consentConfig = parseConfig({gdpr: tcfConfig});\n return consentConfig.loadConsentData?.()?.catch?.(() => null);\n}\nconfig.getConfig('consentManagement', config => setConsentConfig(config.consentManagement));\n\nexport function enrichFPDHook(next, fpd) {\n return next(fpd.then(ortb2 => {\n const consent = gdprDataHandler.getConsentData();\n if (consent) {\n if (typeof consent.gdprApplies === 'boolean') {\n deepSetValue(ortb2, 'regs.ext.gdpr', consent.gdprApplies ? 1 : 0);\n }\n deepSetValue(ortb2, 'user.ext.consent', consent.consentString);\n }\n if (dsaPlatform) {\n deepSetValue(ortb2, 'regs.ext.dsa.dsarequired', 3);\n }\n return ortb2;\n }));\n}\n\nenrichFPD.before(enrichFPDHook);\n\nexport function setOrtbAdditionalConsent(ortbRequest, bidderRequest) {\n // this is not a standardized name for addtlConsent, so keep this as an ORTB library processor rather than an FPD enrichment\n const addtl = bidderRequest.gdprConsent?.addtlConsent;\n if (addtl && typeof addtl === 'string') {\n deepSetValue(ortbRequest, 'user.ext.ConsentedProvidersSettings.consented_providers', addtl);\n }\n}\n\nregisterOrtbProcessor({type: REQUEST, name: 'gdprAddtlConsent', fn: setOrtbAdditionalConsent})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consentManagementUsp.js","names":["registerModule","__r0","deepSetValue","isNumber","isPlainObject","isStr","logError","logInfo","logWarn","config","adapterManager","uspDataHandler","timedAuctionHook","getHook","enrichFPD","cmpClient","DEFAULT_CONSENT_API","DEFAULT_CONSENT_TIMEOUT","USPAPI_VERSION","consentAPI","consentTimeout","staticConsentData","consentData","enabled","uspCallMap","lookupUspConsent","lookupStaticConsentData","_ref","onSuccess","onError","processUspData","_ref2","handleUspApiResponseCallbacks","uspResponse","afterEach","usPrivacy","consentDataCallback","consentResponse","success","uspString","callbackHandler","cmp","apiName","apiVersion","apiArgs","isDirect","command","callback","res","callDataDeletionRequest","catch","e","loadConsentData","cb","timer","isDone","done","errMsg","clearTimeout","setConsentData","_len","arguments","length","extraArgs","Array","_key","callbacks","_len2","_key2","undefined","setTimeout","bind","requestBidsHook","fn","reqBidsConfigObj","_this","enableConsentManagement","_len3","_key3","call","consentObject","_ref3","valid","storeUspConsentData","resetConsentData","reset","setConsentConfig","usp","cmpApi","timeout","getUSPData","configFromUser","enable","getConfig","consentManagement","before","enrichFPDHook","next","fpd","then","ortb2","consent","getConsentData"],"sourceRoot":"../../..","sources":["modules/consentManagementUsp.ts"],"sourcesContent":["/**\n * This module adds USPAPI (CCPA) consentManagement support to prebid.js. It\n * interacts with supported USP Consent APIs to grab the user's consent\n * information and make it available for any USP (CCPA) supported adapters to\n * read/pass this information to their system.\n */\nimport {deepSetValue, isNumber, isPlainObject, isStr, logError, logInfo, logWarn} from '../src/utils.js';\nimport {config} from '../src/config.js';\nimport adapterManager, {uspDataHandler} from '../src/adapterManager.js';\nimport {timedAuctionHook} from '../src/utils/perfMetrics.js';\nimport {getHook} from '../src/hook.js';\nimport {enrichFPD} from '../src/fpd/enrichment.js';\nimport {cmpClient} from '../libraries/cmp/cmpClient.js';\nimport type {IABCMConfig, StaticCMConfig} from \"../libraries/consentManagement/cmUtils.ts\";\nimport type {CONSENT_USP} from \"../src/consentHandler.ts\";\n\nconst DEFAULT_CONSENT_API = 'iab';\nconst DEFAULT_CONSENT_TIMEOUT = 50;\nconst USPAPI_VERSION = 1;\n\nexport let consentAPI = DEFAULT_CONSENT_API;\nexport let consentTimeout = DEFAULT_CONSENT_TIMEOUT;\nexport let staticConsentData;\n\ntype USPConsentData = string;\ntype BaseUSPConfig = {\n /**\n * Length of time (in milliseconds) to delay auctions while waiting for consent data from the CMP.\n * Default is 50.\n */\n timeout?: number;\n}\n\ntype StaticUSPData = {\n getUSPData: {\n uspString: USPConsentData;\n }\n}\ntype USPCMConfig = BaseUSPConfig & (IABCMConfig | StaticCMConfig<StaticUSPData>);\n\ndeclare module '../src/consentHandler' {\n interface ConsentData {\n [CONSENT_USP]: USPConsentData;\n }\n interface ConsentManagementConfig {\n [CONSENT_USP]?: USPCMConfig;\n }\n}\n\nlet consentData;\nlet enabled = false;\n\n// consent APIs\nconst uspCallMap = {\n 'iab': lookupUspConsent,\n 'static': lookupStaticConsentData\n};\n\n/**\n * This function reads the consent string from the config to obtain the consent information of the user.\n */\nfunction lookupStaticConsentData({onSuccess, onError}) {\n processUspData(staticConsentData, {onSuccess, onError});\n}\n\n/**\n * This function handles interacting with an USP compliant consent manager to obtain the consent information of the user.\n * Given the async nature of the USP's API, we pass in acting success/error callback functions to exit this function\n * based on the appropriate result.\n */\nfunction lookupUspConsent({onSuccess, onError}) {\n function handleUspApiResponseCallbacks() {\n const uspResponse = {} as any;\n\n function afterEach() {\n if (uspResponse.usPrivacy) {\n processUspData(uspResponse, {onSuccess, onError})\n } else {\n onError('Unable to get USP consent string.');\n }\n }\n\n return {\n consentDataCallback: (consentResponse, success) => {\n if (success && consentResponse.uspString) {\n uspResponse.usPrivacy = consentResponse.uspString;\n }\n afterEach();\n },\n };\n }\n\n const callbackHandler = handleUspApiResponseCallbacks();\n\n const cmp = cmpClient({\n apiName: '__uspapi',\n apiVersion: USPAPI_VERSION,\n apiArgs: ['command', 'version', 'callback'],\n }) as any;\n\n if (!cmp) {\n return onError('USP CMP not found.');\n }\n\n if (cmp.isDirect) {\n logInfo('Detected USP CMP is directly accessible, calling it now...');\n } else {\n logInfo(\n 'Detected USP CMP is outside the current iframe where Prebid.js is located, calling it now...'\n );\n }\n\n cmp({\n command: 'getUSPData',\n callback: callbackHandler.consentDataCallback\n });\n\n cmp({\n command: 'registerDeletion',\n callback: (res, success) => (success == null || success) && adapterManager.callDataDeletionRequest(res)\n }).catch(e => {\n logError('Error invoking CMP `registerDeletion`:', e);\n });\n}\n\n/**\n * Lookup consent data and store it in the `consentData` global as well as `adapterManager.js`' uspDataHanlder.\n *\n * @param cb a callback that takes an error message and extra error arguments; all args will be undefined if consent\n * data was retrieved successfully.\n */\nfunction loadConsentData(cb?) {\n let timer = null;\n let isDone = false;\n\n function done(consentData, errMsg, ...extraArgs) {\n if (timer != null) {\n clearTimeout(timer);\n }\n isDone = true;\n uspDataHandler.setConsentData(consentData);\n if (cb != null) {\n cb(errMsg, ...extraArgs)\n }\n }\n\n if (!uspCallMap[consentAPI]) {\n done(null, `USP framework (${consentAPI}) is not a supported framework. Aborting consentManagement module and resuming auction.`);\n return;\n }\n\n const callbacks = {\n onSuccess: done,\n onError: function (errMsg, ...extraArgs) {\n done(null, `${errMsg} Resuming auction without consent data as per consentManagement config.`, ...extraArgs);\n }\n }\n\n uspCallMap[consentAPI](callbacks);\n\n if (!isDone) {\n if (consentTimeout === 0) {\n processUspData(undefined, callbacks);\n } else {\n timer = setTimeout(callbacks.onError.bind(null, 'USPAPI workflow exceeded timeout threshold.'), consentTimeout)\n }\n }\n}\n\n/**\n * If consentManagementUSP module is enabled (ie included in setConfig), this hook function will attempt to fetch the\n * user's encoded consent string from the supported USPAPI. Once obtained, the module will store this\n * data as part of a uspConsent object which gets transferred to adapterManager's uspDataHandler object.\n * This information is later added into the bidRequest object for any supported adapters to read/pass along to their system.\n * @param {object} reqBidsConfigObj required; This is the same param that's used in pbjs.requestBids.\n * @param {function} fn required; The next function in the chain, used by hook.ts\n */\nexport const requestBidsHook = timedAuctionHook('usp', function requestBidsHook(fn, reqBidsConfigObj) {\n if (!enabled) {\n enableConsentManagement();\n }\n loadConsentData((errMsg, ...extraArgs) => {\n if (errMsg != null) {\n logWarn(errMsg, ...extraArgs);\n }\n fn.call(this, reqBidsConfigObj);\n });\n});\n\n/**\n * This function checks the consent data provided by USPAPI to ensure it's in an expected state.\n * If it's bad, we exit the module depending on config settings.\n * If it's good, then we store the value and exit the module.\n *\n * @param {Object} consentObject - The object returned by USPAPI that contains the user's consent choices.\n * @param {Object} callbacks - An object containing the callback functions.\n * @param {function(string): void} callbacks.onSuccess - Callback accepting the resolved USP consent string.\n * @param {function(string, ...Object?): void} callbacks.onError - Callback accepting an error message and any extra error arguments (used purely for logging).\n */\nfunction processUspData(consentObject, {onSuccess, onError}) {\n const valid = !!(consentObject && consentObject.usPrivacy);\n if (!valid) {\n onError(`USPAPI returned unexpected value during lookup process.`, consentObject);\n return;\n }\n\n storeUspConsentData(consentObject);\n onSuccess(consentData);\n}\n\n/**\n * Stores USP data locally in module and then invokes uspDataHandler.setConsentData() to make information available in adaptermanger.js for later in the auction\n * @param {object} consentObject required; an object representing user's consent choices (can be undefined in certain use-cases for this function only)\n */\nfunction storeUspConsentData(consentObject) {\n if (consentObject && consentObject.usPrivacy) {\n consentData = consentObject.usPrivacy;\n }\n}\n\n/**\n * Simply resets the module's consentData variable back to undefined, mainly for testing purposes\n */\nexport function resetConsentData() {\n consentData = undefined;\n consentAPI = undefined;\n consentTimeout = undefined;\n uspDataHandler.reset();\n enabled = false;\n}\n\n/**\n * A configuration function that initializes some module variables, as well as add a hook into the requestBids function\n * @param {object} config required; consentManagementUSP module config settings; usp (string), timeout (int)\n */\nexport function setConsentConfig(config) {\n config = config && config.usp;\n if (!config || typeof config !== 'object') {\n logWarn('consentManagement.usp config not defined, using defaults');\n }\n if (config && isStr(config.cmpApi)) {\n consentAPI = config.cmpApi;\n } else {\n consentAPI = DEFAULT_CONSENT_API;\n logInfo(`consentManagement.usp config did not specify cmpApi. Using system default setting (${DEFAULT_CONSENT_API}).`);\n }\n\n if (config && isNumber(config.timeout)) {\n consentTimeout = config.timeout;\n } else {\n consentTimeout = DEFAULT_CONSENT_TIMEOUT;\n logInfo(`consentManagement.usp config did not specify timeout. Using system default setting (${DEFAULT_CONSENT_TIMEOUT}).`);\n }\n if (consentAPI === 'static') {\n if (isPlainObject(config.consentData) && isPlainObject(config.consentData.getUSPData)) {\n if (config.consentData.getUSPData.uspString) staticConsentData = { usPrivacy: config.consentData.getUSPData.uspString };\n consentTimeout = 0;\n } else {\n logError(`consentManagement config with cmpApi: 'static' did not specify consentData. No consents will be available to adapters.`);\n }\n }\n enableConsentManagement(true);\n}\n\nfunction enableConsentManagement(configFromUser = false) {\n if (!enabled) {\n logInfo(`USPAPI consentManagement module has been activated${configFromUser ? '' : ` using default values (api: '${consentAPI}', timeout: ${consentTimeout}ms)`}`);\n enabled = true;\n uspDataHandler.enable();\n }\n loadConsentData(); // immediately look up consent data to make it available without requiring an auction\n}\nconfig.getConfig('consentManagement', config => setConsentConfig(config.consentManagement));\n\ngetHook('requestBids').before(requestBidsHook, 50);\n\nexport function enrichFPDHook(next, fpd) {\n return next(fpd.then(ortb2 => {\n const consent = uspDataHandler.getConsentData();\n if (consent) {\n deepSetValue(ortb2, 'regs.ext.us_privacy', consent)\n }\n return ortb2;\n }))\n}\n\nenrichFPD.before(enrichFPDHook);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"consentManagementUsp.js","names":["registerModule","__r0","deepSetValue","isNumber","isPlainObject","isStr","logError","logInfo","logWarn","config","adapterManager","uspDataHandler","timedAuctionHook","getHook","enrichFPD","cmpClient","DEFAULT_CONSENT_API","DEFAULT_CONSENT_TIMEOUT","USPAPI_VERSION","consentAPI","consentTimeout","staticConsentData","consentData","enabled","uspCallMap","lookupUspConsent","lookupStaticConsentData","_ref","onSuccess","onError","processUspData","_ref2","handleUspApiResponseCallbacks","uspResponse","afterEach","usPrivacy","consentDataCallback","consentResponse","success","uspString","callbackHandler","cmp","apiName","apiVersion","apiArgs","isDirect","command","callback","res","callDataDeletionRequest","catch","e","loadConsentData","cb","timer","isDone","done","errMsg","clearTimeout","setConsentData","_len","arguments","length","extraArgs","Array","_key","callbacks","_len2","_key2","undefined","setTimeout","bind","requestBidsHook","fn","reqBidsConfigObj","_this","enableConsentManagement","_len3","_key3","call","consentObject","_ref3","valid","storeUspConsentData","resetConsentData","reset","setConsentConfig","usp","cmpApi","timeout","getUSPData","configFromUser","enable","getConfig","consentManagement","before","enrichFPDHook","next","fpd","then","ortb2","consent","getConsentData"],"sourceRoot":"../../..","sources":["modules/consentManagementUsp.ts"],"sourcesContent":["/**\n * This module adds USPAPI (CCPA) consentManagement support to prebid.js. It\n * interacts with supported USP Consent APIs to grab the user's consent\n * information and make it available for any USP (CCPA) supported adapters to\n * read/pass this information to their system.\n */\nimport {deepSetValue, isNumber, isPlainObject, isStr, logError, logInfo, logWarn} from '../src/utils.js';\nimport {config} from '../src/config.js';\nimport adapterManager, {uspDataHandler} from '../src/adapterManager.js';\nimport {timedAuctionHook} from '../src/utils/perfMetrics.js';\nimport {getHook} from '../src/hook.js';\nimport {enrichFPD} from '../src/fpd/enrichment.js';\nimport {cmpClient} from '../libraries/cmp/cmpClient.js';\nimport type {IABCMConfig, StaticCMConfig} from \"../libraries/consentManagement/cmUtils.ts\";\nimport type {CONSENT_USP} from \"../src/consentHandler.ts\";\n\nconst DEFAULT_CONSENT_API = 'iab';\nconst DEFAULT_CONSENT_TIMEOUT = 50;\nconst USPAPI_VERSION = 1;\n\nexport let consentAPI = DEFAULT_CONSENT_API;\nexport let consentTimeout = DEFAULT_CONSENT_TIMEOUT;\nexport let staticConsentData;\n\ntype USPConsentData = string;\ntype BaseUSPConfig = {\n /**\n * Length of time (in milliseconds) to delay auctions while waiting for consent data from the CMP.\n * Default is 50.\n */\n timeout?: number;\n}\n\ntype StaticUSPData = {\n getUSPData: {\n uspString: USPConsentData;\n }\n}\ntype USPCMConfig = BaseUSPConfig & (IABCMConfig | StaticCMConfig<StaticUSPData>);\n\ndeclare module '../src/consentHandler' {\n interface ConsentData {\n [CONSENT_USP]: USPConsentData;\n }\n interface ConsentManagementConfig {\n [CONSENT_USP]?: USPCMConfig;\n }\n}\n\nlet consentData;\nlet enabled = false;\n\n// consent APIs\nconst uspCallMap = {\n 'iab': lookupUspConsent,\n 'static': lookupStaticConsentData\n};\n\n/**\n * This function reads the consent string from the config to obtain the consent information of the user.\n */\nfunction lookupStaticConsentData({onSuccess, onError}) {\n processUspData(staticConsentData, {onSuccess, onError});\n}\n\n/**\n * This function handles interacting with an USP compliant consent manager to obtain the consent information of the user.\n * Given the async nature of the USP's API, we pass in acting success/error callback functions to exit this function\n * based on the appropriate result.\n */\nfunction lookupUspConsent({onSuccess, onError}) {\n function handleUspApiResponseCallbacks() {\n const uspResponse = {} as any;\n\n function afterEach() {\n if (uspResponse.usPrivacy) {\n processUspData(uspResponse, {onSuccess, onError})\n } else {\n onError('Unable to get USP consent string.');\n }\n }\n\n return {\n consentDataCallback: (consentResponse, success) => {\n if (success && consentResponse.uspString) {\n uspResponse.usPrivacy = consentResponse.uspString;\n }\n afterEach();\n },\n };\n }\n\n const callbackHandler = handleUspApiResponseCallbacks();\n\n const cmp = cmpClient({\n apiName: '__uspapi',\n apiVersion: USPAPI_VERSION,\n apiArgs: ['command', 'version', 'callback'],\n }) as any;\n\n if (!cmp) {\n return onError('USP CMP not found.');\n }\n\n if (cmp.isDirect) {\n logInfo('Detected USP CMP is directly accessible, calling it now...');\n } else {\n logInfo(\n 'Detected USP CMP is outside the current iframe where Prebid.js is located, calling it now...'\n );\n }\n\n cmp({\n command: 'getUSPData',\n callback: callbackHandler.consentDataCallback\n });\n\n cmp({\n command: 'registerDeletion',\n callback: (res, success) => (success == null || success) && adapterManager.callDataDeletionRequest(res)\n }).catch(e => {\n logError('Error invoking CMP `registerDeletion`:', e);\n });\n}\n\n/**\n * Lookup consent data and store it in the `consentData` global as well as `adapterManager.js`' uspDataHanlder.\n *\n * @param cb a callback that takes an error message and extra error arguments; all args will be undefined if consent\n * data was retrieved successfully.\n */\nfunction loadConsentData(cb?) {\n let timer = null;\n let isDone = false;\n\n function done(consentData, errMsg, ...extraArgs) {\n if (timer != null) {\n clearTimeout(timer);\n }\n isDone = true;\n uspDataHandler.setConsentData(consentData);\n if (cb != null) {\n cb(errMsg, ...extraArgs)\n }\n }\n\n if (!uspCallMap[consentAPI]) {\n done(null, `USP framework (${consentAPI}) is not a supported framework. Aborting consentManagement module and resuming auction.`);\n return;\n }\n\n const callbacks = {\n onSuccess: done,\n onError: function (errMsg, ...extraArgs) {\n done(null, `${errMsg} Resuming auction without consent data as per consentManagement config.`, ...extraArgs);\n }\n }\n\n uspCallMap[consentAPI](callbacks);\n\n if (!isDone) {\n if (consentTimeout === 0) {\n processUspData(undefined, callbacks);\n } else {\n timer = setTimeout(callbacks.onError.bind(null, 'USPAPI workflow exceeded timeout threshold.'), consentTimeout)\n }\n }\n}\n\n/**\n * If consentManagementUSP module is enabled (ie included in setConfig), this hook function will attempt to fetch the\n * user's encoded consent string from the supported USPAPI. Once obtained, the module will store this\n * data as part of a uspConsent object which gets transferred to adapterManager's uspDataHandler object.\n * This information is later added into the bidRequest object for any supported adapters to read/pass along to their system.\n * @param {object} reqBidsConfigObj required; This is the same param that's used in pbjs.requestBids.\n * @param {function} fn required; The next function in the chain, used by hook.ts\n */\nexport const requestBidsHook = timedAuctionHook('usp', function requestBidsHook(fn, reqBidsConfigObj) {\n if (!enabled) {\n enableConsentManagement();\n }\n loadConsentData((errMsg, ...extraArgs) => {\n if (errMsg != null) {\n logWarn(errMsg, ...extraArgs);\n }\n fn.call(this, reqBidsConfigObj);\n });\n});\n\n/**\n * This function checks the consent data provided by USPAPI to ensure it's in an expected state.\n * If it's bad, we exit the module depending on config settings.\n * If it's good, then we store the value and exit the module.\n *\n * @param {Object} consentObject - The object returned by USPAPI that contains the user's consent choices.\n * @param {Object} callbacks - An object containing the callback functions.\n * @param {function(string): void} callbacks.onSuccess - Callback accepting the resolved USP consent string.\n * @param {function(string, ...Object?): void} callbacks.onError - Callback accepting an error message and any extra error arguments (used purely for logging).\n */\nfunction processUspData(consentObject, {onSuccess, onError}) {\n const valid = !!(consentObject && consentObject.usPrivacy);\n if (!valid) {\n onError(`USPAPI returned unexpected value during lookup process.`, consentObject);\n return;\n }\n\n storeUspConsentData(consentObject);\n onSuccess(consentData);\n}\n\n/**\n * Stores USP data locally in module and then invokes uspDataHandler.setConsentData() to make information available in adaptermanger.js for later in the auction\n * @param {object} consentObject required; an object representing user's consent choices (can be undefined in certain use-cases for this function only)\n */\nfunction storeUspConsentData(consentObject) {\n if (consentObject && consentObject.usPrivacy) {\n consentData = consentObject.usPrivacy;\n }\n}\n\n/**\n * Simply resets the module's consentData variable back to undefined, mainly for testing purposes\n */\nexport function resetConsentData() {\n consentData = undefined;\n consentAPI = undefined;\n consentTimeout = undefined;\n uspDataHandler.reset();\n enabled = false;\n}\n\n/**\n * A configuration function that initializes some module variables, as well as add a hook into the requestBids function\n * @param {object} config required; consentManagementUSP module config settings; usp (string), timeout (int)\n */\nexport function setConsentConfig(config) {\n config = config && config.usp;\n if (!config || typeof config !== 'object') {\n logWarn('consentManagement.usp config not defined, using defaults');\n }\n if (config && isStr(config.cmpApi)) {\n consentAPI = config.cmpApi;\n } else {\n consentAPI = DEFAULT_CONSENT_API;\n logInfo(`consentManagement.usp config did not specify cmpApi. Using system default setting (${DEFAULT_CONSENT_API}).`);\n }\n\n if (config && isNumber(config.timeout)) {\n consentTimeout = config.timeout;\n } else {\n consentTimeout = DEFAULT_CONSENT_TIMEOUT;\n logInfo(`consentManagement.usp config did not specify timeout. Using system default setting (${DEFAULT_CONSENT_TIMEOUT}).`);\n }\n if (consentAPI === 'static') {\n if (isPlainObject(config.consentData) && isPlainObject(config.consentData.getUSPData)) {\n if (config.consentData.getUSPData.uspString) staticConsentData = { usPrivacy: config.consentData.getUSPData.uspString };\n consentTimeout = 0;\n } else {\n logError(`consentManagement config with cmpApi: 'static' did not specify consentData. No consents will be available to adapters.`);\n }\n }\n enableConsentManagement(true);\n}\n\nfunction enableConsentManagement(configFromUser = false) {\n if (!enabled) {\n logInfo(`USPAPI consentManagement module has been activated${configFromUser ? '' : ` using default values (api: '${consentAPI}', timeout: ${consentTimeout}ms)`}`);\n enabled = true;\n uspDataHandler.enable();\n }\n loadConsentData(); // immediately look up consent data to make it available without requiring an auction\n}\nconfig.getConfig('consentManagement', config => setConsentConfig(config.consentManagement));\n\ngetHook('requestBids').before(requestBidsHook, 50);\n\nexport function enrichFPDHook(next, fpd) {\n return next(fpd.then(ortb2 => {\n const consent = uspDataHandler.getConsentData();\n if (consent) {\n deepSetValue(ortb2, 'regs.ext.us_privacy', consent)\n }\n return ortb2;\n }))\n}\n\nenrichFPD.before(enrichFPDHook);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@ const MONITORING_ENDPOINT = 'monitoring.receptivity.io';
|
|
|
14
14
|
const DEFAULT_NET_REVENUE = true;
|
|
15
15
|
const DEFAULT_TTL = 300;
|
|
16
16
|
const DEFAULT_SAMPLING_RATE = 1.0;
|
|
17
|
-
const PREBID_VERSION = "10.
|
|
17
|
+
const PREBID_VERSION = "10.4.0";
|
|
18
18
|
|
|
19
19
|
// ORTB conversion
|
|
20
20
|
const converter = ortbConverter({
|
|
@@ -48,7 +48,7 @@ const converter = ortbConverter({
|
|
|
48
48
|
secure: 1,
|
|
49
49
|
bidfloor: getBidFloor(bidRequest) || 0,
|
|
50
50
|
displaymanager: 'Prebid.js',
|
|
51
|
-
displaymanagerver: "10.
|
|
51
|
+
displaymanagerver: "10.4.0"
|
|
52
52
|
};
|
|
53
53
|
copyOptProperty(bidRequest.params.tag_id, data, 'tagid');
|
|
54
54
|
mergeDeep(imp, data, imp);
|
|
@@ -244,7 +244,7 @@ export const spec = {
|
|
|
244
244
|
requestId: requestId,
|
|
245
245
|
tld: refererInfo.domain,
|
|
246
246
|
topUrl: refererInfo.domain,
|
|
247
|
-
version: "10.
|
|
247
|
+
version: "10.4.0".replace(/\./g, '_')
|
|
248
248
|
};
|
|
249
249
|
window.addEventListener('message', function handler(event) {
|
|
250
250
|
if (!event.data || event.origin != 'https://gum.criteo.com') {
|
|
@@ -450,7 +450,7 @@ function buildCdbUrl(context) {
|
|
|
450
450
|
let url = CDB_ENDPOINT;
|
|
451
451
|
url += '?profileId=' + PROFILE_ID_INLINE;
|
|
452
452
|
url += '&av=' + String(ADAPTER_VERSION);
|
|
453
|
-
url += '&wv=' + encodeURIComponent("10.
|
|
453
|
+
url += '&wv=' + encodeURIComponent("10.4.0");
|
|
454
454
|
url += '&cb=' + String(Math.floor(Math.random() * 99999999999));
|
|
455
455
|
if (storage.localStorageIsEnabled()) {
|
|
456
456
|
url += '&lsavail=1';
|