react-native-moengage 12.4.0 → 12.5.0

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,15 @@
1
+ # 09-02-2026
2
+
3
+ ## 12.5.0
4
+
5
+ - License Update
6
+ - Android
7
+ - Bundling `MoEFireBaseMessagingService` in Plugin's manifest to reduce integration steps for developers using FCM Push.
8
+ - updating `android-bom` to `1.5.1`
9
+ - iOS
10
+ - Added no-code SDK file based initialization
11
+ - `MoEngage-iOS-SDK` version updated to `10.10.0`
12
+
1
13
  # 19-11-2025
2
14
 
3
15
  ## 12.4.0
package/LICENSE.md ADDED
@@ -0,0 +1,12 @@
1
+ Copyright (c) 2026 MoEngage, Inc.
2
+ All rights reserved.
3
+ Use of source code or binaries contained within MoEngage's SDKs is permitted only to enable use of the MoEngage platform by customers of MoEngage. The Licensee may not:
4
+ - permit any third party to use the Software;
5
+ - modify or translate the Software except as otherwise permitted;
6
+ - reverse engineer, decompile, or disassemble the Software;
7
+ - copy the Software, except as expressly provided above; or
8
+ - remove or obscure any proprietary rights notices or labels on the Software.
9
+ - Licensee may not transfer the Software or any rights under this Agreement without the Licensor's prior written consent.
10
+ - MoEngage owns the Software and all intellectual property rights embodied therein, including copyrights and valuable trade secrets embodied in the Software. The Licensee shall not alter or remove this copyright notice.
11
+
12
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF THE USER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -13,16 +13,25 @@ Pod::Spec.new do |s|
13
13
  s.authors = "MoEngage Inc."
14
14
  s.source = {:file => './' }
15
15
  s.platforms = { :ios => "13.0", :tvos => "13.0" }
16
- s.source_files = 'iOS/MoEReactBridge/**/*.{h,m,mm}'
17
- s.public_header_files = 'iOS/MoEReactBridge/{MoEngageInitializer,MoEngageReactSDKInitializationConfig,MoEngageReactUtils}.h'
16
+ s.source_files = 'iOS/MoEReactBridge/**/*.{h,m,mm,swift}'
17
+
18
+ headers = [
19
+ 'MoEngageInitializer',
20
+ 'MoEngageReactSDKInitializationConfig',
21
+ 'MoEngageReactUtils',
22
+ 'MoEReactNativeHandler',
23
+ 'MoEngageReactPluginInfo'
24
+ ]
25
+ s.public_header_files = "iOS/MoEReactBridge/{#{headers.join(',')}}.h"
18
26
  s.weak_framework = 'UserNotifications'
19
27
  s.dependency 'React'
20
- s.dependency 'MoEngagePluginBase','6.7.0'
28
+ s.dependency 'MoEngagePluginBase','6.8.0'
21
29
  s.ios.dependency 'MoEngage-iOS-SDK/RichNotification'
22
30
 
23
31
  s.prepare_command = <<-CMD
24
32
  echo // Generated file, do not edit > iOS/MoEReactBridge/MoEngageReactPluginInfo.h
25
33
  echo "#define MOE_REACT_PLUGIN_VERSION @\\"#{package["version"]}\\"" >> iOS/MoEReactBridge/MoEngageReactPluginInfo.h
34
+ echo "#define MOE_REACT_PLUGIN_NAME @\\"react_native\\"" >> iOS/MoEReactBridge/MoEngageReactPluginInfo.h
26
35
  CMD
27
36
 
28
37
 
@@ -7,8 +7,8 @@ repositories {
7
7
 
8
8
  ext {
9
9
  // MoEngage Versions
10
- moengageNativeBOMVersion = "1.1.1"
11
- moengagePluginBaseBOMVersion = "1.1.0"
10
+ moengageNativeBOMVersion = "1.5.1"
11
+ moengagePluginBaseBOMVersion = "1.2.1"
12
12
 
13
13
  // AndroidX Support Libraries Versions
14
14
  androidXCore = "1.15.0"
@@ -2,7 +2,14 @@
2
2
  package="com.moengage.react">
3
3
 
4
4
  <application>
5
-
5
+ <service
6
+ android:name="com.moengage.firebase.MoEFireBaseMessagingService"
7
+ android:priority="-1"
8
+ android:exported="false">
9
+ <intent-filter>
10
+ <action android:name="com.google.firebase.MESSAGING_EVENT" />
11
+ </intent-filter>
12
+ </service>
6
13
  </application>
7
14
 
8
15
  </manifest>
@@ -9,8 +9,8 @@
9
9
  #import <Foundation/Foundation.h>
10
10
  #import <UIKit/UIKit.h>
11
11
  #import <React/RCTEventEmitter.h>
12
- #import "MoEReactEventDispatcher.h"
13
12
 
13
+ @protocol MoEReactEventDispatcher;
14
14
 
15
15
  @interface MoEReactNativeHandler : NSObject
16
16
  +(instancetype)sharedInstance;
@@ -6,9 +6,11 @@
6
6
  //
7
7
 
8
8
  #import <Foundation/Foundation.h>
9
+ #import "MoEReactEventDispatcher.h"
9
10
  #import "MoEReactNativeHandler.h"
10
11
  #import "MoEngageReactUtils.h"
11
12
  #import "MoEngageReactConstants.h"
13
+ #import "MoEngageReactPluginInfo.h"
12
14
 
13
15
  @import MoEngagePluginBase;
14
16
 
@@ -35,6 +37,11 @@
35
37
  -(void)initialize:(NSString *)payload {
36
38
  NSDictionary* jsonPayload = [MoEngageReactUtils getJSONRepresentation:payload];
37
39
  [[MoEngagePluginBridge sharedInstance] pluginInitialized:jsonPayload];
40
+ if (NSClassFromString(@"MoEngageAppDelegate")) {
41
+ // ignore react native integration info tracking for expo
42
+ return;
43
+ }
44
+ [[[MoEngagePlugin alloc] init] trackPluginInfo:MOE_REACT_PLUGIN_NAME version:MOE_REACT_PLUGIN_VERSION];
38
45
  }
39
46
 
40
47
  #pragma mark- Set AppStatus
@@ -50,8 +50,6 @@ NS_ASSUME_NONNULL_BEGIN
50
50
  /// @param ractConfig Additional MoEngageReactSDKDefaultInitializationConfig.
51
51
  - (void)initializeDefaultInstanceWithAdditionalReactConfig:(MoEngageReactSDKDefaultInitializationConfig*)ractConfig;
52
52
 
53
- /// Intenal method, not for public use.
54
- - (void)setPluginBridgeDelegate: (NSString*)identifier;
55
53
  @end
56
54
 
57
55
  NS_ASSUME_NONNULL_END
@@ -33,14 +33,12 @@
33
33
  - (void)initializeDefaultSDKConfig:(MoEngageSDKConfig*)sdkConfig andLaunchOptions:(NSDictionary*)launchOptions{
34
34
  MoEngagePlugin *plugin = [[MoEngagePlugin alloc] init];
35
35
  [plugin initializeDefaultInstanceWithSdkConfig:sdkConfig launchOptions:launchOptions];
36
- [self commonSetUp:plugin identifier:sdkConfig.appId];
37
36
  }
38
37
 
39
38
  - (void)initializeDefaultSDKConfigWithState:(MoEngageSDKConfig *)sdkConfig withSDKState:(MoEngageSDKState)sdkState andLaunchOptions:(NSDictionary*)launchOptions{
40
39
 
41
40
  MoEngagePlugin *plugin = [[MoEngagePlugin alloc] init];
42
41
  [plugin initializeDefaultInstanceWithSdkConfig:sdkConfig sdkState:sdkState launchOptions:launchOptions];
43
- [self commonSetUp: plugin identifier:sdkConfig.appId];
44
42
  }
45
43
 
46
44
  - (void)initializeInstance:(MoEngageReactSDKInitializationConfig*)reactConfig {
@@ -51,16 +49,11 @@
51
49
  config.isDefaultInstance = reactConfig.isDefaultInstance;
52
50
  MoEngagePlugin *plugin = [[MoEngagePlugin alloc] init];
53
51
  [plugin initializeInstanceWithConfig:config];
54
- [self commonSetUp: plugin identifier:config.sdkConfig.appId];
55
52
  }
56
53
 
57
54
  - (void)initializeDefaultInstanceWithAdditionalConfig:(MoEngageSDKDefaultInitializationConfig*)config {
58
55
  MoEngagePlugin* plugin = [[MoEngagePlugin alloc] init];
59
56
  MoEngageSDKConfig* sdkConfig = [plugin initializeDefaultInstanceWithAdditionalConfig:config];
60
- if (!sdkConfig) {
61
- return;
62
- }
63
- [self commonSetUp:plugin identifier:sdkConfig.appId];
64
57
  }
65
58
 
66
59
  - (void)initializeDefaultInstanceWithAdditionalReactConfig:(MoEngageReactSDKDefaultInitializationConfig*)ractConfig {
@@ -70,14 +63,4 @@
70
63
  [self initializeDefaultInstanceWithAdditionalConfig:config];
71
64
  }
72
65
 
73
- #pragma mark- Utils
74
-
75
- - (void)commonSetUp:(MoEngagePlugin *)plugin identifier:(NSString*)identifier {
76
- [plugin trackPluginInfo: kReactNative version:MOE_REACT_PLUGIN_VERSION];
77
- [self setPluginBridgeDelegate:identifier];
78
- }
79
-
80
- - (void)setPluginBridgeDelegate: (NSString*)identifier {
81
- [[MoEReactNativeHandler sharedInstance] setPluginBridgeDelegate:identifier];
82
- }
83
66
  @end
@@ -8,8 +8,6 @@
8
8
 
9
9
  #import <Foundation/Foundation.h>
10
10
 
11
- extern NSString* const kReactNative;
12
-
13
11
  //Info.plist keys
14
12
  extern NSString* const kMoEngage;
15
13
  extern NSString* const kAppId;
@@ -8,8 +8,6 @@
8
8
 
9
9
  #import "MoEngageReactConstants.h"
10
10
 
11
- NSString* const kReactNative = @"react_native";
12
-
13
11
  // Info.plist Keys
14
12
  NSString* const kMoEngage = @"MoEngage";
15
13
  NSString* const kAppId = @"MoEngage_APP_ID";
@@ -0,0 +1,27 @@
1
+ //
2
+ // MoEngageReactNative.swift
3
+ // ReactNativeMoEngage
4
+ //
5
+ // Created by Soumya Mahunt on 27/11/25.
6
+ // Copyright © 2025 MoEngage. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+ import MoEngageSDK
11
+ import MoEngagePluginBase
12
+
13
+ @objc
14
+ class MoEngageReactNative: NSObject, MoEngageModule.Item {
15
+ static func getInfo(sdkInstance: MoEngageSDKInstance) -> MoEngageModule.Info {
16
+ return .init(name: MOE_REACT_PLUGIN_NAME, version: MOE_REACT_PLUGIN_VERSION)
17
+ }
18
+
19
+ static func process(event: MoEngageModule.Event, sdkInstance: MoEngageSDKInstance) {
20
+ switch event {
21
+ case .`init`:
22
+ MoEReactNativeHandler.sharedInstance().setPluginBridgeDelegate(sdkInstance.sdkConfig.appId)
23
+ default:
24
+ break
25
+ }
26
+ }
27
+ }
@@ -1,2 +1,3 @@
1
1
  // Generated file, do not edit
2
2
  #define MOE_REACT_PLUGIN_VERSION @"9.0.0"
3
+ #define MOE_REACT_PLUGIN_NAME @"react_native"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-moengage",
3
- "version": "12.4.0",
3
+ "version": "12.5.0",
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
6
  "files": [
@@ -34,7 +34,7 @@
34
34
  "contributors": [
35
35
  "MoEngage <mobiledevs@moengage.com>"
36
36
  ],
37
- "license": "SEE LICENSE IN LICENSE.txt",
37
+ "license": "SEE LICENSE IN LICENSE.md",
38
38
  "devDependencies": {
39
39
  "react-native": "0.73.0",
40
40
  "@types/jest": "^29.5.0",
package/LICENSE.txt DELETED
@@ -1,8 +0,0 @@
1
- The Licensee desires to conduct a technical trial (hereafter referred to as the "Trial") or deployment of the source code or binaries contained within MoEngage SDK (“Software”) under a limited license from the Licensor.
2
-
3
-
4
- The Licensee may not modify: (i) permit any third party to use the Software; (ii) modify or translate the Software except as otherwise permitted; (iii) reverse engineer, decompile, or disassemble the Software; (iv) copy the Software, except as expressly provided above; or (vi) remove or obscure any proprietary rights notices or labels on the Software.
5
- Licensee may not transfer the Software or any rights under this Agreement without the Licensor's prior written consent.
6
- MoEngage owns the Software and all intellectual property rights embodied therein, including copyrights and valuable trade secrets embodied in the Software.
7
- The Licensee shall not alter or remove this copyright notice.
8
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF THE USER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.