@mparticle/web-sdk 2.47.0 → 2.47.1
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/dist/mparticle.common.js +64 -71
- package/dist/mparticle.esm.js +64 -71
- package/dist/mparticle.js +30 -234
- package/package.json +1 -1
- package/src/constants.ts +4 -4
- package/src/helpers.js +0 -10
- package/src/identity-user-interfaces.ts +2 -2
- package/src/identity.interfaces.ts +1 -1
- package/src/identity.js +29 -138
- package/src/mp-instance.ts +19 -26
- package/src/persistence.interfaces.ts +0 -5
- package/src/persistence.js +1 -165
- package/src/sdkRuntimeModels.ts +0 -1
- package/src/sessionManager.ts +1 -1
- package/src/store.ts +0 -4
- package/src/utils.ts +16 -9
package/dist/mparticle.esm.js
CHANGED
|
@@ -15,9 +15,9 @@ map:function map(a,b){var c,d,e;if(null===this)throw new TypeError(" this is nul
|
|
|
15
15
|
filter:function filter(a/*, thisArg*/){if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=[],e=2<=arguments.length?arguments[1]:void 0,f=0;f<c;f++)if(f in b){var g=b[f];a.call(e,g,f,b)&&d.push(g);}return d},// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
|
|
16
16
|
isArray:function isArray(a){return "[object Array]"===Object.prototype.toString.call(a)},Base64:Base64$1};
|
|
17
17
|
|
|
18
|
-
var version = "2.47.
|
|
18
|
+
var version = "2.47.1";
|
|
19
19
|
|
|
20
|
-
var Constants={sdkVersion:version,sdkVendor:"mparticle",platform:"web",Messages:{DeprecationMessages:{
|
|
20
|
+
var Constants={sdkVersion:version,sdkVendor:"mparticle",platform:"web",Messages:{DeprecationMessages:{MethodHasBeenDeprecated:"has been deprecated.",MethodMarkedForDeprecationPostfix:"is a deprecated method and will be removed in future releases.",AlternativeMethodPrefix:"Please use the alternate method:"},ErrorMessages:{NoToken:"A token must be specified.",EventNameInvalidType:"Event name must be a valid string value.",EventDataInvalidType:"Event data must be a valid object hash.",LoggingDisabled:"Event logging is currently disabled.",CookieParseError:"Could not parse cookie",EventEmpty:"Event object is null or undefined, cancelling send",APIRequestEmpty:"APIRequest is null or undefined, cancelling send",NoEventType:"Event type must be specified.",TransactionIdRequired:"Transaction ID is required",TransactionRequired:"A transaction attributes object is required",PromotionIdRequired:"Promotion ID is required",BadAttribute:"Attribute value cannot be object or array",BadKey:"Key value cannot be object or array",BadLogPurchase:"Transaction attributes and a product are both required to log a purchase, https://docs.mparticle.com/?javascript#measuring-transactions",AudienceAPINotEnabled:"Your workspace is not enabled to retrieve user audiences."},InformationMessages:{CookieSearch:"Searching for cookie",CookieFound:"Cookie found, parsing values",CookieNotFound:"Cookies not found",CookieSet:"Setting cookie",CookieSync:"Performing cookie sync",SendBegin:"Starting to send event",SendIdentityBegin:"Starting to send event to identity server",SendWindowsPhone:"Sending event to Windows Phone container",SendIOS:"Calling iOS path: ",SendAndroid:"Calling Android JS interface method: ",SendHttp:"Sending event to mParticle HTTP service",SendAliasHttp:"Sending alias request to mParticle HTTP service",SendIdentityHttp:"Sending event to mParticle HTTP service",StartingNewSession:"Starting new Session",StartingLogEvent:"Starting to log event",StartingLogOptOut:"Starting to log user opt in/out",StartingEndSession:"Starting to end session",StartingInitialization:"Starting to initialize",StartingLogCommerceEvent:"Starting to log commerce event",StartingAliasRequest:"Starting to Alias MPIDs",LoadingConfig:"Loading configuration options",AbandonLogEvent:"Cannot log event, logging disabled or developer token not set",AbandonAliasUsers:"Cannot Alias Users, logging disabled or developer token not set",AbandonStartSession:"Cannot start session, logging disabled or developer token not set",AbandonEndSession:"Cannot end session, logging disabled or developer token not set",NoSessionToEnd:"Cannot end session, no active session found"},ValidationMessages:{ModifyIdentityRequestUserIdentitiesPresent:"identityRequests to modify require userIdentities to be present. Request not sent to server. Please fix and try again",IdentityRequesetInvalidKey:"There is an invalid key on your identityRequest object. It can only contain a `userIdentities` object and a `onUserAlias` function. Request not sent to server. Please fix and try again.",OnUserAliasType:"The onUserAlias value must be a function.",UserIdentities:"The userIdentities key must be an object with keys of identityTypes and values of strings. Request not sent to server. Please fix and try again.",UserIdentitiesInvalidKey:"There is an invalid identity key on your `userIdentities` object within the identityRequest. Request not sent to server. Please fix and try again.",UserIdentitiesInvalidValues:"All user identity values must be strings or null. Request not sent to server. Please fix and try again.",AliasMissingMpid:"Alias Request must contain both a destinationMpid and a sourceMpid",AliasNonUniqueMpid:"Alias Request's destinationMpid and sourceMpid must be unique",AliasMissingTime:"Alias Request must have both a startTime and an endTime",AliasStartBeforeEndTime:"Alias Request's endTime must be later than its startTime"}},NativeSdkPaths:{LogEvent:"logEvent",SetUserTag:"setUserTag",RemoveUserTag:"removeUserTag",SetUserAttribute:"setUserAttribute",RemoveUserAttribute:"removeUserAttribute",SetSessionAttribute:"setSessionAttribute",AddToCart:"addToCart",RemoveFromCart:"removeFromCart",ClearCart:"clearCart",LogOut:"logOut",SetUserAttributeList:"setUserAttributeList",RemoveAllUserAttributes:"removeAllUserAttributes",GetUserAttributesLists:"getUserAttributesLists",GetAllUserAttributes:"getAllUserAttributes",Identify:"identify",Logout:"logout",Login:"login",Modify:"modify",Alias:"aliasUsers",Upload:"upload"},StorageNames:{localStorageName:"mprtcl-api",localStorageNameV3:"mprtcl-v3",cookieName:"mprtcl-api",cookieNameV2:"mprtcl-v2",cookieNameV3:"mprtcl-v3",localStorageNameV4:"mprtcl-v4",localStorageProductsV4:"mprtcl-prodv4",cookieNameV4:"mprtcl-v4",currentStorageName:"mprtcl-v4",currentStorageProductsName:"mprtcl-prodv4"},DefaultConfig:{cookieDomain:null,cookieExpiration:365,logLevel:null,timeout:300,sessionTimeout:30,maxProducts:20,forwarderStatsTimeout:5e3,integrationDelayTimeout:5e3,maxCookieSize:3e3,aliasMaxWindow:90,uploadInterval:0// Maximum milliseconds in between batch uploads, below 500 will mean immediate upload. The server returns this as a string, but we are using it as a number internally
|
|
21
21
|
},DefaultBaseUrls:{v1SecureServiceUrl:"jssdks.mparticle.com/v1/JS/",v2SecureServiceUrl:"jssdks.mparticle.com/v2/JS/",v3SecureServiceUrl:"jssdks.mparticle.com/v3/JS/",configUrl:"jssdkcdns.mparticle.com/JS/v2/",identityUrl:"identity.mparticle.com/v1/",aliasUrl:"jssdks.mparticle.com/v1/identity/",userAudienceUrl:"nativesdks.mparticle.com/v1/"},// These are the paths that are used to construct the CNAME urls
|
|
22
22
|
CNAMEUrlPaths:{v1SecureServiceUrl:"/webevents/v1/JS/",v2SecureServiceUrl:"/webevents/v2/JS/",v3SecureServiceUrl:"/webevents/v3/JS/",configUrl:"/tags/JS/v2/",identityUrl:"/identity/v1/",aliasUrl:"/webevents/v1/identity/"},Base64CookieKeys:{csm:1,sa:1,ss:1,lsa:1,ua:1,ui:1,csd:1,ia:1,con:1},// https://go.mparticle.com/work/SQDSDKS-6039
|
|
23
23
|
SDKv2NonMPIDCookieKeys:{gs:1,cu:1,l:1,globalSettings:1,currentUserMPID:1},HTTPCodes:{noHttpCoverage:-1,activeIdentityRequest:-2,activeSession:-3,validationIssue:-4,nativeIdentityRequest:-5,loggingDisabledOrMissingAPIKey:-6,tooManyRequests:429},FeatureFlags:{ReportBatching:"reportBatching",EventBatchingIntervalMillis:"eventBatchingIntervalMillis",OfflineStorage:"offlineStorage",DirectUrlRouting:"directURLRouting",CacheIdentity:"cacheIdentity",AudienceAPI:"audienceAPI",// CaptureIntegrationSpecificIds (legacy): boolean flag from server/UI
|
|
@@ -28,7 +28,7 @@ CaptureIntegrationSpecificIds:"captureIntegrationSpecificIds",// CaptureIntegrat
|
|
|
28
28
|
// - 'none' → capture none
|
|
29
29
|
// - 'roktonly' → capture only Rokt-related IDs
|
|
30
30
|
CaptureIntegrationSpecificIdsV2:"captureIntegrationSpecificIdsV2",AstBackgroundEvents:"astBackgroundEvents"},DefaultInstance:"default_instance",CCPAPurpose:"data_sale_opt_out",IdentityMethods:{Modify:"modify",Logout:"logout",Login:"login",Identify:"identify"},Environment:{Development:"development",Production:"production"},CaptureIntegrationSpecificIdsV2Modes:{All:"all",None:"none",RoktOnly:"roktonly"}};var ONE_DAY_IN_SECONDS=86400;var MILLIS_IN_ONE_SEC=1e3;// https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
|
|
31
|
-
var HTTP_OK=200;var HTTP_ACCEPTED=202;var HTTP_BAD_REQUEST=400;var StoragePrivacyMap={SDKState:"functional",
|
|
31
|
+
var HTTP_OK=200;var HTTP_ACCEPTED=202;var HTTP_BAD_REQUEST=400;var StoragePrivacyMap={SDKState:"functional",OfflineEvents:"functional",IdentityCache:"functional",TimeOnSite:"targeting"};
|
|
32
32
|
|
|
33
33
|
/******************************************************************************
|
|
34
34
|
Copyright (c) Microsoft Corporation.
|
|
@@ -125,7 +125,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
125
125
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
126
126
|
};
|
|
127
127
|
|
|
128
|
-
var Messages$9=Constants.Messages,createCookieString=function(a){return replaceCommasWithPipes(replaceQuotesWithApostrophes(a))},revertCookieString=function(a){return replacePipesWithCommas(replaceApostrophesWithQuotes(a))},inArray=function(a,b){if(!a)return !1;var c=0;if(Array.prototype.indexOf)return 0<=a.indexOf(b,0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return !0;return !1},findKeyInObject=function(a,b){if(b&&a)for(var c in a)if(a.hasOwnProperty(c)&&c.toLowerCase()===b.toLowerCase())return c;return null},generateDeprecationMessage=function(a,b){var
|
|
128
|
+
var Messages$9=Constants.Messages,createCookieString=function(a){return replaceCommasWithPipes(replaceQuotesWithApostrophes(a))},revertCookieString=function(a){return replacePipesWithCommas(replaceApostrophesWithQuotes(a))},inArray=function(a,b){if(!a)return !1;var c=0;if(Array.prototype.indexOf)return 0<=a.indexOf(b,0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return !0;return !1},findKeyInObject=function(a,b){if(b&&a)for(var c in a)if(a.hasOwnProperty(c)&&c.toLowerCase()===b.toLowerCase())return c;return null},generateDeprecationMessage=function(a,b,c,d){var e=[a];return b?e.push(Messages$9.DeprecationMessages.MethodHasBeenDeprecated):e.push(Messages$9.DeprecationMessages.MethodMarkedForDeprecationPostfix),c&&(e.push(Messages$9.DeprecationMessages.AlternativeMethodPrefix),e.push(c+".")),d&&e.push("See - "+d),e.join(" ")};function generateHash(a){var b,c=0;if(void 0===a||null===a)return 0;if(a=a.toString().toLowerCase(),Array.prototype.reduce)return a.split("").reduce(function(c,d){return c=(c<<5)-c+d.charCodeAt(0),c&c},0);if(0===a.length)return c;for(var d=0;d<a.length;d++)b=a.charCodeAt(d),c=(c<<5)-c+b,c&=c;return c}var generateRandomValue=function(){var b,c;return window.crypto&&window.crypto.getRandomValues&&(b=window.crypto.getRandomValues(new Uint8Array(1))),b?(c^b[0]%16>>c/4).toString(16):(c^16*Math.random()>>c/4).toString(16)},generateUniqueId=function(b){return void 0===b&&(b=""),b// if the placeholder was passed, return
|
|
129
129
|
?generateRandomValue()// if the placeholder was passed, return
|
|
130
130
|
:// [1e7] -> // 10000000 +
|
|
131
131
|
// -1e3 -> // -1000 +
|
|
@@ -496,7 +496,7 @@ for(c in a)// Prevent never-ending loop
|
|
|
496
496
|
(d=h[c],e=a[c],h!==e)&&(l&&e&&(m.isPlainObject(e)||(f=m.isArray(e)))?(f?(f=!1,g=d&&m.isArray(d)?d:[]):g=d&&m.isPlainObject(d)?d:{},h[c]=b.extend(l,g,e)):void 0!==e&&(h[c]=e));// Recurse if we're merging plain objects or arrays
|
|
497
497
|
// Return the modified object
|
|
498
498
|
return h},this.createServiceUrl=function(b,c){var d,e=window.mParticle&&a._Store.SDKConfig.forceHttps?"https://":window.location.protocol+"//";return d=a._Store.SDKConfig.forceHttps?"https://"+b:e+b,c&&(d+=c),d},this.createXHR=function(b){var c;try{c=new window.XMLHttpRequest;}catch(b){a.Logger.error("Error creating XMLHttpRequest object.");}if(c&&b&&"withCredentials"in c)c.onreadystatechange=b;else if("undefined"!=typeof window.XDomainRequest){a.Logger.verbose("Creating XDomainRequest object");try{c=new window.XDomainRequest,c.onload=b;}catch(b){a.Logger.error("Error creating XDomainRequest object");}}return c},this.filterUserIdentities=function(a,c){var d=[];if(a&&Object.keys(a).length)for(var e in a)if(a.hasOwnProperty(e)){var f=Types.IdentityType.getIdentityType(e);if(!b.inArray(c,f)){var g={Type:f,Identity:a[e]};f===Types.IdentityType.CustomerId?d.unshift(g):d.push(g);}}return d},this.filterUserIdentitiesForForwarders=KitFilterHelper.filterUserIdentities,this.filterUserAttributes=KitFilterHelper.filterUserAttributes,this.isEventType=function(a){for(var b in Types.EventType)if(Types.EventType.hasOwnProperty(b)&&Types.EventType[b]===a)return !0;return !1},this.sanitizeAttributes=function(c,d){if(!c||!b.isObject(c))return null;var e={};for(var f in c)// Make sure that attribute values are not objects or arrays, which are not valid
|
|
499
|
-
c.hasOwnProperty(f)&&b.Validators.isValidAttributeValue(c[f])?e[f]=c[f]:a.Logger.warning("For '"+d+"', the corresponding attribute value of '"+f+"' must be a string, number, boolean, or null.");return e},this.isDelayedByIntegration=function(b,c,d){if(d-c>a._Store.SDKConfig.integrationDelayTimeout)return !1;for(var e in b){if(!0===b[e])return !0;continue}return !1},this.createMainStorageName=function(a){return a?StorageNames$1.currentStorageName+"_"+a:StorageNames$1.currentStorageName},this.
|
|
499
|
+
c.hasOwnProperty(f)&&b.Validators.isValidAttributeValue(c[f])?e[f]=c[f]:a.Logger.warning("For '"+d+"', the corresponding attribute value of '"+f+"' must be a string, number, boolean, or null.");return e},this.isDelayedByIntegration=function(b,c,d){if(d-c>a._Store.SDKConfig.integrationDelayTimeout)return !1;for(var e in b){if(!0===b[e])return !0;continue}return !1},this.createMainStorageName=function(a){return a?StorageNames$1.currentStorageName+"_"+a:StorageNames$1.currentStorageName},this.converted=converted,this.findKeyInObject=findKeyInObject,this.parseNumber=parseNumber,this.inArray=inArray,this.isObject=isObject,this.decoded=decoded,this.parseStringOrNumber=parseStringOrNumber,this.generateHash=generateHash,this.generateUniqueId=generateUniqueId,this.Validators=Validators;}
|
|
500
500
|
|
|
501
501
|
var Messages$8=Constants.Messages,androidBridgeNameBase="mParticleAndroid",iosBridgeNameBase="mParticle";function NativeSdkHelpers(a){var b=this;this.initializeSessionAttributes=function(a){var c=Constants.NativeSdkPaths.SetSessionAttribute,d=JSON.stringify({key:"$src_env",value:"webview"}),e=JSON.stringify({key:"$src_key",value:a});b.sendToNative(c,d),a&&b.sendToNative(c,e);},this.isBridgeV2Available=function(a){if(!a)return !1;var b=iosBridgeNameBase+"_"+a+"_v2";// iOS v2 bridge
|
|
502
502
|
return !!(window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.hasOwnProperty(b))||!!(window.mParticle&&window.mParticle.uiwebviewBridgeName&&window.mParticle.uiwebviewBridgeName===b)||!!window.hasOwnProperty(androidBridgeNameBase+"_"+a+"_v2");// other iOS v2 bridge
|
|
@@ -544,7 +544,7 @@ if(h){var i=getCachedIdentity(g,a,b);return c(i,d,e,f,g,a,!0),!0}return !1};var
|
|
|
544
544
|
|
|
545
545
|
var Messages$6=Constants.Messages;function SessionManager(a){var b=this;this.initialize=function(){if(a._Store.sessionId){var c=6e4*a._Store.SDKConfig.sessionTimeout;if(new Date>new Date(a._Store.dateLastEventSent.getTime()+c))b.endSession(),b.startNewSession();else {// https://go.mparticle.com/work/SQDSDKS-6045
|
|
546
546
|
// https://go.mparticle.com/work/SQDSDKS-6323
|
|
547
|
-
var d=a.Identity.getCurrentUser(),e=a._Store.SDKConfig.identifyRequest;hasIdentityRequestChanged(d,e)&&(a.Identity.identify(a._Store.SDKConfig.identifyRequest,a._Store.SDKConfig.identityCallback),a._Store.identifyCalled=!0,a._Store.SDKConfig.identityCallback=null);}}else b.startNewSession();},this.getSession=function(){return a.Logger.warning(generateDeprecationMessage("SessionManager.getSession()","SessionManager.getSessionId()")),this.getSessionId()},this.getSessionId=function(){return a._Store.sessionId},this.startNewSession=function(){if(a.Logger.verbose(Messages$6.InformationMessages.StartingNewSession),a._Helpers.canLog()){a._Store.sessionId=a._Helpers.generateUniqueId().toUpperCase();var c=a.Identity.getCurrentUser(),d=c?c.getMPID():null;if(d&&(a._Store.currentSessionMPIDs=[d]),!a._Store.sessionStartDate){var e=new Date;a._Store.sessionStartDate=e,a._Store.dateLastEventSent=e;}b.setSessionTimer(),a._Store.identifyCalled||(a.Identity.identify(a._Store.SDKConfig.identifyRequest,a._Store.SDKConfig.identityCallback),a._Store.identifyCalled=!0,a._Store.SDKConfig.identityCallback=null),a._Events.logEvent({messageType:Types.MessageType.SessionStart});}else a.Logger.verbose(Messages$6.InformationMessages.AbandonStartSession);},this.endSession=function(c){var d,e,f,g,h;if(a.Logger.verbose(Messages$6.InformationMessages.StartingEndSession),c)return a._Events.logEvent({messageType:Types.MessageType.SessionEnd}),a._Store.nullifySession(),void(null===(d=a._timeOnSiteTimer)||void 0===d?void 0:d.resetTimer());if(!a._Helpers.canLog())return a.Logger.verbose(Messages$6.InformationMessages.AbandonEndSession),void(null===(e=a._timeOnSiteTimer)||void 0===e?void 0:e.resetTimer());var i,j,k=a._Persistence.getPersistence();if(!k||k.gs&&!k.gs.sid)return a.Logger.verbose(Messages$6.InformationMessages.NoSessionToEnd),void(null===(f=a._timeOnSiteTimer)||void 0===f?void 0:f.resetTimer());// sessionId is not equal to cookies.sid if cookies.sid is changed in another tab
|
|
547
|
+
var d=a.Identity.getCurrentUser(),e=a._Store.SDKConfig.identifyRequest;hasIdentityRequestChanged(d,e)&&(a.Identity.identify(a._Store.SDKConfig.identifyRequest,a._Store.SDKConfig.identityCallback),a._Store.identifyCalled=!0,a._Store.SDKConfig.identityCallback=null);}}else b.startNewSession();},this.getSession=function(){return a.Logger.warning(generateDeprecationMessage("SessionManager.getSession()",!1,"SessionManager.getSessionId()")),this.getSessionId()},this.getSessionId=function(){return a._Store.sessionId},this.startNewSession=function(){if(a.Logger.verbose(Messages$6.InformationMessages.StartingNewSession),a._Helpers.canLog()){a._Store.sessionId=a._Helpers.generateUniqueId().toUpperCase();var c=a.Identity.getCurrentUser(),d=c?c.getMPID():null;if(d&&(a._Store.currentSessionMPIDs=[d]),!a._Store.sessionStartDate){var e=new Date;a._Store.sessionStartDate=e,a._Store.dateLastEventSent=e;}b.setSessionTimer(),a._Store.identifyCalled||(a.Identity.identify(a._Store.SDKConfig.identifyRequest,a._Store.SDKConfig.identityCallback),a._Store.identifyCalled=!0,a._Store.SDKConfig.identityCallback=null),a._Events.logEvent({messageType:Types.MessageType.SessionStart});}else a.Logger.verbose(Messages$6.InformationMessages.AbandonStartSession);},this.endSession=function(c){var d,e,f,g,h;if(a.Logger.verbose(Messages$6.InformationMessages.StartingEndSession),c)return a._Events.logEvent({messageType:Types.MessageType.SessionEnd}),a._Store.nullifySession(),void(null===(d=a._timeOnSiteTimer)||void 0===d?void 0:d.resetTimer());if(!a._Helpers.canLog())return a.Logger.verbose(Messages$6.InformationMessages.AbandonEndSession),void(null===(e=a._timeOnSiteTimer)||void 0===e?void 0:e.resetTimer());var i,j,k=a._Persistence.getPersistence();if(!k||k.gs&&!k.gs.sid)return a.Logger.verbose(Messages$6.InformationMessages.NoSessionToEnd),void(null===(f=a._timeOnSiteTimer)||void 0===f?void 0:f.resetTimer());// sessionId is not equal to cookies.sid if cookies.sid is changed in another tab
|
|
548
548
|
if(k.gs.sid&&a._Store.sessionId!==k.gs.sid&&(a._Store.sessionId=k.gs.sid),null===(g=null===k||void 0===k?void 0:k.gs)||void 0===g?void 0:g.les){i=6e4*a._Store.SDKConfig.sessionTimeout;var l=new Date().getTime();j=l-k.gs.les,j<i?b.setSessionTimer():(a._Events.logEvent({messageType:Types.MessageType.SessionEnd}),a._Store.sessionStartDate=null,a._Store.nullifySession());}null===(h=a._timeOnSiteTimer)||void 0===h?void 0:h.resetTimer();},this.setSessionTimer=function(){var c=6e4*a._Store.SDKConfig.sessionTimeout;a._Store.globalTimer=window.setTimeout(function(){b.endSession();},c);},this.resetSessionTimer=function(){a._Store.webviewBridgeEnabled||(!a._Store.sessionId&&b.startNewSession(),b.clearSessionTimeout(),b.setSessionTimer()),b.startNewSessionIfNeeded();},this.clearSessionTimeout=function(){clearTimeout(a._Store.globalTimer);},this.startNewSessionIfNeeded=function(){if(!a._Store.webviewBridgeEnabled){var c=a._Persistence.getPersistence();!a._Store.sessionId&&c&&(c.sid?a._Store.sessionId=c.sid:b.startNewSession());}};}
|
|
549
549
|
|
|
550
550
|
var Messages$5=Constants.Messages;function Ecommerce(a){var b=this;// https://go.mparticle.com/work/SQDSDKS-4801
|
|
@@ -562,10 +562,10 @@ document.addEventListener("visibilitychange",function(){return a.handleVisibilit
|
|
|
562
562
|
|
|
563
563
|
function createSDKConfig(a){// TODO: Refactor to create a default config object
|
|
564
564
|
var b={};for(var c in Constants.DefaultConfig)Constants.DefaultConfig.hasOwnProperty(c)&&(b[c]=Constants.DefaultConfig[c]);if(a)for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);for(var c in Constants.DefaultBaseUrls)b[c]=Constants.DefaultBaseUrls[c];return b}// TODO: Merge this with SDKStoreApi in sdkRuntimeModels
|
|
565
|
-
function Store(a,b,c){var d=this,e=b._Helpers
|
|
566
|
-
persistenceData:{gs:{}}};for(var
|
|
565
|
+
function Store(a,b,c){var d=this,e=b._Helpers.createMainStorageName,f=b._NativeSdkHelpers.isWebviewEnabled,g={isEnabled:!0,noFunctional:!1,noTargeting:!1,sessionAttributes:{},localSessionAttributes:{},currentSessionMPIDs:[],consentState:null,sessionId:null,isFirstRun:null,clientId:null,deviceId:null,devToken:null,serverSettings:{},dateLastEventSent:null,sessionStartDate:null,currentPosition:null,isTracking:!1,watchPositionId:null,cartProducts:[],eventQueue:[],currencyCode:null,globalTimer:null,context:null,configurationLoaded:!1,identityCallInFlight:!1,SDKConfig:{},nonCurrentUserMPIDs:{},identifyCalled:!1,isLoggedIn:!1,cookieSyncDates:{},integrationAttributes:{},requireDelay:!0,isLocalStorageAvailable:null,storageName:null,activeForwarders:[],kits:{},sideloadedKits:[],configuredForwarders:[],pixelConfigurations:[],wrapperSDKInfo:{name:"none",version:null,isInfoSet:!1},// Placeholder for in-memory persistence model
|
|
566
|
+
persistenceData:{gs:{}}};for(var h in g)this[h]=g[h];if(this.devToken=c||null,this.integrationDelayTimeoutStart=Date.now(),this.SDKConfig=createSDKConfig(a),a){a.hasOwnProperty("flags")||(this.SDKConfig.flags={}),this.SDKConfig.flags=processFlags(a),a.deviceId&&(this.deviceId=a.deviceId),this.SDKConfig.isDevelopmentMode=!!a.hasOwnProperty("isDevelopmentMode")&&returnConvertedBoolean(a.isDevelopmentMode);var i=processBaseUrls(a,this.SDKConfig.flags,c);for(var j in i)this.SDKConfig[j]=i[j];if(a.hasOwnProperty("logLevel")&&(this.SDKConfig.logLevel=a.logLevel),this.SDKConfig.useNativeSdk=!!a.useNativeSdk,this.SDKConfig.kits=a.kits||{},this.SDKConfig.sideloadedKits=a.sideloadedKits||[],this.SDKConfig.isIOS=a.hasOwnProperty("isIOS")?a.isIOS:!!(window.mParticle&&window.mParticle.isIOS)&&window.mParticle.isIOS,this.SDKConfig.useCookieStorage=!!a.hasOwnProperty("useCookieStorage")&&a.useCookieStorage,this.SDKConfig.maxProducts=a.hasOwnProperty("maxProducts")?a.maxProducts:Constants.DefaultConfig.maxProducts,this.SDKConfig.maxCookieSize=a.hasOwnProperty("maxCookieSize")?a.maxCookieSize:Constants.DefaultConfig.maxCookieSize,a.hasOwnProperty("appName")&&(this.SDKConfig.appName=a.appName),a.hasOwnProperty("package")&&(this.SDKConfig["package"]=a["package"]),this.SDKConfig.integrationDelayTimeout=a.hasOwnProperty("integrationDelayTimeout")?a.integrationDelayTimeout:Constants.DefaultConfig.integrationDelayTimeout,a.hasOwnProperty("identifyRequest")&&(this.SDKConfig.identifyRequest=a.identifyRequest),a.hasOwnProperty("identityCallback")){var k=a.identityCallback;b._Helpers.Validators.isFunction(k)?this.SDKConfig.identityCallback=a.identityCallback:b.Logger.warning("The optional callback must be a function. You tried entering a(n) "+_typeof$1(k)+" . Callback not set. Please set your callback again.");}if(a.hasOwnProperty("appVersion")&&(this.SDKConfig.appVersion=a.appVersion),a.hasOwnProperty("appName")&&(this.SDKConfig.appName=a.appName),a.hasOwnProperty("sessionTimeout")&&(this.SDKConfig.sessionTimeout=a.sessionTimeout),a.hasOwnProperty("dataPlan")){this.SDKConfig.dataPlan={PlanVersion:null,PlanId:null};var l=a.dataPlan;l.planId&&(isDataPlanSlug(l.planId)?this.SDKConfig.dataPlan.PlanId=l.planId:b.Logger.error("Your data plan id must be a string and match the data plan slug format (i.e. under_case_slug)")),l.planVersion&&(isNumber(l.planVersion)?this.SDKConfig.dataPlan.PlanVersion=l.planVersion:b.Logger.error("Your data plan version must be a number"));}else this.SDKConfig.dataPlan={};if(this.SDKConfig.forceHttps=!a.hasOwnProperty("forceHttps")||a.forceHttps,this.SDKConfig.customFlags=a.customFlags||{},this.SDKConfig.minWebviewBridgeVersion=a.hasOwnProperty("minWebviewBridgeVersion")?a.minWebviewBridgeVersion:1,this.SDKConfig.aliasMaxWindow=a.hasOwnProperty("aliasMaxWindow")?a.aliasMaxWindow:Constants.DefaultConfig.aliasMaxWindow,a.hasOwnProperty("dataPlanOptions")){var m=a.dataPlanOptions;m.hasOwnProperty("dataPlanVersion")&&m.hasOwnProperty("blockUserAttributes")&&m.hasOwnProperty("blockEventAttributes")&&m.hasOwnProperty("blockEvents")&&m.hasOwnProperty("blockUserIdentities")||b.Logger.error("Ensure your config.dataPlanOptions object has the following keys: a \"dataPlanVersion\" object, and \"blockUserAttributes\", \"blockEventAttributes\", \"blockEvents\", \"blockUserIdentities\" booleans");}a.hasOwnProperty("onCreateBatch")&&("function"==typeof a.onCreateBatch?this.SDKConfig.onCreateBatch=a.onCreateBatch:(b.Logger.error("config.onCreateBatch must be a function"),this.SDKConfig.onCreateBatch=void 0));}this._getFromPersistence=function(a,b){return a?(d.syncPersistenceData(),d.persistenceData&&d.persistenceData[a]&&d.persistenceData[a][b]?d.persistenceData[a][b]:null):null},this._setPersistence=function(a,c,e){var f;a&&(d.syncPersistenceData(),d.persistenceData&&(d.persistenceData[a]?d.persistenceData[a][c]=e:d.persistenceData[a]=(f={},f[c]=e,f),isObject(d.persistenceData[a][c])&&isEmpty(d.persistenceData[a][c])&&delete d.persistenceData[a][c],b._Persistence.savePersistence(d.persistenceData)));},this.hasInvalidIdentifyRequest=function(){var a=d.SDKConfig.identifyRequest;return isObject(a)&&isObject(a.userIdentities)&&isEmpty(a.userIdentities)||!a},this.getConsentState=function(a){var c=b._Consent.ConsentSerialization.fromMinifiedJsonObject,e=d._getFromPersistence(a,"con");return isEmpty(e)?null:c(e)},this.setConsentState=function(a,c){var e=b._Consent.ConsentSerialization.toMinifiedJsonObject;// If ConsentState is null, we assume the intent is to clear out the consent state
|
|
567
567
|
(c||null===c)&&d._setPersistence(a,"con",e(c));},this.getNoFunctional=function(){return d.noFunctional},this.setNoFunctional=function(a){d.noFunctional=a;},this.getNoTargeting=function(){return d.noTargeting},this.setNoTargeting=function(a){d.noTargeting=a;},this.getPrivacyFlag=function(a){var b=StoragePrivacyMap[a];return "functional"===b?d.getNoFunctional():"targeting"===b&&d.getNoTargeting()},this.getDeviceId=function(){return d.deviceId},this.setDeviceId=function(a){d.deviceId=a,d.persistenceData.gs.das=a,b._Persistence.update();},this.getFirstSeenTime=function(a){return d._getFromPersistence(a,"fst")},this.setFirstSeenTime=function(a,b){if(a){var c=b||new Date().getTime();d._setPersistence(a,"fst",c);}},this.getLastSeenTime=function(a){if(!a)return null;// https://go.mparticle.com/work/SQDSDKS-6315
|
|
568
|
-
var c=b.Identity.getCurrentUser();return a===(null===c||void 0===c?void 0:c.getMPID())?new Date().getTime():d._getFromPersistence(a,"lst")},this.setLastSeenTime=function(a,b){if(a){var c=b||new Date().getTime();d._setPersistence(a,"lst",c);}},this.getLocalSessionAttributes=function(){return d.localSessionAttributes||{}},this.setLocalSessionAttribute=function(a,c){var e;d.localSessionAttributes[a]=c,d.persistenceData.gs.lsa=__assign(__assign({},d.persistenceData.gs.lsa||{}),(e={},e[a]=c,e)),b._Persistence.savePersistence(d.persistenceData);},this.syncPersistenceData=function(){var a=b._Persistence.getPersistence();d.persistenceData=b._Helpers.extend({},d.persistenceData,a);},this.getUserAttributes=function(a){return d._getFromPersistence(a,"ua")||{}},this.setUserAttributes=function(a,b){return d._setPersistence(a,"ua",b)},this.getUserIdentities=function(a){return d._getFromPersistence(a,"ui")||{}},this.setUserIdentities=function(a,b){d._setPersistence(a,"ui",b);},this.addMpidToSessionHistory=function(a,b){var c=d.currentSessionMPIDs.indexOf(a);return a&&b!==a&&0>c?void d.currentSessionMPIDs.push(a):void(0<=c&&(d.currentSessionMPIDs=moveElementToEnd(d.currentSessionMPIDs,c)))},this.nullifySession=function(){d.sessionId=null,d.dateLastEventSent=null,d.sessionAttributes={},d.localSessionAttributes={},b._Persistence.update();},this.processConfig=function(a){var
|
|
568
|
+
var c=b.Identity.getCurrentUser();return a===(null===c||void 0===c?void 0:c.getMPID())?new Date().getTime():d._getFromPersistence(a,"lst")},this.setLastSeenTime=function(a,b){if(a){var c=b||new Date().getTime();d._setPersistence(a,"lst",c);}},this.getLocalSessionAttributes=function(){return d.localSessionAttributes||{}},this.setLocalSessionAttribute=function(a,c){var e;d.localSessionAttributes[a]=c,d.persistenceData.gs.lsa=__assign(__assign({},d.persistenceData.gs.lsa||{}),(e={},e[a]=c,e)),b._Persistence.savePersistence(d.persistenceData);},this.syncPersistenceData=function(){var a=b._Persistence.getPersistence();d.persistenceData=b._Helpers.extend({},d.persistenceData,a);},this.getUserAttributes=function(a){return d._getFromPersistence(a,"ua")||{}},this.setUserAttributes=function(a,b){return d._setPersistence(a,"ua",b)},this.getUserIdentities=function(a){return d._getFromPersistence(a,"ui")||{}},this.setUserIdentities=function(a,b){d._setPersistence(a,"ui",b);},this.addMpidToSessionHistory=function(a,b){var c=d.currentSessionMPIDs.indexOf(a);return a&&b!==a&&0>c?void d.currentSessionMPIDs.push(a):void(0<=c&&(d.currentSessionMPIDs=moveElementToEnd(d.currentSessionMPIDs,c)))},this.nullifySession=function(){d.sessionId=null,d.dateLastEventSent=null,d.sessionAttributes={},d.localSessionAttributes={},b._Persistence.update();},this.processConfig=function(a){var g,h=a.workspaceToken,i=a.requiredWebviewBridgeName;d.SDKConfig.flags=processFlags(a);var j=processBaseUrls(a,d.SDKConfig.flags,c);for(var k in j)d.SDKConfig[k]=j[k];var l=null!==(g=null===a||void 0===a?void 0:a.launcherOptions)&&void 0!==g?g:{},m=l.noFunctional,n=l.noTargeting;null!=m&&d.setNoFunctional(m),null!=n&&d.setNoTargeting(n),h?(d.SDKConfig.workspaceToken=h,!d.getPrivacyFlag("TimeOnSite")&&(b._timeOnSiteTimer=new ForegroundTimeTracker(h))):b.Logger.warning("You should have a workspaceToken on your config object for security purposes."),d.storageName=e(h),d.SDKConfig.requiredWebviewBridgeName=i||h,d.webviewBridgeEnabled=f(d.SDKConfig.requiredWebviewBridgeName,d.SDKConfig.minWebviewBridgeVersion),d.configurationLoaded=!0;};}// https://go.mparticle.com/work/SQDSDKS-6317
|
|
569
569
|
function processFlags(a){var b={},c=Constants.FeatureFlags,d=c.ReportBatching,e=c.EventBatchingIntervalMillis,f=c.OfflineStorage,g=c.DirectUrlRouting,h=c.CacheIdentity,i=c.AudienceAPI,j=c.CaptureIntegrationSpecificIds,k=c.CaptureIntegrationSpecificIdsV2,l=c.AstBackgroundEvents;return a.flags?(b[d]=a.flags[d]||!1,b[e]=parseNumber(a.flags[e])||Constants.DefaultConfig.uploadInterval,b[f]=a.flags[f]||"0",b[g]="True"===a.flags[g],b[h]="True"===a.flags[h],b[i]="True"===a.flags[i],b[j]="True"===a.flags[j],b[k]=a.flags[k]||"none",b[l]="True"===a.flags[l],b):{};// https://go.mparticle.com/work/SQDSDKS-6317
|
|
570
570
|
// Passed in config flags take priority over defaults
|
|
571
571
|
}function processBaseUrls(a,b,c){// an API key is not present in a webview only mode. In this case, no baseUrls are needed
|
|
@@ -630,21 +630,18 @@ var Base64=Polyfill.Base64,Messages$4=Constants.Messages,Base64CookieKeys=Consta
|
|
|
630
630
|
this.useLocalStorage=function(){return !a._Store.SDKConfig.useCookieStorage&&a._Store.isLocalStorageAvailable},this.initializeStorage=function(){try{var b,c,d=f.getLocalStorage(),e=f.getCookie();// https://go.mparticle.com/work/SQDSDKS-6045
|
|
631
631
|
// Determine if there is any data in cookies or localStorage to figure out if it is the first time the browser is loading mParticle
|
|
632
632
|
if(d||e?a._Store.isFirstRun=!1:(a._Store.isFirstRun=!0,a._Store.mpid=0),a._Store.getPrivacyFlag("SDKState"))return;// https://go.mparticle.com/work/SQDSDKS-6045
|
|
633
|
-
|
|
634
|
-
try{if(a._Store.isLocalStorageAvailable){var g=localStorage.getItem(a._Store.prodStorageName);if(g)var h=JSON.parse(Base64.decode(g));a._Store.mpid&&f.storeProductsInMemory(h,a._Store.mpid);}}catch(b){a._Store.isLocalStorageAvailable&&localStorage.removeItem(a._Store.prodStorageName),a._Store.cartProducts=[],a.Logger.error("Error loading products in initialization: "+b);}// https://go.mparticle.com/work/SQDSDKS-6046
|
|
633
|
+
// https://go.mparticle.com/work/SQDSDKS-6046
|
|
635
634
|
// Stores all non-current user MPID information into the store
|
|
636
|
-
for(var
|
|
637
|
-
if(f&&(c=Base64.decode(f)),b)try{return c&&(e=JSON.parse(c)),d=c&&e[b]&&e[b].cp&&Array.isArray(e[b].cp)?e[b].cp:[],d}catch(a){return []}else return []},this.getAllUserProductsFromLS=function(){var b,c,d=localStorage.getItem(a._Store.prodStorageName);d&&(b=Base64.decode(d));// returns an object with keys of MPID and values of array of products
|
|
638
|
-
try{c=JSON.parse(b);}catch(a){c={};}return c},this.setLocalStorage=function(){if(a._Store.isLocalStorageAvailable){var c=a._Store.storageName,d=f.getAllUserProductsFromLS(),e=f.getLocalStorage()||{},g=a.Identity.getCurrentUser(),h=g?g.getMPID():null,i={cp:d[h]?d[h].cp:[]};if(h){d=d||{},d[h]=i;try{window.localStorage.setItem(encodeURIComponent(a._Store.prodStorageName),Base64.encode(JSON.stringify(d)));}catch(b){a.Logger.error("Error with setting products on localStorage.");}}if(!a._Store.SDKConfig.useCookieStorage){e.gs=e.gs||{},e.l=a._Store.isLoggedIn?1:0,a._Store.sessionId&&(e.gs.csm=a._Store.currentSessionMPIDs),e.gs.ie=a._Store.isEnabled,h&&(e.cu=h),Object.keys(a._Store.nonCurrentUserMPIDs).length&&(e=a._Helpers.extend({},e,a._Store.nonCurrentUserMPIDs),a._Store.nonCurrentUserMPIDs={}),e=b(e);try{window.localStorage.setItem(encodeURIComponent(c),f.encodePersistence(JSON.stringify(e)));}catch(b){a.Logger.error("Error with setting localStorage item.");}}}},this.getLocalStorage=function(){if(!a._Store.isLocalStorageAvailable)return null;var b,c=a._Store.storageName,d=f.decodePersistence(window.localStorage.getItem(c)),e={};if(d)for(b in d=JSON.parse(d),d)d.hasOwnProperty(b)&&(e[b]=d[b]);return Object.keys(e).length?e:null},this.expireCookies=function(a){var b,c,d,e=new Date;d=f.getCookieDomain(),c=""===d?"":";domain="+d,e.setTime(e.getTime()-86400000),b="; expires="+e.toUTCString(),document.cookie=a+"="+b+"; path=/"+c;},this.getCookie=function(){var b,c,d,e,g,h,j=a._Store.storageName,k=j?void 0:{};a.Logger.verbose(Messages$4.InformationMessages.CookieSearch);try{b=window.document.cookie.split("; ");}catch(b){return a.Logger.verbose("Unable to parse undefined cookie"),null}for(c=0,d=b.length;c<d;c++){try{e=b[c].split("="),g=e.shift(),h=e.join("=");}catch(b){a.Logger.verbose("Unable to parse cookie: "+g+". Skipping.");}if(j&&j===g){k=a._Helpers.converted(h);break}j||(k[g]=a._Helpers.converted(h));}return k?(a.Logger.verbose(Messages$4.InformationMessages.CookieFound),JSON.parse(f.decodePersistence(k))):null},this.setCookie=function(){var c,d=a.Identity.getCurrentUser();d&&(c=d.getMPID());var e,g,h,i=new Date,j=a._Store.storageName,k=f.getCookie()||{},l=new Date(i.getTime()+1e3*(60*(60*(24*a._Store.SDKConfig.cookieExpiration)))).toGMTString();e=f.getCookieDomain(),g=""===e?"":";domain="+e,k.gs=k.gs||{},a._Store.sessionId&&(k.gs.csm=a._Store.currentSessionMPIDs),c&&(k.cu=c),k.l=a._Store.isLoggedIn?1:0,k=b(k),Object.keys(a._Store.nonCurrentUserMPIDs).length&&(k=a._Helpers.extend({},k,a._Store.nonCurrentUserMPIDs),a._Store.nonCurrentUserMPIDs={}),h=f.reduceAndEncodePersistence(k,l,g,a._Store.SDKConfig.maxCookieSize),a.Logger.verbose(Messages$4.InformationMessages.CookieSet),window.document.cookie=encodeURIComponent(j)+"="+h;},this.reduceAndEncodePersistence=function(b,c,e,f){var g,h=b.gs.csm?b.gs.csm:[];// Comment 1 above
|
|
635
|
+
for(var g in a._Store.isLocalStorageAvailable||(a._Store.SDKConfig.useCookieStorage=!0),a._Store.isLocalStorageAvailable?(b=window.localStorage,a._Store.SDKConfig.useCookieStorage?(d?(c=e?a._Helpers.extend(!1,d,e):d,b.removeItem(a._Store.storageName)):e&&(c=e),f.storeDataInMemory(c)):e?(c=d?a._Helpers.extend(!1,d,e):e,f.storeDataInMemory(c),f.expireCookies(a._Store.storageName)):f.storeDataInMemory(d)):f.storeDataInMemory(e),c)c.hasOwnProperty(g)&&(SDKv2NonMPIDCookieKeys[g]||(a._Store.nonCurrentUserMPIDs[g]=c[g]));f.update();}catch(b){f.useLocalStorage()&&a._Store.isLocalStorageAvailable?localStorage.removeItem(a._Store.storageName):f.expireCookies(a._Store.storageName),a.Logger.error("Error initializing storage: "+b);}},this.update=function(){a._Store.webviewBridgeEnabled||a._Store.getPrivacyFlag("SDKState")||(a._Store.SDKConfig.useCookieStorage&&f.setCookie(),f.setLocalStorage());},this.storeDataInMemory=function(b,c){try{b?(a._Store.mpid=c?c:b.cu||0,b.gs=b.gs||{},a._Store.sessionId=b.gs.sid||a._Store.sessionId,a._Store.isEnabled="undefined"==typeof b.gs.ie?a._Store.isEnabled:b.gs.ie,a._Store.sessionAttributes=b.gs.sa||a._Store.sessionAttributes,a._Store.localSessionAttributes=b.gs.lsa||a._Store.localSessionAttributes,a._Store.serverSettings=b.gs.ss||a._Store.serverSettings,a._Store.devToken=a._Store.devToken||b.gs.dt,a._Store.SDKConfig.appVersion=a._Store.SDKConfig.appVersion||b.gs.av,a._Store.clientId=b.gs.cgid||a._Store.clientId||a._Helpers.generateUniqueId(),a._Store.deviceId=a._Store.deviceId||b.gs.das||a._Helpers.generateUniqueId(),a._Store.integrationAttributes=b.gs.ia||{},a._Store.context=b.gs.c||a._Store.context,a._Store.currentSessionMPIDs=b.gs.csm||a._Store.currentSessionMPIDs,a._Store.isLoggedIn=!0===b.l,b.gs.les&&(a._Store.dateLastEventSent=new Date(b.gs.les)),a._Store.sessionStartDate=b.gs.ssd?new Date(b.gs.ssd):new Date,b=c?b[c]:b[b.cu]):(a.Logger.verbose(Messages$4.InformationMessages.CookieNotFound),a._Store.clientId=a._Store.clientId||a._Helpers.generateUniqueId(),a._Store.deviceId=a._Store.deviceId||a._Helpers.generateUniqueId());}catch(b){a.Logger.error(Messages$4.ErrorMessages.CookieParseError);}},this.determineLocalStorageAvailability=function(a){var b;window.mParticle&&window.mParticle._forceNoLocalStorage&&(a=void 0);try{return a.setItem("mparticle","test"),b="test"===a.getItem("mparticle"),a.removeItem("mparticle"),b&&a}catch(a){return !1}},this.setLocalStorage=function(){if(a._Store.isLocalStorageAvailable){var c=a._Store.storageName,d=f.getLocalStorage()||{},e=a.Identity.getCurrentUser(),g=e?e.getMPID():null;if(!a._Store.SDKConfig.useCookieStorage){d.gs=d.gs||{},d.l=a._Store.isLoggedIn?1:0,a._Store.sessionId&&(d.gs.csm=a._Store.currentSessionMPIDs),d.gs.ie=a._Store.isEnabled,g&&(d.cu=g),Object.keys(a._Store.nonCurrentUserMPIDs).length&&(d=a._Helpers.extend({},d,a._Store.nonCurrentUserMPIDs),a._Store.nonCurrentUserMPIDs={}),d=b(d);try{window.localStorage.setItem(encodeURIComponent(c),f.encodePersistence(JSON.stringify(d)));}catch(b){a.Logger.error("Error with setting localStorage item.");}}}},this.getLocalStorage=function(){if(!a._Store.isLocalStorageAvailable)return null;var b,c=a._Store.storageName,d=f.decodePersistence(window.localStorage.getItem(c)),e={};if(d)for(b in d=JSON.parse(d),d)d.hasOwnProperty(b)&&(e[b]=d[b]);return Object.keys(e).length?e:null},this.expireCookies=function(a){var b,c,d,e=new Date;d=f.getCookieDomain(),c=""===d?"":";domain="+d,e.setTime(e.getTime()-86400000),b="; expires="+e.toUTCString(),document.cookie=a+"="+b+"; path=/"+c;},this.getCookie=function(){var b,c,d,e,g,h,j=a._Store.storageName,k=j?void 0:{};a.Logger.verbose(Messages$4.InformationMessages.CookieSearch);try{b=window.document.cookie.split("; ");}catch(b){return a.Logger.verbose("Unable to parse undefined cookie"),null}for(c=0,d=b.length;c<d;c++){try{e=b[c].split("="),g=e.shift(),h=e.join("=");}catch(b){a.Logger.verbose("Unable to parse cookie: "+g+". Skipping.");}if(j&&j===g){k=a._Helpers.converted(h);break}j||(k[g]=a._Helpers.converted(h));}return k?(a.Logger.verbose(Messages$4.InformationMessages.CookieFound),JSON.parse(f.decodePersistence(k))):null},this.setCookie=function(){var c,d=a.Identity.getCurrentUser();d&&(c=d.getMPID());var e,g,h,i=new Date,j=a._Store.storageName,k=f.getCookie()||{},l=new Date(i.getTime()+1e3*(60*(60*(24*a._Store.SDKConfig.cookieExpiration)))).toGMTString();e=f.getCookieDomain(),g=""===e?"":";domain="+e,k.gs=k.gs||{},a._Store.sessionId&&(k.gs.csm=a._Store.currentSessionMPIDs),c&&(k.cu=c),k.l=a._Store.isLoggedIn?1:0,k=b(k),Object.keys(a._Store.nonCurrentUserMPIDs).length&&(k=a._Helpers.extend({},k,a._Store.nonCurrentUserMPIDs),a._Store.nonCurrentUserMPIDs={}),h=f.reduceAndEncodePersistence(k,l,g,a._Store.SDKConfig.maxCookieSize),a.Logger.verbose(Messages$4.InformationMessages.CookieSet),window.document.cookie=encodeURIComponent(j)+"="+h;},this.reduceAndEncodePersistence=function(b,c,e,f){var g,h=b.gs.csm?b.gs.csm:[];// Comment 1 above
|
|
639
636
|
if(!h.length)for(var j in b)b.hasOwnProperty(j)&&(g=d(b,c,e),g.length>f&&!SDKv2NonMPIDCookieKeys[j]&&j!==b.cu&&delete b[j]);else {// Comment 2 above - First create an object of all MPIDs on the cookie
|
|
640
637
|
var k={};for(var l in b)b.hasOwnProperty(l)&&(SDKv2NonMPIDCookieKeys[l]||l===b.cu||(k[l]=1));// Comment 2a above
|
|
641
638
|
if(Object.keys(k).length)for(var m in k)g=d(b,c,e),g.length>f&&k.hasOwnProperty(m)&&-1===h.indexOf(m)&&delete b[m];// Comment 2b above
|
|
642
639
|
for(var n,o=0;o<h.length&&(g=d(b,c,e),g.length>f);o++)n=h[o],b[n]?(a.Logger.verbose("Size of new encoded cookie is larger than maxCookieSize setting of "+f+". Removing from cookie the earliest logged in MPID containing: "+JSON.stringify(b[n],0,2)),delete b[n]):a.Logger.error("Unable to save MPID data to cookies because the resulting encoded cookie is larger than the maxCookieSize setting of "+f+". We recommend using a maxCookieSize of 1500.");}return g},this.findPrevCookiesBasedOnUI=function(b){var c,d=a._Persistence.getPersistence();if(b)for(var e in b.userIdentities)if(d&&Object.keys(d).length)for(var g in d)// any value in persistence that has an MPID key will be an MPID to search through
|
|
643
640
|
// other keys on the cookie are currentSessionMPIDs and currentMPID which should not be searched
|
|
644
|
-
if(d[g].mpid){var h=d[g].ui;for(var i in h)if(e===i&&b.userIdentities[e]===h[i]){c=g;break}}c&&f.storeDataInMemory(d,c);},this.encodePersistence=function(b){for(var c in b=JSON.parse(b),b.gs)b.gs.hasOwnProperty(c)&&(Base64CookieKeys[c]?b.gs[c]?Array.isArray(b.gs[c])&&b.gs[c].length||a._Helpers.isObject(b.gs[c])&&Object.keys(b.gs[c]).length?b.gs[c]=Base64.encode(JSON.stringify(b.gs[c])):delete b.gs[c]:delete b.gs[c]:"ie"===c?b.gs[c]=b.gs[c]?1:0:!b.gs[c]&&delete b.gs[c]);for(var d in b)if(b.hasOwnProperty(d)&&!SDKv2NonMPIDCookieKeys[d])for(c in b[d])b[d].hasOwnProperty(c)&&Base64CookieKeys[c]&&(a._Helpers.isObject(b[d][c])&&Object.keys(b[d][c]).length?b[d][c]=Base64.encode(JSON.stringify(b[d][c])):delete b[d][c]);return createCookieString(JSON.stringify(b))},this.decodePersistence=function(b){try{if(b){if(b=JSON.parse(revertCookieString(b)),a._Helpers.isObject(b)&&Object.keys(b).length){for(var c in b.gs)b.gs.hasOwnProperty(c)&&(Base64CookieKeys[c]?b.gs[c]=JSON.parse(Base64.decode(b.gs[c])):"ie"===c&&(b.gs[c]=!!b.gs[c]));for(var d in b)if(b.hasOwnProperty(d))if(!SDKv2NonMPIDCookieKeys[d])for(c in b[d])b[d].hasOwnProperty(c)&&Base64CookieKeys[c]&&b[d][c].length&&(b[d][c]=JSON.parse(Base64.decode(b[d][c])));else "l"===d&&(b[d]=!!b[d]);}return JSON.stringify(b)}}catch(b){a.Logger.error("Problem with decoding cookie",b);}},this.getCookieDomain=function(){if(a._Store.SDKConfig.cookieDomain)return a._Store.SDKConfig.cookieDomain;var b=f.getDomain(document,location.hostname);return ""===b?"":"."+b},this.getDomain=function(a,b){var c,d,e=b.split(".");for(c=e.length-1;0<=c;c--)if(d=e.slice(c).join("."),a.cookie="mptest=cookie;domain=."+d+";",-1<a.cookie.indexOf("mptest=cookie"))return a.cookie="mptest=;domain=."+d+";expires=Thu, 01 Jan 1970 00:00:01 GMT;",d;return ""},this.
|
|
641
|
+
if(d[g].mpid){var h=d[g].ui;for(var i in h)if(e===i&&b.userIdentities[e]===h[i]){c=g;break}}c&&f.storeDataInMemory(d,c);},this.encodePersistence=function(b){for(var c in b=JSON.parse(b),b.gs)b.gs.hasOwnProperty(c)&&(Base64CookieKeys[c]?b.gs[c]?Array.isArray(b.gs[c])&&b.gs[c].length||a._Helpers.isObject(b.gs[c])&&Object.keys(b.gs[c]).length?b.gs[c]=Base64.encode(JSON.stringify(b.gs[c])):delete b.gs[c]:delete b.gs[c]:"ie"===c?b.gs[c]=b.gs[c]?1:0:!b.gs[c]&&delete b.gs[c]);for(var d in b)if(b.hasOwnProperty(d)&&!SDKv2NonMPIDCookieKeys[d])for(c in b[d])b[d].hasOwnProperty(c)&&Base64CookieKeys[c]&&(a._Helpers.isObject(b[d][c])&&Object.keys(b[d][c]).length?b[d][c]=Base64.encode(JSON.stringify(b[d][c])):delete b[d][c]);return createCookieString(JSON.stringify(b))},this.decodePersistence=function(b){try{if(b){if(b=JSON.parse(revertCookieString(b)),a._Helpers.isObject(b)&&Object.keys(b).length){for(var c in b.gs)b.gs.hasOwnProperty(c)&&(Base64CookieKeys[c]?b.gs[c]=JSON.parse(Base64.decode(b.gs[c])):"ie"===c&&(b.gs[c]=!!b.gs[c]));for(var d in b)if(b.hasOwnProperty(d))if(!SDKv2NonMPIDCookieKeys[d])for(c in b[d])b[d].hasOwnProperty(c)&&Base64CookieKeys[c]&&b[d][c].length&&(b[d][c]=JSON.parse(Base64.decode(b[d][c])));else "l"===d&&(b[d]=!!b[d]);}return JSON.stringify(b)}}catch(b){a.Logger.error("Problem with decoding cookie",b);}},this.getCookieDomain=function(){if(a._Store.SDKConfig.cookieDomain)return a._Store.SDKConfig.cookieDomain;var b=f.getDomain(document,location.hostname);return ""===b?"":"."+b},this.getDomain=function(a,b){var c,d,e=b.split(".");for(c=e.length-1;0<=c;c--)if(d=e.slice(c).join("."),a.cookie="mptest=cookie;domain=."+d+";",-1<a.cookie.indexOf("mptest=cookie"))return a.cookie="mptest=;domain=."+d+";expires=Thu, 01 Jan 1970 00:00:01 GMT;",d;return ""},this.saveUserCookieSyncDatesToPersistence=function(a,b){if(b){var c=f.getPersistence();c&&(c[a]?c[a].csd=b:c[a]={csd:b}),f.savePersistence(c);}},this.swapCurrentUser=function(a,b,c){if(a&&b&&a!==b){var d=f.getPersistence();d&&(d.cu=b,d.gs.csm=c,f.savePersistence(d));}},this.savePersistence=function(b){if(!a._Store.getPrivacyFlag("SDKState")){var c,d=f.encodePersistence(JSON.stringify(b)),e=new Date,g=a._Store.storageName,h=new Date(e.getTime()+1e3*(60*(60*(24*a._Store.SDKConfig.cookieExpiration)))).toGMTString(),i=f.getCookieDomain();if(c=""===i?"":";domain="+i,a._Store.SDKConfig.useCookieStorage){var j=f.reduceAndEncodePersistence(b,h,c,a._Store.SDKConfig.maxCookieSize);window.document.cookie=encodeURIComponent(g)+"="+j;}else a._Store.isLocalStorageAvailable&&localStorage.setItem(a._Store.storageName,d);}},this.getPersistence=function(){if(a._Store.getPrivacyFlag("SDKState"))return null;var b=this.useLocalStorage()?this.getLocalStorage():this.getCookie();return b},this.getFirstSeenTime=function(a){if(!a)return null;var b=f.getPersistence();return b&&b[a]&&b[a].fst?b[a].fst:null},this.setFirstSeenTime=function(a,b){if(a){b||(b=new Date().getTime());var c=f.getPersistence();c&&(!c[a]&&(c[a]={}),!c[a].fst&&(c[a].fst=b,f.savePersistence(c)));}// https://go.mparticle.com/work/SQDSDKS-6329
|
|
645
642
|
},this.getLastSeenTime=function(b){if(!b)return null;if(b===a.Identity.getCurrentUser().getMPID())//if the mpid is the current user, its last seen time is the current time
|
|
646
643
|
return new Date().getTime();var c=f.getPersistence();return c&&c[b]&&c[b].lst?c[b].lst:null},this.setLastSeenTime=function(a,b){if(a){b||(b=new Date().getTime());var c=f.getPersistence();c&&c[a]&&(c[a].lst=b,f.savePersistence(c));}// https://go.mparticle.com/work/SQDSDKS-6329
|
|
647
|
-
},this.getDeviceId=function(){return a._Store.deviceId},this.setDeviceId=function(b){a._Store.deviceId=b,f.update();},this.resetPersistence=function(){if(c(StorageNames.localStorageName),c(StorageNames.localStorageNameV3),c(StorageNames.localStorageNameV4),c(a._Store.
|
|
644
|
+
},this.getDeviceId=function(){return a._Store.deviceId},this.setDeviceId=function(b){a._Store.deviceId=b,f.update();},this.resetPersistence=function(){if(c(StorageNames.localStorageName),c(StorageNames.localStorageNameV3),c(StorageNames.localStorageNameV4),c(a._Store.storageName),c(StorageNames.localStorageProductsV4),f.expireCookies(StorageNames.cookieName),f.expireCookies(StorageNames.cookieNameV2),f.expireCookies(StorageNames.cookieNameV3),f.expireCookies(StorageNames.cookieNameV4),f.expireCookies(a._Store.storageName),mParticle._isTestEnv){c(a._Helpers.createMainStorageName("abcdef")),f.expireCookies(a._Helpers.createMainStorageName("abcdef"));}},this.forwardingStatsBatches={uploadsTable:{},forwardingStatsEventQueue:[]};}
|
|
648
645
|
|
|
649
646
|
var Messages$3=Constants.Messages;function Events(a){var b=this;this.logEvent=function(b,c){if(a.Logger.verbose(Messages$3.InformationMessages.StartingLogEvent+": "+b.name),a._Helpers.canLog()){var d=a._ServerModel.createEventObject(b);a._APIClient.sendEventToServer(d,c);}else a.Logger.verbose(Messages$3.InformationMessages.AbandonLogEvent);},this.startTracking=function(b){function c(b,c){if(b)try{c?b(c):b();}catch(b){a.Logger.error("Error invoking the callback passed to startTrackingLocation."),a.Logger.error(b);}}if(!a._Store.isTracking)"geolocation"in navigator&&(a._Store.watchPositionId=navigator.geolocation.watchPosition(function e(d){// prevents callback from being fired multiple times
|
|
650
647
|
a._Store.currentPosition={lat:d.coords.latitude,lng:d.coords.longitude},c(b,d),b=null,a._Store.isTracking=!0;},function d(){// prevents callback from being fired multiple times
|
|
@@ -1110,7 +1107,7 @@ for(var e,f=window.mParticle,g=window.mParticle,h=0,i=d;h<i.length;h++)// Keep t
|
|
|
1110
1107
|
e=i[h],g=f,f=f[e];// Apply the function with its proper context
|
|
1111
1108
|
f.apply(g,b);}catch(a){throw new Error("Unable to compute proper mParticle function "+a)}}};
|
|
1112
1109
|
|
|
1113
|
-
var Messages$2=Constants.Messages,HTTPCodes$2=Constants.HTTPCodes,FeatureFlags$1=Constants.FeatureFlags,IdentityMethods$1=Constants.IdentityMethods,ErrorMessages=Messages$2.ErrorMessages,CacheIdentity=FeatureFlags$1.CacheIdentity,Identify=IdentityMethods$1.Identify,Modify$1=IdentityMethods$1.Modify,Login=IdentityMethods$1.Login,Logout=IdentityMethods$1.Logout;function Identity(
|
|
1110
|
+
var Messages$2=Constants.Messages,HTTPCodes$2=Constants.HTTPCodes,FeatureFlags$1=Constants.FeatureFlags,IdentityMethods$1=Constants.IdentityMethods,ErrorMessages=Messages$2.ErrorMessages,CacheIdentity=FeatureFlags$1.CacheIdentity,Identify=IdentityMethods$1.Identify,Modify$1=IdentityMethods$1.Modify,Login=IdentityMethods$1.Login,Logout=IdentityMethods$1.Logout;function Identity(a){var b=a._Helpers,c=b.getFeatureFlag,d=b.extend,e=this;// https://go.mparticle.com/work/SQDSDKS-6353
|
|
1114
1111
|
/**
|
|
1115
1112
|
* Invoke these methods on the mParticle.Identity object.
|
|
1116
1113
|
* Example: mParticle.Identity.getCurrentUser().
|
|
@@ -1129,53 +1126,53 @@ var Messages$2=Constants.Messages,HTTPCodes$2=Constants.HTTPCodes,FeatureFlags$1
|
|
|
1129
1126
|
// send a user identity change request on identify, login, logout, modify when any values change.
|
|
1130
1127
|
// compare what identities exist vs what is previously was for the specific user if they were in memory before.
|
|
1131
1128
|
// if it's the first time the user is logging in, send a user identity change request with
|
|
1132
|
-
this.idCache=null,this.audienceManager=null,this.IdentityRequest={preProcessIdentityRequest:function preProcessIdentityRequest(
|
|
1133
|
-
var
|
|
1134
|
-
combineUserIdentities:function combineUserIdentities(
|
|
1135
|
-
!1!==
|
|
1129
|
+
this.idCache=null,this.audienceManager=null,this.IdentityRequest={preProcessIdentityRequest:function preProcessIdentityRequest(b,c,d){a.Logger.verbose(Messages$2.InformationMessages.StartingLogEvent+": "+d);// First, remove any falsy identity values and warn about them
|
|
1130
|
+
var e=a._Helpers.Validators.removeFalsyIdentityValues(b,a.Logger),f=a._Helpers.Validators.validateIdentities(e,d);if(!f.valid)return a.Logger.error("ERROR: "+f.error),{valid:!1,error:f.error};if(c&&!a._Helpers.Validators.isFunction(c)){var g="The optional callback must be a function. You tried entering a(n) "+_typeof$1(c);return a.Logger.error(g),{valid:!1,error:g}}return {valid:!0,cleanedIdentities:e}},createIdentityRequest:function createIdentityRequest(b,c,d,e,f,g,h){var i={client_sdk:{platform:c,sdk_vendor:d,sdk_version:e},context:g,environment:a._Store.SDKConfig.isDevelopmentMode?"development":"production",request_id:a._Helpers.generateUniqueId(),request_timestamp_ms:new Date().getTime(),previous_mpid:h||null,known_identities:createKnownIdentities(b,f)};return i},createModifyIdentityRequest:function createModifyIdentityRequest(b,c,d,e,f,g){return {client_sdk:{platform:d,sdk_vendor:e,sdk_version:f},context:g,environment:a._Store.SDKConfig.isDevelopmentMode?"development":"production",request_id:a._Helpers.generateUniqueId(),request_timestamp_ms:new Date().getTime(),identity_changes:this.createIdentityChanges(b,c)}},createIdentityChanges:function createIdentityChanges(a,b){var c,d=[];if(b&&isObject(b)&&a&&isObject(a))for(c in b)d.push({old_value:a[c]||null,new_value:b[c],identity_type:c});return d},// takes 2 UI objects keyed by name, combines them, returns them keyed by type
|
|
1131
|
+
combineUserIdentities:function combineUserIdentities(a,b){var c={},e=d({},a,b);for(var f in e){var g=Types.IdentityType.getIdentityType(f);// this check removes anything that is not whitelisted as an identity type
|
|
1132
|
+
!1!==g&&0<=g&&(c[Types.IdentityType.getIdentityType(f)]=e[f]);}return c},createAliasNetworkRequest:function createAliasNetworkRequest(b){return {request_id:a._Helpers.generateUniqueId(),request_type:"alias",environment:a._Store.SDKConfig.isDevelopmentMode?"development":"production",api_key:a._Store.devToken,data:{destination_mpid:b.destinationMpid,source_mpid:b.sourceMpid,start_unixtime_ms:b.startTime,end_unixtime_ms:b.endTime,scope:b.scope,device_application_stamp:a._Store.deviceId}}},convertAliasToNative:function convertAliasToNative(a){return {DestinationMpid:a.destinationMpid,SourceMpid:a.sourceMpid,StartUnixtimeMs:a.startTime,EndUnixtimeMs:a.endTime}},convertToNative:function convertToNative(a){var b=[];if(a&&a.userIdentities){for(var c in a.userIdentities)a.userIdentities.hasOwnProperty(c)&&b.push({Type:Types.IdentityType.getIdentityType(c),Identity:a.userIdentities[c]});return {UserIdentities:b}}}},this.IdentityAPI={HTTPCodes:HTTPCodes$2,/**
|
|
1136
1133
|
* Initiate a logout request to the mParticle server
|
|
1137
1134
|
* @method identify
|
|
1138
1135
|
* @param {Object} identityApiData The identityApiData object as indicated [here](https://github.com/mParticle/mparticle-sdk-javascript/blob/master-v2/README.md#1-customize-the-sdk)
|
|
1139
1136
|
* @param {Function} [callback] A callback function that is called when the identify request completes
|
|
1140
|
-
*/identify:function identify(
|
|
1141
|
-
var
|
|
1137
|
+
*/identify:function identify(b,c){// https://go.mparticle.com/work/SQDSDKS-6337
|
|
1138
|
+
var d,f=a.Identity.getCurrentUser(),g=a._Identity.IdentityRequest.preProcessIdentityRequest(b,c,Identify);if(f&&(d=f.getMPID()),g.valid){var h=a._Identity.IdentityRequest.createIdentityRequest(g.cleanedIdentities,Constants.platform,Constants.sdkVendor,Constants.sdkVersion,a._Store.deviceId,a._Store.context,d);if(a._Helpers.getFeatureFlag(Constants.FeatureFlags.CacheIdentity)){var i=tryCacheIdentity(h.known_identities,e.idCache,e.parseIdentityResponse,d,c,b,Identify);if(i)return}a._Helpers.canLog()?a._Store.webviewBridgeEnabled?(a._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.Identify,JSON.stringify(a._Identity.IdentityRequest.convertToNative(b))),a._Helpers.invokeCallback(c,HTTPCodes$2.nativeIdentityRequest,"Identify request sent to native sdk")):a._IdentityAPIClient.sendIdentityRequest(h,Identify,c,b,e.parseIdentityResponse,d,h.known_identities):(a._Helpers.invokeCallback(c,HTTPCodes$2.loggingDisabledOrMissingAPIKey,Messages$2.InformationMessages.AbandonLogEvent),a.Logger.verbose(Messages$2.InformationMessages.AbandonLogEvent));}else a._Helpers.invokeCallback(c,HTTPCodes$2.validationIssue,g.error),a.Logger.verbose(g);},/**
|
|
1142
1139
|
* Initiate a logout request to the mParticle server
|
|
1143
1140
|
* @method logout
|
|
1144
1141
|
* @param {Object} identityApiData The identityApiData object as indicated [here](https://github.com/mParticle/mparticle-sdk-javascript/blob/master-v2/README.md#1-customize-the-sdk)
|
|
1145
1142
|
* @param {Function} [callback] A callback function that is called when the logout request completes
|
|
1146
|
-
*/logout:function logout(
|
|
1147
|
-
var
|
|
1143
|
+
*/logout:function logout(b,c){// https://go.mparticle.com/work/SQDSDKS-6337
|
|
1144
|
+
var d,f=a.Identity.getCurrentUser(),g=a._Identity.IdentityRequest.preProcessIdentityRequest(b,c,Logout);if(f&&(d=f.getMPID()),g.valid){var h,i=a._Identity.IdentityRequest.createIdentityRequest(g.cleanedIdentities,Constants.platform,Constants.sdkVendor,Constants.sdkVersion,a._Store.deviceId,a._Store.context,d);a._Helpers.canLog()?a._Store.webviewBridgeEnabled?(a._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.Logout,JSON.stringify(a._Identity.IdentityRequest.convertToNative(b))),a._Helpers.invokeCallback(c,HTTPCodes$2.nativeIdentityRequest,"Logout request sent to native sdk")):(a._IdentityAPIClient.sendIdentityRequest(i,Logout,c,b,e.parseIdentityResponse,d),h=a._ServerModel.createEventObject({messageType:Types.MessageType.Profile}),h.ProfileMessageType=Types.ProfileMessageType.Logout,a._Store.activeForwarders.length&&a._Store.activeForwarders.forEach(function(a){a.logOut&&a.logOut(h);})):(a._Helpers.invokeCallback(c,HTTPCodes$2.loggingDisabledOrMissingAPIKey,Messages$2.InformationMessages.AbandonLogEvent),a.Logger.verbose(Messages$2.InformationMessages.AbandonLogEvent));}else a._Helpers.invokeCallback(c,HTTPCodes$2.validationIssue,g.error),a.Logger.verbose(g);},/**
|
|
1148
1145
|
* Initiate a login request to the mParticle server
|
|
1149
1146
|
* @method login
|
|
1150
1147
|
* @param {Object} identityApiData The identityApiData object as indicated [here](https://github.com/mParticle/mparticle-sdk-javascript/blob/master-v2/README.md#1-customize-the-sdk)
|
|
1151
1148
|
* @param {Function} [callback] A callback function that is called when the login request completes
|
|
1152
|
-
*/login:function login(
|
|
1153
|
-
var
|
|
1149
|
+
*/login:function login(b,c){// https://go.mparticle.com/work/SQDSDKS-6337
|
|
1150
|
+
var d,f=a.Identity.getCurrentUser(),g=a._Identity.IdentityRequest.preProcessIdentityRequest(b,c,Login);if(f&&(d=f.getMPID()),g.valid){var h=a._Identity.IdentityRequest.createIdentityRequest(g.cleanedIdentities,Constants.platform,Constants.sdkVendor,Constants.sdkVersion,a._Store.deviceId,a._Store.context,d);if(a._Helpers.getFeatureFlag(Constants.FeatureFlags.CacheIdentity)){var i=tryCacheIdentity(h.known_identities,e.idCache,e.parseIdentityResponse,d,c,b,Login);if(i)return}a._Helpers.canLog()?a._Store.webviewBridgeEnabled?(a._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.Login,JSON.stringify(a._Identity.IdentityRequest.convertToNative(b))),a._Helpers.invokeCallback(c,HTTPCodes$2.nativeIdentityRequest,"Login request sent to native sdk")):a._IdentityAPIClient.sendIdentityRequest(h,Login,c,b,e.parseIdentityResponse,d,h.known_identities):(a._Helpers.invokeCallback(c,HTTPCodes$2.loggingDisabledOrMissingAPIKey,Messages$2.InformationMessages.AbandonLogEvent),a.Logger.verbose(Messages$2.InformationMessages.AbandonLogEvent));}else a._Helpers.invokeCallback(c,HTTPCodes$2.validationIssue,g.error),a.Logger.verbose(g);},/**
|
|
1154
1151
|
* Initiate a modify request to the mParticle server
|
|
1155
1152
|
* @method modify
|
|
1156
1153
|
* @param {Object} identityApiData The identityApiData object as indicated [here](https://github.com/mParticle/mparticle-sdk-javascript/blob/master-v2/README.md#1-customize-the-sdk)
|
|
1157
1154
|
* @param {Function} [callback] A callback function that is called when the modify request completes
|
|
1158
|
-
*/modify:function modify(
|
|
1159
|
-
var
|
|
1155
|
+
*/modify:function modify(b,c){// https://go.mparticle.com/work/SQDSDKS-6337
|
|
1156
|
+
var d,f=a.Identity.getCurrentUser(),g=a._Identity.IdentityRequest.preProcessIdentityRequest(b,c,Modify$1);if(f&&(d=f.getMPID()),g.valid){var h=b&&b.userIdentities?g.cleanedIdentities.userIdentities:{},i=a._Identity.IdentityRequest.createModifyIdentityRequest(f?f.getUserIdentities().userIdentities:{},h,Constants.platform,Constants.sdkVendor,Constants.sdkVersion,a._Store.context);a._Helpers.canLog()?a._Store.webviewBridgeEnabled?(a._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.Modify,JSON.stringify(a._Identity.IdentityRequest.convertToNative(b))),a._Helpers.invokeCallback(c,HTTPCodes$2.nativeIdentityRequest,"Modify request sent to native sdk")):a._IdentityAPIClient.sendIdentityRequest(i,Modify$1,c,b,e.parseIdentityResponse,d,i.known_identities):(a._Helpers.invokeCallback(c,HTTPCodes$2.loggingDisabledOrMissingAPIKey,Messages$2.InformationMessages.AbandonLogEvent),a.Logger.verbose(Messages$2.InformationMessages.AbandonLogEvent));}else a._Helpers.invokeCallback(c,HTTPCodes$2.validationIssue,g.error),a.Logger.verbose(g);},/**
|
|
1160
1157
|
* Returns a user object with methods to interact with the current user
|
|
1161
1158
|
* @method getCurrentUser
|
|
1162
1159
|
* @return {Object} the current user object
|
|
1163
|
-
*/getCurrentUser:function getCurrentUser(){var
|
|
1160
|
+
*/getCurrentUser:function getCurrentUser(){var b;return a._Store?(b=a._Store.mpid,b?(b=a._Store.mpid.slice(),e.mParticleUser(b,a._Store.isLoggedIn)):a._Store.webviewBridgeEnabled?e.mParticleUser():null):null},/**
|
|
1164
1161
|
* Returns a the user object associated with the mpid parameter or 'null' if no such
|
|
1165
1162
|
* user exists
|
|
1166
1163
|
* @method getUser
|
|
1167
1164
|
* @param {String} mpid of the desired user
|
|
1168
1165
|
* @return {Object} the user for mpid
|
|
1169
|
-
*/getUser:function getUser(
|
|
1166
|
+
*/getUser:function getUser(b){var c=a._Persistence.getPersistence();return c?c[b]&&!Constants.SDKv2NonMPIDCookieKeys.hasOwnProperty(b)?e.mParticleUser(b):null:null},/**
|
|
1170
1167
|
* Returns all users, including the current user and all previous users that are stored on the device.
|
|
1171
1168
|
* @method getUsers
|
|
1172
1169
|
* @return {Array} array of users
|
|
1173
|
-
*/getUsers:function getUsers(){var
|
|
1170
|
+
*/getUsers:function getUsers(){var b=a._Persistence.getPersistence(),c=[];if(b)for(var d in b)Constants.SDKv2NonMPIDCookieKeys.hasOwnProperty(d)||c.push(e.mParticleUser(d));return c.sort(function(c,a){var b=c.getLastSeenTime()||0,d=a.getLastSeenTime()||0;return b>d?-1:1}),c},/**
|
|
1174
1171
|
* Initiate an alias request to the mParticle server
|
|
1175
1172
|
* @method aliasUsers
|
|
1176
1173
|
* @param {Object} aliasRequest object representing an AliasRequest
|
|
1177
1174
|
* @param {Function} [callback] A callback function that is called when the aliasUsers request completes
|
|
1178
|
-
*/aliasUsers:function aliasUsers(
|
|
1175
|
+
*/aliasUsers:function aliasUsers(b,c){var d;if(b.destinationMpid&&b.sourceMpid||(d=Messages$2.ValidationMessages.AliasMissingMpid),b.destinationMpid===b.sourceMpid&&(d=Messages$2.ValidationMessages.AliasNonUniqueMpid),b.startTime&&b.endTime||(d=Messages$2.ValidationMessages.AliasMissingTime),b.startTime>b.endTime&&(d=Messages$2.ValidationMessages.AliasStartBeforeEndTime),d)return a.Logger.warning(d),void a._Helpers.invokeAliasCallback(c,HTTPCodes$2.validationIssue,d);if(!a._Helpers.canLog())a._Helpers.invokeAliasCallback(c,HTTPCodes$2.loggingDisabledOrMissingAPIKey,Messages$2.InformationMessages.AbandonAliasUsers),a.Logger.verbose(Messages$2.InformationMessages.AbandonAliasUsers);else if(a._Store.webviewBridgeEnabled)a._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.Alias,JSON.stringify(a._Identity.IdentityRequest.convertAliasToNative(b))),a._Helpers.invokeAliasCallback(c,HTTPCodes$2.nativeIdentityRequest,"Alias request sent to native sdk");else {a.Logger.verbose(Messages$2.InformationMessages.StartingAliasRequest+": "+b.sourceMpid+" -> "+b.destinationMpid);var e=a._Identity.IdentityRequest.createAliasNetworkRequest(b);a._IdentityAPIClient.sendAliasRequest(e,c);}},/**
|
|
1179
1176
|
Create a default AliasRequest for 2 MParticleUsers. This will construct the request
|
|
1180
1177
|
using the sourceUser's firstSeenTime as the startTime, and its lastSeenTime as the endTime.
|
|
1181
1178
|
|
|
@@ -1189,110 +1186,106 @@ var s,i=t.Identity.getCurrentUser(),a=t._Identity.IdentityRequest.preProcessIden
|
|
|
1189
1186
|
In rare cases, where the sourceUser's lastSeenTime also falls outside of the aliasMaxWindow limit,
|
|
1190
1187
|
after applying this adjustment it will be impossible to create an aliasRequest passes the aliasUsers()
|
|
1191
1188
|
validation that the startTime must be less than the endTime
|
|
1192
|
-
*/createAliasRequest:function createAliasRequest(
|
|
1193
|
-
return
|
|
1189
|
+
*/createAliasRequest:function createAliasRequest(b,c){try{if(!c||!b)return a.Logger.error("'destinationUser' and 'sourceUser' must both be present"),null;var d=b.getFirstSeenTime();d||a.Identity.getUsers().forEach(function(a){a.getFirstSeenTime()&&(!d||a.getFirstSeenTime()<d)&&(d=a.getFirstSeenTime());});var e=new Date().getTime()-1e3*(60*(60*(24*a._Store.SDKConfig.aliasMaxWindow))),f=b.getLastSeenTime()||new Date().getTime();//if the startTime is greater than $maxAliasWindow ago, adjust the startTime to the earliest allowed
|
|
1190
|
+
return d<e&&(d=e,f<d&&a.Logger.warning("Source User has not been seen in the last "+a._Store.SDKConfig.maxAliasWindow+" days, Alias Request will likely fail")),{destinationMpid:c.getMPID(),sourceMpid:b.getMPID(),startTime:d,endTime:f}}catch(b){return a.Logger.error("There was a problem with creating an alias request: "+b),null}}},this.mParticleUser=function(b,c){var d=this;return {/**
|
|
1194
1191
|
* Get user identities for current user
|
|
1195
1192
|
* @method getUserIdentities
|
|
1196
1193
|
* @return {Object} an object with userIdentities as its key
|
|
1197
|
-
*/getUserIdentities:function getUserIdentities(){var
|
|
1194
|
+
*/getUserIdentities:function getUserIdentities(){var c={},d=a._Store.getUserIdentities(b);for(var e in d)d.hasOwnProperty(e)&&(c[Types.IdentityType.getIdentityName(a._Helpers.parseNumber(e))]=d[e]);return {userIdentities:c}},/**
|
|
1198
1195
|
* Get the MPID of the current user
|
|
1199
1196
|
* @method getMPID
|
|
1200
1197
|
* @return {String} the current user MPID as a string
|
|
1201
|
-
*/getMPID:function getMPID(){return
|
|
1198
|
+
*/getMPID:function getMPID(){return b},/**
|
|
1202
1199
|
* Sets a user tag
|
|
1203
1200
|
* @method setUserTag
|
|
1204
1201
|
* @param {String} tagName
|
|
1205
|
-
*/setUserTag:function setUserTag(
|
|
1202
|
+
*/setUserTag:function setUserTag(b){return a._Helpers.Validators.isValidKeyValue(b)?void this.setUserAttribute(b,null):void a.Logger.error(Messages$2.ErrorMessages.BadKey)},/**
|
|
1206
1203
|
* Removes a user tag
|
|
1207
1204
|
* @method removeUserTag
|
|
1208
1205
|
* @param {String} tagName
|
|
1209
|
-
*/removeUserTag:function removeUserTag(
|
|
1206
|
+
*/removeUserTag:function removeUserTag(b){return a._Helpers.Validators.isValidKeyValue(b)?void this.removeUserAttribute(b):void a.Logger.error(Messages$2.ErrorMessages.BadKey)},/**
|
|
1210
1207
|
* Sets a user attribute
|
|
1211
1208
|
* @method setUserAttribute
|
|
1212
1209
|
* @param {String} key
|
|
1213
1210
|
* @param {String} value
|
|
1214
1211
|
*/ // https://go.mparticle.com/work/SQDSDKS-4576
|
|
1215
1212
|
// https://go.mparticle.com/work/SQDSDKS-6373
|
|
1216
|
-
setUserAttribute:function setUserAttribute(
|
|
1213
|
+
setUserAttribute:function setUserAttribute(c,e){if(a._SessionManager.resetSessionTimer(),a._Helpers.canLog()){if(!a._Helpers.Validators.isValidAttributeValue(e))return void a.Logger.error(Messages$2.ErrorMessages.BadAttribute);if(!a._Helpers.Validators.isValidKeyValue(c))return void a.Logger.error(Messages$2.ErrorMessages.BadKey);if(a._Store.webviewBridgeEnabled)a._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.SetUserAttribute,JSON.stringify({key:c,value:e}));else {var f,g,h=this.getAllUserAttributes(),i=a._Helpers.findKeyInObject(h,c);i?(g=!1,f=h[i],delete h[i]):g=!0,h[c]=e,a._Store.setUserAttributes(b,h),d.sendUserAttributeChangeEvent(c,e,f,g,!1,this),a._Forwarders.initForwarders(d.IdentityAPI.getCurrentUser().getUserIdentities(),a._APIClient.prepareForwardingStats),a._Forwarders.handleForwarderUserAttributes("setUserAttribute",c,e);}}},/**
|
|
1217
1214
|
* Set multiple user attributes
|
|
1218
1215
|
* @method setUserAttributes
|
|
1219
1216
|
* @param {Object} user attribute object with keys of the attribute type, and value of the attribute value
|
|
1220
1217
|
*/ // https://go.mparticle.com/work/SQDSDKS-6373
|
|
1221
|
-
setUserAttributes:function setUserAttributes(
|
|
1218
|
+
setUserAttributes:function setUserAttributes(b){if(a._SessionManager.resetSessionTimer(),!isObject(b))a.Logger.error("Must pass an object into setUserAttributes. You passed a "+_typeof$1(b));else if(a._Helpers.canLog())for(var c in b)b.hasOwnProperty(c)&&this.setUserAttribute(c,b[c]);},/**
|
|
1222
1219
|
* Removes a specific user attribute
|
|
1223
1220
|
* @method removeUserAttribute
|
|
1224
1221
|
* @param {String} key
|
|
1225
|
-
*/removeUserAttribute:function removeUserAttribute(
|
|
1222
|
+
*/removeUserAttribute:function removeUserAttribute(c){var e,f;if(a._SessionManager.resetSessionTimer(),!a._Helpers.Validators.isValidKeyValue(c))return void a.Logger.error(Messages$2.ErrorMessages.BadKey);if(a._Store.webviewBridgeEnabled)a._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.RemoveUserAttribute,JSON.stringify({key:c,value:null}));else {e=a._Persistence.getPersistence(),f=this.getAllUserAttributes();var g=a._Helpers.findKeyInObject(f,c);g&&(c=g);var h=f[c]?f[c].toString():null;delete f[c],e&&e[b]&&(e[b].ua=f,a._Persistence.savePersistence(e,b)),d.sendUserAttributeChangeEvent(c,null,h,!1,!0,this),a._Forwarders.initForwarders(d.IdentityAPI.getCurrentUser().getUserIdentities(),a._APIClient.prepareForwardingStats),a._Forwarders.handleForwarderUserAttributes("removeUserAttribute",c,null);}},/**
|
|
1226
1223
|
* Sets a list of user attributes
|
|
1227
1224
|
* @method setUserAttributeList
|
|
1228
1225
|
* @param {String} key
|
|
1229
1226
|
* @param {Array} value an array of values
|
|
1230
1227
|
*/ // https://go.mparticle.com/work/SQDSDKS-6373
|
|
1231
|
-
setUserAttributeList:function setUserAttributeList(
|
|
1228
|
+
setUserAttributeList:function setUserAttributeList(c,e){if(a._SessionManager.resetSessionTimer(),!a._Helpers.Validators.isValidKeyValue(c))return void a.Logger.error(Messages$2.ErrorMessages.BadKey);if(!Array.isArray(e))return void a.Logger.error("The value you passed in to setUserAttributeList must be an array. You passed in a "+("undefined"==typeof value?"undefined":_typeof$1(value)));var f=e.slice();if(a._Store.webviewBridgeEnabled)a._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.SetUserAttributeList,JSON.stringify({key:c,value:f}));else {var g,h,j,k=this.getAllUserAttributes(),l=a._Helpers.findKeyInObject(k,c);// If the new attributeList length is different than the previous, then there is a change event.
|
|
1232
1229
|
// Loop through new attributes list, see if they are all in the same index as previous user attributes list
|
|
1233
1230
|
// If there are any changes, break, and immediately send a userAttributeChangeEvent with full array as a value
|
|
1234
|
-
if(
|
|
1231
|
+
if(l?(h=!1,g=k[l],delete k[l]):h=!0,k[c]=f,a._Store.setUserAttributes(b,k),!g||!Array.isArray(g))j=!0;else if(e.length!==g.length)j=!0;else for(var m=0;m<e.length;m++)if(g[m]!==e[m]){j=!0;break}j&&d.sendUserAttributeChangeEvent(c,e,g,h,!1,this),a._Forwarders.initForwarders(d.IdentityAPI.getCurrentUser().getUserIdentities(),a._APIClient.prepareForwardingStats),a._Forwarders.handleForwarderUserAttributes("setUserAttribute",c,f);}},/**
|
|
1235
1232
|
* Removes all user attributes
|
|
1236
1233
|
* @method removeAllUserAttributes
|
|
1237
|
-
*/removeAllUserAttributes:function removeAllUserAttributes(){var
|
|
1234
|
+
*/removeAllUserAttributes:function removeAllUserAttributes(){var b;if(a._SessionManager.resetSessionTimer(),a._Store.webviewBridgeEnabled)a._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.RemoveAllUserAttributes);else if(b=this.getAllUserAttributes(),a._Forwarders.initForwarders(d.IdentityAPI.getCurrentUser().getUserIdentities(),a._APIClient.prepareForwardingStats),b)for(var c in b)b.hasOwnProperty(c)&&a._Forwarders.handleForwarderUserAttributes("removeUserAttribute",c,null),this.removeUserAttribute(c);},/**
|
|
1238
1235
|
* Returns all user attribute keys that have values that are arrays
|
|
1239
1236
|
* @method getUserAttributesLists
|
|
1240
1237
|
* @return {Object} an object of only keys with array values. Example: { attr1: [1, 2, 3], attr2: ['a', 'b', 'c'] }
|
|
1241
|
-
*/getUserAttributesLists:function getUserAttributesLists(){var
|
|
1238
|
+
*/getUserAttributesLists:function getUserAttributesLists(){var a,b={};for(var c in a=this.getAllUserAttributes(),a)a.hasOwnProperty(c)&&Array.isArray(a[c])&&(b[c]=a[c].slice());return b},/**
|
|
1242
1239
|
* Returns all user attributes
|
|
1243
1240
|
* @method getAllUserAttributes
|
|
1244
1241
|
* @return {Object} an object of all user attributes. Example: { attr1: 'value1', attr2: ['a', 'b', 'c'] }
|
|
1245
|
-
*/getAllUserAttributes:function getAllUserAttributes(){var
|
|
1242
|
+
*/getAllUserAttributes:function getAllUserAttributes(){var c=a._Store.getUserAttributes,d={},e=c(b);if(e)for(var f in e)e.hasOwnProperty(f)&&(d[f]=Array.isArray(e[f])?e[f].slice():e[f]);return d},/**
|
|
1246
1243
|
* Returns the cart object for the current user
|
|
1247
1244
|
* @method getCart
|
|
1248
1245
|
* @return a cart object
|
|
1249
|
-
*/getCart:function getCart(){return
|
|
1246
|
+
*/getCart:function getCart(){return a.Logger.warning("Deprecated function Identity.getCurrentUser().getCart() will be removed in future releases"),d.mParticleUserCart()},/**
|
|
1250
1247
|
* Returns the Consent State stored locally for this user.
|
|
1251
1248
|
* @method getConsentState
|
|
1252
1249
|
* @return a ConsentState object
|
|
1253
|
-
*/getConsentState:function getConsentState(){return
|
|
1250
|
+
*/getConsentState:function getConsentState(){return a._Store.getConsentState(b)},/**
|
|
1254
1251
|
* Sets the Consent State stored locally for this user.
|
|
1255
1252
|
* @method setConsentState
|
|
1256
1253
|
* @param {Object} consent state
|
|
1257
|
-
*/setConsentState:function setConsentState(
|
|
1254
|
+
*/setConsentState:function setConsentState(c){a._Store.setConsentState(b,c),a._Forwarders.initForwarders(this.getUserIdentities().userIdentities,a._APIClient.prepareForwardingStats),a._CookieSyncManager.attemptCookieSync(this.getMPID());},isLoggedIn:function isLoggedIn(){return c},getLastSeenTime:function getLastSeenTime(){return a._Persistence.getLastSeenTime(b)},getFirstSeenTime:function getFirstSeenTime(){return a._Persistence.getFirstSeenTime(b)},/**
|
|
1258
1255
|
* Get user audiences
|
|
1259
1256
|
* @method getuserAudiences
|
|
1260
1257
|
* @param {Function} [callback] A callback function that is invoked when the user audience request completes
|
|
1261
1258
|
*/ // https://go.mparticle.com/work/SQDSDKS-6436
|
|
1262
|
-
getUserAudiences:function getUserAudiences(
|
|
1263
|
-
return
|
|
1259
|
+
getUserAudiences:function getUserAudiences(c){// user audience API is feature flagged
|
|
1260
|
+
return a._Helpers.getFeatureFlag(FeatureFlags$1.AudienceAPI)?void(null===d.audienceManager&&(d.audienceManager=new AudienceManager(a._Store.SDKConfig.userAudienceUrl,a._Store.devToken,a.Logger,b)),d.audienceManager.sendGetUserAudienceRequest(b,c)):void a.Logger.error(ErrorMessages.AudienceAPINotEnabled)}}},this.mParticleUserCart=function(){return {/**
|
|
1264
1261
|
* Adds a cart product to the user cart
|
|
1265
1262
|
* @method add
|
|
1266
|
-
* @param {Object} product the product
|
|
1267
|
-
* @param {Boolean} [logEvent] a boolean to log adding of the cart object. If blank, no logging occurs.
|
|
1268
1263
|
* @deprecated
|
|
1269
|
-
*/add:function add(
|
|
1264
|
+
*/add:function add(){a.Logger.warning(generateDeprecationMessage("Identity.getCurrentUser().getCart().add()",!0,"eCommerce.logProductAction()","https://docs.mparticle.com/developers/sdk/web/commerce-tracking"));},/**
|
|
1270
1265
|
* Removes a cart product from the current user cart
|
|
1271
1266
|
* @method remove
|
|
1272
|
-
* @param {Object} product the product
|
|
1273
|
-
* @param {Boolean} [logEvent] a boolean to log adding of the cart object. If blank, no logging occurs.
|
|
1274
1267
|
* @deprecated
|
|
1275
|
-
*/remove:function remove(
|
|
1268
|
+
*/remove:function remove(){a.Logger.warning(generateDeprecationMessage("Identity.getCurrentUser().getCart().remove()",!0,"eCommerce.logProductAction()","https://docs.mparticle.com/developers/sdk/web/commerce-tracking"));},/**
|
|
1276
1269
|
* Clears the user's cart
|
|
1277
1270
|
* @method clear
|
|
1278
1271
|
* @deprecated
|
|
1279
|
-
*/clear:function clear(){
|
|
1272
|
+
*/clear:function clear(){a.Logger.warning(generateDeprecationMessage("Identity.getCurrentUser().getCart().clear()",!0,"","https://docs.mparticle.com/developers/sdk/web/commerce-tracking"));},/**
|
|
1280
1273
|
* Returns all cart products
|
|
1281
1274
|
* @method getCartProducts
|
|
1282
1275
|
* @return {Array} array of cart products
|
|
1283
1276
|
* @deprecated
|
|
1284
|
-
*/getCartProducts:function getCartProducts(){return
|
|
1285
|
-
|
|
1286
|
-
|
|
1277
|
+
*/getCartProducts:function getCartProducts(){return a.Logger.warning(generateDeprecationMessage("Identity.getCurrentUser().getCart().getCartProducts()",!0,"eCommerce.logProductAction()","https://docs.mparticle.com/developers/sdk/web/commerce-tracking")),[]}}},this.parseIdentityResponse=function(b,d,f,g,h,i,j){var k,l,m,n=a.Identity.getUser(d),o=n?n.getMPID():null,p=n?n.getUserIdentities().userIdentities:{},q={};a._Store.identityCallInFlight=!1;try{var r,s,t;if(a.Logger.verbose("Parsing \""+h+"\" identity response from server"),l=null!==(r=b.responseText)&&void 0!==r?r:null,a._Store.isLoggedIn=(null===(s=l)||void 0===s?void 0:s.is_logged_in)||!1,hasMPIDChanged(n,l)&&(a._Store.mpid=l.mpid,n&&a._Persistence.setLastSeenTime(d),k=!a._Persistence.getFirstSeenTime(l.mpid),a._Persistence.setFirstSeenTime(l.mpid)),b.status===HTTP_OK){c(CacheIdentity)&&cacheOrClearIdCache(h,i,e.idCache,b,j);var u=e.IdentityAPI.getUser(l.mpid),v=u?u.getUserIdentities().userIdentities:{};h===Modify$1?(q=a._Identity.IdentityRequest.combineUserIdentities(p,g.userIdentities),a._Store.setUserIdentities(d,q)):(h===Identify&&n&&l.mpid===o&&a._Persistence.setFirstSeenTime(l.mpid),a._Store.addMpidToSessionHistory(l.mpid,d),a._CookieSyncManager.attemptCookieSync(l.mpid,k),a._Persistence.swapCurrentUser(d,l.mpid,a._Store.currentSessionMPIDs),g&&!isEmpty(g.userIdentities)&&(q=e.IdentityRequest.combineUserIdentities(v,g.userIdentities)),a._Store.setUserIdentities(l.mpid,q),a._Persistence.update(),a._Store.syncPersistenceData(),a._Persistence.findPrevCookiesBasedOnUI(g),a._Store.context=l.context||a._Store.context),m=a.Identity.getCurrentUser(),tryOnUserAlias(n,m,g,a.Logger);var w=a._Persistence.getPersistence();m&&(a._Persistence.storeDataInMemory(w,m.getMPID()),e.reinitForwardersOnUserChange(n,m),e.setForwarderCallbacks(m,h));var x=IdentityType.getNewIdentitiesByName(q),y=h===Modify$1?p:v;// https://go.mparticle.com/work/SQDSDKS-6501
|
|
1278
|
+
e.sendUserIdentityChangeEvent(x,h,l.mpid,y);}if(f){var z=0===b.status?HTTPCodes$2.noHttpCoverage:b.status;a._Helpers.invokeCallback(f,z,l||null,m);}else l&&!isEmpty(l.errors)&&// https://go.mparticle.com/work/SQDSDKS-6500
|
|
1279
|
+
a.Logger.error("Received HTTP response code of "+b.status+" - "+l.errors[0].message);a.Logger.verbose("Successfully parsed Identity Response"),null===(t=a._APIClient)||void 0===t||t.processQueuedEvents();}catch(c){f&&a._Helpers.invokeCallback(f,b.status,l||null),a.Logger.error("Error parsing JSON response from Identity server: "+c);}a._Store.isInitialized=!0,a._RoktManager.isReady()&&(a._RoktManager.currentUser=a.Identity.getCurrentUser()),a._preInit.readyQueue=processReadyQueue(a._preInit.readyQueue);},this.sendUserIdentityChangeEvent=function(b,c,d,f){if(d||c===Modify$1)// https://go.mparticle.com/work/SQDSDKS-6501
|
|
1287
1280
|
{// https://go.mparticle.com/work/SQDSDKS-6354
|
|
1288
|
-
var
|
|
1289
|
-
if(
|
|
1281
|
+
var g=this.IdentityAPI.getUser(d);for(var h in b)// Verifies a change actually happened
|
|
1282
|
+
if(f[h]!==b[h]){var i,j=!f[h],k=e.createUserIdentityChange(h,b[h],f[h],j,g);// If a new identity type was introduced when the identity changes
|
|
1290
1283
|
// we need to notify the server so that the user profile is updated in
|
|
1291
1284
|
// the mParticle UI.
|
|
1292
|
-
null===(
|
|
1293
|
-
return a
|
|
1294
|
-
null===(
|
|
1295
|
-
function tryOnUserAlias(
|
|
1285
|
+
null===(i=a._APIClient)||void 0===i||i.sendEventToServer(k);}}},this.createUserIdentityChange=function(b,c,d,e,f){var g;// https://go.mparticle.com/work/SQDSDKS-6439
|
|
1286
|
+
return g=a._ServerModel.createEventObject({messageType:Types.MessageType.UserIdentityChange,userIdentityChanges:{New:{IdentityType:b,Identity:c,CreatedThisBatch:e},Old:{IdentityType:b,Identity:d,CreatedThisBatch:!1}},userInMemory:f}),g},this.sendUserAttributeChangeEvent=function(b,c,d,f,g,h){var i=e.createUserAttributeChange(b,c,d,f,g,h);if(i){var j;null===(j=a._APIClient)||void 0===j||j.sendEventToServer(i);}},this.createUserAttributeChange=function(b,c,d,e,f,g){"undefined"==typeof d&&(d=null);var h;return c!==d&&(h=a._ServerModel.createEventObject({messageType:Types.MessageType.UserAttributeChange,userAttributeChanges:{UserAttributeName:b,New:c,Old:d,Deleted:f,IsNewAttribute:e}},g)),h},this.reinitForwardersOnUserChange=function(b,c){if(hasMPIDAndUserLoginChanged(b,c)){var d;null===(d=a._Forwarders)||void 0===d||d.initForwarders(c.getUserIdentities().userIdentities,a._APIClient.prepareForwardingStats);}},this.setForwarderCallbacks=function(b,c){var d,e,f;// https://go.mparticle.com/work/SQDSDKS-6036
|
|
1287
|
+
null===(d=a._Forwarders)||void 0===d||d.setForwarderUserIdentities(b.getUserIdentities().userIdentities),null===(e=a._Forwarders)||void 0===e||e.setForwarderOnIdentityComplete(b,c),null===(f=a._Forwarders)||void 0===f||f.setForwarderOnUserIdentified(b);};}// https://go.mparticle.com/work/SQDSDKS-6359
|
|
1288
|
+
function tryOnUserAlias(a,b,c,d){if(c&&c.onUserAlias&&isFunction(c.onUserAlias))try{d.warning(generateDeprecationMessage("onUserAlias")),c.onUserAlias(a,b);}catch(a){d.error("There was an error with your onUserAlias function - "+a);}}
|
|
1296
1289
|
|
|
1297
1290
|
var CCPAPurpose=Constants.CCPAPurpose;function Consent(a){var b=this;// this function is called when consent is required to
|
|
1298
1291
|
// determine if a cookie sync should happen, or a
|
|
@@ -1669,17 +1662,17 @@ b._SessionManager.endSession(!0);},this.logBaseEvent=function(a,c){var d=queueIf
|
|
|
1669
1662
|
* @param {Object} product The product you want to add to the cart
|
|
1670
1663
|
* @param {Boolean} [logEventBoolean] Option to log the event to mParticle's servers. If blank, no logging occurs.
|
|
1671
1664
|
* @deprecated
|
|
1672
|
-
*/add:function add(
|
|
1665
|
+
*/add:function add(){b.Logger.warning(generateDeprecationMessage("eCommerce.Cart.add()",!0,"eCommerce.logProductAction()","https://docs.mparticle.com/developers/sdk/web/commerce-tracking"));},/**
|
|
1673
1666
|
* Removes a product from the cart
|
|
1674
1667
|
* @method remove
|
|
1675
1668
|
* @param {Object} product The product you want to add to the cart
|
|
1676
1669
|
* @param {Boolean} [logEventBoolean] Option to log the event to mParticle's servers. If blank, no logging occurs.
|
|
1677
1670
|
* @deprecated
|
|
1678
|
-
*/remove:function remove(
|
|
1671
|
+
*/remove:function remove(){b.Logger.warning(generateDeprecationMessage("eCommerce.Cart.remove()",!0,"eCommerce.logProductAction()","https://docs.mparticle.com/developers/sdk/web/commerce-tracking"));},/**
|
|
1679
1672
|
* Clears the cart
|
|
1680
1673
|
* @method clear
|
|
1681
1674
|
* @deprecated
|
|
1682
|
-
*/clear:function clear(){b.Logger.warning("
|
|
1675
|
+
*/clear:function clear(){b.Logger.warning(generateDeprecationMessage("eCommerce.Cart.clear()",!0,"","https://docs.mparticle.com/developers/sdk/web/commerce-tracking"));}},/**
|
|
1683
1676
|
* Sets the currency code
|
|
1684
1677
|
* @for mParticle.eCommerce
|
|
1685
1678
|
* @method setCurrencyCode
|