react-native-shield-fraud-plugin 2.0.0 → 2.1.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.
@@ -99,5 +99,5 @@ dependencies {
99
99
  implementation "com.facebook.react:react-native:+"
100
100
 
101
101
  // Shield Fraud SDK 2.x — factory-based init, callback-based device intelligence
102
- implementation 'com.shield.android:shield-fraud:2.4.0'
102
+ implementation 'com.shield.android:shield-fraud:2.5.0'
103
103
  }
@@ -9,7 +9,7 @@ var _reactNative = require("react-native");
9
9
  * Resolve the native module through TurboModuleRegistry (New Architecture)
10
10
  * with a fallback to NativeModules bridge (Old Architecture).
11
11
  */
12
- const ShieldFraudPluginNativeModule = _reactNative.TurboModuleRegistry.get("ShieldFraudPlugin") ?? _reactNative.NativeModules.ShieldFraudPlugin;
12
+ const ShieldFraudPluginNativeModule = _reactNative.TurboModuleRegistry.get('ShieldFraudPlugin') ?? _reactNative.NativeModules.ShieldFraudPlugin;
13
13
 
14
14
  /**
15
15
  * Enum representing the log levels for ShieldFraud.
@@ -83,7 +83,7 @@ class ShieldFraud {
83
83
  // blockScreenRecording is Android-only; iOS native ignores the value.
84
84
  // Always send a real boolean — the Old Arch bridge cannot handle null
85
85
  // for boolean parameters (causes NPE in ReadableNativeArray.getBoolean).
86
- const blockScreenRecording = _reactNative.Platform.OS === "android" ? config.blockScreenRecording ?? false : false;
86
+ const blockScreenRecording = _reactNative.Platform.OS === 'android' ? config.blockScreenRecording ?? false : false;
87
87
 
88
88
  // Call the native method to initialize ShieldFraud with the provided configuration.
89
89
  await ShieldFraud.PlatformWrapper.initShield(config.siteID, config.secretKey, isOptimizedListener, config.blockedDialog ?? null, logLevel, environmentInfo, blockScreenRecording);
@@ -98,8 +98,8 @@ class ShieldFraud {
98
98
  * The cross-platform name and the version is fetched from package.json.
99
99
  */
100
100
  static setCrossPlatformParameters() {
101
- const crossPlatformName = "react-native-shield-fraud-plugin";
102
- const crossPlatformVersion = "2.0.0";
101
+ const crossPlatformName = 'react-native-shield-fraud-plugin';
102
+ const crossPlatformVersion = '2.1.0';
103
103
  ShieldFraud.PlatformWrapper.setCrossPlatformParameters(crossPlatformName, crossPlatformVersion);
104
104
  }
105
105
 
