@mparticle/web-sdk 2.28.1 → 2.28.3

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.js CHANGED
@@ -393,7 +393,7 @@ var mParticle = (function () {
393
393
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
394
394
  };
395
395
 
396
- var version = "2.28.1";
396
+ var version = "2.28.3";
397
397
 
398
398
  var Constants = {
399
399
  sdkVersion: version,
@@ -566,8 +566,11 @@ var mParticle = (function () {
566
566
  // https://go.mparticle.com/work/SQDSDKS-6080
567
567
  var ONE_DAY_IN_SECONDS = 60 * 60 * 24;
568
568
  var MILLIS_IN_ONE_SEC = 1000;
569
+ // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
570
+ var HTTP_OK = 200;
571
+ var HTTP_ACCEPTED = 202;
569
572
 
570
- var Messages$9 = Constants.Messages;
573
+ var Messages$a = Constants.Messages;
571
574
  var createCookieString = function createCookieString(value) {
572
575
  return replaceCommasWithPipes(replaceQuotesWithApostrophes(value));
573
576
  };
@@ -598,10 +601,10 @@ var mParticle = (function () {
598
601
  return null;
599
602
  };
600
603
  var generateDeprecationMessage = function generateDeprecationMessage(methodName, alternateMethod) {
601
- var messageArray = [methodName, Messages$9.DeprecationMessages.MethodIsDeprecatedPostfix];
604
+ var messageArray = [methodName, Messages$a.DeprecationMessages.MethodIsDeprecatedPostfix];
602
605
  if (alternateMethod) {
603
606
  messageArray.push(alternateMethod);
604
- messageArray.push(Messages$9.DeprecationMessages.MethodIsDeprecatedPostfix);
607
+ messageArray.push(Messages$a.DeprecationMessages.MethodIsDeprecatedPostfix);
605
608
  }
606
609
  return messageArray.join(' ');
607
610
  };
@@ -2120,6 +2123,7 @@ var mParticle = (function () {
2120
2123
  // 2 HEADERS_RECEIVED send() has been called, and headers and status are available.
2121
2124
  // 3 LOADING Downloading; responseText holds partial data.
2122
2125
  // 4 DONE The operation is complete.
2126
+ // https://go.mparticle.com/work/SQDSDKS-6736
2123
2127
  XHRUploader.prototype.makeRequest = function (url, data, method) {
2124
2128
  if (method === void 0) {
2125
2129
  method = 'post';
@@ -2132,11 +2136,13 @@ var mParticle = (function () {
2132
2136
  xhr.onreadystatechange = function () {
2133
2137
  if (xhr.readyState !== 4) return;
2134
2138
  // Process the response
2135
- if (xhr.status >= 200 && xhr.status < 300) {
2136
- resolve(xhr);
2137
- } else {
2138
- reject(xhr);
2139
- }
2139
+ // We resolve all xhr responses whose ready state is 4 regardless of HTTP codes that may be errors (400+)
2140
+ // because these are valid HTTP responses.
2141
+ resolve(xhr);
2142
+ };
2143
+ // Reject a promise only when there is an xhr error
2144
+ xhr.onerror = function () {
2145
+ reject(xhr);
2140
2146
  };
2141
2147
  xhr.open(method, url);
2142
2148
  xhr.send(data);
@@ -3059,7 +3065,7 @@ var mParticle = (function () {
3059
3065
  this.Validators = Validators;
3060
3066
  }
3061
3067
 
3062
- var Messages$8 = Constants.Messages;
3068
+ var Messages$9 = Constants.Messages;
3063
3069
  var androidBridgeNameBase = 'mParticleAndroid';
3064
3070
  var iosBridgeNameBase = 'mParticle';
3065
3071
  function NativeSdkHelpers(mpInstance) {
@@ -3142,10 +3148,10 @@ var mParticle = (function () {
3142
3148
  };
3143
3149
  this.sendViaBridgeV1 = function (path, value) {
3144
3150
  if (window.mParticleAndroid && window.mParticleAndroid.hasOwnProperty(path)) {
3145
- mpInstance.Logger.verbose(Messages$8.InformationMessages.SendAndroid + path);
3151
+ mpInstance.Logger.verbose(Messages$9.InformationMessages.SendAndroid + path);
3146
3152
  window.mParticleAndroid[path](value);
3147
3153
  } else if (mpInstance._Store.SDKConfig.isIOS) {
3148
- mpInstance.Logger.verbose(Messages$8.InformationMessages.SendIOS + path);
3154
+ mpInstance.Logger.verbose(Messages$9.InformationMessages.SendIOS + path);
3149
3155
  self.sendViaIframeToIOS(path, value);
3150
3156
  }
3151
3157
  };
@@ -3171,23 +3177,23 @@ var mParticle = (function () {
3171
3177
  iOSBridgeNonMessageHandler = mpInstance[iosBridgeName];
3172
3178
  }
3173
3179
  if (androidBridge && androidBridge.hasOwnProperty(path)) {
3174
- mpInstance.Logger.verbose(Messages$8.InformationMessages.SendAndroid + path);
3180
+ mpInstance.Logger.verbose(Messages$9.InformationMessages.SendAndroid + path);
3175
3181
  androidBridge[path](value);
3176
3182
  return;
3177
3183
  } else if (iOSBridgeMessageHandler) {
3178
- mpInstance.Logger.verbose(Messages$8.InformationMessages.SendIOS + path);
3184
+ mpInstance.Logger.verbose(Messages$9.InformationMessages.SendIOS + path);
3179
3185
  iOSBridgeMessageHandler.postMessage(JSON.stringify({
3180
3186
  path: path,
3181
3187
  value: value ? JSON.parse(value) : null
3182
3188
  }));
3183
3189
  } else if (iOSBridgeNonMessageHandler) {
3184
- mpInstance.Logger.verbose(Messages$8.InformationMessages.SendIOS + path);
3190
+ mpInstance.Logger.verbose(Messages$9.InformationMessages.SendIOS + path);
3185
3191
  self.sendViaIframeToIOS(path, value);
3186
3192
  }
3187
3193
  };
3188
3194
  }
3189
3195
 
3190
- var Messages$7 = Constants.Messages;
3196
+ var Messages$8 = Constants.Messages;
3191
3197
  function cookieSyncManager(mpInstance) {
3192
3198
  var self = this;
3193
3199
 
@@ -3296,7 +3302,7 @@ var mParticle = (function () {
3296
3302
  // function polls the user object and consent multiple times.
3297
3303
  if (mpInstance._Consent.isEnabledForUserConsent(filteringConsentRuleValues, mpInstance.Identity.getCurrentUser())) {
3298
3304
  var img = document.createElement('img');
3299
- mpInstance.Logger.verbose(Messages$7.InformationMessages.CookieSync);
3305
+ mpInstance.Logger.verbose(Messages$8.InformationMessages.CookieSync);
3300
3306
  img.onload = function () {
3301
3307
  // TODO: Break this out into a convenience method so we can unit test
3302
3308
  cookieSyncDates[moduleId.toString()] = new Date().getTime();
@@ -3307,7 +3313,7 @@ var mParticle = (function () {
3307
3313
  };
3308
3314
  }
3309
3315
 
3310
- var Messages$6 = Constants.Messages;
3316
+ var Messages$7 = Constants.Messages;
3311
3317
  function SessionManager(mpInstance) {
3312
3318
  var self = this;
3313
3319
  this.initialize = function () {
@@ -3338,7 +3344,7 @@ var mParticle = (function () {
3338
3344
  return mpInstance._Store.sessionId;
3339
3345
  };
3340
3346
  this.startNewSession = function () {
3341
- mpInstance.Logger.verbose(Messages$6.InformationMessages.StartingNewSession);
3347
+ mpInstance.Logger.verbose(Messages$7.InformationMessages.StartingNewSession);
3342
3348
  if (mpInstance._Helpers.canLog()) {
3343
3349
  mpInstance._Store.sessionId = mpInstance._Helpers.generateUniqueId().toUpperCase();
3344
3350
  var currentUser = mpInstance.Identity.getCurrentUser();
@@ -3361,12 +3367,12 @@ var mParticle = (function () {
3361
3367
  messageType: Types.MessageType.SessionStart
3362
3368
  });
3363
3369
  } else {
3364
- mpInstance.Logger.verbose(Messages$6.InformationMessages.AbandonStartSession);
3370
+ mpInstance.Logger.verbose(Messages$7.InformationMessages.AbandonStartSession);
3365
3371
  }
3366
3372
  };
3367
3373
  this.endSession = function (override) {
3368
3374
  var _a;
3369
- mpInstance.Logger.verbose(Messages$6.InformationMessages.StartingEndSession);
3375
+ mpInstance.Logger.verbose(Messages$7.InformationMessages.StartingEndSession);
3370
3376
  if (override) {
3371
3377
  mpInstance._Events.logEvent({
3372
3378
  messageType: Types.MessageType.SessionEnd
@@ -3379,14 +3385,14 @@ var mParticle = (function () {
3379
3385
  // - the SDK's store is not enabled because mParticle.setOptOut was called
3380
3386
  // - the devToken is undefined
3381
3387
  // - webviewBridgeEnabled is set to false
3382
- mpInstance.Logger.verbose(Messages$6.InformationMessages.AbandonEndSession);
3388
+ mpInstance.Logger.verbose(Messages$7.InformationMessages.AbandonEndSession);
3383
3389
  return;
3384
3390
  }
3385
3391
  var sessionTimeoutInMilliseconds;
3386
3392
  var timeSinceLastEventSent;
3387
3393
  var cookies = mpInstance._Persistence.getPersistence();
3388
3394
  if (!cookies || cookies.gs && !cookies.gs.sid) {
3389
- mpInstance.Logger.verbose(Messages$6.InformationMessages.NoSessionToEnd);
3395
+ mpInstance.Logger.verbose(Messages$7.InformationMessages.NoSessionToEnd);
3390
3396
  return;
3391
3397
  }
3392
3398
  // sessionId is not equal to cookies.sid if cookies.sid is changed in another tab
@@ -3441,7 +3447,7 @@ var mParticle = (function () {
3441
3447
  };
3442
3448
  }
3443
3449
 
3444
- var Messages$5 = Constants.Messages;
3450
+ var Messages$6 = Constants.Messages;
3445
3451
  function Ecommerce(mpInstance) {
3446
3452
  var self = this;
3447
3453
  this.convertTransactionAttributesToProductAction = function (transactionAttributes, productAction) {
@@ -3673,7 +3679,7 @@ var mParticle = (function () {
3673
3679
  };
3674
3680
  this.createPromotion = function (id, creative, name, position) {
3675
3681
  if (!mpInstance._Helpers.Validators.isStringOrNumber(id)) {
3676
- mpInstance.Logger.error(Messages$5.ErrorMessages.PromotionIdRequired);
3682
+ mpInstance.Logger.error(Messages$6.ErrorMessages.PromotionIdRequired);
3677
3683
  return null;
3678
3684
  }
3679
3685
  return {
@@ -3699,7 +3705,7 @@ var mParticle = (function () {
3699
3705
  };
3700
3706
  this.createTransactionAttributes = function (id, affiliation, couponCode, revenue, shipping, tax) {
3701
3707
  if (!mpInstance._Helpers.Validators.isStringOrNumber(id)) {
3702
- mpInstance.Logger.error(Messages$5.ErrorMessages.TransactionIdRequired);
3708
+ mpInstance.Logger.error(Messages$6.ErrorMessages.TransactionIdRequired);
3703
3709
  return null;
3704
3710
  }
3705
3711
  return {
@@ -3813,7 +3819,7 @@ var mParticle = (function () {
3813
3819
  };
3814
3820
  this.createCommerceEventObject = function (customFlags, options) {
3815
3821
  var baseEvent;
3816
- mpInstance.Logger.verbose(Messages$5.InformationMessages.StartingLogCommerceEvent);
3822
+ mpInstance.Logger.verbose(Messages$6.InformationMessages.StartingLogCommerceEvent);
3817
3823
  if (mpInstance._Helpers.canLog()) {
3818
3824
  baseEvent = mpInstance._ServerModel.createEventObject({
3819
3825
  messageType: Types.MessageType.Commerce,
@@ -3825,7 +3831,7 @@ var mParticle = (function () {
3825
3831
  baseEvent.CustomFlags = customFlags;
3826
3832
  return baseEvent;
3827
3833
  } else {
3828
- mpInstance.Logger.verbose(Messages$5.InformationMessages.AbandonLogEvent);
3834
+ mpInstance.Logger.verbose(Messages$6.InformationMessages.AbandonLogEvent);
3829
3835
  }
3830
3836
  return null;
3831
3837
  };
@@ -4331,7 +4337,7 @@ var mParticle = (function () {
4331
4337
  }
4332
4338
 
4333
4339
  var Base64 = Polyfill.Base64,
4334
- Messages$4 = Constants.Messages,
4340
+ Messages$5 = Constants.Messages,
4335
4341
  Base64CookieKeys = Constants.Base64CookieKeys,
4336
4342
  SDKv2NonMPIDCookieKeys = Constants.SDKv2NonMPIDCookieKeys,
4337
4343
  StorageNames = Constants.StorageNames;
@@ -4454,7 +4460,7 @@ var mParticle = (function () {
4454
4460
  try {
4455
4461
  mpInstance._Store.cartProducts = products[mpid] && products[mpid].cp ? products[mpid].cp : [];
4456
4462
  } catch (e) {
4457
- mpInstance.Logger.error(Messages$4.ErrorMessages.CookieParseError);
4463
+ mpInstance.Logger.error(Messages$5.ErrorMessages.CookieParseError);
4458
4464
  }
4459
4465
  }
4460
4466
  };
@@ -4463,7 +4469,7 @@ var mParticle = (function () {
4463
4469
  this.storeDataInMemory = function (obj, currentMPID) {
4464
4470
  try {
4465
4471
  if (!obj) {
4466
- mpInstance.Logger.verbose(Messages$4.InformationMessages.CookieNotFound);
4472
+ mpInstance.Logger.verbose(Messages$5.InformationMessages.CookieNotFound);
4467
4473
  mpInstance._Store.clientId = mpInstance._Store.clientId || mpInstance._Helpers.generateUniqueId();
4468
4474
  mpInstance._Store.deviceId = mpInstance._Store.deviceId || mpInstance._Helpers.generateUniqueId();
4469
4475
  } else {
@@ -4508,7 +4514,7 @@ var mParticle = (function () {
4508
4514
  }
4509
4515
  }
4510
4516
  } catch (e) {
4511
- mpInstance.Logger.error(Messages$4.ErrorMessages.CookieParseError);
4517
+ mpInstance.Logger.error(Messages$5.ErrorMessages.CookieParseError);
4512
4518
  }
4513
4519
  };
4514
4520
 
@@ -4681,7 +4687,7 @@ var mParticle = (function () {
4681
4687
  name,
4682
4688
  cookie,
4683
4689
  result = key ? undefined : {};
4684
- mpInstance.Logger.verbose(Messages$4.InformationMessages.CookieSearch);
4690
+ mpInstance.Logger.verbose(Messages$5.InformationMessages.CookieSearch);
4685
4691
  for (i = 0, l = cookies.length; i < l; i++) {
4686
4692
  try {
4687
4693
  parts = cookies[i].split('=');
@@ -4699,7 +4705,7 @@ var mParticle = (function () {
4699
4705
  }
4700
4706
  }
4701
4707
  if (result) {
4702
- mpInstance.Logger.verbose(Messages$4.InformationMessages.CookieFound);
4708
+ mpInstance.Logger.verbose(Messages$5.InformationMessages.CookieFound);
4703
4709
  return JSON.parse(self.decodePersistence(result));
4704
4710
  } else {
4705
4711
  return null;
@@ -4741,7 +4747,7 @@ var mParticle = (function () {
4741
4747
  mpInstance._Store.nonCurrentUserMPIDs = {};
4742
4748
  }
4743
4749
  encodedCookiesWithExpirationAndPath = self.reduceAndEncodePersistence(cookies, expires, domain, mpInstance._Store.SDKConfig.maxCookieSize);
4744
- mpInstance.Logger.verbose(Messages$4.InformationMessages.CookieSet);
4750
+ mpInstance.Logger.verbose(Messages$5.InformationMessages.CookieSet);
4745
4751
  window.document.cookie = encodeURIComponent(key) + '=' + encodedCookiesWithExpirationAndPath;
4746
4752
  };
4747
4753
 
@@ -5135,16 +5141,16 @@ var mParticle = (function () {
5135
5141
  };
5136
5142
  }
5137
5143
 
5138
- var Messages$3 = Constants.Messages;
5144
+ var Messages$4 = Constants.Messages;
5139
5145
  function Events(mpInstance) {
5140
5146
  var self = this;
5141
5147
  this.logEvent = function (event, options) {
5142
- mpInstance.Logger.verbose(Messages$3.InformationMessages.StartingLogEvent + ': ' + event.name);
5148
+ mpInstance.Logger.verbose(Messages$4.InformationMessages.StartingLogEvent + ': ' + event.name);
5143
5149
  if (mpInstance._Helpers.canLog()) {
5144
5150
  var uploadObject = mpInstance._ServerModel.createEventObject(event);
5145
5151
  mpInstance._APIClient.sendEventToServer(uploadObject, options);
5146
5152
  } else {
5147
- mpInstance.Logger.verbose(Messages$3.InformationMessages.AbandonLogEvent);
5153
+ mpInstance.Logger.verbose(Messages$4.InformationMessages.AbandonLogEvent);
5148
5154
  }
5149
5155
  };
5150
5156
  this.startTracking = function (callback) {
@@ -5200,7 +5206,7 @@ var mParticle = (function () {
5200
5206
  }
5201
5207
  };
5202
5208
  this.logOptOut = function () {
5203
- mpInstance.Logger.verbose(Messages$3.InformationMessages.StartingLogOptOut);
5209
+ mpInstance.Logger.verbose(Messages$4.InformationMessages.StartingLogOptOut);
5204
5210
  var event = mpInstance._ServerModel.createEventObject({
5205
5211
  messageType: Types.MessageType.OptOut,
5206
5212
  eventType: Types.EventType.Other
@@ -5271,7 +5277,7 @@ var mParticle = (function () {
5271
5277
  };
5272
5278
  this.logRefundEvent = function (transactionAttributes, product, attrs, customFlags) {
5273
5279
  if (!transactionAttributes) {
5274
- mpInstance.Logger.error(Messages$3.ErrorMessages.TransactionRequired);
5280
+ mpInstance.Logger.error(Messages$4.ErrorMessages.TransactionRequired);
5275
5281
  return;
5276
5282
  }
5277
5283
  var event = mpInstance._Ecommerce.createCommerceEventObject(customFlags);
@@ -5317,7 +5323,7 @@ var mParticle = (function () {
5317
5323
  }
5318
5324
  };
5319
5325
  this.logCommerceEvent = function (commerceEvent, attrs, options) {
5320
- mpInstance.Logger.verbose(Messages$3.InformationMessages.StartingLogCommerceEvent);
5326
+ mpInstance.Logger.verbose(Messages$4.InformationMessages.StartingLogCommerceEvent);
5321
5327
 
5322
5328
  // If a developer typos the ProductActionType, the event category will be
5323
5329
  // null, resulting in kit forwarding errors on the server.
@@ -5341,7 +5347,7 @@ var mParticle = (function () {
5341
5347
  // https://go.mparticle.com/work/SQDSDKS-6038
5342
5348
  mpInstance._Persistence.update();
5343
5349
  } else {
5344
- mpInstance.Logger.verbose(Messages$3.InformationMessages.AbandonLogEvent);
5350
+ mpInstance.Logger.verbose(Messages$4.InformationMessages.AbandonLogEvent);
5345
5351
  }
5346
5352
  };
5347
5353
  this.addEventHandler = function (domEvent, selector, eventName, data, eventType) {
@@ -6715,22 +6721,35 @@ var mParticle = (function () {
6715
6721
  Modify$2 = _a.Modify,
6716
6722
  Login$1 = _a.Login,
6717
6723
  Logout$1 = _a.Logout;
6718
- var cacheOrClearIdCache = function cacheOrClearIdCache(method, knownIdentities, idCache, xhr, parsingCachedResponse) {
6724
+ var CACHE_HEADER = 'x-mp-max-age';
6725
+ // https://go.mparticle.com/work/SQDSDKS-6568
6726
+ // Temporary adapter to convert the XMLHttpRequest response to the IIdentityResponse interface
6727
+ var xhrIdentityResponseAdapter = function xhrIdentityResponseAdapter(possiblyXhr) {
6728
+ if (possiblyXhr.hasOwnProperty('expireTimestamp')) {
6729
+ // If there is an `expireTimestamp`, it is an IIdentityResponse object, so just return it. This indicates it was a previously cached value.
6730
+ return possiblyXhr;
6731
+ } else {
6732
+ // If there is no `expireTimestamp`, then it is an XHR object and needs to be parsed.
6733
+ return {
6734
+ status: possiblyXhr.status,
6735
+ // Sometimes responseText can be an empty string, such as a 404 response
6736
+ responseText: possiblyXhr.responseText ? JSON.parse(possiblyXhr.responseText) : {},
6737
+ cacheMaxAge: parseNumber((possiblyXhr === null || possiblyXhr === void 0 ? void 0 : possiblyXhr.getResponseHeader(CACHE_HEADER)) || ''),
6738
+ expireTimestamp: 0
6739
+ };
6740
+ }
6741
+ };
6742
+ var cacheOrClearIdCache = function cacheOrClearIdCache(method, knownIdentities, idCache, identityResponse, parsingCachedResponse) {
6719
6743
  // when parsing a response that has already been cached, simply return instead of attempting another cache
6720
6744
  if (parsingCachedResponse) {
6721
6745
  return;
6722
6746
  }
6723
- var CACHE_HEADER = 'x-mp-max-age';
6724
6747
  // default the expire timestamp to one day in milliseconds unless a header comes back
6725
- var now = new Date().getTime();
6726
- var expireTimestamp = now + ONE_DAY_IN_SECONDS * MILLIS_IN_ONE_SEC;
6727
- if (xhr.getAllResponseHeaders().includes(CACHE_HEADER)) {
6728
- expireTimestamp = now + parseNumber(xhr.getResponseHeader(CACHE_HEADER)) * MILLIS_IN_ONE_SEC;
6729
- }
6748
+ var expireTimestamp = getExpireTimestamp(identityResponse === null || identityResponse === void 0 ? void 0 : identityResponse.cacheMaxAge);
6730
6749
  switch (method) {
6731
6750
  case Login$1:
6732
6751
  case Identify$1:
6733
- cacheIdentityRequest(method, knownIdentities, expireTimestamp, idCache, xhr);
6752
+ cacheIdentityRequest(method, knownIdentities, expireTimestamp, idCache, identityResponse);
6734
6753
  break;
6735
6754
  case Modify$2:
6736
6755
  case Logout$1:
@@ -6738,20 +6757,21 @@ var mParticle = (function () {
6738
6757
  break;
6739
6758
  }
6740
6759
  };
6741
- var cacheIdentityRequest = function cacheIdentityRequest(method, identities, expireTimestamp, idCache, xhr) {
6760
+ var cacheIdentityRequest = function cacheIdentityRequest(method, identities, expireTimestamp, idCache, identityResponse) {
6761
+ var responseText = identityResponse.responseText,
6762
+ status = identityResponse.status;
6742
6763
  var cache = idCache.retrieve() || {};
6743
6764
  var cacheKey = concatenateIdentities(method, identities);
6744
6765
  var hashedKey = generateHash(cacheKey);
6745
- var _a = JSON.parse(xhr.responseText),
6746
- mpid = _a.mpid,
6747
- is_logged_in = _a.is_logged_in;
6748
- var cachedResponseText = {
6766
+ var mpid = responseText.mpid,
6767
+ is_logged_in = responseText.is_logged_in;
6768
+ var cachedResponseBody = {
6749
6769
  mpid: mpid,
6750
6770
  is_logged_in: is_logged_in
6751
6771
  };
6752
6772
  cache[hashedKey] = {
6753
- responseText: JSON.stringify(cachedResponseText),
6754
- status: xhr.status,
6773
+ responseText: JSON.stringify(cachedResponseBody),
6774
+ status: status,
6755
6775
  expireTimestamp: expireTimestamp
6756
6776
  };
6757
6777
  idCache.store(cache);
@@ -6783,10 +6803,10 @@ var mParticle = (function () {
6783
6803
  return concatenatedIdentities;
6784
6804
  };
6785
6805
  var hasValidCachedIdentity = function hasValidCachedIdentity(method, proposedUserIdentities, idCache) {
6786
- // There is an edge case where multiple identity calls are taking place
6787
- // before identify fires, so there may not be a cache. See what happens when
6806
+ // There is an edge case where multiple identity calls are taking place
6807
+ // before identify fires, so there may not be a cache. See what happens when
6788
6808
  // the ? in idCache is removed to the following test
6789
- // "queued events contain login mpid instead of identify mpid when calling
6809
+ // "queued events contain login mpid instead of identify mpid when calling
6790
6810
  // login immediately after mParticle initializes"
6791
6811
  var cache = idCache === null || idCache === void 0 ? void 0 : idCache.retrieve();
6792
6812
  // if there is no cache, then there is no valid cached identity
@@ -6814,7 +6834,11 @@ var mParticle = (function () {
6814
6834
  var hashedKey = generateHash(cacheKey);
6815
6835
  var cache = idCache.retrieve();
6816
6836
  var cachedIdentity = cache ? cache[hashedKey] : null;
6817
- return cachedIdentity;
6837
+ return {
6838
+ responseText: parseIdentityResponse(cachedIdentity.responseText),
6839
+ expireTimestamp: cachedIdentity.expireTimestamp,
6840
+ status: cachedIdentity.status
6841
+ };
6818
6842
  };
6819
6843
  // https://go.mparticle.com/work/SQDSDKS-6079
6820
6844
  var createKnownIdentities = function createKnownIdentities(identityApiData, deviceId) {
@@ -6849,6 +6873,15 @@ var mParticle = (function () {
6849
6873
  }
6850
6874
  return false;
6851
6875
  };
6876
+ var getExpireTimestamp = function getExpireTimestamp(maxAge) {
6877
+ if (maxAge === void 0) {
6878
+ maxAge = ONE_DAY_IN_SECONDS;
6879
+ }
6880
+ return new Date().getTime() + maxAge * MILLIS_IN_ONE_SEC;
6881
+ };
6882
+ var parseIdentityResponse = function parseIdentityResponse(responseText) {
6883
+ return responseText ? JSON.parse(responseText) : {};
6884
+ };
6852
6885
 
6853
6886
  var AudienceManager = /** @class */function () {
6854
6887
  function AudienceManager(userAudienceUrl, apiKey, logger) {
@@ -6924,11 +6957,11 @@ var mParticle = (function () {
6924
6957
  return !prevUser || prevUser.getMPID() && identityApiResult.mpid && identityApiResult.mpid !== prevUser.getMPID();
6925
6958
  }
6926
6959
 
6927
- var Messages$2 = Constants.Messages,
6928
- HTTPCodes$2 = Constants.HTTPCodes,
6960
+ var Messages$3 = Constants.Messages,
6961
+ HTTPCodes$3 = Constants.HTTPCodes,
6929
6962
  FeatureFlags$1 = Constants.FeatureFlags,
6930
6963
  IdentityMethods = Constants.IdentityMethods;
6931
- var ErrorMessages = Messages$2.ErrorMessages;
6964
+ var ErrorMessages = Messages$3.ErrorMessages;
6932
6965
  var CacheIdentity = FeatureFlags$1.CacheIdentity;
6933
6966
  var Identify = IdentityMethods.Identify,
6934
6967
  Modify$1 = IdentityMethods.Modify,
@@ -6945,7 +6978,7 @@ var mParticle = (function () {
6945
6978
  // https://go.mparticle.com/work/SQDSDKS-6353
6946
6979
  this.IdentityRequest = {
6947
6980
  preProcessIdentityRequest: function preProcessIdentityRequest(identityApiData, callback, method) {
6948
- mpInstance.Logger.verbose(Messages$2.InformationMessages.StartingLogEvent + ': ' + method);
6981
+ mpInstance.Logger.verbose(Messages$3.InformationMessages.StartingLogEvent + ': ' + method);
6949
6982
  var identityValidationResult = mpInstance._Helpers.Validators.validateIdentities(identityApiData, method);
6950
6983
  if (!identityValidationResult.valid) {
6951
6984
  mpInstance.Logger.error('ERROR: ' + identityValidationResult.error);
@@ -7070,7 +7103,7 @@ var mParticle = (function () {
7070
7103
  * @class mParticle.Identity
7071
7104
  */
7072
7105
  this.IdentityAPI = {
7073
- HTTPCodes: HTTPCodes$2,
7106
+ HTTPCodes: HTTPCodes$3,
7074
7107
  /**
7075
7108
  * Initiate a logout request to the mParticle server
7076
7109
  * @method identify
@@ -7096,16 +7129,16 @@ var mParticle = (function () {
7096
7129
  if (mpInstance._Helpers.canLog()) {
7097
7130
  if (mpInstance._Store.webviewBridgeEnabled) {
7098
7131
  mpInstance._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.Identify, JSON.stringify(mpInstance._Identity.IdentityRequest.convertToNative(identityApiData)));
7099
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.nativeIdentityRequest, 'Identify request sent to native sdk');
7132
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.nativeIdentityRequest, 'Identify request sent to native sdk');
7100
7133
  } else {
7101
7134
  mpInstance._IdentityAPIClient.sendIdentityRequest(identityApiRequest, Identify, callback, identityApiData, self.parseIdentityResponse, mpid, identityApiRequest.known_identities);
7102
7135
  }
7103
7136
  } else {
7104
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.loggingDisabledOrMissingAPIKey, Messages$2.InformationMessages.AbandonLogEvent);
7105
- mpInstance.Logger.verbose(Messages$2.InformationMessages.AbandonLogEvent);
7137
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.loggingDisabledOrMissingAPIKey, Messages$3.InformationMessages.AbandonLogEvent);
7138
+ mpInstance.Logger.verbose(Messages$3.InformationMessages.AbandonLogEvent);
7106
7139
  }
7107
7140
  } else {
7108
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.validationIssue, preProcessResult.error);
7141
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.validationIssue, preProcessResult.error);
7109
7142
  mpInstance.Logger.verbose(preProcessResult);
7110
7143
  }
7111
7144
  },
@@ -7129,7 +7162,7 @@ var mParticle = (function () {
7129
7162
  if (mpInstance._Helpers.canLog()) {
7130
7163
  if (mpInstance._Store.webviewBridgeEnabled) {
7131
7164
  mpInstance._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.Logout, JSON.stringify(mpInstance._Identity.IdentityRequest.convertToNative(identityApiData)));
7132
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.nativeIdentityRequest, 'Logout request sent to native sdk');
7165
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.nativeIdentityRequest, 'Logout request sent to native sdk');
7133
7166
  } else {
7134
7167
  mpInstance._IdentityAPIClient.sendIdentityRequest(identityApiRequest, Logout, callback, identityApiData, self.parseIdentityResponse, mpid);
7135
7168
  evt = mpInstance._ServerModel.createEventObject({
@@ -7145,11 +7178,11 @@ var mParticle = (function () {
7145
7178
  }
7146
7179
  }
7147
7180
  } else {
7148
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.loggingDisabledOrMissingAPIKey, Messages$2.InformationMessages.AbandonLogEvent);
7149
- mpInstance.Logger.verbose(Messages$2.InformationMessages.AbandonLogEvent);
7181
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.loggingDisabledOrMissingAPIKey, Messages$3.InformationMessages.AbandonLogEvent);
7182
+ mpInstance.Logger.verbose(Messages$3.InformationMessages.AbandonLogEvent);
7150
7183
  }
7151
7184
  } else {
7152
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.validationIssue, preProcessResult.error);
7185
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.validationIssue, preProcessResult.error);
7153
7186
  mpInstance.Logger.verbose(preProcessResult);
7154
7187
  }
7155
7188
  },
@@ -7178,16 +7211,16 @@ var mParticle = (function () {
7178
7211
  if (mpInstance._Helpers.canLog()) {
7179
7212
  if (mpInstance._Store.webviewBridgeEnabled) {
7180
7213
  mpInstance._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.Login, JSON.stringify(mpInstance._Identity.IdentityRequest.convertToNative(identityApiData)));
7181
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.nativeIdentityRequest, 'Login request sent to native sdk');
7214
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.nativeIdentityRequest, 'Login request sent to native sdk');
7182
7215
  } else {
7183
7216
  mpInstance._IdentityAPIClient.sendIdentityRequest(identityApiRequest, Login, callback, identityApiData, self.parseIdentityResponse, mpid, identityApiRequest.known_identities);
7184
7217
  }
7185
7218
  } else {
7186
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.loggingDisabledOrMissingAPIKey, Messages$2.InformationMessages.AbandonLogEvent);
7187
- mpInstance.Logger.verbose(Messages$2.InformationMessages.AbandonLogEvent);
7219
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.loggingDisabledOrMissingAPIKey, Messages$3.InformationMessages.AbandonLogEvent);
7220
+ mpInstance.Logger.verbose(Messages$3.InformationMessages.AbandonLogEvent);
7188
7221
  }
7189
7222
  } else {
7190
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.validationIssue, preProcessResult.error);
7223
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.validationIssue, preProcessResult.error);
7191
7224
  mpInstance.Logger.verbose(preProcessResult);
7192
7225
  }
7193
7226
  },
@@ -7211,16 +7244,16 @@ var mParticle = (function () {
7211
7244
  if (mpInstance._Helpers.canLog()) {
7212
7245
  if (mpInstance._Store.webviewBridgeEnabled) {
7213
7246
  mpInstance._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.Modify, JSON.stringify(mpInstance._Identity.IdentityRequest.convertToNative(identityApiData)));
7214
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.nativeIdentityRequest, 'Modify request sent to native sdk');
7247
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.nativeIdentityRequest, 'Modify request sent to native sdk');
7215
7248
  } else {
7216
7249
  mpInstance._IdentityAPIClient.sendIdentityRequest(identityApiRequest, Modify$1, callback, identityApiData, self.parseIdentityResponse, mpid, identityApiRequest.known_identities);
7217
7250
  }
7218
7251
  } else {
7219
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.loggingDisabledOrMissingAPIKey, Messages$2.InformationMessages.AbandonLogEvent);
7220
- mpInstance.Logger.verbose(Messages$2.InformationMessages.AbandonLogEvent);
7252
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.loggingDisabledOrMissingAPIKey, Messages$3.InformationMessages.AbandonLogEvent);
7253
+ mpInstance.Logger.verbose(Messages$3.InformationMessages.AbandonLogEvent);
7221
7254
  }
7222
7255
  } else {
7223
- mpInstance._Helpers.invokeCallback(callback, HTTPCodes$2.validationIssue, preProcessResult.error);
7256
+ mpInstance._Helpers.invokeCallback(callback, HTTPCodes$3.validationIssue, preProcessResult.error);
7224
7257
  mpInstance.Logger.verbose(preProcessResult);
7225
7258
  }
7226
7259
  },
@@ -7299,34 +7332,34 @@ var mParticle = (function () {
7299
7332
  aliasUsers: function aliasUsers(aliasRequest, callback) {
7300
7333
  var message;
7301
7334
  if (!aliasRequest.destinationMpid || !aliasRequest.sourceMpid) {
7302
- message = Messages$2.ValidationMessages.AliasMissingMpid;
7335
+ message = Messages$3.ValidationMessages.AliasMissingMpid;
7303
7336
  }
7304
7337
  if (aliasRequest.destinationMpid === aliasRequest.sourceMpid) {
7305
- message = Messages$2.ValidationMessages.AliasNonUniqueMpid;
7338
+ message = Messages$3.ValidationMessages.AliasNonUniqueMpid;
7306
7339
  }
7307
7340
  if (!aliasRequest.startTime || !aliasRequest.endTime) {
7308
- message = Messages$2.ValidationMessages.AliasMissingTime;
7341
+ message = Messages$3.ValidationMessages.AliasMissingTime;
7309
7342
  }
7310
7343
  if (aliasRequest.startTime > aliasRequest.endTime) {
7311
- message = Messages$2.ValidationMessages.AliasStartBeforeEndTime;
7344
+ message = Messages$3.ValidationMessages.AliasStartBeforeEndTime;
7312
7345
  }
7313
7346
  if (message) {
7314
7347
  mpInstance.Logger.warning(message);
7315
- mpInstance._Helpers.invokeAliasCallback(callback, HTTPCodes$2.validationIssue, message);
7348
+ mpInstance._Helpers.invokeAliasCallback(callback, HTTPCodes$3.validationIssue, message);
7316
7349
  return;
7317
7350
  }
7318
7351
  if (mpInstance._Helpers.canLog()) {
7319
7352
  if (mpInstance._Store.webviewBridgeEnabled) {
7320
7353
  mpInstance._NativeSdkHelpers.sendToNative(Constants.NativeSdkPaths.Alias, JSON.stringify(mpInstance._Identity.IdentityRequest.convertAliasToNative(aliasRequest)));
7321
- mpInstance._Helpers.invokeAliasCallback(callback, HTTPCodes$2.nativeIdentityRequest, 'Alias request sent to native sdk');
7354
+ mpInstance._Helpers.invokeAliasCallback(callback, HTTPCodes$3.nativeIdentityRequest, 'Alias request sent to native sdk');
7322
7355
  } else {
7323
- mpInstance.Logger.verbose(Messages$2.InformationMessages.StartingAliasRequest + ': ' + aliasRequest.sourceMpid + ' -> ' + aliasRequest.destinationMpid);
7356
+ mpInstance.Logger.verbose(Messages$3.InformationMessages.StartingAliasRequest + ': ' + aliasRequest.sourceMpid + ' -> ' + aliasRequest.destinationMpid);
7324
7357
  var aliasRequestMessage = mpInstance._Identity.IdentityRequest.createAliasNetworkRequest(aliasRequest);
7325
7358
  mpInstance._IdentityAPIClient.sendAliasRequest(aliasRequestMessage, callback);
7326
7359
  }
7327
7360
  } else {
7328
- mpInstance._Helpers.invokeAliasCallback(callback, HTTPCodes$2.loggingDisabledOrMissingAPIKey, Messages$2.InformationMessages.AbandonAliasUsers);
7329
- mpInstance.Logger.verbose(Messages$2.InformationMessages.AbandonAliasUsers);
7361
+ mpInstance._Helpers.invokeAliasCallback(callback, HTTPCodes$3.loggingDisabledOrMissingAPIKey, Messages$3.InformationMessages.AbandonAliasUsers);
7362
+ mpInstance.Logger.verbose(Messages$3.InformationMessages.AbandonAliasUsers);
7330
7363
  }
7331
7364
  },
7332
7365
  /**
@@ -7421,7 +7454,7 @@ var mParticle = (function () {
7421
7454
  */
7422
7455
  setUserTag: function setUserTag(tagName) {
7423
7456
  if (!mpInstance._Helpers.Validators.isValidKeyValue(tagName)) {
7424
- mpInstance.Logger.error(Messages$2.ErrorMessages.BadKey);
7457
+ mpInstance.Logger.error(Messages$3.ErrorMessages.BadKey);
7425
7458
  return;
7426
7459
  }
7427
7460
  this.setUserAttribute(tagName, null);
@@ -7433,7 +7466,7 @@ var mParticle = (function () {
7433
7466
  */
7434
7467
  removeUserTag: function removeUserTag(tagName) {
7435
7468
  if (!mpInstance._Helpers.Validators.isValidKeyValue(tagName)) {
7436
- mpInstance.Logger.error(Messages$2.ErrorMessages.BadKey);
7469
+ mpInstance.Logger.error(Messages$3.ErrorMessages.BadKey);
7437
7470
  return;
7438
7471
  }
7439
7472
  this.removeUserAttribute(tagName);
@@ -7450,11 +7483,11 @@ var mParticle = (function () {
7450
7483
  mpInstance._SessionManager.resetSessionTimer();
7451
7484
  if (mpInstance._Helpers.canLog()) {
7452
7485
  if (!mpInstance._Helpers.Validators.isValidAttributeValue(newValue)) {
7453
- mpInstance.Logger.error(Messages$2.ErrorMessages.BadAttribute);
7486
+ mpInstance.Logger.error(Messages$3.ErrorMessages.BadAttribute);
7454
7487
  return;
7455
7488
  }
7456
7489
  if (!mpInstance._Helpers.Validators.isValidKeyValue(key)) {
7457
- mpInstance.Logger.error(Messages$2.ErrorMessages.BadKey);
7490
+ mpInstance.Logger.error(Messages$3.ErrorMessages.BadKey);
7458
7491
  return;
7459
7492
  }
7460
7493
  if (mpInstance._Store.webviewBridgeEnabled) {
@@ -7511,7 +7544,7 @@ var mParticle = (function () {
7511
7544
  var cookies, userAttributes;
7512
7545
  mpInstance._SessionManager.resetSessionTimer();
7513
7546
  if (!mpInstance._Helpers.Validators.isValidKeyValue(key)) {
7514
- mpInstance.Logger.error(Messages$2.ErrorMessages.BadKey);
7547
+ mpInstance.Logger.error(Messages$3.ErrorMessages.BadKey);
7515
7548
  return;
7516
7549
  }
7517
7550
  if (mpInstance._Store.webviewBridgeEnabled) {
@@ -7547,7 +7580,7 @@ var mParticle = (function () {
7547
7580
  setUserAttributeList: function setUserAttributeList(key, newValue) {
7548
7581
  mpInstance._SessionManager.resetSessionTimer();
7549
7582
  if (!mpInstance._Helpers.Validators.isValidKeyValue(key)) {
7550
- mpInstance.Logger.error(Messages$2.ErrorMessages.BadKey);
7583
+ mpInstance.Logger.error(Messages$3.ErrorMessages.BadKey);
7551
7584
  return;
7552
7585
  }
7553
7586
  if (!Array.isArray(newValue)) {
@@ -7833,7 +7866,7 @@ var mParticle = (function () {
7833
7866
  };
7834
7867
 
7835
7868
  // https://go.mparticle.com/work/SQDSDKS-6355
7836
- this.parseIdentityResponse = function (xhr, previousMPID, callback, identityApiData, method, knownIdentities, parsingCachedResponse) {
7869
+ this.parseIdentityResponse = function (identityResponse, previousMPID, callback, identityApiData, method, knownIdentities, parsingCachedResponse) {
7837
7870
  var prevUser = mpInstance.Identity.getUser(previousMPID);
7838
7871
  var prevUserMPID = prevUser ? prevUser.getMPID() : null;
7839
7872
  var previousUIByName = prevUser ? prevUser.getUserIdentities().userIdentities : {};
@@ -7843,9 +7876,9 @@ var mParticle = (function () {
7843
7876
  var newIdentitiesByType = {};
7844
7877
  mpInstance._Store.identityCallInFlight = false;
7845
7878
  try {
7846
- var _identityApiResult, _mpInstance$_APIClien;
7879
+ var _identityResponse$res, _identityApiResult, _mpInstance$_APIClien;
7847
7880
  mpInstance.Logger.verbose('Parsing "' + method + '" identity response from server');
7848
- identityApiResult = xhr.responseText ? JSON.parse(xhr.responseText) : null;
7881
+ identityApiResult = (_identityResponse$res = identityResponse.responseText) !== null && _identityResponse$res !== void 0 ? _identityResponse$res : null;
7849
7882
  mpInstance._Store.isLoggedIn = ((_identityApiResult = identityApiResult) === null || _identityApiResult === void 0 ? void 0 : _identityApiResult.is_logged_in) || false;
7850
7883
 
7851
7884
  // https://go.mparticle.com/work/SQDSDKS-6504
@@ -7861,9 +7894,10 @@ var mParticle = (function () {
7861
7894
  // https://go.mparticle.com/work/SQDSDKS-6329
7862
7895
  mpInstance._Persistence.setFirstSeenTime(identityApiResult.mpid);
7863
7896
  }
7864
- if (xhr.status === 200) {
7897
+ if (identityResponse.status === HTTP_OK) {
7865
7898
  if (getFeatureFlag(CacheIdentity)) {
7866
- cacheOrClearIdCache(method, knownIdentities, self.idCache, xhr, parsingCachedResponse);
7899
+ var identityResponseForCache = xhrIdentityResponseAdapter(identityResponse);
7900
+ cacheOrClearIdCache(method, knownIdentities, self.idCache, identityResponseForCache, parsingCachedResponse);
7867
7901
  }
7868
7902
  var incomingUser = self.IdentityAPI.getUser(identityApiResult.mpid);
7869
7903
  var incomingUIByName = incomingUser ? incomingUser.getUserIdentities().userIdentities : {};
@@ -7912,11 +7946,11 @@ var mParticle = (function () {
7912
7946
  self.sendUserIdentityChangeEvent(newIdentitiesByName, method, identityApiResult.mpid, uiByName);
7913
7947
  }
7914
7948
  if (callback) {
7915
- var callbackCode = xhr.status === 0 ? HTTPCodes$2.noHttpCoverage : xhr.status;
7949
+ var callbackCode = identityResponse.status === 0 ? HTTPCodes$3.noHttpCoverage : identityResponse.status;
7916
7950
  mpInstance._Helpers.invokeCallback(callback, callbackCode, identityApiResult || null, newUser);
7917
7951
  } else if (identityApiResult && !isEmpty(identityApiResult.errors)) {
7918
7952
  // https://go.mparticle.com/work/SQDSDKS-6500
7919
- mpInstance.Logger.error('Received HTTP response code of ' + xhr.status + ' - ' + identityApiResult.errors[0].message);
7953
+ mpInstance.Logger.error('Received HTTP response code of ' + identityResponse.status + ' - ' + identityApiResult.errors[0].message);
7920
7954
  }
7921
7955
  mpInstance.Logger.verbose('Successfully parsed Identity Response');
7922
7956
 
@@ -7924,7 +7958,7 @@ var mParticle = (function () {
7924
7958
  (_mpInstance$_APIClien = mpInstance._APIClient) === null || _mpInstance$_APIClien === void 0 || _mpInstance$_APIClien.processQueuedEvents();
7925
7959
  } catch (e) {
7926
7960
  if (callback) {
7927
- mpInstance._Helpers.invokeCallback(callback, xhr.status, identityApiResult || null);
7961
+ mpInstance._Helpers.invokeCallback(callback, identityResponse.status, identityApiResult || null);
7928
7962
  }
7929
7963
  mpInstance.Logger.error('Error parsing JSON response from Identity server: ' + e);
7930
7964
  }
@@ -8853,42 +8887,108 @@ var mParticle = (function () {
8853
8887
  };
8854
8888
  }
8855
8889
 
8890
+ var HTTPCodes$2 = Constants.HTTPCodes,
8891
+ Messages$2 = Constants.Messages;
8892
+ function sendAliasRequest(mpInstance, aliasRequest, aliasCallback) {
8893
+ return __awaiter(this, void 0, void 0, function () {
8894
+ var _a, verbose, error, invokeAliasCallback, aliasUrl, apiKey, uploadUrl, uploader, uploadPayload, response, message, aliasResponseBody, xhrResponse, errorMessage, e_2, err;
8895
+ return __generator(this, function (_b) {
8896
+ switch (_b.label) {
8897
+ case 0:
8898
+ _a = mpInstance.Logger, verbose = _a.verbose, error = _a.error;
8899
+ invokeAliasCallback = mpInstance._Helpers.invokeAliasCallback;
8900
+ aliasUrl = mpInstance._Store.SDKConfig.aliasUrl;
8901
+ apiKey = mpInstance._Store.devToken;
8902
+ verbose(Messages$2.InformationMessages.SendAliasHttp);
8903
+ uploadUrl = "https://".concat(aliasUrl).concat(apiKey, "/Alias");
8904
+ uploader = window.fetch ? new FetchUploader(uploadUrl) : new XHRUploader(uploadUrl);
8905
+ uploadPayload = {
8906
+ method: 'post',
8907
+ headers: {
8908
+ Accept: 'text/plain;charset=UTF-8',
8909
+ 'Content-Type': 'application/json'
8910
+ },
8911
+ body: JSON.stringify(aliasRequest)
8912
+ };
8913
+ _b.label = 1;
8914
+ case 1:
8915
+ _b.trys.push([1, 9,, 10]);
8916
+ return [4 /*yield*/, uploader.upload(uploadPayload)];
8917
+ case 2:
8918
+ response = _b.sent();
8919
+ message = void 0;
8920
+ aliasResponseBody = void 0;
8921
+ if (!response.json) return [3 /*break*/, 7];
8922
+ _b.label = 3;
8923
+ case 3:
8924
+ _b.trys.push([3, 5,, 6]);
8925
+ return [4 /*yield*/, response.json()];
8926
+ case 4:
8927
+ aliasResponseBody = _b.sent();
8928
+ return [3 /*break*/, 6];
8929
+ case 5:
8930
+ _b.sent();
8931
+ verbose('The request has no response body');
8932
+ return [3 /*break*/, 6];
8933
+ case 6:
8934
+ return [3 /*break*/, 8];
8935
+ case 7:
8936
+ xhrResponse = response;
8937
+ // debugger;
8938
+ aliasResponseBody = xhrResponse.responseText ? JSON.parse(xhrResponse.responseText) : '';
8939
+ _b.label = 8;
8940
+ case 8:
8941
+ errorMessage = void 0;
8942
+ switch (response.status) {
8943
+ case HTTP_OK:
8944
+ case HTTP_ACCEPTED:
8945
+ // https://go.mparticle.com/work/SQDSDKS-6670
8946
+ message = 'Successfully sent forwarding stats to mParticle Servers';
8947
+ break;
8948
+ default:
8949
+ // 400 has an error message, but 403 doesn't
8950
+ if (aliasResponseBody === null || aliasResponseBody === void 0 ? void 0 : aliasResponseBody.message) {
8951
+ errorMessage = aliasResponseBody.message;
8952
+ }
8953
+ message = 'Issue with sending Alias Request to mParticle Servers, received HTTP Code of ' + response.status;
8954
+ }
8955
+ verbose(message);
8956
+ invokeAliasCallback(aliasCallback, response.status, errorMessage);
8957
+ return [3 /*break*/, 10];
8958
+ case 9:
8959
+ e_2 = _b.sent();
8960
+ err = e_2;
8961
+ error('Error sending alias request to mParticle servers. ' + err);
8962
+ invokeAliasCallback(aliasCallback, HTTPCodes$2.noHttpCoverage, err.message);
8963
+ return [3 /*break*/, 10];
8964
+ case 10:
8965
+ return [2 /*return*/];
8966
+ }
8967
+ });
8968
+ });
8969
+ }
8970
+
8856
8971
  var HTTPCodes$1 = Constants.HTTPCodes,
8857
8972
  Messages$1 = Constants.Messages;
8858
8973
  var Modify = Constants.IdentityMethods.Modify;
8859
8974
  function IdentityAPIClient(mpInstance) {
8860
- this.sendAliasRequest = function (aliasRequest, callback) {
8861
- var xhr,
8862
- xhrCallback = function xhrCallback() {
8863
- if (xhr.readyState === 4) {
8864
- // https://go.mparticle.com/work/SQDSDKS-6368
8865
- mpInstance.Logger.verbose('Received ' + xhr.statusText + ' from server');
8866
- //only parse error messages from failing requests
8867
- if (xhr.status !== 200 && xhr.status !== 202) {
8868
- if (xhr.responseText) {
8869
- var response = JSON.parse(xhr.responseText);
8870
- if (response.hasOwnProperty('message')) {
8871
- var errorMessage = response.message;
8872
- mpInstance._Helpers.invokeAliasCallback(callback, xhr.status, errorMessage);
8873
- return;
8874
- }
8875
- }
8876
- }
8877
- mpInstance._Helpers.invokeAliasCallback(callback, xhr.status);
8975
+ this.sendAliasRequest = /*#__PURE__*/function () {
8976
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(aliasRequest, callback) {
8977
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
8978
+ while (1) switch (_context.prev = _context.next) {
8979
+ case 0:
8980
+ _context.next = 2;
8981
+ return sendAliasRequest(mpInstance, aliasRequest, callback);
8982
+ case 2:
8983
+ case "end":
8984
+ return _context.stop();
8878
8985
  }
8879
- };
8880
- mpInstance.Logger.verbose(Messages$1.InformationMessages.SendAliasHttp);
8881
- xhr = mpInstance._Helpers.createXHR(xhrCallback);
8882
- if (xhr) {
8883
- try {
8884
- xhr.open('post', mpInstance._Helpers.createServiceUrl(mpInstance._Store.SDKConfig.aliasUrl, mpInstance._Store.devToken) + '/Alias');
8885
- xhr.send(JSON.stringify(aliasRequest));
8886
- } catch (e) {
8887
- mpInstance._Helpers.invokeAliasCallback(callback, HTTPCodes$1.noHttpCoverage, e);
8888
- mpInstance.Logger.error('Error sending alias request to mParticle servers. ' + e);
8889
- }
8890
- }
8891
- };
8986
+ }, _callee);
8987
+ }));
8988
+ return function (_x, _x2) {
8989
+ return _ref.apply(this, arguments);
8990
+ };
8991
+ }();
8892
8992
  this.sendIdentityRequest = function (identityApiRequest, method, callback, originalIdentityApiData, parseIdentityResponse, mpid, knownIdentities) {
8893
8993
  var xhr,
8894
8994
  previousMPID,
@@ -8896,7 +8996,10 @@ var mParticle = (function () {
8896
8996
  if (xhr.readyState === 4) {
8897
8997
  // https://go.mparticle.com/work/SQDSDKS-6368
8898
8998
  mpInstance.Logger.verbose('Received ' + xhr.statusText + ' from server');
8899
- parseIdentityResponse(xhr, previousMPID, callback, originalIdentityApiData, method, knownIdentities, false);
8999
+
9000
+ // https://go.mparticle.com/work/SQDSDKS-6565
9001
+ var identityResponse = xhrIdentityResponseAdapter(xhr);
9002
+ parseIdentityResponse(identityResponse, previousMPID, callback, originalIdentityApiData, method, knownIdentities, false);
8900
9003
  }
8901
9004
  };
8902
9005
  mpInstance.Logger.verbose(Messages$1.InformationMessages.SendIdentityBegin);