react-native-shield-fraud-plugin 2.1.0 → 2.2.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/README.md CHANGED
@@ -16,7 +16,9 @@ There are few steps to getting started with the SHIELD SDK:
16
16
 
17
17
  5. [Send Custom Attributes](#send-custom-attributes)
18
18
 
19
- 6. [Migration from BRIDGE CODE to PLUGIN](#migration-from-bridge-code-to-plugin)
19
+ 6. [Send Device Fingerprint](#send-device-signature)
20
+
21
+ 7. [Migration from BRIDGE CODE to PLUGIN](#migration-from-bridge-code-to-plugin)
20
22
 
21
23
 
22
24
 
@@ -167,6 +169,19 @@ ShieldFraud.isSDKready(async (isReady: boolean) => {
167
169
  }
168
170
  ```
169
171
 
172
+ ### Send Device Fingerprint
173
+
174
+ Use the sendDeviceSignature function to manually trigger device signature collection for a screen or user checkpoint.
175
+
176
+ ```
177
+ // with screen name only
178
+ const deviceintelligence = await ShieldFraud.sendDeviceSignature('screen_name');
179
+
180
+ // with screen name and user id
181
+ const deviceintelligence = await ShieldFraud.sendDeviceSignature('screen_name', 'user_id');
182
+
183
+ ```
184
+
170
185
  ### Migration from BRIDGE CODE to PLUGIN
171
186
  If you've been using the old method of integrating the React Native bridge code for the Shield Fraud SDK on iOS and Android, follow these steps to migrate to our plugin.
172
187
 
@@ -13,6 +13,14 @@ def isNewArchitectureEnabled() {
13
13
  return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
14
14
  }
15
15
 
16
+ // Detect which npm package is installed by reading its own package.json.
17
+ // When published as react-native-shield-full-plugin the name field differs.
18
+ def packageJson = new groovy.json.JsonSlurper().parseText(
19
+ new File("${project.projectDir}/../package.json").text
20
+ )
21
+ def isFullPlugin = packageJson.name == "react-native-shield-full-plugin"
22
+ def shieldSdkArtifact = isFullPlugin ? "com.shield.android:shield:2.6.1" : "com.shield.android:shield-fraud:2.6.1"
23
+
16
24
  apply plugin: "com.android.library"
17
25
 
18
26
  if (isNewArchitectureEnabled()) {
@@ -95,9 +103,7 @@ rootProject.allprojects {
95
103
  dependencies {
96
104
  // For < 0.71, this will be from the local maven repo
97
105
  // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
98
- //noinspection GradleDynamicVersion
99
- implementation "com.facebook.react:react-native:+"
106
+ implementation "com.facebook.react:react-native:0.71.7"
100
107
 
101
- // Shield Fraud SDK 2.x — factory-based init, callback-based device intelligence
102
- implementation 'com.shield.android:shield-fraud:2.5.0'
108
+ implementation shieldSdkArtifact
103
109
  }
@@ -27,6 +27,7 @@ import com.shield.android.ShieldCrossPlatformHelper;
27
27
  import com.shield.android.ShieldCrossPlatformParams;
28
28
  import com.shield.android.ShieldError;
29
29
  import com.shield.android.ShieldFactory;
30
+ import com.shield.android.ShieldUserData;
30
31
 
31
32
  import org.json.JSONArray;
32
33
  import org.json.JSONObject;
@@ -48,9 +49,9 @@ import java.util.Map;
48
49
  * 5. sendAttributes : void return
49
50
  * → shield.sendAttributesWithCallback (Result<String> callback)
50
51
  * 6. LogLevel enum : Shield.LogLevel.VERBOSE/DEBUG/INFO/NONE
51
- * → LogLevel.DEBUG / INFO / NONE (VERBOSE removed)
52
+ * → LogLevel.VERBOSE / DEBUG / INFO / NONE
52
53
  * 7. Environment enum : String constants ENVIRONMENT_PROD / DEV / STAGING
53
- * → Environment.PROD / DEV (STAGING removed)
54
+ * → Environment.PROD / DEV / STAGING
54
55
  *
55
56
  * Architecture segmentation
56
57
  * ─────────────────────────
@@ -283,6 +284,7 @@ public class ShieldFraudPluginModule extends com.shieldfraudplugin.ShieldFraudPl
283
284
  @ReactMethod
284
285
  public void sendDeviceSignature(
285
286
  String screenName,
287
+ @Nullable String userId,
286
288
  Callback successCallback,
287
289
  Callback errorCallback) {
288
290
  if (shield == null) {
@@ -290,7 +292,12 @@ public class ShieldFraudPluginModule extends com.shieldfraudplugin.ShieldFraudPl
290
292
  return;
291
293
  }
292
294
 
293
- shield.sendDeviceSignatureWithCallback(screenName, result ->
295
+ ShieldUserData userData = new ShieldUserData(screenName);
296
+ if (userId != null) {
297
+ userData.setUserId(userId);
298
+ }
299
+
300
+ shield.sendDeviceSignatureWithCallback(userData, result ->
294
301
  new android.os.Handler(android.os.Looper.getMainLooper()).post(() -> {
295
302
  if (result instanceof Result.Success) {
296
303
  JSONObject json = shield.getLatestDeviceResult();
@@ -67,7 +67,7 @@ public class ShieldFraudPluginPackage extends TurboReactPackage {
67
67
  ShieldFraudPluginModule.NAME, // className
68
68
  false, // canOverrideExistingModule
69
69
  false, // needsEagerInit
70
- true, // hasConstants
70
+ false, // hasConstants
71
71
  false, // isCxxModule
72
72
  isTurboModule // isTurboModule
73
73
  )
@@ -37,13 +37,13 @@ RCT_EXPORT_METHOD(getLatestDeviceResult:(RCTResponseSenderBlock)successCallback
37
37
  errorCallback:(RCTResponseSenderBlock)errorCallback)
38
38
  {
39
39
  NSDictionary<NSString *, id> *result = [[Shield shared] getLatestDeviceResult];
40
- if (result != NULL) {
40
+ if (result != nil) {
41
41
  successCallback(@[result]);
42
42
  return;
43
43
  }
44
44
 
45
45
  NSError *error = [[Shield shared] getErrorResponse];
46
- if (error != NULL) {
46
+ if (error != nil) {
47
47
  errorCallback(@[[error localizedDescription]]);
48
48
  return;
49
49
  }
@@ -95,14 +95,20 @@ RCT_EXPORT_METHOD(sendAttributesWithCallback:(NSString *)screenName
95
95
  }
96
96
 
97
97
  // Trigger a device signature computation for a given screen name.
98
+ // Pass userId to associate the result with a specific user.
98
99
  // The completionHandler fires when the SDK is done; results and errors
99
100
  // are read back from getLatestDeviceResult / getErrorResponse.
100
101
  RCT_EXPORT_METHOD(sendDeviceSignature:(NSString *)screenName
102
+ userId:(NSString * _Nullable)userId
101
103
  successCallback:(RCTResponseSenderBlock)successCallback
102
104
  errorCallback:(RCTResponseSenderBlock)errorCallback)
103
105
  {
104
- [[Shield shared] sendDeviceSignatureWithScreenName:screenName
105
- completionHandler:^{
106
+ ShieldUserData *userData = [[ShieldUserData alloc]
107
+ initWithScreenName:screenName
108
+ userId:userId];
109
+
110
+ [[Shield shared] sendDeviceSignatureWithUserData:userData
111
+ completionHandler:^{
106
112
  dispatch_async(dispatch_get_main_queue(), ^{
107
113
  NSDictionary<NSString *, id> *deviceResult = [[Shield shared] getLatestDeviceResult];
108
114
  if (deviceResult != nil) {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","getEnforcing","exports","default"],"sourceRoot":"../../src","sources":["NativeShieldFraudPlugin.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AAJA,IAAAC,QAAA,GAiFeC,gCAAmB,CAACC,YAAY,CAAO,mBAAmB,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
1
+ {"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","getEnforcing","exports","default"],"sourceRoot":"../../src","sources":["NativeShieldFraudPlugin.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AAJA,IAAAC,QAAA,GAmFeC,gCAAmB,CAACC,YAAY,CAAO,mBAAmB,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.LogLevel = exports.EnvironmentInfo = void 0;
7
7
  var _reactNative = require("react-native");
8
+ var _package = _interopRequireDefault(require("../package.json"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
10
  /**
9
11
  * Resolve the native module through TurboModuleRegistry (New Architecture)
10
12
  * with a fallback to NativeModules bridge (Old Architecture).
@@ -61,6 +63,7 @@ class ShieldFraud {
61
63
  * The event emitter for listening to success and error events.
62
64
  */
63
65
  static eventEmitter = new _reactNative.NativeEventEmitter(ShieldFraud.PlatformWrapper);
66
+ static callbackSubscriptions = {};
64
67
 
65
68
  /**
66
69
  * Initializes the ShieldFraud plugin with the provided configuration.
@@ -98,8 +101,8 @@ class ShieldFraud {
98
101
  * The cross-platform name and the version is fetched from package.json.
99
102
  */
100
103
  static setCrossPlatformParameters() {
101
- const crossPlatformName = 'react-native-shield-fraud-plugin';
102
- const crossPlatformVersion = '2.1.0';
104
+ const crossPlatformName = _package.default.name;
105
+ const crossPlatformVersion = _package.default.version;
103
106
  ShieldFraud.PlatformWrapper.setCrossPlatformParameters(crossPlatformName, crossPlatformVersion);
104
107
  }
105
108
 
@@ -109,15 +112,19 @@ class ShieldFraud {
109
112
  * @param callbacks - The callback functions for success and failure events.
110
113
  */
111
114
  static listeners(callbacks) {
115
+ var _ShieldFraud$callback, _ShieldFraud$callback2;
116
+ (_ShieldFraud$callback = ShieldFraud.callbackSubscriptions.success) === null || _ShieldFraud$callback === void 0 ? void 0 : _ShieldFraud$callback.remove();
117
+ (_ShieldFraud$callback2 = ShieldFraud.callbackSubscriptions.error) === null || _ShieldFraud$callback2 === void 0 ? void 0 : _ShieldFraud$callback2.remove();
118
+
112
119
  // Listen for success events and invoke the onSuccess callback if provided.
113
- ShieldFraud.eventEmitter.addListener('success', data => {
120
+ ShieldFraud.callbackSubscriptions.success = ShieldFraud.eventEmitter.addListener('success', data => {
114
121
  if (callbacks !== null && callbacks !== void 0 && callbacks.onSuccess) {
115
122
  callbacks.onSuccess(data);
116
123
  }
117
124
  });
118
125
 
119
126
  // Listen for error events and invoke the onFailure callback if provided.
120
- ShieldFraud.eventEmitter.addListener('error', error => {
127
+ ShieldFraud.callbackSubscriptions.error = ShieldFraud.eventEmitter.addListener('error', error => {
121
128
  if (callbacks !== null && callbacks !== void 0 && callbacks.onFailure) {
122
129
  callbacks.onFailure(error);
123
130
  }
@@ -127,7 +134,7 @@ class ShieldFraud {
127
134
  /**
128
135
  * Retrieves the session ID from the ShieldFraud plugin.
129
136
  *
130
- * @returns A Promise that resolves with the session ID.
137
+ * @returns The current session ID.
131
138
  */
132
139
  static getSessionId() {
133
140
  return ShieldFraud.PlatformWrapper.getSessionId();
@@ -136,7 +143,7 @@ class ShieldFraud {
136
143
  /**
137
144
  * Checks whether the ShieldFraud plugin is initialized.
138
145
  *
139
- * @returns A Promise that resolves with a boolean value indicating whether the ShieldFraud plugin is initialized (true) or not (false).
146
+ * @returns Whether the ShieldFraud plugin is initialized.
140
147
  */
141
148
  static isShieldInitialized() {
142
149
  return ShieldFraud.PlatformWrapper.isShieldInitialized();
@@ -231,11 +238,12 @@ class ShieldFraud {
231
238
  * On failure, rejects with the error message.
232
239
  *
233
240
  * @param screenName - The name of the screen triggering the signature.
241
+ * @param userId - (Optional) A user ID to associate with the device signature.
234
242
  * @returns A Promise that resolves with the device result or rejects with an error.
235
243
  */
236
- static sendDeviceSignature(screenName) {
244
+ static sendDeviceSignature(screenName, userId) {
237
245
  return new Promise((resolve, reject) => {
238
- ShieldFraud.PlatformWrapper.sendDeviceSignature(screenName, result => {
246
+ ShieldFraud.PlatformWrapper.sendDeviceSignature(screenName, userId ?? null, result => {
239
247
  resolve(result);
240
248
  }, error => {
241
249
  reject(error);
@@ -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","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":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAOA;AACA;AACA;AACA;AACA,MAAMC,6BAA6B,GACjCC,gCAAmB,CAACC,GAAG,CAAM,mBAAmB,CAAC,IACjDC,0BAAa,CAACC,iBAAiB;;AAEjC;AACA;AACA;AAFA,IAGYC,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;AAFAC,OAAA,CAAAD,QAAA,GAAAA,QAAA;AAAA,IAGYE,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;AAFAD,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAQA;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAW,CAAC;EAChB;AACF;AACA;AACA;AACA;EACE,OAAeC,eAAe,GAAGT,6BAA6B;;EAE9D;AACF;AACA;EACE,OAAeU,YAAY,GAAG,IAAIC,+BAAkB,CAClDH,WAAW,CAACC,eAAe,CAC5B;;EAED;AACF;AACA;AACA;AACA;AACA;EACE,aAAoBG,UAAUA,CAC5BC,MAAc,EACdC,SAA0B,EACX;IACf,MAAMC,mBAAmB,GAAG,CAAC,CAACD,SAAS;;IAEvC;IACA,MAAME,QAAQ,GAAGH,MAAM,CAACG,QAAQ,IAAIX,QAAQ,CAACY,YAAY;;IAEzD;IACA,MAAMC,eAAe,GACnBL,MAAM,CAACK,eAAe,IAAIX,eAAe,CAACY,eAAe;;IAE3D;IACAX,WAAW,CAACY,0BAA0B,EAAE;;IAExC;IACA;IACA;IACA,MAAMC,oBAAoB,GACxBC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GAAGV,MAAM,CAACQ,oBAAoB,IAAI,KAAK,GAAG,KAAK;;IAE1E;IACA,MAAMb,WAAW,CAACC,eAAe,CAACG,UAAU,CAC1CC,MAAM,CAACW,MAAM,EACbX,MAAM,CAACY,SAAS,EAChBV,mBAAmB,EACnBF,MAAM,CAACa,aAAa,IAAI,IAAI,EAC5BV,QAAQ,EACRE,eAAe,EACfG,oBAAoB,CACrB;IAED,IAAIN,mBAAmB,EAAE;MACvB;MACAP,WAAW,CAACmB,SAAS,CAACb,SAAS,CAAC;IAClC;EACF;;EAEA;AACF;AACA;AACA;EACE,OAAeM,0BAA0BA,CAAA,EAAS;IAChD,MAAMQ,iBAAiB,GAAG,kCAAkC;IAC5D,MAAMC,oBAAoB,GAAG,OAAO;IAEpCrB,WAAW,CAACC,eAAe,CAACW,0BAA0B,CACpDQ,iBAAiB,EACjBC,oBAAoB,CACrB;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAeF,SAASA,CAACb,SAA0B,EAAQ;IACzD;IACAN,WAAW,CAACE,YAAY,CAACoB,WAAW,CAAC,SAAS,EAAGC,IAAI,IAAK;MACxD,IAAIjB,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEkB,SAAS,EAAE;QACxBlB,SAAS,CAACkB,SAAS,CAACD,IAAI,CAAC;MAC3B;IACF,CAAC,CAAC;;IAEF;IACAvB,WAAW,CAACE,YAAY,CAACoB,WAAW,CAAC,OAAO,EAAGG,KAAK,IAAK;MACvD,IAAInB,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEoB,SAAS,EAAE;QACxBpB,SAAS,CAACoB,SAAS,CAACD,KAAK,CAAC;MAC5B;IACF,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAcE,YAAYA,CAAA,EAAoB;IAC5C,OAAO3B,WAAW,CAACC,eAAe,CAAC0B,YAAY,EAAE;EACnD;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAcC,mBAAmBA,CAAA,EAAqB;IACpD,OAAO5B,WAAW,CAACC,eAAe,CAAC2B,mBAAmB,EAAE;EAC1D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAoBC,UAAUA,CAC5BC,QAAoC,EACrB;IACf,IAAIhB,qBAAQ,CAACC,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;UACjCvC,WAAW,CAACE,YAAY,CAACsC,kBAAkB,CAAC,qBAAqB,CAAC;UAClEV,QAAQ,CAAC,IAAI,CAAC;QAChB;MACF,CAAC;MAED9B,WAAW,CAACE,YAAY,CAACoB,WAAW,CAClC,qBAAqB,EACrBe,oBAAoB,CACrB;;MAED;MACArC,WAAW,CAACC,eAAe,CAACwC,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;IACnEvB,WAAW,CAACC,eAAe,CAACyC,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;MACtC7C,WAAW,CAACC,eAAe,CAAC2C,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;MACtC7C,WAAW,CAACC,eAAe,CAAC8C,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;MACtC7C,WAAW,CAACC,eAAe,CAAC+C,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;AAAC,IAAAwB,QAAA,GAEcjD,WAAW;AAAAF,OAAA,CAAAoD,OAAA,GAAAD,QAAA"}
1
+ {"version":3,"names":["_reactNative","require","_package","_interopRequireDefault","obj","__esModule","default","ShieldFraudPluginNativeModule","TurboModuleRegistry","get","NativeModules","ShieldFraudPlugin","LogLevel","exports","EnvironmentInfo","ShieldFraud","PlatformWrapper","eventEmitter","NativeEventEmitter","callbackSubscriptions","initShield","config","callbacks","isOptimizedListener","logLevel","LogLevelNone","environmentInfo","EnvironmentProd","setCrossPlatformParameters","blockScreenRecording","Platform","OS","siteID","secretKey","blockedDialog","listeners","crossPlatformName","packageJson","name","crossPlatformVersion","version","_ShieldFraud$callback","_ShieldFraud$callback2","success","remove","error","addListener","data","onSuccess","onFailure","getSessionId","isShieldInitialized","isSDKready","callback","isInitialized","Promise","resolve","setTimeout","console","log","deviceResultListener","event","status","removeAllListeners","setDeviceResultStateListener","sendAttributes","screenName","sendAttributesWithCallback","reject","result","getLatestDeviceResult","sendDeviceSignature","userId","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeShieldFraudPlugin.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAElD;AACA;AACA;AACA;AACA;;AA6EA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,mBAAmB,CAAC"}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeShieldFraudPlugin.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAElD;AACA;AACA;AACA;AACA;;AA+EA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,mBAAmB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { NativeModules, NativeEventEmitter, Platform, TurboModuleRegistry } from 'react-native';
2
+ import packageJson from '../package.json';
2
3
 
3
4
  /**
4
5
  * Resolve the native module through TurboModuleRegistry (New Architecture)
@@ -60,6 +61,7 @@ class ShieldFraud {
60
61
  * The event emitter for listening to success and error events.
61
62
  */
62
63
  static eventEmitter = new NativeEventEmitter(ShieldFraud.PlatformWrapper);
64
+ static callbackSubscriptions = {};
63
65
 
64
66
  /**
65
67
  * Initializes the ShieldFraud plugin with the provided configuration.
@@ -97,8 +99,8 @@ class ShieldFraud {
97
99
  * The cross-platform name and the version is fetched from package.json.
98
100
  */
99
101
  static setCrossPlatformParameters() {
100
- const crossPlatformName = 'react-native-shield-fraud-plugin';
101
- const crossPlatformVersion = '2.1.0';
102
+ const crossPlatformName = packageJson.name;
103
+ const crossPlatformVersion = packageJson.version;
102
104
  ShieldFraud.PlatformWrapper.setCrossPlatformParameters(crossPlatformName, crossPlatformVersion);
103
105
  }
104
106
 
@@ -108,15 +110,19 @@ class ShieldFraud {
108
110
  * @param callbacks - The callback functions for success and failure events.
109
111
  */
110
112
  static listeners(callbacks) {
113
+ var _ShieldFraud$callback, _ShieldFraud$callback2;
114
+ (_ShieldFraud$callback = ShieldFraud.callbackSubscriptions.success) === null || _ShieldFraud$callback === void 0 ? void 0 : _ShieldFraud$callback.remove();
115
+ (_ShieldFraud$callback2 = ShieldFraud.callbackSubscriptions.error) === null || _ShieldFraud$callback2 === void 0 ? void 0 : _ShieldFraud$callback2.remove();
116
+
111
117
  // Listen for success events and invoke the onSuccess callback if provided.
112
- ShieldFraud.eventEmitter.addListener('success', data => {
118
+ ShieldFraud.callbackSubscriptions.success = ShieldFraud.eventEmitter.addListener('success', data => {
113
119
  if (callbacks !== null && callbacks !== void 0 && callbacks.onSuccess) {
114
120
  callbacks.onSuccess(data);
115
121
  }
116
122
  });
117
123
 
118
124
  // Listen for error events and invoke the onFailure callback if provided.
119
- ShieldFraud.eventEmitter.addListener('error', error => {
125
+ ShieldFraud.callbackSubscriptions.error = ShieldFraud.eventEmitter.addListener('error', error => {
120
126
  if (callbacks !== null && callbacks !== void 0 && callbacks.onFailure) {
121
127
  callbacks.onFailure(error);
122
128
  }
@@ -126,7 +132,7 @@ class ShieldFraud {
126
132
  /**
127
133
  * Retrieves the session ID from the ShieldFraud plugin.
128
134
  *
129
- * @returns A Promise that resolves with the session ID.
135
+ * @returns The current session ID.
130
136
  */
131
137
  static getSessionId() {
132
138
  return ShieldFraud.PlatformWrapper.getSessionId();
@@ -135,7 +141,7 @@ class ShieldFraud {
135
141
  /**
136
142
  * Checks whether the ShieldFraud plugin is initialized.
137
143
  *
138
- * @returns A Promise that resolves with a boolean value indicating whether the ShieldFraud plugin is initialized (true) or not (false).
144
+ * @returns Whether the ShieldFraud plugin is initialized.
139
145
  */
140
146
  static isShieldInitialized() {
141
147
  return ShieldFraud.PlatformWrapper.isShieldInitialized();
@@ -230,11 +236,12 @@ class ShieldFraud {
230
236
  * On failure, rejects with the error message.
231
237
  *
232
238
  * @param screenName - The name of the screen triggering the signature.
239
+ * @param userId - (Optional) A user ID to associate with the device signature.
233
240
  * @returns A Promise that resolves with the device result or rejects with an error.
234
241
  */
235
- static sendDeviceSignature(screenName) {
242
+ static sendDeviceSignature(screenName, userId) {
236
243
  return new Promise((resolve, reject) => {
237
- ShieldFraud.PlatformWrapper.sendDeviceSignature(screenName, result => {
244
+ ShieldFraud.PlatformWrapper.sendDeviceSignature(screenName, userId ?? null, result => {
238
245
  resolve(result);
239
246
  }, error => {
240
247
  reject(error);
@@ -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","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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"}
1
+ {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","TurboModuleRegistry","packageJson","ShieldFraudPluginNativeModule","get","ShieldFraudPlugin","LogLevel","EnvironmentInfo","ShieldFraud","PlatformWrapper","eventEmitter","callbackSubscriptions","initShield","config","callbacks","isOptimizedListener","logLevel","LogLevelNone","environmentInfo","EnvironmentProd","setCrossPlatformParameters","blockScreenRecording","OS","siteID","secretKey","blockedDialog","listeners","crossPlatformName","name","crossPlatformVersion","version","_ShieldFraud$callback","_ShieldFraud$callback2","success","remove","error","addListener","data","onSuccess","onFailure","getSessionId","isShieldInitialized","isSDKready","callback","isInitialized","Promise","resolve","setTimeout","console","log","deviceResultListener","event","status","removeAllListeners","setDeviceResultStateListener","sendAttributes","screenName","sendAttributesWithCallback","reject","result","getLatestDeviceResult","sendDeviceSignature","userId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -42,8 +42,9 @@ export interface Spec extends TurboModule {
42
42
  /**
43
43
  * Triggers a device signature computation for a given screen and returns
44
44
  * the latest device result (or error) via callbacks once complete.
45
+ * Pass userId to associate the result with a specific user.
45
46
  */
46
- sendDeviceSignature(screenName: string, successCallback: (result: Object) => void, errorCallback: (error: string) => void): void;
47
+ sendDeviceSignature(screenName: string, userId: string | null, successCallback: (result: Object) => void, errorCallback: (error: string) => void): void;
47
48
  addListener(eventName: string): void;
48
49
  removeListeners(count: number): void;
49
50
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeShieldFraudPlugin.d.ts","sourceRoot":"","sources":["../../../src/NativeShieldFraudPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;GAIG;AACH,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;OAEG;IACH,UAAU,CACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM;IACvB,oFAAoF;IACpF,oBAAoB,EAAE,OAAO,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,0BAA0B,CACxB,iBAAiB,EAAE,MAAM,EACzB,oBAAoB,EAAE,MAAM,GAC3B,IAAI,CAAC;IAER;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC;IAEvB;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC;IAE/B;;OAEG;IACH,4BAA4B,IAAI,IAAI,CAAC;IAErC;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvD;;OAEG;IACH,0BAA0B,CACxB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAC1C,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GACrC,IAAI,CAAC;IAER;;OAEG;IACH,qBAAqB,CACnB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EACzC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GACrC,IAAI,CAAC;IAER;;;;OAIG;IACH,mBAAmB,CACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EACzC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GACrC,IAAI,CAAC;IAGR,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;;AAED,wBAA2E"}
@@ -65,6 +65,7 @@ declare class ShieldFraud {
65
65
  * The event emitter for listening to success and error events.
66
66
  */
67
67
  private static eventEmitter;
68
+ private static callbackSubscriptions;
68
69
  /**
69
70
  * Initializes the ShieldFraud plugin with the provided configuration.
70
71
  *
@@ -86,15 +87,15 @@ declare class ShieldFraud {
86
87
  /**
87
88
  * Retrieves the session ID from the ShieldFraud plugin.
88
89
  *
89
- * @returns A Promise that resolves with the session ID.
90
+ * @returns The current session ID.
90
91
  */
91
- static getSessionId(): Promise<string>;
92
+ static getSessionId(): string;
92
93
  /**
93
94
  * Checks whether the ShieldFraud plugin is initialized.
94
95
  *
95
- * @returns A Promise that resolves with a boolean value indicating whether the ShieldFraud plugin is initialized (true) or not (false).
96
+ * @returns Whether the ShieldFraud plugin is initialized.
96
97
  */
97
- static isShieldInitialized(): Promise<boolean>;
98
+ static isShieldInitialized(): boolean;
98
99
  /**
99
100
  * Checks if the ShieldFraud SDK is ready and invokes the provided callback
100
101
  * with the readiness state.
@@ -133,9 +134,10 @@ declare class ShieldFraud {
133
134
  * On failure, rejects with the error message.
134
135
  *
135
136
  * @param screenName - The name of the screen triggering the signature.
137
+ * @param userId - (Optional) A user ID to associate with the device signature.
136
138
  * @returns A Promise that resolves with the device result or rejects with an error.
137
139
  */
138
- static sendDeviceSignature(screenName: string): Promise<object>;
140
+ static sendDeviceSignature(screenName: string, userId?: string): Promise<object>;
139
141
  }
140
142
  export default ShieldFraud;
141
143
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAgBA;;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,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAG7B;IAEP;;;;;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;IAqBxB;;;;OAIG;WACW,YAAY,IAAI,MAAM;IAIpC;;;;OAIG;WACW,mBAAmB,IAAI,OAAO;IAI5C;;;;;;;;;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;;;;;;;;OAQG;WACW,mBAAmB,CAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;CAcnB;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.1.0",
3
+ "version": "2.2.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",
@@ -34,7 +34,11 @@
34
34
  "release": "release-it",
35
35
  "example": "yarn --cwd example",
36
36
  "bootstrap": "yarn example && yarn install && yarn example pods",
37
- "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build"
37
+ "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build",
38
+ "bump": "bash scripts/bump-version.sh",
39
+ "publish": "node scripts/publish.js",
40
+ "use-fraud": "node scripts/use-plugin.js fraud",
41
+ "use-full": "node scripts/use-plugin.js full"
38
42
  },
39
43
  "keywords": [
40
44
  "react-native",
@@ -49,8 +53,8 @@
49
53
  "license": "MIT",
50
54
  "homepage": "https://github.com/shield-ai-technology/react-native-shield-fraud-plugin#readme",
51
55
  "devDependencies": {
52
- "@commitlint/config-conventional": "^17.0.2",
53
56
  "@evilmartians/lefthook": "^1.2.2",
57
+ "@commitlint/config-conventional": "^17.0.2",
54
58
  "@react-native-community/eslint-config": "^3.0.2",
55
59
  "@release-it/conventional-changelog": "^5.0.0",
56
60
  "@types/jest": "^28.1.2",
@@ -66,7 +70,7 @@
66
70
  "prettier": "^2.0.5",
67
71
  "react": "18.2.0",
68
72
  "react-native": "0.71.7",
69
- "react-native-builder-bob": "^0.20.4",
73
+ "react-native-builder-bob": "^0.20.0",
70
74
  "release-it": "^15.0.0",
71
75
  "typescript": "^4.5.2"
72
76
  },
@@ -3,7 +3,7 @@ require "json"
3
3
  package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
4
 
5
5
  Pod::Spec.new do |s|
6
- s.name = "react-native-shield-fraud-plugin"
6
+ s.name = package["name"]
7
7
  s.version = package["version"]
8
8
  s.summary = package["description"]
9
9
  s.homepage = package["homepage"]
@@ -11,7 +11,7 @@ Pod::Spec.new do |s|
11
11
  s.authors = package["author"]
12
12
 
13
13
  s.platforms = { :ios => "12.0" }
14
- s.source = { :git => "https://github.com/rajdeepak27/react-native-shield-fraud-plugin.git", :tag => "#{s.version}" }
14
+ s.source = { :git => "https://github.com/shield-ai-technology/react-native-shield-fraud-plugin.git", :tag => "#{s.version}" }
15
15
 
16
16
  s.source_files = "ios/**/*.{h,m,mm}"
17
17
 
@@ -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.56"
28
+ s.dependency "ShieldFraud", ">= 1.5.59"
29
29
  end
@@ -0,0 +1,29 @@
1
+ require "json"
2
+
3
+ package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
+
5
+ Pod::Spec.new do |s|
6
+ s.name = package["name"]
7
+ s.version = package["version"]
8
+ s.summary = package["description"]
9
+ s.homepage = package["homepage"]
10
+ s.license = package["license"]
11
+ s.authors = package["author"]
12
+
13
+ s.platforms = { :ios => "12.0" }
14
+ s.source = { :git => "https://github.com/shield-ai-technology/react-native-shield-fraud-plugin.git", :tag => "#{s.version}" }
15
+
16
+ s.source_files = "ios/**/*.{h,m,mm}"
17
+
18
+ # Enable Clang modules in C++ mode so that @import ShieldFraud; works
19
+ s.pod_target_xcconfig = {
20
+ 'CLANG_ENABLE_MODULES' => 'YES',
21
+ 'OTHER_CPLUSPLUSFLAGS' => '$(inherited) -fmodules -fcxx-modules'
22
+ }
23
+
24
+ # install_modules_dependencies handles New Architecture (Turbo Modules / Fabric)
25
+ # and replaces the legacy `s.dependency "React"` call.
26
+ install_modules_dependencies(s)
27
+
28
+ s.dependency "ShieldFraud", ">= 1.5.58"
29
+ end
@@ -70,9 +70,11 @@ export interface Spec extends TurboModule {
70
70
  /**
71
71
  * Triggers a device signature computation for a given screen and returns
72
72
  * the latest device result (or error) via callbacks once complete.
73
+ * Pass userId to associate the result with a specific user.
73
74
  */
74
75
  sendDeviceSignature(
75
76
  screenName: string,
77
+ userId: string | null,
76
78
  successCallback: (result: Object) => void,
77
79
  errorCallback: (error: string) => void
78
80
  ): void;
package/src/index.tsx CHANGED
@@ -4,6 +4,7 @@ import {
4
4
  Platform,
5
5
  TurboModuleRegistry,
6
6
  } from 'react-native';
7
+ import packageJson from '../package.json';
7
8
 
8
9
  /**
9
10
  * Resolve the native module through TurboModuleRegistry (New Architecture)
@@ -90,6 +91,11 @@ class ShieldFraud {
90
91
  ShieldFraud.PlatformWrapper
91
92
  );
92
93
 
94
+ private static callbackSubscriptions: {
95
+ success?: { remove: () => void };
96
+ error?: { remove: () => void };
97
+ } = {};
98
+
93
99
  /**
94
100
  * Initializes the ShieldFraud plugin with the provided configuration.
95
101
  *
@@ -140,8 +146,8 @@ class ShieldFraud {
140
146
  * The cross-platform name and the version is fetched from package.json.
141
147
  */
142
148
  private static setCrossPlatformParameters(): void {
143
- const crossPlatformName = 'react-native-shield-fraud-plugin';
144
- const crossPlatformVersion = '2.1.0';
149
+ const crossPlatformName = packageJson.name;
150
+ const crossPlatformVersion = packageJson.version;
145
151
 
146
152
  ShieldFraud.PlatformWrapper.setCrossPlatformParameters(
147
153
  crossPlatformName,
@@ -155,36 +161,41 @@ class ShieldFraud {
155
161
  * @param callbacks - The callback functions for success and failure events.
156
162
  */
157
163
  private static listeners(callbacks?: ShieldCallback): void {
164
+ ShieldFraud.callbackSubscriptions.success?.remove();
165
+ ShieldFraud.callbackSubscriptions.error?.remove();
166
+
158
167
  // Listen for success events and invoke the onSuccess callback if provided.
159
- ShieldFraud.eventEmitter.addListener('success', (data) => {
160
- if (callbacks?.onSuccess) {
161
- callbacks.onSuccess(data);
162
- }
163
- });
168
+ ShieldFraud.callbackSubscriptions.success =
169
+ ShieldFraud.eventEmitter.addListener('success', (data) => {
170
+ if (callbacks?.onSuccess) {
171
+ callbacks.onSuccess(data);
172
+ }
173
+ });
164
174
 
165
175
  // Listen for error events and invoke the onFailure callback if provided.
166
- ShieldFraud.eventEmitter.addListener('error', (error) => {
167
- if (callbacks?.onFailure) {
168
- callbacks.onFailure(error);
169
- }
170
- });
176
+ ShieldFraud.callbackSubscriptions.error =
177
+ ShieldFraud.eventEmitter.addListener('error', (error) => {
178
+ if (callbacks?.onFailure) {
179
+ callbacks.onFailure(error);
180
+ }
181
+ });
171
182
  }
172
183
 
173
184
  /**
174
185
  * Retrieves the session ID from the ShieldFraud plugin.
175
186
  *
176
- * @returns A Promise that resolves with the session ID.
187
+ * @returns The current session ID.
177
188
  */
178
- public static getSessionId(): Promise<string> {
189
+ public static getSessionId(): string {
179
190
  return ShieldFraud.PlatformWrapper.getSessionId();
180
191
  }
181
192
 
182
193
  /**
183
194
  * Checks whether the ShieldFraud plugin is initialized.
184
195
  *
185
- * @returns A Promise that resolves with a boolean value indicating whether the ShieldFraud plugin is initialized (true) or not (false).
196
+ * @returns Whether the ShieldFraud plugin is initialized.
186
197
  */
187
- public static isShieldInitialized(): Promise<boolean> {
198
+ public static isShieldInitialized(): boolean {
188
199
  return ShieldFraud.PlatformWrapper.isShieldInitialized();
189
200
  }
190
201
 
@@ -298,12 +309,17 @@ class ShieldFraud {
298
309
  * On failure, rejects with the error message.
299
310
  *
300
311
  * @param screenName - The name of the screen triggering the signature.
312
+ * @param userId - (Optional) A user ID to associate with the device signature.
301
313
  * @returns A Promise that resolves with the device result or rejects with an error.
302
314
  */
303
- public static sendDeviceSignature(screenName: string): Promise<object> {
315
+ public static sendDeviceSignature(
316
+ screenName: string,
317
+ userId?: string
318
+ ): Promise<object> {
304
319
  return new Promise((resolve, reject) => {
305
320
  ShieldFraud.PlatformWrapper.sendDeviceSignature(
306
321
  screenName,
322
+ userId ?? null,
307
323
  (result: object) => {
308
324
  resolve(result);
309
325
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"NativeShieldFraudPlugin.d.ts","sourceRoot":"","sources":["../../src/NativeShieldFraudPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;GAIG;AACH,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;OAEG;IACH,UAAU,CACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM;IACvB,oFAAoF;IACpF,oBAAoB,EAAE,OAAO,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,0BAA0B,CACxB,iBAAiB,EAAE,MAAM,EACzB,oBAAoB,EAAE,MAAM,GAC3B,IAAI,CAAC;IAER;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC;IAEvB;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC;IAE/B;;OAEG;IACH,4BAA4B,IAAI,IAAI,CAAC;IAErC;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvD;;OAEG;IACH,0BAA0B,CACxB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAC1C,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GACrC,IAAI,CAAC;IAER;;OAEG;IACH,qBAAqB,CACnB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EACzC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GACrC,IAAI,CAAC;IAER;;;OAGG;IACH,mBAAmB,CACjB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EACzC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GACrC,IAAI,CAAC;IAGR,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;;AAED,wBAA2E"}
@@ -1 +0,0 @@
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"}