You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

react-native-moengage

Package Overview
Dependencies
Maintainers
0
Versions
59
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-moengage - npm Package Compare versions

Comparing version

to
11.1.0

src/models/MoEInAppRules.ts

@@ -0,1 +1,9 @@

# 30-09-2024
## 11.1.0
- Added support for Multiple SelfHandled InApps.
- iOS
- Added support for Provisional Push.
- MoEngage-iOS-SDK version updated to `9.20.0`.
# 07-08-2024

@@ -2,0 +10,0 @@

2

package.json
{
"name": "react-native-moengage",
"version": "11.0.0",
"version": "11.1.0",
"description": "MoEngage is a mobile marketing automation company. This react-native SDK helps you track events, trigger smart notifications and in-apps, provides a drop-in Inbox Controller for notifications.",

@@ -5,0 +5,0 @@ "main": "src/index.ts",

@@ -61,2 +61,3 @@ import { NativeEventEmitter, Platform } from "react-native";

import { MoESupportedAttributes } from "./models/MoESupportedAttributes";
import * as MoECoreHandler from "./utils/MoECoreHandler";

@@ -388,3 +389,3 @@ const PLATFORM_IOS = "ios";

* Call this method when you show the self handled in-app so we can update impressions.
* @param {MoESelfHandledCampaignData}campInfo : campaign information object
* @param {MoESelfHandledCampaignData}inAppCampaign : campaign information object
*/

@@ -402,3 +403,3 @@ selfHandledShown: function (inAppCampaign: MoESelfHandledCampaignData) {

* Call this method to track when self handled in app widget(other than Primary Widget) is clicked.
* @param {MoESelfHandledCampaignData}campInfo : campaign information object
* @param {MoESelfHandledCampaignData}moEClickData : campaign information object
*/

@@ -416,3 +417,3 @@ selfHandledClicked: function (moEClickData: MoESelfHandledCampaignData) {

* Call this method to track dismiss actions on the inApp.
* @param {MoESelfHandledCampaignData}campInfo : campaign information object
* @param {MoESelfHandledCampaignData}inAppCampaign : campaign information object
*/

@@ -430,3 +431,3 @@ selfHandledDismissed: function (inAppCampaign: MoESelfHandledCampaignData) {

* Call this method to the current context for inApp module.
* @param {Array{String}}contexts : Name of all the contexts
* @param{Array{String}}contexts : Name of all the contexts
*/

@@ -734,2 +735,25 @@ setCurrentContext: function (contexts: Array<String>) {

},
/**
* Call this method to get the multiple self handled campaigns.
* @since TODO
*/
getSelfHandledInApps: async function () {
MoEngageLogger.verbose("Will try to fetch multiple self handled inapps", moeAppId);
return await MoECoreHandler.getSelfHandledInApps(moeAppId);
},
/**
* Call this method to register for provisional push notification in iOS
* Note: This API is only for iOS platform and is a no-operation method for other plaforms.
* @since TODO
*/
registerForProvisionalPush: function () {
if (Platform.OS == PLATFORM_IOS) {
MoEngageLogger.verbose("Will call registerForProvisionalPush");
MoEReactBridge.registerForProvisionalPush();
} else {
MoEngageLogger.debug("This api is not supported on Android platform.");
}
},
};

@@ -736,0 +760,0 @@

@@ -0,10 +1,13 @@

import MoEInAppRules from "../models/MoEInAppRules";
export default class MoESelfHandledCampaign {
payload: string;
dismissInterval: Number;
displayRules: MoEInAppRules
constructor(payload: string, dismissInterval: Number) {
constructor(payload: string, dismissInterval: Number, displayRules: MoEInAppRules) {
this.payload = payload;
this.dismissInterval = dismissInterval;
this.displayRules = displayRules;
}
}

@@ -8,4 +8,7 @@ import MoEngageLogger from "../logger/MoEngageLogger";

import MoEInAppNavigation from "../models/MoEInAppNavigation";
import MoEInAppRules from "../models/MoEInAppRules";
import MoESelfHandledCampaign from "../models/MoESelfHandledCampaign";
import MoESelfHandledCampaignData from "../models/MoESelfHandledCampaignData";
import MoESelfHandledCampaignsData from "../models/MoESelfHandledCampaignsData";
import {

@@ -28,3 +31,8 @@ ACTION_TYPE,

MOE_SELF_HANDLED,
MOE_NAVIGATION_VALUE
MOE_NAVIGATION_VALUE,
MOE_INAPP_DISPLAY_RULES,
MOE_INAPP_SCREEN_NAME,
MOE_INAPP_CONTEXTS,
MOE_DATA,
ACCOUNT_META
} from "../utils/MoEConstants";

@@ -69,5 +77,17 @@ import { isValidObject } from "../utils/MoEHelper";

var dismissInterval = selfHandled[MOE_DISMISSINTERVAL];
return new MoESelfHandledCampaign(payload, dismissInterval);
let displayRulesPayload = selfHandled[MOE_INAPP_DISPLAY_RULES];
let displayRules = getMoEInAppRules(displayRulesPayload);
return new MoESelfHandledCampaign(payload, dismissInterval, displayRules);
}
function getMoEInAppRules(json: { [k: string]: any }) {
var screenName = null;
if (json[MOE_INAPP_SCREEN_NAME] != undefined) {
screenName = json[MOE_INAPP_SCREEN_NAME];
}
var contexts = json[MOE_INAPP_CONTEXTS];
return new MoEInAppRules(screenName, contexts);
}
function getMoEInAppCustomAction(json: { [k: string]: any }) {

@@ -209,5 +229,24 @@ var customAction = json[MOE_CUSTOM_ACTION]

return new MoEClickData(accountMeta, platform, campaignData, action);
}
else return undefined
}
export function getMoESelfHandledCampaignsDataObj(payload: string) {
const jsonPayload = JSON.parse(payload);
const accountMeta = getMoEAccountMeta(jsonPayload[ACCOUNT_META]);
const selfHandledCampaigns: Array<MoESelfHandledCampaignData> = [];
for (let i = 0; i < jsonPayload.campaigns.length; i++) {
const campaignJson = jsonPayload.campaigns[i];
const campaignPayload = campaignJson[MOE_DATA];
if (isSelfHandledCampaignValid(campaignPayload)) {
const campaign = getMoESelfHandledCampaign(campaignPayload);
var platform = campaignPayload[MOE_PLATFORM];
const campaignData = getMoECampaignData(campaignPayload);
const campaignInfo = new MoESelfHandledCampaignData(accountMeta, platform, campaign, campaignData);
selfHandledCampaigns.push(campaignInfo);
}
}
else return undefined
return new MoESelfHandledCampaignsData(accountMeta, selfHandledCampaigns);
}

@@ -80,2 +80,9 @@ import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport';

/**
* Call this method to get the multiple eligible Self Handled Campaigns.
* @param payload : Stringified JSON payload
* @returns Stringified list of Self Handled campaigns
*/
getSelfHandledInApps: (payload: string) => Promise<string>;
/**
* Call this method to update the impressions of self handled inapps.

@@ -196,2 +203,8 @@ *

/**
* Registers for iOS Provisional Push.
*/
registerForProvisionalPush: () => void;
addListener: (eventType: string) => void;

@@ -198,0 +211,0 @@ removeListeners: (count: number) => void;

@@ -29,3 +29,9 @@ import MoEngageLogLevel from "../models/MoEngageLogLevel"

export const MOE_IS_CANCELLABLE = 'isCancellable'
export const MOE_CAMPAIGNS = 'campaigns'
// INAPP DISPLAY RULES
export const MOE_INAPP_DISPLAY_RULES = 'displayRules'
export const MOE_INAPP_SCREEN_NAME = 'screenName'
export const MOE_INAPP_CONTEXTS = 'contexts'
//IN APP NAVIGATION

@@ -32,0 +38,0 @@ export const MOE_NAVIGATION_TYPE = 'navigationType'

@@ -6,10 +6,11 @@ import MoEClickData from "../models/MoEClickData";

import { MOE_LOCATION } from "./MoEConstants";
import { MoEPropertiesToJson} from "./MoEObjectToJson";
import {MoEngagePermissionType} from "../models/MoEngagePermissionType";
import { MoEPropertiesToJson } from "./MoEObjectToJson";
import { MoEngagePermissionType } from "../models/MoEngagePermissionType";
import MoEInitConfig from "../models/MoEInitConfig";
import MoEngageLogger from "../logger/MoEngageLogger";
import {MoEngageNudgePosition} from "../models/MoEngageNudgePosition";
import { MoEngageNudgePosition } from "../models/MoEngageNudgePosition";
import { MoESupportedAttributes } from "../models/MoESupportedAttributes";
import MoESelfHandledCampaign from "../models/MoESelfHandledCampaign";
import MoEInAppRules from "../models/MoEInAppRules";
export function getInAppCampaignJson(moEInAppData: MoEInAppData, type: string, appId: String) {

@@ -41,3 +42,3 @@ var json: { [k: string]: any } = {

campaignContext: moESelfHandledCampaignData.campaignData.context.attributes,
selfHandled: moESelfHandledCampaignData.campaign,
selfHandled: getSelfHandledCampaignJson(moESelfHandledCampaignData.campaign),
platform: moESelfHandledCampaignData.platform

@@ -86,3 +87,3 @@ }

payload: pushPayload,
service:service
service: service
}

@@ -94,3 +95,3 @@ }

export function getMoEPushTokenJson(pushToken: string, pushService: string, platform: string, appId: String) {
var json: { [k: string]: any} = {
var json: { [k: string]: any } = {
accountMeta: {

@@ -234,7 +235,7 @@ appId: appId

export function getPermissionResponseJson(isGranted: boolean, permissionType: MoEngagePermissionType) {
let json: { [k: string]: any } = {
isGranted: isGranted,
type: permissionType.toLowerCase()
}
return JSON.stringify(json);
let json: { [k: string]: any } = {
isGranted: isGranted,
type: permissionType.toLowerCase()
}
return JSON.stringify(json);
}

@@ -294,1 +295,20 @@

}
export function getSelfHandledCampaignJson(moESelfHandledCampaign: MoESelfHandledCampaign) {
var json: { [k: string]: any } = {
dismissInterval: moESelfHandledCampaign.dismissInterval,
displayRules: moESelfHandledCampaign.displayRules,
payload: moESelfHandledCampaign.payload
}
MoEngageLogger.verbose("getSelfHandledCampaignJson(): payload json: ", json);
return json;
}
export function getDisplayRulesJson(displayRules: MoEInAppRules) {
var json: { [k: string]: any } = {
contexts: displayRules.contexts,
screenName: displayRules.screenName
}
MoEngageLogger.verbose("getDisplayRulesJson(): payload json: ", json);
return json;
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet