react-native-radar 4.32.0-beta.0 → 4.33.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.
Files changed (32) hide show
  1. package/android/src/newarch/java/com/radar/RadarModule.kt +2 -29
  2. package/android/src/oldarch/java/com/radar/RadarModule.java +2 -2
  3. package/dist/version.d.ts +1 -1
  4. package/dist/version.js +1 -1
  5. package/ios/RNRadar.h +2 -3
  6. package/ios/RNRadar.mm +2 -18
  7. package/ios/RadarSDK.xcframework/Info.plist +5 -5
  8. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/Radar.h +34 -1
  9. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarInitializeOptions.h +5 -0
  10. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarSDKFraudProtocol.h +2 -0
  11. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarSdkConfiguration.h +2 -0
  12. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarVerifiedDelegate.h +16 -0
  13. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Info.plist +0 -0
  14. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Modules/RadarSDK.swiftmodule/arm64-apple-ios.abi.json +121 -76
  15. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/RadarSDK +0 -0
  16. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/Radar.h +34 -1
  17. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarInitializeOptions.h +5 -0
  18. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarSDKFraudProtocol.h +2 -0
  19. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarSdkConfiguration.h +2 -0
  20. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarVerifiedDelegate.h +16 -0
  21. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Info.plist +0 -0
  22. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Modules/RadarSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +121 -76
  23. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Modules/RadarSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +121 -76
  24. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/RadarSDK +0 -0
  25. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/_CodeSignature/CodeDirectory +0 -0
  26. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/_CodeSignature/CodeResources +19 -19
  27. package/ios/RadarSDKMotion.xcframework/ios-arm64/RadarSDKMotion.framework/Info.plist +0 -0
  28. package/ios/RadarSDKMotion.xcframework/ios-arm64_x86_64-simulator/RadarSDKMotion.framework/Info.plist +0 -0
  29. package/ios/RadarSDKMotion.xcframework/ios-arm64_x86_64-simulator/RadarSDKMotion.framework/_CodeSignature/CodeDirectory +0 -0
  30. package/ios/RadarSDKMotion.xcframework/ios-arm64_x86_64-simulator/RadarSDKMotion.framework/_CodeSignature/CodeResources +1 -1
  31. package/package.json +1 -1
  32. package/src/version.ts +1 -1
@@ -40,12 +40,9 @@ import org.json.JSONObject
40
40
  @ReactModule(name = RadarModule.NAME)
41
41
  class RadarModule(reactContext: ReactApplicationContext) :
42
42
  NativeRadarSpec(reactContext), PermissionListener {
43
- @Volatile
44
- private var isInvalidated = false
45
43
 
46
44
  private val radarReceiver = object : RadarReceiver() {
47
45
  override fun onEventsReceived(context: Context, events: Array<RadarEvent>, user: RadarUser?) {
48
- if (isInvalidated) return
49
46
  val eventBlob = Arguments.createMap().apply {
50
47
  var eventsArray = Arguments.createArray()
51
48
  for (event in events) {
@@ -60,7 +57,6 @@ class RadarModule(reactContext: ReactApplicationContext) :
60
57
  }
61
58
 
62
59
  override fun onLocationUpdated(context: Context, location: Location, user: RadarUser) {
63
- if (isInvalidated) return
64
60
  val eventBlob = Arguments.createMap().apply {
65
61
  putString("location", Radar.jsonForLocation(location).toString())
66
62
  putString("user", user.toJson().toString())
@@ -69,7 +65,6 @@ class RadarModule(reactContext: ReactApplicationContext) :
69
65
  }
70
66
 
71
67
  override fun onClientLocationUpdated(context: Context, location: Location, stopped: Boolean, source: Radar.RadarLocationSource) {
72
- if (isInvalidated) return
73
68
  val eventBlob = Arguments.createMap().apply {
74
69
  putString("location", Radar.jsonForLocation(location).toString())
75
70
  putBoolean("stopped", stopped)
@@ -79,7 +74,6 @@ class RadarModule(reactContext: ReactApplicationContext) :
79
74
  }
80
75
 
81
76
  override fun onError(context: Context, status: Radar.RadarStatus) {
82
- if (isInvalidated) return
83
77
  val eventBlob = Arguments.createMap().apply {
84
78
  putString("status", status.toString())
85
79
  }
@@ -87,7 +81,6 @@ class RadarModule(reactContext: ReactApplicationContext) :
87
81
  }
88
82
 
89
83
  override fun onLog(context: Context, message: String) {
90
- if (isInvalidated) return
91
84
  val eventBlob = Arguments.createMap().apply {
92
85
  putString("message", message)
93
86
  }
@@ -97,7 +90,6 @@ class RadarModule(reactContext: ReactApplicationContext) :
97
90
 
98
91
  private val radarInAppMessageReceiver = object : RadarInAppMessageReceiver {
99
92
  override fun onNewInAppMessage(message: RadarInAppMessage) {
100
- if (isInvalidated) return
101
93
  try {
102
94
  val eventBlob = Arguments.createMap().apply {
103
95
  putMap("inAppMessage", RadarUtils.mapForJson(JSONObject(message.toJson())))
@@ -109,7 +101,6 @@ class RadarModule(reactContext: ReactApplicationContext) :
109
101
  }
110
102
 
111
103
  override fun onInAppMessageDismissed(message: RadarInAppMessage) {
112
- if (isInvalidated) return
113
104
  try {
114
105
  val eventBlob = Arguments.createMap().apply {
115
106
  putMap("inAppMessage", RadarUtils.mapForJson(JSONObject(message.toJson())))
@@ -121,7 +112,6 @@ class RadarModule(reactContext: ReactApplicationContext) :
121
112
  }
122
113
 
123
114
  override fun onInAppMessageButtonClicked(message: RadarInAppMessage) {
124
- if (isInvalidated) return
125
115
  try {
126
116
  val eventBlob = Arguments.createMap().apply {
127
117
  putMap("inAppMessage", RadarUtils.mapForJson(JSONObject(message.toJson())))
@@ -135,7 +125,6 @@ class RadarModule(reactContext: ReactApplicationContext) :
135
125
 
136
126
  private val radarVerifiedReceiver = object : RadarVerifiedReceiver() {
137
127
  override fun onTokenUpdated(context: Context, token: RadarVerifiedLocationToken) {
138
- if (isInvalidated) return
139
128
  val eventBlob = Arguments.createMap().apply {
140
129
  putString("token", token.toJson().toString())
141
130
  }
@@ -151,26 +140,10 @@ class RadarModule(reactContext: ReactApplicationContext) :
151
140
  return NAME
152
141
  }
153
142
 
154
- override fun invalidate() {
155
- isInvalidated = true
156
-
157
- // Detach from the process-level Radar singleton so this stale module
158
- // instance stops receiving callbacks after its JS runtime is gone.
159
- Radar.setReceiver(null)
160
-
161
- try {
162
- Radar.setVerifiedReceiver(null)
163
- } catch (e: Exception) {
164
- Log.e(TAG, "Error detaching verified receiver", e)
165
- }
166
-
167
- super.invalidate()
168
- }
169
-
170
143
  override fun initialize(publishableKey: String, fraud: Boolean, options: ReadableMap?): Unit {
171
144
  val editor = reactApplicationContext.getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit()
172
145
  editor.putString("x_platform_sdk_type", "ReactNative")
173
- editor.putString("x_platform_sdk_version", "4.32.0-beta.0")
146
+ editor.putString("x_platform_sdk_version", "4.33.0")
174
147
  editor.apply()
175
148
 
176
149
  Radar.initialize(reactApplicationContext, publishableKey, radarReceiver, Radar.RadarLocationServicesProvider.GOOGLE, fraud, null, radarInAppMessageReceiver, currentActivity)
@@ -182,7 +155,7 @@ class RadarModule(reactContext: ReactApplicationContext) :
182
155
  override fun initializeWithAuthToken(authToken: String, fraud: Boolean, options: ReadableMap?): Unit {
183
156
  val editor = reactApplicationContext.getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit()
184
157
  editor.putString("x_platform_sdk_type", "ReactNative")
185
- editor.putString("x_platform_sdk_version", "4.32.0-beta.0")
158
+ editor.putString("x_platform_sdk_version", "4.33.0")
186
159
  editor.apply()
187
160
 
188
161
  val initOptions = io.radar.sdk.RadarInitializeOptions.builder()
@@ -102,7 +102,7 @@ public class RadarModule extends ReactContextBaseJavaModule implements Permissio
102
102
  this.fraud = fraud;
103
103
  SharedPreferences.Editor editor = getReactApplicationContext().getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit();
104
104
  editor.putString("x_platform_sdk_type", "ReactNative");
105
- editor.putString("x_platform_sdk_version", "4.32.0-beta.0");
105
+ editor.putString("x_platform_sdk_version", "4.33.0");
106
106
  editor.apply();
107
107
  Radar.initialize(getReactApplicationContext(), publishableKey, receiver, Radar.RadarLocationServicesProvider.GOOGLE, fraud, null, inAppMessageReceiver, getCurrentActivity());
108
108
  if (fraud) {
@@ -115,7 +115,7 @@ public class RadarModule extends ReactContextBaseJavaModule implements Permissio
115
115
  this.fraud = fraud;
116
116
  SharedPreferences.Editor editor = getReactApplicationContext().getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit();
117
117
  editor.putString("x_platform_sdk_type", "ReactNative");
118
- editor.putString("x_platform_sdk_version", "4.32.0-beta.0");
118
+ editor.putString("x_platform_sdk_version", "4.33.0");
119
119
  editor.apply();
120
120
 
121
121
  io.radar.sdk.RadarInitializeOptions.Builder builder = io.radar.sdk.RadarInitializeOptions.builder()
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "4.32.0-beta.0";
1
+ export declare const VERSION = "4.33.0";
package/dist/version.js CHANGED
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // This file contains the version of the react-native-radar package
5
5
  // It should be updated to match the version in package.json
6
- exports.VERSION = '4.32.0-beta.0';
6
+ exports.VERSION = '4.33.0';
package/ios/RNRadar.h CHANGED
@@ -6,12 +6,11 @@
6
6
 
7
7
  #import <RadarSDK/RadarSDK.h>
8
8
  #import <React/RCTBridgeModule.h>
9
- #import <React/RCTInvalidating.h>
10
9
 
11
10
  #ifdef RCT_NEW_ARCH_ENABLED
12
- @interface RNRadar : NativeRadarSpecBase <NativeRadarSpec, RadarDelegate, CLLocationManagerDelegate, RadarVerifiedDelegate, RadarInAppMessageProtocol, RCTInvalidating>
11
+ @interface RNRadar : NativeRadarSpecBase <NativeRadarSpec, RadarDelegate, CLLocationManagerDelegate, RadarVerifiedDelegate, RadarInAppMessageProtocol>
13
12
  #else
14
- @interface RNRadar : RCTEventEmitter <RCTBridgeModule, RadarDelegate, CLLocationManagerDelegate, RadarVerifiedDelegate, RadarInAppMessageProtocol, RCTInvalidating>
13
+ @interface RNRadar : RCTEventEmitter <RCTBridgeModule, RadarDelegate, CLLocationManagerDelegate, RadarVerifiedDelegate, RadarInAppMessageProtocol>
15
14
  #endif
16
15
 
17
16
  @end
package/ios/RNRadar.mm CHANGED
@@ -55,22 +55,6 @@ RCT_EXPORT_MODULE()
55
55
  hasListeners = NO;
56
56
  }
57
57
 
58
- - (void)invalidate {
59
- #ifdef RCT_NEW_ARCH_ENABLED
60
- jsEventEmitterReady = NO;
61
- #endif
62
- hasListeners = NO;
63
-
64
- // Detach from the process-level Radar singleton so a stale module
65
- // instance doesn't continue to receive events.
66
- [Radar setDelegate:nil];
67
- [Radar setVerifiedDelegate:nil];
68
- [Radar setInAppMessageDelegate:nil];
69
-
70
- locationManager.delegate = nil;
71
- [[NSNotificationCenter defaultCenter] removeObserver:self];
72
- }
73
-
74
58
  #ifdef RCT_NEW_ARCH_ENABLED
75
59
  - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper {
76
60
  [super setEventEmitterCallback:eventEmitterCallbackWrapper];
@@ -233,7 +217,7 @@ RCT_EXPORT_MODULE()
233
217
  RCT_EXPORT_METHOD(initialize:(NSString *)publishableKey fraud:(BOOL)fraud options:(NSDictionary *)options) {
234
218
  _publishableKey = publishableKey;
235
219
  [[NSUserDefaults standardUserDefaults] setObject:@"ReactNative" forKey:@"radar-xPlatformSDKType"];
236
- [[NSUserDefaults standardUserDefaults] setObject:@"4.32.0-beta.0" forKey:@"radar-xPlatformSDKVersion"];
220
+ [[NSUserDefaults standardUserDefaults] setObject:@"4.33.0" forKey:@"radar-xPlatformSDKVersion"];
237
221
 
238
222
  RadarInitializeOptions *radarOptions = [[RadarInitializeOptions alloc] init];
239
223
  if (options != nil) {
@@ -256,7 +240,7 @@ RCT_EXPORT_METHOD(initialize:(NSString *)publishableKey fraud:(BOOL)fraud option
256
240
  RCT_EXPORT_METHOD(initializeWithAuthToken:(NSString *)authToken fraud:(BOOL)fraud options:(NSDictionary *)options) {
257
241
  _publishableKey = nil;
258
242
  [[NSUserDefaults standardUserDefaults] setObject:@"ReactNative" forKey:@"radar-xPlatformSDKType"];
259
- [[NSUserDefaults standardUserDefaults] setObject:@"4.32.0-beta.0" forKey:@"radar-xPlatformSDKVersion"];
243
+ [[NSUserDefaults standardUserDefaults] setObject:@"4.33.0" forKey:@"radar-xPlatformSDKVersion"];
260
244
  RadarInitializeOptions *radarOptions = [[RadarInitializeOptions alloc] init];
261
245
  if (options != nil) {
262
246
  id silentPushValue = options[@"silentPush"];
@@ -8,32 +8,32 @@
8
8
  <key>BinaryPath</key>
9
9
  <string>RadarSDK.framework/RadarSDK</string>
10
10
  <key>LibraryIdentifier</key>
11
- <string>ios-arm64</string>
11
+ <string>ios-arm64_x86_64-simulator</string>
12
12
  <key>LibraryPath</key>
13
13
  <string>RadarSDK.framework</string>
14
14
  <key>SupportedArchitectures</key>
15
15
  <array>
16
16
  <string>arm64</string>
17
+ <string>x86_64</string>
17
18
  </array>
18
19
  <key>SupportedPlatform</key>
19
20
  <string>ios</string>
21
+ <key>SupportedPlatformVariant</key>
22
+ <string>simulator</string>
20
23
  </dict>
21
24
  <dict>
22
25
  <key>BinaryPath</key>
23
26
  <string>RadarSDK.framework/RadarSDK</string>
24
27
  <key>LibraryIdentifier</key>
25
- <string>ios-arm64_x86_64-simulator</string>
28
+ <string>ios-arm64</string>
26
29
  <key>LibraryPath</key>
27
30
  <string>RadarSDK.framework</string>
28
31
  <key>SupportedArchitectures</key>
29
32
  <array>
30
33
  <string>arm64</string>
31
- <string>x86_64</string>
32
34
  </array>
33
35
  <key>SupportedPlatform</key>
34
36
  <string>ios</string>
35
- <key>SupportedPlatformVariant</key>
36
- <string>simulator</string>
37
37
  </dict>
38
38
  </array>
39
39
  <key>CFBundlePackageType</key>
@@ -284,6 +284,15 @@ typedef void (^_Nonnull RadarGeocodeCompletionHandler)(RadarStatus status, NSArr
284
284
  */
285
285
  typedef void (^_Nonnull RadarIPGeocodeCompletionHandler)(RadarStatus status, RadarAddress *_Nullable address, BOOL proxy);
286
286
 
287
+ /**
288
+ Called when an IP geocoding request succeeds, fails, or times out.
289
+
290
+ Receives the request status and, if successful, the geocoding result (a partial address) and a boolean indicating whether the IP address is a known proxy. Also receives the underlying NSError when the failure originated from a caught network, parse, or exception error — forward it to an error collector (Sentry, Crashlytics, etc.) to capture diagnostics.
291
+
292
+ @see https://radar.com/documentation/api#ip-geocode
293
+ */
294
+ typedef void (^_Nonnull RadarIPGeocodeWithErrorCompletionHandler)(RadarStatus status, RadarAddress *_Nullable address, BOOL proxy, NSError *_Nullable error);
295
+
287
296
  /**
288
297
  Called when an address validation request succeeds, fails, or times out.
289
298
 
@@ -408,6 +417,20 @@ typedef void (^_Nonnull RadarIndoorsScanCompletionHandler)(NSString *_Nullable r
408
417
  */
409
418
  + (NSString *_Nullable)getUserId;
410
419
 
420
+ /**
421
+ Sets the user's preferred language. Pass a BCP-47 language tag like `"en"` or `"es-PR"`.
422
+
423
+ @param userLanguage The user's preferred language. If `nil`, the previous `userLanguage` will be cleared.
424
+ */
425
+ + (void)setUserLanguage:(NSString *_Nullable)userLanguage;
426
+
427
+ /**
428
+ Returns the current `userLanguage`.
429
+
430
+ @return The current `userLanguage`.
431
+ */
432
+ + (NSString *_Nullable)getUserLanguage;
433
+
411
434
  /**
412
435
  Sets an optional description for the user, displayed in the dashboard.
413
436
 
@@ -1300,7 +1323,17 @@ typedef void (^_Nonnull RadarIndoorsScanCompletionHandler)(NSString *_Nullable r
1300
1323
 
1301
1324
  @see https://radar.com/documentation/api#ip-geocode
1302
1325
  */
1303
- + (void)ipGeocodeWithCompletionHandler:(RadarIPGeocodeCompletionHandler)completionHandler NS_SWIFT_NAME(ipGeocode(completionHandler:));
1326
+ + (void)ipGeocodeWithCompletionHandler:(RadarIPGeocodeCompletionHandler)completionHandler
1327
+ __attribute__((deprecated("Use ipGeocodeWithErrorCompletionHandler: to also receive the underlying NSError on network/parse errors.")));
1328
+
1329
+ /**
1330
+ Geocodes the device's current IP address, converting IP address to partial address. The completion handler also receives the underlying NSError when the failure originated from a caught network, parse, or exception error — forward it to an error collector (Sentry, Crashlytics, etc.) to capture diagnostics.
1331
+
1332
+ @param completionHandler A completion handler.
1333
+
1334
+ @see https://radar.com/documentation/api#ip-geocode
1335
+ */
1336
+ + (void)ipGeocodeWithErrorCompletionHandler:(RadarIPGeocodeWithErrorCompletionHandler)completionHandler NS_SWIFT_NAME(ipGeocode(completionHandler:));
1304
1337
 
1305
1338
 
1306
1339
  /**
@@ -21,6 +21,11 @@
21
21
  /// clamped to the range 1…300.
22
22
  @property (assign, nonatomic) NSTimeInterval networkTimeoutInterval;
23
23
 
24
+ /// Minimum interval in seconds between deliveries of `RadarVerifiedDelegate.didChangeIP()`.
25
+ /// Default 10 seconds. Set to 0 to disable throttling (deliver every detected change).
26
+ /// Negative or non-finite values fall back to the default.
27
+ @property (assign, nonatomic) NSTimeInterval ipChangeDebounceInterval;
28
+
24
29
  - (NSDictionary *_Nonnull)dictionaryValue;
25
30
  - (instancetype _Nonnull)initWithDict:(NSDictionary *_Nullable)dict;
26
31
 
@@ -21,6 +21,8 @@ typedef void (^RadarFraudPayloadCallback)(NSDictionary<NSString *, id> *_Nullabl
21
21
 
22
22
  - (void)getFraudPayloadWithOptions:(NSDictionary<NSString *, id> *)options completionHandler:(RadarFraudPayloadCallback)completionHandler;
23
23
 
24
+ - (void)setSharingDidChangeHandler:(nullable void (^)(BOOL sharing))handler;
25
+
24
26
  @end
25
27
 
26
28
  NS_ASSUME_NONNULL_END
@@ -37,6 +37,8 @@ NS_ASSUME_NONNULL_BEGIN
37
37
  - (BOOL)skipForegroundCheck;
38
38
  - (BOOL)useOfflineRTOUpdates;
39
39
  - (BOOL)offlineEventGenerationEnabled;
40
+ - (BOOL)useSwiftLocationManager;
41
+ - (BOOL)startUpdatesWhileInUse;
40
42
  - (NSArray<RadarRemoteTrackingOptions *> *_Nullable)remoteTrackingOptions;
41
43
  - (instancetype)initWithDict:(NSDictionary *_Nullable)dict;
42
44
  - (NSDictionary *)dictionaryValue;
@@ -26,6 +26,22 @@ NS_ASSUME_NONNULL_BEGIN
26
26
  */
27
27
  - (void)didUpdateToken:(RadarVerifiedLocationToken *_Nonnull)token NS_SWIFT_NAME(didUpdateToken(_:));
28
28
 
29
+ /**
30
+ Tells the delegate that the device's IP address changed while IP change monitoring is active.
31
+
32
+ @see https://radar.com/documentation/fraud
33
+ */
34
+ - (void)didChangeIP NS_SWIFT_NAME(didChangeIP());
35
+
36
+ /**
37
+ Tells the delegate that the device's screen sharing state changed.
38
+
39
+ @param sharing The current screen sharing state.
40
+
41
+ @see https://radar.com/documentation/fraud
42
+ */
43
+ - (void)didChangeSharing:(BOOL)sharing NS_SWIFT_NAME(didChangeSharing(_:));
44
+
29
45
  @end
30
46
 
31
47
  NS_ASSUME_NONNULL_END