react-native-device-defense 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 (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +236 -0
  3. package/android/build.gradle +90 -0
  4. package/android/proguard-rules.pro +28 -0
  5. package/android/src/main/AndroidManifest.xml +4 -0
  6. package/android/src/main/cpp/CMakeLists.txt +45 -0
  7. package/android/src/main/cpp/device-security.cpp +314 -0
  8. package/android/src/main/java/vn/osp/security/DebugDetection.kt +131 -0
  9. package/android/src/main/java/vn/osp/security/DeviceSecurityModule.kt +277 -0
  10. package/android/src/main/java/vn/osp/security/DeviceSecurityPackage.kt +58 -0
  11. package/android/src/main/java/vn/osp/security/EmulatorDetection.kt +204 -0
  12. package/android/src/main/java/vn/osp/security/HookDetection.kt +270 -0
  13. package/android/src/main/java/vn/osp/security/NativeSecurityCheck.kt +66 -0
  14. package/android/src/main/java/vn/osp/security/RootDetection.kt +349 -0
  15. package/lib/commonjs/NativeDeviceSecurity.js +9 -0
  16. package/lib/commonjs/NativeDeviceSecurity.js.map +1 -0
  17. package/lib/commonjs/api.js +213 -0
  18. package/lib/commonjs/api.js.map +1 -0
  19. package/lib/commonjs/components/SecurityBlockedScreen.js +177 -0
  20. package/lib/commonjs/components/SecurityBlockedScreen.js.map +1 -0
  21. package/lib/commonjs/components/index.js +13 -0
  22. package/lib/commonjs/components/index.js.map +1 -0
  23. package/lib/commonjs/hooks/index.js +13 -0
  24. package/lib/commonjs/hooks/index.js.map +1 -0
  25. package/lib/commonjs/hooks/useDeviceSecurity.js +81 -0
  26. package/lib/commonjs/hooks/useDeviceSecurity.js.map +1 -0
  27. package/lib/commonjs/index.js +48 -0
  28. package/lib/commonjs/index.js.map +1 -0
  29. package/lib/commonjs/types.js +2 -0
  30. package/lib/commonjs/types.js.map +1 -0
  31. package/lib/module/NativeDeviceSecurity.js +3 -0
  32. package/lib/module/NativeDeviceSecurity.js.map +1 -0
  33. package/lib/module/api.js +206 -0
  34. package/lib/module/api.js.map +1 -0
  35. package/lib/module/components/SecurityBlockedScreen.js +169 -0
  36. package/lib/module/components/SecurityBlockedScreen.js.map +1 -0
  37. package/lib/module/components/index.js +2 -0
  38. package/lib/module/components/index.js.map +1 -0
  39. package/lib/module/hooks/index.js +2 -0
  40. package/lib/module/hooks/index.js.map +1 -0
  41. package/lib/module/hooks/useDeviceSecurity.js +73 -0
  42. package/lib/module/hooks/useDeviceSecurity.js.map +1 -0
  43. package/lib/module/index.js +21 -0
  44. package/lib/module/index.js.map +1 -0
  45. package/lib/module/types.js +2 -0
  46. package/lib/module/types.js.map +1 -0
  47. package/lib/typescript/NativeDeviceSecurity.d.ts +16 -0
  48. package/lib/typescript/NativeDeviceSecurity.d.ts.map +1 -0
  49. package/lib/typescript/api.d.ts +55 -0
  50. package/lib/typescript/api.d.ts.map +1 -0
  51. package/lib/typescript/components/SecurityBlockedScreen.d.ts +23 -0
  52. package/lib/typescript/components/SecurityBlockedScreen.d.ts.map +1 -0
  53. package/lib/typescript/components/index.d.ts +2 -0
  54. package/lib/typescript/components/index.d.ts.map +1 -0
  55. package/lib/typescript/hooks/index.d.ts +3 -0
  56. package/lib/typescript/hooks/index.d.ts.map +1 -0
  57. package/lib/typescript/hooks/useDeviceSecurity.d.ts +7 -0
  58. package/lib/typescript/hooks/useDeviceSecurity.d.ts.map +1 -0
  59. package/lib/typescript/index.d.ts +12 -0
  60. package/lib/typescript/index.d.ts.map +1 -0
  61. package/lib/typescript/types.d.ts +81 -0
  62. package/lib/typescript/types.d.ts.map +1 -0
  63. package/package.json +72 -0
  64. package/react-native-device-security.podspec +18 -0
  65. package/src/NativeDeviceSecurity.ts +33 -0
  66. package/src/api.ts +225 -0
  67. package/src/components/SecurityBlockedScreen.tsx +204 -0
  68. package/src/components/index.ts +1 -0
  69. package/src/hooks/index.ts +5 -0
  70. package/src/hooks/useDeviceSecurity.ts +91 -0
  71. package/src/index.ts +27 -0
  72. package/src/types.ts +95 -0
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.DeviceSecurity = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _NativeDeviceSecurity = _interopRequireDefault(require("./NativeDeviceSecurity"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ /**
11
+ * DeviceSecurity API
12
+ * Main singleton class for device security checks
13
+ */
14
+
15
+ /**
16
+ * Main DeviceSecurity API class
17
+ */
18
+ class DeviceSecurity {
19
+ /**
20
+ * Check if device is secure (no security threats)
21
+ */
22
+ async isDeviceSecure() {
23
+ if (_reactNative.Platform.OS !== 'android') {
24
+ // iOS: no-op for now, return true
25
+ return true;
26
+ }
27
+ try {
28
+ return await _NativeDeviceSecurity.default.isDeviceSecure();
29
+ } catch (error) {
30
+ console.error('DeviceSecurity: Error checking device security', error);
31
+ return false;
32
+ }
33
+ }
34
+
35
+ /**
36
+ * Get detailed security status
37
+ */
38
+ async getSecurityStatus() {
39
+ if (_reactNative.Platform.OS !== 'android') {
40
+ // iOS: no-op for now, return secure status
41
+ return {
42
+ isSecure: true,
43
+ threats: [],
44
+ isRooted: false,
45
+ hasRootBeerDetected: false,
46
+ hasNativeRootDetected: false,
47
+ hasDangerousBins: false,
48
+ hasRootApps: false,
49
+ hasSystemPropsModified: false,
50
+ hasFrida: false,
51
+ hasXposed: false,
52
+ hasMagisk: false,
53
+ isDebuggable: false,
54
+ isEmulator: false
55
+ };
56
+ }
57
+ try {
58
+ const statusJson = await _NativeDeviceSecurity.default.getSecurityStatus();
59
+ return JSON.parse(statusJson);
60
+ } catch (error) {
61
+ console.error('DeviceSecurity: Error getting security status', error);
62
+ return this.getDefaultSecurityStatus();
63
+ }
64
+ }
65
+
66
+ /**
67
+ * Check if device is rooted (synchronous, Android only)
68
+ */
69
+ isRooted() {
70
+ if (_reactNative.Platform.OS !== 'android') {
71
+ return false;
72
+ }
73
+ try {
74
+ return _NativeDeviceSecurity.default.isRooted();
75
+ } catch (error) {
76
+ console.error('DeviceSecurity: Error checking root status', error);
77
+ return false;
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Check if Frida is present
83
+ */
84
+ hasFrida() {
85
+ if (_reactNative.Platform.OS !== 'android') {
86
+ return false;
87
+ }
88
+ try {
89
+ return _NativeDeviceSecurity.default.hasFrida();
90
+ } catch (error) {
91
+ console.error('DeviceSecurity: Error checking Frida', error);
92
+ return false;
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Check if Xposed framework is present
98
+ */
99
+ hasXposed() {
100
+ if (_reactNative.Platform.OS !== 'android') {
101
+ return false;
102
+ }
103
+ try {
104
+ return _NativeDeviceSecurity.default.hasXposed();
105
+ } catch (error) {
106
+ console.error('DeviceSecurity: Error checking Xposed', error);
107
+ return false;
108
+ }
109
+ }
110
+
111
+ /**
112
+ * Check if Magisk is present
113
+ */
114
+ hasMagisk() {
115
+ if (_reactNative.Platform.OS !== 'android') {
116
+ return false;
117
+ }
118
+ try {
119
+ return _NativeDeviceSecurity.default.hasMagisk();
120
+ } catch (error) {
121
+ console.error('DeviceSecurity: Error checking Magisk', error);
122
+ return false;
123
+ }
124
+ }
125
+
126
+ /**
127
+ * Check if app is debuggable
128
+ */
129
+ isDebuggable() {
130
+ if (_reactNative.Platform.OS !== 'android') {
131
+ return false;
132
+ }
133
+ try {
134
+ return _NativeDeviceSecurity.default.isDebuggable();
135
+ } catch (error) {
136
+ console.error('DeviceSecurity: Error checking debuggable', error);
137
+ return false;
138
+ }
139
+ }
140
+
141
+ /**
142
+ * Check if running on emulator
143
+ */
144
+ isEmulator() {
145
+ if (_reactNative.Platform.OS !== 'android') {
146
+ return false;
147
+ }
148
+ try {
149
+ return _NativeDeviceSecurity.default.isEmulator();
150
+ } catch (error) {
151
+ console.error('DeviceSecurity: Error checking emulator', error);
152
+ return false;
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Block app when security threat detected
158
+ * This will show an alert and potentially exit the app
159
+ */
160
+ blockOnSecurityThreat(options = {}) {
161
+ if (_reactNative.Platform.OS !== 'android') {
162
+ return;
163
+ }
164
+ const {
165
+ showAlert = true,
166
+ alertTitle = 'Security Warning',
167
+ alertMessage = 'This device is not secure. The app cannot run on rooted or modified devices.',
168
+ alertButtonText = 'OK',
169
+ onBlocked
170
+ } = options;
171
+ try {
172
+ _NativeDeviceSecurity.default.blockOnSecurityThreat(showAlert, alertTitle, alertMessage, alertButtonText);
173
+
174
+ // Call callback if provided
175
+ if (onBlocked) {
176
+ // Get status for callback
177
+ this.getSecurityStatus().then(status => {
178
+ onBlocked(status);
179
+ });
180
+ }
181
+ } catch (error) {
182
+ console.error('DeviceSecurity: Error blocking on security threat', error);
183
+ }
184
+ }
185
+
186
+ /**
187
+ * Get default security status (error case)
188
+ */
189
+ getDefaultSecurityStatus() {
190
+ return {
191
+ isSecure: false,
192
+ threats: ['emulator_detected'],
193
+ // Mark as threat on error to be safe
194
+ isRooted: false,
195
+ hasRootBeerDetected: false,
196
+ hasNativeRootDetected: false,
197
+ hasDangerousBins: false,
198
+ hasRootApps: false,
199
+ hasSystemPropsModified: false,
200
+ hasFrida: false,
201
+ hasXposed: false,
202
+ hasMagisk: false,
203
+ isDebuggable: false,
204
+ isEmulator: false
205
+ };
206
+ }
207
+ }
208
+
209
+ // Export singleton instance
210
+ exports.DeviceSecurity = DeviceSecurity;
211
+ const deviceSecurityInstance = new DeviceSecurity();
212
+ var _default = exports.default = deviceSecurityInstance;
213
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_NativeDeviceSecurity","_interopRequireDefault","e","__esModule","default","DeviceSecurity","isDeviceSecure","Platform","OS","NativeDeviceSecurity","error","console","getSecurityStatus","isSecure","threats","isRooted","hasRootBeerDetected","hasNativeRootDetected","hasDangerousBins","hasRootApps","hasSystemPropsModified","hasFrida","hasXposed","hasMagisk","isDebuggable","isEmulator","statusJson","JSON","parse","getDefaultSecurityStatus","blockOnSecurityThreat","options","showAlert","alertTitle","alertMessage","alertButtonText","onBlocked","then","status","exports","deviceSecurityInstance","_default"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.SecurityBlockedScreen = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ /**
11
+ * SecurityBlockedScreen.tsx
12
+ *
13
+ * Screen to display when app is blocked due to security threats
14
+ */
15
+
16
+ const THREAT_TITLES = {
17
+ root_detected: 'Thiết bị đã root',
18
+ root_beer_detected: 'Phát hiện root (RootBeer)',
19
+ native_root_detected: 'Phát hiện root (Native)',
20
+ dangerous_bins_detected: 'Phát hiện binary nguy hiểm',
21
+ root_apps_detected: 'Phát hiện ứng dụng root',
22
+ system_props_modified: 'Thuộc tính hệ thống đã sửa đổi',
23
+ frida_detected: 'Phát hiện Frida (Hooking)',
24
+ xposed_detected: 'Phát hiện Xposed Framework',
25
+ magisk_detected: 'Phát hiện Magisk',
26
+ debugger_detected: 'Phát hiện Debugger',
27
+ emulator_detected: 'Phát hiện Bộ giả lập'
28
+ };
29
+ const THREAT_DESCRIPTIONS = {
30
+ root_detected: 'Thiết bị của bạn đã được root, làm giảm tính bảo mật của ứng dụng.',
31
+ root_beer_detected: 'Công cụ phát hiện root đã phát hiện thiết bị đã bị can thiệp.',
32
+ native_root_detected: 'Phát hiện native root - thiết bị có thể đã bị sửa đổi.',
33
+ dangerous_bins_detected: 'Phát hiện các file thực thi nguy hiểm trên thiết bị.',
34
+ root_apps_detected: 'Phát hiện ứng dụng quản lý root trên thiết bị.',
35
+ system_props_modified: 'Các thuộc tính hệ thống quan trọng đã bị sửa đổi.',
36
+ frida_detected: 'Phát hiện công cụ Frida - thường dùng để can thiệp vào ứng dụng.',
37
+ xposed_detected: 'Phát hiện Xposed Framework - có thể can thiệp vào ứng dụng.',
38
+ magisk_detected: 'Phát hiện Magisk - công cụ root ẩn danh.',
39
+ debugger_detected: 'Phát hiện debugger đang gắn vào ứng dụng.',
40
+ emulator_detected: 'Ứng dụng đang chạy trên bộ giả lập, không an toàn cho môi trường production.'
41
+ };
42
+
43
+ /**
44
+ * Default security blocked screen component
45
+ */
46
+ const SecurityBlockedScreen = ({
47
+ threats = [],
48
+ title = 'Cảnh báo bảo mật',
49
+ message = 'Thiết bị của bạn không đáp ứng yêu cầu bảo mật. Ứng dụng không thể tiếp tục chạy.',
50
+ icon
51
+ }) => {
52
+ return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, {
53
+ style: styles.container
54
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
55
+ contentContainerStyle: styles.scrollContent,
56
+ bounces: false
57
+ }, icon || /*#__PURE__*/_react.default.createElement(_reactNative.View, {
58
+ style: styles.iconContainer
59
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
60
+ style: styles.icon
61
+ }, "\uD83D\uDD12")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
62
+ style: styles.title
63
+ }, title), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
64
+ style: styles.message
65
+ }, message), threats.length > 0 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
66
+ style: styles.threatsTitle
67
+ }, "V\u1EA5n \u0111\u1EC1 ph\xE1t hi\u1EC7n:"), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
68
+ style: styles.threatsList
69
+ }, threats.map(threat => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
70
+ key: threat,
71
+ style: styles.threatItem
72
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
73
+ style: styles.bullet
74
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
75
+ style: styles.threatContent
76
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
77
+ style: styles.threatTitle
78
+ }, THREAT_TITLES[threat] || threat), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
79
+ style: styles.threatDescription
80
+ }, THREAT_DESCRIPTIONS[threat] || 'Vấn đề bảo mật không xác định.')))))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
81
+ style: styles.footer
82
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
83
+ style: styles.footerText
84
+ }, "N\u1EBFu b\u1EA1n cho r\u1EB1ng \u0111\xE2y l\xE0 s\u1EF1 nh\u1EA7m l\u1EABn, vui l\xF2ng li\xEAn h\u1EC7 v\u1EDBi b\u1ED9 ph\u1EADn h\u1ED7 tr\u1EE3."))));
85
+ };
86
+ exports.SecurityBlockedScreen = SecurityBlockedScreen;
87
+ const styles = _reactNative.StyleSheet.create({
88
+ container: {
89
+ flex: 1,
90
+ backgroundColor: '#f5f5f5'
91
+ },
92
+ scrollContent: {
93
+ padding: 24,
94
+ alignItems: 'center'
95
+ },
96
+ iconContainer: {
97
+ width: 100,
98
+ height: 100,
99
+ borderRadius: 50,
100
+ backgroundColor: '#ffebee',
101
+ justifyContent: 'center',
102
+ alignItems: 'center',
103
+ marginBottom: 24
104
+ },
105
+ icon: {
106
+ fontSize: 48
107
+ },
108
+ title: {
109
+ fontSize: 24,
110
+ fontWeight: '700',
111
+ color: '#d32f2f',
112
+ textAlign: 'center',
113
+ marginBottom: 12
114
+ },
115
+ message: {
116
+ fontSize: 16,
117
+ color: '#424242',
118
+ textAlign: 'center',
119
+ marginBottom: 24,
120
+ lineHeight: 24
121
+ },
122
+ threatsTitle: {
123
+ fontSize: 18,
124
+ fontWeight: '600',
125
+ color: '#212121',
126
+ alignSelf: 'flex-start',
127
+ marginBottom: 16
128
+ },
129
+ threatsList: {
130
+ width: '100%',
131
+ marginBottom: 24
132
+ },
133
+ threatItem: {
134
+ flexDirection: 'row',
135
+ backgroundColor: '#ffffff',
136
+ borderRadius: 8,
137
+ padding: 16,
138
+ marginBottom: 12,
139
+ borderLeftWidth: 4,
140
+ borderLeftColor: '#d32f2f'
141
+ },
142
+ bullet: {
143
+ width: 8,
144
+ height: 8,
145
+ borderRadius: 4,
146
+ backgroundColor: '#d32f2f',
147
+ marginTop: 6,
148
+ marginRight: 12
149
+ },
150
+ threatContent: {
151
+ flex: 1
152
+ },
153
+ threatTitle: {
154
+ fontSize: 16,
155
+ fontWeight: '600',
156
+ color: '#212121',
157
+ marginBottom: 4
158
+ },
159
+ threatDescription: {
160
+ fontSize: 14,
161
+ color: '#757575',
162
+ lineHeight: 20
163
+ },
164
+ footer: {
165
+ marginTop: 24,
166
+ paddingTop: 24,
167
+ borderTopWidth: 1,
168
+ borderTopColor: '#e0e0e0'
169
+ },
170
+ footerText: {
171
+ fontSize: 14,
172
+ color: '#9e9e9e',
173
+ textAlign: 'center'
174
+ }
175
+ });
176
+ var _default = exports.default = SecurityBlockedScreen;
177
+ //# sourceMappingURL=SecurityBlockedScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","THREAT_TITLES","root_detected","root_beer_detected","native_root_detected","dangerous_bins_detected","root_apps_detected","system_props_modified","frida_detected","xposed_detected","magisk_detected","debugger_detected","emulator_detected","THREAT_DESCRIPTIONS","SecurityBlockedScreen","threats","title","message","icon","createElement","SafeAreaView","style","styles","container","ScrollView","contentContainerStyle","scrollContent","bounces","View","iconContainer","Text","length","Fragment","threatsTitle","threatsList","map","threat","key","threatItem","bullet","threatContent","threatTitle","threatDescription","footer","footerText","exports","StyleSheet","create","flex","backgroundColor","padding","alignItems","width","height","borderRadius","justifyContent","marginBottom","fontSize","fontWeight","color","textAlign","lineHeight","alignSelf","flexDirection","borderLeftWidth","borderLeftColor","marginTop","marginRight","paddingTop","borderTopWidth","borderTopColor","_default"],"sourceRoot":"../../../src","sources":["components/SecurityBlockedScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "SecurityBlockedScreen", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _SecurityBlockedScreen.SecurityBlockedScreen;
10
+ }
11
+ });
12
+ var _SecurityBlockedScreen = require("./SecurityBlockedScreen");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_SecurityBlockedScreen","require"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useDeviceSecurity", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _useDeviceSecurity.useDeviceSecurity;
10
+ }
11
+ });
12
+ var _useDeviceSecurity = require("./useDeviceSecurity");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_useDeviceSecurity","require"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.useDeviceSecurity = useDeviceSecurity;
8
+ var _react = require("react");
9
+ var _reactNative = require("react-native");
10
+ var _api = _interopRequireDefault(require("../api"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ /**
13
+ * React hook for device security
14
+ */
15
+
16
+ function useDeviceSecurity(options = {}) {
17
+ const {
18
+ onSecurityThreat,
19
+ blockOnThreat = false,
20
+ blockOptions,
21
+ checkInterval = 0
22
+ } = options;
23
+ const [isSecure, setIsSecure] = (0, _react.useState)(null);
24
+ const [isLoading, setIsLoading] = (0, _react.useState)(true);
25
+ const [securityStatus, setSecurityStatus] = (0, _react.useState)(null);
26
+ const [error, setError] = (0, _react.useState)(null);
27
+ const checkSecurity = (0, _react.useCallback)(async () => {
28
+ if (_reactNative.Platform.OS !== 'android') {
29
+ setIsSecure(true);
30
+ setIsLoading(false);
31
+ return;
32
+ }
33
+ try {
34
+ setIsLoading(true);
35
+ setError(null);
36
+ const status = await _api.default.getSecurityStatus();
37
+ setSecurityStatus(status);
38
+ setIsSecure(status.isSecure);
39
+
40
+ // Handle security threats
41
+ if (!status.isSecure) {
42
+ // Call callback for each threat
43
+ for (const threat of status.threats) {
44
+ onSecurityThreat === null || onSecurityThreat === void 0 || onSecurityThreat(threat, status);
45
+ }
46
+
47
+ // Block if requested
48
+ if (blockOnThreat) {
49
+ _api.default.blockOnSecurityThreat(blockOptions);
50
+ }
51
+ }
52
+ } catch (err) {
53
+ const errorObj = err instanceof Error ? err : new Error('Security check failed');
54
+ setError(errorObj);
55
+ setIsSecure(false);
56
+ } finally {
57
+ setIsLoading(false);
58
+ }
59
+ }, [onSecurityThreat, blockOnThreat, blockOptions]);
60
+ const recheck = (0, _react.useCallback)(async () => {
61
+ await checkSecurity();
62
+ }, [checkSecurity]);
63
+ (0, _react.useEffect)(() => {
64
+ checkSecurity();
65
+
66
+ // Set up interval if specified
67
+ if (checkInterval > 0) {
68
+ const intervalId = setInterval(checkSecurity, checkInterval);
69
+ return () => clearInterval(intervalId);
70
+ }
71
+ }, [checkSecurity, checkInterval]);
72
+ return {
73
+ isSecure,
74
+ isLoading,
75
+ securityStatus,
76
+ error,
77
+ recheck
78
+ };
79
+ }
80
+ var _default = exports.default = useDeviceSecurity;
81
+ //# sourceMappingURL=useDeviceSecurity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_api","_interopRequireDefault","e","__esModule","default","useDeviceSecurity","options","onSecurityThreat","blockOnThreat","blockOptions","checkInterval","isSecure","setIsSecure","useState","isLoading","setIsLoading","securityStatus","setSecurityStatus","error","setError","checkSecurity","useCallback","Platform","OS","status","deviceSecurity","getSecurityStatus","threat","threats","blockOnSecurityThreat","err","errorObj","Error","recheck","useEffect","intervalId","setInterval","clearInterval","_default","exports"],"sourceRoot":"../../../src","sources":["hooks/useDeviceSecurity.ts"],"mappings":";;;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAC,sBAAA,CAAAH,OAAA;AAAoC,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AANpC;AACA;AACA;;AAWO,SAASG,iBAAiBA,CAC/BC,OAAiC,GAAG,CAAC,CAAC,EACb;EACzB,MAAM;IACJC,gBAAgB;IAChBC,aAAa,GAAG,KAAK;IACrBC,YAAY;IACZC,aAAa,GAAG;EAClB,CAAC,GAAGJ,OAAO;EAEX,MAAM,CAACK,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAiB,IAAI,CAAC;EAC9D,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAF,eAAQ,EAAC,IAAI,CAAC;EAChD,MAAM,CAACG,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAJ,eAAQ,EAClD,IACF,CAAC;EACD,MAAM,CAACK,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAN,eAAQ,EAAe,IAAI,CAAC;EAEtD,MAAMO,aAAa,GAAG,IAAAC,kBAAW,EAAC,YAAY;IAC5C,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7BX,WAAW,CAAC,IAAI,CAAC;MACjBG,YAAY,CAAC,KAAK,CAAC;MACnB;IACF;IAEA,IAAI;MACFA,YAAY,CAAC,IAAI,CAAC;MAClBI,QAAQ,CAAC,IAAI,CAAC;MAEd,MAAMK,MAAM,GAAG,MAAMC,YAAc,CAACC,iBAAiB,CAAC,CAAC;MACvDT,iBAAiB,CAACO,MAAM,CAAC;MACzBZ,WAAW,CAACY,MAAM,CAACb,QAAQ,CAAC;;MAE5B;MACA,IAAI,CAACa,MAAM,CAACb,QAAQ,EAAE;QACpB;QACA,KAAK,MAAMgB,MAAM,IAAIH,MAAM,CAACI,OAAO,EAAE;UACnCrB,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAGoB,MAAM,EAAEH,MAAM,CAAC;QACpC;;QAEA;QACA,IAAIhB,aAAa,EAAE;UACjBiB,YAAc,CAACI,qBAAqB,CAACpB,YAAY,CAAC;QACpD;MACF;IACF,CAAC,CAAC,OAAOqB,GAAG,EAAE;MACZ,MAAMC,QAAQ,GACZD,GAAG,YAAYE,KAAK,GAAGF,GAAG,GAAG,IAAIE,KAAK,CAAC,uBAAuB,CAAC;MACjEb,QAAQ,CAACY,QAAQ,CAAC;MAClBnB,WAAW,CAAC,KAAK,CAAC;IACpB,CAAC,SAAS;MACRG,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC,EAAE,CAACR,gBAAgB,EAAEC,aAAa,EAAEC,YAAY,CAAC,CAAC;EAEnD,MAAMwB,OAAO,GAAG,IAAAZ,kBAAW,EAAC,YAAY;IACtC,MAAMD,aAAa,CAAC,CAAC;EACvB,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAEnB,IAAAc,gBAAS,EAAC,MAAM;IACdd,aAAa,CAAC,CAAC;;IAEf;IACA,IAAIV,aAAa,GAAG,CAAC,EAAE;MACrB,MAAMyB,UAAU,GAAGC,WAAW,CAAChB,aAAa,EAAEV,aAAa,CAAC;MAC5D,OAAO,MAAM2B,aAAa,CAACF,UAAU,CAAC;IACxC;EACF,CAAC,EAAE,CAACf,aAAa,EAAEV,aAAa,CAAC,CAAC;EAElC,OAAO;IACLC,QAAQ;IACRG,SAAS;IACTE,cAAc;IACdE,KAAK;IACLe;EACF,CAAC;AACH;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAnC,OAAA,GAEcC,iBAAiB","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "DeviceSecurity", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _api.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "DeviceSecurityClass", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _api.DeviceSecurity;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "NativeDeviceSecurity", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _NativeDeviceSecurity.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "SecurityBlockedScreen", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _components.SecurityBlockedScreen;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "default", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _api.default;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "useDeviceSecurity", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _hooks.useDeviceSecurity;
40
+ }
41
+ });
42
+ var _api = _interopRequireWildcard(require("./api"));
43
+ var _NativeDeviceSecurity = _interopRequireDefault(require("./NativeDeviceSecurity"));
44
+ var _hooks = require("./hooks");
45
+ var _components = require("./components");
46
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
47
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_api","_interopRequireWildcard","require","_NativeDeviceSecurity","_interopRequireDefault","_hooks","_components","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAAA,IAAA,GAAAC,uBAAA,CAAAC,OAAA;AAIA,IAAAC,qBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAGA,IAAAG,MAAA,GAAAH,OAAA;AAGA,IAAAI,WAAA,GAAAJ,OAAA;AAAqD,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAM,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { TurboModuleRegistry } from 'react-native';
2
+ export default TurboModuleRegistry.getEnforcing('DeviceSecurity');
3
+ //# sourceMappingURL=NativeDeviceSecurity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeDeviceSecurity.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AA+BlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,gBAAgB,CAAC","ignoreList":[]}