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 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
@@ -22,7 +22,7 @@ ext {
22
22
  //dependency version
23
23
  moengageCoreVersion = "12.8.00"
24
24
  moengageInAppVersion = "6.7.0"
25
- basePluginVersion = "3.3.1"
25
+ basePluginVersion = "3.3.3"
26
26
  //build versions
27
27
  minimumVersion = 21
28
28
  targetVersion = 33
package/package.json CHANGED
@@ -1,8 +1,19 @@
1
1
  {
2
2
  "name": "react-native-moengage",
3
- "version": "8.5.0",
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
- handleEventBroadcast(_eventNames[i], eventBroadcastNames[i]);
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?: MoEInitConfig) {
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
- console.log("Will track whether it is a fresh install or update.");
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
- showError("trackEvent: properties must of MoEProperties type");
190
+ MoEngageLogger.warn("trackEvent: properties must of MoEProperties type");
186
191
  return;
187
192
  }
188
193
 
189
- console.log("trackEvent with properties", properties);
190
- let payload= getMoEPropertiesJson(properties, eventName, moeAppId);
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
- console.log("Will set unique ID: " + uniqueId);
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
- console.log("Will set alias: " + alias);
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
- console.log("Will set username: " + userName);
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
- console.log("Will set first name: " + firstName);
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
- console.log("Will set last name: " + lastName);
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
- console.log("Will set email-id " + emailId);
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
- console.log("Will set Mobile Number: " + mobileNumber);
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
- console.log("Will set birthday: " + birthday);
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
- console.log("Will set gender: " + gender);
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
- showError("setUserLocation: location must of type MoEGeoLocation");
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
- console.log(
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
- showError(
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
- console.log("Will logout user");
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
- console.log("Will try to show in-app.");
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
- showError(
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
- showError(
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
- showError(
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
- showError(
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
- console.log("Will process push token");
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
- console.log("This api is not supported on iOS platform.");
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
- console.log("Will process push payload.");
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
- console.log("This api is not supported on iOS platform.");
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
- console.log("Will registerForPush");
591
+ MoEngageLogger.verbose("Will registerForPush");
598
592
  if (Platform.OS == PLATFORM_ANDROID) {
599
- console.log("This api is not supported on android platform.");
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
- console.log("Will disableInbox");
604
+ MoEngageLogger.verbose("Will disableInbox");
611
605
  if (Platform.OS == PLATFORM_ANDROID) {
612
- console.log("This api is not supported on android platform.");
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
- console.log("Will opt out data tracking");
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
- console.log("Will process push-kit push token");
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
- console.log("This api is not supported on iOS platform.");
647
+ MoEngageLogger.debug("This api is not supported on iOS platform.");
654
648
  }
655
649
  },
656
650
 
657
651
  enableSdk: function () {
658
- console.log("Will enable SDK");
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
- console.log("Will disable SDK");
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
- console.log("Will process screen rotation.");
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
- console.log("Will enable advertising-id tracking");
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
- console.log("Will disable advertising-id tracking");
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
- console.log("Will enable android-id tracking");
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
- console.log("Will disable android-id tracking");
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
- console.log("Will track permission response");
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
- console.log("Will setup notification");
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
- console.log("Will navigate to settings");
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
- console.log("Will request push permission.");
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
- console.log("Will increment push permission request count");
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
- console.log("Will enable device id tracking");
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
- console.log("Will disable device id tracking");
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 (pushConfig: MoEPushConfig) {
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(MoEPushConfig.defaultConfig());
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
- console.warn("MoEProperties->addAttribute: invalid attribute");
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
- console.warn("MoEProperties->addDateAttribute: invalid date attribute");
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
- console.warn("MoEGeoLocation->addLocationAttribute: invalid coordinates");
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 { ACTION_TYPE, APP_ID, ATTRIBUTES, FORMATTED_CAMPAIGN_ID, MOE_CAMPAIGN_CONTEXT, MOE_CAMPAIGN_ID, MOE_CAMPAIGN_NAME, MOE_CUSTOM_ACTION, MOE_CUSTOM_ACTION_OBJ_ERROR, MOE_DISMISSINTERVAL, MOE_IN_APP_OBJECT_ERROR, MOE_IS_CANCELLABLE, MOE_KEY_VALUE_PAIR, MOE_NAVIGATION, MOE_NAVIGATION_OBJ_ERROR, MOE_NAVIGATION_TYPE, MOE_PAYLOAD, MOE_PLATFORM, MOE_SELF_HANDLED, MOE_SELF_HANDLED_OBJ_ERROR, MOE_NAVIGATION_VALUE, MOE_WIDGET_ID } from "../utils/MoEConstants";
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
- console.log(error?.message);
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
- console.log("getMoECampaignData(): Payload: ", json)
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
- console.log("getMoESelfHandledCampaignData(): Payload: ", json);
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
- console.log(error?.message);
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
- console.log(error?.message);
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
- console.log(error?.message);
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
- console.log(error?.message);
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
- console.log(error?.message);
58
+ MoEngageLogger.error(error?.message);
58
59
  return false;
59
60
  }
60
61
 
@@ -1,4 +1,3 @@
1
- import {MoEngagePermissionType} from "../models/MoEngagePermissionType";
2
1
  import MoEngagePersimissionResultData from "../models/MoEngagePersimissionResultData";
3
2
  import {MOE_PERMISSION_STATE, MOE_PERMISSION_TYPE, MOE_PLATFORM} from "../utils/MoEConstants";
4
3
 
@@ -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
- console.error(error.message);
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
+ }
@@ -1,4 +1,4 @@
1
- import { getAppIdJson, getOptOutTrackingJson } from "../utils/MoEJsonBuilder";
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
- console.error(error.message);
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
- console.log("getSelfHandledJson(): payload json: ", json)
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?: MoEInitConfig) {
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;