@mparticle/web-sdk 2.21.1 → 2.22.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.js CHANGED
@@ -219,7 +219,7 @@ var mParticle = (function () {
219
219
  }
220
220
 
221
221
  var _TriggerUploadType;
222
- var MessageType$1 = {
222
+ var MessageType$2 = {
223
223
  SessionStart: 1,
224
224
  SessionEnd: 2,
225
225
  PageView: 3,
@@ -236,7 +236,7 @@ var mParticle = (function () {
236
236
 
237
237
  // Dictionary that contains MessageTypes that will
238
238
  // trigger an immediate upload.
239
- var TriggerUploadType = (_TriggerUploadType = {}, _defineProperty(_TriggerUploadType, MessageType$1.Commerce, 1), _defineProperty(_TriggerUploadType, MessageType$1.UserAttributeChange, 1), _defineProperty(_TriggerUploadType, MessageType$1.UserIdentityChange, 1), _TriggerUploadType);
239
+ var TriggerUploadType = (_TriggerUploadType = {}, _defineProperty(_TriggerUploadType, MessageType$2.Commerce, 1), _defineProperty(_TriggerUploadType, MessageType$2.UserAttributeChange, 1), _defineProperty(_TriggerUploadType, MessageType$2.UserIdentityChange, 1), _TriggerUploadType);
240
240
  var EventType = {
241
241
  Unknown: 0,
242
242
  Navigation: 1,
@@ -314,7 +314,7 @@ var mParticle = (function () {
314
314
  ProductRemoveFromWishlist: 21,
315
315
  ProductImpression: 22
316
316
  };
317
- var IdentityType = {
317
+ var IdentityType$1 = {
318
318
  Other: 0,
319
319
  CustomerId: 1,
320
320
  Facebook: 2,
@@ -337,11 +337,11 @@ var mParticle = (function () {
337
337
  PhoneNumber2: 20,
338
338
  PhoneNumber3: 21
339
339
  };
340
- IdentityType.isValid = function (identityType) {
340
+ IdentityType$1.isValid = function (identityType) {
341
341
  if (typeof identityType === 'number') {
342
- for (var prop in IdentityType) {
343
- if (IdentityType.hasOwnProperty(prop)) {
344
- if (IdentityType[prop] === identityType) {
342
+ for (var prop in IdentityType$1) {
343
+ if (IdentityType$1.hasOwnProperty(prop)) {
344
+ if (IdentityType$1[prop] === identityType) {
345
345
  return true;
346
346
  }
347
347
  }
@@ -349,7 +349,7 @@ var mParticle = (function () {
349
349
  }
350
350
  return false;
351
351
  };
352
- IdentityType.getName = function (identityType) {
352
+ IdentityType$1.getName = function (identityType) {
353
353
  switch (identityType) {
354
354
  case window.mParticle.IdentityType.CustomerId:
355
355
  return 'Customer ID';
@@ -371,97 +371,97 @@ var mParticle = (function () {
371
371
  return 'Other ID';
372
372
  }
373
373
  };
374
- IdentityType.getIdentityType = function (identityName) {
374
+ IdentityType$1.getIdentityType = function (identityName) {
375
375
  switch (identityName) {
376
376
  case 'other':
377
- return IdentityType.Other;
377
+ return IdentityType$1.Other;
378
378
  case 'customerid':
379
- return IdentityType.CustomerId;
379
+ return IdentityType$1.CustomerId;
380
380
  case 'facebook':
381
- return IdentityType.Facebook;
381
+ return IdentityType$1.Facebook;
382
382
  case 'twitter':
383
- return IdentityType.Twitter;
383
+ return IdentityType$1.Twitter;
384
384
  case 'google':
385
- return IdentityType.Google;
385
+ return IdentityType$1.Google;
386
386
  case 'microsoft':
387
- return IdentityType.Microsoft;
387
+ return IdentityType$1.Microsoft;
388
388
  case 'yahoo':
389
- return IdentityType.Yahoo;
389
+ return IdentityType$1.Yahoo;
390
390
  case 'email':
391
- return IdentityType.Email;
391
+ return IdentityType$1.Email;
392
392
  case 'facebookcustomaudienceid':
393
- return IdentityType.FacebookCustomAudienceId;
393
+ return IdentityType$1.FacebookCustomAudienceId;
394
394
  case 'other2':
395
- return IdentityType.Other2;
395
+ return IdentityType$1.Other2;
396
396
  case 'other3':
397
- return IdentityType.Other3;
397
+ return IdentityType$1.Other3;
398
398
  case 'other4':
399
- return IdentityType.Other4;
399
+ return IdentityType$1.Other4;
400
400
  case 'other5':
401
- return IdentityType.Other5;
401
+ return IdentityType$1.Other5;
402
402
  case 'other6':
403
- return IdentityType.Other6;
403
+ return IdentityType$1.Other6;
404
404
  case 'other7':
405
- return IdentityType.Other7;
405
+ return IdentityType$1.Other7;
406
406
  case 'other8':
407
- return IdentityType.Other8;
407
+ return IdentityType$1.Other8;
408
408
  case 'other9':
409
- return IdentityType.Other9;
409
+ return IdentityType$1.Other9;
410
410
  case 'other10':
411
- return IdentityType.Other10;
411
+ return IdentityType$1.Other10;
412
412
  case 'mobile_number':
413
- return IdentityType.MobileNumber;
413
+ return IdentityType$1.MobileNumber;
414
414
  case 'phone_number_2':
415
- return IdentityType.PhoneNumber2;
415
+ return IdentityType$1.PhoneNumber2;
416
416
  case 'phone_number_3':
417
- return IdentityType.PhoneNumber3;
417
+ return IdentityType$1.PhoneNumber3;
418
418
  default:
419
419
  return false;
420
420
  }
421
421
  };
422
- IdentityType.getIdentityName = function (identityType) {
422
+ IdentityType$1.getIdentityName = function (identityType) {
423
423
  switch (identityType) {
424
- case IdentityType.Other:
424
+ case IdentityType$1.Other:
425
425
  return 'other';
426
- case IdentityType.CustomerId:
426
+ case IdentityType$1.CustomerId:
427
427
  return 'customerid';
428
- case IdentityType.Facebook:
428
+ case IdentityType$1.Facebook:
429
429
  return 'facebook';
430
- case IdentityType.Twitter:
430
+ case IdentityType$1.Twitter:
431
431
  return 'twitter';
432
- case IdentityType.Google:
432
+ case IdentityType$1.Google:
433
433
  return 'google';
434
- case IdentityType.Microsoft:
434
+ case IdentityType$1.Microsoft:
435
435
  return 'microsoft';
436
- case IdentityType.Yahoo:
436
+ case IdentityType$1.Yahoo:
437
437
  return 'yahoo';
438
- case IdentityType.Email:
438
+ case IdentityType$1.Email:
439
439
  return 'email';
440
- case IdentityType.FacebookCustomAudienceId:
440
+ case IdentityType$1.FacebookCustomAudienceId:
441
441
  return 'facebookcustomaudienceid';
442
- case IdentityType.Other2:
442
+ case IdentityType$1.Other2:
443
443
  return 'other2';
444
- case IdentityType.Other3:
444
+ case IdentityType$1.Other3:
445
445
  return 'other3';
446
- case IdentityType.Other4:
446
+ case IdentityType$1.Other4:
447
447
  return 'other4';
448
- case IdentityType.Other5:
448
+ case IdentityType$1.Other5:
449
449
  return 'other5';
450
- case IdentityType.Other6:
450
+ case IdentityType$1.Other6:
451
451
  return 'other6';
452
- case IdentityType.Other7:
452
+ case IdentityType$1.Other7:
453
453
  return 'other7';
454
- case IdentityType.Other8:
454
+ case IdentityType$1.Other8:
455
455
  return 'other8';
456
- case IdentityType.Other9:
456
+ case IdentityType$1.Other9:
457
457
  return 'other9';
458
- case IdentityType.Other10:
458
+ case IdentityType$1.Other10:
459
459
  return 'other10';
460
- case IdentityType.MobileNumber:
460
+ case IdentityType$1.MobileNumber:
461
461
  return 'mobile_number';
462
- case IdentityType.PhoneNumber2:
462
+ case IdentityType$1.PhoneNumber2:
463
463
  return 'phone_number_2';
464
- case IdentityType.PhoneNumber3:
464
+ case IdentityType$1.PhoneNumber3:
465
465
  return 'phone_number_3';
466
466
  }
467
467
  };
@@ -570,10 +570,10 @@ var mParticle = (function () {
570
570
  Development: 'development'
571
571
  };
572
572
  var Types = {
573
- MessageType: MessageType$1,
573
+ MessageType: MessageType$2,
574
574
  EventType: EventType,
575
575
  CommerceEventType: CommerceEventType,
576
- IdentityType: IdentityType,
576
+ IdentityType: IdentityType$1,
577
577
  ProfileMessageType: ProfileMessageType,
578
578
  ApplicationTransitionType: ApplicationTransitionType$1,
579
579
  ProductActionType: ProductActionType,
@@ -582,7 +582,7 @@ var mParticle = (function () {
582
582
  Environment: Environment
583
583
  };
584
584
 
585
- var version = "2.21.1";
585
+ var version = "2.22.0";
586
586
 
587
587
  var Constants = {
588
588
  sdkVersion: version,
@@ -730,11 +730,11 @@ var mParticle = (function () {
730
730
  },
731
731
  FeatureFlags: {
732
732
  ReportBatching: 'reportBatching',
733
- EventsV3: 'eventsV3',
734
733
  EventBatchingIntervalMillis: 'eventBatchingIntervalMillis',
735
734
  OfflineStorage: 'offlineStorage'
736
735
  },
737
- DefaultInstance: 'default_instance'
736
+ DefaultInstance: 'default_instance',
737
+ CCPAPurpose: 'data_sale_opt_out'
738
738
  };
739
739
 
740
740
  function _typeof(obj) {
@@ -2391,7 +2391,6 @@ var mParticle = (function () {
2391
2391
  return XHRUploader;
2392
2392
  }(AsyncUploader);
2393
2393
 
2394
- var Messages$9 = Constants.Messages;
2395
2394
  function APIClient(mpInstance, kitBlocker) {
2396
2395
  this.uploader = null;
2397
2396
  var self = this;
@@ -2403,16 +2402,6 @@ var mParticle = (function () {
2403
2402
  this.uploader.queueEvent(event);
2404
2403
  mpInstance._Persistence.update();
2405
2404
  };
2406
- this.shouldEnableBatching = function () {
2407
- // Returns a string of a number that must be parsed
2408
- // Invalid strings will be parsed to NaN which is falsey
2409
- var eventsV3Percentage = parseInt(mpInstance._Helpers.getFeatureFlag(Constants.FeatureFlags.EventsV3), 10);
2410
- if (!eventsV3Percentage) {
2411
- return false;
2412
- }
2413
- var rampNumber = getRampNumber(mpInstance._Store.deviceId);
2414
- return eventsV3Percentage >= rampNumber;
2415
- };
2416
2405
  this.processQueuedEvents = function () {
2417
2406
  var mpid,
2418
2407
  currentUser = mpInstance.Identity.getCurrentUser();
@@ -2458,14 +2447,13 @@ var mParticle = (function () {
2458
2447
  return;
2459
2448
  }
2460
2449
  this.processQueuedEvents();
2461
- if (event && options.shouldUploadEvent) {
2462
- if (this.shouldEnableBatching()) {
2463
- this.queueEventForBatchUpload(event);
2464
- } else {
2465
- this.sendSingleEventToServer(event);
2466
- }
2450
+ if (isEmpty(event)) {
2451
+ return;
2452
+ }
2453
+ if (options.shouldUploadEvent) {
2454
+ this.queueEventForBatchUpload(event);
2467
2455
  }
2468
- if (event && event.EventName !== Types.MessageType.AppStateTransition) {
2456
+ if (event.EventName !== Types.MessageType.AppStateTransition) {
2469
2457
  if (kitBlocker && kitBlocker.kitBlockingEnabled) {
2470
2458
  event = kitBlocker.createBlockedEvent(event);
2471
2459
  }
@@ -2476,32 +2464,6 @@ var mParticle = (function () {
2476
2464
  }
2477
2465
  }
2478
2466
  };
2479
- this.sendSingleEventToServer = function (event) {
2480
- if (event.EventDataType === Types.MessageType.Media) {
2481
- return;
2482
- }
2483
- var xhr,
2484
- xhrCallback = function xhrCallback() {
2485
- if (xhr.readyState === 4) {
2486
- mpInstance.Logger.verbose('Received ' + xhr.statusText + ' from server');
2487
- mpInstance._Persistence.update();
2488
- }
2489
- };
2490
- if (!event) {
2491
- mpInstance.Logger.error(Messages$9.ErrorMessages.EventEmpty);
2492
- return;
2493
- }
2494
- mpInstance.Logger.verbose(Messages$9.InformationMessages.SendHttp);
2495
- xhr = mpInstance._Helpers.createXHR(xhrCallback);
2496
- if (xhr) {
2497
- try {
2498
- xhr.open('post', mpInstance._Helpers.createServiceUrl(mpInstance._Store.SDKConfig.v2SecureServiceUrl, mpInstance._Store.devToken) + '/Events');
2499
- xhr.send(JSON.stringify(mpInstance._ServerModel.convertEventToV2DTO(event)));
2500
- } catch (e) {
2501
- mpInstance.Logger.error('Error sending event to mParticle servers. ' + e);
2502
- }
2503
- }
2504
- };
2505
2467
  this.sendBatchForwardingStatsToServer = function (forwardingStatsData, xhr) {
2506
2468
  var url;
2507
2469
  var data;
@@ -2658,6 +2620,43 @@ var mParticle = (function () {
2658
2620
  }
2659
2621
  };
2660
2622
 
2623
+ var KitFilterHelper = /** @class */function () {
2624
+ function KitFilterHelper() {}
2625
+ KitFilterHelper.hashEventType = function (eventType) {
2626
+ return generateHash(eventType);
2627
+ };
2628
+ KitFilterHelper.hashEventName = function (eventName, eventType) {
2629
+ return generateHash(eventType + eventName);
2630
+ };
2631
+ KitFilterHelper.hashEventAttributeKey = function (eventType, eventName, customAttributeName) {
2632
+ return generateHash(eventType + eventName + customAttributeName);
2633
+ };
2634
+ KitFilterHelper.hashUserAttribute = function (userAttributeKey) {
2635
+ return generateHash(userAttributeKey);
2636
+ };
2637
+ // User Identities are not actually hashed, this method is named this way to
2638
+ // be consistent with the filter class. UserIdentityType is also a number
2639
+ KitFilterHelper.hashUserIdentity = function (userIdentity) {
2640
+ return userIdentity;
2641
+ };
2642
+ KitFilterHelper.hashConsentPurpose = function (prefix, purpose) {
2643
+ return generateHash(prefix + purpose);
2644
+ };
2645
+ // The methods below are for conditional forwarding, a type of filter
2646
+ // hashAttributeCondiitonalForwarding is used for both User and Event
2647
+ // attribute keys and attribute values
2648
+ // The backend returns the hashes as strings for conditional forwarding
2649
+ // but returns "regular" filters as arrays of numbers
2650
+ // See IFilteringEventAttributeValue in configApiClient.ts as an example
2651
+ KitFilterHelper.hashAttributeConditionalForwarding = function (attribute) {
2652
+ return generateHash(attribute).toString();
2653
+ };
2654
+ KitFilterHelper.hashConsentPurposeConditionalForwarding = function (prefix, purpose) {
2655
+ return this.hashConsentPurpose(prefix, purpose).toString();
2656
+ };
2657
+ return KitFilterHelper;
2658
+ }();
2659
+
2661
2660
  var StorageNames$1 = Constants.StorageNames;
2662
2661
  function Helpers(mpInstance) {
2663
2662
  var self = this;
@@ -2887,7 +2886,7 @@ var mParticle = (function () {
2887
2886
  if (userIdentitiesObject && Object.keys(userIdentitiesObject).length) {
2888
2887
  for (var userIdentityName in userIdentitiesObject) {
2889
2888
  if (userIdentitiesObject.hasOwnProperty(userIdentityName)) {
2890
- var userIdentityType = Types.IdentityType.getIdentityType(userIdentityName);
2889
+ var userIdentityType = KitFilterHelper.hashUserIdentity(Types.IdentityType.getIdentityType(userIdentityName));
2891
2890
  if (!self.inArray(filterList, userIdentityType)) {
2892
2891
  filteredUserIdentities[userIdentityName] = userIdentitiesObject[userIdentityName];
2893
2892
  }
@@ -2901,7 +2900,7 @@ var mParticle = (function () {
2901
2900
  if (userAttributes && Object.keys(userAttributes).length) {
2902
2901
  for (var userAttribute in userAttributes) {
2903
2902
  if (userAttributes.hasOwnProperty(userAttribute)) {
2904
- var hashedUserAttribute = self.generateHash(userAttribute);
2903
+ var hashedUserAttribute = KitFilterHelper.hashUserAttribute(userAttribute);
2905
2904
  if (!self.inArray(filterList, hashedUserAttribute)) {
2906
2905
  filteredUserAttributes[userAttribute] = userAttributes[userAttribute];
2907
2906
  }
@@ -2911,7 +2910,7 @@ var mParticle = (function () {
2911
2910
  return filteredUserAttributes;
2912
2911
  };
2913
2912
  this.isFilteredUserAttribute = function (userAttributeKey, filterList) {
2914
- var hashedUserAttribute = self.generateHash(userAttributeKey);
2913
+ var hashedUserAttribute = KitFilterHelper.hashUserAttribute(userAttributeKey);
2915
2914
  return filterList && self.inArray(filterList, hashedUserAttribute);
2916
2915
  };
2917
2916
  this.isEventType = function (type) {
@@ -3963,9 +3962,6 @@ var mParticle = (function () {
3963
3962
  if (!config.hasOwnProperty('flags')) {
3964
3963
  this.SDKConfig.flags = {};
3965
3964
  }
3966
- if (!this.SDKConfig.flags.hasOwnProperty(Constants.FeatureFlags.EventsV3)) {
3967
- this.SDKConfig.flags[Constants.FeatureFlags.EventsV3] = 0;
3968
- }
3969
3965
  if (!this.SDKConfig.flags.hasOwnProperty(Constants.FeatureFlags.EventBatchingIntervalMillis)) {
3970
3966
  this.SDKConfig.flags[Constants.FeatureFlags.EventBatchingIntervalMillis] = Constants.DefaultConfig.uploadInterval;
3971
3967
  }
@@ -5240,8 +5236,8 @@ var mParticle = (function () {
5240
5236
  if (userAttributes && mpInstance._Helpers.isObject(userAttributes) && Object.keys(userAttributes).length) {
5241
5237
  for (var attrName in userAttributes) {
5242
5238
  if (userAttributes.hasOwnProperty(attrName)) {
5243
- attrHash = mpInstance._Helpers.generateHash(attrName).toString();
5244
- valueHash = mpInstance._Helpers.generateHash(userAttributes[attrName]).toString();
5239
+ attrHash = KitFilterHelper.hashAttributeConditionalForwarding(attrName);
5240
+ valueHash = KitFilterHelper.hashAttributeConditionalForwarding(userAttributes[attrName]);
5245
5241
  if (attrHash === filterObject.userAttributeName && valueHash === filterObject.userAttributeValue) {
5246
5242
  isMatch = true;
5247
5243
  break;
@@ -5291,7 +5287,7 @@ var mParticle = (function () {
5291
5287
  filterUserIdentities = function filterUserIdentities(event, filterList) {
5292
5288
  if (event.UserIdentities && event.UserIdentities.length) {
5293
5289
  event.UserIdentities.forEach(function (userIdentity, i) {
5294
- if (mpInstance._Helpers.inArray(filterList, userIdentity.Type)) {
5290
+ if (mpInstance._Helpers.inArray(filterList, KitFilterHelper.hashUserIdentity(userIdentity.Type))) {
5295
5291
  event.UserIdentities.splice(i, 1);
5296
5292
  if (i > 0) {
5297
5293
  i--;
@@ -5307,7 +5303,7 @@ var mParticle = (function () {
5307
5303
  }
5308
5304
  for (var attrName in event.EventAttributes) {
5309
5305
  if (event.EventAttributes.hasOwnProperty(attrName)) {
5310
- hash = mpInstance._Helpers.generateHash(event.EventCategory + event.EventName + attrName);
5306
+ hash = KitFilterHelper.hashEventAttributeKey(event.EventCategory, event.EventName, attrName);
5311
5307
  if (mpInstance._Helpers.inArray(filterList, hash)) {
5312
5308
  delete event.EventAttributes[attrName];
5313
5309
  }
@@ -5324,8 +5320,8 @@ var mParticle = (function () {
5324
5320
  },
5325
5321
  forwardingRuleMessageTypes = [Types.MessageType.PageEvent, Types.MessageType.PageView, Types.MessageType.Commerce];
5326
5322
  if (!mpInstance._Store.webviewBridgeEnabled && mpInstance._Store.activeForwarders) {
5327
- hashedEventName = mpInstance._Helpers.generateHash(event.EventCategory + event.EventName);
5328
- hashedEventType = mpInstance._Helpers.generateHash(event.EventCategory);
5323
+ hashedEventName = KitFilterHelper.hashEventName(event.EventName, event.EventCategory);
5324
+ hashedEventType = KitFilterHelper.hashEventType(event.EventCategory);
5329
5325
  for (var i = 0; i < mpInstance._Store.activeForwarders.length; i++) {
5330
5326
  // Check attribute forwarding rule. This rule allows users to only forward an event if a
5331
5327
  // specific attribute exists and has a specific value. Alternatively, they can specify
@@ -5340,11 +5336,11 @@ var mParticle = (function () {
5340
5336
  if (event.EventAttributes) {
5341
5337
  for (var prop in event.EventAttributes) {
5342
5338
  var hashedEventAttributeName;
5343
- hashedEventAttributeName = mpInstance._Helpers.generateHash(prop).toString();
5339
+ hashedEventAttributeName = KitFilterHelper.hashAttributeConditionalForwarding(prop);
5344
5340
  if (hashedEventAttributeName === mpInstance._Store.activeForwarders[i].filteringEventAttributeValue.eventAttributeName) {
5345
5341
  foundProp = {
5346
5342
  name: hashedEventAttributeName,
5347
- value: mpInstance._Helpers.generateHash(event.EventAttributes[prop]).toString()
5343
+ value: KitFilterHelper.hashAttributeConditionalForwarding(event.EventAttributes[prop])
5348
5344
  };
5349
5345
  }
5350
5346
  if (foundProp) {
@@ -5561,7 +5557,11 @@ var mParticle = (function () {
5561
5557
  // which is typed { kits: Dictionary<constructor> }.
5562
5558
  // The constructors are keyed by the name of the kit.
5563
5559
  config.sideloadedKits.forEach(function (sideloadedKit) {
5564
- sideloadedKit.register(sideloadedKits);
5560
+ try {
5561
+ sideloadedKit.kitInstance.register(sideloadedKits);
5562
+ } catch (e) {
5563
+ console.error('Error registering sideloaded kit ' + sideloadedKit.kitInstance.name);
5564
+ }
5565
5565
  });
5566
5566
 
5567
5567
  // Then configure each kit
@@ -5625,7 +5625,7 @@ var mParticle = (function () {
5625
5625
  }
5626
5626
 
5627
5627
  // TODO: This file is no longer the server model because the web SDK payload
5628
- var MessageType = Types.MessageType;
5628
+ var MessageType$1 = Types.MessageType;
5629
5629
  var ApplicationTransitionType = Types.ApplicationTransitionType;
5630
5630
  // TODO: Make this a pure function that returns a new object
5631
5631
  function convertCustomFlags(event, dto) {
@@ -5811,7 +5811,7 @@ var mParticle = (function () {
5811
5811
  CurrencyCode: mpInstance._Store.currencyCode,
5812
5812
  DataPlan: mpInstance._Store.SDKConfig.dataPlan ? mpInstance._Store.SDKConfig.dataPlan : {}
5813
5813
  };
5814
- if (eventObject.EventDataType === MessageType.AppStateTransition) {
5814
+ if (eventObject.EventDataType === MessageType$1.AppStateTransition) {
5815
5815
  eventObject.IsFirstRun = mpInstance._Store.isFirstRun;
5816
5816
  eventObject.LaunchReferral = window.location.href || null;
5817
5817
  }
@@ -5871,7 +5871,7 @@ var mParticle = (function () {
5871
5871
  if (consent) {
5872
5872
  dto.con = consent;
5873
5873
  }
5874
- if (event.EventDataType === MessageType.AppStateTransition) {
5874
+ if (event.EventDataType === MessageType$1.AppStateTransition) {
5875
5875
  dto.fr = event.IsFirstRun;
5876
5876
  dto.iu = false;
5877
5877
  dto.at = ApplicationTransitionType.AppInit;
@@ -5883,7 +5883,7 @@ var mParticle = (function () {
5883
5883
  if (event.CustomFlags) {
5884
5884
  convertCustomFlags(event, dto);
5885
5885
  }
5886
- if (event.EventDataType === MessageType.Commerce) {
5886
+ if (event.EventDataType === MessageType$1.Commerce) {
5887
5887
  dto.cu = event.CurrencyCode;
5888
5888
  // TODO: If Cart is deprecated, we should deprecate this too
5889
5889
  if (event.ShoppingCart) {
@@ -5924,7 +5924,7 @@ var mParticle = (function () {
5924
5924
  };
5925
5925
  });
5926
5926
  }
5927
- } else if (event.EventDataType === MessageType.Profile) {
5927
+ } else if (event.EventDataType === MessageType$1.Profile) {
5928
5928
  dto.pet = event.ProfileMessageType;
5929
5929
  }
5930
5930
  return dto;
@@ -6617,25 +6617,24 @@ var mParticle = (function () {
6617
6617
  cookies[mpid].ua = userAttributes;
6618
6618
  mpInstance._Persistence.savePersistence(cookies, mpid);
6619
6619
  }
6620
- if (mpInstance._APIClient.shouldEnableBatching()) {
6621
- // If the new attributeList length is different previous, then there is a change event.
6622
- // Loop through new attributes list, see if they are all in the same index as previous user attributes list
6623
- // If there are any changes, break, and immediately send a userAttributeChangeEvent with full array as a value
6624
- if (!previousUserAttributeValue || !Array.isArray(previousUserAttributeValue)) {
6625
- userAttributeChange = true;
6626
- } else if (newValue.length !== previousUserAttributeValue.length) {
6627
- userAttributeChange = true;
6628
- } else {
6629
- for (var i = 0; i < newValue.length; i++) {
6630
- if (previousUserAttributeValue[i] !== newValue[i]) {
6631
- userAttributeChange = true;
6632
- break;
6633
- }
6620
+
6621
+ // If the new attributeList length is different previous, then there is a change event.
6622
+ // Loop through new attributes list, see if they are all in the same index as previous user attributes list
6623
+ // If there are any changes, break, and immediately send a userAttributeChangeEvent with full array as a value
6624
+ if (!previousUserAttributeValue || !Array.isArray(previousUserAttributeValue)) {
6625
+ userAttributeChange = true;
6626
+ } else if (newValue.length !== previousUserAttributeValue.length) {
6627
+ userAttributeChange = true;
6628
+ } else {
6629
+ for (var i = 0; i < newValue.length; i++) {
6630
+ if (previousUserAttributeValue[i] !== newValue[i]) {
6631
+ userAttributeChange = true;
6632
+ break;
6634
6633
  }
6635
6634
  }
6636
- if (userAttributeChange) {
6637
- self.sendUserAttributeChangeEvent(key, newValue, previousUserAttributeValue, isNewAttribute, false, this);
6638
- }
6635
+ }
6636
+ if (userAttributeChange) {
6637
+ self.sendUserAttributeChangeEvent(key, newValue, previousUserAttributeValue, isNewAttribute, false, this);
6639
6638
  }
6640
6639
  mpInstance._Forwarders.initForwarders(self.IdentityAPI.getCurrentUser().getUserIdentities(), mpInstance._APIClient.prepareForwardingStats);
6641
6640
  mpInstance._Forwarders.handleForwarderUserAttributes('setUserAttribute', key, arrayCopy);
@@ -6969,9 +6968,6 @@ var mParticle = (function () {
6969
6968
 
6970
6969
  this.sendUserIdentityChangeEvent = function (newUserIdentities, method, mpid, prevUserIdentities) {
6971
6970
  var currentUserInMemory, userIdentityChangeEvent;
6972
- if (!mpInstance._APIClient.shouldEnableBatching()) {
6973
- return;
6974
- }
6975
6971
  if (!mpid) {
6976
6972
  if (method !== 'modify') {
6977
6973
  return;
@@ -7007,9 +7003,6 @@ var mParticle = (function () {
7007
7003
  return userIdentityChangeEvent;
7008
7004
  };
7009
7005
  this.sendUserAttributeChangeEvent = function (attributeKey, newUserAttributeValue, previousUserAttributeValue, isNewAttribute, deleted, user) {
7010
- if (!mpInstance._APIClient.shouldEnableBatching()) {
7011
- return;
7012
- }
7013
7006
  var userAttributeChangeEvent = self.createUserAttributeChange(attributeKey, newUserAttributeValue, previousUserAttributeValue, isNewAttribute, deleted, user);
7014
7007
  if (userAttributeChangeEvent) {
7015
7008
  mpInstance._APIClient.sendEventToServer(userAttributeChangeEvent);
@@ -7036,8 +7029,7 @@ var mParticle = (function () {
7036
7029
  };
7037
7030
  }
7038
7031
 
7039
- // Specifies to compiler that CCPAPurpose can only be one specific value
7040
- var CCPAPurpose = 'data_sale_opt_out';
7032
+ var CCPAPurpose = Constants.CCPAPurpose;
7041
7033
  function Consent(mpInstance) {
7042
7034
  var self = this;
7043
7035
  // this function is called when consent is required to
@@ -7058,19 +7050,19 @@ var mParticle = (function () {
7058
7050
  // GDPR - '1' + purpose name
7059
7051
  // CCPA - '2data_sale_opt_out' (there is only 1 purpose of data_sale_opt_out for CCPA)
7060
7052
  var GDPRConsentHashPrefix = '1';
7061
- var CCPAHashString = '2' + CCPAPurpose;
7053
+ var CCPAHashPrefix = '2';
7062
7054
  var gdprConsentState = consentState.getGDPRConsentState();
7063
7055
  if (gdprConsentState) {
7064
7056
  for (var purpose in gdprConsentState) {
7065
7057
  if (gdprConsentState.hasOwnProperty(purpose)) {
7066
- purposeHash = mpInstance._Helpers.generateHash(GDPRConsentHashPrefix + purpose).toString();
7058
+ purposeHash = KitFilterHelper.hashConsentPurposeConditionalForwarding(GDPRConsentHashPrefix, purpose);
7067
7059
  purposeHashes[purposeHash] = gdprConsentState[purpose].Consented;
7068
7060
  }
7069
7061
  }
7070
7062
  }
7071
7063
  var CCPAConsentState = consentState.getCCPAConsentState();
7072
7064
  if (CCPAConsentState) {
7073
- purposeHash = mpInstance._Helpers.generateHash(CCPAHashString).toString();
7065
+ purposeHash = KitFilterHelper.hashConsentPurposeConditionalForwarding(CCPAHashPrefix, CCPAPurpose);
7074
7066
  purposeHashes[purposeHash] = CCPAConsentState.Consented;
7075
7067
  }
7076
7068
  }
@@ -8850,14 +8842,6 @@ var mParticle = (function () {
8850
8842
  mpInstance._APIClient = new APIClient(mpInstance, kitBlocker);
8851
8843
  mpInstance._Forwarders = new Forwarders(mpInstance, kitBlocker);
8852
8844
  if (config.flags) {
8853
- if (config.flags.hasOwnProperty(Constants.FeatureFlags.EventsV3)) {
8854
- // TODO: Remove this after 8/12/2022
8855
- if (config.flags[Constants.FeatureFlags.EventsV3] !== '100') {
8856
- var message = 'mParticle will be enabling Event Batching for all customers on July 12, 2022. ' + 'For more details, please see our docs: https://docs.mparticle.com/developers/sdk/web/getting-started/';
8857
- mpInstance.Logger.warning(message);
8858
- }
8859
- mpInstance._Store.SDKConfig.flags[Constants.FeatureFlags.EventsV3] = config.flags[Constants.FeatureFlags.EventsV3];
8860
- }
8861
8845
  if (config.flags.hasOwnProperty(Constants.FeatureFlags.EventBatchingIntervalMillis)) {
8862
8846
  mpInstance._Store.SDKConfig.flags[Constants.FeatureFlags.EventBatchingIntervalMillis] = config.flags[Constants.FeatureFlags.EventBatchingIntervalMillis];
8863
8847
  }
@@ -9091,6 +9075,7 @@ var mParticle = (function () {
9091
9075
  },
9092
9076
  _resetForTests: mockFunction,
9093
9077
  _APIClient: null,
9078
+ MPSideloadedKit: null,
9094
9079
  _Consent: null,
9095
9080
  _Forwarders: null,
9096
9081
  _NativeSdkHelpers: null,
@@ -9192,6 +9177,113 @@ var mParticle = (function () {
9192
9177
  return _BatchValidator;
9193
9178
  }();
9194
9179
 
9180
+ var EventTypeEnum;
9181
+ (function (EventTypeEnum) {
9182
+ EventTypeEnum[EventTypeEnum["Unknown"] = 0] = "Unknown";
9183
+ EventTypeEnum[EventTypeEnum["Navigation"] = 1] = "Navigation";
9184
+ EventTypeEnum[EventTypeEnum["Location"] = 2] = "Location";
9185
+ EventTypeEnum[EventTypeEnum["Search"] = 3] = "Search";
9186
+ EventTypeEnum[EventTypeEnum["Transaction"] = 4] = "Transaction";
9187
+ EventTypeEnum[EventTypeEnum["UserContent"] = 5] = "UserContent";
9188
+ EventTypeEnum[EventTypeEnum["UserPreference"] = 6] = "UserPreference";
9189
+ EventTypeEnum[EventTypeEnum["Social"] = 7] = "Social";
9190
+ EventTypeEnum[EventTypeEnum["Other"] = 8] = "Other";
9191
+ EventTypeEnum[EventTypeEnum["Media"] = 9] = "Media";
9192
+ })(EventTypeEnum || (EventTypeEnum = {}));
9193
+ // TODO: https://mparticle-eng.atlassian.net/browse/SQDSDKS-5403
9194
+ var MessageType;
9195
+ (function (MessageType) {
9196
+ MessageType[MessageType["SessionStart"] = 1] = "SessionStart";
9197
+ MessageType[MessageType["SessionEnd"] = 2] = "SessionEnd";
9198
+ MessageType[MessageType["PageView"] = 3] = "PageView";
9199
+ MessageType[MessageType["PageEvent"] = 4] = "PageEvent";
9200
+ MessageType[MessageType["CrashReport"] = 5] = "CrashReport";
9201
+ MessageType[MessageType["OptOut"] = 6] = "OptOut";
9202
+ MessageType[MessageType["AppStateTransition"] = 10] = "AppStateTransition";
9203
+ MessageType[MessageType["Profile"] = 14] = "Profile";
9204
+ MessageType[MessageType["Commerce"] = 16] = "Commerce";
9205
+ MessageType[MessageType["UserAttributeChange"] = 17] = "UserAttributeChange";
9206
+ MessageType[MessageType["UserIdentityChange"] = 18] = "UserIdentityChange";
9207
+ MessageType[MessageType["Media"] = 20] = "Media";
9208
+ })(MessageType || (MessageType = {}));
9209
+ var IdentityType;
9210
+ (function (IdentityType) {
9211
+ IdentityType[IdentityType["Other"] = 0] = "Other";
9212
+ IdentityType[IdentityType["CustomerId"] = 1] = "CustomerId";
9213
+ IdentityType[IdentityType["Facebook"] = 2] = "Facebook";
9214
+ IdentityType[IdentityType["Twitter"] = 3] = "Twitter";
9215
+ IdentityType[IdentityType["Google"] = 4] = "Google";
9216
+ IdentityType[IdentityType["Microsoft"] = 5] = "Microsoft";
9217
+ IdentityType[IdentityType["Yahoo"] = 6] = "Yahoo";
9218
+ IdentityType[IdentityType["Email"] = 7] = "Email";
9219
+ IdentityType[IdentityType["FacebookCustomAudienceId"] = 9] = "FacebookCustomAudienceId";
9220
+ IdentityType[IdentityType["Other2"] = 10] = "Other2";
9221
+ IdentityType[IdentityType["Other3"] = 11] = "Other3";
9222
+ IdentityType[IdentityType["Other4"] = 12] = "Other4";
9223
+ IdentityType[IdentityType["Other5"] = 13] = "Other5";
9224
+ IdentityType[IdentityType["Other6"] = 14] = "Other6";
9225
+ IdentityType[IdentityType["Other7"] = 15] = "Other7";
9226
+ IdentityType[IdentityType["Other8"] = 16] = "Other8";
9227
+ IdentityType[IdentityType["Other9"] = 17] = "Other9";
9228
+ IdentityType[IdentityType["Other10"] = 18] = "Other10";
9229
+ IdentityType[IdentityType["MobileNumber"] = 19] = "MobileNumber";
9230
+ IdentityType[IdentityType["PhoneNumber2"] = 20] = "PhoneNumber2";
9231
+ IdentityType[IdentityType["PhoneNumber3"] = 21] = "PhoneNumber3";
9232
+ })(IdentityType || (IdentityType = {}));
9233
+
9234
+ var MPSideloadedKit = /** @class */function () {
9235
+ function MPSideloadedKit(unregisteredKitInstance) {
9236
+ this.filterDictionary = {
9237
+ eventTypeFilters: [],
9238
+ eventNameFilters: [],
9239
+ screenNameFilters: [],
9240
+ screenAttributeFilters: [],
9241
+ userIdentityFilters: [],
9242
+ userAttributeFilters: [],
9243
+ attributeFilters: [],
9244
+ consentRegulationFilters: [],
9245
+ consentRegulationPurposeFilters: [],
9246
+ messageTypeFilters: [],
9247
+ messageTypeStateFilters: [],
9248
+ // The below filtering members are optional, but we instantiate them
9249
+ // to simplify public method assignment
9250
+ filteringEventAttributeValue: {},
9251
+ filteringUserAttributeValue: {},
9252
+ filteringConsentRuleValues: {}
9253
+ };
9254
+ this.kitInstance = unregisteredKitInstance;
9255
+ }
9256
+ MPSideloadedKit.prototype.addEventTypeFilter = function (eventType) {
9257
+ var hashedEventType = KitFilterHelper.hashEventType(eventType);
9258
+ this.filterDictionary.eventTypeFilters.push(hashedEventType);
9259
+ };
9260
+ MPSideloadedKit.prototype.addEventNameFilter = function (eventType, eventName) {
9261
+ var hashedEventName = KitFilterHelper.hashEventName(eventName, eventType);
9262
+ this.filterDictionary.eventNameFilters.push(hashedEventName);
9263
+ };
9264
+ MPSideloadedKit.prototype.addEventAttributeFilter = function (eventType, eventName, customAttributeKey) {
9265
+ var hashedEventAttribute = KitFilterHelper.hashEventAttributeKey(eventType, eventName, customAttributeKey);
9266
+ this.filterDictionary.attributeFilters.push(hashedEventAttribute);
9267
+ };
9268
+ MPSideloadedKit.prototype.addScreenNameFilter = function (screenName) {
9269
+ var hashedScreenName = KitFilterHelper.hashEventName(screenName, EventTypeEnum.Unknown);
9270
+ this.filterDictionary.screenNameFilters.push(hashedScreenName);
9271
+ };
9272
+ MPSideloadedKit.prototype.addScreenAttributeFilter = function (screenName, screenAttribute) {
9273
+ var hashedScreenAttribute = KitFilterHelper.hashEventAttributeKey(EventTypeEnum.Unknown, screenName, screenAttribute);
9274
+ this.filterDictionary.screenAttributeFilters.push(hashedScreenAttribute);
9275
+ };
9276
+ MPSideloadedKit.prototype.addUserIdentityFilter = function (userIdentity) {
9277
+ var hashedIdentityType = KitFilterHelper.hashUserIdentity(userIdentity);
9278
+ this.filterDictionary.userIdentityFilters.push(hashedIdentityType);
9279
+ };
9280
+ MPSideloadedKit.prototype.addUserAttributeFilter = function (userAttributeKey) {
9281
+ var hashedUserAttributeKey = KitFilterHelper.hashUserAttribute(userAttributeKey);
9282
+ this.filterDictionary.userAttributeFilters.push(hashedUserAttributeKey);
9283
+ };
9284
+ return MPSideloadedKit;
9285
+ }();
9286
+
9195
9287
  if (!Array.prototype.forEach) {
9196
9288
  Array.prototype.forEach = Polyfill.forEach;
9197
9289
  }
@@ -9214,6 +9306,7 @@ var mParticle = (function () {
9214
9306
  this.CommerceEventType = Types.CommerceEventType;
9215
9307
  this.PromotionType = Types.PromotionActionType;
9216
9308
  this.ProductActionType = Types.ProductActionType;
9309
+ this.MPSideloadedKit = MPSideloadedKit;
9217
9310
  if (typeof window !== 'undefined') {
9218
9311
  this.isIOS = window.mParticle && window.mParticle.isIOS ? window.mParticle.isIOS : false;
9219
9312
  this.config = window.mParticle && window.mParticle.config ? window.mParticle.config : {};