@mparticle/web-sdk 2.63.0 → 2.64.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/types.ts CHANGED
@@ -397,6 +397,140 @@ export const PerformanceMarkType = {
397
397
  JointSdkRoktKitInit: 'mp:jointSdkRoktKitInit' as const,
398
398
  }
399
399
 
400
+ export function getMessageTypeFromEventType(
401
+ eventType: string
402
+ ): number {
403
+ switch (eventType) {
404
+ case 'custom_event':
405
+ return MessageType.PageEvent;
406
+ case 'screen_view':
407
+ return MessageType.PageView;
408
+ case 'commerce_event':
409
+ return MessageType.Commerce;
410
+ case 'session_start':
411
+ return MessageType.SessionStart;
412
+ case 'session_end':
413
+ return MessageType.SessionEnd;
414
+ case 'crash_report':
415
+ return MessageType.CrashReport;
416
+ case 'opt_out':
417
+ return MessageType.OptOut;
418
+ case 'application_state_transition':
419
+ return MessageType.AppStateTransition;
420
+ case 'user_attribute_change':
421
+ return MessageType.UserAttributeChange;
422
+ case 'user_identity_change':
423
+ return MessageType.UserIdentityChange;
424
+ default:
425
+ return -1;
426
+ }
427
+ }
428
+
429
+ export function getEventCategoryFromCustomEventType(
430
+ customEventType: string
431
+ ): number {
432
+ switch (customEventType) {
433
+ case 'navigation':
434
+ return EventType.Navigation;
435
+ case 'location':
436
+ return EventType.Location;
437
+ case 'search':
438
+ return EventType.Search;
439
+ case 'transaction':
440
+ return EventType.Transaction;
441
+ case 'user_content':
442
+ return EventType.UserContent;
443
+ case 'user_preference':
444
+ return EventType.UserPreference;
445
+ case 'social':
446
+ return EventType.Social;
447
+ case 'other':
448
+ return EventType.Other;
449
+ case 'media':
450
+ return EventType.Media;
451
+ case 'add_to_cart':
452
+ return CommerceEventType.ProductAddToCart;
453
+ case 'remove_from_cart':
454
+ return CommerceEventType.ProductRemoveFromCart;
455
+ case 'checkout':
456
+ return CommerceEventType.ProductCheckout;
457
+ case 'checkout_option':
458
+ return CommerceEventType.ProductCheckoutOption;
459
+ case 'click':
460
+ return CommerceEventType.ProductClick;
461
+ case 'view_detail':
462
+ return CommerceEventType.ProductViewDetail;
463
+ case 'purchase':
464
+ return CommerceEventType.ProductPurchase;
465
+ case 'refund':
466
+ return CommerceEventType.ProductRefund;
467
+ case 'promotion_view':
468
+ return CommerceEventType.PromotionView;
469
+ case 'promotion_click':
470
+ return CommerceEventType.PromotionClick;
471
+ case 'add_to_wishlist':
472
+ return CommerceEventType.ProductAddToWishlist;
473
+ case 'remove_from_wishlist':
474
+ case 'remove_from_wish_list':
475
+ return CommerceEventType.ProductRemoveFromWishlist;
476
+ case 'impression':
477
+ return CommerceEventType.ProductImpression;
478
+ default:
479
+ return EventType.Unknown;
480
+ }
481
+ }
482
+
483
+ export function getIdentityTypeFromBatchKey(
484
+ key: string
485
+ ): number {
486
+ switch (key) {
487
+ case 'other':
488
+ return IdentityType.Other;
489
+ case 'customer_id':
490
+ return IdentityType.CustomerId;
491
+ case 'facebook':
492
+ return IdentityType.Facebook;
493
+ case 'twitter':
494
+ return IdentityType.Twitter;
495
+ case 'google':
496
+ return IdentityType.Google;
497
+ case 'microsoft':
498
+ return IdentityType.Microsoft;
499
+ case 'yahoo':
500
+ return IdentityType.Yahoo;
501
+ case 'email':
502
+ return IdentityType.Email;
503
+ case 'facebook_custom_audience_id':
504
+ return IdentityType.FacebookCustomAudienceId;
505
+ case 'other_id_2':
506
+ return IdentityType.Other2;
507
+ case 'other_id_3':
508
+ return IdentityType.Other3;
509
+ case 'other_id_4':
510
+ return IdentityType.Other4;
511
+ case 'other_id_5':
512
+ return IdentityType.Other5;
513
+ case 'other_id_6':
514
+ return IdentityType.Other6;
515
+ case 'other_id_7':
516
+ return IdentityType.Other7;
517
+ case 'other_id_8':
518
+ return IdentityType.Other8;
519
+ case 'other_id_9':
520
+ return IdentityType.Other9;
521
+ case 'other_id_10':
522
+ return IdentityType.Other10;
523
+ case 'mobile_number':
524
+ return IdentityType.MobileNumber;
525
+ case 'phone_number_2':
526
+ return IdentityType.PhoneNumber2;
527
+ case 'phone_number_3':
528
+ return IdentityType.PhoneNumber3;
529
+ default:
530
+ return -1;
531
+ }
532
+ }
533
+
400
534
  export default {
401
535
  MessageType,
402
536
  EventType,
package/src/utils.ts CHANGED
@@ -491,6 +491,140 @@ const obfuscateData = (value: any): any => {
491
491
  const obfuscateDevData = (data: any, isDevelopmentMode?: boolean): any =>
492
492
  isDevelopmentMode ? data : obfuscateData(data);
493
493
 
494
+ // Standalone version of jQuery.extend, from https://github.com/dansdom/extend
495
+ // https://go.mparticle.com/work/SQDSDKS-6047
496
+ function extend(...args: any[]): any {
497
+ const objectHelper = {
498
+ hasOwn: Object.prototype.hasOwnProperty,
499
+ class2type: {} as Record<string, string>,
500
+ type(obj: any): string {
501
+ return obj == null
502
+ ? String(obj)
503
+ : objectHelper.class2type[
504
+ Object.prototype.toString.call(obj)
505
+ ] || 'object';
506
+ },
507
+ isPlainObject(obj: any): boolean {
508
+ if (
509
+ !obj ||
510
+ objectHelper.type(obj) !== 'object' ||
511
+ obj.nodeType ||
512
+ objectHelper.isWindow(obj)
513
+ ) {
514
+ return false;
515
+ }
516
+
517
+ try {
518
+ if (
519
+ obj.constructor &&
520
+ !objectHelper.hasOwn.call(obj, 'constructor') &&
521
+ !objectHelper.hasOwn.call(
522
+ obj.constructor.prototype,
523
+ 'isPrototypeOf'
524
+ )
525
+ ) {
526
+ return false;
527
+ }
528
+ } catch (e) {
529
+ return false;
530
+ }
531
+
532
+ let key;
533
+ for (key in obj) {
534
+ } // eslint-disable-line no-empty
535
+
536
+ return (
537
+ key === undefined || objectHelper.hasOwn.call(obj, key)
538
+ );
539
+ },
540
+ isArray:
541
+ Array.isArray ||
542
+ function(obj: any): boolean {
543
+ return objectHelper.type(obj) === 'array';
544
+ },
545
+ isFunction(obj: any): boolean {
546
+ return objectHelper.type(obj) === 'function';
547
+ },
548
+ isWindow(obj: any): boolean {
549
+ return obj != null && obj == obj.window;
550
+ },
551
+ };
552
+
553
+ let options: any,
554
+ name: string,
555
+ src: any,
556
+ copy: any,
557
+ copyIsArray: boolean,
558
+ clone: any,
559
+ target = args[0] || {},
560
+ i = 1,
561
+ deep = false;
562
+ const length = args.length;
563
+
564
+ if (typeof target === 'boolean') {
565
+ deep = target;
566
+ target = args[1] || {};
567
+ i = 2;
568
+ }
569
+
570
+ if (typeof target !== 'object' && !objectHelper.isFunction(target)) {
571
+ target = {};
572
+ }
573
+
574
+ if (length === i) {
575
+ target = {};
576
+ --i;
577
+ }
578
+
579
+ for (; i < length; i++) {
580
+ if ((options = args[i]) != null) {
581
+ for (name in options) {
582
+ if (
583
+ name === '__proto__' ||
584
+ name === 'constructor' ||
585
+ name === 'prototype'
586
+ ) {
587
+ continue;
588
+ }
589
+
590
+ if (!Object.prototype.hasOwnProperty.call(options, name)) {
591
+ continue;
592
+ }
593
+
594
+ src = target[name];
595
+ copy = options[name];
596
+
597
+ if (target === copy) {
598
+ continue;
599
+ }
600
+
601
+ if (
602
+ deep &&
603
+ copy &&
604
+ (objectHelper.isPlainObject(copy) ||
605
+ (copyIsArray = objectHelper.isArray(copy)))
606
+ ) {
607
+ if (copyIsArray) {
608
+ copyIsArray = false;
609
+ clone = src && objectHelper.isArray(src) ? src : [];
610
+ } else {
611
+ clone =
612
+ src && objectHelper.isPlainObject(src)
613
+ ? src
614
+ : {};
615
+ }
616
+
617
+ target[name] = extend(deep, clone, copy);
618
+ } else if (copy !== undefined) {
619
+ target[name] = copy;
620
+ }
621
+ }
622
+ }
623
+ }
624
+
625
+ return target;
626
+ }
627
+
494
628
  export {
495
629
  createCookieString,
496
630
  revertCookieString,
@@ -534,4 +668,5 @@ export {
534
668
  getHref,
535
669
  replaceMPID,
536
670
  replaceAmpWithAmpersand,
671
+ extend,
537
672
  };