@@ -110,14 +110,14 @@ class ShieldFraud {
110
110
  */
111
111
  static listeners(callbacks) {
112
112
  // Listen for success events and invoke the onSuccess callback if provided.
113
- ShieldFraud.eventEmitter.addListener("success", data => {
113
+ ShieldFraud.eventEmitter.addListener('success', data => {
114
114
  if (callbacks !== null && callbacks !== void 0 && callbacks.onSuccess) {
115
115
  callbacks.onSuccess(data);
116
116
  }
117
117
  });
118
118
 
119
119
  // Listen for error events and invoke the onFailure callback if provided.
120
- ShieldFraud.eventEmitter.addListener("error", error => {
120
+ ShieldFraud.eventEmitter.addListener('error', error => {
121
121
  if (callbacks !== null && callbacks !== void 0 && callbacks.onFailure) {
122
122
  callbacks.onFailure(error);
123
123
  }
@@ -143,20 +143,19 @@ class ShieldFraud {
143
143
  }
144
144
 
145
145
  /**
146
- * iOS only — checks if the ShieldFraud SDK is ready and invokes the provided
147
- * callback with the readiness state.
146
+ * Checks if the ShieldFraud SDK is ready and invokes the provided callback
147
+ * with the readiness state.
148
148
  *
149
- * On Android (SDK 2.x) device result events fire automatically via the
150
- * Sentinel inside createShieldWithCallback. There is no subscription call
151
- * and no reliable way to intercept the event after the fact, so this method
152
- * is a no-op on Android. Use the `callbacks` parameter of `initShield`
153
- * instead to receive device results on Android.
149
+ * On Android, readiness is approximated by the native initialization state
150
+ * to preserve backward compatibility without reporting ready before init.
154
151
  *
155
152
  * @param callback - A callback function to be invoked with the readiness state.
156
153
  * - `isReady` (boolean): true when the SDK has produced a device result.
157
154
  */
158
155
  static async isSDKready(callback) {
159
- if (_reactNative.Platform.OS !== "ios") {
156
+ if (_reactNative.Platform.OS === 'android') {
157
+ const isInitialized = await this.isShieldInitialized();
158
+ callback(isInitialized);
160
159
  return;
161
160
  }
162
161
  try {
@@ -164,22 +163,22 @@ class ShieldFraud {
164
163
  await new Promise(resolve => setTimeout(resolve, 100));
165
164
  const isInitialized = await this.isShieldInitialized();
166
165
  if (!isInitialized) {
167
- console.log("Shield SDK not initialized:");
166
+ console.log('Shield SDK not initialized:');
168
167
  callback(false);
169
168
  return;
170
169
  }
171
170
  const deviceResultListener = event => {
172
- if (event.status === "isSDKReady") {
173
- ShieldFraud.eventEmitter.removeAllListeners("device_result_state");
171
+ if (event.status === 'isSDKReady') {
172
+ ShieldFraud.eventEmitter.removeAllListeners('device_result_state');
174
173
  callback(true);
175
174
  }
176
175
  };
177
- ShieldFraud.eventEmitter.addListener("device_result_state", deviceResultListener);
176
+ ShieldFraud.eventEmitter.addListener('device_result_state', deviceResultListener);
178
177
 
179
178
  // Trigger the SDK subscription — iOS 1.x requires this explicit call.
180
179
  ShieldFraud.PlatformWrapper.setDeviceResultStateListener();
181
180
  } catch (error) {
182
- console.error("An error occurred:", error);
181
+ console.error('An error occurred:', error);
183
182
  callback(false);
184
183
  }
185
184
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","ShieldFraudPluginNativeModule","TurboModuleRegistry","get","NativeModules","ShieldFraudPlugin","LogLevel","exports","EnvironmentInfo","ShieldFraud","PlatformWrapper","eventEmitter","NativeEventEmitter","initShield","config","callbacks","isOptimizedListener","logLevel","LogLevelNone","environmentInfo","EnvironmentProd","setCrossPlatformParameters","blockScreenRecording","Platform","OS","siteID","secretKey","blockedDialog","listeners","crossPlatformName","crossPlatformVersion","addListener","data","onSuccess","error","onFailure","getSessionId","isShieldInitialized","isSDKready","callback","Promise","resolve","setTimeout","isInitialized","console","log","deviceResultListener","event","status","removeAllListeners","setDeviceResultStateListener","sendAttributes","screenName","sendAttributesWithCallback","reject","result","getLatestDeviceResult","sendDeviceSignature","_default","default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","ShieldFraudPluginNativeModule","TurboModuleRegistry","get","NativeModules","ShieldFraudPlugin","LogLevel","exports","EnvironmentInfo","ShieldFraud","PlatformWrapper","eventEmitter","NativeEventEmitter","initShield","config","callbacks","isOptimizedListener","logLevel","LogLevelNone","environmentInfo","EnvironmentProd","setCrossPlatformParameters","blockScreenRecording","Platform","OS","siteID","secretKey","blockedDialog","listeners","crossPlatformName","crossPlatformVersion","addListener","data","onSuccess","error","onFailure","getSessionId","isShieldInitialized","isSDKready","callback","isInitialized","Promise","resolve","setTimeout","console","log","deviceResultListener","event","status","removeAllListeners","setDeviceResultStateListener","sendAttributes","screenName","sendAttributesWithCallback","reject","result","getLatestDeviceResult","sendDeviceSignature","_default","default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { NativeModules, NativeEventEmitter, Platform, TurboModuleRegistry } from "react-native";
1
+ import { NativeModules, NativeEventEmitter, Platform, TurboModuleRegistry } from 'react-native';
2
2
 
3
3
  /**
4
4
  * Resolve the native module through TurboModuleRegistry (New Architecture)
5
5
  * with a fallback to NativeModules bridge (Old Architecture).
6
6
  */
7
- const ShieldFraudPluginNativeModule = TurboModuleRegistry.get("ShieldFraudPlugin") ?? NativeModules.ShieldFraudPlugin;
7
+ const ShieldFraudPluginNativeModule = TurboModuleRegistry.get('ShieldFraudPlugin') ?? NativeModules.ShieldFraudPlugin;
8
8
 
9
9
  /**
10
10
  * Enum representing the log levels for ShieldFraud.
@@ -82,7 +82,7 @@ class ShieldFraud {
82
82
  // blockScreenRecording is Android-only; iOS native ignores the value.
83
83
  // Always send a real boolean — the Old Arch bridge cannot handle null
84
84
  // for boolean parameters (causes NPE in ReadableNativeArray.getBoolean).
85
- const blockScreenRecording = Platform.OS === "android" ? config.blockScreenRecording ?? false : false;
85
+ const blockScreenRecording = Platform.OS === 'android' ? config.blockScreenRecording ?? false : false;
86
86
 
87
87
  // Call the native method to initialize ShieldFraud with the provided configuration.
88
88
  await ShieldFraud.PlatformWrapper.initShield(config.siteID, config.secretKey, isOptimizedListener, config.blockedDialog ?? null, logLevel, environmentInfo, blockScreenRecording);
@@ -97,8 +97,8 @@ class ShieldFraud {
97
97
  * The cross-platform name and the version is fetched from package.json.
98
98
  */
99
99
  static setCrossPlatformParameters() {
100
- const crossPlatformName = "react-native-shield-fraud-plugin";
101
- const crossPlatformVersion = "2.0.0";
100
+ const crossPlatformName = 'react-native-shield-fraud-plugin';
101
+ const crossPlatformVersion = '2.1.0';
102
102
  ShieldFraud.PlatformWrapper.setCrossPlatformParameters(crossPlatformName, crossPlatformVersion);
103
103
  }
104
104
 
@@ -109,14 +109,14 @@ class ShieldFraud {
109
109
  */
110
110
  static listeners(callbacks) {
111
111
  // Listen for success events and invoke the onSuccess callback if provided.
112
- ShieldFraud.eventEmitter.addListener("success", data => {
112
+ ShieldFraud.eventEmitter.addListener('success', data => {
113
113
  if (callbacks !== null && callbacks !== void 0 && callbacks.onSuccess) {
114
114
  callbacks.onSuccess(data);
115
115
  }
116
116
  });
117
117
 
118
118
  // Listen for error events and invoke the onFailure callback if provided.
119
- ShieldFraud.eventEmitter.addListener("error", error => {
119
+ ShieldFraud.eventEmitter.addListener('error', error => {
120
120
  if (callbacks !== null && callbacks !== void 0 && callbacks.onFailure) {
121
121
  callbacks.onFailure(error);
122
122
  }
@@ -142,20 +142,19 @@ class ShieldFraud {
142
142
  }
143
143
 
144
144
  /**
145
- * iOS only — checks if the ShieldFraud SDK is ready and invokes the provided
146
- * callback with the readiness state.
145
+ * Checks if the ShieldFraud SDK is ready and invokes the provided callback
146
+ * with the readiness state.
147
147
  *
148
- * On Android (SDK 2.x) device result events fire automatically via the
149
- * Sentinel inside createShieldWithCallback. There is no subscription call
150
- * and no reliable way to intercept the event after the fact, so this method
151
- * is a no-op on Android. Use the `callbacks` parameter of `initShield`
152
- * instead to receive device results on Android.
148
+ * On Android, readiness is approximated by the native initialization state
149
+ * to preserve backward compatibility without reporting ready before init.
153
150
  *
154
151
  * @param callback - A callback function to be invoked with the readiness state.
155
152
  * - `isReady` (boolean): true when the SDK has produced a device result.
156
153
  */
157
154
  static async isSDKready(callback) {
158
- if (Platform.OS !== "ios") {
155
+ if (Platform.OS === 'android') {
156
+ const isInitialized = await this.isShieldInitialized();
157
+ callback(isInitialized);
159
158
  return;
160
159
  }
161
160
  try {
@@ -163,22 +162,22 @@ class ShieldFraud {
163
162
  await new Promise(resolve => setTimeout(resolve, 100));
164
163
  const isInitialized = await this.isShieldInitialized();
165
164
  if (!isInitialized) {
166
- console.log("Shield SDK not initialized:");
165
+ console.log('Shield SDK not initialized:');
167
166
  callback(false);
168
167
  return;
169
168
  }
170
169
  const deviceResultListener = event => {
171
- if (event.status === "isSDKReady") {
172
- ShieldFraud.eventEmitter.removeAllListeners("device_result_state");
170
+ if (event.status === 'isSDKReady') {
171
+ ShieldFraud.eventEmitter.removeAllListeners('device_result_state');
173
172
  callback(true);
174
173
  }
175
174
  };
176
- ShieldFraud.eventEmitter.addListener("device_result_state", deviceResultListener);
175
+ ShieldFraud.eventEmitter.addListener('device_result_state', deviceResultListener);
177
176
 
178
177
  // Trigger the SDK subscription — iOS 1.x requires this explicit call.
179
178
  ShieldFraud.PlatformWrapper.setDeviceResultStateListener();
180
179
  } catch (error) {
181
- console.error("An error occurred:", error);
180
+ console.error('An error occurred:', error);
182
181
  callback(false);
183
182
  }
184
183
  }
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","TurboModuleRegistry","ShieldFraudPluginNativeModule","get","ShieldFraudPlugin","LogLevel","EnvironmentInfo","ShieldFraud","PlatformWrapper","eventEmitter","initShield","config","callbacks","isOptimizedListener","logLevel","LogLevelNone","environmentInfo","EnvironmentProd","setCrossPlatformParameters","blockScreenRecording","OS","siteID","secretKey","blockedDialog","listeners","crossPlatformName","crossPlatformVersion","addListener","data","onSuccess","error","onFailure","getSessionId","isShieldInitialized","isSDKready","callback","Promise","resolve","setTimeout","isInitialized","console","log","deviceResultListener","event","status","removeAllListeners","setDeviceResultStateListener","sendAttributes","screenName","sendAttributesWithCallback","reject","result","getLatestDeviceResult","sendDeviceSignature"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","TurboModuleRegistry","ShieldFraudPluginNativeModule","get","ShieldFraudPlugin","LogLevel","EnvironmentInfo","ShieldFraud","PlatformWrapper","eventEmitter","initShield","config","callbacks","isOptimizedListener","logLevel","LogLevelNone","environmentInfo","EnvironmentProd","setCrossPlatformParameters","blockScreenRecording","OS","siteID","secretKey","blockedDialog","listeners","crossPlatformName","crossPlatformVersion","addListener","data","onSuccess","error","onFailure","getSessionId","isShieldInitialized","isSDKready","callback","isInitialized","Promise","resolve","setTimeout","console","log","deviceResultListener","event","status","removeAllListeners","setDeviceResultStateListener","sendAttributes","screenName","sendAttributesWithCallback","reject","result","getLatestDeviceResult","sendDeviceSignature"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -96,14 +96,11 @@ declare class ShieldFraud {
96
96
  */
97
97
  static isShieldInitialized(): Promise<boolean>;
98
98
  /**
99
- * iOS only — checks if the ShieldFraud SDK is ready and invokes the provided
100
- * callback with the readiness state.
99
+ * Checks if the ShieldFraud SDK is ready and invokes the provided callback
100
+ * with the readiness state.
101
101
  *
102
- * On Android (SDK 2.x) device result events fire automatically via the
103
- * Sentinel inside createShieldWithCallback. There is no subscription call
104
- * and no reliable way to intercept the event after the fact, so this method
105
- * is a no-op on Android. Use the `callbacks` parameter of `initShield`
106
- * instead to receive device results on Android.
102
+ * On Android, readiness is approximated by the native initialization state
103
+ * to preserve backward compatibility without reporting ready before init.
107
104
  *
108
105
  * @param callback - A callback function to be invoked with the readiness state.
109
106
  * - `isReady` (boolean): true when the SDK has produced a device result.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAeA;;GAEG;AACH,oBAAY,QAAQ;IAClB,eAAe,IAAI;IACnB,aAAa,IAAI;IACjB,YAAY,IAAI;IAChB,YAAY,IAAI;CACjB;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,eAAe,IAAI;IACnB,cAAc,IAAI;IAClB,kBAAkB,IAAI;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;AAE3C;;GAEG;AACH,KAAK,eAAe,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,cAAM,WAAW;IACf;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe,CAAiC;IAE/D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY,CAEzB;IAEF;;;;;OAKG;WACiB,UAAU,CAC5B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,IAAI,CAAC;IAoChB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAUzC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAgBxB;;;;OAIG;WACW,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7C;;;;OAIG;WACW,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrD;;;;;;;;;;;;OAYG;WACiB,UAAU,CAC5B,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GACnC,OAAO,CAAC,IAAI,CAAC;IAqChB;;;;;OAKG;WACW,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpE;;;;;;OAMG;WACW,0BAA0B,CACtC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC;IAenB;;;;OAIG;WACW,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAatD;;;;;;;OAOG;WACW,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAavE;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAeA;;GAEG;AACH,oBAAY,QAAQ;IAClB,eAAe,IAAI;IACnB,aAAa,IAAI;IACjB,YAAY,IAAI;IAChB,YAAY,IAAI;CACjB;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,eAAe,IAAI;IACnB,cAAc,IAAI;IAClB,kBAAkB,IAAI;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;AAE3C;;GAEG;AACH,KAAK,eAAe,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,cAAM,WAAW;IACf;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe,CAAiC;IAE/D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY,CAEzB;IAEF;;;;;OAKG;WACiB,UAAU,CAC5B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,IAAI,CAAC;IAoChB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAUzC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAgBxB;;;;OAIG;WACW,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7C;;;;OAIG;WACW,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrD;;;;;;;;;OASG;WACiB,UAAU,CAC5B,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GACnC,OAAO,CAAC,IAAI,CAAC;IAuChB;;;;;OAKG;WACW,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpE;;;;;;OAMG;WACW,0BAA0B,CACtC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC;IAenB;;;;OAIG;WACW,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAatD;;;;;;;OAOG;WACW,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAavE;AAED,eAAe,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-shield-fraud-plugin",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "React Native Shield Fraud Plugin helps developers to assess malicious activities performed on mobile devices and return risk intelligence based on user's behaviour. It collects device's fingerprint, social metrics and network information.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -49,8 +49,8 @@
49
49
  "license": "MIT",
50
50
  "homepage": "https://github.com/shield-ai-technology/react-native-shield-fraud-plugin#readme",
51
51
  "devDependencies": {
52
- "@evilmartians/lefthook": "^1.2.2",
53
52
  "@commitlint/config-conventional": "^17.0.2",
53
+ "@evilmartians/lefthook": "^1.2.2",
54
54
  "@react-native-community/eslint-config": "^3.0.2",
55
55
  "@release-it/conventional-changelog": "^5.0.0",
56
56
  "@types/jest": "^28.1.2",
@@ -66,7 +66,7 @@
66
66
  "prettier": "^2.0.5",
67
67
  "react": "18.2.0",
68
68
  "react-native": "0.71.7",
69
- "react-native-builder-bob": "^0.20.0",
69
+ "react-native-builder-bob": "^0.20.4",
70
70
  "release-it": "^15.0.0",
71
71
  "typescript": "^4.5.2"
72
72
  },
@@ -25,5 +25,5 @@ Pod::Spec.new do |s|
25
25
  # and replaces the legacy `s.dependency "React"` call.
26
26
  install_modules_dependencies(s)
27
27
 
28
- s.dependency "ShieldFraud", ">= 1.5.55"
28
+ s.dependency "ShieldFraud", ">= 1.5.56"
29
29
  end
package/src/index.tsx CHANGED
@@ -3,14 +3,14 @@ import {
3
3
  NativeEventEmitter,
4
4
  Platform,
5
5
  TurboModuleRegistry,
6
- } from "react-native";
6
+ } from 'react-native';
7
7
 
8
8
  /**
9
9
  * Resolve the native module through TurboModuleRegistry (New Architecture)
10
10
  * with a fallback to NativeModules bridge (Old Architecture).
11
11
  */
12
12
  const ShieldFraudPluginNativeModule =
13
- TurboModuleRegistry.get<any>("ShieldFraudPlugin") ??
13
+ TurboModuleRegistry.get<any>('ShieldFraudPlugin') ??
14
14
  NativeModules.ShieldFraudPlugin;
15
15
 
16
16
  /**
@@ -27,8 +27,8 @@ export enum LogLevel {
27
27
  * Enum representing the environment information for ShieldFraud.
28
28
  */
29
29
  export enum EnvironmentInfo {
30
- EnvironmentProd = 0, // Environment.PROD
31
- EnvironmentDev = 1, // Environment.DEV
30
+ EnvironmentProd = 0, // Environment.PROD
31
+ EnvironmentDev = 1, // Environment.DEV
32
32
  EnvironmentStaging = 2, // Environment.STAGING
33
33
  }
34
34
 
@@ -108,7 +108,7 @@ class ShieldFraud {
108
108
  // Set default values if environmentInfo is not provided
109
109
  const environmentInfo =
110
110
  config.environmentInfo || EnvironmentInfo.EnvironmentProd;
111
-
111
+
112
112
  // Set cross-platform parameters internally (React Native and version from package.json)
113
113
  ShieldFraud.setCrossPlatformParameters();
114
114
 
@@ -116,7 +116,7 @@ class ShieldFraud {
116
116
  // Always send a real boolean — the Old Arch bridge cannot handle null
117
117
  // for boolean parameters (causes NPE in ReadableNativeArray.getBoolean).
118
118
  const blockScreenRecording =
119
- Platform.OS === "android" ? (config.blockScreenRecording ?? false) : false;
119
+ Platform.OS === 'android' ? config.blockScreenRecording ?? false : false;
120
120
 
121
121
  // Call the native method to initialize ShieldFraud with the provided configuration.
122
122
  await ShieldFraud.PlatformWrapper.initShield(
@@ -140,8 +140,8 @@ class ShieldFraud {
140
140
  * The cross-platform name and the version is fetched from package.json.
141
141
  */
142
142
  private static setCrossPlatformParameters(): void {
143
- const crossPlatformName = "react-native-shield-fraud-plugin";
144
- const crossPlatformVersion = "2.0.0";
143
+ const crossPlatformName = 'react-native-shield-fraud-plugin';
144
+ const crossPlatformVersion = '2.1.0';
145
145
 
146
146
  ShieldFraud.PlatformWrapper.setCrossPlatformParameters(
147
147
  crossPlatformName,
@@ -156,14 +156,14 @@ class ShieldFraud {
156
156
  */
157
157
  private static listeners(callbacks?: ShieldCallback): void {
158
158
  // Listen for success events and invoke the onSuccess callback if provided.
159
- ShieldFraud.eventEmitter.addListener("success", (data) => {
159
+ ShieldFraud.eventEmitter.addListener('success', (data) => {
160
160
  if (callbacks?.onSuccess) {
161
161
  callbacks.onSuccess(data);
162
162
  }
163
163
  });
164
164
 
165
165
  // Listen for error events and invoke the onFailure callback if provided.
166
- ShieldFraud.eventEmitter.addListener("error", (error) => {
166
+ ShieldFraud.eventEmitter.addListener('error', (error) => {
167
167
  if (callbacks?.onFailure) {
168
168
  callbacks.onFailure(error);
169
169
  }
@@ -189,14 +189,11 @@ class ShieldFraud {
189
189
  }
190
190
 
191
191
  /**
192
- * iOS only — checks if the ShieldFraud SDK is ready and invokes the provided
193
- * callback with the readiness state.
192
+ * Checks if the ShieldFraud SDK is ready and invokes the provided callback
193
+ * with the readiness state.
194
194
  *
195
- * On Android (SDK 2.x) device result events fire automatically via the
196
- * Sentinel inside createShieldWithCallback. There is no subscription call
197
- * and no reliable way to intercept the event after the fact, so this method
198
- * is a no-op on Android. Use the `callbacks` parameter of `initShield`
199
- * instead to receive device results on Android.
195
+ * On Android, readiness is approximated by the native initialization state
196
+ * to preserve backward compatibility without reporting ready before init.
200
197
  *
201
198
  * @param callback - A callback function to be invoked with the readiness state.
202
199
  * - `isReady` (boolean): true when the SDK has produced a device result.
@@ -204,7 +201,9 @@ class ShieldFraud {
204
201
  public static async isSDKready(
205
202
  callback: (isReady: boolean) => void
206
203
  ): Promise<void> {
207
- if (Platform.OS !== "ios") {
204
+ if (Platform.OS === 'android') {
205
+ const isInitialized = await this.isShieldInitialized();
206
+ callback(isInitialized);
208
207
  return;
209
208
  }
210
209
 
@@ -215,27 +214,27 @@ class ShieldFraud {
215
214
  const isInitialized = await this.isShieldInitialized();
216
215
 
217
216
  if (!isInitialized) {
218
- console.log("Shield SDK not initialized:");
217
+ console.log('Shield SDK not initialized:');
219
218
  callback(false);
220
219
  return;
221
220
  }
222
221
 
223
222
  const deviceResultListener = (event: { status: string }) => {
224
- if (event.status === "isSDKReady") {
225
- ShieldFraud.eventEmitter.removeAllListeners("device_result_state");
223
+ if (event.status === 'isSDKReady') {
224
+ ShieldFraud.eventEmitter.removeAllListeners('device_result_state');
226
225
  callback(true);
227
226
  }
228
227
  };
229
228
 
230
229
  ShieldFraud.eventEmitter.addListener(
231
- "device_result_state",
230
+ 'device_result_state',
232
231
  deviceResultListener
233
232
  );
234
233
 
235
234
  // Trigger the SDK subscription — iOS 1.x requires this explicit call.
236
235
  ShieldFraud.PlatformWrapper.setDeviceResultStateListener();
237
236
  } catch (error) {
238
- console.error("An error occurred:", error);
237
+ console.error('An error occurred:', error);
239
238
  callback(false);
240
239
  }
241
240
  }