react-native-shield-fraud-plugin 1.0.10 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/android/build.gradle +30 -12
  2. package/android/src/main/java/com/shieldfraudplugin/ShieldFraudPluginModule.java +354 -123
  3. package/android/src/main/java/com/shieldfraudplugin/ShieldFraudPluginPackage.java +71 -21
  4. package/android/src/newarch/java/com/shieldfraudplugin/ShieldFraudPluginSpec.java +41 -0
  5. package/android/src/oldarch/java/com/shieldfraudplugin/ShieldFraudPluginSpec.java +36 -0
  6. package/ios/ShieldFraudPlugin.h +11 -2
  7. package/ios/ShieldFraudPlugin.mm +289 -0
  8. package/lib/commonjs/NativeShieldFraudPlugin.js +15 -0
  9. package/lib/commonjs/NativeShieldFraudPlugin.js.map +1 -0
  10. package/lib/commonjs/index.js +80 -8
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/module/NativeShieldFraudPlugin.js +10 -0
  13. package/lib/module/NativeShieldFraudPlugin.js.map +1 -0
  14. package/lib/module/index.js +81 -9
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/typescript/NativeShieldFraudPlugin.d.ts +52 -0
  17. package/lib/typescript/NativeShieldFraudPlugin.d.ts.map +1 -0
  18. package/lib/typescript/index.d.ts +41 -3
  19. package/lib/typescript/index.d.ts.map +1 -1
  20. package/package.json +10 -2
  21. package/react-native-shield-fraud-plugin.podspec +13 -3
  22. package/src/NativeShieldFraudPlugin.ts +85 -0
  23. package/src/index.tsx +115 -11
  24. package/ios/ShieldFraudPlugin.m +0 -98
  25. package/ios/ShieldFraudPlugin.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  26. package/ios/ShieldFraudPlugin.xcodeproj/project.xcworkspace/xcuserdata/deepakraj.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  27. package/ios/ShieldFraudPlugin.xcodeproj/xcuserdata/deepakraj.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","LogLevel","exports","EnvironmentInfo","ShieldFraud","PlatformWrapper","NativeModules","ShieldFraudPlugin","eventEmitter","NativeEventEmitter","initShield","config","callbacks","isOptimizedListener","logLevel","LogLevelNone","environmentInfo","EnvironmentProd","siteID","secretKey","blockedDialog","listeners","addListener","data","onSuccess","error","onFailure","getSessionId","isShieldInitialized","isSDKready","callback","Promise","resolve","setTimeout","isInitialized","console","log","deviceResultListener","event","status","removeAllListeners","setDeviceResultStateListener","sendAttributes","screenName","getLatestDeviceResult","reject","result","_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","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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"}
@@ -0,0 +1,10 @@
1
+ import { TurboModuleRegistry } from 'react-native';
2
+
3
+ /**
4
+ * TypeScript spec for the ShieldFraudPlugin Turbo Module.
5
+ * This file is used by React Native codegen to auto-generate
6
+ * native interface code for both iOS and Android.
7
+ */
8
+
9
+ export default TurboModuleRegistry.getEnforcing('ShieldFraudPlugin');
10
+ //# sourceMappingURL=NativeShieldFraudPlugin.js.map
@@ -0,0 +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,9 +1,16 @@
1
- import { NativeModules, NativeEventEmitter } from "react-native";
1
+ import { NativeModules, NativeEventEmitter, Platform, TurboModuleRegistry } from "react-native";
2
+
3
+ /**
4
+ * Resolve the native module through TurboModuleRegistry (New Architecture)
5
+ * with a fallback to NativeModules bridge (Old Architecture).
6
+ */
7
+ const ShieldFraudPluginNativeModule = TurboModuleRegistry.get("ShieldFraudPlugin") ?? NativeModules.ShieldFraudPlugin;
2
8
 
3
9
  /**
4
10
  * Enum representing the log levels for ShieldFraud.
5
11
  */
