@rudderstack/analytics-js 3.11.15 → 3.11.17
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +20 -0
- package/LICENSE.md +6 -6
- package/dist/npm/index.d.cts +1 -1
- package/dist/npm/index.d.mts +1 -1
- package/dist/npm/legacy/bundled/cjs/index.cjs +102 -94
- package/dist/npm/legacy/bundled/esm/index.mjs +102 -94
- package/dist/npm/legacy/bundled/umd/index.js +102 -94
- package/dist/npm/legacy/cjs/index.cjs +102 -94
- package/dist/npm/legacy/content-script/cjs/index.cjs +99 -92
- package/dist/npm/legacy/content-script/esm/index.mjs +99 -92
- package/dist/npm/legacy/content-script/umd/index.js +99 -92
- package/dist/npm/legacy/esm/index.mjs +102 -94
- package/dist/npm/legacy/umd/index.js +102 -94
- package/dist/npm/modern/bundled/cjs/index.cjs +95 -93
- package/dist/npm/modern/bundled/esm/index.mjs +95 -93
- package/dist/npm/modern/bundled/umd/index.js +95 -93
- package/dist/npm/modern/cjs/index.cjs +6 -6
- package/dist/npm/modern/content-script/cjs/index.cjs +93 -92
- package/dist/npm/modern/content-script/esm/index.mjs +93 -92
- package/dist/npm/modern/content-script/umd/index.js +93 -92
- package/dist/npm/modern/esm/index.mjs +6 -6
- package/dist/npm/modern/umd/index.js +6 -6
- package/package.json +1 -1
@@ -421,7 +421,7 @@
|
|
421
421
|
* @returns ISO formatted timestamp string
|
422
422
|
*/const getCurrentTimeFormatted=()=>getFormattedTimestamp(new Date());
|
423
423
|
|
424
|
-
const LOG_CONTEXT_SEPARATOR=':: ';const SCRIPT_ALREADY_EXISTS_ERROR=id=>`A script with the id "${id}" is already loaded. Skipping the loading of this script to prevent conflicts.`;const SCRIPT_LOAD_ERROR=(id,url)=>`Failed to load the script with the id "${id}" from URL "${url}".`;const SCRIPT_LOAD_TIMEOUT_ERROR=(id,url,timeout)=>`A timeout of ${timeout} ms occurred while trying to load the script with id "${id}" from URL "${url}".`;const CIRCULAR_REFERENCE_WARNING=(context,key)=>`${context}${LOG_CONTEXT_SEPARATOR}A circular reference has been detected in the object and the property "${key}" has been dropped from the output.`;const JSON_STRINGIFY_WARNING=`Failed to convert the value to a JSON string.`;
|
424
|
+
const LOG_CONTEXT_SEPARATOR=':: ';const SCRIPT_ALREADY_EXISTS_ERROR=id=>`A script with the id "${id}" is already loaded. Skipping the loading of this script to prevent conflicts.`;const SCRIPT_LOAD_ERROR=(id,url)=>`Failed to load the script with the id "${id}" from URL "${url}".`;const SCRIPT_LOAD_TIMEOUT_ERROR=(id,url,timeout)=>`A timeout of ${timeout} ms occurred while trying to load the script with id "${id}" from URL "${url}".`;const CIRCULAR_REFERENCE_WARNING=(context,key)=>`${context}${LOG_CONTEXT_SEPARATOR}A circular reference has been detected in the object and the property "${key}" has been dropped from the output.`;const JSON_STRINGIFY_WARNING=`Failed to convert the value to a JSON string.`;const COOKIE_DATA_ENCODING_ERROR=`Failed to encode the cookie data.`;
|
425
425
|
|
426
426
|
const JSON_STRINGIFY='JSONStringify';const BIG_INT_PLACEHOLDER='[BigInt]';const CIRCULAR_REFERENCE_PLACEHOLDER='[Circular Reference]';const getCircularReplacer=(excludeNull,excludeKeys,logger)=>{const ancestors=[];// Here we do not want to use arrow function to use "this" in function context
|
427
427
|
// eslint-disable-next-line func-names
|
@@ -465,7 +465,7 @@
|
|
465
465
|
* @returns Instance of Error with message prepended with issue
|
466
466
|
*/const getMutatedError=(err,issue)=>{let finalError=err;if(!isTypeOfError(err)){finalError=new Error(`${issue}: ${stringifyWithoutCircular(err)}`);}else {finalError.message=`${issue}: ${err.message}`;}return finalError;};const dispatchErrorEvent=error=>{if(isTypeOfError(error)){error.stack=`${error.stack??''}\n${MANUAL_ERROR_IDENTIFIER}`;}globalThis.dispatchEvent(new ErrorEvent('error',{error}));};
|
467
467
|
|
468
|
-
const APP_NAME='RudderLabs JavaScript SDK';const APP_VERSION='3.11.
|
468
|
+
const APP_NAME='RudderLabs JavaScript SDK';const APP_VERSION='3.11.17';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';
|
469
469
|
|
470
470
|
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';
|
471
471
|
|
@@ -716,10 +716,6 @@
|
|
716
716
|
const isErrRetryable=details=>{let isRetryableNWFailure=false;if(details?.error&&details?.xhr){const xhrStatus=details.xhr.status;// same as in v1.1
|
717
717
|
isRetryableNWFailure=xhrStatus===429||xhrStatus>=500&&xhrStatus<600;}return isRetryableNWFailure;};
|
718
718
|
|
719
|
-
const userIdKey='rl_user_id';const userTraitsKey='rl_trait';const anonymousUserIdKey='rl_anonymous_id';const groupIdKey='rl_group_id';const groupTraitsKey='rl_group_trait';const pageInitialReferrerKey='rl_page_init_referrer';const pageInitialReferringDomainKey='rl_page_init_referring_domain';const sessionInfoKey='rl_session';const authTokenKey='rl_auth_token';const COOKIE_KEYS={userId:userIdKey,userTraits:userTraitsKey,anonymousId:anonymousUserIdKey,groupId:groupIdKey,groupTraits:groupTraitsKey,initialReferrer:pageInitialReferrerKey,initialReferringDomain:pageInitialReferringDomainKey,sessionInfo:sessionInfoKey,authToken:authTokenKey};const ENCRYPTION_PREFIX_V3='RS_ENC_v3_';
|
720
|
-
|
721
|
-
const COOKIE_DATA_ENCODING_ERROR=`Failed to encode the cookie data.`;
|
722
|
-
|
723
719
|
/**
|
724
720
|
* Encode.
|
725
721
|
*/const encode=(value,logger)=>{try{return encodeURIComponent(value);}catch(err){logger?.error(COOKIE_DATA_ENCODING_ERROR,err);return undefined;}};/**
|
@@ -739,6 +735,8 @@
|
|
739
735
|
*/// eslint-disable-next-line func-names
|
740
736
|
const cookie=function(name,value,options,logger){switch(arguments.length){case 4:case 3:case 2:return set(name,value,options,logger);case 1:if(name){return get(name);}return all();default:return all();}};
|
741
737
|
|
738
|
+
const userIdKey='rl_user_id';const userTraitsKey='rl_trait';const anonymousUserIdKey='rl_anonymous_id';const groupIdKey='rl_group_id';const groupTraitsKey='rl_group_trait';const pageInitialReferrerKey='rl_page_init_referrer';const pageInitialReferringDomainKey='rl_page_init_referring_domain';const sessionInfoKey='rl_session';const authTokenKey='rl_auth_token';const COOKIE_KEYS={userId:userIdKey,userTraits:userTraitsKey,anonymousId:anonymousUserIdKey,groupId:groupIdKey,groupTraits:groupTraitsKey,initialReferrer:pageInitialReferrerKey,initialReferringDomain:pageInitialReferringDomainKey,sessionInfo:sessionInfoKey,authToken:authTokenKey};const ENCRYPTION_PREFIX_V3='RS_ENC_v3_';
|
739
|
+
|
742
740
|
const encryptBrowser=value=>`${ENCRYPTION_PREFIX_V3}${toBase64(value)}`;const decryptBrowser=value=>{if(value?.startsWith(ENCRYPTION_PREFIX_V3)){return fromBase64(value.substring(ENCRYPTION_PREFIX_V3.length));}return value;};
|
743
741
|
|
744
742
|
const EVENT_PAYLOAD_SIZE_BYTES_LIMIT=32*1024;// 32 KB
|
@@ -932,7 +930,8 @@
|
|
932
930
|
return false;}};const getReleaseStage$1=()=>{const host=globalThis.location.hostname;return host&&DEV_HOSTS$1.includes(host)?'development':'production';};const getGlobalBugsnagLibInstance=()=>globalThis[BUGSNAG_LIB_INSTANCE_GLOBAL_KEY_NAME];const getNewClient=(state,logger)=>{const globalBugsnagLibInstance=getGlobalBugsnagLibInstance();const clientConfig={apiKey:API_KEY,appVersion:state.context.app.value.version,metaData:{SDK:{name:'JS',installType:state.context.app.value.installType}},beforeSend:onError(state,logger),autoCaptureSessions:false,// auto capture sessions is disabled
|
933
931
|
collectUserIp:false,// collecting user's IP is disabled
|
934
932
|
// enabledBreadcrumbTypes: ['error', 'log', 'user'], // for v7 and above
|
935
|
-
maxEvents:100,maxBreadcrumbs:40,releaseStage:getReleaseStage$1(),user:{
|
933
|
+
maxEvents:100,maxBreadcrumbs:40,releaseStage:getReleaseStage$1(),user:{// Combination of source, session and visit ids
|
934
|
+
id:`${state.source.value?.id??state.lifecycle.writeKey.value}..${state.session.sessionInfo.value?.id??'NA'}..${state.autoTrack?.pageLifecycle?.visitId?.value??'NA'}`},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
|
936
935
|
globalThis.setTimeout(initBugsnagClient,SDK_LOAD_POLL_INTERVAL_MS,state,promiseResolve,promiseReject,logger,time+SDK_LOAD_POLL_INTERVAL_MS);}};
|
937
936
|
|
938
937
|
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
|
@@ -966,170 +965,170 @@
|
|
966
965
|
* @returns Destinations array filtered based on the integration options
|
967
966
|
*/const filterDestinations=(intgOpts,destinations)=>{const allOptVal=intgOpts.All??true;return destinations.filter(dest=>{const destDisplayName=dest.displayName;let isDestEnabled;if(allOptVal){isDestEnabled=true;if(isDestIntgConfigFalsy(intgOpts[destDisplayName])){isDestEnabled=false;}}else {isDestEnabled=false;if(isDestIntgConfigTruthy(intgOpts[destDisplayName])){isDestEnabled=true;}}return isDestEnabled;});};
|
968
967
|
|
969
|
-
const
|
968
|
+
const ACTIVE_CAMPAIGN_DISPLAY_NAME='ActiveCampaign';const ADOBE_ANALYTICS_DISPLAY_NAME='Adobe Analytics';const ADROLL_DISPLAY_NAME='Adroll';const AM_DISPLAY_NAME='Amplitude';const APPCUES_DISPLAY_NAME='Appcues';const AXEPTIO_DISPLAY_NAME='Axeptio';const BINGADS_DISPLAY_NAME='Bing Ads';const BRAZE_DISPLAY_NAME='Braze';const BUGSNAG_DISPLAY_NAME='Bugsnag';const CHARTBEAT_DISPLAY_NAME='Chartbeat';const CLEVERTAP_DISPLAY_NAME='CleverTap';const COMMANDBAR_DISPLAY_NAME='CommandBar';const CONVERTFLOW_DISPLAY_NAME='Convertflow';const CRITEO_DISPLAY_NAME='Criteo';const CUSTOMERIO_DISPLAY_NAME='Customer IO';const DCM_FLOODLIGHT_DISPLAY_NAME='DCM Floodlight';const DRIP_DISPLAY_NAME='Drip';const ENGAGE_DISPLAY_NAME='Engage';const FACEBOOK_PIXEL_DISPLAY_NAME='Facebook Pixel';const FULLSTORY_DISPLAY_NAME='Fullstory';const GA_DISPLAY_NAME='Google Analytics';const GA360_DISPLAY_NAME='Google Analytics 360';const GA4_DISPLAY_NAME='Google Analytics 4 (GA4)';const GA4_V2_DISPLAY_NAME='Google Analytics 4 (GA4) V2';const GAINSIGHT_PX_DISPLAY_NAME='Gainsight PX';const GOOGLE_OPTIMIZE_DISPLAY_NAME='Google Optimize';const GOOGLEADS_DISPLAY_NAME='Google Ads';const GTM_DISPLAY_NAME='Google Tag Manager';const HEAP_DISPLAY_NAME='Heap.io';const HOTJAR_DISPLAY_NAME='Hotjar';const HS_DISPLAY_NAME='HubSpot';const INTERCOM_DISPLAY_NAME='Intercom';const ITERABLE_DISPLAY_NAME='Iterable';const JUNE_DISPLAY_NAME='JUNE';const KEEN_DISPLAY_NAME='Keen';const KISSMETRICS_DISPLAY_NAME='Kiss Metrics';const KLAVIYO_DISPLAY_NAME='Klaviyo';const LAUNCHDARKLY_DISPLAY_NAME='LaunchDarkly';const LEMNISK_DISPLAY_NAME='Lemnisk Marketing Automation';const LINKEDIN_INSIGHT_TAG_DISPLAY_NAME='Linkedin Insight Tag';const LIVECHAT_DISPLAY_NAME='livechat';const LOTAME_DISPLAY_NAME='Lotame';const LYTICS_DISPLAY_NAME='Lytics';const MATOMO_DISPLAY_NAME='Matomo';const MICROSOFT_CLARITY_DISPLAY_NAME='Microsoft Clarity';const MOENGAGE_DISPLAY_NAME='MoEngage';const MOUSEFLOW_DISPLAY_NAME='Mouseflow';const MP_DISPLAY_NAME='Mixpanel';const NINETAILED_DISPLAY_NAME='Ninetailed';const OLARK_DISPLAY_NAME='Olark';const OPTIMIZELY_DISPLAY_NAME='Optimizely Web';const PENDO_DISPLAY_NAME='Pendo';const PINTEREST_TAG_DISPLAY_NAME='Pinterest Tag';const PODSIGHTS_DISPLAY_NAME='Podsights';const POST_AFFILIATE_PRO_DISPLAY_NAME='Post Affiliate Pro';const POSTHOG_DISPLAY_NAME='PostHog';const PROFITWELL_DISPLAY_NAME='ProfitWell';const QUALAROO_DISPLAY_NAME='Qualaroo';const QUALTRICS_DISPLAY_NAME='Qualtrics';const QUANTUMMETRIC_DISPLAY_NAME='Quantum Metric';const QUORA_PIXEL_DISPLAY_NAME='Quora Pixel';const REDDIT_PIXEL_DISPLAY_NAME='Reddit Pixel';const REFINER_DISPLAY_NAME='Refiner';const ROCKERBOX_DISPLAY_NAME='Rockerbox';const ROLLBAR_DISPLAY_NAME='rollbar';const SATISMETER_DISPLAY_NAME='SatisMeter';const SENDINBLUE_DISPLAY_NAME='Sendinblue';const SENTRY_DISPLAY_NAME='Sentry';const SHYNET_DISPLAY_NAME='Shynet';const SNAP_PIXEL_DISPLAY_NAME='Snap Pixel';const SNAPENGAGE_DISPLAY_NAME='SnapEngage';const SPOTIFYPIXEL_DISPLAY_NAME='Spotify Pixel';const SPRIG_DISPLAY_NAME='Sprig';const TIKTOK_ADS_DISPLAY_NAME='TikTok Ads';const TVSQUARED_DISPLAY_NAME='TVSquared';const VERO_DISPLAY_NAME='Vero';const VWO_DISPLAY_NAME='VWO';const WOOPRA_DISPLAY_NAME='WOOPRA';const XPIXEL_DISPLAY_NAME='XPixel';const YANDEX_METRICA_DISPLAY_NAME='Yandex.Metrica';
|
970
969
|
|
971
|
-
const DIR_NAME$1f='
|
970
|
+
const DIR_NAME$1f='AdobeAnalytics';
|
972
971
|
|
973
|
-
const DIR_NAME$1e='
|
972
|
+
const DIR_NAME$1e='Amplitude';
|
974
973
|
|
975
|
-
const DIR_NAME$1d='
|
974
|
+
const DIR_NAME$1d='Appcues';
|
976
975
|
|
977
|
-
const DIR_NAME$1c='
|
976
|
+
const DIR_NAME$1c='BingAds';
|
978
977
|
|
979
|
-
const DIR_NAME$1b='
|
978
|
+
const DIR_NAME$1b='Braze';
|
980
979
|
|
981
|
-
const DIR_NAME$1a='
|
980
|
+
const DIR_NAME$1a='Bugsnag';
|
982
981
|
|
983
|
-
const DIR_NAME$19='
|
982
|
+
const DIR_NAME$19='Chartbeat';
|
984
983
|
|
985
|
-
const DIR_NAME$18='
|
984
|
+
const DIR_NAME$18='Clevertap';
|
986
985
|
|
987
|
-
const DIR_NAME$17='Criteo';
|
986
|
+
const DIR_NAME$17='Criteo';
|
988
987
|
|
989
|
-
const DIR_NAME$16='CustomerIO';
|
988
|
+
const DIR_NAME$16='CustomerIO';
|
990
989
|
|
991
|
-
const DIR_NAME$15='Drip';
|
990
|
+
const DIR_NAME$15='Drip';
|
992
991
|
|
993
|
-
const DIR_NAME$14='FacebookPixel';
|
992
|
+
const DIR_NAME$14='FacebookPixel';
|
994
993
|
|
995
|
-
const DIR_NAME$13='Fullstory';
|
994
|
+
const DIR_NAME$13='Fullstory';
|
996
995
|
|
997
|
-
const DIR_NAME$12='GA';
|
996
|
+
const DIR_NAME$12='GA';
|
998
997
|
|
999
|
-
const DIR_NAME$11='GA4';
|
998
|
+
const DIR_NAME$11='GA4';
|
1000
999
|
|
1001
|
-
const DIR_NAME$10='GA4_V2';
|
1000
|
+
const DIR_NAME$10='GA4_V2';
|
1002
1001
|
|
1003
|
-
const DIR_NAME$$='GoogleAds';
|
1002
|
+
const DIR_NAME$$='GoogleAds';
|
1004
1003
|
|
1005
|
-
const DIR_NAME$_='GoogleOptimize';
|
1004
|
+
const DIR_NAME$_='GoogleOptimize';
|
1006
1005
|
|
1007
|
-
const DIR_NAME$Z='GoogleTagManager';
|
1006
|
+
const DIR_NAME$Z='GoogleTagManager';
|
1008
1007
|
|
1009
|
-
const DIR_NAME$Y='Heap';
|
1008
|
+
const DIR_NAME$Y='Heap';
|
1010
1009
|
|
1011
|
-
const DIR_NAME$X='Hotjar';
|
1010
|
+
const DIR_NAME$X='Hotjar';
|
1012
1011
|
|
1013
|
-
const DIR_NAME$W='HubSpot';
|
1012
|
+
const DIR_NAME$W='HubSpot';
|
1014
1013
|
|
1015
|
-
const DIR_NAME$V='INTERCOM';
|
1014
|
+
const DIR_NAME$V='INTERCOM';
|
1016
1015
|
|
1017
|
-
const DIR_NAME$U='Keen';
|
1016
|
+
const DIR_NAME$U='Keen';
|
1018
1017
|
|
1019
|
-
const DIR_NAME$T='Kissmetrics';
|
1018
|
+
const DIR_NAME$T='Kissmetrics';
|
1020
1019
|
|
1021
|
-
const DIR_NAME$S='Klaviyo';
|
1020
|
+
const DIR_NAME$S='Klaviyo';
|
1022
1021
|
|
1023
|
-
const DIR_NAME$R='LaunchDarkly';
|
1022
|
+
const DIR_NAME$R='LaunchDarkly';
|
1024
1023
|
|
1025
|
-
const DIR_NAME$Q='LinkedInInsightTag';
|
1024
|
+
const DIR_NAME$Q='LinkedInInsightTag';
|
1026
1025
|
|
1027
|
-
const DIR_NAME$P='Lotame';
|
1026
|
+
const DIR_NAME$P='Lotame';
|
1028
1027
|
|
1029
|
-
const DIR_NAME$O='Lytics';
|
1028
|
+
const DIR_NAME$O='Lytics';
|
1030
1029
|
|
1031
|
-
const DIR_NAME$N='Mixpanel';
|
1030
|
+
const DIR_NAME$N='Mixpanel';
|
1032
1031
|
|
1033
|
-
const DIR_NAME$M='MoEngage';
|
1032
|
+
const DIR_NAME$M='MoEngage';
|
1034
1033
|
|
1035
|
-
const DIR_NAME$L='Optimizely';
|
1034
|
+
const DIR_NAME$L='Optimizely';
|
1036
1035
|
|
1037
|
-
const DIR_NAME$K='Pendo';
|
1036
|
+
const DIR_NAME$K='Pendo';
|
1038
1037
|
|
1039
|
-
const DIR_NAME$J='PinterestTag';
|
1038
|
+
const DIR_NAME$J='PinterestTag';
|
1040
1039
|
|
1041
|
-
const DIR_NAME$I='PostAffiliatePro';
|
1040
|
+
const DIR_NAME$I='PostAffiliatePro';
|
1042
1041
|
|
1043
|
-
const DIR_NAME$H='Posthog';
|
1042
|
+
const DIR_NAME$H='Posthog';
|
1044
1043
|
|
1045
|
-
const DIR_NAME$G='ProfitWell';
|
1044
|
+
const DIR_NAME$G='ProfitWell';
|
1046
1045
|
|
1047
|
-
const DIR_NAME$F='Qualtrics';
|
1046
|
+
const DIR_NAME$F='Qualtrics';
|
1048
1047
|
|
1049
|
-
const DIR_NAME$E='QuantumMetric';
|
1048
|
+
const DIR_NAME$E='QuantumMetric';
|
1050
1049
|
|
1051
|
-
const DIR_NAME$D='RedditPixel';
|
1050
|
+
const DIR_NAME$D='RedditPixel';
|
1052
1051
|
|
1053
|
-
const DIR_NAME$C='Sentry';
|
1052
|
+
const DIR_NAME$C='Sentry';
|
1054
1053
|
|
1055
|
-
const DIR_NAME$B='SnapPixel';
|
1054
|
+
const DIR_NAME$B='SnapPixel';
|
1056
1055
|
|
1057
|
-
const DIR_NAME$A='TVSquared';
|
1056
|
+
const DIR_NAME$A='TVSquared';
|
1058
1057
|
|
1059
|
-
const DIR_NAME$z='VWO';
|
1058
|
+
const DIR_NAME$z='VWO';
|
1060
1059
|
|
1061
|
-
const DIR_NAME$y='GA360';
|
1060
|
+
const DIR_NAME$y='GA360';
|
1062
1061
|
|
1063
|
-
const DIR_NAME$x='Adroll';
|
1062
|
+
const DIR_NAME$x='Adroll';
|
1064
1063
|
|
1065
|
-
const DIR_NAME$w='DCMFloodlight';
|
1064
|
+
const DIR_NAME$w='DCMFloodlight';
|
1066
1065
|
|
1067
|
-
const DIR_NAME$v='Matomo';
|
1066
|
+
const DIR_NAME$v='Matomo';
|
1068
1067
|
|
1069
|
-
const DIR_NAME$u='Vero';
|
1068
|
+
const DIR_NAME$u='Vero';
|
1070
1069
|
|
1071
|
-
const DIR_NAME$t='Mouseflow';
|
1070
|
+
const DIR_NAME$t='Mouseflow';
|
1072
1071
|
|
1073
|
-
const DIR_NAME$s='Rockerbox';
|
1072
|
+
const DIR_NAME$s='Rockerbox';
|
1074
1073
|
|
1075
|
-
const DIR_NAME$r='ConvertFlow';
|
1074
|
+
const DIR_NAME$r='ConvertFlow';
|
1076
1075
|
|
1077
|
-
const DIR_NAME$q='SnapEngage';
|
1076
|
+
const DIR_NAME$q='SnapEngage';
|
1078
1077
|
|
1079
|
-
const DIR_NAME$p='LiveChat';
|
1078
|
+
const DIR_NAME$p='LiveChat';
|
1080
1079
|
|
1081
|
-
const DIR_NAME$o='Shynet';
|
1080
|
+
const DIR_NAME$o='Shynet';
|
1082
1081
|
|
1083
|
-
const DIR_NAME$n='Woopra';
|
1082
|
+
const DIR_NAME$n='Woopra';
|
1084
1083
|
|
1085
|
-
const DIR_NAME$m='RollBar';
|
1084
|
+
const DIR_NAME$m='RollBar';
|
1086
1085
|
|
1087
|
-
const DIR_NAME$l='QuoraPixel';
|
1086
|
+
const DIR_NAME$l='QuoraPixel';
|
1088
1087
|
|
1089
|
-
const DIR_NAME$k='June';
|
1088
|
+
const DIR_NAME$k='June';
|
1090
1089
|
|
1091
|
-
const DIR_NAME$j='Engage';
|
1090
|
+
const DIR_NAME$j='Engage';
|
1092
1091
|
|
1093
|
-
const DIR_NAME$i='Iterable';
|
1092
|
+
const DIR_NAME$i='Iterable';
|
1094
1093
|
|
1095
|
-
const DIR_NAME$h='YandexMetrica';
|
1094
|
+
const DIR_NAME$h='YandexMetrica';
|
1096
1095
|
|
1097
|
-
const DIR_NAME$g='Refiner';
|
1096
|
+
const DIR_NAME$g='Refiner';
|
1098
1097
|
|
1099
|
-
const DIR_NAME$f='Qualaroo';
|
1098
|
+
const DIR_NAME$f='Qualaroo';
|
1100
1099
|
|
1101
|
-
const DIR_NAME$e='Podsights';
|
1100
|
+
const DIR_NAME$e='Podsights';
|
1102
1101
|
|
1103
|
-
const DIR_NAME$d='Axeptio';
|
1102
|
+
const DIR_NAME$d='Axeptio';
|
1104
1103
|
|
1105
|
-
const DIR_NAME$c='Satismeter';
|
1104
|
+
const DIR_NAME$c='Satismeter';
|
1106
1105
|
|
1107
|
-
const DIR_NAME$b='MicrosoftClarity';
|
1106
|
+
const DIR_NAME$b='MicrosoftClarity';
|
1108
1107
|
|
1109
|
-
const DIR_NAME$a='Sendinblue';
|
1108
|
+
const DIR_NAME$a='Sendinblue';
|
1110
1109
|
|
1111
|
-
const DIR_NAME$9='Olark';
|
1110
|
+
const DIR_NAME$9='Olark';
|
1112
1111
|
|
1113
|
-
const DIR_NAME$8='Lemnisk';
|
1112
|
+
const DIR_NAME$8='Lemnisk';
|
1114
1113
|
|
1115
|
-
const DIR_NAME$7='TiktokAds';
|
1114
|
+
const DIR_NAME$7='TiktokAds';
|
1116
1115
|
|
1117
|
-
const DIR_NAME$6='ActiveCampaign';
|
1116
|
+
const DIR_NAME$6='ActiveCampaign';
|
1118
1117
|
|
1119
|
-
const DIR_NAME$5='Sprig';
|
1118
|
+
const DIR_NAME$5='Sprig';
|
1120
1119
|
|
1121
|
-
const DIR_NAME$4='SpotifyPixel';
|
1120
|
+
const DIR_NAME$4='SpotifyPixel';
|
1122
1121
|
|
1123
|
-
const DIR_NAME$3='CommandBar';
|
1122
|
+
const DIR_NAME$3='CommandBar';
|
1124
1123
|
|
1125
|
-
const DIR_NAME$2='Ninetailed';
|
1124
|
+
const DIR_NAME$2='Ninetailed';
|
1126
1125
|
|
1127
|
-
const DIR_NAME$1='Gainsight_PX';
|
1126
|
+
const DIR_NAME$1='Gainsight_PX';
|
1128
1127
|
|
1129
|
-
const DIR_NAME='XPixel';
|
1128
|
+
const DIR_NAME='XPixel';
|
1130
1129
|
|
1131
1130
|
// map of the destination display names to the destination directory names
|
1132
|
-
const destDisplayNamesToFileNamesMap={[
|
1131
|
+
const destDisplayNamesToFileNamesMap={[HS_DISPLAY_NAME]:DIR_NAME$W,[GA_DISPLAY_NAME]:DIR_NAME$12,[HOTJAR_DISPLAY_NAME]:DIR_NAME$X,[GOOGLEADS_DISPLAY_NAME]:DIR_NAME$$,[VWO_DISPLAY_NAME]:DIR_NAME$z,[GTM_DISPLAY_NAME]:DIR_NAME$Z,[BRAZE_DISPLAY_NAME]:DIR_NAME$1b,[INTERCOM_DISPLAY_NAME]:DIR_NAME$V,[KEEN_DISPLAY_NAME]:DIR_NAME$U,[KISSMETRICS_DISPLAY_NAME]:DIR_NAME$T,[CUSTOMERIO_DISPLAY_NAME]:DIR_NAME$16,[CHARTBEAT_DISPLAY_NAME]:DIR_NAME$19,[FACEBOOK_PIXEL_DISPLAY_NAME]:DIR_NAME$14,[LOTAME_DISPLAY_NAME]:DIR_NAME$P,[OPTIMIZELY_DISPLAY_NAME]:DIR_NAME$L,[BUGSNAG_DISPLAY_NAME]:DIR_NAME$1a,[FULLSTORY_DISPLAY_NAME]:DIR_NAME$13,[TVSQUARED_DISPLAY_NAME]:DIR_NAME$A,[GA4_DISPLAY_NAME]:DIR_NAME$11,[GA4_V2_DISPLAY_NAME]:DIR_NAME$10,[MOENGAGE_DISPLAY_NAME]:DIR_NAME$M,[AM_DISPLAY_NAME]:DIR_NAME$1e,[PENDO_DISPLAY_NAME]:DIR_NAME$K,[LYTICS_DISPLAY_NAME]:DIR_NAME$O,[APPCUES_DISPLAY_NAME]:DIR_NAME$1d,[POSTHOG_DISPLAY_NAME]:DIR_NAME$H,[KLAVIYO_DISPLAY_NAME]:DIR_NAME$S,[CLEVERTAP_DISPLAY_NAME]:DIR_NAME$18,[BINGADS_DISPLAY_NAME]:DIR_NAME$1c,[PINTEREST_TAG_DISPLAY_NAME]:DIR_NAME$J,[ADOBE_ANALYTICS_DISPLAY_NAME]:DIR_NAME$1f,[LINKEDIN_INSIGHT_TAG_DISPLAY_NAME]:DIR_NAME$Q,[REDDIT_PIXEL_DISPLAY_NAME]:DIR_NAME$D,[DRIP_DISPLAY_NAME]:DIR_NAME$15,[HEAP_DISPLAY_NAME]:DIR_NAME$Y,[CRITEO_DISPLAY_NAME]:DIR_NAME$17,[MP_DISPLAY_NAME]:DIR_NAME$N,[QUALTRICS_DISPLAY_NAME]:DIR_NAME$F,[PROFITWELL_DISPLAY_NAME]:DIR_NAME$G,[SENTRY_DISPLAY_NAME]:DIR_NAME$C,[QUANTUMMETRIC_DISPLAY_NAME]:DIR_NAME$E,[SNAP_PIXEL_DISPLAY_NAME]:DIR_NAME$B,[POST_AFFILIATE_PRO_DISPLAY_NAME]:DIR_NAME$I,[GOOGLE_OPTIMIZE_DISPLAY_NAME]:DIR_NAME$_,[LAUNCHDARKLY_DISPLAY_NAME]:DIR_NAME$R,[GA360_DISPLAY_NAME]:DIR_NAME$y,[ADROLL_DISPLAY_NAME]:DIR_NAME$x,[DCM_FLOODLIGHT_DISPLAY_NAME]:DIR_NAME$w,[MATOMO_DISPLAY_NAME]:DIR_NAME$v,[VERO_DISPLAY_NAME]:DIR_NAME$u,[MOUSEFLOW_DISPLAY_NAME]:DIR_NAME$t,[ROCKERBOX_DISPLAY_NAME]:DIR_NAME$s,[CONVERTFLOW_DISPLAY_NAME]:DIR_NAME$r,[SNAPENGAGE_DISPLAY_NAME]:DIR_NAME$q,[LIVECHAT_DISPLAY_NAME]:DIR_NAME$p,[SHYNET_DISPLAY_NAME]:DIR_NAME$o,[WOOPRA_DISPLAY_NAME]:DIR_NAME$n,[ROLLBAR_DISPLAY_NAME]:DIR_NAME$m,[QUORA_PIXEL_DISPLAY_NAME]:DIR_NAME$l,[JUNE_DISPLAY_NAME]:DIR_NAME$k,[ENGAGE_DISPLAY_NAME]:DIR_NAME$j,[ITERABLE_DISPLAY_NAME]:DIR_NAME$i,[YANDEX_METRICA_DISPLAY_NAME]:DIR_NAME$h,[REFINER_DISPLAY_NAME]:DIR_NAME$g,[QUALAROO_DISPLAY_NAME]:DIR_NAME$f,[PODSIGHTS_DISPLAY_NAME]:DIR_NAME$e,[AXEPTIO_DISPLAY_NAME]:DIR_NAME$d,[SATISMETER_DISPLAY_NAME]:DIR_NAME$c,[MICROSOFT_CLARITY_DISPLAY_NAME]:DIR_NAME$b,[SENDINBLUE_DISPLAY_NAME]:DIR_NAME$a,[OLARK_DISPLAY_NAME]:DIR_NAME$9,[LEMNISK_DISPLAY_NAME]:DIR_NAME$8,[TIKTOK_ADS_DISPLAY_NAME]:DIR_NAME$7,[ACTIVE_CAMPAIGN_DISPLAY_NAME]:DIR_NAME$6,[SPRIG_DISPLAY_NAME]:DIR_NAME$5,[SPOTIFYPIXEL_DISPLAY_NAME]:DIR_NAME$4,[COMMANDBAR_DISPLAY_NAME]:DIR_NAME$3,[NINETAILED_DISPLAY_NAME]:DIR_NAME$2,[GAINSIGHT_PX_DISPLAY_NAME]:DIR_NAME$1,[XPIXEL_DISPLAY_NAME]:DIR_NAME};
|
1133
1132
|
|
1134
1133
|
/**
|
1135
1134
|
* Determines if the destination SDK code is evaluated
|
@@ -1137,7 +1136,7 @@
|
|
1137
1136
|
* @param sdkTypeName The name of the destination SDK type
|
1138
1137
|
* @param logger Logger instance
|
1139
1138
|
* @returns true if the destination SDK code is evaluated, false otherwise
|
1140
|
-
*/const isDestinationSDKMounted=(destSDKIdentifier,sdkTypeName,logger)=>Boolean(globalThis[destSDKIdentifier]
|
1139
|
+
*/const isDestinationSDKMounted=(destSDKIdentifier,sdkTypeName,logger)=>Boolean(globalThis[destSDKIdentifier]?.[sdkTypeName]?.prototype&&typeof globalThis[destSDKIdentifier][sdkTypeName].prototype.constructor!=='undefined');const wait=time=>new Promise(resolve=>{globalThis.setTimeout(resolve,time);});const createDestinationInstance=(destSDKIdentifier,sdkTypeName,dest,state)=>{const rAnalytics=globalThis.rudderanalytics;const analytics=rAnalytics.getAnalyticsInstance(state.lifecycle.writeKey.value);const analyticsInstance={loadIntegration:state.nativeDestinations.loadIntegration.value,logLevel:state.lifecycle.logLevel.value,loadOnlyIntegrations:state.consents.postConsent.value?.integrations??state.nativeDestinations.loadOnlyIntegrations.value,page:(category,name,properties,options,callback)=>analytics.page(pageArgumentsToCallOptions(getSanitizedValue(category),getSanitizedValue(name),getSanitizedValue(properties),getSanitizedValue(options),getSanitizedValue(callback))),track:(event,properties,options,callback)=>analytics.track(trackArgumentsToCallOptions(getSanitizedValue(event),getSanitizedValue(properties),getSanitizedValue(options),getSanitizedValue(callback))),identify:(userId,traits,options,callback)=>analytics.identify(identifyArgumentsToCallOptions(getSanitizedValue(userId),getSanitizedValue(traits),getSanitizedValue(options),getSanitizedValue(callback))),alias:(to,from,options,callback)=>analytics.alias(aliasArgumentsToCallOptions(getSanitizedValue(to),getSanitizedValue(from),getSanitizedValue(options),getSanitizedValue(callback))),group:(groupId,traits,options,callback)=>analytics.group(groupArgumentsToCallOptions(getSanitizedValue(groupId),getSanitizedValue(traits),getSanitizedValue(options),getSanitizedValue(callback))),getAnonymousId:options=>analytics.getAnonymousId(getSanitizedValue(options)),getUserId:()=>analytics.getUserId(),getUserTraits:()=>analytics.getUserTraits(),getGroupId:()=>analytics.getGroupId(),getGroupTraits:()=>analytics.getGroupTraits(),getSessionId:()=>analytics.getSessionId()};const deviceModeDestination=new globalThis[destSDKIdentifier][sdkTypeName](clone(dest.config),analyticsInstance,{shouldApplyDeviceModeTransformation:dest.shouldApplyDeviceModeTransformation,propagateEventsUntransformedOnError:dest.propagateEventsUntransformedOnError,destinationId:dest.id});return deviceModeDestination;};const isDestinationReady=(dest,time=0)=>new Promise((resolve,reject)=>{const instance=dest.instance;if(instance.isLoaded()&&(!instance.isReady||instance.isReady())){resolve(true);}else if(time>=READY_CHECK_TIMEOUT_MS){reject(new Error(DESTINATION_READY_TIMEOUT_ERROR(READY_CHECK_TIMEOUT_MS,dest.userFriendlyId)));}else {const curTime=Date.now();wait(READY_CHECK_INTERVAL_MS).then(()=>{const elapsedTime=Date.now()-curTime;isDestinationReady(dest,time+elapsedTime).then(resolve).catch(err=>reject(err));}).catch(err=>reject(err));}});/**
|
1141
1140
|
* Extracts the integration config, if any, from the given destination
|
1142
1141
|
* and merges it with the current integrations config
|
1143
1142
|
* @param dest Destination object
|
@@ -1181,7 +1180,8 @@
|
|
1181
1180
|
|
1182
1181
|
const getConfigForPayloadCreation=(err,errorType)=>{switch(errorType){case ErrorType.UNHANDLEDEXCEPTION:{const{error}=err;return {component:'unhandledException handler',normalizedError:error||err};}case ErrorType.UNHANDLEDREJECTION:{const error=err;return {component:'unhandledrejection handler',normalizedError:error.reason};}case ErrorType.HANDLEDEXCEPTION:default:return {component:'notify()',normalizedError:err};}};const createNewBreadcrumb=(message,metaData)=>({type:'manual',name:message,timestamp:new Date(),metaData:metaData??{}});const getReleaseStage=()=>{const host=globalThis.location.hostname;return host&&DEV_HOSTS.includes(host)?'development':'production';};const getAppStateForMetadata=state=>{const stateStr=stringifyWithoutCircular(state,false,APP_STATE_EXCLUDE_KEYS);return stateStr!==null?JSON.parse(stateStr):{};};const getURLWithoutQueryString=()=>{const url=globalThis.location.href.split('?');return url[0];};const getErrorContext=event=>{const{message}=event;let context=message;// Hack for easily grouping the script load errors
|
1183
1182
|
// on the dashboard
|
1184
|
-
if(message.includes('Error in loading a third-party script')){context='Script load failures';}return context;};const getBugsnagErrorEvent=(payload,errorState,state)=>({notifier:{name:NOTIFIER_NAME,version:state.context.app.value.version,url:SDK_GITHUB_URL},events:[{payloadVersion:'5',exceptions:clone(payload.errors),severity:errorState.severity,unhandled:errorState.unhandled,severityReason:errorState.severityReason,app:{version:state.context.app.value.version,releaseStage:getReleaseStage()},device:{locale:state.context.locale.value??undefined,userAgent:state.context.userAgent.value??undefined,time:new Date()},request:{url:getURLWithoutQueryString(),clientIp:'[NOT COLLECTED]'},breadcrumbs:clone(state.reporting.breadcrumbs.value),context:getErrorContext(payload.errors[0]),metaData:{sdk:{name:'JS',installType:state.context.app.value.installType},state:getAppStateForMetadata(state)??{},source:{snippetVersion:globalThis.RudderSnippetVersion}},user:{
|
1183
|
+
if(message.includes('Error in loading a third-party script')){context='Script load failures';}return context;};const getBugsnagErrorEvent=(payload,errorState,state)=>({notifier:{name:NOTIFIER_NAME,version:state.context.app.value.version,url:SDK_GITHUB_URL},events:[{payloadVersion:'5',exceptions:clone(payload.errors),severity:errorState.severity,unhandled:errorState.unhandled,severityReason:errorState.severityReason,app:{version:state.context.app.value.version,releaseStage:getReleaseStage()},device:{locale:state.context.locale.value??undefined,userAgent:state.context.userAgent.value??undefined,time:new Date()},request:{url:getURLWithoutQueryString(),clientIp:'[NOT COLLECTED]'},breadcrumbs:clone(state.reporting.breadcrumbs.value),context:getErrorContext(payload.errors[0]),metaData:{sdk:{name:'JS',installType:state.context.app.value.installType},state:getAppStateForMetadata(state)??{},source:{snippetVersion:globalThis.RudderSnippetVersion}},user:{// Combination of source, session and visit ids
|
1184
|
+
id:`${state.source.value?.id??state.lifecycle.writeKey.value}..${state.session.sessionInfo.value?.id??'NA'}..${state.autoTrack?.pageLifecycle?.visitId?.value??'NA'}`}}]});/**
|
1185
1185
|
* A function to determine whether the error should be promoted to notify or not
|
1186
1186
|
* @param {Error} error
|
1187
1187
|
* @returns
|
@@ -2804,7 +2804,7 @@
|
|
2804
2804
|
/**
|
2805
2805
|
* Determines if the SDK is running inside a chrome extension
|
2806
2806
|
* @returns boolean
|
2807
|
-
*/const isSDKRunningInChromeExtension=()=>!!
|
2807
|
+
*/const isSDKRunningInChromeExtension=()=>!!window.chrome?.runtime?.id;
|
2808
2808
|
|
2809
2809
|
const DEFAULT_PRE_CONSENT_STORAGE_STRATEGY='none';const DEFAULT_PRE_CONSENT_EVENTS_DELIVERY_TYPE='immediate';
|
2810
2810
|
|
@@ -2915,7 +2915,9 @@
|
|
2915
2915
|
* To get the timezone of the user
|
2916
2916
|
*
|
2917
2917
|
* @returns string
|
2918
|
-
*/const getTimezone=()=>{
|
2918
|
+
*/const getTimezone=()=>{// Not susceptible to super-linear backtracking
|
2919
|
+
// eslint-disable-next-line sonarjs/slow-regex
|
2920
|
+
const timezone=/([A-Z]+[+-]\d+)/.exec(new Date().toString());return timezone?.[1]?timezone[1]:'NA';};
|
2919
2921
|
|
2920
2922
|
/**
|
2921
2923
|
* Get the referrer URL
|
@@ -410,7 +410,7 @@ const getFormattedTimestamp=date=>date.toISOString();/**
|
|
410
410
|
* @returns ISO formatted timestamp string
|
411
411
|
*/const getCurrentTimeFormatted=()=>getFormattedTimestamp(new Date());
|
412
412
|
|
413
|
-
const LOG_CONTEXT_SEPARATOR=':: ';const SCRIPT_ALREADY_EXISTS_ERROR=id=>`A script with the id "${id}" is already loaded. Skipping the loading of this script to prevent conflicts.`;const SCRIPT_LOAD_ERROR=(id,url)=>`Failed to load the script with the id "${id}" from URL "${url}".`;const SCRIPT_LOAD_TIMEOUT_ERROR=(id,url,timeout)=>`A timeout of ${timeout} ms occurred while trying to load the script with id "${id}" from URL "${url}".`;const CIRCULAR_REFERENCE_WARNING=(context,key)=>`${context}${LOG_CONTEXT_SEPARATOR}A circular reference has been detected in the object and the property "${key}" has been dropped from the output.`;const JSON_STRINGIFY_WARNING=`Failed to convert the value to a JSON string.`;
|
413
|
+
const LOG_CONTEXT_SEPARATOR=':: ';const SCRIPT_ALREADY_EXISTS_ERROR=id=>`A script with the id "${id}" is already loaded. Skipping the loading of this script to prevent conflicts.`;const SCRIPT_LOAD_ERROR=(id,url)=>`Failed to load the script with the id "${id}" from URL "${url}".`;const SCRIPT_LOAD_TIMEOUT_ERROR=(id,url,timeout)=>`A timeout of ${timeout} ms occurred while trying to load the script with id "${id}" from URL "${url}".`;const CIRCULAR_REFERENCE_WARNING=(context,key)=>`${context}${LOG_CONTEXT_SEPARATOR}A circular reference has been detected in the object and the property "${key}" has been dropped from the output.`;const JSON_STRINGIFY_WARNING=`Failed to convert the value to a JSON string.`;const COOKIE_DATA_ENCODING_ERROR=`Failed to encode the cookie data.`;
|
414
414
|
|
415
415
|
const JSON_STRINGIFY='JSONStringify';const BIG_INT_PLACEHOLDER='[BigInt]';const CIRCULAR_REFERENCE_PLACEHOLDER='[Circular Reference]';const getCircularReplacer=(excludeNull,excludeKeys,logger)=>{const ancestors=[];// Here we do not want to use arrow function to use "this" in function context
|
416
416
|
// eslint-disable-next-line func-names
|
@@ -454,7 +454,7 @@ const MANUAL_ERROR_IDENTIFIER='[MANUAL ERROR]';/**
|
|
454
454
|
* @returns Instance of Error with message prepended with issue
|
455
455
|
*/const getMutatedError=(err,issue)=>{let finalError=err;if(!isTypeOfError(err)){finalError=new Error(`${issue}: ${stringifyWithoutCircular(err)}`);}else {finalError.message=`${issue}: ${err.message}`;}return finalError;};const dispatchErrorEvent=error=>{if(isTypeOfError(error)){error.stack=`${error.stack??''}\n${MANUAL_ERROR_IDENTIFIER}`;}globalThis.dispatchEvent(new ErrorEvent('error',{error}));};
|
456
456
|
|
457
|
-
const APP_NAME='RudderLabs JavaScript SDK';const APP_VERSION='3.11.
|
457
|
+
const APP_NAME='RudderLabs JavaScript SDK';const APP_VERSION='3.11.17';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';
|
458
458
|
|
459
459
|
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';
|
460
460
|
|
@@ -871,8 +871,6 @@ const STORAGE_TEST_COOKIE='test_rudder_cookie';const STORAGE_TEST_LOCAL_STORAGE=
|
|
871
871
|
|
872
872
|
const storageClientDataStoreNameMap={[COOKIE_STORAGE]:CLIENT_DATA_STORE_COOKIE,[LOCAL_STORAGE]:CLIENT_DATA_STORE_LS,[MEMORY_STORAGE]:CLIENT_DATA_STORE_MEMORY,[SESSION_STORAGE]:CLIENT_DATA_STORE_SESSION};
|
873
873
|
|
874
|
-
const COOKIE_DATA_ENCODING_ERROR=`Failed to encode the cookie data.`;
|
875
|
-
|
876
874
|
/**
|
877
875
|
* Encode.
|
878
876
|
*/const encode=(value,logger)=>{try{return encodeURIComponent(value);}catch(err){logger?.error(COOKIE_DATA_ENCODING_ERROR,err);return undefined;}};/**
|
@@ -1115,7 +1113,7 @@ new URL(url);}return URL_PATTERN.test(url);}catch(e){return false;}};
|
|
1115
1113
|
/**
|
1116
1114
|
* Determines if the SDK is running inside a chrome extension
|
1117
1115
|
* @returns boolean
|
1118
|
-
*/const isSDKRunningInChromeExtension=()=>!!
|
1116
|
+
*/const isSDKRunningInChromeExtension=()=>!!window.chrome?.runtime?.id;
|
1119
1117
|
|
1120
1118
|
const DEFAULT_PRE_CONSENT_STORAGE_STRATEGY='none';const DEFAULT_PRE_CONSENT_EVENTS_DELIVERY_TYPE='immediate';
|
1121
1119
|
|
@@ -1226,7 +1224,9 @@ this.httpClient.getAsyncData({url:state.lifecycle.sourceConfigUrl.value,options:
|
|
1226
1224
|
* To get the timezone of the user
|
1227
1225
|
*
|
1228
1226
|
* @returns string
|
1229
|
-
*/const getTimezone=()=>{
|
1227
|
+
*/const getTimezone=()=>{// Not susceptible to super-linear backtracking
|
1228
|
+
// eslint-disable-next-line sonarjs/slow-regex
|
1229
|
+
const timezone=/([A-Z]+[+-]\d+)/.exec(new Date().toString());return timezone?.[1]?timezone[1]:'NA';};
|
1230
1230
|
|
1231
1231
|
/**
|
1232
1232
|
* Get the referrer URL
|