- ID de l'analyse :
- b03524e8-7835-4b18-ae16-cc62c72a1dadTerminée
- URL soumise :
- https://metrics.unitedigital.io/tagging/AUDIUS/ud_tagging_bundle.js.gz
- Fin du rapport :
Liens : 0 trouvé(s)
Liens sortants identifiés à partir de la page
Variables JavaScript : 3 trouvée(s)
Les variables JavaScript globales chargées dans l'objet fenêtre d'une page sont des variables déclarées en dehors des fonctions et accessibles depuis n'importe quel endroit du code au sein du champ d'application actuel
Nom | Type |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
Messages de journal de console : 1 trouvé(s)
Messages consignés dans la console web
Type | Catégorie | Enregistrement |
---|---|---|
error | network |
|
HTML
Le corps HTML de la page en données brutes
<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/*! For license information please see ud_tagging_bundle.js.LICENSE.txt */
(()=>{"use strict";var __webpack_modules__={166:function(e,t,o){var i=this&&this.__awaiter||function(e,t,o,i){return new(o||(o=Promise))((function(r,a){function n(e){try{s(i.next(e))}catch(e){a(e)}}function l(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(n,l)}s((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const r=o(629),a=o(701),n=o(273),l=o(28),s=o(985);function c(e){n.Logger.log({level:"debug",tags:["index","sendPageViewEvent","function-call"],context:"index.ts:sendPageViewEvent",title:"sendAutoPageViewEvent called",additionalData:{args:[{parameter:"url",value:e}]}}),n.Logger.log({level:"debug",tags:["index","sendPageViewEvent","function-call"],context:"index.ts:sendPageViewEvent",title:"sendAutoPageViewEvent disabled",additionalData:{args:[{parameter:"url",value:e}]}})}(function(){var e,t;return i(this,void 0,void 0,(function*(){window.ud_tag_config.updateLogPrintingFilter((e=>["log","info"].includes(e.level))),n.Logger.log({level:"debug",tags:["index","init","function-call"],context:"index.ts:init",title:"init called",additionalData:{args:[]}}),n.Logger.log({level:"log",tags:["index","init"],context:"index.ts:init",title:"Initializing udTag v20240416.3",additionalData:{version:"20240416.3"}}),window.ud_errorQueue=[],null!==(e=window.ud_asc_dataLayer)&&void 0!==e||(window.ud_asc_dataLayer=[]),null!==(t=window.udTag)&&void 0!==t||(window.udTag=(...e)=>window.ud_asc_dataLayer.push(e)),n.Logger.onEvent((e=>{if("error"!==e.level||e.tags.includes("api")||e.tags.includes("batchProcessor"))return;const t=JSON.stringify({level:e.level,message:e.title,dateTime:e.timestamp,optionalParams:e.additionalData},null,2);window.ud_errorQueue.push({error:{message:t},retryCount:0})})),n.Logger.log({level:"debug",tags:["index","init","gtag"],context:"index.ts:init",title:"Loading GA4 for udTag"}),s.GoogleAnalyticsService.load().then((()=>{n.Logger.log({level:"debug",tags:["index","init","gtag"],context:"index.ts:init",title:"Loading GA4 for udTag"})}));const o=a.CorrelationIdService.getInstance();window.addEventListener("mousemove",o.extendCorrelationIdExpiration),window.addEventListener("keydown",o.extendCorrelationIdExpiration),l.UserFingerprintService.getInstance(),window.udCorrelation={get:()=>o.getCorrelationId()},(0,r.processDataLayer)(),(0,r.processErrors)(),window.addEventListener("popstate",(()=>{n.Logger.log({level:"debug",tags:["index","init"],context:"index.ts:init",title:"'popstate' event fired"}),c(window.location.href)})),n.Logger.onEvent((e=>{(e.tags.includes("udTagCorrelationIdGenerated")||e.tags.includes("udTagCorrelationIdFound"))&&window.ud_asc_dataLayer.push(["event","session_start",{event:"session_start"}])})),c(window.location.href),n.Logger.log({level:"log",tags:["index","init"],context:"index.ts:init",title:"udTag v20240416.3 initialization complete.",additionalData:{version:"20240416.3"}})}))})().catch((e=>console.error("Failed to initialize udTag...",e)))},797:function(e,t,o){var i=this&&this.__awaiter||function(e,t,o,i){return new(o||(o=Promise))((function(r,a){function n(e){try{s(i.next(e))}catch(e){a(e)}}function l(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(n,l)}s((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.logErrorToAPI=t.sendBatchToAPI=void 0;const r=o(273);function a(e,t,o,a){var n;return i(this,void 0,void 0,(function*(){r.Logger.log({level:"debug",tags:["api","postToAPI","function-call"],context:"api.service.ts:postToAPI",title:"postToAPI called",additionalData:{args:[{parameter:"apiUrl",value:e},{parameter:"batch",value:t},{parameter:"onRetry",value:o},{parameter:"onSuccess",value:a}]}});try{const o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t.map((e=>"mergedParams"in e?e.mergedParams:e)))};r.Logger.log({level:"debug",tags:["api","postToAPI"],context:"api.service.ts:postToAPI",title:"Calling fetch with params specified below",additionalData:{apiUrl:e,fetchOpts:o}});const i=yield fetch(e,o);if(r.Logger.log({level:"debug",tags:["api","postToAPI"],context:"api.service.ts:postToAPI",title:"Received response from API",additionalData:{response:i}}),!i.ok)throw r.Logger.log({level:"error",tags:["api","postToAPI"],context:"api.service.ts:postToAPI",title:"Response from API was not ok",additionalData:{response:i}}),new Error(`Failed to send batch to ${e}.`);const n=yield i.json();r.Logger.log({level:"debug",tags:["api","postToAPI"],context:"api.service.ts:postToAPI",title:"Parsed response from API",additionalData:{response:i,parsedData:n}}),a(n)}catch(e){r.Logger.log({level:"error",tags:["api","postToAPI"],context:"api.service.ts:postToAPI",title:"Response from API was not ok",additionalData:{error:e}});for(const e of t)e.retryCount=(null!==(n=e.retryCount)&&void 0!==n?n:0)+1,o(e)}}))}t.sendBatchToAPI=function(e){return i(this,void 0,void 0,(function*(){r.Logger.log({level:"debug",tags:["api","sendBatchToAPI","function-call"],context:"api.service.ts:sendBatchToAPI",title:"sendBatchToAPI called",additionalData:{args:[{parameter:"batch",value:e}]}}),yield a("https://metrics.unitedigital.io/api/v1/tagging",e,(e=>{e.retryCount>=parseInt("10")?r.Logger.log({level:"error",tags:["api","sendBatchToAPI"],context:"api.service.ts:sendBatchToAPI",title:"Failed to send event to https://metrics.unitedigital.io/api/v1/tagging",additionalData:{apiUrl:"https://metrics.unitedigital.io/api/v1/tagging",event:e}}):window.ud_asc_dataLayer.push({eventContext:e.eventContext,mergedParams:e.mergedParams,retryCount:e.retryCount})}),(e=>{r.Logger.log({level:"debug",tags:["api","sendBatchToAPI"],context:"api.service.ts:sendBatchToAPI",title:"Batch sent successfully",additionalData:{apiUrl:"https://metrics.unitedigital.io/api/v1/tagging",data:e}})}))}))},t.logErrorToAPI=function(e){return i(this,void 0,void 0,(function*(){r.Logger.log({level:"debug",tags:["api","logErrorToAPI","function-call"],context:"api.service.ts:logErrorToAPI",title:"logErrorToAPI called",additionalData:{args:[{parameter:"batch",value:e}]}}),yield a("https://metrics.unitedigital.io/api/v1/error",e,(e=>{e.retryCount>=parseInt("10")?r.Logger.log({level:"error",tags:["api","logErrorToAPI"],context:"api.service.ts:logErrorToAPI",title:"Failed to send error to https://metrics.unitedigital.io/api/v1/tagging",additionalData:{apiUrl:"https://metrics.unitedigital.io/api/v1/tagging",err:e}}):window.ud_errorQueue.push(e)}),(e=>{r.Logger.log({level:"debug",tags:["api","logErrorToAPI"],context:"api.service.ts:logErrorToAPI",title:"Error batch sent successfully",additionalData:{apiUrl:"https://metrics.unitedigital.io/api/v1/tagging",data:e}})}))}))}},629:function(e,t,o){var i=this&&this.__awaiter||function(e,t,o,i){return new(o||(o=Promise))((function(r,a){function n(e){try{s(i.next(e))}catch(e){a(e)}}function l(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(n,l)}s((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.processErrors=t.processDataLayer=void 0;const r=o(797),a=o(834),n=o(273),l=o(805),s=o(28),c=o(701),g=o(985);function d(e){return i(this,void 0,void 0,(function*(){const t=(yield s.UserFingerprintService.getInstance()).fingerprints;return{eventContext:e[1],mergedParams:Object.assign(Object.assign({eventName:e[1]},window.ud_tag_config.toDataLayerConfig()),{eventParams:e[2],browserData:l.BrowserInfoService.getInfo(),correlationId:c.CorrelationIdService.getInstance().getCorrelationId(),generatedDateTime:(new Date).toISOString(),udEventId:crypto.randomUUID(),fingerprints:{primary:t.fingerprintjspro,secondary:t.fingerprintjs,fallback:t.fallback}}),retryCount:0}}))}t.processDataLayer=function e(){return i(this,void 0,void 0,(function*(){if(n.Logger.log({level:"debug",tags:["batchProcessor","processDataLayer","function-call"],context:"batchProcessor.service.ts:processDataLayer",title:"processDataLayer called",additionalData:{args:[]}}),window.ud_tag_config.configureFromDataLayer(),!window.ud_tag_config.isConfigured()){const t=1e3;return n.Logger.log({level:"warn",tags:["batchProcessor","processDataLayer"],context:"batchProcessor.service.ts:processDataLayer",title:"Attempted to process data layer before configuration",message:`processDataLayer was called before config data was provided to the data layer. Trying again in ${t}ms.`}),void setTimeout(e,t)}let t=0;const o=[],i=parseInt("10",10);for(;t<window.ud_asc_dataLayer.length&&o.length<i;){const e=window.ud_asc_dataLayer[t];if(n.Logger.log({level:"debug",tags:["batchProcessor","processDataLayer"],context:"batchProcessor.service.ts:processDataLayer",title:"Processing data layer entry",message:`Processing entry in data layer at index ${t}.`,additionalData:{entry:e}}),(0,a.isDataLayerEvent)(e))n.Logger.log({level:"debug",tags:["batchProcessor","processDataLayer"],context:"batchProcessor.service.ts:processDataLayer",title:"Processed data layer entry identified as: DataLayerEvent",additionalData:{entry:e}}),o.push(e);else if((0,a.isIArgumentsEvent)(e)){n.Logger.log({level:"debug",tags:["batchProcessor","processDataLayer"],context:"batchProcessor.service.ts:processDataLayer",title:"Processed data layer entry identified as: IArgumentsEvent",additionalData:{entry:e}});const t=yield d(e);n.Logger.log({level:"debug",tags:["batchProcessor","processDataLayer"],context:"batchProcessor.service.ts:processDataLayer",title:"Converted IArgumentsEvent to DataLayerEvent",additionalData:{before:e,after:t}}),o.push(t)}else n.Logger.log({level:"warn",tags:["batchProcessor","processDataLayer"],context:"batchProcessor.service.ts:processDataLayer",title:"Encounter and dropped malformed data layer entry",additionalData:{entry:e}});t++}window.ud_asc_dataLayer.splice(0,t),n.Logger.log({level:"debug",tags:["batchProcessor","processDataLayer"],context:"batchProcessor.service.ts:processDataLayer",title:`Removed ${t} processed entries from data layer`,additionalData:{resultingBatch:o,resultingDataLayer:window.ud_asc_dataLayer,numberOfEventsProcessed:t,remainingDataLayerSize:window.ud_asc_dataLayer.length}});try{n.Logger.log({level:"debug",tags:["batchProcessor","processDataLayer","gtag"],context:"batchProcessor.service.ts:processDataLayer",title:"Integration with gtag is enabled, forwarding batch to gtag"}),g.GoogleAnalyticsService.dispatchEvents(...o),o.length>0?(n.Logger.log({level:"debug",tags:["batchProcessor","processDataLayer"],context:"batchProcessor.service.ts:processDataLayer",title:`Attempting to dispatch ${o.length} events to API...`,additionalData:{batchSize:o.length,batch:o}}),yield(0,r.sendBatchToAPI)(o),n.Logger.log({level:"info",tags:["batchProcessor","processDataLayer"],context:"batchProcessor.service.ts:processDataLayer",title:`Successfully dispatched ${o.length} events to API`,additionalData:{batchSize:o.length,batch:o}})):n.Logger.log({level:"debug",tags:["batchProcessor","processDataLayer"],context:"batchProcessor.service.ts:processDataLayer",title:"Skipping dispatching of empty batch to API"}),setTimeout(e,1e3)}catch(e){n.Logger.log({level:"error",tags:["batchProcessor","processDataLayer","API error"],context:"batchProcessor.service.ts:processDataLayer",title:"Failed to send batch of event data to API",additionalData:{error:e,batch:o}})}}))},t.processErrors=function e(){return i(this,void 0,void 0,(function*(){n.Logger.log({level:"debug",tags:["batchProcessor","processErrors","function-call"],context:"batchProcessor.service.ts:processErrors",title:"processErrors called",additionalData:{args:[]}});const t=window.ud_errorQueue.splice(0,Math.max(window.ud_errorQueue.length,parseInt("10")));if(n.Logger.log({level:"debug",tags:["batchProcessor","processErrors"],context:"batchProcessor.service.ts:processErrors",title:`Extracted ${t.length} errors from error queue`}),t.length>0)try{n.Logger.log({level:"debug",tags:["batchProcessor","processErrors"],context:"batchProcessor.service.ts:processErrors",title:`Attempting to dispatch ${t.length} errors to API...`,additionalData:{batchSize:t.length,batch:t}}),yield(0,r.logErrorToAPI)(t),n.Logger.log({level:"info",tags:["batchProcessor","processErrors"],context:"batchProcessor.service.ts:processErrors",title:`Successfully dispatched ${t.length} errors to API`,additionalData:{batchSize:t.length,batch:t}}),setTimeout(e,1e3)}catch(t){n.Logger.log({level:"error",tags:["batchProcessor","processErrors"],context:"batchProcessor.service.ts:processErrors",title:"Failed to send batched errors to API",additionalData:{error:t}}),setTimeout(e,1e3)}else n.Logger.log({level:"debug",tags:["batchProcessor","processErrors"],context:"batchProcessor.service.ts:processErrors",title:"No queued errors found"})}))}},805:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserInfoService=void 0;class o{static getScreenInfo(){var e,t,o;return void 0===window||void 0===(null===window||void 0===window?void 0:window.screen)?{}:{screenWidth:null!==(e=window.screen.width)&&void 0!==e?e:"",screenHeight:null!==(t=window.screen.height)&&void 0!==t?t:"",cookiesEnabled:null!==(o=null===navigator||void 0===navigator?void 0:navigator.cookieEnabled)&&void 0!==o&&o,localStorageEnabled:!!window.localStorage,sessionStorageEnabled:!!window.sessionStorage}}static getConnectionInfo(){var e,t,o,i,r,a,n,l,s;const c=null!==(o=null!==(t=null!==(e=null===navigator||void 0===navigator?void 0:navigator.connection)&&void 0!==e?e:null===navigator||void 0===navigator?void 0:navigator.mozConnection)&&void 0!==t?t:null===navigator||void 0===navigator?void 0:navigator.webkitConnection)&&void 0!==o?o:{};return{connectionType:null!==(i=c.effectiveType)&&void 0!==i?i:"",downlink:null!==(a=null===(r=c.downlink)||void 0===r?void 0:r.toString())&&void 0!==a?a:"",roundTripTime:null!==(l=null===(n=c.rtt)||void 0===n?void 0:n.toString())&&void 0!==l?l:"",saveData:null!==(s=c.saveData)&&void 0!==s&&s}}static getMediaPreferences(){var e,t,o,i,r,a,n,l,s,c,g;return void 0===window?{}:{darkSchemePreferred:null!==(o=null===(t=null===(e=window.matchMedia)||void 0===e?void 0:e.call(window,"(prefers-color-scheme: dark)"))||void 0===t?void 0:t.matches)&&void 0!==o&&o,reducedMotionPreferred:null!==(a=null===(r=null===(i=window.matchMedia)||void 0===i?void 0:i.call(window,"(prefers-reduced-motion: reduce)"))||void 0===r?void 0:r.matches)&&void 0!==a&&a,timeZone:null!==(g=null===(c=null===(s=null===(l=null===(n=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat)||void 0===n?void 0:n.call(Intl))||void 0===l?void 0:l.resolvedOptions)||void 0===s?void 0:s.call(l))||void 0===c?void 0:c.timeZone)&&void 0!==g?g:null}}static getSupportChecks(){var e;return{geolocationSupported:"geolocation"in navigator,serviceWorkerSupported:"serviceWorker"in(null!==navigator&&void 0!==navigator?navigator:{}),indexedDBSupported:"indexedDB"in(null!==window&&void 0!==window?window:{}),touchEventsSupported:"ontouchstart"in(null!==window&&void 0!==window?window:{})||!!((null===window||void 0===window?void 0:window.DocumentTouch)&&document instanceof window.DocumentTouch),orientation:null!==(e=null===window||void 0===window?void 0:window.orientation)&&void 0!==e?e:""}}static getPlugins(){var e;return Array.from(null!==(e=null===navigator||void 0===navigator?void 0:navigator.plugins)&&void 0!==e?e:[]).map((e=>e.name))}}t.BrowserInfoService=o,o.getInfo=()=>{var e,t,i,r,a,n,l;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({userAgent:null!==(e=null===navigator||void 0===navigator?void 0:navigator.userAgent)&&void 0!==e?e:"",platform:null!==(t=null===navigator||void 0===navigator?void 0:navigator.platform)&&void 0!==t?t:"",language:null!==(i=null===navigator||void 0===navigator?void 0:navigator.language)&&void 0!==i?i:"",appVersion:null!==(r=null===navigator||void 0===navigator?void 0:navigator.appVersion)&&void 0!==r?r:"",vendor:null!==(a=null===navigator||void 0===navigator?void 0:navigator.vendor)&&void 0!==a?a:"",onLine:null!==(n=null===navigator||void 0===navigator?void 0:navigator.onLine)&&void 0!==n&&n},o.getScreenInfo()),o.getConnectionInfo()),o.getMediaPreferences()),o.getSupportChecks()),{plugins:o.getPlugins(),referrer:null!==(l=null===document||void 0===document?void 0:document.referrer)&&void 0!==l?l:"",url:window.location})}},272:function(e,t,o){var i=this&&this.__awaiter||function(e,t,o,i){return new(o||(o=Promise))((function(r,a){function n(e){try{s(i.next(e))}catch(e){a(e)}}function l(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(n,l)}s((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.TagConfig=void 0;const r=o(273),a=o(834),n=o(5);class l{constructor(){this.cookieAcceptanceCheckMethod=()=>{if(!(()=>{try{const e="ud_localStorage_test";return localStorage.setItem(e,"test"),localStorage.removeItem(e),!0}catch(e){return!1}})())return!0;const e=localStorage.getItem("cookieAcceptance");if(null===e)return!0;return["true","yes","1","accepted"].includes(e.toLowerCase())},this.logPrintingFilter=()=>!1,this.brandId=new n.AwaitableValue,this.partnerCode=new n.AwaitableValue,this.dealerCode=new n.AwaitableValue,r.Logger.onEvent((e=>{this.logPrintingFilter(e)&&e.print()}))}static getInstance(){var e;return r.Logger.log({level:"debug",tags:["config","TagConfig","getInstance","function-call"],context:"config.service.ts:TagConfig.getInstance",title:"TagConfig.getInstance called",additionalData:{args:[]}}),void 0===l.instance&&(r.Logger.log({level:"debug",tags:["config","TagConfig","getInstance"],context:"config.service.ts:TagConfig.getInstance",title:"Initializing TagConfig instance"}),null!==(e=l.instance)&&void 0!==e||(l.instance=new l)),l.instance}isConfigured(){return void 0!==this.brandId.value&&void 0!==this.partnerCode.value}configure(e){r.Logger.log({level:"debug",tags:["config","TagConfig","configure","function-call"],context:"config.service.ts:TagConfig.configure",title:"TagConfig.configure called",additionalData:{args:[{parameter:"config",value:e}],currentConfig:{brandId:this.brandId,partnerCode:this.partnerCode,dealerCode:this.dealerCode,cookieAcceptanceCheckMethod:this.cookieAcceptanceCheckMethod}}}),void 0!==e.brandId&&this.brandId.resolve(e.brandId),void 0!==e.partnerCode&&this.partnerCode.resolve(e.partnerCode),void 0!==e.dealerCode&&this.dealerCode.resolve(e.dealerCode),void 0!==e.cookieAcceptanceCheckMethod&&(this.cookieAcceptanceCheckMethod=e.cookieAcceptanceCheckMethod),r.Logger.log({level:"info",tags:["config","TagConfig","configure"],context:"config.service.ts:TagConfig.configure",title:"Tag config updated",additionalData:{config:{brandId:this.brandId,partnerCode:this.partnerCode,dealerCode:this.dealerCode,cookieAcceptanceCheckMethod:this.cookieAcceptanceCheckMethod}}})}configureFromDataLayer(){r.Logger.log({level:"debug",tags:["config","TagConfig","configureFromDataLayer","function-call"],context:"config.service.ts:TagConfig.configureFromDataLayer",title:"TagConfig.configureFromDataLayer called",additionalData:{args:[]}});const e=[],t=[];for(const o of window.ud_asc_dataLayer)0 in o&&"init"===o[0]?e.push(o):t.push(o);window.ud_asc_dataLayer=t,r.Logger.log({level:"debug",tags:["config","TagConfig","configureFromDataLayer"],context:"config.service.ts:TagConfig.configureFromDataLayer",title:`Found ${e.length} init/config entries in data layer`,additionalData:{configEntryCount:e.length,configEntries:e}});for(const t of e){if(r.Logger.log({level:"debug",tags:["config","TagConfig","configureFromDataLayer"],context:"config.service.ts:TagConfig.configureFromDataLayer",title:"Processing init/config entry from data layer.",additionalData:{entry:t}}),!(1 in t)){r.Logger.log({level:"warn",tags:["config","TagConfig","configureFromDataLayer"],context:"config.service.ts:TagConfig.configureFromDataLayer",title:"Found init/config entry without second argument (config object).",additionalData:{entry:t}});continue}if(!(0,a.isConfig)(t[1])){r.Logger.log({level:"warn",tags:["config","TagConfig","configureFromDataLayer"],context:"config.service.ts:TagConfig.configureFromDataLayer",title:"Found init/config entry with second argument (config object) that is not a valid config object.",additionalData:{entry:t}});continue}const e=t[1];r.Logger.log({level:"debug",tags:["config","TagConfig","configureFromDataLayer"],context:"config.service.ts:TagConfig.configureFromDataLayer",title:"Setting config from data layer.",additionalData:{config:e}}),this.configure(e)}}hasBrandId(){return void 0!==this.brandId.value}getBrandId(){if(void 0!==this.brandId.value)return this.brandId.value;throw new Error("Brand ID not configured")}hasPartnerCode(){return void 0!==this.partnerCode.value}getPartnerCode(){if(void 0!==this.partnerCode.value)return this.partnerCode.value;throw new Error("Partner code not configured.")}hasDealerCode(){return void 0!==this.dealerCode.value}getDealerCode(){if(void 0!==this.dealerCode.value)return this.dealerCode.value;throw new Error("Dealer code not configured.")}getCookieAcceptanceCheckMethod(){return this.cookieAcceptanceCheckMethod}awaitBrandIdAndDealerCode(){return i(this,void 0,void 0,(function*(){return{brandId:yield this.brandId.promise,dealerCode:yield this.dealerCode.promise}}))}updateLogPrintingFilter(e){this.logPrintingFilter=e}toDataLayerConfig(){if(r.Logger.log({level:"debug",tags:["config","TagConfig","toDataLayerConfig","function-call"],context:"config.service.ts:TagConfig.toDataLayerConfig",title:"TagConfig.toDataLayerConfig called",additionalData:{args:[]}}),!this.isConfigured())throw r.Logger.log({level:"error",tags:["config","TagConfig","toDataLayerConfig"],context:"config.service.ts:TagConfig.toDataLayerConfig",title:"TagConfig.toDataLayerConfig called before configuration"}),new Error("Config not fully configured.");return{brandId:this.brandId.value,partnerCode:this.partnerCode.value,dealerCode:this.dealerCode.value,cookieAcceptanceCheckMethod:this.cookieAcceptanceCheckMethod}}}t.TagConfig=l,Object.defineProperty(window,"ud_tag_config",{get:()=>l.getInstance()})},751:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CookieService=void 0;const i=o(273);class r{static createCookieString(e){i.Logger.log({level:"debug",tags:["cookie","CookieService","createCookieString","function-call"],context:"cookie.service.ts:CookieService.createCookieString",title:"CookieService.createCookieString called",additionalData:{args:[{parameter:"cookie",value:e}]}});let t=`${e.name}=${e.value}`;return e.expires&&(t+=`; Expires=${e.expires.toUTCString()}`),e.maxAge&&(t+=`; Max-Age=${e.maxAge}`),e.path&&(t+=`; Path=${e.path}`),e.domain&&(t+=`; Domain=${e.domain}`),e.secure&&(t+="; Secure"),e.sameSite&&(t+=`; SameSite=${e.sameSite}`),e.partitioned&&(t+="; Partitioned"),i.Logger.log({level:"debug",tags:["cookie","CookieService","createCookieString"],context:"cookie.service.ts:CookieService.createCookieString",title:`Created cookie string: '${t}'.`,additionalData:{cookie:e,cookieString:t}}),t}static getAllCookies(){return i.Logger.log({level:"debug",tags:["cookie","CookieService","getAllCookies","function-call"],context:"cookie.service.ts:CookieService.getAllCookies",title:"CookieService.getAllCookies called",additionalData:{args:[]}}),Object.fromEntries(document.cookie.split(";").map((e=>e.trim())).map((e=>e.split("="))))}static hasAcceptedCookies(){i.Logger.log({level:"debug",tags:["cookie","CookieService","hasAcceptedCookies","function-call"],context:"cookie.service.ts:CookieService.hasAcceptedCookies",title:"CookieService.hasAcceptedCookies called",additionalData:{args:[]}});const e=window.ud_tag_config.getCookieAcceptanceCheckMethod(),t=e();return i.Logger.log({level:"debug",tags:["cookie","CookieService","hasAcceptedCookies"],context:"cookie.service.ts:CookieService.hasAcceptedCookies",title:`Cookie acceptable check result: ${t}`,additionalData:{cookieAcceptanceCheckMethod:e,result:t}}),t}static getCookie(e){var t;i.Logger.log({level:"debug",tags:["cookie","CookieService","getCookie","function-call"],context:"cookie.service.ts:CookieService.getCookie",title:"CookieService.getCookie called",additionalData:{args:[{parameter:"name",value:e}]}});const o=null!==(t=r.getAllCookies()[e])&&void 0!==t?t:null,a=null===o?`Cookie lookup failed for cookie with name: '${e}'`:`Cookie lookup succeeded for cookie with name: '${e}' (found value: '${o}');`;return i.Logger.log({level:"debug",tags:["cookie","CookieService","getCookie"],context:"cookie.service.ts:CookieService.getCookie",title:a,additionalData:{cookieName:e,cookieValue:o}}),o}static setCookie(e){if(i.Logger.log({level:"debug",tags:["cookie","CookieService","setCookie","function-call"],context:"cookie.service.ts:CookieService.setCookie",title:"CookieService.setCookie called",additionalData:{args:[{parameter:"cookie",value:e}]}}),!e.name)return void i.Logger.log({level:"warn",tags:["cookie","CookieService","setCookie"],context:"cookie.service.ts:CookieService.setCookie",title:"Cannot set cookie with an empty name.",additionalData:{args:[{parameter:"cookie",value:e}]}});if(!this.hasAcceptedCookies())return void i.Logger.log({level:"warn",tags:["cookie","CookieService","setCookie"],context:"cookie.service.ts:CookieService.setCookie",title:"Cannot set cookies before the user has accepted cookies.",message:"The check for cookie acceptance is handled by the window.ud_tag_config.getCookieAcceptanceCheckMethod() method, the current version of which returned false, indicating that the user has not accepted cookies.",additionalData:{args:[{parameter:"cookie",value:e}]}});const t=r.createCookieString(e);i.Logger.log({level:"debug",tags:["cookie","CookieService","setCookie"],context:"cookie.service.ts:CookieService.setCookie",title:`Setting cookie: '${e.name}'`,additionalData:{args:[{parameter:"cookie",value:e}],cookieString:t}}),document.cookie=t}static calculateExpiration(e){i.Logger.log({level:"debug",tags:["cookie","CookieService","calculateExpiration","function-call"],context:"cookie.service.ts:CookieService.calculateExpiration",title:"CookieService.calculateExpiration called",additionalData:{args:[{parameter:"expirationMs",value:e}]}});const t=new Date(Date.now()+e);return i.Logger.log({level:"debug",tags:["cookie","CookieService","calculateExpiration"],context:"cookie.service.ts:CookieService.calculateExpiration",title:`Calculated cookie expiration date for expiration delay of ${e}ms as: '${t.toISOString()}'`,additionalData:{expirationDelayMs:e,expirationDate:t}}),t}}t.CookieService=r},701:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CorrelationIdService=void 0;const i=o(751),r=o(419),a=o(273),n=o(648);class l{constructor(){a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","constructor","function-call"],context:"correlationId.service.ts:CorrelationIdService.constructor",title:"CorrelationIdService constructor called",additionalData:{args:[]}});const e=l.getCorrelationIdFromQueryParam();if(null!==e)this.correlationId=e,a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","regenerateCorrelationId","udTagCorrelationIdFound"],context:"correlationId.service.ts:CorrelationIdService.constructor",title:"Found existing correlation ID in query parameter.",additionalData:{correlationId:this.correlationId,expirationDateTime:this.expirationDateTime}});else{const e=l.getCorrelationIdFromCookie();null!==e?(this.correlationId=e,a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","regenerateCorrelationId","udTagCorrelationIdFound"],context:"correlationId.service.ts:CorrelationIdService.constructor",title:"Found existing correlation ID in cookie.",additionalData:{correlationId:this.correlationId,expirationDateTime:this.expirationDateTime}})):this.regenerateCorrelationId()}this.resetCorrelationIdExpiration(),this.updateCorrelationIdCookie(),this.extendCorrelationIdExpiration=(0,r.debounce)((()=>{this.validateCorrelationId(),this.resetCorrelationIdExpiration()}),1e3*parseInt("60"))}static getInstance(){var e;return a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","getInstance","function-call"],context:"correlationId.service.ts:CorrelationIdService.getInstance",title:"CorrelationIdService.getInstance called",additionalData:{args:[]}}),null!==(e=l.instance)&&void 0!==e||(l.instance=new l),l.instance}static getCorrelationIdFromQueryParam(){a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","getCorrelationIdFromQueryParam","function-call"],context:"correlationId.service.ts:CorrelationIdService.getCorrelationIdFromQueryParam",title:"CorrelationIdService.getCorrelationIdFromQueryParam called",additionalData:{args:[]}});const e=new URLSearchParams(window.location.search).get(l.COOKIE_NAME);return a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","getCorrelationIdFromQueryParam"],context:"correlationId.service.ts:CorrelationIdService.getCorrelationIdFromQueryParam",title:"Retrieved correlation ID from query param.",additionalData:{queryParamName:l.COOKIE_NAME,queryParamValue:e}}),e}static getCorrelationIdFromCookie(){a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","getCorrelationIdFromCookie","function-call"],context:"correlationId.service.ts:CorrelationIdService.getCorrelationIdFromCookie",title:"CorrelationIdService.getCorrelationIdFromCookie called",additionalData:{args:[]}});const e=i.CookieService.getCookie(l.COOKIE_NAME);return a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","getCorrelationIdFromCookie"],context:"correlationId.service.ts:CorrelationIdService.getCorrelationIdFromCookie",title:"Retrieved correlation ID from cookie.",additionalData:{cookieName:l.COOKIE_NAME,cookieValue:e}}),e}static getInactivityTimeout(){return 60*parseInt(("30","30"))*1e3}validateCorrelationId(){this.hasCorrelationIdExpired()&&this.regenerateCorrelationId()}regenerateCorrelationId(){a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","regenerateCorrelationId","function-call"],context:"correlationId.service.ts:CorrelationIdService.regenerateCorrelationId",title:"CorrelationIdService.regenerateCorrelationId called",additionalData:{args:[]}}),this.correlationId=(0,n.uuidv4)(),this.resetCorrelationIdExpiration(),this.updateCorrelationIdCookie(),a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","regenerateCorrelationId","udTagCorrelationIdGenerated"],context:"correlationId.service.ts:CorrelationIdService.regenerateCorrelationId",title:"Generated new correlation ID.",additionalData:{correlationId:this.correlationId,expirationDateTime:this.expirationDateTime}})}resetCorrelationIdExpiration(){this.expirationDateTime=new Date(Date.now()+l.getInactivityTimeout()),this.updateCorrelationIdCookie()}hasCorrelationIdExpired(){return new Date>this.expirationDateTime}updateCorrelationIdCookie(){a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","updateCorrelationIdCookie","function-call"],context:"correlationId.service.ts:CorrelationIdService.updateCorrelationIdCookie",title:"CorrelationIdService.updateCorrelationIdCookie called",additionalData:{args:[]}});try{i.CookieService.setCookie({name:l.COOKIE_NAME,value:this.correlationId,expires:this.expirationDateTime,path:"/",sameSite:"None",secure:!0})}catch(e){a.Logger.log({level:"error",tags:["correlationId","CorrelationIdService","updateCorrelationIdCookie"],context:"correlationId.service.ts:CorrelationIdService.updateCorrelationIdCookie",title:"Error setting correlation ID cookie.",additionalData:{correlationId:this.correlationId,error:e}})}}getCorrelationId(){a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","getCorrelationId","function-call"],context:"correlationId.service.ts:CorrelationIdService.getCorrelationId",title:"CorrelationIdService.getCorrelationId called",additionalData:{args:[]}});const e=l.getCorrelationIdFromCookie();return null!==e&&e!==this.correlationId&&(a.Logger.log({level:"debug",tags:["correlationId","CorrelationIdService","getCorrelationId"],context:"correlationId.service.ts:CorrelationIdService.getCorrelationId",title:"Encountered correlation ID mismatch between instance and cookie. Updating instance.",additionalData:{instanceCorrelationId:this.correlationId,cookieCorrelationId:e}}),this.correlationId=e,this.resetCorrelationIdExpiration(),this.updateCorrelationIdCookie()),this.validateCorrelationId(),this.correlationId}}t.CorrelationIdService=l,l.COOKIE_NAME="udCorrelationId"},985:function(e,t,o){var i=this&&this.__awaiter||function(e,t,o,i){return new(o||(o=Promise))((function(r,a){function n(e){try{s(i.next(e))}catch(e){a(e)}}function l(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(n,l)}s((i=i.apply(e,t||[])).next())}))},r=this&&this.__rest||function(e,t){var o={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(o[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(o[i[r]]=e[i[r]])}return o};Object.defineProperty(t,"__esModule",{value:!0}),t.GoogleAnalyticsService=void 0;const a=o(751),n=o(272),l=o(5),s=o(273);class c{static load(){var e;return i(this,void 0,void 0,(function*(){return s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","load","function-call"],context:"google.service.ts:GoogleAnalyticsUtilities.load",title:"GoogleAnalyticsUtilities.load called",additionalData:{args:[]}}),null!==(e=this.loadPromise)&&void 0!==e||(this.loadPromise=this.getNewLoadPromise()),this.loadPromise}))}static getNewLoadPromise(){return i(this,void 0,void 0,(function*(){if(s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","getNewLoadPromise","function-call"],context:"google.service.ts:GoogleAnalyticsUtilities.load",title:"GoogleAnalyticsUtilities.load called",additionalData:{args:[]}}),"function"!=typeof window.gtag){s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","getNewLoadPromise"],context:"google.service.ts:GoogleAnalyticsUtilities.getNewLoadPromise",title:"Appending Google Tag Manager script to head..."});const e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=",e.src+=(yield this.getGTagID()),document.head.appendChild(e),s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","getNewLoadPromise"],context:"google.service.ts:GoogleAnalyticsUtilities.getNewLoadPromise",title:"Appended Google Tag Manager script to head."}),s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","getNewLoadPromise"],context:"google.service.ts:GoogleAnalyticsUtilities.getNewLoadPromise",title:"Initializing dataLayer and gtag function..."}),window.dataLayer=window.dataLayer||[],window.gtag=function(...e){window.dataLayer.push(e)},s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","getNewLoadPromise"],context:"google.service.ts:GoogleAnalyticsUtilities.getNewLoadPromise",title:"Initialized dataLayer and gtag function."})}const e={send_page_view:!1,groups:"UD_AUDIUS"};s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","getNewLoadPromise"],context:"google.service.ts:GoogleAnalyticsUtilities.getNewLoadPromise",title:"Firing gtag 'config' action...",additionalData:{gtagConfigOptions:e}}),window.gtag("config",yield this.getGTagID(),e)}))}static getGTagID(){return i(this,void 0,void 0,(function*(){return s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","getGTagID","function-call"],context:"google.service.ts:GoogleAnalyticsUtilities.getGTagID",title:"GoogleAnalyticsUtilities.getGTagID called",additionalData:{args:[]}}),void 0===this.gtagId&&(s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","getGTagID"],context:"google.service.ts:GoogleAnalyticsUtilities.getGTagID",title:"Initializing awaitable value for gtagId..."}),this.gtagId=new l.AwaitableValue,this.fetchGTagID().then((e=>{var t;null===(t=this.gtagId)||void 0===t||t.resolve(e)})).catch((()=>{this.shouldIgnoreEvents=!0}))),this.gtagId.promise}))}static fetchGTagID(){return i(this,void 0,void 0,(function*(){s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","fetchGTagID","function-call"],context:"google.service.ts:GoogleAnalyticsUtilities.fetchGTagID",title:"GoogleAnalyticsUtilities.fetchGTagID called",additionalData:{args:[]}});const e="ud_gtag_id",t=a.CookieService.getCookie(e);if(t)return s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","fetchGTagID"],context:"google.service.ts:GoogleAnalyticsUtilities.fetchGTagID",title:"Retrieved gtag ID from cookie.",additionalData:{cookieName:e,cookieValue:t}}),t;const{brandId:o,dealerCode:i}=yield n.TagConfig.getInstance().awaitBrandIdAndDealerCode(),r=`https://metrics.unitedigital.io/api/v1/gtag/${o}/${i}`;s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","fetchGTagID"],context:"google.service.ts:GoogleAnalyticsUtilities.fetchGTagID",title:"Fetching gtag ID from server...",additionalData:{endpoint:r,brandId:o,dealerCode:i}});const l=yield fetch(r);if(404===l.status){const e=`Failed to find gtag ID for the given brand ID and dealer code combination (brand ID: '${o}', dealer code: '${i}').`;throw s.Logger.log({level:"error",tags:["google","GoogleAnalyticsUtilities","fetchGTagID"],context:"google.service.ts:GoogleAnalyticsUtilities.fetchGTagID",title:e,additionalData:{response:l,brandId:o,dealerCode:i}}),new Error(e)}if(!l.ok){const e="Failed to fetch gtag ID from server for unknown reason.";throw s.Logger.log({level:"error",tags:["google","GoogleAnalyticsUtilities","fetchGTagID"],context:"google.service.ts:GoogleAnalyticsUtilities.fetchGTagID",title:e,additionalData:{response:l,brandId:o,dealerCode:i}}),new Error(e)}const c=yield l.json(),g=c.gTagId;return s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","fetchGTagID"],context:"google.service.ts:GoogleAnalyticsUtilities.fetchGTagID",title:"Successfully fetched gtag ID from server.",additionalData:{response:l,responseJson:c,brandId:o,dealerCode:i,gtagId:g}}),a.CookieService.setCookie({name:e,value:g,expires:a.CookieService.calculateExpiration(2592e6),path:"/",sameSite:"None",secure:!0}),g}))}static flattenParamsForGA(e){s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","flattenParamsForGA","function-call"],context:"google.service.ts:GoogleAnalyticsUtilities.flattenParamsForGA",title:"GoogleAnalyticsUtilities.flattenParamsForGA called",additionalData:{args:[{parameter:"mergedParams",value:e}]}});const{eventParams:t,browserData:o}=e,i=r(e,["eventParams","browserData"]),a=Object.assign(Object.assign(Object.assign({},t),o),i);return s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","flattenParamsForGA"],context:"google.service.ts:GoogleAnalyticsUtilities.flattenParamsForGA",title:"Flattened event parameter for Google Analytics.",additionalData:{preFlatteningParams:e,postFlatteningParams:a}}),a}static dispatchEvents(...e){s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","dispatchEvents","function-call"],context:"google.service.ts:GoogleAnalyticsUtilities.dispatchEvents",title:"GoogleAnalyticsUtilities.dispatchEvents called",additionalData:{args:[{parameter:"events",value:e}]}}),this.shouldIgnoreEvents?s.Logger.log({level:"debug",tags:["google","GoogleAnalyticsUtilities","dispatchEvents"],context:"google.service.ts:GoogleAnalyticsUtilities.dispatchEvents",title:"Refusing to dispatch events to Google Analytics.",additionalData:{reason:[[!1,"SHOULD_USE_GTAG is not true"],[this.shouldIgnoreEvents,"shouldIgnoreEvents is true"]].filter((e=>e[0])).map((e=>e[1])).join(" and ")}}):this.load().then((()=>e.forEach((e=>window.gtag("event",e.eventContext,Object.assign(Object.assign({},this.flattenParamsForGA(e.mergedParams)),{send_to:["UD_AUDIUS"]}))))))}}t.GoogleAnalyticsService=c,c.shouldIgnoreEvents=!1},273:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=t.LogEvent=void 0;class o{constructor({level:e="info",tags:t=[],context:o,title:i,message:r=null,additionalData:a,timestamp:n=new Date}){this.level=e,this.tags=t,this.context=o,this.title=i,this.message=r,this.additionalData=void 0===a?void 0:JSON.parse(JSON.stringify(a)),this.timestamp=n}print(){var e;const t=[];t.push({text:this.timestamp.toLocaleString(),format:"color: silver; border: 1px solid grey; padding: 0px 1px;"}),t.push({text:" "}),t.push({text:this.level.toUpperCase(),format:"color: white; background-color: black; border: 1px solid grey; padding: 0px 1px;"}),t.push({text:" "}),t.push({text:this.title,format:"font-weight: bold"}),null!==this.message&&(t.push({text:"\n"}),t.push({text:null!==(e=this.message)&&void 0!==e?e:""})),t.push({text:"\n"}),t.push({text:"Additional info:",format:"font-style: italic"});const o=t.map((e=>`%c${e.text}`)).join(""),i=t.map((e=>{var t;return null!==(t=null==e?void 0:e.format)&&void 0!==t?t:""}));console[this.level](o,...i,{event:this})}}t.LogEvent=o;t.Logger=new class{constructor(){this.history=[],this.listeners={}}log(e){const t=e instanceof o?e:new o(e);this.history.push(t),this.dispatch(t)}getHistory(e){return structuredClone(void 0===e?this.history:this.history.filter(e))}print(e){const t=void 0===e?this.history:this.history.filter(e);console.groupCollapsed(`udTag Log History (${t.length} entries)`),0===t.length?console.log("%cNo log entries to display.","color: grey; font-style: italic;"):t.forEach((e=>e.print())),console.groupEnd()}dispatch(e){const t=Object.getOwnPropertySymbols(this.listeners).map((e=>[e,this.listeners[e]]));for(const[o,i]of t)i(e,(()=>{delete this.listeners[o]}))}onEvent(e){const t=Symbol();return this.listeners[t]=e,()=>{delete this.listeners[t]}}},Object.defineProperty(window,"ud_tag_logs",{get:()=>t.Logger})},28:function(__unused_webpack_module,exports,__webpack_require__){var __awaiter=this&&this.__awaiter||function(e,t,o,i){return new(o||(o=Promise))((function(r,a){function n(e){try{s(i.next(e))}catch(e){a(e)}}function l(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(n,l)}s((i=i.apply(e,t||[])).next())}))},_a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.UserFingerprintService=void 0;const cookie_service_1=__webpack_require__(751),logger_service_1=__webpack_require__(273),browserInfo_service_1=__webpack_require__(805),sha256_1=__webpack_require__(657),MINIMUM_FINGERPRINTJS_API_WAIT_TIME=12e4;class UserFingerprintService{constructor(e){this.fingerprints=e}static getInstance(){return __awaiter(this,void 0,void 0,(function*(){return void 0===_a.instance&&(_a.instance=new _a(yield _a.getFingerprints())),_a.instance}))}static getFingerprints(){return __awaiter(this,void 0,void 0,(function*(){logger_service_1.Logger.log({level:"debug",tags:["userFingerprint","UserFingerprintService","getFingerprints","function-call"],context:"UserFingerprintService.getFingerprints",title:"UserFingerprintService.getFingerprints called",additionalData:{args:[]}});const e=Object.keys(_a.TYPE_CONFIGS).map((e=>[e,_a.getFingerprintByType(e)])),t=yield Promise.all(e.map((([e,t])=>t.then((t=>[e,t])))));return Object.fromEntries(t)}))}static setFingerprintCookie(e,t){logger_service_1.Logger.log({level:"debug",tags:["userFingerprint","UserFingerprintService","setFingerprintCookie","function-call"],context:"UserFingerprintService.setFingerprintCookie",title:"UserFingerprintService.setFingerprintCookie called",additionalData:{args:[{parameter:"type",value:e},{parameter:"fingerprint",value:t}]}});const o=parseInt("365");cookie_service_1.CookieService.setCookie({name:this.TYPE_CONFIGS[e].cookieName,value:t,expires:cookie_service_1.CookieService.calculateExpiration(24*o*60*60*1e3),path:"/",sameSite:"None",secure:!0})}static getFingerprintByType(e){return __awaiter(this,void 0,void 0,(function*(){logger_service_1.Logger.log({level:"debug",tags:["userFingerprint","UserFingerprintService","getFingerprintByType","function-call"],context:"UserFingerprintService.getFingerprintByType",title:"UserFingerprintService.getFingerprintByType called",additionalData:{args:[{parameter:"type",value:e}]}});const{cookieName:t,lastAttempt:o,generate:i}=_a.TYPE_CONFIGS[e],r=cookie_service_1.CookieService.getCookie(t);if(r)return r;if(Date.now()-o>=MINIMUM_FINGERPRINTJS_API_WAIT_TIME){let t;_a.TYPE_CONFIGS[e].lastAttempt=Date.now();try{t=yield i()}catch(e){}if(void 0!==t)return _a.setFingerprintCookie(e,t),t}}))}static generateNewFingerprint(){return __awaiter(this,void 0,void 0,(function*(){logger_service_1.Logger.log({level:"debug",tags:["userFingerprint","UserFingerprintService","generateNewFingerprint","function-call"],context:"UserFingerprintService.generateNewFingerprint",title:"UserFingerprintService.generateNewFingerprint called",additionalData:{args:[]}});try{return yield _a.generateFingerprintJSFingerprint(!1)}catch(e){logger_service_1.Logger.log({level:"warn",tags:["userFingerprint","UserFingerprintService","generateNewFingerprint"],context:"UserFingerprintService.generateNewFingerprint",title:"FingerprintJS fingerprint generation failed, falling back to fallback method.",additionalData:{err:e}})}return yield this.generateFallbackFingerprint()}))}static generateFingerprintJSFingerprint(useProVersion){return __awaiter(this,void 0,void 0,(function*(){if(useProVersion){const e="UserFingerprintService.getFingerprintJSFingerprint: Attempted to use FingerprintJS Pro library when it is disabled in config.";throw logger_service_1.Logger.log({level:"warn",tags:["userFingerprint","UserFingerprintService","generateFingerprintJSFingerprint"],context:"UserFingerprintService.generateFingerprintJSFingerprint",title:e}),new Error(e)}let FingerprintJS;const versionName="FingerprintJS"+(useProVersion?" Pro":""),apiKey="UMQ6egUO18HwkUXYgn4O",location=new URL(useProVersion?`https://metricsfp.unitedigital.io/web/v3/${apiKey}`:process.env.FINGERPRINT_JS_FREE_URL);try{FingerprintJS=yield eval(`import("${location.href}")`)}catch(e){const t=`UserFingerprintService.getFingerprintJSFingerprint: Error importing ${versionName} library.`;throw logger_service_1.Logger.log({level:"warn",tags:["userFingerprint","UserFingerprintService","generateFingerprintJSFingerprint"],context:"UserFingerprintService.generateFingerprintJSFingerprint",title:t,additionalData:{err:e}}),new Error(t)}let fingerprintJsAgent,fingerprintResult;try{const e={endpoint:`${location.protocol}//${location.host}`};useProVersion&&(e.apiKey=apiKey),logger_service_1.Logger.log({level:"debug",tags:["userFingerprint","UserFingerprintService","generateFingerprintJSFingerprint"],context:"UserFingerprintService.generateFingerprintJSFingerprint",title:`Attempting to load ${versionName} agent...`,additionalData:{fingerprintOptions:e}}),fingerprintJsAgent=yield FingerprintJS.load(e)}catch(e){const t=`UserFingerprintService.getFingerprintJSFingerprint: Error loading ${versionName} agent.`;throw logger_service_1.Logger.log({level:"warn",tags:["userFingerprint","UserFingerprintService","generateFingerprintJSFingerprint"],context:"UserFingerprintService.generateFingerprintJSFingerprint",title:t,additionalData:{err:e}}),new Error(t)}try{fingerprintResult=yield fingerprintJsAgent.get()}catch(e){const t=`UserFingerprintService.getFingerprintJSFingerprint: Error fetching fingerprint information from ${versionName}.`;throw logger_service_1.Logger.log({level:"warn",tags:["userFingerprint","UserFingerprintService","generateFingerprintJSFingerprint"],context:"UserFingerprintService.generateFingerprintJSFingerprint",title:t,additionalData:{err:e}}),new Error(t)}return logger_service_1.Logger.log({level:"debug",tags:["userFingerprint","UserFingerprintService","generateFingerprintJSFingerprint"],context:"UserFingerprintService.generateFingerprintJSFingerprint",title:`Successfully fetched fingerprint information from ${versionName}.`,additionalData:{fingerprint:fingerprintResult.visitorId,fullResponse:fingerprintResult}}),fingerprintResult.visitorId}))}static generateFallbackFingerprint(){return __awaiter(this,void 0,void 0,(function*(){logger_service_1.Logger.log({level:"debug",tags:["userFingerprint","UserFingerprintService","generateFallbackFingerprint","function-call"],context:"UserFingerprintService.generateFallbackFingerprint",title:"UserFingerprintService.generateFallbackFingerprint called",additionalData:{args:[]}});const e=browserInfo_service_1.BrowserInfoService.getInfo(),t=["url","downlink","referrer","orientation","saveData","rtt","onLine"];for(const o of t)delete e[o];const o=Object.keys(e).sort(((e,t)=>e.localeCompare(t))).map((t=>String(e[t]))).join(""),i=yield(0,sha256_1.sha256)(o);return logger_service_1.Logger.log({level:"debug",tags:["userFingerprint","UserFingerprintService","generateFallbackFingerprint"],context:"UserFingerprintService.generateFallbackFingerprint",title:"Successfully generated fallback fingerprint.",additionalData:{fingerprint:i}}),i}))}}exports.UserFingerprintService=UserFingerprintService,_a=UserFingerprintService,UserFingerprintService.TYPE_CONFIGS={fingerprintjspro:{cookieName:"udFingerprintFingerprintJSPro",lastAttempt:0,generate:()=>__awaiter(void 0,void 0,void 0,(function*(){return _a.generateFingerprintJSFingerprint(!0)}))},fingerprintjs:{cookieName:"userFingerprintFingerprintJS",lastAttempt:0,generate:()=>__awaiter(void 0,void 0,void 0,(function*(){return _a.generateFingerprintJSFingerprint(!1)}))},fallback:{cookieName:"userFingerprintFallback",lastAttempt:0,generate:()=>__awaiter(void 0,void 0,void 0,(function*(){return _a.generateFallbackFingerprint()}))}}},5:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AwaitableValue=void 0;t.AwaitableValue=class{constructor(){this.value=void 0,this.promise=new Promise((e=>{this.resolve=e})),this.promise.then((e=>{this.value=e}))}}},419:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.debounce=void 0,t.debounce=function(e,t){let o;return(...i)=>{clearTimeout(o),o=setTimeout((()=>e(...i)),t)}}},657:function(e,t){var o=this&&this.__awaiter||function(e,t,o,i){return new(o||(o=Promise))((function(r,a){function n(e){try{s(i.next(e))}catch(e){a(e)}}function l(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(n,l)}s((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.sha256=void 0;t.sha256=function(e){return o(this,void 0,void 0,(function*(){const t=new DataView(yield crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e))),o=[];for(let e=0;e<t.byteLength;e+=4)o.push(t.getUint32(e).toString(16).padStart(8,"0"));return o.join("")}))}},834:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isConfig=t.isIArgumentsEvent=t.isDataLayerEvent=t.isMergedParams=void 0;t.isMergedParams=e=>"object"==typeof e&&null!==e&&"eventName"in e&&"string"==typeof e.eventName&&"eventParams"in e&&"object"==typeof e.eventParams&&"browserData"in e&&"object"==typeof e.browserData&&"correlationId"in e&&"string"==typeof e.correlationId&&"fingerprint"in e&&"string"==typeof e.fingerprint&&"brandId"in e&&"string"==typeof e.brandId&&"partnerCode"in e&&"string"==typeof e.partnerCode&&(!("dealerCode"in e)||"string"==typeof e.dealerCode)&&(!("cookieAcceptanceCheckMethod"in e)||"function"==typeof e.cookieAcceptanceCheckMethod);t.isDataLayerEvent=e=>"object"==typeof e&&null!==e&&"eventContext"in e&&"string"==typeof e.eventContext&&"mergedParams"in e&&(0,t.isMergedParams)(e.mergedParams)&&"retryCount"in e&&"number"==typeof e.retryCount;t.isIArgumentsEvent=e=>"object"==typeof e&&null!==e&&0 in e&&"event"===e[0]&&1 in e&&"string"==typeof e[1]&&2 in e&&"object"==typeof e[2]&&null!==e[2];t.isConfig=e=>!("object"!=typeof e||null===e||!("brandId"in e)||"string"!=typeof e.brandId||!("partnerCode"in e)||"string"!=typeof e.partnerCode||"dealerCode"in e&&"string"!=typeof e.dealerCode||"cookieAcceptanceCheckMethod"in e&&"function"!=typeof e.cookieAcceptanceCheckMethod)},648:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.uuidv4=void 0,t.uuidv4=function(){const e=e=>new Array(e).fill(0).map((()=>Math.floor(16*Math.random()))),t=e=>e.map((e=>e.toString(16))).join(""),o=o=>t(e(2*o)),i=o(4),r=o(2),a=e(4),n=e(2),l=o(1),s=o(6);return n[0]=n[0]&=-65,n[0]=n[0]|=128,a[0]=4,[i,r,t(a),t(n)+l,s].join("-")}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var o=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(o.exports,o,o.exports,__webpack_require__),o.exports}var __webpack_exports__=__webpack_require__(166)})();</pre></body></html>