Skip to content
This repository was archived by the owner on Mar 25, 2024. It is now read-only.

Commit 9a180db

Browse files
CORE: allow to disable setting the pbjs global variable (prebid#9568)
* allow to disable settings the pbjs global variable * factored out all references to $$PREBID_GLOBAL$$ to use getGlobal instead updated the babel module, to directly call the getGlobal function removed eslint global exception, and added them as local exceptions * fix comments * make module use getGlobal * Isolate `installedModules` management from module namespaces * Use relative import paths in autogenerated code for `installedModules` * Remove $$PREBID_GLOBAL$$ macro ref from rubicon adapter * Revert "Remove $$PREBID_GLOBAL$$ macro ref from rubicon adapter" This reverts commit 16e25dd. --------- Co-authored-by: Demetrio Girardi <[email protected]>
1 parent 11491f3 commit 9a180db

28 files changed

+156
-106
lines changed

Diff for: .eslintrc.js

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ module.exports = {
1919
'import'
2020
],
2121
globals: {
22-
'$$PREBID_GLOBAL$$': false,
2322
'BROWSERSTACK_USERNAME': false,
2423
'BROWSERSTACK_KEY': false,
2524
'FEATURES': 'readonly',

Diff for: modules/addefendBidAdapter.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {registerBidder} from '../src/adapters/bidderFactory.js';
2+
import {getGlobal} from '../src/prebidGlobal.js';
23

34
const BIDDER_CODE = 'addefend';
45

@@ -16,7 +17,7 @@ export const spec = {
1617
},
1718
buildRequests: function(validBidRequests, bidderRequest) {
1819
let bid = {
19-
v: $$PREBID_GLOBAL$$.version,
20+
v: getGlobal().version,
2021
auctionId: false,
2122
pageId: false,
2223
gdpr_applies: bidderRequest.gdprConsent && bidderRequest.gdprConsent.gdprApplies ? bidderRequest.gdprConsent.gdprApplies : 'true',

Diff for: modules/adxcgAnalyticsAdapter.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { ajax } from '../src/ajax.js';
33
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
44
import adapterManager from '../src/adapterManager.js';
55
import CONSTANTS from '../src/constants.json';
6+
import {getGlobal} from '../src/prebidGlobal.js';
67

78
/**
89
* Analytics adapter from adxcg.com
@@ -122,7 +123,7 @@ function send (data) {
122123
ats: adxcgAnalyticsAdapter.context.auctionTimestamp,
123124
aav: adxcgAnalyticsVersion,
124125
iob: intersectionObserverAvailable(window) ? '1' : '0',
125-
pbv: $$PREBID_GLOBAL$$.version,
126+
pbv: getGlobal().version,
126127
sz: window.screen.width + 'x' + window.screen.height
127128
}
128129
});

Diff for: modules/atsAnalyticsAdapter.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import CONSTANTS from '../src/constants.json';
44
import adaptermanager from '../src/adapterManager.js';
55
import {ajax} from '../src/ajax.js';
66
import {getStorageManager} from '../src/storageManager.js';
7+
import {getGlobal} from '../src/prebidGlobal.js';
78

89
export const storage = getStorageManager();
910

@@ -352,7 +353,7 @@ atsAnalyticsAdapter.callHandler = function (evtype, args) {
352353
let bidWonTimeout = atsAnalyticsAdapter.context.bidWonTimeout ? atsAnalyticsAdapter.context.bidWonTimeout : 2000;
353354
let events = [];
354355
setTimeout(() => {
355-
let winningBids = $$PREBID_GLOBAL$$.getAllWinningBids();
356+
let winningBids = getGlobal().getAllWinningBids();
356357
logInfo('ATS Analytics - winning bids: ', winningBids)
357358
// prepare format data for sending to analytics endpoint
358359
if (handlerRequest.length) {

Diff for: modules/consentManagement.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {includes} from '../src/polyfill.js';
1111
import {timedAuctionHook} from '../src/utils/perfMetrics.js';
1212
import {registerOrtbProcessor, REQUEST} from '../src/pbjsORTB.js';
1313
import {enrichFPD} from '../src/fpd/enrichment.js';
14+
import {getGlobal} from '../src/prebidGlobal.js';
1415

1516
const DEFAULT_CMP = 'iab';
1617
const DEFAULT_CONSENT_TIMEOUT = 10000;
@@ -367,7 +368,7 @@ export function setConsentConfig(config) {
367368
}
368369
}
369370
if (!addedConsentHook) {
370-
$$PREBID_GLOBAL$$.requestBids.before(requestBidsHook, 50);
371+
getGlobal().requestBids.before(requestBidsHook, 50);
371372
}
372373
addedConsentHook = true;
373374
gdprDataHandler.enable();

Diff for: modules/consentManagementGpp.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {gppDataHandler} from '../src/adapterManager.js';
1010
import {includes} from '../src/polyfill.js';
1111
import {timedAuctionHook} from '../src/utils/perfMetrics.js';
1212
import { enrichFPD } from '../src/fpd/enrichment.js';
13+
import {getGlobal} from '../src/prebidGlobal.js';
1314

1415
const DEFAULT_CMP = 'iab';
1516
const DEFAULT_CONSENT_TIMEOUT = 10000;
@@ -362,7 +363,7 @@ export function setConsentConfig(config) {
362363
logInfo('consentManagement.gpp module has been activated...');
363364

364365
if (!addedConsentHook) {
365-
$$PREBID_GLOBAL$$.requestBids.before(requestBidsHook, 50);
366+
getGlobal().requestBids.before(requestBidsHook, 50);
366367
}
367368
addedConsentHook = true;
368369
gppDataHandler.enable();

Diff for: modules/express.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { logMessage, logWarn, logError, logInfo } from '../src/utils.js';
2+
import {getGlobal} from '../src/prebidGlobal.js';
23

34
const MODULE_NAME = 'express';
5+
const pbjsInstance = getGlobal();
46

57
/**
68
* Express Module
@@ -12,7 +14,7 @@ const MODULE_NAME = 'express';
1214
*
1315
* @param {Object[]} [adUnits = pbjs.adUnits] - an array of adUnits for express to operate on.
1416
*/
15-
$$PREBID_GLOBAL$$.express = function(adUnits = $$PREBID_GLOBAL$$.adUnits) {
17+
pbjsInstance.express = function(adUnits = pbjsInstance.adUnits) {
1618
logMessage('loading ' + MODULE_NAME);
1719

1820
if (adUnits.length === 0) {
@@ -138,10 +140,10 @@ $$PREBID_GLOBAL$$.express = function(adUnits = $$PREBID_GLOBAL$$.adUnits) {
138140
}
139141

140142
if (adUnits.length) {
141-
$$PREBID_GLOBAL$$.requestBids({
143+
pbjsInstance.requestBids({
142144
adUnits: adUnits,
143145
bidsBackHandler: function () {
144-
$$PREBID_GLOBAL$$.setTargetingForGPTAsync();
146+
pbjsInstance.setTargetingForGPTAsync();
145147
fGptRefresh.apply(pads(), [
146148
adUnits.map(function (adUnit) {
147149
return gptSlotCache[adUnit.code];
@@ -168,10 +170,10 @@ $$PREBID_GLOBAL$$.express = function(adUnits = $$PREBID_GLOBAL$$.adUnits) {
168170
}
169171

170172
if (adUnits.length) {
171-
$$PREBID_GLOBAL$$.requestBids({
173+
pbjsInstance.requestBids({
172174
adUnits: adUnits,
173175
bidsBackHandler: function () {
174-
$$PREBID_GLOBAL$$.setTargetingForGPTAsync();
176+
pbjsInstance.setTargetingForGPTAsync();
175177
fGptRefresh.apply(pads(), [
176178
adUnits.map(function (adUnit) {
177179
return gptSlotCache[adUnit.code];

Diff for: modules/id5AnalyticsAdapter.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import adapterManager from '../src/adapterManager.js';
44
import { ajax } from '../src/ajax.js';
55
import { logInfo, logError } from '../src/utils.js';
66
import * as events from '../src/events.js';
7+
import {getGlobal} from '../src/prebidGlobal.js';
78

89
const {
910
EVENTS: {
@@ -34,7 +35,7 @@ const FLUSH_EVENTS = [
3435

3536
const CONFIG_URL_PREFIX = 'https://api.id5-sync.com/analytics'
3637
const TZ = new Date().getTimezoneOffset();
37-
const PBJS_VERSION = $$PREBID_GLOBAL$$.version;
38+
const PBJS_VERSION = getGlobal().version;
3839
const ID5_REDACTED = '__ID5_REDACTED__';
3940
const isArray = Array.isArray;
4041

Diff for: modules/mabidderBidAdapter.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { registerBidder } from '../src/adapters/bidderFactory.js';
22
import { BANNER } from '../src/mediaTypes.js';
3+
import {getGlobal} from '../src/prebidGlobal.js';
4+
35
const BIDDER_CODE = 'mabidder';
46
export const baseUrl = 'https://prebid.ecdrsvc.com/bid';
57
export const spec = {
@@ -33,7 +35,7 @@ export const spec = {
3335
url: baseUrl,
3436
method: 'POST',
3537
data: {
36-
v: $$PREBID_GLOBAL$$.version,
38+
v: getGlobal().version,
3739
bids: bids,
3840
url: bidderRequest.refererInfo.page || '',
3941
referer: bidderRequest.refererInfo.ref || '',

Diff for: modules/marsmediaAnalyticsAdapter.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {ajax} from '../src/ajax.js';
22
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
33
import adapterManager from '../src/adapterManager.js';
4+
import {getGlobal} from '../src/prebidGlobal.js';
45

56
/****
67
* Mars Media Analytics
@@ -33,7 +34,7 @@ var marsmediaAnalyticsAdapter = Object.assign(adapter(
3334
success: function() {},
3435
error: function() {}
3536
},
36-
JSON.stringify({act: 'prebid_analytics', params: events, 'pbjs': $$PREBID_GLOBAL$$.getBidResponses(), ver: MARS_VERSION}),
37+
JSON.stringify({act: 'prebid_analytics', params: events, 'pbjs': getGlobal().getBidResponses(), ver: MARS_VERSION}),
3738
{
3839
method: 'POST'
3940
}

Diff for: modules/medianetAnalyticsAdapter.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {ajax} from '../src/ajax.js';
1717
import {getRefererInfo} from '../src/refererDetection.js';
1818
import {AUCTION_COMPLETED, AUCTION_IN_PROGRESS, getPriceGranularity} from '../src/auction.js';
1919
import {includes} from '../src/polyfill.js';
20+
import {getGlobal} from '../src/prebidGlobal.js';
2021

2122
const analyticsType = 'endpoint';
2223
const ENDPOINT = 'https://pb-logs.media.net/log?logid=kfk&evtid=prebid_analytics_events_client';
@@ -36,7 +37,7 @@ const PRICE_GRANULARITY = {
3637

3738
const MEDIANET_BIDDER_CODE = 'medianet';
3839
// eslint-disable-next-line no-undef
39-
const PREBID_VERSION = $$PREBID_GLOBAL$$.version;
40+
const PREBID_VERSION = getGlobal().version;
4041
const ERROR_CONFIG_JSON_PARSE = 'analytics_config_parse_fail';
4142
const ERROR_CONFIG_FETCH = 'analytics_config_ajax_fail';
4243
const ERROR_WINNING_BID_ABSENT = 'winning_bid_absent';
@@ -886,8 +887,8 @@ medianetAnalytics.enableAnalytics = function (configuration) {
886887
logError('Media.net Analytics adapter: cid is required.');
887888
return;
888889
}
889-
$$PREBID_GLOBAL$$.medianetGlobals = $$PREBID_GLOBAL$$.medianetGlobals || {};
890-
$$PREBID_GLOBAL$$.medianetGlobals.analyticsEnabled = true;
890+
getGlobal().medianetGlobals = getGlobal().medianetGlobals || {};
891+
getGlobal().medianetGlobals.analyticsEnabled = true;
891892

892893
pageDetails = new PageDetail();
893894

Diff for: modules/medianetBidAdapter.js

+6-5
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
1717
import {getRefererInfo} from '../src/refererDetection.js';
1818
import {Renderer} from '../src/Renderer.js';
1919
import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
20+
import {getGlobal} from '../src/prebidGlobal.js';
2021

2122
const BIDDER_CODE = 'medianet';
2223
const BID_URL = 'https://prebid.media.net/rtb/prebid';
@@ -51,7 +52,7 @@ const aliases = [
5152
{ code: 'aax', gvlid: 720 },
5253
];
5354

54-
$$PREBID_GLOBAL$$.medianetGlobals = $$PREBID_GLOBAL$$.medianetGlobals || {};
55+
getGlobal().medianetGlobals = getGlobal().medianetGlobals || {};
5556

5657
function getTopWindowReferrer() {
5758
try {
@@ -177,15 +178,15 @@ function extParams(bidRequest, bidderRequests) {
177178
const coppaApplies = !!(config.getConfig('coppa'));
178179
return Object.assign({},
179180
{ customer_id: params.cid },
180-
{ prebid_version: $$PREBID_GLOBAL$$.version },
181+
{ prebid_version: getGlobal().version },
181182
{ gdpr_applies: gdprApplies },
182183
(gdprApplies) && { gdpr_consent_string: gdpr.consentString || '' },
183184
{ usp_applies: uspApplies },
184185
uspApplies && { usp_consent_string: uspConsent || '' },
185186
{coppa_applies: coppaApplies},
186187
windowSize.w !== -1 && windowSize.h !== -1 && { screen: windowSize },
187188
userId && { user_id: userId },
188-
$$PREBID_GLOBAL$$.medianetGlobals.analyticsEnabled && { analytics: true },
189+
getGlobal().medianetGlobals.analyticsEnabled && { analytics: true },
189190
!isEmpty(sChain) && {schain: sChain}
190191
);
191192
}
@@ -358,7 +359,7 @@ function getLoggingData(event, data) {
358359
params.evtid = 'projectevents';
359360
params.project = 'prebid';
360361
params.acid = deepAccess(data, '0.auctionId') || '';
361-
params.cid = $$PREBID_GLOBAL$$.medianetGlobals.cid || '';
362+
params.cid = getGlobal().medianetGlobals.cid || '';
362363
params.crid = data.map((adunit) => deepAccess(adunit, 'params.0.crid') || adunit.adUnitCode).join('|');
363364
params.adunit_count = data.length || 0;
364365
params.dn = mnData.urlData.domain || '';
@@ -442,7 +443,7 @@ export const spec = {
442443
return false;
443444
}
444445

445-
Object.assign($$PREBID_GLOBAL$$.medianetGlobals, !$$PREBID_GLOBAL$$.medianetGlobals.cid && {cid: bid.params.cid});
446+
Object.assign(getGlobal().medianetGlobals, !getGlobal().medianetGlobals.cid && {cid: bid.params.cid});
446447

447448
return true;
448449
},

Diff for: modules/orbidderBidAdapter.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {registerBidder} from '../src/adapters/bidderFactory.js';
33
import { getStorageManager } from '../src/storageManager.js';
44
import { BANNER, NATIVE } from '../src/mediaTypes.js';
55
import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
6+
import {getGlobal} from '../src/prebidGlobal.js';
67

78
const storageManager = getStorageManager({bidderCode: 'orbidder'});
89

@@ -96,7 +97,7 @@ export const spec = {
9697
method: 'POST',
9798
options: { withCredentials: true },
9899
data: {
99-
v: $$PREBID_GLOBAL$$.version,
100+
v: getGlobal().version,
100101
pageUrl: referer,
101102
bidId: bidRequest.bidId,
102103
auctionId: bidRequest.auctionId,

Diff for: modules/pixfutureBidAdapter.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
transformBidderParamKeywords
1515
} from '../src/utils.js';
1616
import { auctionManager } from '../src/auctionManager.js';
17+
import {getGlobal} from '../src/prebidGlobal.js';
1718

1819
const SOURCE = 'pbjs';
1920
const storageManager = getStorageManager({bidderCode: 'pixfuture'});
@@ -132,7 +133,7 @@ export const spec = {
132133
method: 'POST',
133134
options: {withCredentials: true},
134135
data: {
135-
v: $$PREBID_GLOBAL$$.version,
136+
v: getGlobal().version,
136137
pageUrl: referer,
137138
bidId: bidRequest.bidId,
138139
auctionId: bidRequest.auctionId,

Diff for: modules/pubCommonId.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import CONSTANTS from '../src/constants.json';
1010
import { getStorageManager } from '../src/storageManager.js';
1111
import {timedAuctionHook} from '../src/utils/perfMetrics.js';
1212
import {VENDORLESS_GVLID} from '../src/consentHandler.js';
13+
import {getGlobal} from '../src/prebidGlobal.js';
1314

1415
const storage = getStorageManager({moduleName: 'pubCommonId', gvlid: VENDORLESS_GVLID});
1516

@@ -168,7 +169,7 @@ export function getPubcidConfig() { return pubcidConfig; }
168169
*/
169170

170171
export const requestBidHook = timedAuctionHook('pubCommonId', function requestBidHook(next, config) {
171-
let adUnits = config.adUnits || $$PREBID_GLOBAL$$.adUnits;
172+
let adUnits = config.adUnits || getGlobal().adUnits;
172173
let pubcid = null;
173174

174175
// Pass control to the next function if not enabled
@@ -292,7 +293,7 @@ export function initPubcid() {
292293
(storage.hasLocalStorage() && readValue(OPTOUT_NAME, LOCAL_STORAGE));
293294

294295
if (!optout) {
295-
$$PREBID_GLOBAL$$.requestBids.before(requestBidHook);
296+
getGlobal().requestBids.before(requestBidHook);
296297
}
297298
}
298299

Diff for: modules/pubxaiAnalyticsAdapter.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { ajax } from '../src/ajax.js';
33
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
44
import adapterManager from '../src/adapterManager.js';
55
import CONSTANTS from '../src/constants.json';
6+
import {getGlobal} from '../src/prebidGlobal.js';
67

78
const emptyUrl = '';
89
const analyticsType = 'endpoint';
@@ -180,7 +181,7 @@ function send(data, status) {
180181
search: {
181182
auctionTimestamp: auctionTimestamp,
182183
pubxaiAnalyticsVersion: pubxaiAnalyticsVersion,
183-
prebidVersion: $$PREBID_GLOBAL$$.version
184+
prebidVersion: getGlobal().version
184185
}
185186
});
186187
if (status == 'bidwon') {

Diff for: modules/rivrAnalyticsAdapter.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {ajax} from '../src/ajax.js';
22
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
33
import adapterManager from '../src/adapterManager.js';
44
import * as utils from '../src/utils.js';
5+
import {getGlobal} from '../src/prebidGlobal.js';
56

67
const analyticsType = 'endpoint';
78

@@ -20,7 +21,7 @@ rivrAnalytics.originEnableAnalytics = rivrAnalytics.enableAnalytics;
2021
// override enableAnalytics so we can get access to the config passed in from the page
2122
rivrAnalytics.enableAnalytics = (config) => {
2223
if (window.rivraddon && window.rivraddon.analytics) {
23-
window.rivraddon.analytics.enableAnalytics(config, {utils, ajax, pbjsGlobalVariable: $$PREBID_GLOBAL$$});
24+
window.rivraddon.analytics.enableAnalytics(config, {utils, ajax, pbjsGlobalVariable: getGlobal()});
2425
rivrAnalytics.originEnableAnalytics(config);
2526
}
2627
};

Diff for: modules/snigelBidAdapter.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {registerBidder} from '../src/adapters/bidderFactory.js';
33
import {BANNER} from '../src/mediaTypes.js';
44
import {deepAccess, isArray, isFn, isPlainObject} from '../src/utils.js';
55
import {hasPurpose1Consent} from '../src/utils/gpdr.js';
6+
import {getGlobal} from '../src/prebidGlobal.js';
67

78
const BIDDER_CODE = 'snigel';
89
const GVLID = 1076;
@@ -33,7 +34,7 @@ export const spec = {
3334
test: getTestFlag(),
3435
devw: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
3536
devh: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight,
36-
version: $$PREBID_GLOBAL$$.version,
37+
version: getGlobal().version,
3738
gdprApplies: gdprApplies,
3839
gdprConsentString: gdprApplies === true ? deepAccess(bidderRequest, 'gdprConsent.consentString') : undefined,
3940
gdprConsentProv: gdprApplies === true ? deepAccess(bidderRequest, 'gdprConsent.addtlConsent') : undefined,

Diff for: modules/tappxBidAdapter.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { BANNER, VIDEO } from '../src/mediaTypes.js';
66
import { config } from '../src/config.js';
77
import { Renderer } from '../src/Renderer.js';
88
import {parseDomain} from '../src/refererDetection.js';
9+
import {getGlobal} from '../src/prebidGlobal.js';
910

1011
const BIDDER_CODE = 'tappx';
1112
const GVLID_CODE = 628;
@@ -473,7 +474,7 @@ function buildOneRequest(validBidRequests, bidderRequest) {
473474
payload.regs = regs;
474475
// < Payload
475476

476-
let pbjsv = ($$PREBID_GLOBAL$$.version !== null) ? encodeURIComponent($$PREBID_GLOBAL$$.version) : -1;
477+
let pbjsv = (getGlobal().version !== null) ? encodeURIComponent(getGlobal().version) : -1;
477478

478479
return {
479480
method: 'POST',

0 commit comments

Comments
 (0)