react-native-shield-fraud-plugin 1.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 (74) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +161 -0
  3. package/android/build.gradle +85 -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 +190 -0
  7. package/android/src/main/java/com/shieldfraudplugin/ShieldFraudPluginPackage.java +28 -0
  8. package/ios/Podfile +10 -0
  9. package/ios/Podfile.lock +16 -0
  10. package/ios/Pods/Manifest.lock +16 -0
  11. package/ios/Pods/Pods.xcodeproj/project.pbxproj +536 -0
  12. package/ios/Pods/Pods.xcodeproj/xcuserdata/deepakraj.xcuserdatad/xcschemes/Pods-ShieldFraudPlugin.xcscheme +58 -0
  13. package/ios/Pods/Pods.xcodeproj/xcuserdata/deepakraj.xcuserdatad/xcschemes/ShieldFraud.xcscheme +58 -0
  14. package/ios/Pods/Pods.xcodeproj/xcuserdata/deepakraj.xcuserdatad/xcschemes/xcschememanagement.plist +25 -0
  15. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/Info.plist +44 -0
  16. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/ShieldFraud.framework/Headers/ShieldFraud-Swift.h +394 -0
  17. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/ShieldFraud.framework/Headers/ShieldFraud.h +20 -0
  18. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/ShieldFraud.framework/Info.plist +0 -0
  19. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/arm64-apple-ios.abi.json +6726 -0
  20. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/arm64-apple-ios.private.swiftinterface +207 -0
  21. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  22. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/arm64-apple-ios.swiftinterface +207 -0
  23. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/ShieldFraud.framework/Modules/module.modulemap +11 -0
  24. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/ShieldFraud.framework/ShieldFraud +0 -0
  25. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/ShieldFraud.framework/_CodeSignature/CodeResources +222 -0
  26. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/dSYMs/ShieldFraud.framework.dSYM/Contents/Info.plist +20 -0
  27. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64/dSYMs/ShieldFraud.framework.dSYM/Contents/Resources/DWARF/ShieldFraud +0 -0
  28. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Headers/ShieldFraud-Swift.h +784 -0
  29. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Headers/ShieldFraud.h +20 -0
  30. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Info.plist +0 -0
  31. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/arm64-apple-ios-simulator.abi.json +6726 -0
  32. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +207 -0
  33. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  34. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/arm64-apple-ios-simulator.swiftinterface +207 -0
  35. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/x86_64-apple-ios-simulator.abi.json +6712 -0
  36. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +207 -0
  37. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  38. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Modules/ShieldFraud.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +207 -0
  39. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/Modules/module.modulemap +11 -0
  40. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/ShieldFraud +0 -0
  41. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/ShieldFraud.framework/_CodeSignature/CodeResources +297 -0
  42. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/dSYMs/ShieldFraud.framework.dSYM/Contents/Info.plist +20 -0
  43. package/ios/Pods/ShieldFraud/ShieldFraud.xcframework/ios-arm64_x86_64-simulator/dSYMs/ShieldFraud.framework.dSYM/Contents/Resources/DWARF/ShieldFraud +0 -0
  44. package/ios/Pods/Target Support Files/Pods-ShieldFraudPlugin/Pods-ShieldFraudPlugin-Info.plist +26 -0
  45. package/ios/Pods/Target Support Files/Pods-ShieldFraudPlugin/Pods-ShieldFraudPlugin-acknowledgements.markdown +7 -0
  46. package/ios/Pods/Target Support Files/Pods-ShieldFraudPlugin/Pods-ShieldFraudPlugin-acknowledgements.plist +39 -0
  47. package/ios/Pods/Target Support Files/Pods-ShieldFraudPlugin/Pods-ShieldFraudPlugin-dummy.m +5 -0
  48. package/ios/Pods/Target Support Files/Pods-ShieldFraudPlugin/Pods-ShieldFraudPlugin-umbrella.h +16 -0
  49. package/ios/Pods/Target Support Files/Pods-ShieldFraudPlugin/Pods-ShieldFraudPlugin.debug.xcconfig +13 -0
  50. package/ios/Pods/Target Support Files/Pods-ShieldFraudPlugin/Pods-ShieldFraudPlugin.modulemap +6 -0
  51. package/ios/Pods/Target Support Files/Pods-ShieldFraudPlugin/Pods-ShieldFraudPlugin.release.xcconfig +13 -0
  52. package/ios/Pods/Target Support Files/ShieldFraud/ShieldFraud-xcframeworks.sh +121 -0
  53. package/ios/Pods/Target Support Files/ShieldFraud/ShieldFraud.debug.xcconfig +14 -0
  54. package/ios/Pods/Target Support Files/ShieldFraud/ShieldFraud.release.xcconfig +14 -0
  55. package/ios/ShieldFraudPlugin.h +15 -0
  56. package/ios/ShieldFraudPlugin.m +90 -0
  57. package/ios/ShieldFraudPlugin.xcodeproj/project.pbxproj +326 -0
  58. package/ios/ShieldFraudPlugin.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  59. package/ios/ShieldFraudPlugin.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  60. package/ios/ShieldFraudPlugin.xcodeproj/project.xcworkspace/xcuserdata/deepakraj.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  61. package/ios/ShieldFraudPlugin.xcodeproj/xcuserdata/deepakraj.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  62. package/ios/ShieldFraudPlugin.xcworkspace/contents.xcworkspacedata +10 -0
  63. package/ios/ShieldFraudPlugin.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  64. package/ios/ShieldFraudPlugin.xcworkspace/xcuserdata/deepakraj.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  65. package/ios/ShieldFraudPlugin.xcworkspace/xcuserdata/deepakraj.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +6 -0
  66. package/lib/commonjs/index.js +150 -0
  67. package/lib/commonjs/index.js.map +1 -0
  68. package/lib/module/index.js +148 -0
  69. package/lib/module/index.js.map +1 -0
  70. package/lib/typescript/index.d.ts +100 -0
  71. package/lib/typescript/index.d.ts.map +1 -0
  72. package/package.json +160 -0
  73. package/react-native-shield-fraud-plugin.podspec +19 -0
  74. package/src/index.tsx +173 -0
