react-native-shield-full-plugin 2.3.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 (30) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +237 -0
  3. package/android/build.gradle +109 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +5 -0
  6. package/android/src/main/java/com/shieldfraudplugin/ShieldFraudPluginModule.java +441 -0
  7. package/android/src/main/java/com/shieldfraudplugin/ShieldFraudPluginPackage.java +78 -0
  8. package/android/src/newarch/java/com/shieldfraudplugin/ShieldFraudPluginSpec.java +41 -0
  9. package/android/src/oldarch/java/com/shieldfraudplugin/ShieldFraudPluginSpec.java +36 -0
  10. package/ios/ShieldFraudPlugin.h +24 -0
  11. package/ios/ShieldFraudPlugin.mm +295 -0
  12. package/ios/ShieldFraudPlugin.xcodeproj/project.pbxproj +282 -0
  13. package/ios/ShieldFraudPlugin.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  14. package/lib/commonjs/NativeShieldFraudPlugin.js +15 -0
  15. package/lib/commonjs/NativeShieldFraudPlugin.js.map +1 -0
  16. package/lib/commonjs/index.js +256 -0
  17. package/lib/commonjs/index.js.map +1 -0
  18. package/lib/module/NativeShieldFraudPlugin.js +10 -0
  19. package/lib/module/NativeShieldFraudPlugin.js.map +1 -0
  20. package/lib/module/index.js +253 -0
  21. package/lib/module/index.js.map +1 -0
  22. package/lib/typescript/src/NativeShieldFraudPlugin.d.ts +53 -0
  23. package/lib/typescript/src/NativeShieldFraudPlugin.d.ts.map +1 -0
  24. package/lib/typescript/src/index.d.ts +143 -0
  25. package/lib/typescript/src/index.d.ts.map +1 -0
  26. package/package.json +169 -0
  27. package/react-native-shield-fraud-plugin.podspec +29 -0
  28. package/react-native-shield-full-plugin.podspec +29 -0
  29. package/src/NativeShieldFraudPlugin.ts +87 -0
  30. package/src/index.tsx +334 -0
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.LogLevel = exports.EnvironmentInfo = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _package = _interopRequireDefault(require("../package.json"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ /**
11
+ * Resolve the native module through TurboModuleRegistry (New Architecture)
12
+ * with a fallback to NativeModules bridge (Old Architecture).
13
+ */
14
+ const ShieldFraudPluginNativeModule = _reactNative.TurboModuleRegistry.get('ShieldFraudPlugin') ?? _reactNative.NativeModules.ShieldFraudPlugin;
15
+
16
+ /**
17
+ * Enum representing the log levels for ShieldFraud.
18
+ */
19
+ let LogLevel = /*#__PURE__*/function (LogLevel) {
20
+ LogLevel[LogLevel["LogLevelVerbose"] = 4] = "LogLevelVerbose";
21
+ LogLevel[LogLevel["LogLevelDebug"] = 3] = "LogLevelDebug";
22
+ LogLevel[LogLevel["LogLevelInfo"] = 2] = "LogLevelInfo";
23
+ LogLevel[LogLevel["LogLevelNone"] = 1] = "LogLevelNone";
24
+ return LogLevel;
25
+ }({});
26
+ /**
27
+ * Enum representing the environment information for ShieldFraud.
28
+ */
29
+ exports.LogLevel = LogLevel;
30
+ let EnvironmentInfo = /*#__PURE__*/function (EnvironmentInfo) {
31
+ EnvironmentInfo[EnvironmentInfo["EnvironmentProd"] = 0] = "EnvironmentProd";
32
+ EnvironmentInfo[EnvironmentInfo["EnvironmentDev"] = 1] = "EnvironmentDev";
33
+ EnvironmentInfo[EnvironmentInfo["EnvironmentStaging"] = 2] = "EnvironmentStaging";
34
+ return EnvironmentInfo;
35
+ }({}); // Environment.STAGING
36
+ /**
37
+ * Configuration object for initializing ShieldFraud.
38
+ */
39
+ /**
40
+ * Type definition for the success callback function.
41
+ */
42
+ /**
43
+ * Type definition for the failure callback function.
44
+ */
45
+ /**
46
+ * Type definition for the ShieldFraud callback functions.
47
+ */
48
+ exports.EnvironmentInfo = EnvironmentInfo;
49
+ /**
50
+ * The `ShieldFraud` class is a wrapper for the ShieldFraudPlugin native module in React Native.
51
+ * It provides methods for initializing ShieldFraud, retrieving session ID, checking the SDK readiness,
52
+ * sending attributes, and getting the latest device result.
53
+ */
54
+ class ShieldFraud {
55
+ /**
56
+ * The native module for accessing the ShieldFraudPlugin.
57
+ * Resolved via TurboModuleRegistry on New Architecture, with
58
+ * a NativeModules bridge fallback for Old Architecture.
59
+ */
60
+ static PlatformWrapper = ShieldFraudPluginNativeModule;
61
+
62
+ /**
63
+ * The event emitter for listening to success and error events.
64
+ */
65
+ static eventEmitter = new _reactNative.NativeEventEmitter(ShieldFraud.PlatformWrapper);
66
+ static callbackSubscriptions = {};
67
+
68
+ /**
69
+ * Initializes the ShieldFraud plugin with the provided configuration.
70
+ *
71
+ * @param config - The configuration object containing the required properties.
72
+ * @param callbacks - (Optional) The callback functions for success and failure events.
73
+ */
74
+ static async initShield(config, callbacks) {
75
+ const isOptimizedListener = !!callbacks;
76
+
77
+ // Set default values if logLevel is not provided
78
+ const logLevel = config.logLevel || LogLevel.LogLevelNone;
79
+
80
+ // Set default values if environmentInfo is not provided
81
+ const environmentInfo = config.environmentInfo || EnvironmentInfo.EnvironmentProd;
82
+
83
+ // Set cross-platform parameters internally (React Native and version from package.json)
84
+ ShieldFraud.setCrossPlatformParameters();
85
+
86
+ // blockScreenRecording is Android-only; iOS native ignores the value.
87
+ // Always send a real boolean — the Old Arch bridge cannot handle null
88
+ // for boolean parameters (causes NPE in ReadableNativeArray.getBoolean).
89
+ const blockScreenRecording = _reactNative.Platform.OS === 'android' ? config.blockScreenRecording ?? false : false;
90
+
91
+ // Call the native method to initialize ShieldFraud with the provided configuration.
92
+ await ShieldFraud.PlatformWrapper.initShield(config.siteID, config.secretKey, isOptimizedListener, config.blockedDialog ?? null, logLevel, environmentInfo, blockScreenRecording);
93
+ if (isOptimizedListener) {
94
+ // Set up listeners for success and error events if callbacks are provided.
95
+ ShieldFraud.listeners(callbacks);
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Private method to set cross-platform parameters.
101
+ * The cross-platform name and the version is fetched from package.json.
102
+ */
103
+ static setCrossPlatformParameters() {
104
+ const crossPlatformName = _package.default.name;
105
+ const crossPlatformVersion = _package.default.version;
106
+ ShieldFraud.PlatformWrapper.setCrossPlatformParameters(crossPlatformName, crossPlatformVersion);
107
+ }
108
+
109
+ /**
110
+ * Sets up event listeners for success and error events.
111
+ *
112
+ * @param callbacks - The callback functions for success and failure events.
113
+ */
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
+
119
+ // Listen for success events and invoke the onSuccess callback if provided.
120
+ ShieldFraud.callbackSubscriptions.success = ShieldFraud.eventEmitter.addListener('success', data => {
121
+ if (callbacks !== null && callbacks !== void 0 && callbacks.onSuccess) {
122
+ callbacks.onSuccess(data);
123
+ }
124
+ });
125
+
126
+ // Listen for error events and invoke the onFailure callback if provided.
127
+ ShieldFraud.callbackSubscriptions.error = ShieldFraud.eventEmitter.addListener('error', error => {
128
+ if (callbacks !== null && callbacks !== void 0 && callbacks.onFailure) {
129
+ callbacks.onFailure(error);
130
+ }
131
+ });
132
+ }
133
+
134
+ /**
135
+ * Retrieves the session ID from the ShieldFraud plugin.
136
+ *
137
+ * @returns The current session ID.
138
+ */
139
+ static getSessionId() {
140
+ return ShieldFraud.PlatformWrapper.getSessionId();
141
+ }
142
+
143
+ /**
144
+ * Checks whether the ShieldFraud plugin is initialized.
145
+ *
146
+ * @returns Whether the ShieldFraud plugin is initialized.
147
+ */
148
+ static isShieldInitialized() {
149
+ return ShieldFraud.PlatformWrapper.isShieldInitialized();
150
+ }
151
+
152
+ /**
153
+ * Checks if the ShieldFraud SDK is ready and invokes the provided callback
154
+ * with the readiness state.
155
+ *
156
+ * On Android, readiness is approximated by the native initialization state
157
+ * to preserve backward compatibility without reporting ready before init.
158
+ *
159
+ * @param callback - A callback function to be invoked with the readiness state.
160
+ * - `isReady` (boolean): true when the SDK has produced a device result.
161
+ */
162
+ static async isSDKready(callback) {
163
+ if (_reactNative.Platform.OS === 'android') {
164
+ const isInitialized = await this.isShieldInitialized();
165
+ callback(isInitialized);
166
+ return;
167
+ }
168
+ try {
169
+ // Adding a timeout of 100 milliseconds
170
+ await new Promise(resolve => setTimeout(resolve, 100));
171
+ const isInitialized = await this.isShieldInitialized();
172
+ if (!isInitialized) {
173
+ console.log('Shield SDK not initialized:');
174
+ callback(false);
175
+ return;
176
+ }
177
+ const deviceResultListener = event => {
178
+ if (event.status === 'isSDKReady') {
179
+ ShieldFraud.eventEmitter.removeAllListeners('device_result_state');
180
+ callback(true);
181
+ }
182
+ };
183
+ ShieldFraud.eventEmitter.addListener('device_result_state', deviceResultListener);
184
+
185
+ // Trigger the SDK subscription — iOS 1.x requires this explicit call.
186
+ ShieldFraud.PlatformWrapper.setDeviceResultStateListener();
187
+ } catch (error) {
188
+ console.error('An error occurred:', error);
189
+ callback(false);
190
+ }
191
+ }
192
+
193
+ /**
194
+ * Sends attributes to the ShieldFraud plugin for a specific screen.
195
+ *
196
+ * @param screenName - The name of the screen.
197
+ * @param data - The attribute data object.
198
+ */
199
+ static sendAttributes(screenName, data) {
200
+ ShieldFraud.PlatformWrapper.sendAttributes(screenName, data);
201
+ }
202
+
203
+ /**
204
+ * Sends attributes and resolves with `true` when the native SDK confirms success.
205
+ *
206
+ * @param screenName - The name of the screen.
207
+ * @param data - The attribute data object.
208
+ * @returns A Promise that resolves to true on success and rejects on error.
209
+ */
210
+ static sendAttributesWithCallback(screenName, data) {
211
+ return new Promise((resolve, reject) => {
212
+ ShieldFraud.PlatformWrapper.sendAttributesWithCallback(screenName, data, result => {
213
+ resolve(!!result);
214
+ }, error => {
215
+ reject(error);
216
+ });
217
+ });
218
+ }
219
+
220
+ /**
221
+ * Retrieves the latest device result from the ShieldFraud plugin.
222
+ *
223
+ * @returns A Promise that resolves with the latest device result object.
224
+ */
225
+ static getLatestDeviceResult() {
226
+ return new Promise((resolve, reject) => {
227
+ ShieldFraud.PlatformWrapper.getLatestDeviceResult(result => {
228
+ resolve(result);
229
+ }, error => {
230
+ reject(error);
231
+ });
232
+ });
233
+ }
234
+
235
+ /**
236
+ * Triggers a device signature computation for a given screen name.
237
+ * On success, resolves with the latest device result object.
238
+ * On failure, rejects with the error message.
239
+ *
240
+ * @param screenName - The name of the screen triggering the signature.
241
+ * @param userId - (Optional) A user ID to associate with the device signature.
242
+ * @returns A Promise that resolves with the device result or rejects with an error.
243
+ */
244
+ static sendDeviceSignature(screenName, userId) {
245
+ return new Promise((resolve, reject) => {
246
+ ShieldFraud.PlatformWrapper.sendDeviceSignature(screenName, userId ?? null, result => {
247
+ resolve(result);
248
+ }, error => {
249
+ reject(error);
250
+ });
251
+ });
252
+ }
253
+ }
254
+ var _default = ShieldFraud;
255
+ exports.default = _default;
256
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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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"}
@@ -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;;AA+EA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,mBAAmB,CAAC"}
@@ -0,0 +1,253 @@
1
+ import { NativeModules, NativeEventEmitter, Platform, TurboModuleRegistry } from 'react-native';
2
+ import packageJson from '../package.json';
3
+
4
+ /**
5
+ * Resolve the native module through TurboModuleRegistry (New Architecture)
6
+ * with a fallback to NativeModules bridge (Old Architecture).
7
+ */
8
+ const ShieldFraudPluginNativeModule = TurboModuleRegistry.get('ShieldFraudPlugin') ?? NativeModules.ShieldFraudPlugin;
9
+
10
+ /**
11
+ * Enum representing the log levels for ShieldFraud.
12
+ */
13
+ export let LogLevel = /*#__PURE__*/function (LogLevel) {
14
+ LogLevel[LogLevel["LogLevelVerbose"] = 4] = "LogLevelVerbose";
15
+ LogLevel[LogLevel["LogLevelDebug"] = 3] = "LogLevelDebug";
16
+ LogLevel[LogLevel["LogLevelInfo"] = 2] = "LogLevelInfo";
17
+ LogLevel[LogLevel["LogLevelNone"] = 1] = "LogLevelNone";
18
+ return LogLevel;
19
+ }({});
20
+
21
+ /**
22
+ * Enum representing the environment information for ShieldFraud.
23
+ */
24
+ export let EnvironmentInfo = /*#__PURE__*/function (EnvironmentInfo) {
25
+ EnvironmentInfo[EnvironmentInfo["EnvironmentProd"] = 0] = "EnvironmentProd";
26
+ EnvironmentInfo[EnvironmentInfo["EnvironmentDev"] = 1] = "EnvironmentDev";
27
+ EnvironmentInfo[EnvironmentInfo["EnvironmentStaging"] = 2] = "EnvironmentStaging";
28
+ return EnvironmentInfo;
29
+ }({}); // Environment.STAGING
30
+
31
+ /**
32
+ * Configuration object for initializing ShieldFraud.
33
+ */
34
+
35
+ /**
36
+ * Type definition for the success callback function.
37
+ */
38
+
39
+ /**
40
+ * Type definition for the failure callback function.
41
+ */
42
+
43
+ /**
44
+ * Type definition for the ShieldFraud callback functions.
45
+ */
46
+
47
+ /**
48
+ * The `ShieldFraud` class is a wrapper for the ShieldFraudPlugin native module in React Native.
49
+ * It provides methods for initializing ShieldFraud, retrieving session ID, checking the SDK readiness,
50
+ * sending attributes, and getting the latest device result.
51
+ */
52
+ class ShieldFraud {
53
+ /**
54
+ * The native module for accessing the ShieldFraudPlugin.
55
+ * Resolved via TurboModuleRegistry on New Architecture, with
56
+ * a NativeModules bridge fallback for Old Architecture.
57
+ */
58
+ static PlatformWrapper = ShieldFraudPluginNativeModule;
59
+
60
+ /**
61
+ * The event emitter for listening to success and error events.
62
+ */
63
+ static eventEmitter = new NativeEventEmitter(ShieldFraud.PlatformWrapper);
64
+ static callbackSubscriptions = {};
65
+
66
+ /**
67
+ * Initializes the ShieldFraud plugin with the provided configuration.
68
+ *
69
+ * @param config - The configuration object containing the required properties.
70
+ * @param callbacks - (Optional) The callback functions for success and failure events.
71
+ */
72
+ static async initShield(config, callbacks) {
73
+ const isOptimizedListener = !!callbacks;
74
+
75
+ // Set default values if logLevel is not provided
76
+ const logLevel = config.logLevel || LogLevel.LogLevelNone;
77
+
78
+ // Set default values if environmentInfo is not provided
79
+ const environmentInfo = config.environmentInfo || EnvironmentInfo.EnvironmentProd;
80
+
81
+ // Set cross-platform parameters internally (React Native and version from package.json)
82
+ ShieldFraud.setCrossPlatformParameters();
83
+
84
+ // blockScreenRecording is Android-only; iOS native ignores the value.
85
+ // Always send a real boolean — the Old Arch bridge cannot handle null
86
+ // for boolean parameters (causes NPE in ReadableNativeArray.getBoolean).
87
+ const blockScreenRecording = Platform.OS === 'android' ? config.blockScreenRecording ?? false : false;
88
+
89
+ // Call the native method to initialize ShieldFraud with the provided configuration.
90
+ await ShieldFraud.PlatformWrapper.initShield(config.siteID, config.secretKey, isOptimizedListener, config.blockedDialog ?? null, logLevel, environmentInfo, blockScreenRecording);
91
+ if (isOptimizedListener) {
92
+ // Set up listeners for success and error events if callbacks are provided.
93
+ ShieldFraud.listeners(callbacks);
94
+ }
95
+ }
96
+
97
+ /**
98
+ * Private method to set cross-platform parameters.
99
+ * The cross-platform name and the version is fetched from package.json.
100
+ */
101
+ static setCrossPlatformParameters() {
102
+ const crossPlatformName = packageJson.name;
103
+ const crossPlatformVersion = packageJson.version;
104
+ ShieldFraud.PlatformWrapper.setCrossPlatformParameters(crossPlatformName, crossPlatformVersion);
105
+ }
106
+
107
+ /**
108
+ * Sets up event listeners for success and error events.
109
+ *
110
+ * @param callbacks - The callback functions for success and failure events.
111
+ */
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
+
117
+ // Listen for success events and invoke the onSuccess callback if provided.
118
+ ShieldFraud.callbackSubscriptions.success = ShieldFraud.eventEmitter.addListener('success', data => {
119
+ if (callbacks !== null && callbacks !== void 0 && callbacks.onSuccess) {
120
+ callbacks.onSuccess(data);
121
+ }
122
+ });
123
+
124
+ // Listen for error events and invoke the onFailure callback if provided.
125
+ ShieldFraud.callbackSubscriptions.error = ShieldFraud.eventEmitter.addListener('error', error => {
126
+ if (callbacks !== null && callbacks !== void 0 && callbacks.onFailure) {
127
+ callbacks.onFailure(error);
128
+ }
129
+ });
130
+ }
131
+
132
+ /**
133
+ * Retrieves the session ID from the ShieldFraud plugin.
134
+ *
135
+ * @returns The current session ID.
136
+ */
137
+ static getSessionId() {
138
+ return ShieldFraud.PlatformWrapper.getSessionId();
139
+ }
140
+
141
+ /**
142
+ * Checks whether the ShieldFraud plugin is initialized.
143
+ *
144
+ * @returns Whether the ShieldFraud plugin is initialized.
145
+ */
146
+ static isShieldInitialized() {
147
+ return ShieldFraud.PlatformWrapper.isShieldInitialized();
148
+ }
149
+
150
+ /**
151
+ * Checks if the ShieldFraud SDK is ready and invokes the provided callback
152
+ * with the readiness state.
153
+ *
154
+ * On Android, readiness is approximated by the native initialization state
155
+ * to preserve backward compatibility without reporting ready before init.
156
+ *
157
+ * @param callback - A callback function to be invoked with the readiness state.
158
+ * - `isReady` (boolean): true when the SDK has produced a device result.
159
+ */
160
+ static async isSDKready(callback) {
161
+ if (Platform.OS === 'android') {
162
+ const isInitialized = await this.isShieldInitialized();
163
+ callback(isInitialized);
164
+ return;
165
+ }
166
+ try {
167
+ // Adding a timeout of 100 milliseconds
168
+ await new Promise(resolve => setTimeout(resolve, 100));
169
+ const isInitialized = await this.isShieldInitialized();
170
+ if (!isInitialized) {
171
+ console.log('Shield SDK not initialized:');
172
+ callback(false);
173
+ return;
174
+ }
175
+ const deviceResultListener = event => {
176
+ if (event.status === 'isSDKReady') {
177
+ ShieldFraud.eventEmitter.removeAllListeners('device_result_state');
178
+ callback(true);
179
+ }
180
+ };
181
+ ShieldFraud.eventEmitter.addListener('device_result_state', deviceResultListener);
182
+
183
+ // Trigger the SDK subscription — iOS 1.x requires this explicit call.
184
+ ShieldFraud.PlatformWrapper.setDeviceResultStateListener();
185
+ } catch (error) {
186
+ console.error('An error occurred:', error);
187
+ callback(false);
188
+ }
189
+ }
190
+
191
+ /**
192
+ * Sends attributes to the ShieldFraud plugin for a specific screen.
193
+ *
194
+ * @param screenName - The name of the screen.
195
+ * @param data - The attribute data object.
196
+ */
197
+ static sendAttributes(screenName, data) {
198
+ ShieldFraud.PlatformWrapper.sendAttributes(screenName, data);
199
+ }
200
+
201
+ /**
202
+ * Sends attributes and resolves with `true` when the native SDK confirms success.
203
+ *
204
+ * @param screenName - The name of the screen.
205
+ * @param data - The attribute data object.
206
+ * @returns A Promise that resolves to true on success and rejects on error.
207
+ */
208
+ static sendAttributesWithCallback(screenName, data) {
209
+ return new Promise((resolve, reject) => {
210
+ ShieldFraud.PlatformWrapper.sendAttributesWithCallback(screenName, data, result => {
211
+ resolve(!!result);
212
+ }, error => {
213
+ reject(error);
214
+ });
215
+ });
216
+ }
217
+
218
+ /**
219
+ * Retrieves the latest device result from the ShieldFraud plugin.
220
+ *
221
+ * @returns A Promise that resolves with the latest device result object.
222
+ */
223
+ static getLatestDeviceResult() {
224
+ return new Promise((resolve, reject) => {
225
+ ShieldFraud.PlatformWrapper.getLatestDeviceResult(result => {
226
+ resolve(result);
227
+ }, error => {
228
+ reject(error);
229
+ });
230
+ });
231
+ }
232
+
233
+ /**
234
+ * Triggers a device signature computation for a given screen name.
235
+ * On success, resolves with the latest device result object.
236
+ * On failure, rejects with the error message.
237
+ *
238
+ * @param screenName - The name of the screen triggering the signature.
239
+ * @param userId - (Optional) A user ID to associate with the device signature.
240
+ * @returns A Promise that resolves with the device result or rejects with an error.
241
+ */
242
+ static sendDeviceSignature(screenName, userId) {
243
+ return new Promise((resolve, reject) => {
244
+ ShieldFraud.PlatformWrapper.sendDeviceSignature(screenName, userId ?? null, result => {
245
+ resolve(result);
246
+ }, error => {
247
+ reject(error);
248
+ });
249
+ });
250
+ }
251
+ }
252
+ export default ShieldFraud;
253
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,53 @@
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
+ * Pass userId to associate the result with a specific user.
46
+ */
47
+ sendDeviceSignature(screenName: string, userId: string | null, successCallback: (result: Object) => void, errorCallback: (error: string) => void): void;
48
+ addListener(eventName: string): void;
49
+ removeListeners(count: number): void;
50
+ }
51
+ declare const _default: Spec;
52
+ export default _default;
53
+ //# 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;;;;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"}