PageSourceSearch

https://www.tomthumb.com/foundation/js/emsm-tracking.1789973498729-84f310.js

js tomthumb.com collected 2026-10-03 22:10:35 UTC 23,423 bytes, 510 lines download raw bytes

1(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2(function (global){(function (){
3global.window.citrusAdTracker=require('@albertsons/emsm-tracking-js');
4}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
5},{"@albertsons/emsm-tracking-js":4}],2:[function(require,module,exports){
6var env = require('./env.json');
7let currentDomain=window.location.host;
8exports.config = function() {
9  let currentEnviorment       = '';   
10        switch (true) {
11            case checkEnviorment("-local"):
12                currentEnviorment = "local";
13                break;
14            case checkEnviorment("-preview"):
15                currentEnviorment = "preview";
16                break;
17            case checkEnviorment("-dev1"):
18                currentEnviorment = "dev1";
19                break;
20            case checkEnviorment("-qa1"):
21                currentEnviorment = "qa1";
22                break;
23            case checkEnviorment("-dev2"):
24                currentEnviorment = "dev2";
25                break;
26            case checkEnviorment("-qa2"):
27                currentEnviorment = "qa2";
28                break;
29            case checkEnviorment("-dev3"):
30                currentEnviorment = "dev3";
31                break;
32            case checkEnviorment("-qa3"):
33                currentEnviorment = "qa3";
34                break;
35            case checkEnviorment("-stage"):
36                currentEnviorment = "stage";
37                break;
38            case checkEnviorment("-beta"):
39                currentEnviorment = "beta";
40                break;
41            case checkEnviorment("-prod"):
42                currentEnviorment = "prod";
43                break;
44            default:
45                currentEnviorment = "prod";
46        }
47  var node_env = currentEnviorment;
48  if (env[node_env] === undefined) {
49    console.log('Invalid node_env: '+`${node_env}`+' hence falling back to default node_env');
50    return env['dev1'];
51  }
52  return env[node_env];
53};
54
55function checkEnviorment(envValue) {
56            return currentDomain.includes(envValue);
57        }
58
59},{"./env.json":3}],3:[function(require,module,exports){
60module.exports={
61"local":{
62 "criteoUrl":"/abs/devpub/emsm/activity/v2/cr/",
63 "criteoPlacementUrl":"/abs/devpub/emsm/activity/v2/cr/rm",
64 "criteoUrl1":"/abs/devpub/emsm/activity/v2/onLoadBeacons",
65 "relevanceCriteoUrl":"/abs/devint/emsm/criteo/delivery/retailmedia",
66 "apimCriteoKey":"db2bab75e2f3468385c0ad90e51ea27b",
67 "apimCriteoOnloadKey":"9009d6ab570b4285a741de987353c5a7",
68 "apimRelevanceCriteoKey":"db2bab75e2f3468385c0ad90e51ea27b",
69 "apimKey":"ad03ec98c45b4e2a9819a0b302536431",
70 "teamId":"d5c7b782-44ee-433d-8f8f-8c1fd5453cbc",
71 "catalogId":"2c1cf4b5-81f9-4b33-aedf-b989b41e0880"
72},
73"preview":{
74 "criteoUrl":"/abs/devpub/emsm/activity/v2/cr/",
75 "criteoPlacementUrl":"/abs/devpub/emsm/activity/v2/cr/rm",
76 "criteoUrl1":"/abs/devpub/emsm/activity/v2/onLoadBeacons",
77 "relevanceCriteoUrl":"/abs/devint/emsm/criteo/delivery/retailmedia",
78 "apimCriteoKey":"db2bab75e2f3468385c0ad90e51ea27b",
79 "apimCriteoOnloadKey":"9009d6ab570b4285a741de987353c5a7",
80 "apimRelevanceCriteoKey":"db2bab75e2f3468385c0ad90e51ea27b",
81 "apimKey":"ad03ec98c45b4e2a9819a0b302536431",
82 "teamId":"d5c7b782-44ee-433d-8f8f-8c1fd5453cbc",
83 "catalogId":"2c1cf4b5-81f9-4b33-aedf-b989b41e0880"
84},
85"dev1":{
86 "criteoUrl":"/abs/devpub/emsm/activity/v2/cr/",
87 "criteoPlacementUrl":"/abs/devpub/emsm/activity/v2/cr/rm",
88 "criteoUrl1":"/abs/devpub/emsm/activity/v2/onLoadBeacons",
89 "relevanceCriteoUrl":"/abs/devint/emsm/criteo/delivery/retailmedia",
90 "apimCriteoKey":"db2bab75e2f3468385c0ad90e51ea27b",
91 "apimCriteoOnloadKey":"9009d6ab570b4285a741de987353c5a7",
92 "apimRelevanceCriteoKey":"db2bab75e2f3468385c0ad90e51ea27b",
93 "apimKey":"ad03ec98c45b4e2a9819a0b302536431",
94 "teamId":"d5c7b782-44ee-433d-8f8f-8c1fd5453cbc",
95 "catalogId":"2c1cf4b5-81f9-4b33-aedf-b989b41e0880"
96},
97"qa1":{
98 "criteoUrl":"/abs/qapub/emsm/activity/v2/cr/",
99 "criteoPlacementUrl":"/abs/qapub/emsm/activity/v2/cr/rm",
100 "criteoUrl1":"/abs/qapub/emsm/activity/v2/onLoadBeacons",
101 "relevanceCriteoUrl":"/abs/qaint/emsm/criteo/delivery/retailmedia",
102 "apimCriteoKey":"0c806ea0a64e4a0e89b96e4b6792b091",
103 "apimCriteoOnloadKey":"921ef9e78eae4b38803b34f3e0d97a38",
104 "apimRelevanceCriteoKey":"0c806ea0a64e4a0e89b96e4b6792b091",
105 "apimKey":"093709eddc3948dc836d59e8ef9842a4",
106 "teamId":"d5c7b782-44ee-433d-8f8f-8c1fd5453cbc",
107 "catalogId":"2c1cf4b5-81f9-4b33-aedf-b989b41e0880"
108},
109"dev2":{
110 "criteoUrl":"/abs/devpub/emsm/activity/v2/cr/",
111 "criteoPlacementUrl":"/abs/devpub/emsm/activity/v2/cr/rm",
112 "criteoUrl1":"/abs/devpub/emsm/activity/v2/onLoadBeacons",
113 "relevanceCriteoUrl":"/abs/devint/emsm/criteo/delivery/retailmedia",
114 "apimCriteoKey":"db2bab75e2f3468385c0ad90e51ea27b",
115 "apimCriteoOnloadKey":"9009d6ab570b4285a741de987353c5a7",
116 "apimRelevanceCriteoKey":"db2bab75e2f3468385c0ad90e51ea27b",
117 "apimKey":"ad03ec98c45b4e2a9819a0b302536431",
118 "teamId":"d5c7b782-44ee-433d-8f8f-8c1fd5453cbc",
119 "catalogId":"2c1cf4b5-81f9-4b33-aedf-b989b41e0880"
120},
121"qa2":{
122 "criteoUrl":"/abs/acceptancepub/emsm/activity/v2/cr/",
123 "criteoPlacementUrl":"/abs/acceptancepub/emsm/activity/v2/cr/rm",
124 "criteoUrl1":"/abs/acceptancepub/emsm/activity/v2/onLoadBeacons",
125 "relevanceCriteoUrl":"/abs/acceptanceint/emsm/criteo/delivery/retailmedia",
126 "apimCriteoKey":"f9a2a3140a804cc79ac512c0fdad0f15",
127 "apimCriteoOnloadKey":"a65579ebe2704504aa7457486ca1b17e",
128 "apimRelevanceCriteoKey":"f9a2a3140a804cc79ac512c0fdad0f15",
129 "apimKey":"188bd142c3214a0da4291df005c7ee6b",
130 "teamId":"d5c7b782-44ee-433d-8f8f-8c1fd5453cbc",
131 "catalogId":"ce36d972-1a6a-4fcb-be40-a617bec755ff"
132},
133"dev3":{
134 "criteoUrl":"/abs/devpub/emsm/activity/v2/cr/",
135 "criteoPlacementUrl":"/abs/devpub/emsm/activity/v2/cr/rm",
136 "criteoUrl1":"/abs/devpub/emsm/activity/v2/onLoadBeacons",
137 "relevanceCriteoUrl":"/abs/devint/emsm/criteo/delivery/retailmedia",
138 "apimCriteoKey":"db2bab75e2f3468385c0ad90e51ea27b",
139 "apimCriteoOnloadKey":"db2bab75e2f3468385c0ad90e51ea27b",
140 "apimRelevanceCriteoKey":"db2bab75e2f3468385c0ad90e51ea27b",
141 "apimKey":"ad03ec98c45b4e2a9819a0b302536431",
142 "teamId":"d5c7b782-44ee-433d-8f8f-8c1fd5453cbc",
143 "catalogId":"2c1cf4b5-81f9-4b33-aedf-b989b41e0880"
144},
145"qa3":{
146 "criteoUrl":"/abs/perfpub/emsm/activity/v2/cr/",
147 "criteoPlacementUrl":"/abs/perfpub/emsm/activity/v2/cr/rm",
148 "criteoUrl1":"/abs/perfpub/emsm/activity/v2/onLoadBeacons",
149 "relevanceCriteoUrl":"/abs/perfint/emsm/criteo/delivery/retailmedia",
150 "apimCriteoKey":"9680166699654ea2b0efa59b48667d87",
151 "apimCriteoOnloadKey":"668c73925a6b41d6902b92992570ffd6",
152 "apimRelevanceCriteoKey":"9680166699654ea2b0efa59b48667d87",
153 "apimKey":"c4a643c057e94009b178da749d1b1612",
154 "teamId":"8c92d1d9-99f5-41b9-85c7-ec53f5e51ec0",
155 "catalogId":"9fb6b056-5324-49d4-8551-83c3375068ea"
156},
157"stage":{
158 "criteoUrl":"/abs/stagepub/emsm/activity/v2/cr/",
159 "criteoPlacementUrl":"/abs/stagepub/emsm/activity/v2/cr/rm",
160 "criteoUrl1":"/abs/stagepub/emsm/activity/v2/onLoadBeacons",
161 "relevanceCriteoUrl":"/abs/stageint/emsm/criteo/delivery/retailmedia",
162 "apimCriteoKey":"09b010c7b4fc4d4e895963d276d68f01",
163 "apimCriteoOnloadKey":"c2c4fc5de6c74d4cbd099279bfffda26",
164 "apimRelevanceCriteoKey":"09b010c7b4fc4d4e895963d276d68f01",
165 "apimKey":"4fa1d6d251ab41a4b02e892b3fdea9ab",
166 "teamId":"bcae55ad-87fb-42eb-ba44-650266a9bf46",
167 "catalogId":"ef0d7c5c-a721-4742-a6cf-e33e0e5e4298"
168},
169"beta":{
170 "criteoUrl":"/abs/pub/emsm/activity/v2/cr/",
171 "criteoPlacementUrl":"/abs/pub/emsm/activity/v2/cr/rm",
172 "criteoUrl1":"/abs/pub/emsm/activity/v2/onLoadBeacons",
173 "relevanceCriteoUrl":"/abs/int/emsm/criteo/delivery/retailmedia",
174 "apimCriteoKey":"8fc1b5c6056e44188fadc54c5f075286",
175 "apimCriteoOnloadKey":"f8fac5b8a447437daf482481c894b380",
176 "apimRelevanceCriteoKey":"8fc1b5c6056e44188fadc54c5f075286",
177 "apimKey":"073948c7ad414e0a82aa2ba5fd83720c",
178 "teamId":"bcae55ad-87fb-42eb-ba44-650266a9bf46",
179 "catalogId":"ef0d7c5c-a721-4742-a6cf-e33e0e5e4298"
180},
181"prod":{
182 "criteoUrl":"/abs/pub/emsm/activity/v2/cr/",
183 "criteoPlacementUrl":"/abs/pub/emsm/activity/v2/cr/rm",
184 "criteoUrl1":"/abs/pub/emsm/activity/v2/onLoadBeacons",
185 "relevanceCriteoUrl":"/abs/int/emsm/criteo/delivery/retailmedia",
186 "apimCriteoKey":"8fc1b5c6056e44188fadc54c5f075286",
187 "apimCriteoOnloadKey":"f8fac5b8a447437daf482481c894b380",
188 "apimRelevanceCriteoKey":"8fc1b5c6056e44188fadc54c5f075286",
189 "apimKey":"073948c7ad414e0a82aa2ba5fd83720c",
190 "teamId":"bcae55ad-87fb-42eb-ba44-650266a9bf46",
191 "catalogId":"e48bf190-d3c2-4b70-bde9-ab2b9a0488d8"
192}
193}
194
195},{}],4:[function(require,module,exports){
196var XMLHttpRequest = require('xhr2');
197var xhr = new XMLHttpRequest();
198var common = require('./common')
199var config = common.config();
200const criteoUrl=config.criteoUrl;
201const criteoPlacementUrl=config.criteoPlacementUrl;
202const criteoUrlOnload=config.criteoUrl1;
203const criteoApimKey = config.apimCriteoKey;
204const apimKey = config.apimKey;
205const criteoApimOnloadKey = config.apimCriteoOnloadKey;
206const criteoRelevanceUrl = config.relevanceCriteoUrl;
207const criteoRelevanceApimKey = config.apimRelevanceCriteoKey;
208var botFlag=false;
209module.exports = function postAdActivity(eventTracking, adEvent, uxContext, contextObject = {}) {  
210
211    if(['AD_PLACEMENT_ONLOAD','AD_PLACEMENT_IMPRESSION','AD_PLACEMENT_CLICK'].includes(adEvent)){ 
212        createPlacementCriteoRequest(eventTracking, adEvent, uxContext);
213    }else{
214            createCriteoRequest(eventTracking, adEvent, uxContext);
215    }
216}
217// Initial Criteo Ads Tracking Function
218function createCriteoRequest(eventTrackingObject, adEvent, contextObject){
219    var result = new Object();
220    if (!criteoUrl || !criteoUrlOnload || !criteoRelevanceUrl) {
221        console.error('configuration settings not set for Criteo');
222    }
223    //Checking if Bot Session is suspected and blocking the call
224    if(botFlag){
225        result.success = false;
226        return result;
227    }
228    var criteoBeaconsObject=eventTrackingObject.beacons!==undefined?eventTrackingObject.beacons:'';
229    switch(adEvent) {
230        case 'AD_ONLOAD':{
231            if(Array.isArray(eventTrackingObject)){
232                let newEventTrackingObject = eventTrackingObject.filter(function (el) {
233                    return el.vendorId!=='1' && el.beacons!==null && el.beacons!==undefined;
234                    }
235                );
236                const beaconsValue = Array.isArray(newEventTrackingObject) && newEventTrackingObject.length>0 ?newEventTrackingObject.map(beaconsArray =>replaceBeaconParam(beaconsArray.beacons.OnLoadBeacon,true)):'';
237                beaconsValue && postAdsTrackingCriteo(criteoUrlOnload, beaconsValue);
238            }
239          break;
240        }
241        //  handling multiple beacons of ONLOAD
242        case 'AD_ONLOAD_EVENTS':{
243            if(Array.isArray(eventTrackingObject) && eventTrackingObject.length > 0){
244                eventTrackingObject
245                    .filter(el => el.vendorId !== '1' && el.beacons?.OnLoadBeacon)
246                    .forEach(item => {
247                        createAdsTrackingCriteo(criteoPlacementUrl+'?', replaceBeaconParam(item.beacons.OnLoadBeacon, false, contextObject?.disableTracking).replace('rm?', ''));
248                    });
249            }
250            break;
251        }
252        //  handling placement beacons ONLOAD
253        case 'AD_ONLOAD_PLACEMENT':{
254            const beaconsValue = contextObject.placementOnLoadBeacons;
255            beaconsValue && createAdsTrackingCriteo(criteoPlacementUrl+'?',replaceBeaconParam(beaconsValue,false, contextObject?.disableTracking).replace('rm?', ''));
256          break;
257        }
258        case 'AD_ONLOAD_PLACEMENT_TOP':{
259                const beaconsValue = contextObject.placementOnLoadBeacons_top;
260                beaconsValue && createAdsTrackingCriteo(criteoPlacementUrl+'?',replaceBeaconParam(beaconsValue, false, contextObject?.disableTracking).replace('rm?', ''));
261          break;
262        }
263        case 'AD_ONLOAD_PLACEMENT_BOTTOM':{
264            const beaconsValue = contextObject.placementOnLoadBeacons_bottom;
265            beaconsValue && createAdsTrackingCriteo(criteoPlacementUrl+'?',replaceBeaconParam(beaconsValue, false, contextObject?.disableTracking).replace('rm?', ''));
266          break;
267        }
268        case 'AD_IMPRESSION':{
269            const beaconsValue =criteoBeaconsObject.OnViewBeacon;
270            beaconsValue && createAdsTrackingCriteo(criteoUrl,replaceBeaconParam(beaconsValue,false));
271          break;
272        }
273        // handling placement beacons IMPRESSION
274        case 'AD_IMPRESSION_PLACEMENT':{
275            const beaconsValue =criteoBeaconsObject.placementOnViewBeacon;
276            beaconsValue && createAdsTrackingCriteo(criteoPlacementUrl+'?',replaceBeaconParam(beaconsValue,false,eventTrackingObject?.disableTracking).replace('rm?', ''));
277          break;
278        }
279        case 'AD_IMPRESSION_PLACEMENT_TOP':{
280            const beaconsValue =criteoBeaconsObject.placementOnViewBeacon_top;
281            beaconsValue && createAdsTrackingCriteo(criteoPlacementUrl+'?',replaceBeaconParam(beaconsValue,false,eventTrackingObject?.disableTracking).replace('rm?', ''));
282          break;
283        }
284        case 'AD_IMPRESSION_PLACEMENT_BOTTOM':{
285            const beaconsValue =criteoBeaconsObject.placementOnViewBeacon_bottom;
286            beaconsValue && createAdsTrackingCriteo(criteoPlacementUrl+'?',replaceBeaconParam(beaconsValue,false,eventTrackingObject?.disableTracking).replace('rm?', ''));
287          break;
288        }
289        case 'AD_CLICK':{
290            const beaconsValue =criteoBeaconsObject.OnClickBeacon;
291            if(contextObject!==undefined && contextObject!=="" && (contextObject.context==="addToCart" || contextObject.context==="removeProduct" || contextObject.context==="offerDetails")){
292                createAdsTrackingCriteo(criteoUrl,replaceBeaconParam(beaconsValue,false));
293            }else{
294                if(!window.location.pathname.includes("/weeklyad") && !window.location.pathname.includes("/pharmacy")){
295                    beaconsValue && clickAdsTrackingCriteo(criteoUrl,replaceBeaconParam(beaconsValue,false), true);
296                }
297            }
298          break;
299        }
300        case 'AD_RELEVANCE':{
301            const beaconsValue =eventTrackingObject;
302            if(contextObject!==undefined && contextObject!=="" && contextObject.context==="viewProductDetails"){
303                beaconsValue && clickAdsTrackingCriteo(criteoRelevanceUrl,beaconsValue, false);
304            }else{
305                beaconsValue && relevanceAdsTrackingCriteo(criteoRelevanceUrl,beaconsValue);
306            }
307          break;
308        }
309        default:{
310            result.success = false;
311            result.errorMessage = "Criteo Event is missing.";
312            return result;
313        }
314    }
315}
316function createPlacementCriteoRequest(eventTrackingObject, adEvent, contextObject){
317    var result = new Object();
318    if (!criteoUrl || !criteoUrlOnload || !criteoRelevanceUrl) {
319        console.error('Configuration settings not set for Criteo Placement');
320    }
321    //Checking if Bot Session is suspected and blocking the call
322    if(botFlag){
323        result.success = false;
324        return result;
325    }
326    var criteoBeaconsObject=eventTrackingObject!==undefined?eventTrackingObject:'';
327    switch(adEvent) {
328        case 'AD_PLACEMENT_ONLOAD':{
329            const beaconsValue = Array.isArray(criteoBeaconsObject) && criteoBeaconsObject.length>0 ?criteoBeaconsObject.map(beaconsArray =>replaceBeaconParam(beaconsArray.placementOnLoadBeacon,true)):'';
330            beaconsValue && postAdsTrackingCriteo(criteoUrlOnload, beaconsValue);
331          break;
332        }
333        case 'AD_PLACEMENT_IMPRESSION':{
334            const beaconsValue =criteoBeaconsObject.placementOnViewBeacon;
335            beaconsValue && createAdsTrackingCriteo(criteoUrl,replaceBeaconParam(beaconsValue,false));
336          break;
337        }
338        case 'AD_PLACEMENT_CLICK':{
339            const beaconsValue =criteoBeaconsObject.placementOnClickBeacon;
340            beaconsValue && clickAdsTrackingCriteo(criteoUrl,replaceBeaconParam(beaconsValue,false), true);
341          break;
342        }
343        default:{
344            result.success = false;
345            result.errorMessage = "Placement Event is missing.";
346            return result;
347        }
348    }
349}
350// Post method for criteo Ads Service
351function postAdsTrackingCriteo(criteoBeaconUrl, criteoBeaconParam){
352    const criteoRequestPayload ={ onLoadBeacons: criteoBeaconParam };
353    var request = createRequest();
354        request.open("POST", criteoBeaconUrl, true);
355        request.setRequestHeader("Ocp-Apim-Subscription-Key", criteoApimOnloadKey);
356        request.setRequestHeader('Content-Type', 'application/json');
357        request.onreadystatechange = onSuccess(request);
358        request.send(JSON.stringify(criteoRequestPayload));
359}
360// Get method for criteo Ads Service
361function relevanceAdsTrackingCriteo(criteoRelevanceUrl,criteoRelevanceParam){
362    var criteoBeaconUrl = criteoRelevanceParam?criteoRelevanceUrl+getRelevanceParam(criteoRelevanceParam):criteoRelevanceUrl;
363    var request = createRequest();
364        request.open("GET", criteoBeaconUrl, true);
365        request.setRequestHeader("Ocp-Apim-Subscription-Key", criteoRelevanceApimKey);
366        request.setRequestHeader("Client-Type", "user-agent");
367        request.onreadystatechange = onSuccess(request);
368        request.send();
369}
370function getRelevanceParam(criteoRelevanceParam){
371    let params = "?";
372    for (let paramVal in criteoRelevanceParam)
373        params += encodeURIComponent(paramVal) + '=' + encodeURIComponent(criteoRelevanceParam[paramVal]) + '&';
374    return params.slice(0, -1);
375}
376// Get method for criteo Ads Service
377function createAdsTrackingCriteo(criteoBeaconUrl,criteoBeaconParam){
378    var criteoBeaconUrl = criteoBeaconUrl+criteoBeaconParam;
379    var request = createRequest();
380        request.open("GET", criteoBeaconUrl, true);
381        request.setRequestHeader("Ocp-Apim-Subscription-Key", criteoApimKey);
382        request.onreadystatechange = onSuccess(request);
383        request.send();
384}
385// Click Event storing in localstorage for criteo Ads Service
386function clickAdsTrackingCriteo(criteoBeaconUrl,criteoBeaconParam,clickEventParam){
387    var criteoBeaconUrlValue = clickEventParam? criteoBeaconUrl+criteoBeaconParam : criteoBeaconParam? criteoBeaconUrl+getRelevanceParam(criteoBeaconParam):criteoBeaconUrl;
388    if(typeof(Storage) !== "undefined") {
389        if(localStorage.getItem('criteoClickURL')!=undefined){
390            var urlList=JSON.parse(localStorage.getItem('criteoClickURL'));
391            urlList.push(criteoBeaconUrlValue);
392            localStorage.setItem('criteoClickURL',JSON.stringify(urlList));
393            console.log("UpdatedClickURL:"+localStorage.getItem('criteoClickURL'));
394        }else{
395            var urlList=[];
396            urlList.push(criteoBeaconUrlValue);
397            localStorage.setItem('criteoClickURL',JSON.stringify(urlList));
398            console.log("UpdatedClickURL:"+localStorage.getItem('criteoClickURL'));
399        }
400    }
401}
402// Criteo Replacing function for Beacon Values
403    function replaceBeaconParam(beaconValue, beaconReplaceFlags, disableTracking = undefined) {
404        if (!beaconValue?.trim()) {
405            return '';
406        }
407        // update the beaconValue only when disableTracking is true (ACIP-476846/ACIP-461451)
408        if (!!disableTracking) {
409            beaconValue = setDisableTrackingParam(beaconValue, disableTracking);
410        }
411        if (beaconReplaceFlags) {
412            const key = 'rm_e=';
413            const index = beaconValue.indexOf(key);
414            return index !== -1 ? beaconValue.substring(index + key.length) : '';
415        } else {
416            const index = beaconValue.indexOf('rm');
417            return index !== -1 ? beaconValue.substring(index) : '';
418        }
419    }
420    // Function to set disableTracking param in URL
421    function setDisableTrackingParam(url, value) {
422        const param = 'disableTracking=';
423        const hasParam = url.includes(param);
424
425        if (hasParam) {
426            // Replace only the disableTracking value, preserving other params
427            return url.replace(/disableTracking=([^&]*)/, `${param}${value}`);
428        } else {
429            // Add disableTracking param, using correct separator
430            const separator = url.includes('?') ? '&' : '?';
431            return `${url}${separator}${param}${value}`;
432        }
433    }
434  
435function createRequest() {
436    var request = null;
437    request = new XMLHttpRequest();
438    return request;
439}
440function onSuccess(request) {
441    var result = new Object();
442    try {
443        if (request.readyState == 4) {
444            if (request.status == 200) {
445                result.success = true;
446                result.errorMessage = null;
447                return result;
448            } else {
449                result.success = false;
450                result.errorMessage = request.statusText;
451                return result;
452            }
453        }
454    }
455    catch (ex) {
456        result.success = false;
457        result.errorMessage = ex.message;
458        return result;
459    }
460}
461//Impression Reporting for Banners
462document.addEventListener('BannerImpression', (ev) => citrusAdTracker(ev.detail.agreementId,'AD_IMPRESSION',''));
463
464//Impression Reporting for Products
465document.addEventListener('productsImpression', (ev) => {
466    var adIds=ev.detail,i;
467    for(i=0;i<adIds.length;i++){
468        citrusAdTracker(adIds[i],'AD_IMPRESSION','')
469    }
470});
471
472//Call to check click event is stored in session
473document.addEventListener('DOMContentLoaded', function() {
474    var match = document.cookie.match(new RegExp('(^| )' + "SWY_SHARED_SESSION_INFO" + '=([^;]+)'));
475    if (match) {
476     if(match[2].includes("xDTags")){
477        botFlag=true;
478     }
479     }else{
480          console.log('SWY_SHARED_SESSION_INFO Cookie Not Set');
481     }
482     executeCriteoClick();
483
484}, false);
485
486//Executing citrus and Criteo call for stored click evennt in session
487function executeCriteoClick() {
488    const criteoClickURL = localStorage.getItem('criteoClickURL');
489    if (criteoClickURL != undefined) {
490        var urlList = [];
491        criteoClickURL != undefined && (urlList = JSON.parse(criteoClickURL));
492        for (let i = 0; i < urlList.length; i++) {
493            var request = createRequest();
494            request.open("GET", urlList[i], true);
495            if (urlList[i].includes(criteoRelevanceUrl)) {
496                request.setRequestHeader("Client-Type", "user-agent");
497                request.setRequestHeader("Ocp-Apim-Subscription-Key", criteoRelevanceApimKey);
498            } else {
499                request.setRequestHeader("Ocp-Apim-Subscription-Key", criteoApimKey);
500            }
501            request.onreadystatechange = onSuccess(request);
502            request.send();
503        }
504        localStorage.removeItem("criteoClickURL");
505    }
506};
507},{"./common":2,"xhr2":5}],5:[function(require,module,exports){
508module.exports = XMLHttpRequest;
509
510},{}]},{},[1]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.