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.
- package/android/build.gradle +1 -1
- package/lib/commonjs/index.js +18 -19
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +19 -20
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/index.d.ts +4 -7
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/react-native-shield-fraud-plugin.podspec +1 -1
- package/src/index.tsx +22 -23
package/android/build.gradle
CHANGED
|
@@ -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.
|
|
102
|
+
implementation 'com.shield.android:shield-fraud:2.5.0'
|
|
103
103
|
}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -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(
|
|
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 ===
|
|
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 =
|
|
102
|
-
const crossPlatformVersion =
|
|
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(
|
|
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(
|
|
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
|
-
*
|
|
147
|
-
*
|
|
146
|
+
* Checks if the ShieldFraud SDK is ready and invokes the provided callback
|
|
147
|
+
* with the readiness state.
|
|
148
148
|
*
|
|
149
|
-
* On Android
|
|
150
|
-
*
|
|
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
|
|
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(
|
|
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 ===
|
|
173
|
-
ShieldFraud.eventEmitter.removeAllListeners(
|
|
171
|
+
if (event.status === 'isSDKReady') {
|
|
172
|
+
ShieldFraud.eventEmitter.removeAllListeners('device_result_state');
|
|
174
173
|
callback(true);
|
|
175
174
|
}
|
|
176
175
|
};
|
|
177
|
-
ShieldFraud.eventEmitter.addListener(
|
|
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(
|
|
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","
|
|
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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"}
|
package/lib/module/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { NativeModules, NativeEventEmitter, Platform, TurboModuleRegistry } from
|
|
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(
|
|
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 ===
|
|
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 =
|
|
101
|
-
const crossPlatformVersion =
|
|
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(
|
|
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(
|
|
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
|
-
*
|
|
146
|
-
*
|
|
145
|
+
* Checks if the ShieldFraud SDK is ready and invokes the provided callback
|
|
146
|
+
* with the readiness state.
|
|
147
147
|
*
|
|
148
|
-
* On Android
|
|
149
|
-
*
|
|
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
|
|
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(
|
|
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 ===
|
|
172
|
-
ShieldFraud.eventEmitter.removeAllListeners(
|
|
170
|
+
if (event.status === 'isSDKReady') {
|
|
171
|
+
ShieldFraud.eventEmitter.removeAllListeners('device_result_state');
|
|
173
172
|
callback(true);
|
|
174
173
|
}
|
|
175
174
|
};
|
|
176
|
-
ShieldFraud.eventEmitter.addListener(
|
|
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(
|
|
180
|
+
console.error('An error occurred:', error);
|
|
182
181
|
callback(false);
|
|
183
182
|
}
|
|
184
183
|
}
|
package/lib/module/index.js.map
CHANGED
|
@@ -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","
|
|
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":"AAAA,SACEA,aAAa,EACbC,kBAAkB,EAClBC,QAAQ,EACRC,mBAAmB,QACd,cAAc;;AAErB;AACA;AACA;AACA;AACA,MAAMC,6BAA6B,GACjCD,mBAAmB,CAACE,GAAG,CAAM,mBAAmB,CAAC,IACjDL,aAAa,CAACM,iBAAiB;;AAEjC;AACA;AACA;AACA,WAAYC,QAAQ,0BAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;;AAOpB;AACA;AACA;AACA,WAAYC,eAAe,0BAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA,OAGD;;AAG1B;AACA;AACA;;AAkBA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAW,CAAC;EAChB;AACF;AACA;AACA;AACA;EACE,OAAeC,eAAe,GAAGN,6BAA6B;;EAE9D;AACF;AACA;EACE,OAAeO,YAAY,GAAG,IAAIV,kBAAkB,CAClDQ,WAAW,CAACC,eAAe,CAC5B;;EAED;AACF;AACA;AACA;AACA;AACA;EACE,aAAoBE,UAAUA,CAC5BC,MAAc,EACdC,SAA0B,EACX;IACf,MAAMC,mBAAmB,GAAG,CAAC,CAACD,SAAS;;IAEvC;IACA,MAAME,QAAQ,GAAGH,MAAM,CAACG,QAAQ,IAAIT,QAAQ,CAACU,YAAY;;IAEzD;IACA,MAAMC,eAAe,GACnBL,MAAM,CAACK,eAAe,IAAIV,eAAe,CAACW,eAAe;;IAE3D;IACAV,WAAW,CAACW,0BAA0B,EAAE;;IAExC;IACA;IACA;IACA,MAAMC,oBAAoB,GACxBnB,QAAQ,CAACoB,EAAE,KAAK,SAAS,GAAGT,MAAM,CAACQ,oBAAoB,IAAI,KAAK,GAAG,KAAK;;IAE1E;IACA,MAAMZ,WAAW,CAACC,eAAe,CAACE,UAAU,CAC1CC,MAAM,CAACU,MAAM,EACbV,MAAM,CAACW,SAAS,EAChBT,mBAAmB,EACnBF,MAAM,CAACY,aAAa,IAAI,IAAI,EAC5BT,QAAQ,EACRE,eAAe,EACfG,oBAAoB,CACrB;IAED,IAAIN,mBAAmB,EAAE;MACvB;MACAN,WAAW,CAACiB,SAAS,CAACZ,SAAS,CAAC;IAClC;EACF;;EAEA;AACF;AACA;AACA;EACE,OAAeM,0BAA0BA,CAAA,EAAS;IAChD,MAAMO,iBAAiB,GAAG,kCAAkC;IAC5D,MAAMC,oBAAoB,GAAG,OAAO;IAEpCnB,WAAW,CAACC,eAAe,CAACU,0BAA0B,CACpDO,iBAAiB,EACjBC,oBAAoB,CACrB;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAeF,SAASA,CAACZ,SAA0B,EAAQ;IACzD;IACAL,WAAW,CAACE,YAAY,CAACkB,WAAW,CAAC,SAAS,EAAGC,IAAI,IAAK;MACxD,IAAIhB,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEiB,SAAS,EAAE;QACxBjB,SAAS,CAACiB,SAAS,CAACD,IAAI,CAAC;MAC3B;IACF,CAAC,CAAC;;IAEF;IACArB,WAAW,CAACE,YAAY,CAACkB,WAAW,CAAC,OAAO,EAAGG,KAAK,IAAK;MACvD,IAAIlB,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEmB,SAAS,EAAE;QACxBnB,SAAS,CAACmB,SAAS,CAACD,KAAK,CAAC;MAC5B;IACF,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAcE,YAAYA,CAAA,EAAoB;IAC5C,OAAOzB,WAAW,CAACC,eAAe,CAACwB,YAAY,EAAE;EACnD;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAcC,mBAAmBA,CAAA,EAAqB;IACpD,OAAO1B,WAAW,CAACC,eAAe,CAACyB,mBAAmB,EAAE;EAC1D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAoBC,UAAUA,CAC5BC,QAAoC,EACrB;IACf,IAAInC,QAAQ,CAACoB,EAAE,KAAK,SAAS,EAAE;MAC7B,MAAMgB,aAAa,GAAG,MAAM,IAAI,CAACH,mBAAmB,EAAE;MACtDE,QAAQ,CAACC,aAAa,CAAC;MACvB;IACF;IAEA,IAAI;MACF;MACA,MAAM,IAAIC,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC;MAExD,MAAMF,aAAa,GAAG,MAAM,IAAI,CAACH,mBAAmB,EAAE;MAEtD,IAAI,CAACG,aAAa,EAAE;QAClBI,OAAO,CAACC,GAAG,CAAC,6BAA6B,CAAC;QAC1CN,QAAQ,CAAC,KAAK,CAAC;QACf;MACF;MAEA,MAAMO,oBAAoB,GAAIC,KAAyB,IAAK;QAC1D,IAAIA,KAAK,CAACC,MAAM,KAAK,YAAY,EAAE;UACjCrC,WAAW,CAACE,YAAY,CAACoC,kBAAkB,CAAC,qBAAqB,CAAC;UAClEV,QAAQ,CAAC,IAAI,CAAC;QAChB;MACF,CAAC;MAED5B,WAAW,CAACE,YAAY,CAACkB,WAAW,CAClC,qBAAqB,EACrBe,oBAAoB,CACrB;;MAED;MACAnC,WAAW,CAACC,eAAe,CAACsC,4BAA4B,EAAE;IAC5D,CAAC,CAAC,OAAOhB,KAAK,EAAE;MACdU,OAAO,CAACV,KAAK,CAAC,oBAAoB,EAAEA,KAAK,CAAC;MAC1CK,QAAQ,CAAC,KAAK,CAAC;IACjB;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAcY,cAAcA,CAACC,UAAkB,EAAEpB,IAAY,EAAQ;IACnErB,WAAW,CAACC,eAAe,CAACuC,cAAc,CAACC,UAAU,EAAEpB,IAAI,CAAC;EAC9D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAcqB,0BAA0BA,CACtCD,UAAkB,EAClBpB,IAAY,EACM;IAClB,OAAO,IAAIS,OAAO,CAAC,CAACC,OAAO,EAAEY,MAAM,KAAK;MACtC3C,WAAW,CAACC,eAAe,CAACyC,0BAA0B,CACpDD,UAAU,EACVpB,IAAI,EACHuB,MAAe,IAAK;QACnBb,OAAO,CAAC,CAAC,CAACa,MAAM,CAAC;MACnB,CAAC,EACArB,KAAa,IAAK;QACjBoB,MAAM,CAACpB,KAAK,CAAC;MACf,CAAC,CACF;IACH,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAcsB,qBAAqBA,CAAA,EAAoB;IACrD,OAAO,IAAIf,OAAO,CAAC,CAACC,OAAO,EAAEY,MAAM,KAAK;MACtC3C,WAAW,CAACC,eAAe,CAAC4C,qBAAqB,CAC9CD,MAAc,IAAK;QAClBb,OAAO,CAACa,MAAM,CAAC;MACjB,CAAC,EACArB,KAAa,IAAK;QACjBoB,MAAM,CAACpB,KAAK,CAAC;MACf,CAAC,CACF;IACH,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAcuB,mBAAmBA,CAACL,UAAkB,EAAmB;IACrE,OAAO,IAAIX,OAAO,CAAC,CAACC,OAAO,EAAEY,MAAM,KAAK;MACtC3C,WAAW,CAACC,eAAe,CAAC6C,mBAAmB,CAC7CL,UAAU,EACTG,MAAc,IAAK;QAClBb,OAAO,CAACa,MAAM,CAAC;MACjB,CAAC,EACArB,KAAa,IAAK;QACjBoB,MAAM,CAACpB,KAAK,CAAC;MACf,CAAC,CACF;IACH,CAAC,CAAC;EACJ;AACF;AAEA,eAAevB,WAAW"}
|
|
@@ -96,14 +96,11 @@ declare class ShieldFraud {
|
|
|
96
96
|
*/
|
|
97
97
|
static isShieldInitialized(): Promise<boolean>;
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
99
|
+
* Checks if the ShieldFraud SDK is ready and invokes the provided callback
|
|
100
|
+
* with the readiness state.
|
|
101
101
|
*
|
|
102
|
-
* On Android
|
|
103
|
-
*
|
|
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
|
|
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.
|
|
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.
|
|
69
|
+
"react-native-builder-bob": "^0.20.4",
|
|
70
70
|
"release-it": "^15.0.0",
|
|
71
71
|
"typescript": "^4.5.2"
|
|
72
72
|
},
|
package/src/index.tsx
CHANGED
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
NativeEventEmitter,
|
|
4
4
|
Platform,
|
|
5
5
|
TurboModuleRegistry,
|
|
6
|
-
} from
|
|
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>(
|
|
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,
|
|
31
|
-
EnvironmentDev = 1,
|
|
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 ===
|
|
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 =
|
|
144
|
-
const crossPlatformVersion =
|
|
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(
|
|
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(
|
|
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
|
-
*
|
|
193
|
-
*
|
|
192
|
+
* Checks if the ShieldFraud SDK is ready and invokes the provided callback
|
|
193
|
+
* with the readiness state.
|
|
194
194
|
*
|
|
195
|
-
* On Android
|
|
196
|
-
*
|
|
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
|
|
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(
|
|
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 ===
|
|
225
|
-
ShieldFraud.eventEmitter.removeAllListeners(
|
|
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
|
-
|
|
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(
|
|
237
|
+
console.error('An error occurred:', error);
|
|
239
238
|
callback(false);
|
|
240
239
|
}
|
|
241
240
|
}
|