@rudderstack/analytics-js 3.7.18 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/README.md +1 -0
- package/dist/npm/index.d.cts +2 -2
- package/dist/npm/index.d.mts +2 -2
- package/dist/npm/legacy/bundled/cjs/index.cjs +178 -108
- package/dist/npm/legacy/bundled/esm/index.mjs +178 -108
- package/dist/npm/legacy/bundled/umd/index.js +178 -108
- package/dist/npm/legacy/cjs/index.cjs +178 -108
- package/dist/npm/legacy/content-script/cjs/index.cjs +178 -108
- package/dist/npm/legacy/content-script/esm/index.mjs +178 -108
- package/dist/npm/legacy/content-script/umd/index.js +178 -108
- package/dist/npm/legacy/esm/index.mjs +178 -108
- package/dist/npm/legacy/umd/index.js +178 -108
- package/dist/npm/modern/bundled/cjs/index.cjs +145 -108
- package/dist/npm/modern/bundled/esm/index.mjs +145 -108
- package/dist/npm/modern/bundled/umd/index.js +145 -108
- package/dist/npm/modern/cjs/index.cjs +18 -18
- package/dist/npm/modern/content-script/cjs/index.cjs +145 -108
- package/dist/npm/modern/content-script/esm/index.mjs +145 -108
- package/dist/npm/modern/content-script/umd/index.js +145 -108
- package/dist/npm/modern/esm/index.mjs +18 -18
- package/dist/npm/modern/umd/index.js +18 -18
- package/package.json +1 -1
@@ -374,7 +374,7 @@ payload.groupId=tryStringify(payload.groupId);if(isObjectLiteralAndNotNull(paylo
|
|
374
374
|
|
375
375
|
const CAPABILITIES_MANAGER='CapabilitiesManager';const CONFIG_MANAGER='ConfigManager';const EVENT_MANAGER='EventManager';const PLUGINS_MANAGER='PluginsManager';const USER_SESSION_MANAGER='UserSessionManager';const ERROR_HANDLER='ErrorHandler';const PLUGIN_ENGINE='PluginEngine';const STORE_MANAGER='StoreManager';const READY_API='readyApi';const EVENT_REPOSITORY='EventRepository';const EXTERNAL_SRC_LOADER='ExternalSrcLoader';const HTTP_CLIENT='HttpClient';const RS_APP='RudderStackApplication';const ANALYTICS_CORE='AnalyticsCore';
|
376
376
|
|
377
|
-
const APP_NAME='RudderLabs JavaScript SDK';const APP_VERSION='3.
|
377
|
+
const APP_NAME='RudderLabs JavaScript SDK';const APP_VERSION='3.8.0';const APP_NAMESPACE='com.rudderlabs.javascript';const MODULE_TYPE='npm';const ADBLOCK_PAGE_CATEGORY='RudderJS-Initiated';const ADBLOCK_PAGE_NAME='ad-block page request';const ADBLOCK_PAGE_PATH='/ad-blocked';const GLOBAL_PRELOAD_BUFFER='preloadedEventsBuffer';const CONSENT_TRACK_EVENT_NAME='Consent Management Interaction';
|
378
378
|
|
379
379
|
const QUERY_PARAM_TRAIT_PREFIX='ajs_trait_';const QUERY_PARAM_PROPERTY_PREFIX='ajs_prop_';const QUERY_PARAM_ANONYMOUS_ID_KEY='ajs_aid';const QUERY_PARAM_USER_ID_KEY='ajs_uid';const QUERY_PARAM_TRACK_EVENT_NAME_KEY='ajs_event';
|
380
380
|
|
@@ -534,9 +534,9 @@ const CDN_INT_DIR='js-integrations';const CDN_PLUGINS_DIR='plugins';const URL_PA
|
|
534
534
|
|
535
535
|
const BUILD_TYPE='modern';const SDK_CDN_BASE_URL='https://cdn.rudderlabs.com';const CDN_ARCH_VERSION_DIR='v3';const DEST_SDK_BASE_URL=`${SDK_CDN_BASE_URL}/${CDN_ARCH_VERSION_DIR}/${BUILD_TYPE}/${CDN_INT_DIR}`;const PLUGINS_BASE_URL=`${SDK_CDN_BASE_URL}/${CDN_ARCH_VERSION_DIR}/${BUILD_TYPE}/${CDN_PLUGINS_DIR}`;const DEFAULT_CONFIG_BE_URL='https://api.rudderstack.com';
|
536
536
|
|
537
|
-
const DEFAULT_STORAGE_ENCRYPTION_VERSION='v3';const DEFAULT_DATA_PLANE_EVENTS_TRANSPORT='xhr';const ConsentManagersToPluginNameMap={oneTrust:'OneTrustConsentManager',ketch:'KetchConsentManager',custom:'CustomConsentManager'};const StorageEncryptionVersionsToPluginNameMap={[DEFAULT_STORAGE_ENCRYPTION_VERSION]:'StorageEncryption',legacy:'StorageEncryptionLegacy'};const DataPlaneEventsTransportToPluginNameMap={[DEFAULT_DATA_PLANE_EVENTS_TRANSPORT]:'XhrQueue',beacon:'BeaconQueue'};const DEFAULT_DATA_SERVICE_ENDPOINT='rsaRequest';const METRICS_SERVICE_ENDPOINT='rsaMetrics';
|
537
|
+
const DEFAULT_STORAGE_ENCRYPTION_VERSION='v3';const DEFAULT_DATA_PLANE_EVENTS_TRANSPORT='xhr';const ConsentManagersToPluginNameMap={iubenda:'IubendaConsentManager',oneTrust:'OneTrustConsentManager',ketch:'KetchConsentManager',custom:'CustomConsentManager'};const StorageEncryptionVersionsToPluginNameMap={[DEFAULT_STORAGE_ENCRYPTION_VERSION]:'StorageEncryption',legacy:'StorageEncryptionLegacy'};const DataPlaneEventsTransportToPluginNameMap={[DEFAULT_DATA_PLANE_EVENTS_TRANSPORT]:'XhrQueue',beacon:'BeaconQueue'};const DEFAULT_DATA_SERVICE_ENDPOINT='rsaRequest';const METRICS_SERVICE_ENDPOINT='rsaMetrics';
|
538
538
|
|
539
|
-
const defaultLoadOptions={logLevel:'ERROR',configUrl:DEFAULT_CONFIG_BE_URL,loadIntegration:true,sessions:{autoTrack:true,timeout:DEFAULT_SESSION_TIMEOUT_MS},sameSiteCookie:'Lax',polyfillIfRequired:true,integrations:DEFAULT_INTEGRATIONS_CONFIG,useBeacon:false,beaconQueueOptions:{},destinationsQueueOptions:{},queueOptions:{},lockIntegrationsVersion:false,lockPluginsVersion:false,uaChTrackLevel:'none',plugins:[],useGlobalIntegrationsConfigInEvents:false,bufferDataPlaneEventsUntilReady:false,dataPlaneEventsBufferTimeout:DEFAULT_DATA_PLANE_EVENTS_BUFFER_TIMEOUT_MS,storage:{encryption:{version:DEFAULT_STORAGE_ENCRYPTION_VERSION},migrate:true},sendAdblockPageOptions:{},useServerSideCookies:false};const loadOptionsState=d$1(clone(defaultLoadOptions));
|
539
|
+
const defaultLoadOptions={logLevel:'ERROR',configUrl:DEFAULT_CONFIG_BE_URL,loadIntegration:true,sessions:{autoTrack:true,timeout:DEFAULT_SESSION_TIMEOUT_MS},sameSiteCookie:'Lax',polyfillIfRequired:true,integrations:DEFAULT_INTEGRATIONS_CONFIG,useBeacon:false,beaconQueueOptions:{},destinationsQueueOptions:{},queueOptions:{},lockIntegrationsVersion:false,lockPluginsVersion:false,uaChTrackLevel:'none',plugins:[],useGlobalIntegrationsConfigInEvents:false,bufferDataPlaneEventsUntilReady:false,dataPlaneEventsBufferTimeout:DEFAULT_DATA_PLANE_EVENTS_BUFFER_TIMEOUT_MS,storage:{encryption:{version:DEFAULT_STORAGE_ENCRYPTION_VERSION},migrate:true,cookie:{}},sendAdblockPageOptions:{},useServerSideCookies:false};const loadOptionsState=d$1(clone(defaultLoadOptions));
|
540
540
|
|
541
541
|
const DEFAULT_USER_SESSION_VALUES={userId:'',userTraits:{},anonymousId:'',groupId:'',groupTraits:{},initialReferrer:'',initialReferringDomain:'',sessionInfo:{},authToken:null};const SERVER_SIDE_COOKIES_DEBOUNCE_TIME=10;// milliseconds
|
542
542
|
|
@@ -630,7 +630,7 @@ destination.config.useNativeSDK===true);const isHybridModeDestination=destinatio
|
|
630
630
|
/**
|
631
631
|
* List of plugin names that are loaded as dynamic imports in modern builds
|
632
632
|
*/const pluginNamesList=['BeaconQueue','Bugsnag',// deprecated
|
633
|
-
'CustomConsentManager','DeviceModeDestinations','DeviceModeTransformation','ErrorReporting','ExternalAnonymousId','GoogleLinker','KetchConsentManager','NativeDestinationQueue','OneTrustConsentManager','StorageEncryption','StorageEncryptionLegacy','StorageMigrator','XhrQueue'];
|
633
|
+
'CustomConsentManager','DeviceModeDestinations','DeviceModeTransformation','ErrorReporting','ExternalAnonymousId','GoogleLinker','IubendaConsentManager','KetchConsentManager','NativeDestinationQueue','OneTrustConsentManager','StorageEncryption','StorageEncryptionLegacy','StorageMigrator','XhrQueue'];
|
634
634
|
|
635
635
|
/**
|
636
636
|
* To get the current timestamp in ISO string format
|
@@ -827,7 +827,7 @@ if(attempt===maxAttempts&&entryIdx+1<queueEntryKeys.length){this.removeStorageEn
|
|
827
827
|
// Hence, we need this backward compatibility check
|
828
828
|
if(isFunction(storageEngine.keys)){storageKeys=storageEngine.keys();}else {for(let i=0;i<storageEngine.length;i++){const key=storageEngine.key(i);if(key){storageKeys.push(key);}}}storageKeys.forEach(k=>{const keyParts=k?k.split('.'):[];if(keyParts.length>=3&&keyParts[0]===name&&keyParts[1]!==this.id&&keyParts[2]===QueueStatuses.ACK){res.push(this.storeManager.setStore({id:keyParts[1],name,validKeys:QueueStatuses,type:LOCAL_STORAGE}));}});return res;};findOtherQueues(this.name).forEach(store=>{if(this.schedule.now()-store.get(QueueStatuses.ACK)<this.timeouts.reclaimTimeout){return;}tryReclaim(store);});this.schedule.run(this.checkReclaim,this.timeouts.reclaimTimer,ScheduleModes.RESCHEDULE);}clear(){this.schedule.cancelAll();this.setDefaultQueueEntries();}}
|
829
829
|
|
830
|
-
const pluginName$
|
830
|
+
const pluginName$f='BeaconQueue';const BeaconQueue=()=>({name:pluginName$f,deps:[],initialize:state=>{state.plugins.loadedPlugins.value=[...state.plugins.loadedPlugins.value,pluginName$f];},dataplaneEventsQueue:{/**
|
831
831
|
* Initialize the queue for delivery
|
832
832
|
* @param state Application state
|
833
833
|
* @param httpClient http client instance
|
@@ -884,183 +884,185 @@ collectUserIp:false,// collecting user's IP is disabled
|
|
884
884
|
maxEvents:100,maxBreadcrumbs:40,releaseStage:getReleaseStage$1(),user:{id:state.source.value?.id||state.lifecycle.writeKey.value},logger,networkBreadcrumbsEnabled:false};const client=globalBugsnagLibInstance(clientConfig);return client;};const isApiKeyValid=apiKey=>{const isAPIKeyValid=!(apiKey.startsWith('{{')||apiKey.endsWith('}}')||apiKey.length===0);return isAPIKeyValid;};const loadBugsnagSDK=(externalSrcLoader,logger)=>{const isNotLoaded=GLOBAL_LIBRARY_OBJECT_NAMES.every(globalKeyName=>!globalThis[globalKeyName]);if(!isNotLoaded){return;}externalSrcLoader.loadJSFile({url:BUGSNAG_CDN_URL,id:ERROR_REPORT_PROVIDER_NAME_BUGSNAG,callback:id=>{if(!id){logger?.error(BUGSNAG_SDK_LOAD_ERROR(BUGSNAG_PLUGIN));}}});};const initBugsnagClient=(state,promiseResolve,promiseReject,logger,time=0)=>{const globalBugsnagLibInstance=getGlobalBugsnagLibInstance();if(typeof globalBugsnagLibInstance==='function'){if(isValidVersion(globalBugsnagLibInstance)){const client=getNewClient(state,logger);promiseResolve(client);}}else if(time>=MAX_WAIT_FOR_SDK_LOAD_MS){promiseReject(new Error(BUGSNAG_SDK_LOAD_TIMEOUT_ERROR(MAX_WAIT_FOR_SDK_LOAD_MS)));}else {// Try to initialize the client after a delay
|
885
885
|
globalThis.setTimeout(initBugsnagClient,SDK_LOAD_POLL_INTERVAL_MS,state,promiseResolve,promiseReject,logger,time+SDK_LOAD_POLL_INTERVAL_MS);}};
|
886
886
|
|
887
|
-
const pluginName$
|
887
|
+
const pluginName$e='Bugsnag';const Bugsnag=()=>({name:pluginName$e,deps:[],initialize:state=>{state.plugins.loadedPlugins.value=[...state.plugins.loadedPlugins.value,pluginName$e];},errorReportingProvider:{init:(state,externalSrcLoader,logger)=>new Promise((resolve,reject)=>{// If API key token is not parsed or invalid, don't proceed to initialize the client
|
888
888
|
if(!isApiKeyValid(API_KEY)){reject(new Error(BUGSNAG_API_KEY_VALIDATION_ERROR(API_KEY)));return;}// If SDK URL is empty, don't proceed to initialize the client
|
889
889
|
loadBugsnagSDK(externalSrcLoader,logger);initBugsnagClient(state,resolve,reject,logger);}),notify:(client,error,state,logger)=>{client.notify(error);},breadcrumb:(client,message,logger)=>{client?.leaveBreadcrumb(message);}}});
|
890
890
|
|
891
891
|
const CUSTOM_CONSENT_MANAGER_PLUGIN='CustomConsentManagerPlugin';
|
892
892
|
|
893
|
-
const DESTINATION_CONSENT_STATUS_ERROR$
|
893
|
+
const DESTINATION_CONSENT_STATUS_ERROR$3=`Failed to determine the consent status for the destination. Please check the destination configuration and try again.`;
|
894
894
|
|
895
|
-
const pluginName$
|
895
|
+
const pluginName$d='CustomConsentManager';const CustomConsentManager=()=>({name:pluginName$d,deps:[],initialize:state=>{state.plugins.loadedPlugins.value=[...state.plugins.loadedPlugins.value,pluginName$d];},consentManager:{init(state,logger){// Nothing to initialize
|
896
896
|
},updateConsentsInfo(state,storeManager,logger){// Nothing to update. Already provided by the user
|
897
897
|
},isDestinationConsented(state,destConfig,errorHandler,logger){if(!state.consents.initialized.value){return true;}const allowedConsentIds=state.consents.data.value.allowedConsentIds;try{const{consentManagement}=destConfig;// If the destination does not have consent management config, events should be sent.
|
898
898
|
if(!consentManagement){return true;}// Get the corresponding consents for the destination
|
899
899
|
const cmpConfig=consentManagement.find(c=>c.provider===state.consents.provider.value);// If there are no consents configured for the destination for the current provider, events should be sent.
|
900
900
|
if(!cmpConfig?.consents){return true;}const configuredConsents=cmpConfig.consents.map(c=>c.consent.trim()).filter(n=>n);const resolutionStrategy=cmpConfig.resolutionStrategy??state.consents.resolutionStrategy.value;// match the configured consents with user provided consents as per
|
901
901
|
// the configured resolution strategy
|
902
|
-
const matchPredicate=consent=>allowedConsentIds.includes(consent);switch(resolutionStrategy){case'or':return configuredConsents.some(matchPredicate)||configuredConsents.length===0;case'and':default:return configuredConsents.every(matchPredicate);}}catch(err){errorHandler?.onError(err,CUSTOM_CONSENT_MANAGER_PLUGIN,DESTINATION_CONSENT_STATUS_ERROR$
|
902
|
+
const matchPredicate=consent=>allowedConsentIds.includes(consent);switch(resolutionStrategy){case'or':return configuredConsents.some(matchPredicate)||configuredConsents.length===0;case'and':default:return configuredConsents.every(matchPredicate);}}catch(err){errorHandler?.onError(err,CUSTOM_CONSENT_MANAGER_PLUGIN,DESTINATION_CONSENT_STATUS_ERROR$3);return true;}}}});
|
903
903
|
|
904
|
-
const DIR_NAME$
|
904
|
+
const DIR_NAME$1f='AdobeAnalytics';const DISPLAY_NAME$1f='Adobe Analytics';
|
905
905
|
|
906
|
-
const DIR_NAME$
|
906
|
+
const DIR_NAME$1e='Amplitude';const DISPLAY_NAME$1e='Amplitude';
|
907
907
|
|
908
|
-
const DIR_NAME$
|
908
|
+
const DIR_NAME$1d='Appcues';const DISPLAY_NAME$1d='Appcues';
|
909
909
|
|
910
|
-
const DIR_NAME$
|
910
|
+
const DIR_NAME$1c='BingAds';const DISPLAY_NAME$1c='Bing Ads';
|
911
911
|
|
912
|
-
const DIR_NAME$
|
912
|
+
const DIR_NAME$1b='Braze';const DISPLAY_NAME$1b='Braze';
|
913
913
|
|
914
|
-
const DIR_NAME$
|
914
|
+
const DIR_NAME$1a='Bugsnag';const DISPLAY_NAME$1a='Bugsnag';
|
915
915
|
|
916
|
-
const DIR_NAME$
|
916
|
+
const DIR_NAME$19='Chartbeat';const DISPLAY_NAME$19='Chartbeat';
|
917
917
|
|
918
|
-
const DIR_NAME$
|
918
|
+
const DIR_NAME$18='Clevertap';const DISPLAY_NAME$18='CleverTap';
|
919
919
|
|
920
|
-
const DIR_NAME$
|
920
|
+
const DIR_NAME$17='Comscore';const DISPLAY_NAME$17='Comscore';
|
921
921
|
|
922
|
-
const DIR_NAME$
|
922
|
+
const DIR_NAME$16='Criteo';const DISPLAY_NAME$16='Criteo';
|
923
923
|
|
924
|
-
const DIR_NAME$
|
924
|
+
const DIR_NAME$15='CustomerIO';const DISPLAY_NAME$15='Customer IO';
|
925
925
|
|
926
|
-
const DIR_NAME$
|
926
|
+
const DIR_NAME$14='Drip';const DISPLAY_NAME$14='Drip';
|
927
927
|
|
928
|
-
const DIR_NAME$
|
928
|
+
const DIR_NAME$13='FacebookPixel';const DISPLAY_NAME$13='Facebook Pixel';
|
929
929
|
|
930
|
-
const DIR_NAME$
|
930
|
+
const DIR_NAME$12='Fullstory';const DISPLAY_NAME$12='Fullstory';
|
931
931
|
|
932
|
-
const DIR_NAME$
|
932
|
+
const DIR_NAME$11='GA';const DISPLAY_NAME$11='Google Analytics';
|
933
933
|
|
934
|
-
const DIR_NAME
|
934
|
+
const DIR_NAME$10='GA4';const DISPLAY_NAME$10='Google Analytics 4 (GA4)';
|
935
935
|
|
936
|
-
const DIR_NAME
|
936
|
+
const DIR_NAME$$='GA4_V2';const DISPLAY_NAME$$='Google Analytics 4 (GA4) V2';
|
937
937
|
|
938
|
-
const DIR_NAME$
|
938
|
+
const DIR_NAME$_='GoogleAds';const DISPLAY_NAME$_='Google Ads';
|
939
939
|
|
940
|
-
const DIR_NAME$
|
940
|
+
const DIR_NAME$Z='GoogleOptimize';const DISPLAY_NAME$Z='Google Optimize';
|
941
941
|
|
942
|
-
const DIR_NAME$
|
942
|
+
const DIR_NAME$Y='GoogleTagManager';const DISPLAY_NAME$Y='Google Tag Manager';
|
943
943
|
|
944
|
-
const DIR_NAME$
|
944
|
+
const DIR_NAME$X='Heap';const DISPLAY_NAME$X='Heap.io';
|
945
945
|
|
946
|
-
const DIR_NAME$
|
946
|
+
const DIR_NAME$W='Hotjar';const DISPLAY_NAME$W='Hotjar';
|
947
947
|
|
948
|
-
const DIR_NAME$
|
948
|
+
const DIR_NAME$V='HubSpot';const DISPLAY_NAME$V='HubSpot';
|
949
949
|
|
950
|
-
const DIR_NAME$
|
950
|
+
const DIR_NAME$U='INTERCOM';const DISPLAY_NAME$U='Intercom';
|
951
951
|
|
952
|
-
const DIR_NAME$
|
952
|
+
const DIR_NAME$T='Keen';const DISPLAY_NAME$T='Keen';
|
953
953
|
|
954
|
-
const DIR_NAME$
|
954
|
+
const DIR_NAME$S='Kissmetrics';const DISPLAY_NAME$S='Kiss Metrics';
|
955
955
|
|
956
|
-
const DIR_NAME$
|
956
|
+
const DIR_NAME$R='Klaviyo';const DISPLAY_NAME$R='Klaviyo';
|
957
957
|
|
958
|
-
const DIR_NAME$
|
958
|
+
const DIR_NAME$Q='LaunchDarkly';const DISPLAY_NAME$Q='LaunchDarkly';
|
959
959
|
|
960
|
-
const DIR_NAME$
|
960
|
+
const DIR_NAME$P='LinkedInInsightTag';const DISPLAY_NAME$P='Linkedin Insight Tag';
|
961
961
|
|
962
|
-
const DIR_NAME$
|
962
|
+
const DIR_NAME$O='Lotame';const DISPLAY_NAME$O='Lotame';
|
963
963
|
|
964
|
-
const DIR_NAME$
|
964
|
+
const DIR_NAME$N='Lytics';const DISPLAY_NAME$N='Lytics';
|
965
965
|
|
966
|
-
const DIR_NAME$
|
966
|
+
const DIR_NAME$M='Mixpanel';const DISPLAY_NAME$M='Mixpanel';
|
967
967
|
|
968
|
-
const DIR_NAME$
|
968
|
+
const DIR_NAME$L='MoEngage';const DISPLAY_NAME$L='MoEngage';
|
969
969
|
|
970
|
-
const DIR_NAME$
|
970
|
+
const DIR_NAME$K='Optimizely';const DISPLAY_NAME$K='Optimizely Web';
|
971
971
|
|
972
|
-
const DIR_NAME$
|
972
|
+
const DIR_NAME$J='Pendo';const DISPLAY_NAME$J='Pendo';
|
973
973
|
|
974
|
-
const DIR_NAME$
|
974
|
+
const DIR_NAME$I='PinterestTag';const DISPLAY_NAME$I='Pinterest Tag';
|
975
975
|
|
976
|
-
const DIR_NAME$
|
976
|
+
const DIR_NAME$H='PostAffiliatePro';const DISPLAY_NAME$H='Post Affiliate Pro';
|
977
977
|
|
978
|
-
const DIR_NAME$
|
978
|
+
const DIR_NAME$G='Posthog';const DISPLAY_NAME$G='PostHog';
|
979
979
|
|
980
|
-
const DIR_NAME$
|
980
|
+
const DIR_NAME$F='ProfitWell';const DISPLAY_NAME$F='ProfitWell';
|
981
981
|
|
982
|
-
const DIR_NAME$
|
982
|
+
const DIR_NAME$E='Qualtrics';const DISPLAY_NAME$E='Qualtrics';
|
983
983
|
|
984
|
-
const DIR_NAME$
|
984
|
+
const DIR_NAME$D='QuantumMetric';const DISPLAY_NAME$D='Quantum Metric';
|
985
985
|
|
986
|
-
const DIR_NAME$
|
986
|
+
const DIR_NAME$C='RedditPixel';const DISPLAY_NAME$C='Reddit Pixel';
|
987
987
|
|
988
|
-
const DIR_NAME$
|
988
|
+
const DIR_NAME$B='Sentry';const DISPLAY_NAME$B='Sentry';
|
989
989
|
|
990
|
-
const DIR_NAME$
|
990
|
+
const DIR_NAME$A='SnapPixel';const DISPLAY_NAME$A='Snap Pixel';
|
991
991
|
|
992
|
-
const DIR_NAME$
|
992
|
+
const DIR_NAME$z='TVSquared';const DISPLAY_NAME$z='TVSquared';
|
993
993
|
|
994
|
-
const DIR_NAME$
|
994
|
+
const DIR_NAME$y='VWO';const DISPLAY_NAME$y='VWO';
|
995
995
|
|
996
|
-
const DIR_NAME$
|
996
|
+
const DIR_NAME$x='GA360';const DISPLAY_NAME$x='Google Analytics 360';
|
997
997
|
|
998
|
-
const DIR_NAME$
|
998
|
+
const DIR_NAME$w='Adroll';const DISPLAY_NAME$w='Adroll';
|
999
999
|
|
1000
|
-
const DIR_NAME$
|
1000
|
+
const DIR_NAME$v='DCMFloodlight';const DISPLAY_NAME$v='DCM Floodlight';
|
1001
1001
|
|
1002
|
-
const DIR_NAME$
|
1002
|
+
const DIR_NAME$u='Matomo';const DISPLAY_NAME$u='Matomo';
|
1003
1003
|
|
1004
|
-
const DIR_NAME$
|
1004
|
+
const DIR_NAME$t='Vero';const DISPLAY_NAME$t='Vero';
|
1005
1005
|
|
1006
|
-
const DIR_NAME$
|
1006
|
+
const DIR_NAME$s='Mouseflow';const DISPLAY_NAME$s='Mouseflow';
|
1007
1007
|
|
1008
|
-
const DIR_NAME$
|
1008
|
+
const DIR_NAME$r='Rockerbox';const DISPLAY_NAME$r='Rockerbox';
|
1009
1009
|
|
1010
|
-
const DIR_NAME$
|
1010
|
+
const DIR_NAME$q='ConvertFlow';const DISPLAY_NAME$q='ConvertFlow';
|
1011
1011
|
|
1012
|
-
const DIR_NAME$
|
1012
|
+
const DIR_NAME$p='SnapEngage';const DISPLAY_NAME$p='SnapEngage';
|
1013
1013
|
|
1014
|
-
const DIR_NAME$
|
1014
|
+
const DIR_NAME$o='LiveChat';const DISPLAY_NAME$o='LiveChat';
|
1015
1015
|
|
1016
|
-
const DIR_NAME$
|
1016
|
+
const DIR_NAME$n='Shynet';const DISPLAY_NAME$n='Shynet';
|
1017
1017
|
|
1018
|
-
const DIR_NAME$
|
1018
|
+
const DIR_NAME$m='Woopra';const DISPLAY_NAME$m='Woopra';
|
1019
1019
|
|
1020
|
-
const DIR_NAME$
|
1020
|
+
const DIR_NAME$l='RollBar';const DISPLAY_NAME$l='RollBar';
|
1021
1021
|
|
1022
|
-
const DIR_NAME$
|
1022
|
+
const DIR_NAME$k='QuoraPixel';const DISPLAY_NAME$k='Quora Pixel';
|
1023
1023
|
|
1024
|
-
const DIR_NAME$
|
1024
|
+
const DIR_NAME$j='June';const DISPLAY_NAME$j='JUNE';
|
1025
1025
|
|
1026
|
-
const DIR_NAME$
|
1026
|
+
const DIR_NAME$i='Engage';const DISPLAY_NAME$i='Engage';
|
1027
1027
|
|
1028
|
-
const DIR_NAME$
|
1028
|
+
const DIR_NAME$h='Iterable';const DISPLAY_NAME$h='Iterable';
|
1029
1029
|
|
1030
|
-
const DIR_NAME$
|
1030
|
+
const DIR_NAME$g='YandexMetrica';const DISPLAY_NAME$g='Yandex.Metrica';
|
1031
1031
|
|
1032
|
-
const DIR_NAME$
|
1032
|
+
const DIR_NAME$f='Refiner';const DISPLAY_NAME$f='Refiner';
|
1033
1033
|
|
1034
|
-
const DIR_NAME$
|
1034
|
+
const DIR_NAME$e='Qualaroo';const DISPLAY_NAME$e='Qualaroo';
|
1035
1035
|
|
1036
|
-
const DIR_NAME$
|
1036
|
+
const DIR_NAME$d='Podsights';const DISPLAY_NAME$d='Podsights';
|
1037
1037
|
|
1038
|
-
const DIR_NAME$
|
1038
|
+
const DIR_NAME$c='Axeptio';const DISPLAY_NAME$c='Axeptio';
|
1039
1039
|
|
1040
|
-
const DIR_NAME$
|
1040
|
+
const DIR_NAME$b='Satismeter';const DISPLAY_NAME$b='Satismeter';
|
1041
1041
|
|
1042
|
-
const DIR_NAME$
|
1042
|
+
const DIR_NAME$a='MicrosoftClarity';const DISPLAY_NAME$a='Microsoft Clarity';
|
1043
1043
|
|
1044
|
-
const DIR_NAME$
|
1044
|
+
const DIR_NAME$9='Sendinblue';const DISPLAY_NAME$9='Sendinblue';
|
1045
1045
|
|
1046
|
-
const DIR_NAME$
|
1046
|
+
const DIR_NAME$8='Olark';const DISPLAY_NAME$8='Olark';
|
1047
1047
|
|
1048
|
-
const DIR_NAME$
|
1048
|
+
const DIR_NAME$7='Lemnisk';const DISPLAY_NAME$7='Lemnisk';
|
1049
1049
|
|
1050
|
-
const DIR_NAME$
|
1050
|
+
const DIR_NAME$6='TiktokAds';const DISPLAY_NAME$6='TikTok Ads';
|
1051
1051
|
|
1052
|
-
const DIR_NAME$
|
1052
|
+
const DIR_NAME$5='ActiveCampaign';const DISPLAY_NAME$5='Active Campaign';
|
1053
1053
|
|
1054
|
-
const DIR_NAME$
|
1054
|
+
const DIR_NAME$4='Sprig';const DISPLAY_NAME$4='Sprig';
|
1055
1055
|
|
1056
|
-
const DIR_NAME$
|
1056
|
+
const DIR_NAME$3='SpotifyPixel';const DISPLAY_NAME$3='Spotify Pixel';
|
1057
1057
|
|
1058
|
-
const DIR_NAME$
|
1058
|
+
const DIR_NAME$2='CommandBar';const DISPLAY_NAME$2='CommandBar';
|
1059
1059
|
|
1060
|
-
const DIR_NAME='Ninetailed';const DISPLAY_NAME='Ninetailed';
|
1060
|
+
const DIR_NAME$1='Ninetailed';const DISPLAY_NAME$1='Ninetailed';
|
1061
|
+
|
1062
|
+
const DIR_NAME='XPixel';const DISPLAY_NAME='XPixel';
|
1061
1063
|
|
1062
1064
|
// map of the destination display names to the destination directory names
|
1063
|
-
const destDisplayNamesToFileNamesMap={[DISPLAY_NAME$
|
1065
|
+
const destDisplayNamesToFileNamesMap={[DISPLAY_NAME$V]:DIR_NAME$V,[DISPLAY_NAME$11]:DIR_NAME$11,[DISPLAY_NAME$W]:DIR_NAME$W,[DISPLAY_NAME$_]:DIR_NAME$_,[DISPLAY_NAME$y]:DIR_NAME$y,[DISPLAY_NAME$Y]:DIR_NAME$Y,[DISPLAY_NAME$1b]:DIR_NAME$1b,[DISPLAY_NAME$U]:DIR_NAME$U,[DISPLAY_NAME$T]:DIR_NAME$T,[DISPLAY_NAME$S]:DIR_NAME$S,[DISPLAY_NAME$15]:DIR_NAME$15,[DISPLAY_NAME$19]:DIR_NAME$19,[DISPLAY_NAME$17]:DIR_NAME$17,[DISPLAY_NAME$13]:DIR_NAME$13,[DISPLAY_NAME$O]:DIR_NAME$O,[DISPLAY_NAME$K]:DIR_NAME$K,[DISPLAY_NAME$1a]:DIR_NAME$1a,[DISPLAY_NAME$12]:DIR_NAME$12,[DISPLAY_NAME$z]:DIR_NAME$z,[DISPLAY_NAME$10]:DIR_NAME$10,[DISPLAY_NAME$$]:DIR_NAME$$,[DISPLAY_NAME$L]:DIR_NAME$L,[DISPLAY_NAME$1e]:DIR_NAME$1e,[DISPLAY_NAME$J]:DIR_NAME$J,[DISPLAY_NAME$N]:DIR_NAME$N,[DISPLAY_NAME$1d]:DIR_NAME$1d,[DISPLAY_NAME$G]:DIR_NAME$G,[DISPLAY_NAME$R]:DIR_NAME$R,[DISPLAY_NAME$18]:DIR_NAME$18,[DISPLAY_NAME$1c]:DIR_NAME$1c,[DISPLAY_NAME$I]:DIR_NAME$I,[DISPLAY_NAME$1f]:DIR_NAME$1f,[DISPLAY_NAME$P]:DIR_NAME$P,[DISPLAY_NAME$C]:DIR_NAME$C,[DISPLAY_NAME$14]:DIR_NAME$14,[DISPLAY_NAME$X]:DIR_NAME$X,[DISPLAY_NAME$16]:DIR_NAME$16,[DISPLAY_NAME$M]:DIR_NAME$M,[DISPLAY_NAME$E]:DIR_NAME$E,[DISPLAY_NAME$F]:DIR_NAME$F,[DISPLAY_NAME$B]:DIR_NAME$B,[DISPLAY_NAME$D]:DIR_NAME$D,[DISPLAY_NAME$A]:DIR_NAME$A,[DISPLAY_NAME$H]:DIR_NAME$H,[DISPLAY_NAME$Z]:DIR_NAME$Z,[DISPLAY_NAME$Q]:DIR_NAME$Q,[DISPLAY_NAME$x]:DIR_NAME$x,[DISPLAY_NAME$w]:DIR_NAME$w,[DISPLAY_NAME$v]:DIR_NAME$v,[DISPLAY_NAME$u]:DIR_NAME$u,[DISPLAY_NAME$t]:DIR_NAME$t,[DISPLAY_NAME$s]:DIR_NAME$s,[DISPLAY_NAME$r]:DIR_NAME$r,[DISPLAY_NAME$q]:DIR_NAME$q,[DISPLAY_NAME$p]:DIR_NAME$p,[DISPLAY_NAME$o]:DIR_NAME$o,[DISPLAY_NAME$n]:DIR_NAME$n,[DISPLAY_NAME$m]:DIR_NAME$m,[DISPLAY_NAME$l]:DIR_NAME$l,[DISPLAY_NAME$k]:DIR_NAME$k,[DISPLAY_NAME$j]:DIR_NAME$j,[DISPLAY_NAME$i]:DIR_NAME$i,[DISPLAY_NAME$h]:DIR_NAME$h,[DISPLAY_NAME$g]:DIR_NAME$g,[DISPLAY_NAME$f]:DIR_NAME$f,[DISPLAY_NAME$e]:DIR_NAME$e,[DISPLAY_NAME$d]:DIR_NAME$d,[DISPLAY_NAME$c]:DIR_NAME$c,[DISPLAY_NAME$b]:DIR_NAME$b,[DISPLAY_NAME$a]:DIR_NAME$a,[DISPLAY_NAME$9]:DIR_NAME$9,[DISPLAY_NAME$8]:DIR_NAME$8,[DISPLAY_NAME$7]:DIR_NAME$7,[DISPLAY_NAME$6]:DIR_NAME$6,[DISPLAY_NAME$5]:DIR_NAME$5,[DISPLAY_NAME$4]:DIR_NAME$4,[DISPLAY_NAME$3]:DIR_NAME$3,[DISPLAY_NAME$2]:DIR_NAME$2,[DISPLAY_NAME$1]:DIR_NAME$1,[DISPLAY_NAME]:DIR_NAME};
|
1064
1066
|
|
1065
1067
|
const isDestIntgConfigTruthy=destIntgConfig=>!isUndefined(destIntgConfig)&&Boolean(destIntgConfig)===true;const isDestIntgConfigFalsy=destIntgConfig=>!isUndefined(destIntgConfig)&&Boolean(destIntgConfig)===false;/**
|
1066
1068
|
* Filters the destinations that should not be loaded or forwarded events to based on the integration options (load or events API)
|
@@ -1093,7 +1095,7 @@ const DESTINATION_NOT_SUPPORTED_ERROR=destUserFriendlyId=>`Destination ${destUse
|
|
1093
1095
|
if(isHybridModeDestination(initializedDestination)){state.nativeDestinations.integrationsConfig.value=getCumulativeIntegrationsConfig(initializedDestination,state.nativeDestinations.integrationsConfig.value,errorHandler);}state.nativeDestinations.initializedDestinations.value=[...state.nativeDestinations.initializedDestinations.value,initializedDestination];}).catch(err=>{state.nativeDestinations.failedDestinations.value=[...state.nativeDestinations.failedDestinations.value,dest];// The error message is already formatted in the isDestinationReady function
|
1094
1096
|
logger?.error(err);});}catch(err){state.nativeDestinations.failedDestinations.value=[...state.nativeDestinations.failedDestinations.value,dest];errorHandler?.onError(err,DEVICE_MODE_DESTINATIONS_PLUGIN,DESTINATION_INIT_ERROR(dest.userFriendlyId));}};
|
1095
1097
|
|
1096
|
-
const pluginName$
|
1098
|
+
const pluginName$c='DeviceModeDestinations';const DeviceModeDestinations=()=>({name:pluginName$c,initialize:state=>{state.plugins.loadedPlugins.value=[...state.plugins.loadedPlugins.value,pluginName$c];},nativeDestinations:{setActiveDestinations(state,pluginsManager,errorHandler,logger){state.nativeDestinations.loadIntegration.value=state.loadOptions.value.loadIntegration;// Filter destination that doesn't have mapping config-->Integration names
|
1097
1099
|
const configSupportedDestinations=state.nativeDestinations.configuredDestinations.value.filter(configDest=>{if(destDisplayNamesToFileNamesMap[configDest.displayName]){return true;}errorHandler?.onError(new Error(DESTINATION_NOT_SUPPORTED_ERROR(configDest.userFriendlyId)),DEVICE_MODE_DESTINATIONS_PLUGIN);return false;});// Filter destinations that are disabled through load or consent API options
|
1098
1100
|
const destinationsToLoad=filterDestinations(state.consents.postConsent.value?.integrations??state.nativeDestinations.loadOnlyIntegrations.value,configSupportedDestinations);const consentedDestinations=destinationsToLoad.filter(dest=>// if consent manager is not configured, then default to load the destination
|
1099
1101
|
pluginsManager.invokeSingle(`consentManager.isDestinationConsented`,state,dest.config,errorHandler,logger)??true);state.nativeDestinations.activeDestinations.value=consentedDestinations;},load(state,externalSrcLoader,errorHandler,logger,externalScriptOnLoad){const integrationsCDNPath=state.lifecycle.integrationsCDNPath.value;const activeDestinations=state.nativeDestinations.activeDestinations.value;activeDestinations.forEach(dest=>{const sdkName=destDisplayNamesToFileNamesMap[dest.displayName];const destSDKIdentifier=`${sdkName}_RS`;// this is the name of the object loaded on the window
|
@@ -1111,7 +1113,7 @@ const DMT_TRANSFORMATION_UNSUCCESSFUL_ERROR=(context,displayName,reason,action)=
|
|
1111
1113
|
*/const createPayload=(event,destinationIds,token)=>{const orderNo=Date.now();const payload={metadata:{'Custom-Authorization':token},batch:[{orderNo,destinationIds,event}]};return payload;};const sendTransformedEventToDestinations=(state,pluginsManager,destinationIds,result,status,event,errorHandler,logger)=>{const NATIVE_DEST_EXT_POINT='destinationsEventsQueue.enqueueEventToDestination';const ACTION_TO_SEND_UNTRANSFORMED_EVENT='Sending untransformed event';const ACTION_TO_DROP_EVENT='Dropping the event';const destinations=state.nativeDestinations.initializedDestinations.value.filter(d=>d&&destinationIds.includes(d.id));destinations.forEach(dest=>{try{const eventsToSend=[];switch(status){case 200:{const response=JSON.parse(result);const destTransformedResult=response.transformedBatch.find(e=>e.id===dest.id);destTransformedResult?.payload.forEach(tEvent=>{if(tEvent.status==='200'){eventsToSend.push(tEvent.event);}else {let reason='Unknown';if(tEvent.status==='410'){reason='Transformation is not available';}let action=ACTION_TO_DROP_EVENT;if(dest.propagateEventsUntransformedOnError===true){action=ACTION_TO_SEND_UNTRANSFORMED_EVENT;eventsToSend.push(event);logger?.warn(DMT_TRANSFORMATION_UNSUCCESSFUL_ERROR(DMT_PLUGIN,dest.displayName,reason,action));}else {logger?.error(DMT_TRANSFORMATION_UNSUCCESSFUL_ERROR(DMT_PLUGIN,dest.displayName,reason,action));}}});break;}// Transformation server access denied
|
1112
1114
|
case 404:{logger?.warn(DMT_SERVER_ACCESS_DENIED_WARNING(DMT_PLUGIN));eventsToSend.push(event);break;}default:{if(dest.propagateEventsUntransformedOnError===true){logger?.warn(DMT_REQUEST_FAILED_ERROR(DMT_PLUGIN,dest.displayName,status,ACTION_TO_SEND_UNTRANSFORMED_EVENT));eventsToSend.push(event);}else {logger?.error(DMT_REQUEST_FAILED_ERROR(DMT_PLUGIN,dest.displayName,status,ACTION_TO_DROP_EVENT));}break;}}eventsToSend?.forEach(tEvent=>{if(isNonEmptyObject(tEvent)){pluginsManager.invokeSingle(NATIVE_DEST_EXT_POINT,state,tEvent,dest,errorHandler,logger);}});}catch(e){errorHandler?.onError(e,DMT_PLUGIN,DMT_EXCEPTION(dest.displayName));}});};
|
1113
1115
|
|
1114
|
-
const pluginName$
|
1116
|
+
const pluginName$b='DeviceModeTransformation';const DeviceModeTransformation=()=>({name:pluginName$b,deps:[],initialize:state=>{state.plugins.loadedPlugins.value=[...state.plugins.loadedPlugins.value,pluginName$b];},transformEvent:{init(state,pluginsManager,httpClient,storeManager,errorHandler,logger){const writeKey=state.lifecycle.writeKey.value;httpClient.setAuthHeader(writeKey);const eventsQueue=new RetryQueue(// adding write key to the queue name to avoid conflicts
|
1115
1117
|
`${QUEUE_NAME$2}_${writeKey}`,DEFAULT_TRANSFORMATION_QUEUE_OPTIONS,(item,done,attemptNumber,maxRetryAttempts)=>{const payload=createPayload(item.event,item.destinationIds,item.token);httpClient.getAsyncData({url:`${state.lifecycle.activeDataplaneUrl.value}/transform`,options:{method:'POST',data:getDMTDeliveryPayload(payload),sendRawData:true},isRawResponse:true,timeout:REQUEST_TIMEOUT_MS$2,callback:(result,details)=>{// null means item will not be requeued
|
1116
1118
|
const queueErrResp=isErrRetryable(details)?details:null;if(!queueErrResp||attemptNumber===maxRetryAttempts){sendTransformedEventToDestinations(state,pluginsManager,item.destinationIds,result,details?.xhr?.status,item.event,errorHandler,logger);}done(queueErrResp,result);}});},storeManager,MEMORY_STORAGE);return eventsQueue;},enqueue(state,eventsQueue,event,destinations){const destinationIds=destinations.map(d=>d.id);eventsQueue.addItem({event,destinationIds,token:state.session.authToken.value});}}});
|
1117
1119
|
|
@@ -1187,7 +1189,7 @@ const getStacktrace=error=>{if(hasStack(error))return ErrorStackParser.parse(err
|
|
1187
1189
|
|
1188
1190
|
const INVALID_SOURCE_CONFIG_ERROR=`Invalid source configuration or source id.`;
|
1189
1191
|
|
1190
|
-
const pluginName$
|
1192
|
+
const pluginName$a='ErrorReporting';const ErrorReporting=()=>({name:pluginName$a,deps:[],initialize:state=>{state.plugins.loadedPlugins.value=[...state.plugins.loadedPlugins.value,pluginName$a];state.reporting.isErrorReportingPluginLoaded.value=true;if(state.reporting.breadcrumbs?.value){state.reporting.breadcrumbs.value=[createNewBreadcrumb('Error Reporting Plugin Loaded')];}},errorReporting:{// This extension point is deprecated
|
1191
1193
|
// TODO: Remove this in the next major release
|
1192
1194
|
init:(state,pluginEngine,externalSrcLoader,logger,isInvokedFromLatestCore)=>{if(isInvokedFromLatestCore){return undefined;}if(!state.source.value?.config||!state.source.value?.id){return Promise.reject(new Error(INVALID_SOURCE_CONFIG_ERROR));}return pluginEngine.invokeSingle('errorReportingProvider.init',state,externalSrcLoader,logger);},notify:(pluginEngine,client,error,state,logger,httpClient,errorState)=>{if(httpClient){const{component,normalizedError}=getConfigForPayloadCreation(error,errorState?.severityReason.type);// Generate the error payload
|
1193
1195
|
const errorPayload=ErrorFormat.create(normalizedError,component,logger);if(!errorPayload||!isAllowedToBeNotified(errorPayload.errors[0])){return;}// filter errors
|
@@ -1204,7 +1206,7 @@ const getSegmentAnonymousId=getStorageEngine=>{let anonymousId;/**
|
|
1204
1206
|
*/const lsEngine=getStorageEngine(LOCAL_STORAGE);if(lsEngine?.isEnabled){anonymousId=lsEngine.getItem(externallyLoadedSessionStorageKeys.segment);}// If anonymousId is not present in local storage and find it in cookies
|
1205
1207
|
const csEngine=getStorageEngine(COOKIE_STORAGE);if(!anonymousId&&csEngine?.isEnabled){anonymousId=csEngine.getItem(externallyLoadedSessionStorageKeys.segment);}return anonymousId;};
|
1206
1208
|
|
1207
|
-
const pluginName$
|
1209
|
+
const pluginName$9='ExternalAnonymousId';const ExternalAnonymousId=()=>({name:pluginName$9,initialize:state=>{state.plugins.loadedPlugins.value=[...state.plugins.loadedPlugins.value,pluginName$9];},storage:{getAnonymousId(getStorageEngine,options){let anonymousId;if(options?.autoCapture?.enabled&&options.autoCapture.source){const source=options.autoCapture.source.toLowerCase();if(!Object.keys(externallyLoadedSessionStorageKeys).includes(source)){return anonymousId;}// eslint-disable-next-line sonarjs/no-small-switch
|
1208
1210
|
switch(source){case'segment':anonymousId=getSegmentAnonymousId(getStorageEngine);break;}}return anonymousId;}}});
|
1209
1211
|
|
1210
1212
|
const AMP_LINKER_ANONYMOUS_ID_KEY='rs_amp_id';
|
@@ -1295,7 +1297,42 @@ return crc.toString(36);};/**
|
|
1295
1297
|
* @return {?Object<string, string>}
|
1296
1298
|
*/const parseLinker=value=>{const linkerObj=parseLinkerParamValue(value);if(!linkerObj){return null;}const{checksum,serializedIds}=linkerObj;if(!serializedIds||!checksum||!isCheckSumValid(serializedIds,checksum)){return null;}return deserialize(serializedIds);};
|
1297
1299
|
|
1298
|
-
const pluginName$
|
1300
|
+
const pluginName$8='GoogleLinker';const GoogleLinker=()=>({name:pluginName$8,initialize:state=>{state.plugins.loadedPlugins.value=[...state.plugins.loadedPlugins.value,pluginName$8];},userSession:{anonymousIdGoogleLinker(rudderAmpLinkerParam){if(!rudderAmpLinkerParam){return null;}const parsedAnonymousIdObj=rudderAmpLinkerParam?parseLinker(rudderAmpLinkerParam):null;return parsedAnonymousIdObj?parsedAnonymousIdObj[AMP_LINKER_ANONYMOUS_ID_KEY]:null;}}});
|
1301
|
+
|
1302
|
+
const IUBENDA_CONSENT_COOKIE_READ_ERROR=context=>`${context}${LOG_CONTEXT_SEPARATOR}Failed to read the consent cookie.`;const IUBENDA_CONSENT_COOKIE_PARSE_ERROR=context=>`${context}${LOG_CONTEXT_SEPARATOR}Failed to parse the consent cookie.`;const DESTINATION_CONSENT_STATUS_ERROR$2=`Failed to determine the consent status for the destination. Please check the destination configuration and try again.`;
|
1303
|
+
|
1304
|
+
const IUBENDA_CONSENT_MANAGER_PLUGIN='IubendaConsentManagerPlugin';const IUBENDA_CONSENT_COOKIE_NAME_PATTERN=/^_iub_cs-\d+$/;
|
1305
|
+
|
1306
|
+
const getIubendaCookieName=logger=>{try{// Retrieve cookies as a string and split them into an array
|
1307
|
+
const cookies=document.cookie.split('; ');// Find the cookie that matches the iubenda cookie pattern
|
1308
|
+
const matchedCookie=cookies.find(cookie=>{const[name]=cookie.split('=');return IUBENDA_CONSENT_COOKIE_NAME_PATTERN.test((name||'').trim());});if(!matchedCookie){throw new Error('Iubenda Cookie not found with the specified pattern.');}// Extract and return the cookie name
|
1309
|
+
const[name]=matchedCookie.split('=');return name||'';}catch(err){logger?.error(IUBENDA_CONSENT_COOKIE_READ_ERROR(IUBENDA_CONSENT_MANAGER_PLUGIN),err);return '';}};/**
|
1310
|
+
* Gets the consent data from the Iubenda's consent cookie
|
1311
|
+
* @param storeManager Store manager instance
|
1312
|
+
* @param logger Logger instance
|
1313
|
+
* @returns Consent data from the consent cookie
|
1314
|
+
*/const getIubendaConsentData=(storeManager,logger)=>{let rawConsentCookieData=null;try{const dataStore=storeManager?.setStore({id:IUBENDA_CONSENT_MANAGER_PLUGIN,name:IUBENDA_CONSENT_MANAGER_PLUGIN,type:COOKIE_STORAGE});rawConsentCookieData=dataStore?.engine.getItem(getIubendaCookieName(logger));}catch(err){logger?.error(IUBENDA_CONSENT_COOKIE_READ_ERROR(IUBENDA_CONSENT_MANAGER_PLUGIN),err);return undefined;}if(isNullOrUndefined(rawConsentCookieData)){return undefined;}// Decode and parse the cookie data to JSON
|
1315
|
+
let consentCookieData;try{consentCookieData=JSON.parse(decodeURIComponent(rawConsentCookieData));}catch(err){logger?.error(IUBENDA_CONSENT_COOKIE_PARSE_ERROR(IUBENDA_CONSENT_MANAGER_PLUGIN),err);return undefined;}if(!consentCookieData){return undefined;}// Convert the cookie data to consent data
|
1316
|
+
const consentPurposes=consentCookieData.purposes;return consentPurposes;};/**
|
1317
|
+
* Gets the consent data in the format expected by the application state
|
1318
|
+
* @param iubendaConsentData Consent data derived from the consent cookie
|
1319
|
+
* @returns Consent data
|
1320
|
+
*/const getConsentData$1=iubendaConsentData=>{const allowedConsentIds=[];const deniedConsentIds=[];if(iubendaConsentData){Object.entries(iubendaConsentData).forEach(e=>{const purposeId=e[0];const isConsented=e[1];if(isConsented){allowedConsentIds.push(purposeId);}else {deniedConsentIds.push(purposeId);}});}return {allowedConsentIds,deniedConsentIds};};const updateConsentStateFromData$1=(state,iubendaConsentData)=>{const consentData=getConsentData$1(iubendaConsentData);state.consents.initialized.value=isDefined(iubendaConsentData);state.consents.data.value=consentData;};
|
1321
|
+
|
1322
|
+
const pluginName$7='IubendaConsentManager';const IubendaConsentManager=()=>({name:pluginName$7,deps:[],initialize:state=>{state.plugins.loadedPlugins.value=[...state.plugins.loadedPlugins.value,pluginName$7];},consentManager:{init(state,logger){// getIubendaUserConsentedPurposes returns current iubenda opted-in purposes
|
1323
|
+
// This will be helpful for debugging
|
1324
|
+
globalThis.getIubendaUserConsentedPurposes=()=>state.consents.data.value.allowedConsentIds?.slice();// getIubendaUserDeniedPurposes returns current Iubenda opted-out purposes
|
1325
|
+
// This will be helpful for debugging
|
1326
|
+
globalThis.getIubendaUserDeniedPurposes=()=>state.consents.data.value.deniedConsentIds?.slice();// updateIubendaConsent callback function to update current consent purpose state
|
1327
|
+
globalThis.updateIubendaConsent=iubendaConsentData=>{updateConsentStateFromData$1(state,iubendaConsentData);};},updateConsentsInfo(state,storeManager,logger){// retrieve consent data and update the state
|
1328
|
+
let iubendaConsentData;// From window
|
1329
|
+
if(!isUndefined(globalThis._iub.cs.consent.purposes)){iubendaConsentData=globalThis._iub.cs.consent.purposes;// From cookie
|
1330
|
+
}else {iubendaConsentData=getIubendaConsentData(storeManager,logger);}updateConsentStateFromData$1(state,iubendaConsentData);},isDestinationConsented(state,destConfig,errorHandler,logger){if(!state.consents.initialized.value){return true;}const allowedConsentIds=state.consents.data.value.allowedConsentIds;const matchPredicate=consent=>allowedConsentIds.includes(consent);try{const{consentManagement}=destConfig;// If the destination does not have consent management config, events should be sent.
|
1331
|
+
if(consentManagement){// Get the corresponding consents for the destination
|
1332
|
+
const cmpConfig=consentManagement.find(c=>c.provider===state.consents.provider.value);// If there are no consents configured for the destination for the current provider, events should be sent.
|
1333
|
+
if(!cmpConfig?.consents){return true;}const configuredConsents=cmpConfig.consents.map(c=>c.consent.trim()).filter(n=>n);const resolutionStrategy=cmpConfig.resolutionStrategy??state.consents.resolutionStrategy.value;// match the configured consents with user provided consents as per
|
1334
|
+
// the configured resolution strategy
|
1335
|
+
switch(resolutionStrategy){case'or':return configuredConsents.some(matchPredicate)||configuredConsents.length===0;case'and':default:return configuredConsents.every(matchPredicate);}}return true;}catch(err){errorHandler?.onError(err,IUBENDA_CONSENT_MANAGER_PLUGIN,DESTINATION_CONSENT_STATUS_ERROR$2);return true;}}}});
|
1299
1336
|
|
1300
1337
|
const KETCH_CONSENT_COOKIE_READ_ERROR=context=>`${context}${LOG_CONTEXT_SEPARATOR}Failed to read the consent cookie.`;const KETCH_CONSENT_COOKIE_PARSE_ERROR=context=>`${context}${LOG_CONTEXT_SEPARATOR}Failed to parse the consent cookie.`;const DESTINATION_CONSENT_STATUS_ERROR$1=`Failed to determine the consent status for the destination. Please check the destination configuration and try again.`;
|
1301
1338
|
|
@@ -2420,7 +2457,7 @@ AnonymousId:toBase64(event.anonymousId)};eventsQueue.addItem({url,headers,event}
|
|
2420
2457
|
|
2421
2458
|
/**
|
2422
2459
|
* Map plugin names to direct code imports from plugins package
|
2423
|
-
*/const getBundledBuildPluginImports=()=>({BeaconQueue,Bugsnag,CustomConsentManager,DeviceModeDestinations,DeviceModeTransformation,ErrorReporting,ExternalAnonymousId,GoogleLinker,KetchConsentManager,NativeDestinationQueue,OneTrustConsentManager,StorageEncryption,StorageEncryptionLegacy,StorageMigrator,XhrQueue});
|
2460
|
+
*/const getBundledBuildPluginImports=()=>({BeaconQueue,Bugsnag,CustomConsentManager,DeviceModeDestinations,DeviceModeTransformation,ErrorReporting,ExternalAnonymousId,GoogleLinker,IubendaConsentManager,KetchConsentManager,NativeDestinationQueue,OneTrustConsentManager,StorageEncryption,StorageEncryptionLegacy,StorageMigrator,XhrQueue});
|
2424
2461
|
|
2425
2462
|
/**
|
2426
2463
|
* Map of mandatory plugin names and direct imports
|
@@ -2756,22 +2793,22 @@ for(const script of scripts){const src=script.getAttribute('src');if(src&&sdkFil
|
|
2756
2793
|
* Updates the reporting state variables from the source config data
|
2757
2794
|
* @param res Source config
|
2758
2795
|
* @param logger Logger instance
|
2759
|
-
*/const updateReportingState=res=>{state.reporting.isErrorReportingEnabled.value=isErrorReportingEnabled(res.source.config)&&!isSDKRunningInChromeExtension();state.reporting.isMetricsReportingEnabled.value=isMetricsReportingEnabled(res.source.config);};const
|
2760
|
-
|
2761
|
-
|
2762
|
-
|
2763
|
-
|
2764
|
-
* 2. If the sameDomainCookiesOnly flag is set to true, then use the exact domain
|
2765
|
-
*/const useExactDomain=isDefined(providedCookieDomain)&&!isWebpageTopLevelDomain(removeLeadingPeriod(providedCookieDomain))||sameDomainCookiesOnly;const dataServiceUrl=getDataServiceUrl(dataServiceEndpoint??DEFAULT_DATA_SERVICE_ENDPOINT,useExactDomain??false);if(isValidURL(dataServiceUrl)){state.serverCookies.dataServiceUrl.value=removeTrailingSlashes(dataServiceUrl);const curHost=getDomain(window.location.href);const dataServiceHost=getDomain(dataServiceUrl);// If the current host is different from the data service host, then it is a cross-site request
|
2796
|
+
*/const updateReportingState=res=>{state.reporting.isErrorReportingEnabled.value=isErrorReportingEnabled(res.source.config)&&!isSDKRunningInChromeExtension();state.reporting.isMetricsReportingEnabled.value=isMetricsReportingEnabled(res.source.config);};const getServerSideCookiesStateData=logger=>{const{useServerSideCookies,dataServiceEndpoint,storage:storageOptsFromLoad,setCookieDomain,sameDomainCookiesOnly}=state.loadOptions.value;let cookieOptions=storageOptsFromLoad?.cookie;let sscEnabled=false;let finalDataServiceUrl;if(useServerSideCookies){sscEnabled=useServerSideCookies;const providedCookieDomain=cookieOptions.domain??setCookieDomain;/**
|
2797
|
+
* Based on the following conditions, we decide whether to use the exact domain or not to determine the data service URL:
|
2798
|
+
* 1. If the cookie domain is provided and it is not a top-level domain, then use the exact domain
|
2799
|
+
* 2. If the sameDomainCookiesOnly flag is set to true, then use the exact domain
|
2800
|
+
*/const useExactDomain=isDefined(providedCookieDomain)&&!isWebpageTopLevelDomain(removeLeadingPeriod(providedCookieDomain))||sameDomainCookiesOnly;const dataServiceUrl=getDataServiceUrl(dataServiceEndpoint??DEFAULT_DATA_SERVICE_ENDPOINT,useExactDomain);if(isValidURL(dataServiceUrl)){finalDataServiceUrl=removeTrailingSlashes(dataServiceUrl);const curHost=getDomain(window.location.href);const dataServiceHost=getDomain(dataServiceUrl);// If the current host is different from the data service host, then it is a cross-site request
|
2766
2801
|
// For server-side cookies to work, we need to set the SameSite=None and Secure attributes
|
2767
2802
|
// One round of cookie options manipulation is taking place here
|
2768
2803
|
// Based on these(setCookieDomain/storage.cookie or sameDomainCookiesOnly) two load-options, final cookie options are set in the storage module
|
2769
2804
|
// TODO: Refactor the cookie options manipulation logic in one place
|
2770
2805
|
if(curHost!==dataServiceHost){cookieOptions={...cookieOptions,samesite:'None',secure:true};}/**
|
2771
|
-
|
2772
|
-
|
2773
|
-
|
2774
|
-
|
2806
|
+
* If the sameDomainCookiesOnly flag is not set and the cookie domain is provided(not top level domain),
|
2807
|
+
* and the data service host is different from the provided cookie domain, then we disable server-side cookies
|
2808
|
+
* ex: provided cookie domain: 'random.com', data service host: 'sub.example.com'
|
2809
|
+
*/if(!sameDomainCookiesOnly&&useExactDomain&&dataServiceHost!==removeLeadingPeriod(providedCookieDomain)){sscEnabled=false;logger?.warn(SERVER_SIDE_COOKIE_FEATURE_OVERRIDE_WARNING(CONFIG_MANAGER,providedCookieDomain,dataServiceHost));}}else {sscEnabled=false;}}return {sscEnabled,cookieOptions,finalDataServiceUrl};};const updateStorageStateFromLoadOptions=logger=>{const{storage:storageOptsFromLoad}=state.loadOptions.value;let storageType=storageOptsFromLoad?.type;if(isDefined(storageType)&&!isValidStorageType(storageType)){logger?.warn(STORAGE_TYPE_VALIDATION_WARNING(CONFIG_MANAGER,storageType,DEFAULT_STORAGE_TYPE));storageType=DEFAULT_STORAGE_TYPE;}let storageEncryptionVersion=storageOptsFromLoad?.encryption?.version;const encryptionPluginName=storageEncryptionVersion&&StorageEncryptionVersionsToPluginNameMap[storageEncryptionVersion];if(!isUndefined(storageEncryptionVersion)&&isUndefined(encryptionPluginName)){// set the default encryption plugin
|
2810
|
+
logger?.warn(UNSUPPORTED_STORAGE_ENCRYPTION_VERSION_WARNING(CONFIG_MANAGER,storageEncryptionVersion,StorageEncryptionVersionsToPluginNameMap,DEFAULT_STORAGE_ENCRYPTION_VERSION));storageEncryptionVersion=DEFAULT_STORAGE_ENCRYPTION_VERSION;}else if(isUndefined(storageEncryptionVersion)){storageEncryptionVersion=DEFAULT_STORAGE_ENCRYPTION_VERSION;}// Allow migration only if the configured encryption version is the default encryption version
|
2811
|
+
const configuredMigrationValue=storageOptsFromLoad?.migrate;const finalMigrationVal=configuredMigrationValue&&storageEncryptionVersion===DEFAULT_STORAGE_ENCRYPTION_VERSION;if(configuredMigrationValue===true&&finalMigrationVal!==configuredMigrationValue){logger?.warn(STORAGE_DATA_MIGRATION_OVERRIDE_WARNING(CONFIG_MANAGER,storageEncryptionVersion,DEFAULT_STORAGE_ENCRYPTION_VERSION));}const{sscEnabled,finalDataServiceUrl,cookieOptions}=getServerSideCookiesStateData(logger);r(()=>{state.storage.type.value=storageType;state.storage.cookie.value=cookieOptions;state.serverCookies.isEnabledServerSideCookies.value=sscEnabled;state.serverCookies.dataServiceUrl.value=finalDataServiceUrl;state.storage.encryptionPluginName.value=StorageEncryptionVersionsToPluginNameMap[storageEncryptionVersion];state.storage.migrate.value=finalMigrationVal;});};const updateConsentsStateFromLoadOptions=logger=>{const{provider,consentManagerPluginName,initialized,enabled,consentsData}=getConsentManagementData(state.loadOptions.value.consentManagement,logger);// Pre-consent
|
2775
2812
|
const preConsentOpts=state.loadOptions.value.preConsent;let storageStrategy=preConsentOpts?.storage?.strategy??DEFAULT_PRE_CONSENT_STORAGE_STRATEGY;const StorageStrategies=['none','session','anonymousId'];if(isDefined(storageStrategy)&&!StorageStrategies.includes(storageStrategy)){storageStrategy=DEFAULT_PRE_CONSENT_STORAGE_STRATEGY;logger?.warn(UNSUPPORTED_PRE_CONSENT_STORAGE_STRATEGY(CONFIG_MANAGER,preConsentOpts?.storage?.strategy,DEFAULT_PRE_CONSENT_STORAGE_STRATEGY));}let eventsDeliveryType=preConsentOpts?.events?.delivery??DEFAULT_PRE_CONSENT_EVENTS_DELIVERY_TYPE;const deliveryTypes=['immediate','buffer'];if(isDefined(eventsDeliveryType)&&!deliveryTypes.includes(eventsDeliveryType)){eventsDeliveryType=DEFAULT_PRE_CONSENT_EVENTS_DELIVERY_TYPE;logger?.warn(UNSUPPORTED_PRE_CONSENT_EVENTS_DELIVERY_TYPE(CONFIG_MANAGER,preConsentOpts?.events?.delivery,DEFAULT_PRE_CONSENT_EVENTS_DELIVERY_TYPE));}r(()=>{state.consents.activeConsentManagerPluginName.value=consentManagerPluginName;state.consents.initialized.value=initialized;state.consents.enabled.value=enabled;state.consents.data.value=consentsData;state.consents.provider.value=provider;state.consents.preConsent.value={// Only enable pre-consent if it is explicitly enabled and
|
2776
2813
|
// if it is not already initialized and
|
2777
2814
|
// if consent management is enabled
|
@@ -3169,10 +3206,10 @@ this.setAnonymousId();}if(noNewSessionStart){return;}if(autoTrack){session.sessi
|
|
3169
3206
|
|
3170
3207
|
/**
|
3171
3208
|
* Plugins to be loaded in the plugins loadOption is not defined
|
3172
|
-
*/const defaultOptionalPluginsList=['BeaconQueue','Bugsnag','CustomConsentManager','DeviceModeDestinations','DeviceModeTransformation','ErrorReporting','ExternalAnonymousId','GoogleLinker','KetchConsentManager','NativeDestinationQueue','OneTrustConsentManager','StorageEncryption','StorageEncryptionLegacy','StorageMigrator','XhrQueue'];
|
3209
|
+
*/const defaultOptionalPluginsList=['BeaconQueue','Bugsnag','CustomConsentManager','DeviceModeDestinations','DeviceModeTransformation','ErrorReporting','ExternalAnonymousId','GoogleLinker','IubendaConsentManager','KetchConsentManager','NativeDestinationQueue','OneTrustConsentManager','StorageEncryption','StorageEncryptionLegacy','StorageMigrator','XhrQueue'];
|
3173
3210
|
|
3174
3211
|
const normalizeLoadOptions=(loadOptionsFromState,loadOptions)=>{// TODO: Maybe add warnings for invalid values
|
3175
|
-
const normalizedLoadOpts=clone(loadOptions);if(!isString(normalizedLoadOpts.setCookieDomain)){delete normalizedLoadOpts.setCookieDomain;}const cookieSameSiteValues=['Strict','Lax','None'];if(!cookieSameSiteValues.includes(normalizedLoadOpts.sameSiteCookie)){delete normalizedLoadOpts.sameSiteCookie;}normalizedLoadOpts.secureCookie=normalizedLoadOpts.secureCookie===true;const uaChTrackLevels=['none','default','full'];if(!uaChTrackLevels.includes(normalizedLoadOpts.uaChTrackLevel)){delete normalizedLoadOpts.uaChTrackLevel;}if(!isNonEmptyObject(normalizedLoadOpts.integrations)){delete normalizedLoadOpts.integrations;}normalizedLoadOpts.plugins=normalizedLoadOpts.plugins??defaultOptionalPluginsList;normalizedLoadOpts.useGlobalIntegrationsConfigInEvents=normalizedLoadOpts.useGlobalIntegrationsConfigInEvents===true;normalizedLoadOpts.bufferDataPlaneEventsUntilReady=normalizedLoadOpts.bufferDataPlaneEventsUntilReady===true;normalizedLoadOpts.sendAdblockPage=normalizedLoadOpts.sendAdblockPage===true;normalizedLoadOpts.useServerSideCookies=normalizedLoadOpts.useServerSideCookies===true;if(normalizedLoadOpts.dataServiceEndpoint&&typeof normalizedLoadOpts.dataServiceEndpoint!=='string'){delete normalizedLoadOpts.dataServiceEndpoint;}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.sendAdblockPageOptions)){delete normalizedLoadOpts.sendAdblockPageOptions;}if(!isDefined(normalizedLoadOpts.loadIntegration)){delete normalizedLoadOpts.loadIntegration;}else {normalizedLoadOpts.loadIntegration=normalizedLoadOpts.loadIntegration===true;}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.storage)){delete normalizedLoadOpts.storage;}else {normalizedLoadOpts.storage=removeUndefinedAndNullValues(normalizedLoadOpts.storage);normalizedLoadOpts.storage.migrate=normalizedLoadOpts.storage?.migrate===true;}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.beaconQueueOptions)){delete normalizedLoadOpts.beaconQueueOptions;}else {normalizedLoadOpts.beaconQueueOptions=removeUndefinedAndNullValues(normalizedLoadOpts.beaconQueueOptions);}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.destinationsQueueOptions)){delete normalizedLoadOpts.destinationsQueueOptions;}else {normalizedLoadOpts.destinationsQueueOptions=removeUndefinedAndNullValues(normalizedLoadOpts.destinationsQueueOptions);}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.queueOptions)){delete normalizedLoadOpts.queueOptions;}else {normalizedLoadOpts.queueOptions=removeUndefinedAndNullValues(normalizedLoadOpts.queueOptions);}normalizedLoadOpts.lockIntegrationsVersion=normalizedLoadOpts.lockIntegrationsVersion===true;normalizedLoadOpts.lockPluginsVersion=normalizedLoadOpts.lockPluginsVersion===true;if(!isNumber(normalizedLoadOpts.dataPlaneEventsBufferTimeout)){delete normalizedLoadOpts.dataPlaneEventsBufferTimeout;}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.storage?.cookie)){delete normalizedLoadOpts.storage?.cookie;}else {normalizedLoadOpts.storage.cookie=removeUndefinedAndNullValues(normalizedLoadOpts.storage?.cookie);}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.preConsent)){delete normalizedLoadOpts.preConsent;}else {normalizedLoadOpts.preConsent=removeUndefinedAndNullValues(normalizedLoadOpts.preConsent);}const mergedLoadOptions=mergeDeepRight(loadOptionsFromState,normalizedLoadOpts);return mergedLoadOptions;};
|
3212
|
+
const normalizedLoadOpts=clone(loadOptions);if(!isString(normalizedLoadOpts.setCookieDomain)){delete normalizedLoadOpts.setCookieDomain;}const cookieSameSiteValues=['Strict','Lax','None'];if(!cookieSameSiteValues.includes(normalizedLoadOpts.sameSiteCookie)){delete normalizedLoadOpts.sameSiteCookie;}normalizedLoadOpts.secureCookie=normalizedLoadOpts.secureCookie===true;normalizedLoadOpts.sameDomainCookiesOnly=normalizedLoadOpts.sameDomainCookiesOnly===true;const uaChTrackLevels=['none','default','full'];if(!uaChTrackLevels.includes(normalizedLoadOpts.uaChTrackLevel)){delete normalizedLoadOpts.uaChTrackLevel;}if(!isNonEmptyObject(normalizedLoadOpts.integrations)){delete normalizedLoadOpts.integrations;}normalizedLoadOpts.plugins=normalizedLoadOpts.plugins??defaultOptionalPluginsList;normalizedLoadOpts.useGlobalIntegrationsConfigInEvents=normalizedLoadOpts.useGlobalIntegrationsConfigInEvents===true;normalizedLoadOpts.bufferDataPlaneEventsUntilReady=normalizedLoadOpts.bufferDataPlaneEventsUntilReady===true;normalizedLoadOpts.sendAdblockPage=normalizedLoadOpts.sendAdblockPage===true;normalizedLoadOpts.useServerSideCookies=normalizedLoadOpts.useServerSideCookies===true;if(normalizedLoadOpts.dataServiceEndpoint&&typeof normalizedLoadOpts.dataServiceEndpoint!=='string'){delete normalizedLoadOpts.dataServiceEndpoint;}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.sendAdblockPageOptions)){delete normalizedLoadOpts.sendAdblockPageOptions;}if(!isDefined(normalizedLoadOpts.loadIntegration)){delete normalizedLoadOpts.loadIntegration;}else {normalizedLoadOpts.loadIntegration=normalizedLoadOpts.loadIntegration===true;}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.storage)){delete normalizedLoadOpts.storage;}else {normalizedLoadOpts.storage=removeUndefinedAndNullValues(normalizedLoadOpts.storage);normalizedLoadOpts.storage.migrate=normalizedLoadOpts.storage?.migrate===true;}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.beaconQueueOptions)){delete normalizedLoadOpts.beaconQueueOptions;}else {normalizedLoadOpts.beaconQueueOptions=removeUndefinedAndNullValues(normalizedLoadOpts.beaconQueueOptions);}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.destinationsQueueOptions)){delete normalizedLoadOpts.destinationsQueueOptions;}else {normalizedLoadOpts.destinationsQueueOptions=removeUndefinedAndNullValues(normalizedLoadOpts.destinationsQueueOptions);}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.queueOptions)){delete normalizedLoadOpts.queueOptions;}else {normalizedLoadOpts.queueOptions=removeUndefinedAndNullValues(normalizedLoadOpts.queueOptions);}normalizedLoadOpts.lockIntegrationsVersion=normalizedLoadOpts.lockIntegrationsVersion===true;normalizedLoadOpts.lockPluginsVersion=normalizedLoadOpts.lockPluginsVersion===true;if(!isNumber(normalizedLoadOpts.dataPlaneEventsBufferTimeout)){delete normalizedLoadOpts.dataPlaneEventsBufferTimeout;}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.storage?.cookie)){delete normalizedLoadOpts.storage?.cookie;}else {normalizedLoadOpts.storage.cookie=removeUndefinedAndNullValues(normalizedLoadOpts.storage?.cookie);}if(!isObjectLiteralAndNotNull(normalizedLoadOpts.preConsent)){delete normalizedLoadOpts.preConsent;}else {normalizedLoadOpts.preConsent=removeUndefinedAndNullValues(normalizedLoadOpts.preConsent);}const mergedLoadOptions=mergeDeepRight(loadOptionsFromState,normalizedLoadOpts);return mergedLoadOptions;};
|
3176
3213
|
|
3177
3214
|
const DATA_PLANE_QUEUE_EXT_POINT_PREFIX='dataplaneEventsQueue';const DESTINATIONS_QUEUE_EXT_POINT_PREFIX='destinationsEventsQueue';const DMT_EXT_POINT_PREFIX='transformEvent';
|
3178
3215
|
|