react-native-moengage 8.5.0 → 8.5.2
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/CHANGELOG.md +14 -0
- package/android/build.gradle +1 -1
- package/package.json +12 -1
- package/src/index.ts +93 -96
- package/src/logger/MoEngageLogger.ts +77 -0
- package/src/models/MoEInitConfig.ts +13 -3
- package/src/models/MoEProperties.ts +8 -7
- package/src/models/MoEngageLogConfig.ts +34 -0
- package/src/models/MoEngageLogLevel.ts +37 -0
- package/src/moeParser/MoEInAppParser.ts +28 -7
- package/src/moeParser/MoEPushNotificationParser.ts +3 -2
- package/src/moeParser/MoEngagePayloadParser.ts +0 -1
- package/src/platform/MoERNAndroid.ts +5 -17
- package/src/platform/MoERNiOS.ts +2 -2
- package/src/utils/MoEConstants.ts +9 -0
- package/src/utils/MoEJsonBuilder.ts +3 -3
- package/src/utils/MoEngageGlobalCache.ts +22 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# 17-08-2023
|
|
2
|
+
|
|
3
|
+
## 8.5.2
|
|
4
|
+
- Android
|
|
5
|
+
- BugFix
|
|
6
|
+
- MoEngageLogLevel throwing undefined property
|
|
7
|
+
- Self Handled InApp delivery controls not working.
|
|
8
|
+
|
|
9
|
+
# 18-07-2023
|
|
10
|
+
|
|
11
|
+
## 8.5.1
|
|
12
|
+
- Adding Strict TypeCheck For TypeScript files
|
|
13
|
+
- Support for configuring the React-Native Plugin console logs
|
|
14
|
+
|
|
1
15
|
# 25-05-2023
|
|
2
16
|
|
|
3
17
|
## 8.5.0
|
package/android/build.gradle
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-moengage",
|
|
3
|
-
"version": "8.5.
|
|
3
|
+
"version": "8.5.2",
|
|
4
4
|
"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
5
|
"main": "src/index.ts",
|
|
6
|
+
"files": [
|
|
7
|
+
"android",
|
|
8
|
+
"iOS",
|
|
9
|
+
"src",
|
|
10
|
+
"CHANGELOG.md",
|
|
11
|
+
"README.md",
|
|
12
|
+
"ReactNativeMoEngage.podspec",
|
|
13
|
+
"package.json",
|
|
14
|
+
"!**/__tests__",
|
|
15
|
+
"!**/__mocks__"
|
|
16
|
+
],
|
|
6
17
|
"keywords": [
|
|
7
18
|
"moengage",
|
|
8
19
|
"push-notification",
|
package/src/index.ts
CHANGED
|
@@ -44,6 +44,10 @@ import MoESelfHandledCampaignData from "./models/MoESelfHandledCampaignData";
|
|
|
44
44
|
import {MoEngagePermissionType} from "./models/MoEngagePermissionType";
|
|
45
45
|
import MoEInitConfig from "./models/MoEInitConfig";
|
|
46
46
|
import MoEPushConfig from "./models/MoEPushConfig";
|
|
47
|
+
import MoEngageLogConfig from "./models/MoEngageLogConfig";
|
|
48
|
+
import MoEngageLogLevel from "./models/MoEngageLogLevel";
|
|
49
|
+
import MoEngageGlobalCache from "./utils/MoEngageGlobalCache";
|
|
50
|
+
import MoEngageLogger from "./logger/MoEngageLogger";
|
|
47
51
|
|
|
48
52
|
const MoEReactBridge = require("react-native").NativeModules.MoEReactBridge;
|
|
49
53
|
const PLATFORM_ANDROID = "android";
|
|
@@ -102,7 +106,11 @@ var moeAppId = "";
|
|
|
102
106
|
if (MoEReactBridge) {
|
|
103
107
|
MoeEventEmitter = new NativeEventEmitter(MoEReactBridge);
|
|
104
108
|
for (var i = 0; i < eventBroadcastNames.length; i++) {
|
|
105
|
-
|
|
109
|
+
let eventName = _eventNames[i];
|
|
110
|
+
let eventBroadcastName = eventBroadcastNames[i];
|
|
111
|
+
if (eventName !== undefined && eventBroadcastName !== undefined) {
|
|
112
|
+
handleEventBroadcast(eventName, eventBroadcastName);
|
|
113
|
+
}
|
|
106
114
|
}
|
|
107
115
|
}
|
|
108
116
|
|
|
@@ -120,10 +128,6 @@ function commonValidationCheck() {
|
|
|
120
128
|
}
|
|
121
129
|
}
|
|
122
130
|
|
|
123
|
-
function showError(message: String) {
|
|
124
|
-
console.error(message);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
131
|
var ReactMoE = {
|
|
128
132
|
setEventListener: function (type: any, handler: any) {
|
|
129
133
|
if (!MoEReactBridge) return;
|
|
@@ -136,13 +140,14 @@ var ReactMoE = {
|
|
|
136
140
|
},
|
|
137
141
|
|
|
138
142
|
/**
|
|
139
|
-
* Initialise the MoEngage SDK, once the hybrid component is mounted
|
|
143
|
+
* Initialise the MoEngage SDK, once the hybrid component is mounted
|
|
140
144
|
*
|
|
141
|
-
* @param appId AppId for the application, can be found on MoEngage Dashboard
|
|
145
|
+
* @param appId AppId for the application, can be found on MoEngage Dashboard
|
|
142
146
|
* @param initConfig instance of {@link MoEInitConfig}, works only in Android & has no effect for other plaforms.
|
|
143
147
|
*/
|
|
144
|
-
initialize: function (appId:string, initConfig
|
|
145
|
-
moeAppId = appId;
|
|
148
|
+
initialize: function (appId: string, initConfig: MoEInitConfig = MoEInitConfig.defaultConfig()) {
|
|
149
|
+
moeAppId = appId;
|
|
150
|
+
MoEngageGlobalCache.updateInitConfig(initConfig);
|
|
146
151
|
commonValidationCheck();
|
|
147
152
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
148
153
|
MoERNAndroid.initialize(getInitConfigJson(appId, initConfig));
|
|
@@ -160,8 +165,8 @@ var ReactMoE = {
|
|
|
160
165
|
*/
|
|
161
166
|
setAppStatus: function (status: MoEAppStatus) {
|
|
162
167
|
commonValidationCheck();
|
|
163
|
-
|
|
164
|
-
let payload = getAppStatusJson(MoEHelper.appStatusToString(status),moeAppId);
|
|
168
|
+
MoEngageLogger.verbose("Will track whether it is a fresh install or update.");
|
|
169
|
+
let payload = getAppStatusJson(MoEHelper.appStatusToString(status), moeAppId);
|
|
165
170
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
166
171
|
MoERNAndroid.setAppStatus(payload);
|
|
167
172
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -182,12 +187,12 @@ var ReactMoE = {
|
|
|
182
187
|
}
|
|
183
188
|
|
|
184
189
|
if (!(properties instanceof MoEProperties)) {
|
|
185
|
-
|
|
190
|
+
MoEngageLogger.warn("trackEvent: properties must of MoEProperties type");
|
|
186
191
|
return;
|
|
187
192
|
}
|
|
188
193
|
|
|
189
|
-
|
|
190
|
-
|
|
194
|
+
MoEngageLogger.verbose("trackEvent with properties", properties);
|
|
195
|
+
let payload = getMoEPropertiesJson(properties, eventName, moeAppId);
|
|
191
196
|
|
|
192
197
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
193
198
|
MoERNAndroid.trackEvent(payload);
|
|
@@ -202,8 +207,8 @@ var ReactMoE = {
|
|
|
202
207
|
*/
|
|
203
208
|
setUserUniqueID: function (uniqueId: string) {
|
|
204
209
|
commonValidationCheck();
|
|
205
|
-
|
|
206
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_UNIQUE_ID,uniqueId,GENERAL,moeAppId)
|
|
210
|
+
MoEngageLogger.verbose("Will set unique ID: ", uniqueId);
|
|
211
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_UNIQUE_ID, uniqueId, GENERAL, moeAppId);
|
|
207
212
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
208
213
|
MoERNAndroid.setUserAttribute(payload);
|
|
209
214
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -217,8 +222,8 @@ var ReactMoE = {
|
|
|
217
222
|
*/
|
|
218
223
|
setAlias: function (alias: string) {
|
|
219
224
|
commonValidationCheck();
|
|
220
|
-
|
|
221
|
-
let payload = getAliasJson(alias,moeAppId);
|
|
225
|
+
MoEngageLogger.verbose("Will set alias: ", alias);
|
|
226
|
+
let payload = getAliasJson(alias, moeAppId);
|
|
222
227
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
223
228
|
MoERNAndroid.setAlias(payload);
|
|
224
229
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -232,8 +237,8 @@ var ReactMoE = {
|
|
|
232
237
|
*/
|
|
233
238
|
setUserName: function (userName: string) {
|
|
234
239
|
commonValidationCheck();
|
|
235
|
-
|
|
236
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_NAME,userName,GENERAL,moeAppId)
|
|
240
|
+
MoEngageLogger.verbose("Will set username: ", userName);
|
|
241
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_NAME, userName, GENERAL, moeAppId);
|
|
237
242
|
|
|
238
243
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
239
244
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -248,8 +253,8 @@ var ReactMoE = {
|
|
|
248
253
|
*/
|
|
249
254
|
setUserFirstName: function (firstName: string) {
|
|
250
255
|
commonValidationCheck();
|
|
251
|
-
|
|
252
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_FIRST_NAME,firstName,GENERAL,moeAppId)
|
|
256
|
+
MoEngageLogger.verbose("Will set first name: ", firstName);
|
|
257
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_FIRST_NAME, firstName, GENERAL, moeAppId);
|
|
253
258
|
|
|
254
259
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
255
260
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -264,8 +269,8 @@ var ReactMoE = {
|
|
|
264
269
|
*/
|
|
265
270
|
setUserLastName: function (lastName: string) {
|
|
266
271
|
commonValidationCheck();
|
|
267
|
-
|
|
268
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_LAST_NAME,lastName,GENERAL,moeAppId)
|
|
272
|
+
MoEngageLogger.verbose("Will set last name: ", lastName);
|
|
273
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_LAST_NAME, lastName, GENERAL, moeAppId);
|
|
269
274
|
|
|
270
275
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
271
276
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -280,8 +285,8 @@ var ReactMoE = {
|
|
|
280
285
|
*/
|
|
281
286
|
setUserEmailID: function (emailId: string) {
|
|
282
287
|
commonValidationCheck();
|
|
283
|
-
|
|
284
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_EMAIL,emailId,GENERAL,moeAppId)
|
|
288
|
+
MoEngageLogger.verbose("Will set email-id ", emailId);
|
|
289
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_EMAIL, emailId, GENERAL, moeAppId);
|
|
285
290
|
|
|
286
291
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
287
292
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -296,8 +301,8 @@ var ReactMoE = {
|
|
|
296
301
|
*/
|
|
297
302
|
setUserContactNumber: function (mobileNumber: string) {
|
|
298
303
|
commonValidationCheck();
|
|
299
|
-
|
|
300
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_MOBILE,mobileNumber,GENERAL,moeAppId)
|
|
304
|
+
MoEngageLogger.verbose("Will set Mobile Number: ", mobileNumber);
|
|
305
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_MOBILE, mobileNumber, GENERAL, moeAppId)
|
|
301
306
|
|
|
302
307
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
303
308
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -312,8 +317,8 @@ var ReactMoE = {
|
|
|
312
317
|
*/
|
|
313
318
|
setUserBirthday: function (birthday: string) {
|
|
314
319
|
commonValidationCheck();
|
|
315
|
-
|
|
316
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_BDAY,birthday,TIMESTAMP,moeAppId)
|
|
320
|
+
MoEngageLogger.verbose("Will set birthday: ", birthday);
|
|
321
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_BDAY, birthday, TIMESTAMP, moeAppId);
|
|
317
322
|
|
|
318
323
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
319
324
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -328,9 +333,8 @@ var ReactMoE = {
|
|
|
328
333
|
*/
|
|
329
334
|
setUserGender: function (gender: Object) {
|
|
330
335
|
commonValidationCheck();
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_GENDER,gender,GENERAL,moeAppId)
|
|
336
|
+
MoEngageLogger.verbose("Will set gender: ", gender);
|
|
337
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_GENDER, gender, GENERAL, moeAppId);
|
|
334
338
|
|
|
335
339
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
336
340
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -346,10 +350,10 @@ var ReactMoE = {
|
|
|
346
350
|
setUserLocation: function (location: MoEGeoLocation) {
|
|
347
351
|
commonValidationCheck();
|
|
348
352
|
if (!(location instanceof MoEGeoLocation)) {
|
|
349
|
-
|
|
353
|
+
MoEngageLogger.warn("setUserLocation: location must of type MoEGeoLocation");
|
|
350
354
|
return;
|
|
351
355
|
}
|
|
352
|
-
const payload = getUserLocAttributeJson(USER_ATTRIBUTE_USER_LOCATION,location.latitude,location.longitude,moeAppId)
|
|
356
|
+
const payload = getUserLocAttributeJson(USER_ATTRIBUTE_USER_LOCATION, location.latitude, location.longitude, moeAppId);
|
|
353
357
|
|
|
354
358
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
355
359
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -365,13 +369,13 @@ var ReactMoE = {
|
|
|
365
369
|
*/
|
|
366
370
|
setUserAttribute: function (userAttributeName: string, userAttributeValue: Object) {
|
|
367
371
|
commonValidationCheck();
|
|
368
|
-
|
|
372
|
+
MoEngageLogger.verbose(
|
|
369
373
|
"Will track user attribute [attributeName]: " +
|
|
370
374
|
userAttributeName +
|
|
371
375
|
" attributeValue: " +
|
|
372
376
|
userAttributeValue
|
|
373
377
|
);
|
|
374
|
-
const payload = getUserAttributeJson(userAttributeName,userAttributeValue,GENERAL,moeAppId)
|
|
378
|
+
const payload = getUserAttributeJson(userAttributeName, userAttributeValue, GENERAL, moeAppId);
|
|
375
379
|
|
|
376
380
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
377
381
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -390,7 +394,7 @@ var ReactMoE = {
|
|
|
390
394
|
date: String
|
|
391
395
|
) {
|
|
392
396
|
commonValidationCheck();
|
|
393
|
-
const payload = getUserAttributeJson(attributeName,date,TIMESTAMP,moeAppId)
|
|
397
|
+
const payload = getUserAttributeJson(attributeName, date, TIMESTAMP, moeAppId);
|
|
394
398
|
|
|
395
399
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
396
400
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -410,12 +414,10 @@ var ReactMoE = {
|
|
|
410
414
|
) {
|
|
411
415
|
commonValidationCheck();
|
|
412
416
|
if (!(location instanceof MoEGeoLocation)) {
|
|
413
|
-
|
|
414
|
-
"setUserAttributeWithLocation: location must of type MoEGeoLocation"
|
|
415
|
-
);
|
|
417
|
+
MoEngageLogger.warn("setUserAttributeWithLocation: location must of type MoEGeoLocation");
|
|
416
418
|
return;
|
|
417
419
|
}
|
|
418
|
-
const payload = getUserLocAttributeJson(userAttributeName,location.latitude,location.longitude,moeAppId)
|
|
420
|
+
const payload = getUserLocAttributeJson(userAttributeName, location.latitude, location.longitude, moeAppId);
|
|
419
421
|
|
|
420
422
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
421
423
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -429,7 +431,7 @@ var ReactMoE = {
|
|
|
429
431
|
*/
|
|
430
432
|
logout: function () {
|
|
431
433
|
commonValidationCheck();
|
|
432
|
-
|
|
434
|
+
MoEngageLogger.verbose("Will logout user");
|
|
433
435
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
434
436
|
MoERNAndroid.logout(getAppIdJson(moeAppId));
|
|
435
437
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -442,7 +444,7 @@ var ReactMoE = {
|
|
|
442
444
|
*/
|
|
443
445
|
showInApp: function () {
|
|
444
446
|
commonValidationCheck();
|
|
445
|
-
|
|
447
|
+
MoEngageLogger.verbose("Will try to show in-app.");
|
|
446
448
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
447
449
|
MoERNAndroid.showInApp(getAppIdJson(moeAppId));
|
|
448
450
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -469,12 +471,10 @@ var ReactMoE = {
|
|
|
469
471
|
selfHandledShown: function (inAppCampaign: MoESelfHandledCampaignData) {
|
|
470
472
|
commonValidationCheck();
|
|
471
473
|
if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
|
|
472
|
-
|
|
473
|
-
"selfHandledShown: inAppCampaign must of MoESelfHandledCampaignData type"
|
|
474
|
-
);
|
|
474
|
+
MoEngageLogger.warn("selfHandledShown: inAppCampaign must of MoESelfHandledCampaignData type");
|
|
475
475
|
return;
|
|
476
476
|
}
|
|
477
|
-
let campaignJson = getSelfHandledJson(inAppCampaign,"impression",moeAppId);
|
|
477
|
+
let campaignJson = getSelfHandledJson(inAppCampaign, "impression", moeAppId);
|
|
478
478
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
479
479
|
MoERNAndroid.selfHandledShown(campaignJson);
|
|
480
480
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -489,12 +489,10 @@ var ReactMoE = {
|
|
|
489
489
|
selfHandledClicked: function (moEClickData: MoESelfHandledCampaignData) {
|
|
490
490
|
commonValidationCheck();
|
|
491
491
|
if (!(moEClickData instanceof MoESelfHandledCampaignData)) {
|
|
492
|
-
|
|
493
|
-
"selfHandledClicked: inAppCampaign must of MoEClickData type"
|
|
494
|
-
);
|
|
492
|
+
MoEngageLogger.warn("selfHandledClicked: inAppCampaign must of MoEClickData type");
|
|
495
493
|
return;
|
|
496
494
|
}
|
|
497
|
-
let campaignJson = getSelfHandledJson(moEClickData,"click",moeAppId);
|
|
495
|
+
let campaignJson = getSelfHandledJson(moEClickData, "click", moeAppId);
|
|
498
496
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
499
497
|
MoERNAndroid.selfHandledClicked(campaignJson);
|
|
500
498
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -509,12 +507,10 @@ var ReactMoE = {
|
|
|
509
507
|
selfHandledDismissed: function (inAppCampaign: MoESelfHandledCampaignData) {
|
|
510
508
|
commonValidationCheck();
|
|
511
509
|
if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
|
|
512
|
-
|
|
513
|
-
"selfHandledDismissed: inAppCampaign must of MoESelfHandledCampaignData type"
|
|
514
|
-
);
|
|
510
|
+
MoEngageLogger.warn("selfHandledDismissed: inAppCampaign must of MoESelfHandledCampaignData type");
|
|
515
511
|
return;
|
|
516
512
|
}
|
|
517
|
-
let campaignJson = getSelfHandledJson(inAppCampaign,"dismissed",moeAppId);
|
|
513
|
+
let campaignJson = getSelfHandledJson(inAppCampaign, "dismissed", moeAppId);
|
|
518
514
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
519
515
|
MoERNAndroid.selfHandledDismissed(campaignJson);
|
|
520
516
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -529,12 +525,10 @@ var ReactMoE = {
|
|
|
529
525
|
setCurrentContext: function (contexts: Array<String>) {
|
|
530
526
|
commonValidationCheck();
|
|
531
527
|
if (!MoEHelper.validateArrayOfString(contexts)) {
|
|
532
|
-
|
|
533
|
-
"setCurrentContext: contexts must be a non empty array of strings"
|
|
534
|
-
);
|
|
528
|
+
MoEngageLogger.warn("setCurrentContext: contexts must be a non empty array of strings");
|
|
535
529
|
return;
|
|
536
530
|
}
|
|
537
|
-
let payload = getInAppContextJson(contexts,moeAppId);
|
|
531
|
+
let payload = getInAppContextJson(contexts, moeAppId);
|
|
538
532
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
539
533
|
MoERNAndroid.setAppContext(payload);
|
|
540
534
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -562,13 +556,13 @@ var ReactMoE = {
|
|
|
562
556
|
*/
|
|
563
557
|
passFcmPushToken: function (pushToken: string) {
|
|
564
558
|
commonValidationCheck();
|
|
565
|
-
|
|
566
|
-
let payload = getMoEPushTokenJson(pushToken,PUSH_SERVICE_FCM,PLATFORM_ANDROID,moeAppId);
|
|
559
|
+
MoEngageLogger.verbose("Will process push token");
|
|
560
|
+
let payload = getMoEPushTokenJson(pushToken, PUSH_SERVICE_FCM, PLATFORM_ANDROID, moeAppId);
|
|
567
561
|
|
|
568
562
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
569
563
|
MoERNAndroid.passFcmPushToken(payload);
|
|
570
564
|
} else {
|
|
571
|
-
|
|
565
|
+
MoEngageLogger.debug("This api is not supported on iOS platform.");
|
|
572
566
|
}
|
|
573
567
|
},
|
|
574
568
|
/**
|
|
@@ -579,13 +573,13 @@ var ReactMoE = {
|
|
|
579
573
|
*/
|
|
580
574
|
passFcmPushPayload: function (pushPayload: object) {
|
|
581
575
|
commonValidationCheck();
|
|
582
|
-
|
|
583
|
-
let payload = getMoEPushCampaignJson(pushPayload,PUSH_SERVICE_FCM,moeAppId)
|
|
576
|
+
MoEngageLogger.verbose("Will process push payload.");
|
|
577
|
+
let payload = getMoEPushCampaignJson(pushPayload, PUSH_SERVICE_FCM, moeAppId);
|
|
584
578
|
|
|
585
579
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
586
580
|
MoERNAndroid.passFcmPushPayload(payload);
|
|
587
581
|
} else {
|
|
588
|
-
|
|
582
|
+
MoEngageLogger.debug("This api is not supported on iOS platform.");
|
|
589
583
|
}
|
|
590
584
|
},
|
|
591
585
|
|
|
@@ -594,9 +588,9 @@ var ReactMoE = {
|
|
|
594
588
|
*/
|
|
595
589
|
registerForPush: function () {
|
|
596
590
|
commonValidationCheck();
|
|
597
|
-
|
|
591
|
+
MoEngageLogger.verbose("Will registerForPush");
|
|
598
592
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
599
|
-
|
|
593
|
+
MoEngageLogger.debug("This api is not supported on android platform.");
|
|
600
594
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
601
595
|
MoERNiOS.registerForPush();
|
|
602
596
|
}
|
|
@@ -607,9 +601,9 @@ var ReactMoE = {
|
|
|
607
601
|
*/
|
|
608
602
|
disableInbox: function () {
|
|
609
603
|
commonValidationCheck();
|
|
610
|
-
|
|
604
|
+
MoEngageLogger.verbose("Will disableInbox");
|
|
611
605
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
612
|
-
|
|
606
|
+
MoEngageLogger.debug("This api is not supported on android platform.");
|
|
613
607
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
614
608
|
MoERNiOS.disableInbox(getAppIdJson(moeAppId));
|
|
615
609
|
}
|
|
@@ -627,8 +621,8 @@ var ReactMoE = {
|
|
|
627
621
|
},
|
|
628
622
|
|
|
629
623
|
optOutDataTracking: function (shouldOptOutDataTracking: boolean) {
|
|
630
|
-
|
|
631
|
-
let payload = getOptOutTrackingJson("data",shouldOptOutDataTracking,moeAppId);
|
|
624
|
+
MoEngageLogger.verbose("Will opt out data tracking");
|
|
625
|
+
let payload = getOptOutTrackingJson("data", shouldOptOutDataTracking, moeAppId);
|
|
632
626
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
633
627
|
MoERNAndroid.optOutDataTracking(payload);
|
|
634
628
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -644,19 +638,19 @@ var ReactMoE = {
|
|
|
644
638
|
*/
|
|
645
639
|
passPushKitPushToken: function (pushToken: string) {
|
|
646
640
|
commonValidationCheck();
|
|
647
|
-
|
|
648
|
-
let payload = getMoEPushTokenJson(pushToken,PUSH_SERVICE_PUSH_KIT,PLATFORM_ANDROID,moeAppId);
|
|
641
|
+
MoEngageLogger.verbose("Will process push-kit push token");
|
|
642
|
+
let payload = getMoEPushTokenJson(pushToken, PUSH_SERVICE_PUSH_KIT, PLATFORM_ANDROID, moeAppId);
|
|
649
643
|
|
|
650
644
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
651
645
|
MoERNAndroid.passPushKitPushToken(payload);
|
|
652
646
|
} else {
|
|
653
|
-
|
|
647
|
+
MoEngageLogger.debug("This api is not supported on iOS platform.");
|
|
654
648
|
}
|
|
655
649
|
},
|
|
656
650
|
|
|
657
651
|
enableSdk: function () {
|
|
658
|
-
|
|
659
|
-
let payload = getSdkStateJson(true,moeAppId)
|
|
652
|
+
MoEngageLogger.verbose("Will enable SDK");
|
|
653
|
+
let payload = getSdkStateJson(true, moeAppId);
|
|
660
654
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
661
655
|
MoERNAndroid.updateSdkState(payload);
|
|
662
656
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -665,8 +659,8 @@ var ReactMoE = {
|
|
|
665
659
|
},
|
|
666
660
|
|
|
667
661
|
disableSdk: function () {
|
|
668
|
-
|
|
669
|
-
let payload = getSdkStateJson(false,moeAppId)
|
|
662
|
+
MoEngageLogger.verbose("Will disable SDK");
|
|
663
|
+
let payload = getSdkStateJson(false, moeAppId);
|
|
670
664
|
|
|
671
665
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
672
666
|
MoERNAndroid.updateSdkState(payload);
|
|
@@ -676,7 +670,7 @@ var ReactMoE = {
|
|
|
676
670
|
},
|
|
677
671
|
|
|
678
672
|
onOrientationChanged: function () {
|
|
679
|
-
|
|
673
|
+
MoEngageLogger.verbose("Will process screen rotation.");
|
|
680
674
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
681
675
|
MoERNAndroid.onOrientationChanged();
|
|
682
676
|
}
|
|
@@ -686,8 +680,8 @@ var ReactMoE = {
|
|
|
686
680
|
* API to enable Advertising Id tracking for Android.
|
|
687
681
|
*/
|
|
688
682
|
enableAdIdTracking: function () {
|
|
689
|
-
|
|
690
|
-
let payload = getAdIdTrackingJson(true,moeAppId);
|
|
683
|
+
MoEngageLogger.verbose("Will enable advertising-id tracking");
|
|
684
|
+
let payload = getAdIdTrackingJson(true, moeAppId);
|
|
691
685
|
|
|
692
686
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
693
687
|
MoERNAndroid.enableAdIdTracking(payload);
|
|
@@ -701,8 +695,8 @@ var ReactMoE = {
|
|
|
701
695
|
* Advertising Id tracking at some point.
|
|
702
696
|
*/
|
|
703
697
|
disableAdIdTracking: function () {
|
|
704
|
-
|
|
705
|
-
let payload = getAdIdTrackingJson(false,moeAppId);
|
|
698
|
+
MoEngageLogger.verbose("Will disable advertising-id tracking");
|
|
699
|
+
let payload = getAdIdTrackingJson(false, moeAppId);
|
|
706
700
|
|
|
707
701
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
708
702
|
MoERNAndroid.disableAdIdTracking(payload);
|
|
@@ -713,8 +707,8 @@ var ReactMoE = {
|
|
|
713
707
|
* API to enable Android Id tracking for Android.
|
|
714
708
|
*/
|
|
715
709
|
enableAndroidIdTracking: function () {
|
|
716
|
-
|
|
717
|
-
let payload = getAndroidIdTrackingJson(true,moeAppId);
|
|
710
|
+
MoEngageLogger.verbose("Will enable android-id tracking");
|
|
711
|
+
let payload = getAndroidIdTrackingJson(true, moeAppId);
|
|
718
712
|
|
|
719
713
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
720
714
|
MoERNAndroid.enableAndroidIdTracking(payload);
|
|
@@ -728,8 +722,8 @@ var ReactMoE = {
|
|
|
728
722
|
* Advertising Id tracking at some point.
|
|
729
723
|
*/
|
|
730
724
|
disableAndroidIdTracking: function () {
|
|
731
|
-
|
|
732
|
-
let payload = getAndroidIdTrackingJson(false,moeAppId);
|
|
725
|
+
MoEngageLogger.verbose("Will disable android-id tracking");
|
|
726
|
+
let payload = getAndroidIdTrackingJson(false, moeAppId);
|
|
733
727
|
|
|
734
728
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
735
729
|
MoERNAndroid.disableAndroidIdTracking(payload);
|
|
@@ -737,28 +731,28 @@ var ReactMoE = {
|
|
|
737
731
|
},
|
|
738
732
|
|
|
739
733
|
pushPermissionResponseAndroid: function (isGranted: boolean) {
|
|
740
|
-
|
|
734
|
+
MoEngageLogger.verbose("Will track permission response");
|
|
741
735
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
742
736
|
MoERNAndroid.permissionResponse(isGranted, MoEngagePermissionType.PUSH)
|
|
743
737
|
}
|
|
744
738
|
},
|
|
745
739
|
|
|
746
740
|
setupNotificationChannelsAndroid: function () {
|
|
747
|
-
|
|
741
|
+
MoEngageLogger.verbose("Will setup notification");
|
|
748
742
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
749
743
|
MoERNAndroid.setupNotificationChannels();
|
|
750
744
|
}
|
|
751
745
|
},
|
|
752
746
|
|
|
753
747
|
navigateToSettingsAndroid: function () {
|
|
754
|
-
|
|
748
|
+
MoEngageLogger.verbose("Will navigate to settings");
|
|
755
749
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
756
750
|
MoERNAndroid.navigateToSettings();
|
|
757
751
|
}
|
|
758
752
|
},
|
|
759
753
|
|
|
760
754
|
requestPushPermissionAndroid: function () {
|
|
761
|
-
|
|
755
|
+
MoEngageLogger.verbose("Will request push permission.");
|
|
762
756
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
763
757
|
MoERNAndroid.requestPushPermission();
|
|
764
758
|
}
|
|
@@ -771,7 +765,7 @@ var ReactMoE = {
|
|
|
771
765
|
* @param {number} count - number of times push permission requested
|
|
772
766
|
*/
|
|
773
767
|
updatePushPermissionRequestCountAndroid: function (count: number) {
|
|
774
|
-
|
|
768
|
+
MoEngageLogger.verbose("Will increment push permission request count");
|
|
775
769
|
let payload = getPushPermissionRequestCountJson(count, moeAppId);
|
|
776
770
|
|
|
777
771
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
@@ -785,7 +779,7 @@ var ReactMoE = {
|
|
|
785
779
|
* Note: By default Device Id tracking is enabled
|
|
786
780
|
*/
|
|
787
781
|
enableDeviceIdTracking: function () {
|
|
788
|
-
|
|
782
|
+
MoEngageLogger.verbose("Will enable device id tracking");
|
|
789
783
|
let payload = getDeviceIdTrackingJson(true, moeAppId);
|
|
790
784
|
|
|
791
785
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
@@ -797,7 +791,7 @@ var ReactMoE = {
|
|
|
797
791
|
* API to disable Device Id tracking for Android.
|
|
798
792
|
*/
|
|
799
793
|
disableDeviceIdTracking: function () {
|
|
800
|
-
|
|
794
|
+
MoEngageLogger.verbose("Will disable device id tracking");
|
|
801
795
|
let payload = getDeviceIdTrackingJson(false, moeAppId);
|
|
802
796
|
|
|
803
797
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
@@ -815,6 +809,9 @@ export {
|
|
|
815
809
|
MoEProperties,
|
|
816
810
|
MoEAppStatus,
|
|
817
811
|
MoEInitConfig,
|
|
818
|
-
MoEPushConfig
|
|
812
|
+
MoEPushConfig,
|
|
813
|
+
MoEngageLogConfig,
|
|
814
|
+
MoEngageLogLevel,
|
|
815
|
+
MoEngageLogger
|
|
819
816
|
};
|
|
820
817
|
export default ReactMoE;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import MoEngageLogLevel from "../models/MoEngageLogLevel";
|
|
2
|
+
import MoEngageGlobalCache from "../utils/MoEngageGlobalCache";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Logger to print the ReactNative Plugin log
|
|
6
|
+
* Notes: To Configure the log check {@link MoEInitConfig}
|
|
7
|
+
*/
|
|
8
|
+
namespace MoEngageLogger {
|
|
9
|
+
|
|
10
|
+
function isLoggable(logLevel: MoEngageLogLevel): boolean {
|
|
11
|
+
return (__DEV__ || MoEngageGlobalCache.getInitConfig().logConfig.isEnabledForReleaseBuild)
|
|
12
|
+
&& MoEngageGlobalCache.getInitConfig().logConfig.logLevel >= logLevel;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Console error log
|
|
17
|
+
*
|
|
18
|
+
* @param {any} message - log message which need to be logged
|
|
19
|
+
* @param {any} data - additional message or data
|
|
20
|
+
*/
|
|
21
|
+
export function error(message: any, data?: any): void {
|
|
22
|
+
if (!isLoggable(MoEngageLogLevel.ERROR)) return;
|
|
23
|
+
if (data === undefined) console.error(message);
|
|
24
|
+
else console.error(message, data);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Console warn log
|
|
29
|
+
*
|
|
30
|
+
* @param {any} message - log message which need to be logged
|
|
31
|
+
* @param {any} data - additional message or data
|
|
32
|
+
*/
|
|
33
|
+
export function warn(message: any, data?: any): void {
|
|
34
|
+
if (!isLoggable(MoEngageLogLevel.WARN)) return;
|
|
35
|
+
if (data === undefined) console.warn(message);
|
|
36
|
+
else console.warn(message, data);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Console info log
|
|
41
|
+
*
|
|
42
|
+
* @param {any} message - log message which need to be logged
|
|
43
|
+
* @param {any} data - additional message or data
|
|
44
|
+
*/
|
|
45
|
+
export function info(message: any, data?: any): void {
|
|
46
|
+
if (!isLoggable(MoEngageLogLevel.INFO)) return;
|
|
47
|
+
if (data === undefined) console.info(message);
|
|
48
|
+
else console.info(message, data);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Console debug log
|
|
53
|
+
*
|
|
54
|
+
* @param {any} message - log message which need to be logged
|
|
55
|
+
* @param {any} data - additional message or data
|
|
56
|
+
*/
|
|
57
|
+
export function debug(message: any, data?: any): void {
|
|
58
|
+
if (!isLoggable(MoEngageLogLevel.DEBUG)) return;
|
|
59
|
+
if (data === undefined) console.debug(message);
|
|
60
|
+
else console.debug(message, data);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Console verbose log
|
|
65
|
+
* Notes: On Console it will be clubbed with debug log
|
|
66
|
+
*
|
|
67
|
+
* @param {any} message - log message which need to be logged
|
|
68
|
+
* @param {any} data - additional message or data
|
|
69
|
+
*/
|
|
70
|
+
export function verbose(message: any, data?: any): void {
|
|
71
|
+
if (!isLoggable(MoEngageLogLevel.VERBOSE)) return;
|
|
72
|
+
if (data === undefined) console.debug(message);
|
|
73
|
+
else console.debug(message, data);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export default MoEngageLogger;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import MoEngageLogConfig from "./MoEngageLogConfig";
|
|
1
2
|
import MoEPushConfig from "./MoEPushConfig";
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -6,21 +7,30 @@ import MoEPushConfig from "./MoEPushConfig";
|
|
|
6
7
|
*/
|
|
7
8
|
export default class MoEInitConfig {
|
|
8
9
|
|
|
9
|
-
pushConfig: MoEPushConfig;
|
|
10
|
+
pushConfig: MoEPushConfig = MoEPushConfig.defaultConfig();
|
|
11
|
+
|
|
12
|
+
logConfig: MoEngageLogConfig = MoEngageLogConfig.defaultConfig();
|
|
10
13
|
|
|
11
14
|
/**
|
|
12
15
|
* Create an instance of {@link MoEInitConfig}
|
|
13
16
|
*
|
|
14
17
|
* @param pushConfig instance of {@link MoEPushConfig}
|
|
18
|
+
* @param logConfig instance of {@link MoEngageLogConfig}
|
|
15
19
|
*/
|
|
16
|
-
constructor
|
|
20
|
+
constructor(pushConfig: MoEPushConfig = MoEPushConfig.defaultConfig(),
|
|
21
|
+
logConfig: MoEngageLogConfig = MoEngageLogConfig.defaultConfig()
|
|
22
|
+
) {
|
|
17
23
|
this.pushConfig = pushConfig;
|
|
24
|
+
this.logConfig = logConfig;
|
|
18
25
|
}
|
|
19
26
|
|
|
20
27
|
/**
|
|
21
28
|
* Default Config for {@link MoEInitConfig}
|
|
22
29
|
*/
|
|
23
30
|
static defaultConfig() {
|
|
24
|
-
return new MoEInitConfig(
|
|
31
|
+
return new MoEInitConfig(
|
|
32
|
+
MoEPushConfig.defaultConfig(),
|
|
33
|
+
MoEngageLogConfig.defaultConfig()
|
|
34
|
+
);
|
|
25
35
|
}
|
|
26
36
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// Helper class to track event attributes.
|
|
2
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
2
3
|
import { MoEGeoLocationToJson } from "../utils/MoEObjectToJson";
|
|
3
4
|
import MoEGeoLocation from "./MoEGeoLocation";
|
|
4
5
|
|
|
@@ -42,7 +43,7 @@ export default class MoEProperties {
|
|
|
42
43
|
if (Array.isArray(value)) {
|
|
43
44
|
value = (value as Array<any>).filter(e => (this.validateType(["string", "number"], e)));
|
|
44
45
|
} else if (!this.validateType(["string", "number", "boolean"], value)) {
|
|
45
|
-
|
|
46
|
+
MoEngageLogger.warn("MoEProperties->addAttribute: invalid attribute");
|
|
46
47
|
return
|
|
47
48
|
}
|
|
48
49
|
|
|
@@ -60,7 +61,7 @@ export default class MoEProperties {
|
|
|
60
61
|
return;
|
|
61
62
|
}
|
|
62
63
|
if (!this.validateType(["string"], date)) {
|
|
63
|
-
|
|
64
|
+
MoEngageLogger.warn("MoEProperties->addDateAttribute: invalid date attribute");
|
|
64
65
|
return
|
|
65
66
|
}
|
|
66
67
|
this.dateTimeAttributes[key.toString()] = date;
|
|
@@ -81,7 +82,7 @@ export default class MoEProperties {
|
|
|
81
82
|
if (this.validateLatLong(location)) {
|
|
82
83
|
this.locationAttributes[key.toString()] = MoEGeoLocationToJson(location)
|
|
83
84
|
} else {
|
|
84
|
-
|
|
85
|
+
MoEngageLogger.warn("MoEGeoLocation->addLocationAttribute: invalid coordinates");
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
|
|
@@ -103,10 +104,10 @@ export default class MoEProperties {
|
|
|
103
104
|
|
|
104
105
|
private validateLatLong(location: MoEGeoLocation) {
|
|
105
106
|
return (
|
|
106
|
-
location.latitude > -91 &&
|
|
107
|
-
location.latitude < 91 &&
|
|
108
|
-
location.longitude > -181 &&
|
|
109
|
-
location.longitude < 181
|
|
107
|
+
location.latitude.valueOf() > -91 &&
|
|
108
|
+
location.latitude.valueOf() < 91 &&
|
|
109
|
+
location.longitude.valueOf() > -181 &&
|
|
110
|
+
location.longitude.valueOf() < 181
|
|
110
111
|
);
|
|
111
112
|
}
|
|
112
113
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_CONFIG_LOG_LEVEL,
|
|
3
|
+
DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED
|
|
4
|
+
} from "../utils/MoEConstants";
|
|
5
|
+
import MoEngageLogLevel from "./MoEngageLogLevel";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Config class to configure the React-Native Plugin log.
|
|
9
|
+
* Notes: To configure Native Module log check on Android / iOS initialisation config.
|
|
10
|
+
*/
|
|
11
|
+
export default class MoEngageLogConfig {
|
|
12
|
+
|
|
13
|
+
logLevel: MoEngageLogLevel = DEFAULT_CONFIG_LOG_LEVEL;
|
|
14
|
+
|
|
15
|
+
isEnabledForReleaseBuild: boolean = DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Create an instance for MoEngageLogConfig
|
|
19
|
+
*
|
|
20
|
+
* @param logLevel - Min log level which need to be printed on console
|
|
21
|
+
* @param isEnabledForReleaseBuild - enable / disable the log in release build
|
|
22
|
+
*/
|
|
23
|
+
constructor(logLevel: MoEngageLogLevel, isEnabledForReleaseBuild: boolean) {
|
|
24
|
+
this.logLevel = logLevel;
|
|
25
|
+
this.isEnabledForReleaseBuild = isEnabledForReleaseBuild;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Default config for the log
|
|
30
|
+
*/
|
|
31
|
+
static defaultConfig() {
|
|
32
|
+
return new MoEngageLogConfig(DEFAULT_CONFIG_LOG_LEVEL, DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Different Log Level Supported by the {@link MoEngageLogConfig}
|
|
3
|
+
*/
|
|
4
|
+
const enum MoEngageLogLevel {
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* No logs from the SDK would be printed.
|
|
8
|
+
*/
|
|
9
|
+
NO_LOG = 0,
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Error logs from the SDK would be printed.
|
|
13
|
+
*/
|
|
14
|
+
ERROR = 1,
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Warning logs from the SDK would be printed.
|
|
18
|
+
*/
|
|
19
|
+
WARN = 2,
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Info logs from the SDK would be printed.
|
|
23
|
+
*/
|
|
24
|
+
INFO = 3,
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Debug logs from the SDK would be printed.
|
|
28
|
+
*/
|
|
29
|
+
DEBUG = 4,
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Verbose logs from the SDK would be printed.
|
|
33
|
+
*/
|
|
34
|
+
VERBOSE = 5
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export default MoEngageLogLevel;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
1
2
|
import MoEAccountMeta from "../models/MoEAccountMeta";
|
|
2
3
|
import MoECampaignContext from "../models/MoECampaignContext";
|
|
3
4
|
import MoECampaignData from "../models/MoECampaignData";
|
|
@@ -7,7 +8,27 @@ import MoEInAppData from "../models/MoEInAppData";
|
|
|
7
8
|
import MoEInAppNavigation from "../models/MoEInAppNavigation";
|
|
8
9
|
import MoESelfHandledCampaign from "../models/MoESelfHandledCampaign";
|
|
9
10
|
import MoESelfHandledCampaignData from "../models/MoESelfHandledCampaignData";
|
|
10
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
ACTION_TYPE,
|
|
13
|
+
APP_ID,
|
|
14
|
+
FORMATTED_CAMPAIGN_ID,
|
|
15
|
+
MOE_CAMPAIGN_CONTEXT,
|
|
16
|
+
MOE_CAMPAIGN_ID,
|
|
17
|
+
MOE_CAMPAIGN_NAME,
|
|
18
|
+
MOE_CUSTOM_ACTION,
|
|
19
|
+
MOE_CUSTOM_ACTION_OBJ_ERROR,
|
|
20
|
+
MOE_DISMISSINTERVAL,
|
|
21
|
+
MOE_IN_APP_OBJECT_ERROR,
|
|
22
|
+
MOE_KEY_VALUE_PAIR,
|
|
23
|
+
MOE_NAVIGATION,
|
|
24
|
+
MOE_NAVIGATION_OBJ_ERROR,
|
|
25
|
+
MOE_NAVIGATION_TYPE,
|
|
26
|
+
MOE_PAYLOAD,
|
|
27
|
+
MOE_PLATFORM,
|
|
28
|
+
MOE_SELF_HANDLED,
|
|
29
|
+
MOE_SELF_HANDLED_OBJ_ERROR,
|
|
30
|
+
MOE_NAVIGATION_VALUE
|
|
31
|
+
} from "../utils/MoEConstants";
|
|
11
32
|
import { isValidObject } from "../utils/MoEHelper";
|
|
12
33
|
|
|
13
34
|
/**
|
|
@@ -26,7 +47,7 @@ export function isMoEInAppCampaignValid(obj: { [k: string]: any }) {
|
|
|
26
47
|
}
|
|
27
48
|
}
|
|
28
49
|
catch (error: any) {
|
|
29
|
-
|
|
50
|
+
MoEngageLogger.error(error?.message);
|
|
30
51
|
return false;
|
|
31
52
|
}
|
|
32
53
|
}
|
|
@@ -37,7 +58,7 @@ function getMoEAccountMeta(accountMeta: { [k: string]: any }) {
|
|
|
37
58
|
}
|
|
38
59
|
|
|
39
60
|
function getMoECampaignData(json: { [k: string]: any }) {
|
|
40
|
-
|
|
61
|
+
MoEngageLogger.verbose("getMoECampaignData(): Payload: ", json);
|
|
41
62
|
var campaignId = json[MOE_CAMPAIGN_ID];
|
|
42
63
|
var campaignName = json[MOE_CAMPAIGN_NAME];
|
|
43
64
|
var campaignContext = json[MOE_CAMPAIGN_CONTEXT];
|
|
@@ -86,7 +107,7 @@ export function getMoEInAppData(json: { [k: string]: any }, accountMetaPayload:
|
|
|
86
107
|
* this funtion creates MoESelfHandledCampaignData Object from json
|
|
87
108
|
*/
|
|
88
109
|
export function getMoESelfHandledCampaignData(json: { [k: string]: any }, accountMetaPayload: { [k: string]: any }) {
|
|
89
|
-
|
|
110
|
+
MoEngageLogger.verbose("getMoESelfHandledCampaignData(): Payload: ", json);
|
|
90
111
|
if (isSelfHandledCampaignValid(json)) {
|
|
91
112
|
var campaignData = getMoECampaignData(json);
|
|
92
113
|
var platform = json[MOE_PLATFORM];
|
|
@@ -111,7 +132,7 @@ export function isInAppCustomActionValid(obj: { [k: string]: any }) {
|
|
|
111
132
|
}
|
|
112
133
|
}
|
|
113
134
|
catch (error: any) {
|
|
114
|
-
|
|
135
|
+
MoEngageLogger.error(error?.message);
|
|
115
136
|
return false;
|
|
116
137
|
}
|
|
117
138
|
}
|
|
@@ -153,7 +174,7 @@ export function isSelfHandledCampaignValid(obj: { [k: string]: any }) {
|
|
|
153
174
|
}
|
|
154
175
|
}
|
|
155
176
|
catch (error: any) {
|
|
156
|
-
|
|
177
|
+
MoEngageLogger.error(error?.message);
|
|
157
178
|
return false;
|
|
158
179
|
}
|
|
159
180
|
}
|
|
@@ -171,7 +192,7 @@ export function isNavigationValid(obj: { [k: string]: any }) {
|
|
|
171
192
|
}
|
|
172
193
|
}
|
|
173
194
|
catch (error: any) {
|
|
174
|
-
|
|
195
|
+
MoEngageLogger.error(error?.message);
|
|
175
196
|
return false;
|
|
176
197
|
}
|
|
177
198
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
1
2
|
import MoEAccountMeta from "../models/MoEAccountMeta";
|
|
2
3
|
import MoEPushCampaign from "../models/MoEPushCampaign";
|
|
3
4
|
import MoEPushPayload from "../models/MoEPushPayload";
|
|
@@ -19,7 +20,7 @@ export function isPushTokenValid(tokenPayload: { [k: string]: any }) {
|
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
catch (error: any) {
|
|
22
|
-
|
|
23
|
+
MoEngageLogger.error(error?.message);
|
|
23
24
|
return false;
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -54,7 +55,7 @@ export function isPushCampaignObjectValid(pushPayload: { [k: string]: any }) {
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
catch (error: any) {
|
|
57
|
-
|
|
58
|
+
MoEngageLogger.error(error?.message);
|
|
58
59
|
return false;
|
|
59
60
|
}
|
|
60
61
|
|
|
@@ -1,17 +1,8 @@
|
|
|
1
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
1
2
|
import { MoEngagePermissionType } from "../models/MoEngagePermissionType";
|
|
2
|
-
import {
|
|
3
|
-
getAdIdTrackingJson,
|
|
4
|
-
getAndroidIdTrackingJson,
|
|
5
|
-
getAppIdJson,
|
|
6
|
-
getMoEPushCampaignJson,
|
|
7
|
-
getMoEPushTokenJson,
|
|
8
|
-
getOptOutTrackingJson,
|
|
9
|
-
getPermissionResponseJson,
|
|
10
|
-
getSdkStateJson
|
|
11
|
-
} from "../utils/MoEJsonBuilder";
|
|
3
|
+
import { getPermissionResponseJson } from "../utils/MoEJsonBuilder";
|
|
12
4
|
|
|
13
5
|
const MoEReactBridge = require("react-native").NativeModules.MoEReactBridge;
|
|
14
|
-
const PLATFORM_ANDROID = "android";
|
|
15
6
|
|
|
16
7
|
export class MoERNAndroid {
|
|
17
8
|
static initialize(payload: { [k: string]: any }) {
|
|
@@ -96,7 +87,7 @@ export class MoERNAndroid {
|
|
|
96
87
|
|
|
97
88
|
static validateSDKVersion() {
|
|
98
89
|
MoEReactBridge.validateSdkVersion().catch((error: Error) => {
|
|
99
|
-
|
|
90
|
+
MoEngageLogger.error(error.message);
|
|
100
91
|
});
|
|
101
92
|
}
|
|
102
93
|
|
|
@@ -116,7 +107,7 @@ export class MoERNAndroid {
|
|
|
116
107
|
MoEReactBridge.deviceIdentifierTrackingStatusUpdate(JSON.stringify(payload))
|
|
117
108
|
}
|
|
118
109
|
|
|
119
|
-
static disableAdIdTracking(payload: { [k: string]: any }) {
|
|
110
|
+
static disableAdIdTracking(payload: { [k: string]: any }) {
|
|
120
111
|
MoEReactBridge.deviceIdentifierTrackingStatusUpdate(JSON.stringify(payload))
|
|
121
112
|
}
|
|
122
113
|
|
|
@@ -155,7 +146,4 @@ export class MoERNAndroid {
|
|
|
155
146
|
static disableDeviceIdTracking(payload: { [k: string]: any }) {
|
|
156
147
|
MoEReactBridge.deviceIdentifierTrackingStatusUpdate(JSON.stringify(payload))
|
|
157
148
|
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
const PUSH_SERVICE_FCM = "FCM"
|
|
161
|
-
const PUSH_SERVICE_PUSH_KIT = "PUSH_KIT"
|
|
149
|
+
}
|
package/src/platform/MoERNiOS.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
2
2
|
|
|
3
3
|
const MoEReactBridge = require("react-native").NativeModules.MoEReactBridge;
|
|
4
4
|
|
|
@@ -65,7 +65,7 @@ export class MoERNiOS {
|
|
|
65
65
|
|
|
66
66
|
static validateSDKVersion() {
|
|
67
67
|
MoEReactBridge.validateSDKVersion().catch((error: Error) => {
|
|
68
|
-
|
|
68
|
+
MoEngageLogger.error(error.message);
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import MoEngageLogLevel from "../models/MoEngageLogLevel"
|
|
2
|
+
|
|
1
3
|
export const MOE_PLATFORM = 'platform'
|
|
2
4
|
export const MOE_PAYLOAD = 'payload'
|
|
3
5
|
export const MOE_DATA = 'data'
|
|
@@ -66,3 +68,10 @@ export const KEY_PUSH_CONFIG = "pushConfig";
|
|
|
66
68
|
// PUSH CLICK KEY
|
|
67
69
|
export const SELF_HANDLED_PUSH_REDIRECTION_KEY = "selfHandledPushRedirection";
|
|
68
70
|
|
|
71
|
+
// Default Log Level For MoEngage React Plugin
|
|
72
|
+
export const DEFAULT_CONFIG_LOG_LEVEL = MoEngageLogLevel.INFO;
|
|
73
|
+
|
|
74
|
+
// Default Logging For Production Build
|
|
75
|
+
export const DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED = false;
|
|
76
|
+
|
|
77
|
+
|
|
@@ -6,6 +6,7 @@ import { MOE_LOCATION } from "./MoEConstants";
|
|
|
6
6
|
import { MoEPropertiesToJson} from "./MoEObjectToJson";
|
|
7
7
|
import {MoEngagePermissionType} from "../models/MoEngagePermissionType";
|
|
8
8
|
import MoEInitConfig from "../models/MoEInitConfig";
|
|
9
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
9
10
|
|
|
10
11
|
export function getInAppCampaignJson(moEInAppData: MoEInAppData, type: string, appId: String) {
|
|
11
12
|
var json: { [k: string]: any } = {
|
|
@@ -37,7 +38,7 @@ export function getSelfHandledJson(moESelfHandledCampaignData: MoESelfHandledCam
|
|
|
37
38
|
platform: moESelfHandledCampaignData.platform
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
|
|
41
|
+
MoEngageLogger.verbose("getSelfHandledJson(): payload json: ", json);
|
|
41
42
|
return json;
|
|
42
43
|
}
|
|
43
44
|
|
|
@@ -253,8 +254,7 @@ export function getDeviceIdTrackingJson(isDeviceIdTrackingEnabled: Boolean, appI
|
|
|
253
254
|
return json;
|
|
254
255
|
}
|
|
255
256
|
|
|
256
|
-
export function getInitConfigJson(appId: String, initConfig
|
|
257
|
-
if (initConfig == undefined) initConfig = MoEInitConfig.defaultConfig()
|
|
257
|
+
export function getInitConfigJson(appId: String, initConfig: MoEInitConfig) {
|
|
258
258
|
var json: { [k: string]: any } = {
|
|
259
259
|
accountMeta: {
|
|
260
260
|
appId: appId
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import MoEInitConfig from "../models/MoEInitConfig";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* In Memory Cache for Plugin
|
|
5
|
+
*/
|
|
6
|
+
namespace MoEngageGlobalCache {
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Plugin Init Config
|
|
10
|
+
*/
|
|
11
|
+
let initConfig: MoEInitConfig = MoEInitConfig.defaultConfig();
|
|
12
|
+
|
|
13
|
+
export function updateInitConfig(updatedConfig: MoEInitConfig) {
|
|
14
|
+
initConfig = updatedConfig;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function getInitConfig(): MoEInitConfig {
|
|
18
|
+
return initConfig;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default MoEngageGlobalCache;
|