text: var MessageType = {
      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 TriggerUploadType = {
      [MessageType.Commerce]: 1,
  };
  
  var EventType = {
      Unknown: 0,
      Navigation: 1,
      Location: 2,
      Search: 3,
      Transaction: 4,
      UserContent: 5,
      UserPreference: 6,
      Social: 7,
      Other: 8,
      Media: 9,
      getName: function(id) {
          switch (id) {
              case EventType.Unknown:
                  return 'Unknown';
              case EventType.Navigation:
                  return 'Navigation';
              case EventType.Location:
                  return 'Location';
              case EventType.Search:
                  return 'Search';
              case EventType.Transaction:
                  return 'Transaction';
              case EventType.UserContent:
                  return 'User Content';
              case EventType.UserPreference:
                  return 'User Preference';
              case EventType.Social:
                  return 'Social';
              case CommerceEventType.ProductAddToCart:
                  return 'Product Added to Cart';
              case CommerceEventType.ProductAddToWishlist:
                  return 'Product Added to Wishlist';
              case CommerceEventType.ProductCheckout:
                  return 'Product Checkout';
              case CommerceEventType.ProductCheckoutOption:
                  return 'Product Checkout Options';
              case CommerceEventType.ProductClick:
                  return 'Product Click';
              case CommerceEventType.ProductImpression:
                  return 'Product Impression';
              case CommerceEventType.ProductPurchase:
                  return 'Product Purchased';
              case CommerceEventType.ProductRefund:
                  return 'Product Refunded';
              case CommerceEventType.ProductRemoveFromCart:
                  return 'Product Removed From Cart';
              case CommerceEventType.ProductRemoveFromWishlist:
                  return 'Product Removed from Wishlist';
              case CommerceEventType.ProductViewDetail:
                  return 'Product View Details';
              case CommerceEventType.PromotionClick:
                  return 'Promotion Click';
              case CommerceEventType.PromotionView:
                  return 'Promotion View';
              default:
                  return 'Other';
          }
      },
  };
  
  // Continuation of enum above, but in seperate object since we don't expose these to end user
  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,
  };
  
  IdentityType.isValid = function(identityType) {
      if (typeof identityType === 'number') {
          for (var prop in IdentityType) {
              if (IdentityType.hasOwnProperty(prop)) {
                  if (IdentityType[prop] === identityType) {
                      return true;
                  }
              }
          }
      }
  
      return false;
  };
  
  IdentityType.getName = function(identityType) {
      switch (identityType) {
          case window.mParticle.IdentityType.CustomerId:
              return 'Customer ID';
          case window.mParticle.IdentityType.Facebook:
              return 'Facebook ID';
          case window.mParticle.IdentityType.Twitter:
              return 'Twitter ID';
          case window.mParticle.IdentityType.Google:
              return 'Google ID';
          case window.mParticle.IdentityType.Microsoft:
              return 'Microsoft ID';
          case window.mParticle.IdentityType.Yahoo:
              return 'Yahoo ID';
          case window.mParticle.IdentityType.Email:
              return 'Email';
          case window.mParticle.IdentityType.FacebookCustomAudienceId:
              return 'Facebook App User ID';
          default:
              return 'Other ID';
      }
  };
  
  IdentityType.getIdentityType = function(identityName) {
      switch (identityName) {
          case 'other':
              return IdentityType.Other;
          case 'customerid':
              return IdentityType.CustomerId;
          case 'facebook':
              return IdentityType.Facebook;
          case 'twitter':
              return IdentityType.Twitter;
          case 'google':
              return IdentityType.Google;
          case 'microsoft':
              return IdentityType.Microsoft;
          case 'yahoo':
              return IdentityType.Yahoo;
          case 'email':
              return IdentityType.Email;
          case 'facebookcustomaudienceid':
              return IdentityType.FacebookCustomAudienceId;
          case 'other2':
              return IdentityType.Other2;
          case 'other3':
              return IdentityType.Other3;
          case 'other4':
              return IdentityType.Other4;
          case 'other5':
              return IdentityType.Other5;
          case 'other6':
              return IdentityType.Other6;
          case 'other7':
              return IdentityType.Other7;
          case 'other8':
              return IdentityType.Other8;
          case 'other9':
              return IdentityType.Other9;
          case 'other10':
              return IdentityType.Other10;
          case 'mobile_number':
              return IdentityType.MobileNumber;
          case 'phone_number_2':
              return IdentityType.PhoneNumber2;
          case 'phone_number_3':
              return IdentityType.PhoneNumber3;
          default:
              return false;
      }
  };
  
  IdentityType.getIdentityName = function(identityType) {
      switch (identityType) {
          case IdentityType.Other:
              return 'other';
          case IdentityType.CustomerId:
              return 'customerid';
          case IdentityType.Facebook:
              return 'facebook';
          case IdentityType.Twitter:
              return 'twitter';
          case IdentityType.Google:
              return 'google';
          case IdentityType.Microsoft:
              return 'microsoft';
          case IdentityType.Yahoo:
              return 'yahoo';
          case IdentityType.Email:
              return 'email';
          case IdentityType.FacebookCustomAudienceId:
              return 'facebookcustomaudienceid';
          case IdentityType.Other2:
              return 'other2';
          case IdentityType.Other3:
              return 'other3';
          case IdentityType.Other4:
              return 'other4';
          case IdentityType.Other5:
              return 'other5';
          case IdentityType.Other6:
              return 'other6';
          case IdentityType.Other7:
              return 'other7';
          case IdentityType.Other8:
              return 'other8';
          case IdentityType.Other9:
              return 'other9';
          case IdentityType.Other10:
              return 'other10';
          case IdentityType.MobileNumber:
              return 'mobile_number';
          case IdentityType.PhoneNumber2:
              return 'phone_number_2';
          case IdentityType.PhoneNumber3:
              return 'phone_number_3';
      }
  };
  
  var ProductActionType = {
      Unknown: 0,
      AddToCart: 1,
      RemoveFromCart: 2,
      Checkout: 3,
      CheckoutOption: 4,
      Click: 5,
      ViewDetail: 6,
      Purchase: 7,
      Refund: 8,
      AddToWishlist: 9,
      RemoveFromWishlist: 10,
  };
  
  ProductActionType.getName = function(id) {
      switch (id) {
          case ProductActionType.AddToCart:
              return 'Add to Cart';
          case ProductActionType.RemoveFromCart:
              return 'Remove from Cart';
          case ProductActionType.Checkout:
              return 'Checkout';
          case ProductActionType.CheckoutOption:
              return 'Checkout Option';
          case ProductActionType.Click:
              return 'Click';
          case ProductActionType.ViewDetail:
              return 'View Detail';
          case ProductActionType.Purchase:
              return 'Purchase';
          case ProductActionType.Refund:
              return 'Refund';
          case ProductActionType.AddToWishlist:
              return 'Add to Wishlist';
          case ProductActionType.RemoveFromWishlist:
              return 'Remove from Wishlist';
          default:
              return 'Unknown';
      }
  };
  
  // these are the action names used by server and mobile SDKs when expanding a CommerceEvent
  ProductActionType.getExpansionName = function(id) {
      switch (id) {
          case ProductActionType.AddToCart:
              return 'add_to_cart';
          case ProductActionType.RemoveFromCart:
              return 'remove_from_cart';
          case ProductActionType.Checkout:
              return 'checkout';
          case ProductActionType.CheckoutOption:
              return 'checkout_option';
          case ProductActionType.Click:
              return 'click';
          case ProductActionType.ViewDetail:
              return 'view_detail';
          case ProductActionType.Purchase:
              return 'purchase';
          case ProductActionType.Refund:
              return 'refund';
          case ProductActionType.AddToWishlist:
              return 'add_to_wishlist';
          case ProductActionType.RemoveFromWishlist:
              return 'remove_from_wishlist';
          default:
              return 'unknown';
      }
  };
  
  var PromotionActionType = {
      Unknown: 0,
      PromotionView: 1,
      PromotionClick: 2,
  };
  
  PromotionActionType.getName = function(id) {
      switch (id) {
          case PromotionActionType.PromotionView:
              return 'view';
          case PromotionActionType.PromotionClick:
              return 'click';
          default:
              return 'unknown';
      }
  };
  
  // these are the names that the server and mobile SDKs use while expanding CommerceEvent
  PromotionActionType.getExpansionName = function(id) {
      switch (id) {
          case PromotionActionType.PromotionView:
              return 'view';
          case PromotionActionType.PromotionClick:
              return 'click';
          default:
              return 'unknown';
      }
  };
  
  var ProfileMessageType = {
      Logout: 3,
  };
  var ApplicationTransitionType = {
      AppInit: 1,
  };
  
  export default {
      MessageType: MessageType,
      EventType: EventType,
      CommerceEventType: CommerceEventType,
      IdentityType: IdentityType,
      ProfileMessageType: ProfileMessageType,
      ApplicationTransitionType: ApplicationTransitionType,
      ProductActionType: ProductActionType,
      PromotionActionType: PromotionActionType,
      TriggerUploadType: TriggerUploadType,
  };
  