@mparticle/web-sdk 2.67.0 → 2.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/mparticle.common.js +43 -7
- package/dist/mparticle.esm.js +43 -7
- package/dist/mparticle.js +73 -4
- package/dist/types/src/identity-utils.d.ts +4 -0
- package/dist/types/src/sdkRuntimeModels.d.ts +5 -5
- package/package.json +2 -2
- package/src/identity-utils.ts +46 -4
- package/src/identity.js +12 -1
- package/src/sdkRuntimeModels.ts +5 -5
- package/src/types.ts +4 -0
package/dist/mparticle.common.js
CHANGED
|
@@ -15,7 +15,7 @@ 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.
|
|
18
|
+
var version = "2.68.0";
|
|
19
19
|
|
|
20
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
|
|
@@ -197,7 +197,7 @@ function extend(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];var
|
|
|
197
197
|
return b===void 0||j.hasOwn.call(a,b)},isArray:Array.isArray||function(a){return "array"===j.type(a)},isFunction:function(a){return "function"===j.type(a)},isWindow:function isWindow(a){return null!=a&&a==a.window}},k=a[0]||{},l=1,m=!1,n=a.length;for("boolean"==typeof k&&(m=k,k=a[1]||{},l=2),"object"===_typeof$1(k)||j.isFunction(k)||(k={}),n===l&&(k={},--l);l<n;l++)if(null!=(c=a[l]))for(d in c)"__proto__"!==d&&"constructor"!==d&&"prototype"!==d&&Object.prototype.hasOwnProperty.call(c,d)&&(e=k[d],f=c[d],k!==f)&&(m&&f&&(j.isPlainObject(f)||(g=j.isArray(f)))?(g?(g=!1,h=e&&j.isArray(e)?e:[]):h=e&&j.isPlainObject(e)?e:{},k[d]=extend(m,h,f)):void 0!==f&&(k[d]=f));return k}
|
|
198
198
|
|
|
199
199
|
var MessageType$1={SessionStart:1,SessionEnd:2,PageView:3,PageEvent:4,CrashReport:5,OptOut:6,AppStateTransition:10,Profile:14,Commerce:16,Media:20,UserAttributeChange:17,UserIdentityChange:18};var EventType={Unknown:0,Navigation:1,Location:2,Search:3,Transaction:4,UserContent:5,UserPreference:6,Social:7,Other:8,Media:9,getName:function getName(a){return a===EventType.Unknown?"Unknown":a===EventType.Navigation?"Navigation":a===EventType.Location?"Location":a===EventType.Search?"Search":a===EventType.Transaction?"Transaction":a===EventType.UserContent?"User Content":a===EventType.UserPreference?"User Preference":a===EventType.Social?"Social":a===CommerceEventType.ProductAddToCart?"Product Added to Cart":a===CommerceEventType.ProductAddToWishlist?"Product Added to Wishlist":a===CommerceEventType.ProductCheckout?"Product Checkout":a===CommerceEventType.ProductCheckoutOption?"Product Checkout Options":a===CommerceEventType.ProductClick?"Product Click":a===CommerceEventType.ProductImpression?"Product Impression":a===CommerceEventType.ProductPurchase?"Product Purchased":a===CommerceEventType.ProductRefund?"Product Refunded":a===CommerceEventType.ProductRemoveFromCart?"Product Removed From Cart":a===CommerceEventType.ProductRemoveFromWishlist?"Product Removed from Wishlist":a===CommerceEventType.ProductViewDetail?"Product View Details":a===CommerceEventType.PromotionClick?"Promotion Click":a===CommerceEventType.PromotionView?"Promotion View":"Other"}};// Continuation of EventType enum above, but in seperate object since we don't expose these to end user
|
|
200
|
-
var CommerceEventType={ProductAddToCart:10,ProductRemoveFromCart:11,ProductCheckout:12,ProductCheckoutOption:13,ProductClick:14,ProductViewDetail:15,ProductPurchase:16,ProductRefund:17,PromotionView:18,PromotionClick:19,ProductAddToWishlist:20,ProductRemoveFromWishlist:21,ProductImpression:22};var IdentityType={Other:0,CustomerId:1,Facebook:2,Twitter:3,Google:4,Microsoft:5,Yahoo:6,Email:7,FacebookCustomAudienceId:9,Other2:10,Other3:11,Other4:12,Other5:13,Other6:14,Other7:15,Other8:16,Other9:17,Other10:18,MobileNumber:19,PhoneNumber2:20,PhoneNumber3:21,isValid:function isValid(a){if("number"==typeof a)for(var b in IdentityType)if(IdentityType.hasOwnProperty(b)&&IdentityType[b]===a)return !0;return !1},getName:function getName(a){return a===window.mParticle.IdentityType.CustomerId?"Customer ID":a===window.mParticle.IdentityType.Facebook?"Facebook ID":a===window.mParticle.IdentityType.Twitter?"Twitter ID":a===window.mParticle.IdentityType.Google?"Google ID":a===window.mParticle.IdentityType.Microsoft?"Microsoft ID":a===window.mParticle.IdentityType.Yahoo?"Yahoo ID":a===window.mParticle.IdentityType.Email?"Email":a===window.mParticle.IdentityType.FacebookCustomAudienceId?"Facebook App User ID":"Other ID"},getIdentityType:function getIdentityType(a){return "other"===a?IdentityType.Other:"customerid"===a?IdentityType.CustomerId:"facebook"===a?IdentityType.Facebook:"twitter"===a?IdentityType.Twitter:"google"===a?IdentityType.Google:"microsoft"===a?IdentityType.Microsoft:"yahoo"===a?IdentityType.Yahoo:"email"===a?IdentityType.Email:"facebookcustomaudienceid"===a?IdentityType.FacebookCustomAudienceId:"other2"===a?IdentityType.Other2:"other3"===a?IdentityType.Other3:"other4"===a?IdentityType.Other4:"other5"===a?IdentityType.Other5:"other6"===a?IdentityType.Other6:"other7"===a?IdentityType.Other7:"other8"===a?IdentityType.Other8:"other9"===a?IdentityType.Other9:"other10"===a?IdentityType.Other10:"mobile_number"===a?IdentityType.MobileNumber:"phone_number_2"===a?IdentityType.PhoneNumber2:!("
|
|
200
|
+
var CommerceEventType={ProductAddToCart:10,ProductRemoveFromCart:11,ProductCheckout:12,ProductCheckoutOption:13,ProductClick:14,ProductViewDetail:15,ProductPurchase:16,ProductRefund:17,PromotionView:18,PromotionClick:19,ProductAddToWishlist:20,ProductRemoveFromWishlist:21,ProductImpression:22};var IdentityType={Other:0,CustomerId:1,Facebook:2,Twitter:3,Google:4,Microsoft:5,Yahoo:6,Email:7,FacebookCustomAudienceId:9,Other2:10,Other3:11,Other4:12,Other5:13,Other6:14,Other7:15,Other8:16,Other9:17,Other10:18,MobileNumber:19,PhoneNumber2:20,PhoneNumber3:21,isValid:function isValid(a){if("number"==typeof a)for(var b in IdentityType)if(IdentityType.hasOwnProperty(b)&&IdentityType[b]===a)return !0;return !1},getName:function getName(a){return a===window.mParticle.IdentityType.CustomerId?"Customer ID":a===window.mParticle.IdentityType.Facebook?"Facebook ID":a===window.mParticle.IdentityType.Twitter?"Twitter ID":a===window.mParticle.IdentityType.Google?"Google ID":a===window.mParticle.IdentityType.Microsoft?"Microsoft ID":a===window.mParticle.IdentityType.Yahoo?"Yahoo ID":a===window.mParticle.IdentityType.Email?"Email":a===window.mParticle.IdentityType.FacebookCustomAudienceId?"Facebook App User ID":"Other ID"},getIdentityType:function getIdentityType(a){return "other"===a?IdentityType.Other:"customerid"===a?IdentityType.CustomerId:"facebook"===a?IdentityType.Facebook:"twitter"===a?IdentityType.Twitter:"google"===a?IdentityType.Google:"microsoft"===a?IdentityType.Microsoft:"yahoo"===a?IdentityType.Yahoo:"email"===a?IdentityType.Email:"facebookcustomaudienceid"===a?IdentityType.FacebookCustomAudienceId:"other2"===a?IdentityType.Other2:"other3"===a?IdentityType.Other3:"other4"===a?IdentityType.Other4:"other5"===a?IdentityType.Other5:"other6"===a?IdentityType.Other6:"other7"===a?IdentityType.Other7:"other8"===a?IdentityType.Other8:"other9"===a?IdentityType.Other9:"other10"===a?IdentityType.Other10:"mobile_number"===a?IdentityType.MobileNumber:"phone_number_2"===a?IdentityType.PhoneNumber2:"phone_number_3"===a?IdentityType.PhoneNumber3:"email_sha256"===a?IdentityType.Other:!("mobile_sha256"!=a)&&IdentityType.Other2},getIdentityName:function getIdentityName(a){return a===IdentityType.Other?"other":a===IdentityType.CustomerId?"customerid":a===IdentityType.Facebook?"facebook":a===IdentityType.Twitter?"twitter":a===IdentityType.Google?"google":a===IdentityType.Microsoft?"microsoft":a===IdentityType.Yahoo?"yahoo":a===IdentityType.Email?"email":a===IdentityType.FacebookCustomAudienceId?"facebookcustomaudienceid":a===IdentityType.Other2?"other2":a===IdentityType.Other3?"other3":a===IdentityType.Other4?"other4":a===IdentityType.Other5?"other5":a===IdentityType.Other6?"other6":a===IdentityType.Other7?"other7":a===IdentityType.Other8?"other8":a===IdentityType.Other9?"other9":a===IdentityType.Other10?"other10":a===IdentityType.MobileNumber?"mobile_number":a===IdentityType.PhoneNumber2?"phone_number_2":a===IdentityType.PhoneNumber3?"phone_number_3":null},// Strips out functions from Identity Types for easier lookups
|
|
201
201
|
getValuesAsStrings:function getValuesAsStrings(){return Object.values(IdentityType).map(function(a){return isNumber(a)?a.toString():void 0}).filter(function(a){return a!==void 0})},getNewIdentitiesByName:function getNewIdentitiesByName(a){var b={},c=IdentityType.getValuesAsStrings();for(var d in a)// IdentityTypes are stored as numbers but are passed in as strings
|
|
202
202
|
if(c.includes(d)){var e=IdentityType.getIdentityName(parseNumber(d));b[e]=a[d];}return b}};var ProductActionType={Unknown:0,AddToCart:1,RemoveFromCart:2,Checkout:3,CheckoutOption:4,Click:5,ViewDetail:6,Purchase:7,Refund:8,AddToWishlist:9,RemoveFromWishlist:10,getName:function getName(a){return a===ProductActionType.AddToCart?"Add to Cart":a===ProductActionType.RemoveFromCart?"Remove from Cart":a===ProductActionType.Checkout?"Checkout":a===ProductActionType.CheckoutOption?"Checkout Option":a===ProductActionType.Click?"Click":a===ProductActionType.ViewDetail?"View Detail":a===ProductActionType.Purchase?"Purchase":a===ProductActionType.Refund?"Refund":a===ProductActionType.AddToWishlist?"Add to Wishlist":a===ProductActionType.RemoveFromWishlist?"Remove from Wishlist":"Unknown"},// these are the action names used by server and mobile SDKs when expanding a CommerceEvent
|
|
203
203
|
getExpansionName:function getExpansionName(a){return a===ProductActionType.AddToCart?"add_to_cart":a===ProductActionType.RemoveFromCart?"remove_from_cart":a===ProductActionType.Checkout?"checkout":a===ProductActionType.CheckoutOption?"checkout_option":a===ProductActionType.Click?"click":a===ProductActionType.ViewDetail?"view_detail":a===ProductActionType.Purchase?"purchase":a===ProductActionType.Refund?"refund":a===ProductActionType.AddToWishlist?"add_to_wishlist":a===ProductActionType.RemoveFromWishlist?"remove_from_wishlist":"unknown"}};var PromotionActionType={Unknown:0,PromotionView:1,PromotionClick:2,getName:function getName(a){return a===PromotionActionType.PromotionView?"view":a===PromotionActionType.PromotionClick?"click":"unknown"},// these are the names that the server and mobile SDKs use while expanding CommerceEvent
|
|
@@ -561,7 +561,11 @@ var g=d[f].expireTimestamp;return !(g<new Date().getTime())};var getCachedIdenti
|
|
|
561
561
|
var createKnownIdentities=function(a,b){var c={};if(isObject(null===a||void 0===a?void 0:a.userIdentities))for(var d in a.userIdentities)c[d]=a.userIdentities[d];return c.device_application_stamp=b,c};var removeExpiredIdentityCacheDates=function(a){var b=a.retrieve()||{},c=new Date().getTime();// Iterate over the cache and remove any key/value pairs that are expired
|
|
562
562
|
for(var d in b)b[d].expireTimestamp<c&&delete b[d];a.store(b);};var tryCacheIdentity=function(a,b,c,d,e,f,g){// https://go.mparticle.com/work/SQDSDKS-6095
|
|
563
563
|
var h=hasValidCachedIdentity(g,a,b);// If Identity is cached, then immediately parse the identity response
|
|
564
|
-
if(h){var i=getCachedIdentity(g,a,b);return c(i,d,e,f,g,a,!0),!0}return !1};var getExpireTimestamp=function(a){return void 0===a&&(a=ONE_DAY_IN_SECONDS),new Date().getTime()+a*MILLIS_IN_ONE_SEC},parseIdentityResponse=function(a){return a?JSON.parse(a):{}};var
|
|
564
|
+
if(h){var i=getCachedIdentity(g,a,b);return c(i,d,e,f,g,a,!0),!0}return !1};var getExpireTimestamp=function(a){return void 0===a&&(a=ONE_DAY_IN_SECONDS),new Date().getTime()+a*MILLIS_IN_ONE_SEC},parseIdentityResponse=function(a){return a?JSON.parse(a):{}},SHA256_IDENTITY_ALIASES={email_sha256:"other",mobile_sha256:"other2"};var normalizeUserIdentityKeys=function(a){var b=__assign({},a);return Object.keys(SHA256_IDENTITY_ALIASES).forEach(function(a){if(a in b){var c=b[a];delete b[a],b[SHA256_IDENTITY_ALIASES[a]]=c;}}),b};// Compare two identity objects by key and value, independent of
|
|
565
|
+
// object key insertion order. The two sides come from different sources
|
|
566
|
+
// (numeric IdentityType iteration vs. partner-provided / alias-normalized
|
|
567
|
+
// order)
|
|
568
|
+
var identitiesEqual=function(c,a){var b=Object.keys(null!==c&&void 0!==c?c:{}),d=Object.keys(null!==a&&void 0!==a?a:{});return !(b.length!==d.length)&&b.every(function(b){return c[b]===a[b]})};var hasIdentityRequestChanged=function(a,b){if(!a||!(null!==b&&void 0!==b)||!b.userIdentities)return !1;var c=a.getUserIdentities().userIdentities,d=normalizeUserIdentityKeys(b.userIdentities);return !identitiesEqual(c,d)};/**
|
|
565
569
|
* Checks if deviceId or other user identifiers (like email) were explicitly provided
|
|
566
570
|
* by the partner via config.deviceId or config.identifyRequest.userIdentities.
|
|
567
571
|
* When noFunctional is true, then cookies are blocked, so the partner must explicitly
|
|
@@ -1202,6 +1206,37 @@ Store:a._Store.serverSettings,SDKVersion:Constants.sdkVersion,SessionId:a._Store
|
|
|
1202
1206
|
|
|
1203
1207
|
function forwardingStatsUploader(a){function b(){var b=a._Forwarders.getForwarderStatsQueue(),c=a._Persistence.forwardingStatsBatches.uploadsTable,d=Date.now();for(var e in b.length&&(c[d]={uploading:!1,data:b},a._Forwarders.setForwarderStatsQueue([])),c)(function(b){if(c.hasOwnProperty(b)&&!1===c[b].uploading){var d=function(){4===e.readyState&&(200===e.status||202===e.status?(a.Logger.verbose("Successfully sent "+e.statusText+" from server"),delete c[b]):"4"===e.status.toString()[0]?429!==e.status&&delete c[b]:c[b].uploading=!1);},e=a._Helpers.createXHR(d),f=c[b].data;c[b].uploading=!0,a._APIClient.sendBatchForwardingStatsToServer(f,e);}})(e);}this.startForwardingStatsTimer=function(){mParticle._forwardingStatsTimer=setInterval(function(){b();},a._Store.SDKConfig.forwarderStatsTimeout);};}
|
|
1204
1208
|
|
|
1209
|
+
function _toPrimitive(input, hint) {
|
|
1210
|
+
if (_typeof$1(input) !== "object" || input === null) return input;
|
|
1211
|
+
var prim = input[Symbol.toPrimitive];
|
|
1212
|
+
if (prim !== undefined) {
|
|
1213
|
+
var res = prim.call(input, hint || "default");
|
|
1214
|
+
if (_typeof$1(res) !== "object") return res;
|
|
1215
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
1216
|
+
}
|
|
1217
|
+
return (hint === "string" ? String : Number)(input);
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
function _toPropertyKey(arg) {
|
|
1221
|
+
var key = _toPrimitive(arg, "string");
|
|
1222
|
+
return _typeof$1(key) === "symbol" ? key : String(key);
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
function _defineProperty(obj, key, value) {
|
|
1226
|
+
key = _toPropertyKey(key);
|
|
1227
|
+
if (key in obj) {
|
|
1228
|
+
Object.defineProperty(obj, key, {
|
|
1229
|
+
value: value,
|
|
1230
|
+
enumerable: true,
|
|
1231
|
+
configurable: true,
|
|
1232
|
+
writable: true
|
|
1233
|
+
});
|
|
1234
|
+
} else {
|
|
1235
|
+
obj[key] = value;
|
|
1236
|
+
}
|
|
1237
|
+
return obj;
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1205
1240
|
var AudienceManager=/** @class */function(){function a(a,b,c){this.url="",this.logger=c,this.url="https://".concat(a).concat(b,"/audience"),this.userAudienceAPI=window.fetch?new FetchUploader(this.url):new XHRUploader(this.url);}return a.prototype.sendGetUserAudienceRequest=function(a,b){return __awaiter(this,void 0,void 0,function(){var c,d,e,f,g,h;return __generator(this,function(i){switch(i.label){case 0:this.logger.verbose("Fetching user audiences from server"),c={method:"GET",headers:{Accept:"*/*"}},d="".concat(this.url,"?mpid=").concat(a),i.label=1;case 1:return i.trys.push([1,6,,7]),[4/*yield*/,this.userAudienceAPI.upload(c,d)];case 2:return (e=i.sent(),!(200<=e.status&&300>e.status))?[3/*break*/,4]:(this.logger.verbose("User Audiences successfully received"),[4/*yield*/,e.json()]);case 3:f=i.sent(),g={currentAudienceMemberships:null===f||void 0===f?void 0:f.audience_memberships};try{b(g);}catch(a){throw new Error("Error invoking callback on user audience response.")}return [3/*break*/,5];case 4:if(401===e.status)throw new Error("`HTTP error status ${userAudiencePromise.status} while retrieving User Audiences - please verify your API key.`");else if(403===e.status)throw new Error("`HTTP error status ${userAudiencePromise.status} while retrieving User Audiences - please verify your workspace is enabled for audiences.`");else// In case there is an HTTP error we did not anticipate.
|
|
1206
1241
|
throw new Error("Uncaught HTTP Error ".concat(e.status,"."));case 5:return [3/*break*/,7];case 6:return h=i.sent(),this.logger.error("Error retrieving audiences. ".concat(h)),[3/*break*/,7];case 7:return [2/*return*/]}})})},a}();
|
|
1207
1242
|
|
|
@@ -1211,7 +1246,7 @@ for(var e,f=window.mParticle,g=window.mParticle,h=0,i=d;h<i.length;h++)// Keep t
|
|
|
1211
1246
|
e=i[h],g=f,f=f[e];// Apply the function with its proper context
|
|
1212
1247
|
f.apply(g,b);}catch(a){throw new Error("Unable to compute proper mParticle function "+a)}}};
|
|
1213
1248
|
|
|
1214
|
-
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(t){var r=t._Helpers,s=r.getFeatureFlag,i=r.extend,n=this;// https://go.mparticle.com/work/SQDSDKS-6353
|
|
1249
|
+
function ownKeys(s,e){var r=Object.keys(s);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(s);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable})),r.push.apply(r,t);}return r}function _objectSpread(s){for(var e,i=1;i<arguments.length;i++)e=null==arguments[i]?{}:arguments[i],i%2?ownKeys(Object(e),!0).forEach(function(t){_defineProperty(s,t,e[t]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(e)):ownKeys(Object(e)).forEach(function(t){Object.defineProperty(s,t,Object.getOwnPropertyDescriptor(e,t));});return s}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(t){var r=t._Helpers,s=r.getFeatureFlag,i=r.extend,n=this;// https://go.mparticle.com/work/SQDSDKS-6353
|
|
1215
1250
|
/**
|
|
1216
1251
|
* Invoke these methods on the mParticle.Identity object.
|
|
1217
1252
|
* Example: mParticle.Identity.getCurrentUser().
|
|
@@ -1231,7 +1266,8 @@ var Messages$2=Constants.Messages,HTTPCodes$2=Constants.HTTPCodes,FeatureFlags$1
|
|
|
1231
1266
|
// compare what identities exist vs what is previously was for the specific user if they were in memory before.
|
|
1232
1267
|
// if it's the first time the user is logging in, send a user identity change request with
|
|
1233
1268
|
this.idCache=null,this.audienceManager=null,this.IdentityRequest={preProcessIdentityRequest:function preProcessIdentityRequest(e,r,s){t.Logger.verbose(Messages$2.InformationMessages.StartingLogEvent+": "+s);// First, remove any falsy identity values and warn about them
|
|
1234
|
-
var i=t._Helpers.Validators.removeFalsyIdentityValues(e,t.Logger),n=
|
|
1269
|
+
var i=t._Helpers.Validators.removeFalsyIdentityValues(e,t.Logger),n=null!==i&&void 0!==i&&i.userIdentities?_objectSpread(_objectSpread({},i),{},{userIdentities:normalizeUserIdentityKeys(i.userIdentities)}):i,d=t._Helpers.Validators.validateIdentities(n,s);// Normalize convenience aliases (email_sha256 → other, mobile_sha256 → other2)
|
|
1270
|
+
if(!d.valid)return t.Logger.error("ERROR: "+d.error),{valid:!1,error:d.error};if(r&&!t._Helpers.Validators.isFunction(r)){var a="The optional callback must be a function. You tried entering a(n) "+_typeof$1(r);return t.Logger.error(a),{valid:!1,error:a}}return {valid:!0,cleanedIdentities:n}},createIdentityRequest:function createIdentityRequest(e,r,s,i,n,d,a){var o={client_sdk:{platform:r,sdk_vendor:s,sdk_version:i},context:d,environment:t._Store.SDKConfig.isDevelopmentMode?"development":"production",request_id:t._Helpers.generateUniqueId(),request_timestamp_ms:new Date().getTime(),previous_mpid:a||null,known_identities:createKnownIdentities(e,n)};return o},createModifyIdentityRequest:function createModifyIdentityRequest(e,r,s,i,n,d){return {client_sdk:{platform:s,sdk_vendor:i,sdk_version:n},context:d,environment:t._Store.SDKConfig.isDevelopmentMode?"development":"production",request_id:t._Helpers.generateUniqueId(),request_timestamp_ms:new Date().getTime(),identity_changes:this.createIdentityChanges(e,r)}},createIdentityChanges:function createIdentityChanges(e,t){var r,s=[];if(t&&isObject(t)&&e&&isObject(e))for(r in t)s.push({old_value:e[r]||null,new_value:t[r],identity_type:r});return s},// takes 2 UI objects keyed by name, combines them, returns them keyed by type
|
|
1235
1271
|
combineUserIdentities:function combineUserIdentities(e,t){var r={},s=i({},e,t);for(var n in s){var d=Types.IdentityType.getIdentityType(n);// this check removes anything that is not whitelisted as an identity type
|
|
1236
1272
|
!1!==d&&0<=d&&(r[Types.IdentityType.getIdentityType(n)]=s[n]);}return r},createAliasNetworkRequest:function createAliasNetworkRequest(e){return {request_id:t._Helpers.generateUniqueId(),request_type:"alias",environment:t._Store.SDKConfig.isDevelopmentMode?"development":"production",api_key:t._Store.devToken,data:{destination_mpid:e.destinationMpid,source_mpid:e.sourceMpid,start_unixtime_ms:e.startTime,end_unixtime_ms:e.endTime,scope:e.scope,device_application_stamp:t._Store.deviceId}}},convertAliasToNative:function convertAliasToNative(e){return {DestinationMpid:e.destinationMpid,SourceMpid:e.sourceMpid,StartUnixtimeMs:e.startTime,EndUnixtimeMs:e.endTime,Scope:e.scope}},convertToNative:function convertToNative(e){var t=[];if(e&&e.userIdentities){for(var r in e.userIdentities)e.userIdentities.hasOwnProperty(r)&&t.push({Type:Types.IdentityType.getIdentityType(r),Identity:e.userIdentities[r]});return {UserIdentities:t}}}},this.IdentityAPI={HTTPCodes:HTTPCodes$2,/**
|
|
1237
1273
|
* Initiate a logout request to the mParticle server
|
|
@@ -1394,12 +1430,12 @@ return t._Helpers.getFeatureFlag(FeatureFlags$1.AudienceAPI)?void(null===s.audie
|
|
|
1394
1430
|
* @method getCartProducts
|
|
1395
1431
|
* @return {Array} array of cart products
|
|
1396
1432
|
* @deprecated
|
|
1397
|
-
*/getCartProducts:function getCartProducts(){return t.Logger.warning(generateDeprecationMessage("Identity.getCurrentUser().getCart().getCartProducts()",!0,"eCommerce.logProductAction()","https://docs.mparticle.com/developers/sdk/web/commerce-tracking")),[]}}},this.parseIdentityResponse=function(r,i,d,a,o,g,l){var u,p,y,I=t.Identity.getUser(i),c=I?I.getMPID():null,_=I?I.getUserIdentities().userIdentities:{},v={};t._Store.identityCallInFlight=!1;try{var m,b,S;if(t.Logger.verbose("Parsing \""+o+"\" identity response from server"),p=null!==(m=r.responseText)&&void 0!==m?m:null,t._Store.isLoggedIn=(null===(b=p)||void 0===b?void 0:b.is_logged_in)||!1,hasMPIDChanged(I,p)&&(t._Store.mpid=p.mpid,I&&t._Persistence.setLastSeenTime(i),u=!t._Persistence.getFirstSeenTime(p.mpid),t._Persistence.setFirstSeenTime(p.mpid)),r.status===HTTP_OK){var A;s(CacheIdentity)&&cacheOrClearIdCache(o,g,n.idCache,r,l);var
|
|
1433
|
+
*/getCartProducts:function getCartProducts(){return t.Logger.warning(generateDeprecationMessage("Identity.getCurrentUser().getCart().getCartProducts()",!0,"eCommerce.logProductAction()","https://docs.mparticle.com/developers/sdk/web/commerce-tracking")),[]}}},this.parseIdentityResponse=function(r,i,d,a,o,g,l){var u,p,y,I=t.Identity.getUser(i),c=I?I.getMPID():null,_=I?I.getUserIdentities().userIdentities:{},v={};t._Store.identityCallInFlight=!1;try{var m,b,S;if(t.Logger.verbose("Parsing \""+o+"\" identity response from server"),p=null!==(m=r.responseText)&&void 0!==m?m:null,t._Store.isLoggedIn=(null===(b=p)||void 0===b?void 0:b.is_logged_in)||!1,hasMPIDChanged(I,p)&&(t._Store.mpid=p.mpid,I&&t._Persistence.setLastSeenTime(i),u=!t._Persistence.getFirstSeenTime(p.mpid),t._Persistence.setFirstSeenTime(p.mpid)),r.status===HTTP_OK){var A;s(CacheIdentity)&&cacheOrClearIdCache(o,g,n.idCache,r,l);var k=n.IdentityAPI.getUser(p.mpid),U=k?k.getUserIdentities().userIdentities:{};o===Modify$1?(v=t._Identity.IdentityRequest.combineUserIdentities(_,a.userIdentities),t._Store.setUserIdentities(i,v)):(o===Identify&&I&&p.mpid===c&&t._Persistence.setFirstSeenTime(p.mpid),t._Store.addMpidToSessionHistory(p.mpid,i),t._CookieSyncManager.attemptCookieSync(p.mpid,u),t._Persistence.swapCurrentUser(i,p.mpid,t._Store.currentSessionMPIDs),a&&!isEmpty(a.userIdentities)&&(v=n.IdentityRequest.combineUserIdentities(U,a.userIdentities)),t._Store.setUserIdentities(p.mpid,v),t._Persistence.update(),t._Store.syncPersistenceData(),t._Persistence.findPrevCookiesBasedOnUI(a),t._Store.context=p.context||t._Store.context),y=t.Identity.getCurrentUser(),tryOnUserAlias(I,y,a,t.Logger);var P=t._Persistence.getPersistence();y&&(t._Persistence.storeDataInMemory(P,y.getMPID()),n.reinitForwardersOnUserChange(I,y),n.setForwarderCallbacks(y,o));var C=IdentityType.getNewIdentitiesByName(v),f=o===Modify$1?_:U;// Sync $NoTargeting before sendUserIdentityChangeEvent
|
|
1398
1434
|
// because UIC events call sendEventToServer which triggers
|
|
1399
1435
|
// processQueuedEvents, draining the event queue. The
|
|
1400
1436
|
// attribute must be in the store before that happens so
|
|
1401
1437
|
// appendUserInfo picks it up.
|
|
1402
|
-
null===(A=t._CookieConsentManager)||void 0===A||A.syncNoTargetingAttribute(y),n.sendUserIdentityChangeEvent(
|
|
1438
|
+
null===(A=t._CookieConsentManager)||void 0===A||A.syncNoTargetingAttribute(y),n.sendUserIdentityChangeEvent(C,o,p.mpid,f);}if(d){var w=0===r.status?HTTPCodes$2.noHttpCoverage:r.status;t._Helpers.invokeCallback(d,w,p||null,y);}else p&&!isEmpty(p.errors)&&// https://go.mparticle.com/work/SQDSDKS-6500
|
|
1403
1439
|
t.Logger.error("Received HTTP response code of "+r.status+" - "+p.errors[0].message);t.Logger.verbose("Successfully parsed Identity Response"),null===(S=t._APIClient)||void 0===S||S.processQueuedEvents();}catch(s){d&&t._Helpers.invokeCallback(d,r.status,p||null),t.Logger.error("Error parsing JSON response from Identity server: "+s);}t._Store.isInitialized=!0,t._RoktManager.onIdentityComplete(),t._preInit.readyQueue=processReadyQueue(t._preInit.readyQueue);},this.sendUserIdentityChangeEvent=function(e,r,s,i){if(s||r===Modify$1)// https://go.mparticle.com/work/SQDSDKS-6501
|
|
1404
1440
|
{// https://go.mparticle.com/work/SQDSDKS-6354
|
|
1405
1441
|
var d=this.IdentityAPI.getUser(s);for(var a in e)// Verifies a change actually happened
|
package/dist/mparticle.esm.js
CHANGED
|
@@ -15,7 +15,7 @@ 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.
|
|
18
|
+
var version = "2.68.0";
|
|
19
19
|
|
|
20
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
|
|
@@ -197,7 +197,7 @@ function extend(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];var
|
|
|
197
197
|
return b===void 0||j.hasOwn.call(a,b)},isArray:Array.isArray||function(a){return "array"===j.type(a)},isFunction:function(a){return "function"===j.type(a)},isWindow:function isWindow(a){return null!=a&&a==a.window}},k=a[0]||{},l=1,m=!1,n=a.length;for("boolean"==typeof k&&(m=k,k=a[1]||{},l=2),"object"===_typeof$1(k)||j.isFunction(k)||(k={}),n===l&&(k={},--l);l<n;l++)if(null!=(c=a[l]))for(d in c)"__proto__"!==d&&"constructor"!==d&&"prototype"!==d&&Object.prototype.hasOwnProperty.call(c,d)&&(e=k[d],f=c[d],k!==f)&&(m&&f&&(j.isPlainObject(f)||(g=j.isArray(f)))?(g?(g=!1,h=e&&j.isArray(e)?e:[]):h=e&&j.isPlainObject(e)?e:{},k[d]=extend(m,h,f)):void 0!==f&&(k[d]=f));return k}
|
|
198
198
|
|
|
199
199
|
var MessageType$1={SessionStart:1,SessionEnd:2,PageView:3,PageEvent:4,CrashReport:5,OptOut:6,AppStateTransition:10,Profile:14,Commerce:16,Media:20,UserAttributeChange:17,UserIdentityChange:18};var EventType={Unknown:0,Navigation:1,Location:2,Search:3,Transaction:4,UserContent:5,UserPreference:6,Social:7,Other:8,Media:9,getName:function getName(a){return a===EventType.Unknown?"Unknown":a===EventType.Navigation?"Navigation":a===EventType.Location?"Location":a===EventType.Search?"Search":a===EventType.Transaction?"Transaction":a===EventType.UserContent?"User Content":a===EventType.UserPreference?"User Preference":a===EventType.Social?"Social":a===CommerceEventType.ProductAddToCart?"Product Added to Cart":a===CommerceEventType.ProductAddToWishlist?"Product Added to Wishlist":a===CommerceEventType.ProductCheckout?"Product Checkout":a===CommerceEventType.ProductCheckoutOption?"Product Checkout Options":a===CommerceEventType.ProductClick?"Product Click":a===CommerceEventType.ProductImpression?"Product Impression":a===CommerceEventType.ProductPurchase?"Product Purchased":a===CommerceEventType.ProductRefund?"Product Refunded":a===CommerceEventType.ProductRemoveFromCart?"Product Removed From Cart":a===CommerceEventType.ProductRemoveFromWishlist?"Product Removed from Wishlist":a===CommerceEventType.ProductViewDetail?"Product View Details":a===CommerceEventType.PromotionClick?"Promotion Click":a===CommerceEventType.PromotionView?"Promotion View":"Other"}};// Continuation of EventType enum above, but in seperate object since we don't expose these to end user
|
|
200
|
-
var CommerceEventType={ProductAddToCart:10,ProductRemoveFromCart:11,ProductCheckout:12,ProductCheckoutOption:13,ProductClick:14,ProductViewDetail:15,ProductPurchase:16,ProductRefund:17,PromotionView:18,PromotionClick:19,ProductAddToWishlist:20,ProductRemoveFromWishlist:21,ProductImpression:22};var IdentityType={Other:0,CustomerId:1,Facebook:2,Twitter:3,Google:4,Microsoft:5,Yahoo:6,Email:7,FacebookCustomAudienceId:9,Other2:10,Other3:11,Other4:12,Other5:13,Other6:14,Other7:15,Other8:16,Other9:17,Other10:18,MobileNumber:19,PhoneNumber2:20,PhoneNumber3:21,isValid:function isValid(a){if("number"==typeof a)for(var b in IdentityType)if(IdentityType.hasOwnProperty(b)&&IdentityType[b]===a)return !0;return !1},getName:function getName(a){return a===window.mParticle.IdentityType.CustomerId?"Customer ID":a===window.mParticle.IdentityType.Facebook?"Facebook ID":a===window.mParticle.IdentityType.Twitter?"Twitter ID":a===window.mParticle.IdentityType.Google?"Google ID":a===window.mParticle.IdentityType.Microsoft?"Microsoft ID":a===window.mParticle.IdentityType.Yahoo?"Yahoo ID":a===window.mParticle.IdentityType.Email?"Email":a===window.mParticle.IdentityType.FacebookCustomAudienceId?"Facebook App User ID":"Other ID"},getIdentityType:function getIdentityType(a){return "other"===a?IdentityType.Other:"customerid"===a?IdentityType.CustomerId:"facebook"===a?IdentityType.Facebook:"twitter"===a?IdentityType.Twitter:"google"===a?IdentityType.Google:"microsoft"===a?IdentityType.Microsoft:"yahoo"===a?IdentityType.Yahoo:"email"===a?IdentityType.Email:"facebookcustomaudienceid"===a?IdentityType.FacebookCustomAudienceId:"other2"===a?IdentityType.Other2:"other3"===a?IdentityType.Other3:"other4"===a?IdentityType.Other4:"other5"===a?IdentityType.Other5:"other6"===a?IdentityType.Other6:"other7"===a?IdentityType.Other7:"other8"===a?IdentityType.Other8:"other9"===a?IdentityType.Other9:"other10"===a?IdentityType.Other10:"mobile_number"===a?IdentityType.MobileNumber:"phone_number_2"===a?IdentityType.PhoneNumber2:!("
|
|
200
|
+
var CommerceEventType={ProductAddToCart:10,ProductRemoveFromCart:11,ProductCheckout:12,ProductCheckoutOption:13,ProductClick:14,ProductViewDetail:15,ProductPurchase:16,ProductRefund:17,PromotionView:18,PromotionClick:19,ProductAddToWishlist:20,ProductRemoveFromWishlist:21,ProductImpression:22};var IdentityType={Other:0,CustomerId:1,Facebook:2,Twitter:3,Google:4,Microsoft:5,Yahoo:6,Email:7,FacebookCustomAudienceId:9,Other2:10,Other3:11,Other4:12,Other5:13,Other6:14,Other7:15,Other8:16,Other9:17,Other10:18,MobileNumber:19,PhoneNumber2:20,PhoneNumber3:21,isValid:function isValid(a){if("number"==typeof a)for(var b in IdentityType)if(IdentityType.hasOwnProperty(b)&&IdentityType[b]===a)return !0;return !1},getName:function getName(a){return a===window.mParticle.IdentityType.CustomerId?"Customer ID":a===window.mParticle.IdentityType.Facebook?"Facebook ID":a===window.mParticle.IdentityType.Twitter?"Twitter ID":a===window.mParticle.IdentityType.Google?"Google ID":a===window.mParticle.IdentityType.Microsoft?"Microsoft ID":a===window.mParticle.IdentityType.Yahoo?"Yahoo ID":a===window.mParticle.IdentityType.Email?"Email":a===window.mParticle.IdentityType.FacebookCustomAudienceId?"Facebook App User ID":"Other ID"},getIdentityType:function getIdentityType(a){return "other"===a?IdentityType.Other:"customerid"===a?IdentityType.CustomerId:"facebook"===a?IdentityType.Facebook:"twitter"===a?IdentityType.Twitter:"google"===a?IdentityType.Google:"microsoft"===a?IdentityType.Microsoft:"yahoo"===a?IdentityType.Yahoo:"email"===a?IdentityType.Email:"facebookcustomaudienceid"===a?IdentityType.FacebookCustomAudienceId:"other2"===a?IdentityType.Other2:"other3"===a?IdentityType.Other3:"other4"===a?IdentityType.Other4:"other5"===a?IdentityType.Other5:"other6"===a?IdentityType.Other6:"other7"===a?IdentityType.Other7:"other8"===a?IdentityType.Other8:"other9"===a?IdentityType.Other9:"other10"===a?IdentityType.Other10:"mobile_number"===a?IdentityType.MobileNumber:"phone_number_2"===a?IdentityType.PhoneNumber2:"phone_number_3"===a?IdentityType.PhoneNumber3:"email_sha256"===a?IdentityType.Other:!("mobile_sha256"!=a)&&IdentityType.Other2},getIdentityName:function getIdentityName(a){return a===IdentityType.Other?"other":a===IdentityType.CustomerId?"customerid":a===IdentityType.Facebook?"facebook":a===IdentityType.Twitter?"twitter":a===IdentityType.Google?"google":a===IdentityType.Microsoft?"microsoft":a===IdentityType.Yahoo?"yahoo":a===IdentityType.Email?"email":a===IdentityType.FacebookCustomAudienceId?"facebookcustomaudienceid":a===IdentityType.Other2?"other2":a===IdentityType.Other3?"other3":a===IdentityType.Other4?"other4":a===IdentityType.Other5?"other5":a===IdentityType.Other6?"other6":a===IdentityType.Other7?"other7":a===IdentityType.Other8?"other8":a===IdentityType.Other9?"other9":a===IdentityType.Other10?"other10":a===IdentityType.MobileNumber?"mobile_number":a===IdentityType.PhoneNumber2?"phone_number_2":a===IdentityType.PhoneNumber3?"phone_number_3":null},// Strips out functions from Identity Types for easier lookups
|
|
201
201
|
getValuesAsStrings:function getValuesAsStrings(){return Object.values(IdentityType).map(function(a){return isNumber(a)?a.toString():void 0}).filter(function(a){return a!==void 0})},getNewIdentitiesByName:function getNewIdentitiesByName(a){var b={},c=IdentityType.getValuesAsStrings();for(var d in a)// IdentityTypes are stored as numbers but are passed in as strings
|
|
202
202
|
if(c.includes(d)){var e=IdentityType.getIdentityName(parseNumber(d));b[e]=a[d];}return b}};var ProductActionType={Unknown:0,AddToCart:1,RemoveFromCart:2,Checkout:3,CheckoutOption:4,Click:5,ViewDetail:6,Purchase:7,Refund:8,AddToWishlist:9,RemoveFromWishlist:10,getName:function getName(a){return a===ProductActionType.AddToCart?"Add to Cart":a===ProductActionType.RemoveFromCart?"Remove from Cart":a===ProductActionType.Checkout?"Checkout":a===ProductActionType.CheckoutOption?"Checkout Option":a===ProductActionType.Click?"Click":a===ProductActionType.ViewDetail?"View Detail":a===ProductActionType.Purchase?"Purchase":a===ProductActionType.Refund?"Refund":a===ProductActionType.AddToWishlist?"Add to Wishlist":a===ProductActionType.RemoveFromWishlist?"Remove from Wishlist":"Unknown"},// these are the action names used by server and mobile SDKs when expanding a CommerceEvent
|
|
203
203
|
getExpansionName:function getExpansionName(a){return a===ProductActionType.AddToCart?"add_to_cart":a===ProductActionType.RemoveFromCart?"remove_from_cart":a===ProductActionType.Checkout?"checkout":a===ProductActionType.CheckoutOption?"checkout_option":a===ProductActionType.Click?"click":a===ProductActionType.ViewDetail?"view_detail":a===ProductActionType.Purchase?"purchase":a===ProductActionType.Refund?"refund":a===ProductActionType.AddToWishlist?"add_to_wishlist":a===ProductActionType.RemoveFromWishlist?"remove_from_wishlist":"unknown"}};var PromotionActionType={Unknown:0,PromotionView:1,PromotionClick:2,getName:function getName(a){return a===PromotionActionType.PromotionView?"view":a===PromotionActionType.PromotionClick?"click":"unknown"},// these are the names that the server and mobile SDKs use while expanding CommerceEvent
|
|
@@ -561,7 +561,11 @@ var g=d[f].expireTimestamp;return !(g<new Date().getTime())};var getCachedIdenti
|
|
|
561
561
|
var createKnownIdentities=function(a,b){var c={};if(isObject(null===a||void 0===a?void 0:a.userIdentities))for(var d in a.userIdentities)c[d]=a.userIdentities[d];return c.device_application_stamp=b,c};var removeExpiredIdentityCacheDates=function(a){var b=a.retrieve()||{},c=new Date().getTime();// Iterate over the cache and remove any key/value pairs that are expired
|
|
562
562
|
for(var d in b)b[d].expireTimestamp<c&&delete b[d];a.store(b);};var tryCacheIdentity=function(a,b,c,d,e,f,g){// https://go.mparticle.com/work/SQDSDKS-6095
|
|
563
563
|
var h=hasValidCachedIdentity(g,a,b);// If Identity is cached, then immediately parse the identity response
|
|
564
|
-
if(h){var i=getCachedIdentity(g,a,b);return c(i,d,e,f,g,a,!0),!0}return !1};var getExpireTimestamp=function(a){return void 0===a&&(a=ONE_DAY_IN_SECONDS),new Date().getTime()+a*MILLIS_IN_ONE_SEC},parseIdentityResponse=function(a){return a?JSON.parse(a):{}};var
|
|
564
|
+
if(h){var i=getCachedIdentity(g,a,b);return c(i,d,e,f,g,a,!0),!0}return !1};var getExpireTimestamp=function(a){return void 0===a&&(a=ONE_DAY_IN_SECONDS),new Date().getTime()+a*MILLIS_IN_ONE_SEC},parseIdentityResponse=function(a){return a?JSON.parse(a):{}},SHA256_IDENTITY_ALIASES={email_sha256:"other",mobile_sha256:"other2"};var normalizeUserIdentityKeys=function(a){var b=__assign({},a);return Object.keys(SHA256_IDENTITY_ALIASES).forEach(function(a){if(a in b){var c=b[a];delete b[a],b[SHA256_IDENTITY_ALIASES[a]]=c;}}),b};// Compare two identity objects by key and value, independent of
|
|
565
|
+
// object key insertion order. The two sides come from different sources
|
|
566
|
+
// (numeric IdentityType iteration vs. partner-provided / alias-normalized
|
|
567
|
+
// order)
|
|
568
|
+
var identitiesEqual=function(c,a){var b=Object.keys(null!==c&&void 0!==c?c:{}),d=Object.keys(null!==a&&void 0!==a?a:{});return !(b.length!==d.length)&&b.every(function(b){return c[b]===a[b]})};var hasIdentityRequestChanged=function(a,b){if(!a||!(null!==b&&void 0!==b)||!b.userIdentities)return !1;var c=a.getUserIdentities().userIdentities,d=normalizeUserIdentityKeys(b.userIdentities);return !identitiesEqual(c,d)};/**
|
|
565
569
|
* Checks if deviceId or other user identifiers (like email) were explicitly provided
|
|
566
570
|
* by the partner via config.deviceId or config.identifyRequest.userIdentities.
|
|
567
571
|
* When noFunctional is true, then cookies are blocked, so the partner must explicitly
|
|
@@ -1202,6 +1206,37 @@ Store:a._Store.serverSettings,SDKVersion:Constants.sdkVersion,SessionId:a._Store
|
|
|
1202
1206
|
|
|
1203
1207
|
function forwardingStatsUploader(a){function b(){var b=a._Forwarders.getForwarderStatsQueue(),c=a._Persistence.forwardingStatsBatches.uploadsTable,d=Date.now();for(var e in b.length&&(c[d]={uploading:!1,data:b},a._Forwarders.setForwarderStatsQueue([])),c)(function(b){if(c.hasOwnProperty(b)&&!1===c[b].uploading){var d=function(){4===e.readyState&&(200===e.status||202===e.status?(a.Logger.verbose("Successfully sent "+e.statusText+" from server"),delete c[b]):"4"===e.status.toString()[0]?429!==e.status&&delete c[b]:c[b].uploading=!1);},e=a._Helpers.createXHR(d),f=c[b].data;c[b].uploading=!0,a._APIClient.sendBatchForwardingStatsToServer(f,e);}})(e);}this.startForwardingStatsTimer=function(){mParticle._forwardingStatsTimer=setInterval(function(){b();},a._Store.SDKConfig.forwarderStatsTimeout);};}
|
|
1204
1208
|
|
|
1209
|
+
function _toPrimitive(input, hint) {
|
|
1210
|
+
if (_typeof$1(input) !== "object" || input === null) return input;
|
|
1211
|
+
var prim = input[Symbol.toPrimitive];
|
|
1212
|
+
if (prim !== undefined) {
|
|
1213
|
+
var res = prim.call(input, hint || "default");
|
|
1214
|
+
if (_typeof$1(res) !== "object") return res;
|
|
1215
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
1216
|
+
}
|
|
1217
|
+
return (hint === "string" ? String : Number)(input);
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
function _toPropertyKey(arg) {
|
|
1221
|
+
var key = _toPrimitive(arg, "string");
|
|
1222
|
+
return _typeof$1(key) === "symbol" ? key : String(key);
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
function _defineProperty(obj, key, value) {
|
|
1226
|
+
key = _toPropertyKey(key);
|
|
1227
|
+
if (key in obj) {
|
|
1228
|
+
Object.defineProperty(obj, key, {
|
|
1229
|
+
value: value,
|
|
1230
|
+
enumerable: true,
|
|
1231
|
+
configurable: true,
|
|
1232
|
+
writable: true
|
|
1233
|
+
});
|
|
1234
|
+
} else {
|
|
1235
|
+
obj[key] = value;
|
|
1236
|
+
}
|
|
1237
|
+
return obj;
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1205
1240
|
var AudienceManager=/** @class */function(){function a(a,b,c){this.url="",this.logger=c,this.url="https://".concat(a).concat(b,"/audience"),this.userAudienceAPI=window.fetch?new FetchUploader(this.url):new XHRUploader(this.url);}return a.prototype.sendGetUserAudienceRequest=function(a,b){return __awaiter(this,void 0,void 0,function(){var c,d,e,f,g,h;return __generator(this,function(i){switch(i.label){case 0:this.logger.verbose("Fetching user audiences from server"),c={method:"GET",headers:{Accept:"*/*"}},d="".concat(this.url,"?mpid=").concat(a),i.label=1;case 1:return i.trys.push([1,6,,7]),[4/*yield*/,this.userAudienceAPI.upload(c,d)];case 2:return (e=i.sent(),!(200<=e.status&&300>e.status))?[3/*break*/,4]:(this.logger.verbose("User Audiences successfully received"),[4/*yield*/,e.json()]);case 3:f=i.sent(),g={currentAudienceMemberships:null===f||void 0===f?void 0:f.audience_memberships};try{b(g);}catch(a){throw new Error("Error invoking callback on user audience response.")}return [3/*break*/,5];case 4:if(401===e.status)throw new Error("`HTTP error status ${userAudiencePromise.status} while retrieving User Audiences - please verify your API key.`");else if(403===e.status)throw new Error("`HTTP error status ${userAudiencePromise.status} while retrieving User Audiences - please verify your workspace is enabled for audiences.`");else// In case there is an HTTP error we did not anticipate.
|
|
1206
1241
|
throw new Error("Uncaught HTTP Error ".concat(e.status,"."));case 5:return [3/*break*/,7];case 6:return h=i.sent(),this.logger.error("Error retrieving audiences. ".concat(h)),[3/*break*/,7];case 7:return [2/*return*/]}})})},a}();
|
|
1207
1242
|
|
|
@@ -1211,7 +1246,7 @@ for(var e,f=window.mParticle,g=window.mParticle,h=0,i=d;h<i.length;h++)// Keep t
|
|
|
1211
1246
|
e=i[h],g=f,f=f[e];// Apply the function with its proper context
|
|
1212
1247
|
f.apply(g,b);}catch(a){throw new Error("Unable to compute proper mParticle function "+a)}}};
|
|
1213
1248
|
|
|
1214
|
-
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(t){var r=t._Helpers,s=r.getFeatureFlag,i=r.extend,n=this;// https://go.mparticle.com/work/SQDSDKS-6353
|
|
1249
|
+
function ownKeys(s,e){var r=Object.keys(s);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(s);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable})),r.push.apply(r,t);}return r}function _objectSpread(s){for(var e,i=1;i<arguments.length;i++)e=null==arguments[i]?{}:arguments[i],i%2?ownKeys(Object(e),!0).forEach(function(t){_defineProperty(s,t,e[t]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(e)):ownKeys(Object(e)).forEach(function(t){Object.defineProperty(s,t,Object.getOwnPropertyDescriptor(e,t));});return s}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(t){var r=t._Helpers,s=r.getFeatureFlag,i=r.extend,n=this;// https://go.mparticle.com/work/SQDSDKS-6353
|
|
1215
1250
|
/**
|
|
1216
1251
|
* Invoke these methods on the mParticle.Identity object.
|
|
1217
1252
|
* Example: mParticle.Identity.getCurrentUser().
|
|
@@ -1231,7 +1266,8 @@ var Messages$2=Constants.Messages,HTTPCodes$2=Constants.HTTPCodes,FeatureFlags$1
|
|
|
1231
1266
|
// compare what identities exist vs what is previously was for the specific user if they were in memory before.
|
|
1232
1267
|
// if it's the first time the user is logging in, send a user identity change request with
|
|
1233
1268
|
this.idCache=null,this.audienceManager=null,this.IdentityRequest={preProcessIdentityRequest:function preProcessIdentityRequest(e,r,s){t.Logger.verbose(Messages$2.InformationMessages.StartingLogEvent+": "+s);// First, remove any falsy identity values and warn about them
|
|
1234
|
-
var i=t._Helpers.Validators.removeFalsyIdentityValues(e,t.Logger),n=
|
|
1269
|
+
var i=t._Helpers.Validators.removeFalsyIdentityValues(e,t.Logger),n=null!==i&&void 0!==i&&i.userIdentities?_objectSpread(_objectSpread({},i),{},{userIdentities:normalizeUserIdentityKeys(i.userIdentities)}):i,d=t._Helpers.Validators.validateIdentities(n,s);// Normalize convenience aliases (email_sha256 → other, mobile_sha256 → other2)
|
|
1270
|
+
if(!d.valid)return t.Logger.error("ERROR: "+d.error),{valid:!1,error:d.error};if(r&&!t._Helpers.Validators.isFunction(r)){var a="The optional callback must be a function. You tried entering a(n) "+_typeof$1(r);return t.Logger.error(a),{valid:!1,error:a}}return {valid:!0,cleanedIdentities:n}},createIdentityRequest:function createIdentityRequest(e,r,s,i,n,d,a){var o={client_sdk:{platform:r,sdk_vendor:s,sdk_version:i},context:d,environment:t._Store.SDKConfig.isDevelopmentMode?"development":"production",request_id:t._Helpers.generateUniqueId(),request_timestamp_ms:new Date().getTime(),previous_mpid:a||null,known_identities:createKnownIdentities(e,n)};return o},createModifyIdentityRequest:function createModifyIdentityRequest(e,r,s,i,n,d){return {client_sdk:{platform:s,sdk_vendor:i,sdk_version:n},context:d,environment:t._Store.SDKConfig.isDevelopmentMode?"development":"production",request_id:t._Helpers.generateUniqueId(),request_timestamp_ms:new Date().getTime(),identity_changes:this.createIdentityChanges(e,r)}},createIdentityChanges:function createIdentityChanges(e,t){var r,s=[];if(t&&isObject(t)&&e&&isObject(e))for(r in t)s.push({old_value:e[r]||null,new_value:t[r],identity_type:r});return s},// takes 2 UI objects keyed by name, combines them, returns them keyed by type
|
|
1235
1271
|
combineUserIdentities:function combineUserIdentities(e,t){var r={},s=i({},e,t);for(var n in s){var d=Types.IdentityType.getIdentityType(n);// this check removes anything that is not whitelisted as an identity type
|
|
1236
1272
|
!1!==d&&0<=d&&(r[Types.IdentityType.getIdentityType(n)]=s[n]);}return r},createAliasNetworkRequest:function createAliasNetworkRequest(e){return {request_id:t._Helpers.generateUniqueId(),request_type:"alias",environment:t._Store.SDKConfig.isDevelopmentMode?"development":"production",api_key:t._Store.devToken,data:{destination_mpid:e.destinationMpid,source_mpid:e.sourceMpid,start_unixtime_ms:e.startTime,end_unixtime_ms:e.endTime,scope:e.scope,device_application_stamp:t._Store.deviceId}}},convertAliasToNative:function convertAliasToNative(e){return {DestinationMpid:e.destinationMpid,SourceMpid:e.sourceMpid,StartUnixtimeMs:e.startTime,EndUnixtimeMs:e.endTime,Scope:e.scope}},convertToNative:function convertToNative(e){var t=[];if(e&&e.userIdentities){for(var r in e.userIdentities)e.userIdentities.hasOwnProperty(r)&&t.push({Type:Types.IdentityType.getIdentityType(r),Identity:e.userIdentities[r]});return {UserIdentities:t}}}},this.IdentityAPI={HTTPCodes:HTTPCodes$2,/**
|
|
1237
1273
|
* Initiate a logout request to the mParticle server
|
|
@@ -1394,12 +1430,12 @@ return t._Helpers.getFeatureFlag(FeatureFlags$1.AudienceAPI)?void(null===s.audie
|
|
|
1394
1430
|
* @method getCartProducts
|
|
1395
1431
|
* @return {Array} array of cart products
|
|
1396
1432
|
* @deprecated
|
|
1397
|
-
*/getCartProducts:function getCartProducts(){return t.Logger.warning(generateDeprecationMessage("Identity.getCurrentUser().getCart().getCartProducts()",!0,"eCommerce.logProductAction()","https://docs.mparticle.com/developers/sdk/web/commerce-tracking")),[]}}},this.parseIdentityResponse=function(r,i,d,a,o,g,l){var u,p,y,I=t.Identity.getUser(i),c=I?I.getMPID():null,_=I?I.getUserIdentities().userIdentities:{},v={};t._Store.identityCallInFlight=!1;try{var m,b,S;if(t.Logger.verbose("Parsing \""+o+"\" identity response from server"),p=null!==(m=r.responseText)&&void 0!==m?m:null,t._Store.isLoggedIn=(null===(b=p)||void 0===b?void 0:b.is_logged_in)||!1,hasMPIDChanged(I,p)&&(t._Store.mpid=p.mpid,I&&t._Persistence.setLastSeenTime(i),u=!t._Persistence.getFirstSeenTime(p.mpid),t._Persistence.setFirstSeenTime(p.mpid)),r.status===HTTP_OK){var A;s(CacheIdentity)&&cacheOrClearIdCache(o,g,n.idCache,r,l);var
|
|
1433
|
+
*/getCartProducts:function getCartProducts(){return t.Logger.warning(generateDeprecationMessage("Identity.getCurrentUser().getCart().getCartProducts()",!0,"eCommerce.logProductAction()","https://docs.mparticle.com/developers/sdk/web/commerce-tracking")),[]}}},this.parseIdentityResponse=function(r,i,d,a,o,g,l){var u,p,y,I=t.Identity.getUser(i),c=I?I.getMPID():null,_=I?I.getUserIdentities().userIdentities:{},v={};t._Store.identityCallInFlight=!1;try{var m,b,S;if(t.Logger.verbose("Parsing \""+o+"\" identity response from server"),p=null!==(m=r.responseText)&&void 0!==m?m:null,t._Store.isLoggedIn=(null===(b=p)||void 0===b?void 0:b.is_logged_in)||!1,hasMPIDChanged(I,p)&&(t._Store.mpid=p.mpid,I&&t._Persistence.setLastSeenTime(i),u=!t._Persistence.getFirstSeenTime(p.mpid),t._Persistence.setFirstSeenTime(p.mpid)),r.status===HTTP_OK){var A;s(CacheIdentity)&&cacheOrClearIdCache(o,g,n.idCache,r,l);var k=n.IdentityAPI.getUser(p.mpid),U=k?k.getUserIdentities().userIdentities:{};o===Modify$1?(v=t._Identity.IdentityRequest.combineUserIdentities(_,a.userIdentities),t._Store.setUserIdentities(i,v)):(o===Identify&&I&&p.mpid===c&&t._Persistence.setFirstSeenTime(p.mpid),t._Store.addMpidToSessionHistory(p.mpid,i),t._CookieSyncManager.attemptCookieSync(p.mpid,u),t._Persistence.swapCurrentUser(i,p.mpid,t._Store.currentSessionMPIDs),a&&!isEmpty(a.userIdentities)&&(v=n.IdentityRequest.combineUserIdentities(U,a.userIdentities)),t._Store.setUserIdentities(p.mpid,v),t._Persistence.update(),t._Store.syncPersistenceData(),t._Persistence.findPrevCookiesBasedOnUI(a),t._Store.context=p.context||t._Store.context),y=t.Identity.getCurrentUser(),tryOnUserAlias(I,y,a,t.Logger);var P=t._Persistence.getPersistence();y&&(t._Persistence.storeDataInMemory(P,y.getMPID()),n.reinitForwardersOnUserChange(I,y),n.setForwarderCallbacks(y,o));var C=IdentityType.getNewIdentitiesByName(v),f=o===Modify$1?_:U;// Sync $NoTargeting before sendUserIdentityChangeEvent
|
|
1398
1434
|
// because UIC events call sendEventToServer which triggers
|
|
1399
1435
|
// processQueuedEvents, draining the event queue. The
|
|
1400
1436
|
// attribute must be in the store before that happens so
|
|
1401
1437
|
// appendUserInfo picks it up.
|
|
1402
|
-
null===(A=t._CookieConsentManager)||void 0===A||A.syncNoTargetingAttribute(y),n.sendUserIdentityChangeEvent(
|
|
1438
|
+
null===(A=t._CookieConsentManager)||void 0===A||A.syncNoTargetingAttribute(y),n.sendUserIdentityChangeEvent(C,o,p.mpid,f);}if(d){var w=0===r.status?HTTPCodes$2.noHttpCoverage:r.status;t._Helpers.invokeCallback(d,w,p||null,y);}else p&&!isEmpty(p.errors)&&// https://go.mparticle.com/work/SQDSDKS-6500
|
|
1403
1439
|
t.Logger.error("Received HTTP response code of "+r.status+" - "+p.errors[0].message);t.Logger.verbose("Successfully parsed Identity Response"),null===(S=t._APIClient)||void 0===S||S.processQueuedEvents();}catch(s){d&&t._Helpers.invokeCallback(d,r.status,p||null),t.Logger.error("Error parsing JSON response from Identity server: "+s);}t._Store.isInitialized=!0,t._RoktManager.onIdentityComplete(),t._preInit.readyQueue=processReadyQueue(t._preInit.readyQueue);},this.sendUserIdentityChangeEvent=function(e,r,s,i){if(s||r===Modify$1)// https://go.mparticle.com/work/SQDSDKS-6501
|
|
1404
1440
|
{// https://go.mparticle.com/work/SQDSDKS-6354
|
|
1405
1441
|
var d=this.IdentityAPI.getUser(s);for(var a in e)// Verifies a change actually happened
|
package/dist/mparticle.js
CHANGED
|
@@ -203,7 +203,7 @@ var mParticle = (function () {
|
|
|
203
203
|
Base64: Base64$1
|
|
204
204
|
};
|
|
205
205
|
|
|
206
|
-
var version = "2.
|
|
206
|
+
var version = "2.68.0";
|
|
207
207
|
|
|
208
208
|
var Constants = {
|
|
209
209
|
sdkVersion: version,
|
|
@@ -1204,6 +1204,10 @@ var mParticle = (function () {
|
|
|
1204
1204
|
return IdentityType.PhoneNumber2;
|
|
1205
1205
|
case 'phone_number_3':
|
|
1206
1206
|
return IdentityType.PhoneNumber3;
|
|
1207
|
+
case 'email_sha256':
|
|
1208
|
+
return IdentityType.Other;
|
|
1209
|
+
case 'mobile_sha256':
|
|
1210
|
+
return IdentityType.Other2;
|
|
1207
1211
|
default:
|
|
1208
1212
|
return false;
|
|
1209
1213
|
}
|
|
@@ -3535,13 +3539,40 @@ var mParticle = (function () {
|
|
|
3535
3539
|
var parseIdentityResponse = function parseIdentityResponse(responseText) {
|
|
3536
3540
|
return responseText ? JSON.parse(responseText) : {};
|
|
3537
3541
|
};
|
|
3542
|
+
var SHA256_IDENTITY_ALIASES = {
|
|
3543
|
+
email_sha256: 'other',
|
|
3544
|
+
mobile_sha256: 'other2'
|
|
3545
|
+
};
|
|
3546
|
+
var normalizeUserIdentityKeys = function normalizeUserIdentityKeys(userIdentities) {
|
|
3547
|
+
var normalized = __assign({}, userIdentities);
|
|
3548
|
+
Object.keys(SHA256_IDENTITY_ALIASES).forEach(function (alias) {
|
|
3549
|
+
if (alias in normalized) {
|
|
3550
|
+
var value = normalized[alias];
|
|
3551
|
+
delete normalized[alias];
|
|
3552
|
+
normalized[SHA256_IDENTITY_ALIASES[alias]] = value;
|
|
3553
|
+
}
|
|
3554
|
+
});
|
|
3555
|
+
return normalized;
|
|
3556
|
+
};
|
|
3557
|
+
// Compare two identity objects by key and value, independent of
|
|
3558
|
+
// object key insertion order. The two sides come from different sources
|
|
3559
|
+
// (numeric IdentityType iteration vs. partner-provided / alias-normalized
|
|
3560
|
+
// order)
|
|
3561
|
+
var identitiesEqual = function identitiesEqual(a, b) {
|
|
3562
|
+
var aKeys = Object.keys(a !== null && a !== void 0 ? a : {});
|
|
3563
|
+
var bKeys = Object.keys(b !== null && b !== void 0 ? b : {});
|
|
3564
|
+
if (aKeys.length !== bKeys.length) return false;
|
|
3565
|
+
return aKeys.every(function (key) {
|
|
3566
|
+
return a[key] === b[key];
|
|
3567
|
+
});
|
|
3568
|
+
};
|
|
3538
3569
|
var hasIdentityRequestChanged = function hasIdentityRequestChanged(currentUser, newIdentityRequest) {
|
|
3539
3570
|
if (!currentUser || !(newIdentityRequest === null || newIdentityRequest === void 0 ? void 0 : newIdentityRequest.userIdentities)) {
|
|
3540
3571
|
return false;
|
|
3541
3572
|
}
|
|
3542
3573
|
var currentUserIdentities = currentUser.getUserIdentities().userIdentities;
|
|
3543
|
-
var newIdentities = newIdentityRequest.userIdentities;
|
|
3544
|
-
return
|
|
3574
|
+
var newIdentities = normalizeUserIdentityKeys(newIdentityRequest.userIdentities);
|
|
3575
|
+
return !identitiesEqual(currentUserIdentities, newIdentities);
|
|
3545
3576
|
};
|
|
3546
3577
|
/**
|
|
3547
3578
|
* Checks if deviceId or other user identifiers (like email) were explicitly provided
|
|
@@ -7831,6 +7862,37 @@ var mParticle = (function () {
|
|
|
7831
7862
|
}
|
|
7832
7863
|
}
|
|
7833
7864
|
|
|
7865
|
+
function _toPrimitive(input, hint) {
|
|
7866
|
+
if (_typeof$1(input) !== "object" || input === null) return input;
|
|
7867
|
+
var prim = input[Symbol.toPrimitive];
|
|
7868
|
+
if (prim !== undefined) {
|
|
7869
|
+
var res = prim.call(input, hint || "default");
|
|
7870
|
+
if (_typeof$1(res) !== "object") return res;
|
|
7871
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
7872
|
+
}
|
|
7873
|
+
return (hint === "string" ? String : Number)(input);
|
|
7874
|
+
}
|
|
7875
|
+
|
|
7876
|
+
function _toPropertyKey(arg) {
|
|
7877
|
+
var key = _toPrimitive(arg, "string");
|
|
7878
|
+
return _typeof$1(key) === "symbol" ? key : String(key);
|
|
7879
|
+
}
|
|
7880
|
+
|
|
7881
|
+
function _defineProperty(obj, key, value) {
|
|
7882
|
+
key = _toPropertyKey(key);
|
|
7883
|
+
if (key in obj) {
|
|
7884
|
+
Object.defineProperty(obj, key, {
|
|
7885
|
+
value: value,
|
|
7886
|
+
enumerable: true,
|
|
7887
|
+
configurable: true,
|
|
7888
|
+
writable: true
|
|
7889
|
+
});
|
|
7890
|
+
} else {
|
|
7891
|
+
obj[key] = value;
|
|
7892
|
+
}
|
|
7893
|
+
return obj;
|
|
7894
|
+
}
|
|
7895
|
+
|
|
7834
7896
|
var AudienceManager = /** @class */function () {
|
|
7835
7897
|
function AudienceManager(userAudienceUrl, apiKey, logger) {
|
|
7836
7898
|
this.url = '';
|
|
@@ -7935,6 +7997,8 @@ var mParticle = (function () {
|
|
|
7935
7997
|
}
|
|
7936
7998
|
};
|
|
7937
7999
|
|
|
8000
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
8001
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7938
8002
|
var Messages$2 = Constants.Messages,
|
|
7939
8003
|
HTTPCodes$2 = Constants.HTTPCodes,
|
|
7940
8004
|
FeatureFlags$1 = Constants.FeatureFlags,
|
|
@@ -7959,7 +8023,12 @@ var mParticle = (function () {
|
|
|
7959
8023
|
mpInstance.Logger.verbose(Messages$2.InformationMessages.StartingLogEvent + ': ' + method);
|
|
7960
8024
|
|
|
7961
8025
|
// First, remove any falsy identity values and warn about them
|
|
7962
|
-
var
|
|
8026
|
+
var removedFalsyIdentityData = mpInstance._Helpers.Validators.removeFalsyIdentityValues(identityApiData, mpInstance.Logger);
|
|
8027
|
+
|
|
8028
|
+
// Normalize convenience aliases (email_sha256 → other, mobile_sha256 → other2)
|
|
8029
|
+
var cleanedIdentityApiData = removedFalsyIdentityData !== null && removedFalsyIdentityData !== void 0 && removedFalsyIdentityData.userIdentities ? _objectSpread(_objectSpread({}, removedFalsyIdentityData), {}, {
|
|
8030
|
+
userIdentities: normalizeUserIdentityKeys(removedFalsyIdentityData.userIdentities)
|
|
8031
|
+
}) : removedFalsyIdentityData;
|
|
7963
8032
|
var identityValidationResult = mpInstance._Helpers.Validators.validateIdentities(cleanedIdentityApiData, method);
|
|
7964
8033
|
if (!identityValidationResult.valid) {
|
|
7965
8034
|
mpInstance.Logger.error('ERROR: ' + identityValidationResult.error);
|
|
@@ -25,6 +25,9 @@ export declare const getCachedIdentity: (method: IdentityAPIMethod, proposedUser
|
|
|
25
25
|
export declare const createKnownIdentities: (identityApiData: IdentityApiData, deviceId: string) => IKnownIdentities;
|
|
26
26
|
export declare const removeExpiredIdentityCacheDates: (idCache: BaseVault<Dictionary<ICachedIdentityCall>>) => void;
|
|
27
27
|
export declare const tryCacheIdentity: (knownIdentities: IKnownIdentities, idCache: IdentityCache, parseIdentityResponse: IParseCachedIdentityResponse, mpid: string, callback: IdentityCallback, identityApiData: IdentityApiData, identityMethod: IdentityAPIMethod) => boolean;
|
|
28
|
+
type Sha256IdentityAlias = 'email_sha256' | 'mobile_sha256';
|
|
29
|
+
type UserIdentitiesWithAliases = UserIdentities & Partial<Record<Sha256IdentityAlias, string | null>>;
|
|
30
|
+
export declare const normalizeUserIdentityKeys: (userIdentities: UserIdentitiesWithAliases) => UserIdentities;
|
|
28
31
|
export declare const hasIdentityRequestChanged: (currentUser: IMParticleUser, newIdentityRequest: IdentityApiData) => boolean;
|
|
29
32
|
/**
|
|
30
33
|
* Checks if deviceId or other user identifiers (like email) were explicitly provided
|
|
@@ -50,3 +53,4 @@ export declare const buildIdentitySearchEnvelope: (environment: Environment) =>
|
|
|
50
53
|
* plumbing) is type-checked instead of being expressed in plain JS.
|
|
51
54
|
*/
|
|
52
55
|
export declare const executeSearchRequest: (mpInstance: IMParticleWebSDKInstance, workspaceApiKey: string, knownIdentities: UserIdentities, callback: IdentitySearchCallback) => void;
|
|
56
|
+
export {};
|
|
@@ -118,9 +118,9 @@ export interface SDKProductAction {
|
|
|
118
118
|
TaxAmount?: number;
|
|
119
119
|
}
|
|
120
120
|
export interface SDKProduct {
|
|
121
|
-
Sku
|
|
122
|
-
Name
|
|
123
|
-
Price
|
|
121
|
+
Sku: string;
|
|
122
|
+
Name: string;
|
|
123
|
+
Price: number;
|
|
124
124
|
Quantity?: number;
|
|
125
125
|
Brand?: string;
|
|
126
126
|
Variant?: string;
|
|
@@ -128,7 +128,7 @@ export interface SDKProduct {
|
|
|
128
128
|
Position?: number;
|
|
129
129
|
CouponCode?: string;
|
|
130
130
|
TotalAmount?: number;
|
|
131
|
-
Attributes?: Record<string, unknown
|
|
131
|
+
Attributes?: Record<string, unknown>;
|
|
132
132
|
}
|
|
133
133
|
export interface MParticleWebSDK {
|
|
134
134
|
addForwarder(forwarder: UnregisteredKit): void;
|
|
@@ -203,7 +203,7 @@ export declare const LogLevelType: {
|
|
|
203
203
|
readonly Warning: "warning";
|
|
204
204
|
readonly Error: "error";
|
|
205
205
|
};
|
|
206
|
-
export interface SDKInitConfig extends Omit<MPConfiguration, 'dataPlan' | 'logLevel'> {
|
|
206
|
+
export interface SDKInitConfig extends Omit<MPConfiguration, 'dataPlan' | 'logLevel' | 'identityCallback'> {
|
|
207
207
|
dataPlan?: DataPlanConfig | KitBlockerDataPlan;
|
|
208
208
|
logLevel?: LogLevelType;
|
|
209
209
|
kitConfigs?: IKitConfigs[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mparticle/web-sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.68.0",
|
|
4
4
|
"description": "mParticle core SDK for web applications",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"keywords": [
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
"@types/jest": "^29.5.1",
|
|
119
119
|
"@types/jest-expect-message": "^1.1.0",
|
|
120
120
|
"@types/mocha": "^9.0.0",
|
|
121
|
-
"@types/mparticle__web-sdk": "^2.
|
|
121
|
+
"@types/mparticle__web-sdk": "^2.66.0",
|
|
122
122
|
"@types/node": "^20.1.0",
|
|
123
123
|
"babel-preset-minify": "^0.5.1",
|
|
124
124
|
"browser-sync": "^2.26.3",
|
package/src/identity-utils.ts
CHANGED
|
@@ -289,6 +289,48 @@ const getExpireTimestamp = (maxAge: number = ONE_DAY_IN_SECONDS): number =>
|
|
|
289
289
|
const parseIdentityResponse = (responseText: string): IdentityResultBody =>
|
|
290
290
|
responseText ? JSON.parse(responseText) : ({} as IdentityResultBody);
|
|
291
291
|
|
|
292
|
+
type Sha256IdentityAlias = 'email_sha256' | 'mobile_sha256';
|
|
293
|
+
|
|
294
|
+
const SHA256_IDENTITY_ALIASES: Readonly<
|
|
295
|
+
Record<Sha256IdentityAlias, keyof UserIdentities>
|
|
296
|
+
> = {
|
|
297
|
+
email_sha256: 'other',
|
|
298
|
+
mobile_sha256: 'other2',
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
type UserIdentitiesWithAliases = UserIdentities &
|
|
302
|
+
Partial<Record<Sha256IdentityAlias, string | null>>;
|
|
303
|
+
|
|
304
|
+
export const normalizeUserIdentityKeys = (
|
|
305
|
+
userIdentities: UserIdentitiesWithAliases
|
|
306
|
+
): UserIdentities => {
|
|
307
|
+
const normalized: UserIdentitiesWithAliases = { ...userIdentities };
|
|
308
|
+
(Object.keys(SHA256_IDENTITY_ALIASES) as Sha256IdentityAlias[]).forEach(
|
|
309
|
+
(alias) => {
|
|
310
|
+
if (alias in normalized) {
|
|
311
|
+
const value = normalized[alias];
|
|
312
|
+
delete normalized[alias];
|
|
313
|
+
normalized[SHA256_IDENTITY_ALIASES[alias]] = value;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
);
|
|
317
|
+
return normalized;
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
// Compare two identity objects by key and value, independent of
|
|
321
|
+
// object key insertion order. The two sides come from different sources
|
|
322
|
+
// (numeric IdentityType iteration vs. partner-provided / alias-normalized
|
|
323
|
+
// order)
|
|
324
|
+
const identitiesEqual = (
|
|
325
|
+
a?: UserIdentities,
|
|
326
|
+
b?: UserIdentities
|
|
327
|
+
): boolean => {
|
|
328
|
+
const aKeys = Object.keys(a ?? {});
|
|
329
|
+
const bKeys = Object.keys(b ?? {});
|
|
330
|
+
if (aKeys.length !== bKeys.length) return false;
|
|
331
|
+
return aKeys.every((key) => a[key] === b[key]);
|
|
332
|
+
};
|
|
333
|
+
|
|
292
334
|
export const hasIdentityRequestChanged = (
|
|
293
335
|
currentUser: IMParticleUser,
|
|
294
336
|
newIdentityRequest: IdentityApiData
|
|
@@ -300,11 +342,11 @@ export const hasIdentityRequestChanged = (
|
|
|
300
342
|
const currentUserIdentities =
|
|
301
343
|
currentUser.getUserIdentities().userIdentities;
|
|
302
344
|
|
|
303
|
-
const newIdentities =
|
|
304
|
-
|
|
305
|
-
return (
|
|
306
|
-
JSON.stringify(currentUserIdentities) !== JSON.stringify(newIdentities)
|
|
345
|
+
const newIdentities = normalizeUserIdentityKeys(
|
|
346
|
+
newIdentityRequest.userIdentities
|
|
307
347
|
);
|
|
348
|
+
|
|
349
|
+
return !identitiesEqual(currentUserIdentities, newIdentities);
|
|
308
350
|
};
|
|
309
351
|
|
|
310
352
|
/**
|
package/src/identity.js
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
cacheOrClearIdCache,
|
|
5
5
|
createKnownIdentities,
|
|
6
6
|
executeSearchRequest,
|
|
7
|
+
normalizeUserIdentityKeys,
|
|
7
8
|
tryCacheIdentity,
|
|
8
9
|
} from './identity-utils';
|
|
9
10
|
import AudienceManager from './audienceManager';
|
|
@@ -35,11 +36,21 @@ export default function Identity(mpInstance) {
|
|
|
35
36
|
);
|
|
36
37
|
|
|
37
38
|
// First, remove any falsy identity values and warn about them
|
|
38
|
-
const
|
|
39
|
+
const removedFalsyIdentityData = mpInstance._Helpers.Validators.removeFalsyIdentityValues(
|
|
39
40
|
identityApiData,
|
|
40
41
|
mpInstance.Logger
|
|
41
42
|
);
|
|
42
43
|
|
|
44
|
+
// Normalize convenience aliases (email_sha256 → other, mobile_sha256 → other2)
|
|
45
|
+
const cleanedIdentityApiData = removedFalsyIdentityData?.userIdentities
|
|
46
|
+
? {
|
|
47
|
+
...removedFalsyIdentityData,
|
|
48
|
+
userIdentities: normalizeUserIdentityKeys(
|
|
49
|
+
removedFalsyIdentityData.userIdentities
|
|
50
|
+
),
|
|
51
|
+
}
|
|
52
|
+
: removedFalsyIdentityData;
|
|
53
|
+
|
|
43
54
|
var identityValidationResult = mpInstance._Helpers.Validators.validateIdentities(
|
|
44
55
|
cleanedIdentityApiData,
|
|
45
56
|
method
|
package/src/sdkRuntimeModels.ts
CHANGED
|
@@ -161,9 +161,9 @@ export interface SDKProductAction {
|
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
export interface SDKProduct {
|
|
164
|
-
Sku
|
|
165
|
-
Name
|
|
166
|
-
Price
|
|
164
|
+
Sku: string;
|
|
165
|
+
Name: string;
|
|
166
|
+
Price: number;
|
|
167
167
|
Quantity?: number;
|
|
168
168
|
Brand?: string;
|
|
169
169
|
Variant?: string;
|
|
@@ -173,7 +173,7 @@ export interface SDKProduct {
|
|
|
173
173
|
TotalAmount?: number;
|
|
174
174
|
|
|
175
175
|
// https://go.mparticle.com/work/SQDSDKS-4801
|
|
176
|
-
Attributes?: Record<string, unknown
|
|
176
|
+
Attributes?: Record<string, unknown>;
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
// https://go.mparticle.com/work/SQDSDKS-6949
|
|
@@ -306,7 +306,7 @@ export const LogLevelType = {
|
|
|
306
306
|
// Currently, this extends MPConfiguration in @types/mparticle__web-sdk
|
|
307
307
|
// and the two will be merged in once the Store module is refactored
|
|
308
308
|
export interface SDKInitConfig
|
|
309
|
-
extends Omit<MPConfiguration, 'dataPlan' | 'logLevel'> {
|
|
309
|
+
extends Omit<MPConfiguration, 'dataPlan' | 'logLevel' | 'identityCallback'> {
|
|
310
310
|
dataPlan?: DataPlanConfig | KitBlockerDataPlan; // TODO: These should be eventually split into two different attributes
|
|
311
311
|
logLevel?: LogLevelType;
|
|
312
312
|
|
package/src/types.ts
CHANGED
|
@@ -205,6 +205,10 @@ export const IdentityType = {
|
|
|
205
205
|
return IdentityType.PhoneNumber2;
|
|
206
206
|
case 'phone_number_3':
|
|
207
207
|
return IdentityType.PhoneNumber3;
|
|
208
|
+
case 'email_sha256':
|
|
209
|
+
return IdentityType.Other;
|
|
210
|
+
case 'mobile_sha256':
|
|
211
|
+
return IdentityType.Other2;
|
|
208
212
|
default:
|
|
209
213
|
return false;
|
|
210
214
|
}
|