6
12
  export let LogLevel = /*#__PURE__*/function (LogLevel) {
13
+ LogLevel[LogLevel["LogLevelVerbose"] = 4] = "LogLevelVerbose";
7
14
  LogLevel[LogLevel["LogLevelDebug"] = 3] = "LogLevelDebug";
8
15
  LogLevel[LogLevel["LogLevelInfo"] = 2] = "LogLevelInfo";
9
16
  LogLevel[LogLevel["LogLevelNone"] = 1] = "LogLevelNone";
@@ -16,9 +23,9 @@ export let LogLevel = /*#__PURE__*/function (LogLevel) {
16
23
  export let EnvironmentInfo = /*#__PURE__*/function (EnvironmentInfo) {
17
24
  EnvironmentInfo[EnvironmentInfo["EnvironmentProd"] = 0] = "EnvironmentProd";
18
25
  EnvironmentInfo[EnvironmentInfo["EnvironmentDev"] = 1] = "EnvironmentDev";
19
- EnvironmentInfo[EnvironmentInfo["EnvironmentStag"] = 2] = "EnvironmentStag";
26
+ EnvironmentInfo[EnvironmentInfo["EnvironmentStaging"] = 2] = "EnvironmentStaging";
20
27
  return EnvironmentInfo;
21
- }({});
28
+ }({}); // Environment.STAGING
22
29
 
23
30
  /**
24
31
  * Configuration object for initializing ShieldFraud.
@@ -44,8 +51,10 @@ export let EnvironmentInfo = /*#__PURE__*/function (EnvironmentInfo) {
44
51
  class ShieldFraud {
45
52
  /**
46
53
  * The native module for accessing the ShieldFraudPlugin.
54
+ * Resolved via TurboModuleRegistry on New Architecture, with
55
+ * a NativeModules bridge fallback for Old Architecture.
47
56
  */
48
- static PlatformWrapper = NativeModules.ShieldFraudPlugin;
57
+ static PlatformWrapper = ShieldFraudPluginNativeModule;
49
58
 
50
59
  /**
51
60
  * The event emitter for listening to success and error events.
@@ -67,14 +76,32 @@ class ShieldFraud {
67
76
  // Set default values if environmentInfo is not provided
68
77
  const environmentInfo = config.environmentInfo || EnvironmentInfo.EnvironmentProd;
69
78
 
79
+ // Set cross-platform parameters internally (React Native and version from package.json)
80
+ ShieldFraud.setCrossPlatformParameters();
81
+
82
+ // blockScreenRecording is Android-only; iOS native ignores the value.
83
+ // Always send a real boolean — the Old Arch bridge cannot handle null
84
+ // for boolean parameters (causes NPE in ReadableNativeArray.getBoolean).
85
+ const blockScreenRecording = Platform.OS === "android" ? config.blockScreenRecording ?? false : false;
86
+
70
87
  // Call the native method to initialize ShieldFraud with the provided configuration.
71
- await ShieldFraud.PlatformWrapper.initShield(config.siteID, config.secretKey, isOptimizedListener, config.blockedDialog, logLevel, environmentInfo);
88
+ await ShieldFraud.PlatformWrapper.initShield(config.siteID, config.secretKey, isOptimizedListener, config.blockedDialog ?? null, logLevel, environmentInfo, blockScreenRecording);
72
89
  if (isOptimizedListener) {
73
90
  // Set up listeners for success and error events if callbacks are provided.
74
91
  ShieldFraud.listeners(callbacks);
75
92
  }
76
93
  }
77
94
 
95
+ /**
96
+ * Private method to set cross-platform parameters.
97
+ * The cross-platform name and the version is fetched from package.json.
98
+ */
99
+ static setCrossPlatformParameters() {
100
+ const crossPlatformName = "react-native-shield-fraud-plugin";
101
+ const crossPlatformVersion = "2.0.0";
102
+ ShieldFraud.PlatformWrapper.setCrossPlatformParameters(crossPlatformName, crossPlatformVersion);
103
+ }
104
+
78
105
  /**
79
106
  * Sets up event listeners for success and error events.
80
107
  *
@@ -115,12 +142,22 @@ class ShieldFraud {
115
142
  }
116
143
 
117
144
  /**
118
- * Checks if the ShieldFraud SDK is ready and invokes the provided callback with the readiness state.
145
+ * iOS only — checks if the ShieldFraud SDK is ready and invokes the provided
146
+ * callback with the readiness state.
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.
119
153
  *
120
154
  * @param callback - A callback function to be invoked with the readiness state.
121
- * - `isReady` (boolean): A boolean value indicating whether the ShieldFraud SDK is ready.
155
+ * - `isReady` (boolean): true when the SDK has produced a device result.
122
156
  */
123
157
  static async isSDKready(callback) {
158
+ if (Platform.OS !== "ios") {
159
+ return;
160
+ }
124
161
  try {
125
162
  // Adding a timeout of 100 milliseconds
126
163
  await new Promise(resolve => setTimeout(resolve, 100));
@@ -137,6 +174,8 @@ class ShieldFraud {
137
174
  }
138
175
  };
139
176
  ShieldFraud.eventEmitter.addListener("device_result_state", deviceResultListener);
177
+
178
+ // Trigger the SDK subscription — iOS 1.x requires this explicit call.
140
179
  ShieldFraud.PlatformWrapper.setDeviceResultStateListener();
141
180
  } catch (error) {
142
181
  console.error("An error occurred:", error);
@@ -154,6 +193,23 @@ class ShieldFraud {
154
193
  ShieldFraud.PlatformWrapper.sendAttributes(screenName, data);
155
194
  }
156
195
 
196
+ /**
197
+ * Sends attributes and resolves with `true` when the native SDK confirms success.
198
+ *
199
+ * @param screenName - The name of the screen.
200
+ * @param data - The attribute data object.
201
+ * @returns A Promise that resolves to true on success and rejects on error.
202
+ */
203
+ static sendAttributesWithCallback(screenName, data) {
204
+ return new Promise((resolve, reject) => {
205
+ ShieldFraud.PlatformWrapper.sendAttributesWithCallback(screenName, data, result => {
206
+ resolve(!!result);
207
+ }, error => {
208
+ reject(error);
209
+ });
210
+ });
211
+ }
212
+
157
213
  /**
158
214
  * Retrieves the latest device result from the ShieldFraud plugin.
159
215
  *
@@ -162,10 +218,26 @@ class ShieldFraud {
162
218
  static getLatestDeviceResult() {
163
219
  return new Promise((resolve, reject) => {
164
220
  ShieldFraud.PlatformWrapper.getLatestDeviceResult(result => {
165
- // Handle success with the result object
166
221
  resolve(result);
167
222
  }, error => {
168
- // Handle error with the error object
223
+ reject(error);
224
+ });
225
+ });
226
+ }
227
+
228
+ /**
229
+ * Triggers a device signature computation for a given screen name.
230
+ * On success, resolves with the latest device result object.
231
+ * On failure, rejects with the error message.
232
+ *
233
+ * @param screenName - The name of the screen triggering the signature.
234
+ * @returns A Promise that resolves with the device result or rejects with an error.
235
+ */
236
+ static sendDeviceSignature(screenName) {
237
+ return new Promise((resolve, reject) => {
238
+ ShieldFraud.PlatformWrapper.sendDeviceSignature(screenName, result => {
239
+ resolve(result);
240
+ }, error => {
169
241
  reject(error);
170
242
  });
171
243
  });
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","NativeEventEmitter","LogLevel","EnvironmentInfo","ShieldFraud","PlatformWrapper","ShieldFraudPlugin","eventEmitter","initShield","config","callbacks","isOptimizedListener","logLevel","LogLevelNone","environmentInfo","EnvironmentProd","siteID","secretKey","blockedDialog","listeners","addListener","data","onSuccess","error","onFailure","getSessionId","isShieldInitialized","isSDKready","callback","Promise","resolve","setTimeout","isInitialized","console","log","deviceResultListener","event","status","removeAllListeners","setDeviceResultStateListener","sendAttributes","screenName","getLatestDeviceResult","reject","result"],"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","Promise","resolve","setTimeout","isInitialized","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,GAAIT,MAAM,CAACQ,oBAAoB,IAAI,KAAK,GAAI,KAAK;;IAE5E;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;AACA;AACA;AACA;EACE,aAAoBC,UAAUA,CAC5BC,QAAoC,EACrB;IACf,IAAInC,QAAQ,CAACoB,EAAE,KAAK,KAAK,EAAE;MACzB;IACF;IAEA,IAAI;MACF;MACA,MAAM,IAAIgB,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC;MAExD,MAAME,aAAa,GAAG,MAAM,IAAI,CAACN,mBAAmB,EAAE;MAEtD,IAAI,CAACM,aAAa,EAAE;QAClBC,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,IAAIQ,OAAO,CAAC,CAACC,OAAO,EAAEa,MAAM,KAAK;MACtC3C,WAAW,CAACC,eAAe,CAACyC,0BAA0B,CACpDD,UAAU,EACVpB,IAAI,EACHuB,MAAe,IAAK;QACnBd,OAAO,CAAC,CAAC,CAACc,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,IAAIhB,OAAO,CAAC,CAACC,OAAO,EAAEa,MAAM,KAAK;MACtC3C,WAAW,CAACC,eAAe,CAAC4C,qBAAqB,CAC9CD,MAAc,IAAK;QAClBd,OAAO,CAACc,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,IAAIZ,OAAO,CAAC,CAACC,OAAO,EAAEa,MAAM,KAAK;MACtC3C,WAAW,CAACC,eAAe,CAAC6C,mBAAmB,CAC7CL,UAAU,EACTG,MAAc,IAAK;QAClBd,OAAO,CAACc,MAAM,CAAC;MACjB,CAAC,EACArB,KAAa,IAAK;QACjBoB,MAAM,CAACpB,KAAK,CAAC;MACf,CAAC,CACF;IACH,CAAC,CAAC;EACJ;AACF;AAEA,eAAevB,WAAW"}
@@ -0,0 +1,52 @@
1
+ import type { TurboModule } from 'react-native';
2
+ /**
3
+ * TypeScript spec for the ShieldFraudPlugin Turbo Module.
4
+ * This file is used by React Native codegen to auto-generate
5
+ * native interface code for both iOS and Android.
6
+ */
7
+ export interface Spec extends TurboModule {
8
+ /**
9
+ * Initializes the ShieldFraud SDK with the provided configuration.
10
+ */
11
+ initShield(siteID: string, secretKey: string, isOptimizedListener: boolean, blockedDialog: Object | null, logLevel: number, environmentInfo: number,
12
+ /** Android-only: block screen recording while the SDK is active. Ignored on iOS. */
13
+ blockScreenRecording: boolean): Promise<void>;
14
+ /**
15
+ * Sets cross-platform metadata (name + version) on the SDK.
16
+ */
17
+ setCrossPlatformParameters(crossPlatformName: string, crossPlatformVersion: string): void;
18
+ /**
19
+ * Returns the current session ID synchronously.
20
+ */
21
+ getSessionId(): string;
22
+ /**
23
+ * Returns whether the SDK has been initialized synchronously.
24
+ */
25
+ isShieldInitialized(): boolean;
26
+ /**
27
+ * Registers a listener for the device-result-ready state event.
28
+ */
29
+ setDeviceResultStateListener(): void;
30
+ /**
31
+ * Sends custom attributes for a given screen name.
32
+ */
33
+ sendAttributes(screenName: string, data: Object): void;
34
+ /**
35
+ * Sends custom attributes for a given screen name with success/error callbacks.
36
+ */
37
+ sendAttributesWithCallback(screenName: string, data: Object, successCallback: (result: boolean) => void, errorCallback: (error: string) => void): void;
38
+ /**
39
+ * Retrieves the latest device result via success/error callbacks.
40
+ */
41
+ getLatestDeviceResult(successCallback: (result: Object) => void, errorCallback: (error: Object) => void): void;
42
+ /**
43
+ * Triggers a device signature computation for a given screen and returns
44
+ * the latest device result (or error) via callbacks once complete.
45
+ */
46
+ sendDeviceSignature(screenName: string, successCallback: (result: Object) => void, errorCallback: (error: string) => void): void;
47
+ addListener(eventName: string): void;
48
+ removeListeners(count: number): void;
49
+ }
50
+ declare const _default: Spec;
51
+ export default _default;
52
+ //# sourceMappingURL=NativeShieldFraudPlugin.d.ts.map
@@ -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;;;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"}
@@ -2,6 +2,7 @@
2
2
  * Enum representing the log levels for ShieldFraud.
3
3
  */
4
4
  export declare enum LogLevel {
5
+ LogLevelVerbose = 4,
5
6
  LogLevelDebug = 3,
6
7
  LogLevelInfo = 2,
7
8
  LogLevelNone = 1
@@ -12,7 +13,7 @@ export declare enum LogLevel {
12
13
  export declare enum EnvironmentInfo {
13
14
  EnvironmentProd = 0,
14
15
  EnvironmentDev = 1,
15
- EnvironmentStag = 2
16
+ EnvironmentStaging = 2
16
17
  }
17
18
  /**
18
19
  * Configuration object for initializing ShieldFraud.
@@ -26,6 +27,12 @@ export interface Config {
26
27
  } | null;
27
28
  logLevel?: LogLevel;
28
29
  environmentInfo?: EnvironmentInfo;
30
+ /**
31
+ * Android-only: when true, the Shield SDK will block screen recording
32
+ * while it is active. Has no effect on iOS (the value is forwarded but
33
+ * the native side ignores it). Defaults to false when not provided.
34
+ */
35
+ blockScreenRecording?: boolean;
29
36
  }
30
37
  /**
31
38
  * Type definition for the success callback function.
@@ -50,6 +57,8 @@ export type ShieldCallback = {
50
57
  declare class ShieldFraud {
51
58
  /**
52
59
  * The native module for accessing the ShieldFraudPlugin.
60
+ * Resolved via TurboModuleRegistry on New Architecture, with
61
+ * a NativeModules bridge fallback for Old Architecture.
53
62
  */
54
63
  private static PlatformWrapper;
55
64
  /**
@@ -63,6 +72,11 @@ declare class ShieldFraud {
63
72
  * @param callbacks - (Optional) The callback functions for success and failure events.
64
73
  */
65
74
  static initShield(config: Config, callbacks?: ShieldCallback): Promise<void>;
75
+ /**
76
+ * Private method to set cross-platform parameters.
77
+ * The cross-platform name and the version is fetched from package.json.
78
+ */
79
+ private static setCrossPlatformParameters;
66
80
  /**
67
81
  * Sets up event listeners for success and error events.
68
82
  *
@@ -82,10 +96,17 @@ declare class ShieldFraud {
82
96
  */
83
97
  static isShieldInitialized(): Promise<boolean>;
84
98
  /**
85
- * Checks if the ShieldFraud SDK is ready and invokes the provided callback with the readiness state.
99
+ * iOS only — checks if the ShieldFraud SDK is ready and invokes the provided
100
+ * callback with the readiness state.
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.
86
107
  *
87
108
  * @param callback - A callback function to be invoked with the readiness state.
88
- * - `isReady` (boolean): A boolean value indicating whether the ShieldFraud SDK is ready.
109
+ * - `isReady` (boolean): true when the SDK has produced a device result.
89
110
  */
90
111
  static isSDKready(callback: (isReady: boolean) => void): Promise<void>;
91
112
  /**
@@ -95,12 +116,29 @@ declare class ShieldFraud {
95
116
  * @param data - The attribute data object.
96
117
  */
97
118
  static sendAttributes(screenName: string, data: object): void;
119
+ /**
120
+ * Sends attributes and resolves with `true` when the native SDK confirms success.
121
+ *
122
+ * @param screenName - The name of the screen.
123
+ * @param data - The attribute data object.
124
+ * @returns A Promise that resolves to true on success and rejects on error.
125
+ */
126
+ static sendAttributesWithCallback(screenName: string, data: object): Promise<boolean>;
98
127
  /**
99
128
  * Retrieves the latest device result from the ShieldFraud plugin.
100
129
  *
101
130
  * @returns A Promise that resolves with the latest device result object.
102
131
  */
103
132
  static getLatestDeviceResult(): Promise<object>;
133
+ /**
134
+ * Triggers a device signature computation for a given screen name.
135
+ * On success, resolves with the latest device result object.
136
+ * On failure, rejects with the error message.
137
+ *
138
+ * @param screenName - The name of the screen triggering the signature.
139
+ * @returns A Promise that resolves with the device result or rejects with an error.
140
+ */
141
+ static sendDeviceSignature(screenName: string): Promise<object>;
104
142
  }
105
143
  export default ShieldFraud;
106
144
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,QAAQ;IAClB,aAAa,IAAI;IACjB,YAAY,IAAI;IAChB,YAAY,IAAI;CACjB;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,eAAe,IAAI;IACnB,cAAc,IAAI;IAClB,eAAe,IAAI;CACpB;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;CACnC;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;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe,CAAmC;IAEjE;;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;IA0BhB;;;;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;;;;;OAKG;WACiB,UAAU,CAC5B,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GACnC,OAAO,CAAC,IAAI,CAAC;IA+BhB;;;;;OAKG;WACW,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpE;;;;OAIG;WACW,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;CAcvD;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;;;;;;;;;;;;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-shield-fraud-plugin",
3
- "version": "1.0.10",
3
+ "version": "2.0.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",
@@ -80,7 +80,7 @@
80
80
  "engines": {
81
81
  "node": ">= 16.0.0"
82
82
  },
83
- "packageManager": "^yarn@1.22.15",
83
+ "packageManager": "yarn@1.22.15",
84
84
  "jest": {
85
85
  "preset": "react-native",
86
86
  "modulePathIgnorePatterns": [
@@ -153,5 +153,13 @@
153
153
  }
154
154
  ]
155
155
  ]
156
+ },
157
+ "codegenConfig": {
158
+ "name": "RNShieldFraudPluginSpec",
159
+ "type": "modules",
160
+ "jsSrcsDir": "src",
161
+ "android": {
162
+ "javaPackageName": "com.shieldfraudplugin"
163
+ }
156
164
  }
157
165
  }
@@ -10,10 +10,20 @@ Pod::Spec.new do |s|
10
10
  s.license = package["license"]
11
11
  s.authors = package["author"]
12
12
 
13
- s.platforms = { :ios => "11.0" }
13
+ s.platforms = { :ios => "12.0" }
14
14
  s.source = { :git => "https://github.com/rajdeepak27/react-native-shield-fraud-plugin.git", :tag => "#{s.version}" }
15
15
 
16
16
  s.source_files = "ios/**/*.{h,m,mm}"
17
- s.dependency "React"
18
- s.dependency "ShieldFraud"
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.55"
19
29
  end
@@ -0,0 +1,85 @@
1
+ import type { TurboModule } from 'react-native';
2
+ import { TurboModuleRegistry } from 'react-native';
3
+
4
+ /**
5
+ * TypeScript spec for the ShieldFraudPlugin Turbo Module.
6
+ * This file is used by React Native codegen to auto-generate
7
+ * native interface code for both iOS and Android.
8
+ */
9
+ export interface Spec extends TurboModule {
10
+ /**
11
+ * Initializes the ShieldFraud SDK with the provided configuration.
12
+ */
13
+ initShield(
14
+ siteID: string,
15
+ secretKey: string,
16
+ isOptimizedListener: boolean,
17
+ blockedDialog: Object | null,
18
+ logLevel: number,
19
+ environmentInfo: number,
20
+ /** Android-only: block screen recording while the SDK is active. Ignored on iOS. */
21
+ blockScreenRecording: boolean
22
+ ): Promise<void>;
23
+
24
+ /**
25
+ * Sets cross-platform metadata (name + version) on the SDK.
26
+ */
27
+ setCrossPlatformParameters(
28
+ crossPlatformName: string,
29
+ crossPlatformVersion: string
30
+ ): void;
31
+
32
+ /**
33
+ * Returns the current session ID synchronously.
34
+ */
35
+ getSessionId(): string;
36
+
37
+ /**
38
+ * Returns whether the SDK has been initialized synchronously.
39
+ */
40
+ isShieldInitialized(): boolean;
41
+
42
+ /**
43
+ * Registers a listener for the device-result-ready state event.
44
+ */
45
+ setDeviceResultStateListener(): void;
46
+
47
+ /**
48
+ * Sends custom attributes for a given screen name.
49
+ */
50
+ sendAttributes(screenName: string, data: Object): void;
51
+
52
+ /**
53
+ * Sends custom attributes for a given screen name with success/error callbacks.
54
+ */
55
+ sendAttributesWithCallback(
56
+ screenName: string,
57
+ data: Object,
58
+ successCallback: (result: boolean) => void,
59
+ errorCallback: (error: string) => void
60
+ ): void;
61
+
62
+ /**
63
+ * Retrieves the latest device result via success/error callbacks.
64
+ */
65
+ getLatestDeviceResult(
66
+ successCallback: (result: Object) => void,
67
+ errorCallback: (error: Object) => void
68
+ ): void;
69
+
70
+ /**
71
+ * Triggers a device signature computation for a given screen and returns
72
+ * the latest device result (or error) via callbacks once complete.
73
+ */
74
+ sendDeviceSignature(
75
+ screenName: string,
76
+ successCallback: (result: Object) => void,
77
+ errorCallback: (error: string) => void
78
+ ): void;
79
+
80
+ // Required by RCTEventEmitter for New Architecture compatibility
81
+ addListener(eventName: string): void;
82
+ removeListeners(count: number): void;
83
+ }
84
+
85
+ export default TurboModuleRegistry.getEnforcing<Spec>('ShieldFraudPlugin');