@@ -0,0 +1,148 @@
1
+ import { NativeModules, NativeEventEmitter } from 'react-native';
2
+
3
+ /**
4
+ * Enum representing the log levels for ShieldFraud.
5
+ */
6
+ export let LogLevel = /*#__PURE__*/function (LogLevel) {
7
+ LogLevel[LogLevel["LogLevelDebug"] = 3] = "LogLevelDebug";
8
+ LogLevel[LogLevel["LogLevelInfo"] = 2] = "LogLevelInfo";
9
+ LogLevel[LogLevel["LogLevelNone"] = 1] = "LogLevelNone";
10
+ return LogLevel;
11
+ }({});
12
+
13
+ /**
14
+ * Enum representing the environment information for ShieldFraud.
15
+ */
16
+ export let EnvironmentInfo = /*#__PURE__*/function (EnvironmentInfo) {
17
+ EnvironmentInfo[EnvironmentInfo["EnvironmentProd"] = 0] = "EnvironmentProd";
18
+ EnvironmentInfo[EnvironmentInfo["EnvironmentDev"] = 1] = "EnvironmentDev";
19
+ EnvironmentInfo[EnvironmentInfo["EnvironmentStag"] = 2] = "EnvironmentStag";
20
+ return EnvironmentInfo;
21
+ }({});
22
+
23
+ /**
24
+ * Configuration object for initializing ShieldFraud.
25
+ */
26
+
27
+ /**
28
+ * Type definition for the success callback function.
29
+ */
30
+
31
+ /**
32
+ * Type definition for the failure callback function.
33
+ */
34
+
35
+ /**
36
+ * Type definition for the ShieldFraud callback functions.
37
+ */
38
+
39
+ /**
40
+ * The `ShieldFraud` class is a wrapper for the ShieldFraudPlugin native module in React Native.
41
+ * It provides methods for initializing ShieldFraud, retrieving session ID, checking the SDK readiness,
42
+ * sending attributes, and getting the latest device result.
43
+ */
44
+ class ShieldFraud {
45
+ /**
46
+ * The native module for accessing the ShieldFraudPlugin.
47
+ */
48
+ static PlatformWrapper = NativeModules.ShieldFraudPlugin;
49
+
50
+ /**
51
+ * The event emitter for listening to success and error events.
52
+ */
53
+ static eventEmitter = new NativeEventEmitter(ShieldFraud.PlatformWrapper);
54
+
55
+ /**
56
+ * Initializes the ShieldFraud plugin with the provided configuration.
57
+ *
58
+ * @param config - The configuration object containing the required properties.
59
+ * @param callbacks - (Optional) The callback functions for success and failure events.
60
+ */
61
+ static initShield(config, callbacks) {
62
+ const isOptimizedListener = !!callbacks;
63
+
64
+ // Set default values if logLevel is not provided
65
+ const logLevel = config.logLevel || LogLevel.LogLevelNone;
66
+
67
+ // Set default values if environmentInfo is not provided
68
+ const environmentInfo = config.environmentInfo || EnvironmentInfo.EnvironmentProd;
69
+
70
+ // Call the native method to initialize ShieldFraud with the provided configuration.
71
+ ShieldFraud.PlatformWrapper.initShield(config.siteID, config.secretKey, isOptimizedListener, config.blockedDialog, logLevel, environmentInfo);
72
+ if (isOptimizedListener ?? false) {
73
+ // Set up listeners for success and error events if callbacks are provided.
74
+ ShieldFraud.listeners(callbacks);
75
+ }
76
+ }
77
+
78
+ /**
79
+ * Sets up event listeners for success and error events.
80
+ *
81
+ * @param callbacks - The callback functions for success and failure events.
82
+ */
83
+ static listeners(callbacks) {
84
+ // Listen for success events and invoke the onSuccess callback if provided.
85
+ ShieldFraud.eventEmitter.addListener('success', data => {
86
+ if (callbacks !== null && callbacks !== void 0 && callbacks.onSuccess) {
87
+ callbacks.onSuccess(data);
88
+ }
89
+ });
90
+
91
+ // Listen for error events and invoke the onFailure callback if provided.
92
+ ShieldFraud.eventEmitter.addListener('error', error => {
93
+ if (callbacks !== null && callbacks !== void 0 && callbacks.onFailure) {
94
+ callbacks.onFailure(error);
95
+ }
96
+ });
97
+ }
98
+
99
+ /**
100
+ * Retrieves the session ID from the ShieldFraud plugin.
101
+ *
102
+ * @returns A Promise that resolves with the session ID.
103
+ */
104
+ static getSessionId() {
105
+ return ShieldFraud.PlatformWrapper.getSessionId();
106
+ }
107
+
108
+ /**
109
+ * Checks if the ShieldFraud SDK is ready and invokes the provided callback with the
110
+ * readiness state.
111
+ *
112
+ * @param callback - The callback function to be invoked with the readiness state.
113
+ */
114
+ static isSDKready(callback) {
115
+ ShieldFraud.PlatformWrapper.setDeviceResultStateListener(() => {
116
+ callback(true);
117
+ });
118
+ }
119
+
120
+ /**
121
+ * Sends attributes to the ShieldFraud plugin for a specific screen.
122
+ *
123
+ * @param screenName - The name of the screen.
124
+ * @param data - The attribute data object.
125
+ */
126
+ static sendAttributes(screenName, data) {
127
+ ShieldFraud.PlatformWrapper.sendAttributes(screenName, data);
128
+ }
129
+
130
+ /**
131
+ * Retrieves the latest device result from the ShieldFraud plugin.
132
+ *
133
+ * @returns A Promise that resolves with the latest device result object.
134
+ */
135
+ static getLatestDeviceResult() {
136
+ return new Promise((resolve, reject) => {
137
+ ShieldFraud.PlatformWrapper.getLatestDeviceResult(result => {
138
+ // Handle success with the result object
139
+ resolve(result);
140
+ }, error => {
141
+ // Handle error with the error object
142
+ reject(error);
143
+ });
144
+ });
145
+ }
146
+ }
147
+ export default ShieldFraud;
148
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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","isSDKready","callback","setDeviceResultStateListener","sendAttributes","screenName","getLatestDeviceResult","Promise","resolve","reject","result"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Enum representing the log levels for ShieldFraud.
3
+ */
4
+ export declare enum LogLevel {
5
+ LogLevelDebug = 3,
6
+ LogLevelInfo = 2,
7
+ LogLevelNone = 1
8
+ }
9
+ /**
10
+ * Enum representing the environment information for ShieldFraud.
11
+ */
12
+ export declare enum EnvironmentInfo {
13
+ EnvironmentProd = 0,
14
+ EnvironmentDev = 1,
15
+ EnvironmentStag = 2
16
+ }
17
+ /**
18
+ * Configuration object for initializing ShieldFraud.
19
+ */
20
+ export interface Config {
21
+ siteID: string;
22
+ secretKey: string;
23
+ blockedDialog?: {
24
+ title: string;
25
+ body: string;
26
+ } | null;
27
+ logLevel?: LogLevel;
28
+ environmentInfo?: EnvironmentInfo;
29
+ }
30
+ /**
31
+ * Type definition for the success callback function.
32
+ */
33
+ type SuccessCallback = (data: any) => void;
34
+ /**
35
+ * Type definition for the failure callback function.
36
+ */
37
+ type FailureCallback = (error: any) => void;
38
+ /**
39
+ * Type definition for the ShieldFraud callback functions.
40
+ */
41
+ export type ShieldCallback = {
42
+ onSuccess?: SuccessCallback;
43
+ onFailure?: FailureCallback;
44
+ };
45
+ /**
46
+ * The `ShieldFraud` class is a wrapper for the ShieldFraudPlugin native module in React Native.
47
+ * It provides methods for initializing ShieldFraud, retrieving session ID, checking the SDK readiness,
48
+ * sending attributes, and getting the latest device result.
49
+ */
50
+ declare class ShieldFraud {
51
+ /**
52
+ * The native module for accessing the ShieldFraudPlugin.
53
+ */
54
+ private static PlatformWrapper;
55
+ /**
56
+ * The event emitter for listening to success and error events.
57
+ */
58
+ private static eventEmitter;
59
+ /**
60
+ * Initializes the ShieldFraud plugin with the provided configuration.
61
+ *
62
+ * @param config - The configuration object containing the required properties.
63
+ * @param callbacks - (Optional) The callback functions for success and failure events.
64
+ */
65
+ static initShield(config: Config, callbacks?: ShieldCallback): void;
66
+ /**
67
+ * Sets up event listeners for success and error events.
68
+ *
69
+ * @param callbacks - The callback functions for success and failure events.
70
+ */
71
+ private static listeners;
72
+ /**
73
+ * Retrieves the session ID from the ShieldFraud plugin.
74
+ *
75
+ * @returns A Promise that resolves with the session ID.
76
+ */
77
+ static getSessionId(): Promise<string>;
78
+ /**
79
+ * Checks if the ShieldFraud SDK is ready and invokes the provided callback with the
80
+ * readiness state.
81
+ *
82
+ * @param callback - The callback function to be invoked with the readiness state.
83
+ */
84
+ static isSDKready(callback: (isReady: boolean) => void): void;
85
+ /**
86
+ * Sends attributes to the ShieldFraud plugin for a specific screen.
87
+ *
88
+ * @param screenName - The name of the screen.
89
+ * @param data - The attribute data object.
90
+ */
91
+ static sendAttributes(screenName: string, data: object): void;
92
+ /**
93
+ * Retrieves the latest device result from the ShieldFraud plugin.
94
+ *
95
+ * @returns A Promise that resolves with the latest device result object.
96
+ */
97
+ static getLatestDeviceResult(): Promise<object>;
98
+ }
99
+ export default ShieldFraud;
100
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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,CAAuD;IAElF;;;;;OAKG;WACW,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI;IAyB1E;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAgBxB;;;;OAIG;WACW,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7C;;;;;OAKG;WACW,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAMpE;;;;;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"}
package/package.json ADDED
@@ -0,0 +1,160 @@
1
+ {
2
+ "name": "react-native-shield-fraud-plugin",
3
+ "version": "1.0.0",
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
+ "main": "lib/commonjs/index",
6
+ "module": "lib/module/index",
7
+ "types": "lib/typescript/index.d.ts",
8
+ "react-native": "src/index",
9
+ "source": "src/index",
10
+ "files": [
11
+ "src",
12
+ "lib",
13
+ "android",
14
+ "ios",
15
+ "cpp",
16
+ "*.podspec",
17
+ "!lib/typescript/example",
18
+ "!ios/build",
19
+ "!android/build",
20
+ "!android/gradle",
21
+ "!android/gradlew",
22
+ "!android/gradlew.bat",
23
+ "!android/local.properties",
24
+ "!**/__tests__",
25
+ "!**/__fixtures__",
26
+ "!**/__mocks__",
27
+ "!**/.*"
28
+ ],
29
+ "scripts": {
30
+ "test": "jest",
31
+ "typecheck": "tsc --noEmit",
32
+ "lint": "eslint \"**/*.{js,ts,tsx}\"",
33
+ "prepack": "bob build",
34
+ "release": "release-it",
35
+ "example": "yarn --cwd example",
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"
38
+ },
39
+ "keywords": [
40
+ "react-native",
41
+ "ios",
42
+ "android",
43
+ "shieldfraud",
44
+ "device-intelligence",
45
+ "mobile-fingerprint"
46
+ ],
47
+ "repository": "https://github.com/rajdeepak27/react-native-shield-fraud-plugin",
48
+ "author": "shield.com <deepakraj.m@shield.com> (https://github.com/rajdeepak27)",
49
+ "license": "MIT",
50
+ "bugs": {
51
+ "url": "https://github.com/rajdeepak27/react-native-shield-fraud-plugin/issues"
52
+ },
53
+ "homepage": "https://github.com/rajdeepak27/react-native-shield-fraud-plugin#readme",
54
+ "devDependencies": {
55
+ "@evilmartians/lefthook": "^1.2.2",
56
+ "@commitlint/config-conventional": "^17.0.2",
57
+ "@react-native-community/eslint-config": "^3.0.2",
58
+ "@release-it/conventional-changelog": "^5.0.0",
59
+ "@types/jest": "^28.1.2",
60
+ "@types/react": "~17.0.21",
61
+ "@types/react-native": "0.70.0",
62
+ "commitlint": "^17.0.2",
63
+ "del-cli": "^5.0.0",
64
+ "eslint": "^8.4.1",
65
+ "eslint-config-prettier": "^8.5.0",
66
+ "eslint-plugin-prettier": "^4.0.0",
67
+ "jest": "^28.1.1",
68
+ "pod-install": "^0.1.0",
69
+ "prettier": "^2.0.5",
70
+ "react": "18.2.0",
71
+ "react-native": "0.71.7",
72
+ "react-native-builder-bob": "^0.20.0",
73
+ "release-it": "^15.0.0",
74
+ "typescript": "^4.5.2"
75
+ },
76
+ "resolutions": {
77
+ "@types/react": "17.0.21"
78
+ },
79
+ "peerDependencies": {
80
+ "react": "*",
81
+ "react-native": "*"
82
+ },
83
+ "engines": {
84
+ "node": ">= 16.0.0"
85
+ },
86
+ "packageManager": "^yarn@1.22.15",
87
+ "jest": {
88
+ "preset": "react-native",
89
+ "modulePathIgnorePatterns": [
90
+ "<rootDir>/example/node_modules",
91
+ "<rootDir>/lib/"
92
+ ]
93
+ },
94
+ "commitlint": {
95
+ "extends": [
96
+ "@commitlint/config-conventional"
97
+ ]
98
+ },
99
+ "release-it": {
100
+ "git": {
101
+ "commitMessage": "chore: release ${version}",
102
+ "tagName": "v${version}"
103
+ },
104
+ "npm": {
105
+ "publish": true
106
+ },
107
+ "github": {
108
+ "release": true
109
+ },
110
+ "plugins": {
111
+ "@release-it/conventional-changelog": {
112
+ "preset": "angular"
113
+ }
114
+ }
115
+ },
116
+ "eslintConfig": {
117
+ "root": true,
118
+ "extends": [
119
+ "@react-native-community",
120
+ "prettier"
121
+ ],
122
+ "rules": {
123
+ "prettier/prettier": [
124
+ "error",
125
+ {
126
+ "quoteProps": "consistent",
127
+ "singleQuote": true,
128
+ "tabWidth": 2,
129
+ "trailingComma": "es5",
130
+ "useTabs": false
131
+ }
132
+ ]
133
+ }
134
+ },
135
+ "eslintIgnore": [
136
+ "node_modules/",
137
+ "lib/"
138
+ ],
139
+ "prettier": {
140
+ "quoteProps": "consistent",
141
+ "singleQuote": true,
142
+ "tabWidth": 2,
143
+ "trailingComma": "es5",
144
+ "useTabs": false
145
+ },
146
+ "react-native-builder-bob": {
147
+ "source": "src",
148
+ "output": "lib",
149
+ "targets": [
150
+ "commonjs",
151
+ "module",
152
+ [
153
+ "typescript",
154
+ {
155
+ "project": "tsconfig.build.json"
156
+ }
157
+ ]
158
+ ]
159
+ }
160
+ }
@@ -0,0 +1,19 @@
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 = "react-native-shield-fraud-plugin"
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 => "11.0" }
14
+ s.source = { :git => "https://github.com/rajdeepak27/react-native-shield-fraud-plugin.git", :tag => "#{s.version}" }
15
+
16
+ s.source_files = "ios/**/*.{h,m,mm}"
17
+ s.dependency "React"
18
+ s.dependency "ShieldFraud"
19
+ end
package/src/index.tsx ADDED
@@ -0,0 +1,173 @@
1
+ import { NativeModules, NativeEventEmitter } from 'react-native';
2
+
3
+ /**
4
+ * Enum representing the log levels for ShieldFraud.
5
+ */
6
+ export enum LogLevel {
7
+ LogLevelDebug = 3,
8
+ LogLevelInfo = 2,
9
+ LogLevelNone = 1,
10
+ }
11
+
12
+ /**
13
+ * Enum representing the environment information for ShieldFraud.
14
+ */
15
+ export enum EnvironmentInfo {
16
+ EnvironmentProd = 0,
17
+ EnvironmentDev = 1,
18
+ EnvironmentStag = 2,
19
+ }
20
+
21
+ /**
22
+ * Configuration object for initializing ShieldFraud.
23
+ */
24
+ export interface Config {
25
+ siteID: string;
26
+ secretKey: string;
27
+ blockedDialog?: {
28
+ title: string;
29
+ body: string;
30
+ } | null;
31
+ logLevel?: LogLevel;
32
+ environmentInfo?: EnvironmentInfo;
33
+ }
34
+
35
+ /**
36
+ * Type definition for the success callback function.
37
+ */
38
+ type SuccessCallback = (data: any) => void;
39
+
40
+ /**
41
+ * Type definition for the failure callback function.
42
+ */
43
+ type FailureCallback = (error: any) => void;
44
+
45
+ /**
46
+ * Type definition for the ShieldFraud callback functions.
47
+ */
48
+ export type ShieldCallback = {
49
+ onSuccess?: SuccessCallback;
50
+ onFailure?: FailureCallback;
51
+ };
52
+
53
+ /**
54
+ * The `ShieldFraud` class is a wrapper for the ShieldFraudPlugin native module in React Native.
55
+ * It provides methods for initializing ShieldFraud, retrieving session ID, checking the SDK readiness,
56
+ * sending attributes, and getting the latest device result.
57
+ */
58
+ class ShieldFraud {
59
+ /**
60
+ * The native module for accessing the ShieldFraudPlugin.
61
+ */
62
+ private static PlatformWrapper = NativeModules.ShieldFraudPlugin;
63
+
64
+ /**
65
+ * The event emitter for listening to success and error events.
66
+ */
67
+ private static eventEmitter = new NativeEventEmitter(ShieldFraud.PlatformWrapper);
68
+
69
+ /**
70
+ * Initializes the ShieldFraud plugin with the provided configuration.
71
+ *
72
+ * @param config - The configuration object containing the required properties.
73
+ * @param callbacks - (Optional) The callback functions for success and failure events.
74
+ */
75
+ public static initShield(config: Config, callbacks?: ShieldCallback): void {
76
+ const isOptimizedListener = !!callbacks;
77
+
78
+ // Set default values if logLevel is not provided
79
+ const logLevel = config.logLevel || LogLevel.LogLevelNone;
80
+
81
+ // Set default values if environmentInfo is not provided
82
+ const environmentInfo = config.environmentInfo || EnvironmentInfo.EnvironmentProd;
83
+
84
+ // Call the native method to initialize ShieldFraud with the provided configuration.
85
+ ShieldFraud.PlatformWrapper.initShield(
86
+ config.siteID,
87
+ config.secretKey,
88
+ isOptimizedListener,
89
+ config.blockedDialog,
90
+ logLevel,
91
+ environmentInfo
92
+ );
93
+
94
+ if (isOptimizedListener ?? false) {
95
+ // Set up listeners for success and error events if callbacks are provided.
96
+ ShieldFraud.listeners(callbacks);
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Sets up event listeners for success and error events.
102
+ *
103
+ * @param callbacks - The callback functions for success and failure events.
104
+ */
105
+ private static listeners(callbacks?: ShieldCallback): void {
106
+ // Listen for success events and invoke the onSuccess callback if provided.
107
+ ShieldFraud.eventEmitter.addListener('success', (data) => {
108
+ if (callbacks?.onSuccess) {
109
+ callbacks.onSuccess(data);
110
+ }
111
+ });
112
+
113
+ // Listen for error events and invoke the onFailure callback if provided.
114
+ ShieldFraud.eventEmitter.addListener('error', (error) => {
115
+ if (callbacks?.onFailure) {
116
+ callbacks.onFailure(error);
117
+ }
118
+ });
119
+ }
120
+
121
+ /**
122
+ * Retrieves the session ID from the ShieldFraud plugin.
123
+ *
124
+ * @returns A Promise that resolves with the session ID.
125
+ */
126
+ public static getSessionId(): Promise<string> {
127
+ return ShieldFraud.PlatformWrapper.getSessionId();
128
+ }
129
+
130
+ /**
131
+ * Checks if the ShieldFraud SDK is ready and invokes the provided callback with the
132
+ * readiness state.
133
+ *
134
+ * @param callback - The callback function to be invoked with the readiness state.
135
+ */
136
+ public static isSDKready(callback: (isReady: boolean) => void): void {
137
+ ShieldFraud.PlatformWrapper.setDeviceResultStateListener(() => {
138
+ callback(true);
139
+ });
140
+ }
141
+
142
+ /**
143
+ * Sends attributes to the ShieldFraud plugin for a specific screen.
144
+ *
145
+ * @param screenName - The name of the screen.
146
+ * @param data - The attribute data object.
147
+ */
148
+ public static sendAttributes(screenName: string, data: object): void {
149
+ ShieldFraud.PlatformWrapper.sendAttributes(screenName, data);
150
+ }
151
+
152
+ /**
153
+ * Retrieves the latest device result from the ShieldFraud plugin.
154
+ *
155
+ * @returns A Promise that resolves with the latest device result object.
156
+ */
157
+ public static getLatestDeviceResult(): Promise<object> {
158
+ return new Promise((resolve, reject) => {
159
+ ShieldFraud.PlatformWrapper.getLatestDeviceResult(
160
+ (result: object) => {
161
+ // Handle success with the result object
162
+ resolve(result);
163
+ },
164
+ (error: object) => {
165
+ // Handle error with the error object
166
+ reject(error);
167
+ }
168
+ );
169
+ });
170
+ }
171
+ }
172
+
173
+ export default ShieldFraud;