freerasp-react-native 4.3.2 → 4.4.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 (63) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/android/build.gradle +8 -2
  3. package/android/gradle.properties +2 -2
  4. package/android/src/main/java/com/freeraspreactnative/FreeraspReactNativeModule.kt +61 -22
  5. package/android/src/main/java/com/freeraspreactnative/PluginThreatHandler.kt +121 -0
  6. package/android/src/main/java/com/freeraspreactnative/dispatchers/ExecutionStateDispatcher.kt +38 -0
  7. package/android/src/main/java/com/freeraspreactnative/dispatchers/ThreatDispatcher.kt +61 -0
  8. package/android/src/main/java/com/freeraspreactnative/events/ThreatEvent.kt +3 -1
  9. package/android/src/main/java/com/freeraspreactnative/interfaces/PluginExecutionStateListener.kt +7 -0
  10. package/android/src/main/java/com/freeraspreactnative/interfaces/PluginThreatListener.kt +9 -0
  11. package/example/src/App.tsx +10 -0
  12. package/example/src/DemoApp.tsx +32 -0
  13. package/example/src/checks.ts +1 -0
  14. package/freerasp-react-native.podspec +5 -1
  15. package/ios/FreeraspReactNative.m +5 -0
  16. package/ios/FreeraspReactNative.swift +39 -10
  17. package/ios/dispatchers/ExecutionStateDispatcher.swift +35 -0
  18. package/ios/dispatchers/ThreatDispatcher.swift +36 -0
  19. package/lib/commonjs/api/listeners/raspExecutionState.js +28 -8
  20. package/lib/commonjs/api/listeners/raspExecutionState.js.map +1 -1
  21. package/lib/commonjs/api/listeners/threat.js +34 -10
  22. package/lib/commonjs/api/listeners/threat.js.map +1 -1
  23. package/lib/commonjs/api/methods/native.js +9 -1
  24. package/lib/commonjs/api/methods/native.js.map +1 -1
  25. package/lib/commonjs/api/methods/reactNative.js +13 -8
  26. package/lib/commonjs/api/methods/reactNative.js.map +1 -1
  27. package/lib/commonjs/channels/threat.js +1 -3
  28. package/lib/commonjs/channels/threat.js.map +1 -1
  29. package/lib/commonjs/models/threat.js +2 -1
  30. package/lib/commonjs/models/threat.js.map +1 -1
  31. package/lib/module/api/listeners/raspExecutionState.js +29 -9
  32. package/lib/module/api/listeners/raspExecutionState.js.map +1 -1
  33. package/lib/module/api/listeners/threat.js +35 -11
  34. package/lib/module/api/listeners/threat.js.map +1 -1
  35. package/lib/module/api/methods/native.js +6 -0
  36. package/lib/module/api/methods/native.js.map +1 -1
  37. package/lib/module/api/methods/reactNative.js +13 -7
  38. package/lib/module/api/methods/reactNative.js.map +1 -1
  39. package/lib/module/channels/threat.js +1 -3
  40. package/lib/module/channels/threat.js.map +1 -1
  41. package/lib/module/models/threat.js +2 -1
  42. package/lib/module/models/threat.js.map +1 -1
  43. package/lib/typescript/src/api/listeners/raspExecutionState.d.ts +1 -1
  44. package/lib/typescript/src/api/listeners/raspExecutionState.d.ts.map +1 -1
  45. package/lib/typescript/src/api/listeners/threat.d.ts +1 -1
  46. package/lib/typescript/src/api/listeners/threat.d.ts.map +1 -1
  47. package/lib/typescript/src/api/methods/native.d.ts +2 -0
  48. package/lib/typescript/src/api/methods/native.d.ts.map +1 -1
  49. package/lib/typescript/src/api/methods/reactNative.d.ts.map +1 -1
  50. package/lib/typescript/src/channels/threat.d.ts.map +1 -1
  51. package/lib/typescript/src/models/threat.d.ts +1 -0
  52. package/lib/typescript/src/models/threat.d.ts.map +1 -1
  53. package/lib/typescript/src/types/types.d.ts +1 -0
  54. package/lib/typescript/src/types/types.d.ts.map +1 -1
  55. package/package.json +1 -1
  56. package/src/api/listeners/raspExecutionState.ts +39 -11
  57. package/src/api/listeners/threat.ts +41 -10
  58. package/src/api/methods/native.ts +8 -0
  59. package/src/api/methods/reactNative.ts +17 -8
  60. package/src/channels/threat.ts +1 -3
  61. package/src/models/threat.ts +2 -0
  62. package/src/types/types.ts +1 -0
  63. package/android/src/main/java/com/freeraspreactnative/FreeraspThreatHandler.kt +0 -103
@@ -1,20 +1,36 @@
1
1
  import { NativeEventEmitter } from 'react-native';
2
2
  import { FreeraspReactNative } from '../nativeModules';
3
- import { onInvalidCallback } from '../methods/native';
3
+ import { onInvalidCallback, removeListenerForEvent } from '../methods/native';
4
4
  import { Threat } from '../../models/threat';
5
5
  import { parseMalwareData } from '../../utils/malware';
6
6
  import { getThreatChannelData, prepareThreatMapping } from '../../channels/threat';
7
7
  const eventEmitter = new NativeEventEmitter(FreeraspReactNative);
8
- let eventsListener;
8
+ let eventsListener = null;
9
+ let threatChannel = null;
10
+ let threatKey = null;
11
+ let threatMalwareKey = null;
12
+ let isMappingPrepared = false;
13
+ let isInitializing = false;
9
14
  export const setThreatListeners = async config => {
10
- const [channel, key, malwareKey] = await getThreatChannelData();
11
- await prepareThreatMapping();
15
+ if (isInitializing) {
16
+ return;
17
+ }
18
+ isInitializing = true;
19
+ await removeThreatListener();
20
+ if (!threatChannel || !threatKey || !threatMalwareKey) {
21
+ [threatChannel, threatKey, threatMalwareKey] = await getThreatChannelData();
22
+ }
23
+ if (!isMappingPrepared) {
24
+ await prepareThreatMapping();
25
+ isMappingPrepared = true;
26
+ }
12
27
  const listener = async event => {
13
- var _config$privilegedAcc, _config$debug, _config$simulator, _config$appIntegrity, _config$unofficialSto, _config$hooks, _config$deviceBinding, _config$passcode, _config$secureHardwar, _config$obfuscationIs, _config$deviceID, _config$devMode, _config$systemVPN, _config$malware, _config$adbEnabled, _config$screenshot, _config$screenRecordi, _config$multiInstance, _config$timeSpoofing, _config$locationSpoof, _config$unsecureWifi;
14
- if (event[key] === undefined) {
28
+ var _config$privilegedAcc, _config$debug, _config$simulator, _config$appIntegrity, _config$unofficialSto, _config$hooks, _config$deviceBinding, _config$passcode, _config$secureHardwar, _config$obfuscationIs, _config$deviceID, _config$devMode, _config$systemVPN, _config$malware, _config$adbEnabled, _config$screenshot, _config$screenRecordi, _config$multiInstance, _config$timeSpoofing, _config$locationSpoof, _config$unsecureWifi, _config$automation;
29
+ if (!threatKey || !threatMalwareKey) {
15
30
  onInvalidCallback();
31
+ return;
16
32
  }
17
- switch (event[key]) {
33
+ switch (event[threatKey]) {
18
34
  case Threat.PrivilegedAccess.value:
19
35
  (_config$privilegedAcc = config.privilegedAccess) === null || _config$privilegedAcc === void 0 || _config$privilegedAcc.call(config);
20
36
  break;
@@ -55,7 +71,7 @@ export const setThreatListeners = async config => {
55
71
  (_config$systemVPN = config.systemVPN) === null || _config$systemVPN === void 0 || _config$systemVPN.call(config);
56
72
  break;
57
73
  case Threat.Malware.value:
58
- const malwareData = event[malwareKey];
74
+ const malwareData = event[threatMalwareKey];
59
75
  (_config$malware = config.malware) === null || _config$malware === void 0 || _config$malware.call(config, await parseMalwareData(Array.isArray(malwareData) ? malwareData : []));
60
76
  break;
61
77
  case Threat.ADBEnabled.value:
@@ -79,16 +95,24 @@ export const setThreatListeners = async config => {
79
95
  case Threat.UnsecureWifi.value:
80
96
  (_config$unsecureWifi = config.unsecureWifi) === null || _config$unsecureWifi === void 0 || _config$unsecureWifi.call(config);
81
97
  break;
98
+ case Threat.Automation.value:
99
+ (_config$automation = config.automation) === null || _config$automation === void 0 || _config$automation.call(config);
100
+ break;
82
101
  default:
83
102
  onInvalidCallback();
84
103
  break;
85
104
  }
86
105
  };
87
- eventsListener = eventEmitter.addListener(channel, listener);
106
+ eventsListener = eventEmitter.addListener(threatChannel, listener);
107
+ isInitializing = false;
88
108
  };
89
- export const removeThreatListener = () => {
109
+ export const removeThreatListener = async () => {
90
110
  var _eventsListener;
111
+ if (!eventsListener || !threatChannel) {
112
+ return;
113
+ }
114
+ await removeListenerForEvent(threatChannel);
91
115
  (_eventsListener = eventsListener) === null || _eventsListener === void 0 || _eventsListener.remove();
92
- eventsListener = undefined;
116
+ eventsListener = null;
93
117
  };
94
118
  //# sourceMappingURL=threat.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","FreeraspReactNative","onInvalidCallback","Threat","parseMalwareData","getThreatChannelData","prepareThreatMapping","eventEmitter","eventsListener","setThreatListeners","config","channel","key","malwareKey","listener","event","_config$privilegedAcc","_config$debug","_config$simulator","_config$appIntegrity","_config$unofficialSto","_config$hooks","_config$deviceBinding","_config$passcode","_config$secureHardwar","_config$obfuscationIs","_config$deviceID","_config$devMode","_config$systemVPN","_config$malware","_config$adbEnabled","_config$screenshot","_config$screenRecordi","_config$multiInstance","_config$timeSpoofing","_config$locationSpoof","_config$unsecureWifi","undefined","PrivilegedAccess","value","privilegedAccess","call","Debug","debug","Simulator","simulator","AppIntegrity","appIntegrity","UnofficialStore","unofficialStore","Hooks","hooks","DeviceBinding","deviceBinding","Passcode","passcode","SecureHardwareNotAvailable","secureHardwareNotAvailable","ObfuscationIssues","obfuscationIssues","DeviceID","deviceID","DevMode","devMode","SystemVPN","systemVPN","Malware","malwareData","malware","Array","isArray","ADBEnabled","adbEnabled","Screenshot","screenshot","ScreenRecording","screenRecording","MultiInstance","multiInstance","TimeSpoofing","timeSpoofing","LocationSpoofing","locationSpoofing","UnsecureWifi","unsecureWifi","addListener","removeThreatListener","_eventsListener","remove"],"sourceRoot":"../../../../src","sources":["api/listeners/threat.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeEventEmitter","FreeraspReactNative","onInvalidCallback","removeListenerForEvent","Threat","parseMalwareData","getThreatChannelData","prepareThreatMapping","eventEmitter","eventsListener","threatChannel","threatKey","threatMalwareKey","isMappingPrepared","isInitializing","setThreatListeners","config","removeThreatListener","listener","event","_config$privilegedAcc","_config$debug","_config$simulator","_config$appIntegrity","_config$unofficialSto","_config$hooks","_config$deviceBinding","_config$passcode","_config$secureHardwar","_config$obfuscationIs","_config$deviceID","_config$devMode","_config$systemVPN","_config$malware","_config$adbEnabled","_config$screenshot","_config$screenRecordi","_config$multiInstance","_config$timeSpoofing","_config$locationSpoof","_config$unsecureWifi","_config$automation","PrivilegedAccess","value","privilegedAccess","call","Debug","debug","Simulator","simulator","AppIntegrity","appIntegrity","UnofficialStore","unofficialStore","Hooks","hooks","DeviceBinding","deviceBinding","Passcode","passcode","SecureHardwareNotAvailable","secureHardwareNotAvailable","ObfuscationIssues","obfuscationIssues","DeviceID","deviceID","DevMode","devMode","SystemVPN","systemVPN","Malware","malwareData","malware","Array","isArray","ADBEnabled","adbEnabled","Screenshot","screenshot","ScreenRecording","screenRecording","MultiInstance","multiInstance","TimeSpoofing","timeSpoofing","LocationSpoofing","locationSpoofing","UnsecureWifi","unsecureWifi","Automation","automation","addListener","_eventsListener","remove"],"sourceRoot":"../../../../src","sources":["api/listeners/threat.ts"],"mappings":"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","ignoreList":[]}
@@ -18,6 +18,9 @@ export const isScreenCaptureBlocked = () => {
18
18
  export const storeExternalId = data => {
19
19
  return FreeraspReactNative.storeExternalId(data);
20
20
  };
21
+ export const removeExternalId = () => {
22
+ return FreeraspReactNative.removeExternalId();
23
+ };
21
24
  export const getAppIcon = packageName => {
22
25
  if (Platform.OS === 'ios') {
23
26
  return Promise.reject('App icon retrieval for Malware detection not available on iOS');
@@ -27,4 +30,7 @@ export const getAppIcon = packageName => {
27
30
  export const onInvalidCallback = () => {
28
31
  FreeraspReactNative.onInvalidCallback();
29
32
  };
33
+ export const removeListenerForEvent = channel => {
34
+ return FreeraspReactNative.removeListenerForEvent(channel);
35
+ };
30
36
  //# sourceMappingURL=native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","FreeraspReactNative","talsecStart","options","addToWhitelist","packageName","OS","Promise","reject","blockScreenCapture","enable","isScreenCaptureBlocked","storeExternalId","data","getAppIcon","onInvalidCallback"],"sourceRoot":"../../../../src","sources":["api/methods/native.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,mBAAmB,QAAQ,kBAAkB;AAGtD,OAAO,MAAMC,WAAW,GAAG,MAAOC,OAAqB,IAAsB;EAC3E,OAAOF,mBAAmB,CAACC,WAAW,CAACC,OAAO,CAAC;AACjD,CAAC;AAED,OAAO,MAAMC,cAAc,GAAG,MAAOC,WAAmB,IAAuB;EAC7E,IAAIL,QAAQ,CAACM,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CAAC,wCAAwC,CAAC;EACjE;EACA,OAAOP,mBAAmB,CAACG,cAAc,CAACC,WAAW,CAAC;AACxD,CAAC;AAED,OAAO,MAAMI,kBAAkB,GAAIC,MAAe,IAAsB;EACtE,OAAOT,mBAAmB,CAACQ,kBAAkB,CAACC,MAAM,CAAC;AACvD,CAAC;AAED,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,KAAwB;EAC5D,OAAOV,mBAAmB,CAACU,sBAAsB,CAAC,CAAC;AACrD,CAAC;AAED,OAAO,MAAMC,eAAe,GAAIC,IAAY,IAAsB;EAChE,OAAOZ,mBAAmB,CAACW,eAAe,CAACC,IAAI,CAAC;AAClD,CAAC;AAED,OAAO,MAAMC,UAAU,GAAIT,WAAmB,IAAsB;EAClE,IAAIL,QAAQ,CAACM,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CACnB,+DACF,CAAC;EACH;EACA,OAAOP,mBAAmB,CAACa,UAAU,CAACT,WAAW,CAAC;AACpD,CAAC;AAED,OAAO,MAAMU,iBAAiB,GAAGA,CAAA,KAAY;EAC3Cd,mBAAmB,CAACc,iBAAiB,CAAC,CAAC;AACzC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Platform","FreeraspReactNative","talsecStart","options","addToWhitelist","packageName","OS","Promise","reject","blockScreenCapture","enable","isScreenCaptureBlocked","storeExternalId","data","removeExternalId","getAppIcon","onInvalidCallback","removeListenerForEvent","channel"],"sourceRoot":"../../../../src","sources":["api/methods/native.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,mBAAmB,QAAQ,kBAAkB;AAGtD,OAAO,MAAMC,WAAW,GAAG,MAAOC,OAAqB,IAAsB;EAC3E,OAAOF,mBAAmB,CAACC,WAAW,CAACC,OAAO,CAAC;AACjD,CAAC;AAED,OAAO,MAAMC,cAAc,GAAG,MAAOC,WAAmB,IAAuB;EAC7E,IAAIL,QAAQ,CAACM,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CAAC,wCAAwC,CAAC;EACjE;EACA,OAAOP,mBAAmB,CAACG,cAAc,CAACC,WAAW,CAAC;AACxD,CAAC;AAED,OAAO,MAAMI,kBAAkB,GAAIC,MAAe,IAAsB;EACtE,OAAOT,mBAAmB,CAACQ,kBAAkB,CAACC,MAAM,CAAC;AACvD,CAAC;AAED,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,KAAwB;EAC5D,OAAOV,mBAAmB,CAACU,sBAAsB,CAAC,CAAC;AACrD,CAAC;AAED,OAAO,MAAMC,eAAe,GAAIC,IAAY,IAAsB;EAChE,OAAOZ,mBAAmB,CAACW,eAAe,CAACC,IAAI,CAAC;AAClD,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAuB;EACrD,OAAOb,mBAAmB,CAACa,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAED,OAAO,MAAMC,UAAU,GAAIV,WAAmB,IAAsB;EAClE,IAAIL,QAAQ,CAACM,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CACnB,+DACF,CAAC;EACH;EACA,OAAOP,mBAAmB,CAACc,UAAU,CAACV,WAAW,CAAC;AACpD,CAAC;AAED,OAAO,MAAMW,iBAAiB,GAAGA,CAAA,KAAY;EAC3Cf,mBAAmB,CAACe,iBAAiB,CAAC,CAAC;AACzC,CAAC;AAED,OAAO,MAAMC,sBAAsB,GAAIC,OAAe,IAAsB;EAC1E,OAAOjB,mBAAmB,CAACgB,sBAAsB,CAACC,OAAO,CAAC;AAC5D,CAAC","ignoreList":[]}
@@ -1,27 +1,33 @@
1
- import { talsecStart } from 'freerasp-react-native';
1
+ import { talsecStart } from './native';
2
2
  import { useEffect } from 'react';
3
3
  import { setRaspExecutionStateListener, removeRaspExecutionStateEventListener } from '../listeners/raspExecutionState';
4
4
  import { setThreatListeners, removeThreatListener } from '../listeners/threat';
5
5
  import { onInvalidCallback } from './native';
6
+ let isRaspStarted = false;
6
7
  export const useFreeRasp = (config, actions, raspExecutionStateActions) => {
7
8
  useEffect(() => {
8
9
  (async () => {
9
10
  await setThreatListeners(actions);
10
11
  raspExecutionStateActions && (await setRaspExecutionStateListener(raspExecutionStateActions));
12
+ if (isRaspStarted) {
13
+ return;
14
+ }
11
15
  try {
12
- let response = await talsecStart(config);
16
+ const response = await talsecStart(config);
13
17
  if (response !== 'freeRASP started') {
14
18
  onInvalidCallback();
15
19
  }
16
- console.log(response);
20
+ isRaspStarted = true;
17
21
  } catch (e) {
18
22
  console.error(`${e.code}: ${e.message}`);
19
23
  }
20
- return () => {
21
- removeThreatListener();
22
- removeRaspExecutionStateEventListener();
23
- };
24
24
  })();
25
+ return () => {
26
+ (async () => {
27
+ await removeThreatListener();
28
+ await removeRaspExecutionStateEventListener();
29
+ })();
30
+ };
25
31
  // eslint-disable-next-line react-hooks/exhaustive-deps
26
32
  }, []);
27
33
  };
@@ -1 +1 @@
1
- {"version":3,"names":["talsecStart","useEffect","setRaspExecutionStateListener","removeRaspExecutionStateEventListener","setThreatListeners","removeThreatListener","onInvalidCallback","useFreeRasp","config","actions","raspExecutionStateActions","response","console","log","e","error","code","message"],"sourceRoot":"../../../../src","sources":["api/methods/reactNative.ts"],"mappings":"AAAA,SAASA,WAAW,QAAQ,uBAAuB;AACnD,SAASC,SAAS,QAAQ,OAAO;AACjC,SACEC,6BAA6B,EAC7BC,qCAAqC,QAChC,iCAAiC;AACxC,SAASC,kBAAkB,EAAEC,oBAAoB,QAAQ,qBAAqB;AAM9E,SAASC,iBAAiB,QAAQ,UAAU;AAE5C,OAAO,MAAMC,WAAW,GAAGA,CACzBC,MAAoB,EACpBC,OAA2B,EAC3BC,yBAA0D,KACvD;EACHT,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX,MAAMG,kBAAkB,CAACK,OAAO,CAAC;MACjCC,yBAAyB,KACtB,MAAMR,6BAA6B,CAACQ,yBAAyB,CAAC,CAAC;MAClE,IAAI;QACF,IAAIC,QAAQ,GAAG,MAAMX,WAAW,CAACQ,MAAM,CAAC;QACxC,IAAIG,QAAQ,KAAK,kBAAkB,EAAE;UACnCL,iBAAiB,CAAC,CAAC;QACrB;QACAM,OAAO,CAACC,GAAG,CAACF,QAAQ,CAAC;MACvB,CAAC,CAAC,OAAOG,CAAM,EAAE;QACfF,OAAO,CAACG,KAAK,CAAE,GAAED,CAAC,CAACE,IAAK,KAAIF,CAAC,CAACG,OAAQ,EAAC,CAAC;MAC1C;MAEA,OAAO,MAAM;QACXZ,oBAAoB,CAAC,CAAC;QACtBF,qCAAqC,CAAC,CAAC;MACzC,CAAC;IACH,CAAC,EAAE,CAAC;IACJ;EACF,CAAC,EAAE,EAAE,CAAC;AACR,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["talsecStart","useEffect","setRaspExecutionStateListener","removeRaspExecutionStateEventListener","setThreatListeners","removeThreatListener","onInvalidCallback","isRaspStarted","useFreeRasp","config","actions","raspExecutionStateActions","response","e","console","error","code","message"],"sourceRoot":"../../../../src","sources":["api/methods/reactNative.ts"],"mappings":"AAAA,SAASA,WAAW,QAAQ,UAAU;AACtC,SAASC,SAAS,QAAQ,OAAO;AACjC,SACEC,6BAA6B,EAC7BC,qCAAqC,QAChC,iCAAiC;AACxC,SAASC,kBAAkB,EAAEC,oBAAoB,QAAQ,qBAAqB;AAM9E,SAASC,iBAAiB,QAAQ,UAAU;AAE5C,IAAIC,aAAa,GAAG,KAAK;AAEzB,OAAO,MAAMC,WAAW,GAAGA,CACzBC,MAAoB,EACpBC,OAA2B,EAC3BC,yBAA0D,KACvD;EACHV,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX,MAAMG,kBAAkB,CAACM,OAAO,CAAC;MACjCC,yBAAyB,KACtB,MAAMT,6BAA6B,CAACS,yBAAyB,CAAC,CAAC;MAElE,IAAIJ,aAAa,EAAE;QACjB;MACF;MAEA,IAAI;QACF,MAAMK,QAAQ,GAAG,MAAMZ,WAAW,CAACS,MAAM,CAAC;QAC1C,IAAIG,QAAQ,KAAK,kBAAkB,EAAE;UACnCN,iBAAiB,CAAC,CAAC;QACrB;QACAC,aAAa,GAAG,IAAI;MACtB,CAAC,CAAC,OAAOM,CAAM,EAAE;QACfC,OAAO,CAACC,KAAK,CAAE,GAAEF,CAAC,CAACG,IAAK,KAAIH,CAAC,CAACI,OAAQ,EAAC,CAAC;MAC1C;IACF,CAAC,EAAE,CAAC;IAEJ,OAAO,MAAM;MACX,CAAC,YAAY;QACX,MAAMZ,oBAAoB,CAAC,CAAC;QAC5B,MAAMF,qCAAqC,CAAC,CAAC;MAC/C,CAAC,EAAE,CAAC;IACN,CAAC;IACD;EACF,CAAC,EAAE,EAAE,CAAC;AACR,CAAC","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import { Platform } from 'react-native';
2
1
  import { getThreatCount, itemsHaveType } from '../utils/utils';
3
2
  import { FreeraspReactNative } from '../api/nativeModules';
4
3
  import { Threat } from '../models/threat';
@@ -11,9 +10,8 @@ export const getThreatIdentifiers = async () => {
11
10
  return identifiers;
12
11
  };
13
12
  export const getThreatChannelData = async () => {
14
- const dataLength = Platform.OS === 'ios' ? 2 : 3;
15
13
  const data = await FreeraspReactNative.getThreatChannelData();
16
- if (data.length !== dataLength || !itemsHaveType(data, 'string')) {
14
+ if (data.length !== 3 || !itemsHaveType(data, 'string')) {
17
15
  onInvalidCallback();
18
16
  }
19
17
  return data;
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","getThreatCount","itemsHaveType","FreeraspReactNative","Threat","onInvalidCallback","getThreatIdentifiers","identifiers","length","getThreatChannelData","dataLength","OS","data","prepareThreatMapping","newValues","threats","getValues","map","threat","index","value"],"sourceRoot":"../../../src","sources":["channels/threat.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,cAAc,EAAEC,aAAa,QAAQ,gBAAgB;AAC9D,SAASC,mBAAmB,QAAQ,sBAAsB;AAC1D,SAASC,MAAM,QAAQ,kBAAkB;AACzC,SAASC,iBAAiB,QAAQ,uBAAuB;AAEzD,OAAO,MAAMC,oBAAoB,GAAG,MAAAA,CAAA,KAA+B;EACjE,MAAMC,WAAW,GAAG,MAAMJ,mBAAmB,CAACG,oBAAoB,CAAC,CAAC;EACpE,IACEC,WAAW,CAACC,MAAM,KAAKP,cAAc,CAAC,CAAC,IACvC,CAACC,aAAa,CAACK,WAAW,EAAE,QAAQ,CAAC,EACrC;IACAF,iBAAiB,CAAC,CAAC;EACrB;EACA,OAAOE,WAAW;AACpB,CAAC;AAED,OAAO,MAAME,oBAAoB,GAAG,MAAAA,CAAA,KAE/B;EACH,MAAMC,UAAU,GAAGV,QAAQ,CAACW,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC;EAChD,MAAMC,IAAI,GAAG,MAAMT,mBAAmB,CAACM,oBAAoB,CAAC,CAAC;EAC7D,IAAIG,IAAI,CAACJ,MAAM,KAAKE,UAAU,IAAI,CAACR,aAAa,CAACU,IAAI,EAAE,QAAQ,CAAC,EAAE;IAChEP,iBAAiB,CAAC,CAAC;EACrB;EACA,OAAOO,IAAI;AACb,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAG,MAAAA,CAAA,KAA2B;EAC7D,MAAMC,SAAS,GAAG,MAAMR,oBAAoB,CAAC,CAAC;EAC9C,MAAMS,OAAO,GAAGX,MAAM,CAACY,SAAS,CAAC,CAAC;EAClCD,OAAO,CAACE,GAAG,CAAC,CAACC,MAAM,EAAEC,KAAK,KAAK;IAC7BD,MAAM,CAACE,KAAK,GAAGN,SAAS,CAACK,KAAK,CAAE;EAClC,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getThreatCount","itemsHaveType","FreeraspReactNative","Threat","onInvalidCallback","getThreatIdentifiers","identifiers","length","getThreatChannelData","data","prepareThreatMapping","newValues","threats","getValues","map","threat","index","value"],"sourceRoot":"../../../src","sources":["channels/threat.ts"],"mappings":"AAAA,SAASA,cAAc,EAAEC,aAAa,QAAQ,gBAAgB;AAC9D,SAASC,mBAAmB,QAAQ,sBAAsB;AAC1D,SAASC,MAAM,QAAQ,kBAAkB;AACzC,SAASC,iBAAiB,QAAQ,uBAAuB;AAEzD,OAAO,MAAMC,oBAAoB,GAAG,MAAAA,CAAA,KAA+B;EACjE,MAAMC,WAAW,GAAG,MAAMJ,mBAAmB,CAACG,oBAAoB,CAAC,CAAC;EACpE,IACEC,WAAW,CAACC,MAAM,KAAKP,cAAc,CAAC,CAAC,IACvC,CAACC,aAAa,CAACK,WAAW,EAAE,QAAQ,CAAC,EACrC;IACAF,iBAAiB,CAAC,CAAC;EACrB;EACA,OAAOE,WAAW;AACpB,CAAC;AAED,OAAO,MAAME,oBAAoB,GAAG,MAAAA,CAAA,KAE/B;EACH,MAAMC,IAAI,GAAG,MAAMP,mBAAmB,CAACM,oBAAoB,CAAC,CAAC;EAC7D,IAAIC,IAAI,CAACF,MAAM,KAAK,CAAC,IAAI,CAACN,aAAa,CAACQ,IAAI,EAAE,QAAQ,CAAC,EAAE;IACvDL,iBAAiB,CAAC,CAAC;EACrB;EACA,OAAOK,IAAI;AACb,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAG,MAAAA,CAAA,KAA2B;EAC7D,MAAMC,SAAS,GAAG,MAAMN,oBAAoB,CAAC,CAAC;EAC9C,MAAMO,OAAO,GAAGT,MAAM,CAACU,SAAS,CAAC,CAAC;EAClCD,OAAO,CAACE,GAAG,CAAC,CAACC,MAAM,EAAEC,KAAK,KAAK;IAC7BD,MAAM,CAACE,KAAK,GAAGN,SAAS,CAACK,KAAK,CAAE;EAClC,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -21,11 +21,12 @@ export class Threat {
21
21
  static TimeSpoofing = new Threat(0);
22
22
  static LocationSpoofing = new Threat(0);
23
23
  static UnsecureWifi = new Threat(0);
24
+ static Automation = new Threat(0);
24
25
  constructor(value) {
25
26
  this.value = value;
26
27
  }
27
28
  static getValues() {
28
- return Platform.OS === 'android' ? [this.AppIntegrity, this.PrivilegedAccess, this.Debug, this.Hooks, this.Passcode, this.Simulator, this.SecureHardwareNotAvailable, this.SystemVPN, this.DeviceBinding, this.UnofficialStore, this.ObfuscationIssues, this.DevMode, this.Malware, this.ADBEnabled, this.Screenshot, this.ScreenRecording, this.MultiInstance, this.TimeSpoofing, this.LocationSpoofing, this.UnsecureWifi] : [this.AppIntegrity, this.PrivilegedAccess, this.Debug, this.Hooks, this.Passcode, this.Simulator, this.SecureHardwareNotAvailable, this.SystemVPN, this.DeviceBinding, this.DeviceID, this.UnofficialStore, this.Screenshot, this.ScreenRecording];
29
+ return Platform.OS === 'android' ? [this.AppIntegrity, this.PrivilegedAccess, this.Debug, this.Hooks, this.Passcode, this.Simulator, this.SecureHardwareNotAvailable, this.SystemVPN, this.DeviceBinding, this.UnofficialStore, this.ObfuscationIssues, this.DevMode, this.Malware, this.ADBEnabled, this.Screenshot, this.ScreenRecording, this.MultiInstance, this.TimeSpoofing, this.LocationSpoofing, this.UnsecureWifi, this.Automation] : [this.AppIntegrity, this.PrivilegedAccess, this.Debug, this.Hooks, this.Passcode, this.Simulator, this.SecureHardwareNotAvailable, this.SystemVPN, this.DeviceBinding, this.DeviceID, this.UnofficialStore, this.Screenshot, this.ScreenRecording];
29
30
  }
30
31
  }
31
32
  //# sourceMappingURL=threat.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","Threat","AppIntegrity","PrivilegedAccess","Debug","Hooks","Passcode","Simulator","SecureHardwareNotAvailable","SystemVPN","DeviceBinding","DeviceID","UnofficialStore","ObfuscationIssues","DevMode","Malware","ADBEnabled","Screenshot","ScreenRecording","MultiInstance","TimeSpoofing","LocationSpoofing","UnsecureWifi","constructor","value","getValues","OS"],"sourceRoot":"../../../src","sources":["models/threat.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,OAAO,MAAMC,MAAM,CAAC;EAGlB,OAAOC,YAAY,GAAG,IAAID,MAAM,CAAC,CAAC,CAAC;EACnC,OAAOE,gBAAgB,GAAG,IAAIF,MAAM,CAAC,CAAC,CAAC;EACvC,OAAOG,KAAK,GAAG,IAAIH,MAAM,CAAC,CAAC,CAAC;EAC5B,OAAOI,KAAK,GAAG,IAAIJ,MAAM,CAAC,CAAC,CAAC;EAC5B,OAAOK,QAAQ,GAAG,IAAIL,MAAM,CAAC,CAAC,CAAC;EAC/B,OAAOM,SAAS,GAAG,IAAIN,MAAM,CAAC,CAAC,CAAC;EAChC,OAAOO,0BAA0B,GAAG,IAAIP,MAAM,CAAC,CAAC,CAAC;EACjD,OAAOQ,SAAS,GAAG,IAAIR,MAAM,CAAC,CAAC,CAAC;EAChC,OAAOS,aAAa,GAAG,IAAIT,MAAM,CAAC,CAAC,CAAC;EACpC,OAAOU,QAAQ,GAAG,IAAIV,MAAM,CAAC,CAAC,CAAC;EAC/B,OAAOW,eAAe,GAAG,IAAIX,MAAM,CAAC,CAAC,CAAC;EACtC,OAAOY,iBAAiB,GAAG,IAAIZ,MAAM,CAAC,CAAC,CAAC;EACxC,OAAOa,OAAO,GAAG,IAAIb,MAAM,CAAC,CAAC,CAAC;EAC9B,OAAOc,OAAO,GAAG,IAAId,MAAM,CAAC,CAAC,CAAC;EAC9B,OAAOe,UAAU,GAAG,IAAIf,MAAM,CAAC,CAAC,CAAC;EACjC,OAAOgB,UAAU,GAAG,IAAIhB,MAAM,CAAC,CAAC,CAAC;EACjC,OAAOiB,eAAe,GAAG,IAAIjB,MAAM,CAAC,CAAC,CAAC;EACtC,OAAOkB,aAAa,GAAG,IAAIlB,MAAM,CAAC,CAAC,CAAC;EACpC,OAAOmB,YAAY,GAAG,IAAInB,MAAM,CAAC,CAAC,CAAC;EACnC,OAAOoB,gBAAgB,GAAG,IAAIpB,MAAM,CAAC,CAAC,CAAC;EACvC,OAAOqB,YAAY,GAAG,IAAIrB,MAAM,CAAC,CAAC,CAAC;EAEnCsB,WAAWA,CAACC,KAAa,EAAE;IACzB,IAAI,CAACA,KAAK,GAAGA,KAAK;EACpB;EAEA,OAAOC,SAASA,CAAA,EAAa;IAC3B,OAAOzB,QAAQ,CAAC0B,EAAE,KAAK,SAAS,GAC5B,CACE,IAAI,CAACxB,YAAY,EACjB,IAAI,CAACC,gBAAgB,EACrB,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,0BAA0B,EAC/B,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,aAAa,EAClB,IAAI,CAACE,eAAe,EACpB,IAAI,CAACC,iBAAiB,EACtB,IAAI,CAACC,OAAO,EACZ,IAAI,CAACC,OAAO,EACZ,IAAI,CAACC,UAAU,EACf,IAAI,CAACC,UAAU,EACf,IAAI,CAACC,eAAe,EACpB,IAAI,CAACC,aAAa,EAClB,IAAI,CAACC,YAAY,EACjB,IAAI,CAACC,gBAAgB,EACrB,IAAI,CAACC,YAAY,CAClB,GACD,CACE,IAAI,CAACpB,YAAY,EACjB,IAAI,CAACC,gBAAgB,EACrB,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,0BAA0B,EAC/B,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,aAAa,EAClB,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,eAAe,EACpB,IAAI,CAACK,UAAU,EACf,IAAI,CAACC,eAAe,CACrB;EACP;AACF","ignoreList":[]}
1
+ {"version":3,"names":["Platform","Threat","AppIntegrity","PrivilegedAccess","Debug","Hooks","Passcode","Simulator","SecureHardwareNotAvailable","SystemVPN","DeviceBinding","DeviceID","UnofficialStore","ObfuscationIssues","DevMode","Malware","ADBEnabled","Screenshot","ScreenRecording","MultiInstance","TimeSpoofing","LocationSpoofing","UnsecureWifi","Automation","constructor","value","getValues","OS"],"sourceRoot":"../../../src","sources":["models/threat.ts"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  import type { RaspExecutionStateEventActions } from '../../types/types';
2
2
  export declare const setRaspExecutionStateListener: (config: RaspExecutionStateEventActions) => Promise<void>;
3
- export declare const removeRaspExecutionStateEventListener: () => void;
3
+ export declare const removeRaspExecutionStateEventListener: () => Promise<void>;
4
4
  //# sourceMappingURL=raspExecutionState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"raspExecutionState.d.ts","sourceRoot":"","sources":["../../../../../src/api/listeners/raspExecutionState.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,8BAA8B,EAC/B,MAAM,mBAAmB,CAAC;AAU3B,eAAO,MAAM,6BAA6B,WAChC,8BAA8B,kBAmBvC,CAAC;AAEF,eAAO,MAAM,qCAAqC,QAAO,IAGxD,CAAC"}
1
+ {"version":3,"file":"raspExecutionState.d.ts","sourceRoot":"","sources":["../../../../../src/api/listeners/raspExecutionState.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,8BAA8B,EAC/B,MAAM,mBAAmB,CAAC;AAe3B,eAAO,MAAM,6BAA6B,WAChC,8BAA8B,kBAqCvC,CAAC;AAEF,eAAO,MAAM,qCAAqC,QACtC,QAAQ,IAAI,CAOrB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { ThreatEventActions } from '../../types/types';
2
2
  export declare const setThreatListeners: (config: ThreatEventActions) => Promise<void>;
3
- export declare const removeThreatListener: () => void;
3
+ export declare const removeThreatListener: () => Promise<void>;
4
4
  //# sourceMappingURL=threat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"threat.d.ts","sourceRoot":"","sources":["../../../../../src/api/listeners/threat.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAUzE,eAAO,MAAM,kBAAkB,WAAkB,kBAAkB,kBAiFlE,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,IAGvC,CAAC"}
1
+ {"version":3,"file":"threat.d.ts","sourceRoot":"","sources":["../../../../../src/api/listeners/threat.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAiBzE,eAAO,MAAM,kBAAkB,WAAkB,kBAAkB,kBAqGlE,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAa,QAAQ,IAAI,CAOzD,CAAC"}
@@ -4,6 +4,8 @@ export declare const addToWhitelist: (packageName: string) => Promise<boolean>;
4
4
  export declare const blockScreenCapture: (enable: boolean) => Promise<string>;
5
5
  export declare const isScreenCaptureBlocked: () => Promise<boolean>;
6
6
  export declare const storeExternalId: (data: string) => Promise<string>;
7
+ export declare const removeExternalId: () => Promise<string>;
7
8
  export declare const getAppIcon: (packageName: string) => Promise<string>;
8
9
  export declare const onInvalidCallback: () => void;
10
+ export declare const removeListenerForEvent: (channel: string) => Promise<string>;
9
11
  //# sourceMappingURL=native.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../../../src/api/methods/native.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,WAAW,YAAmB,YAAY,KAAG,QAAQ,MAAM,CAEvE,CAAC;AAEF,eAAO,MAAM,cAAc,gBAAuB,MAAM,KAAG,QAAQ,OAAO,CAKzE,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,OAAO,KAAG,QAAQ,MAAM,CAElE,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,QAAQ,OAAO,CAExD,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,QAAQ,MAAM,CAE5D,CAAC;AAEF,eAAO,MAAM,UAAU,gBAAiB,MAAM,KAAG,QAAQ,MAAM,CAO9D,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,IAEpC,CAAC"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../../../src/api/methods/native.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,WAAW,YAAmB,YAAY,KAAG,QAAQ,MAAM,CAEvE,CAAC;AAEF,eAAO,MAAM,cAAc,gBAAuB,MAAM,KAAG,QAAQ,OAAO,CAKzE,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,OAAO,KAAG,QAAQ,MAAM,CAElE,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,QAAQ,OAAO,CAExD,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,QAAQ,MAAM,CAE5D,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,QAAQ,MAAM,CAEjD,CAAC;AAEF,eAAO,MAAM,UAAU,gBAAiB,MAAM,KAAG,QAAQ,MAAM,CAO9D,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,IAEpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,YAAa,MAAM,KAAG,QAAQ,MAAM,CAEtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reactNative.d.ts","sourceRoot":"","sources":["../../../../../src/api/methods/reactNative.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,8BAA8B,EAC/B,MAAM,mBAAmB,CAAC;AAG3B,eAAO,MAAM,WAAW,WACd,YAAY,WACX,kBAAkB,8BACC,8BAA8B,SAwB3D,CAAC"}
1
+ {"version":3,"file":"reactNative.d.ts","sourceRoot":"","sources":["../../../../../src/api/methods/reactNative.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,8BAA8B,EAC/B,MAAM,mBAAmB,CAAC;AAK3B,eAAO,MAAM,WAAW,WACd,YAAY,WACX,kBAAkB,8BACC,8BAA8B,SA+B3D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"threat.d.ts","sourceRoot":"","sources":["../../../../src/channels/threat.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB,QAAa,QAAQ,MAAM,EAAE,CAS7D,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAa,QAC5C;IAAC,MAAM;IAAE,MAAM;IAAE,MAAM;CAAC,CAQzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAa,QAAQ,IAAI,CAMzD,CAAC"}
1
+ {"version":3,"file":"threat.d.ts","sourceRoot":"","sources":["../../../../src/channels/threat.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,QAAa,QAAQ,MAAM,EAAE,CAS7D,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAa,QAC5C;IAAC,MAAM;IAAE,MAAM;IAAE,MAAM;CAAC,CAOzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAa,QAAQ,IAAI,CAMzD,CAAC"}
@@ -21,6 +21,7 @@ export declare class Threat {
21
21
  static TimeSpoofing: Threat;
22
22
  static LocationSpoofing: Threat;
23
23
  static UnsecureWifi: Threat;
24
+ static Automation: Threat;
24
25
  constructor(value: number);
25
26
  static getValues(): Threat[];
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"threat.d.ts","sourceRoot":"","sources":["../../../../src/models/threat.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,YAAY,SAAiB;IACpC,MAAM,CAAC,gBAAgB,SAAiB;IACxC,MAAM,CAAC,KAAK,SAAiB;IAC7B,MAAM,CAAC,KAAK,SAAiB;IAC7B,MAAM,CAAC,QAAQ,SAAiB;IAChC,MAAM,CAAC,SAAS,SAAiB;IACjC,MAAM,CAAC,0BAA0B,SAAiB;IAClD,MAAM,CAAC,SAAS,SAAiB;IACjC,MAAM,CAAC,aAAa,SAAiB;IACrC,MAAM,CAAC,QAAQ,SAAiB;IAChC,MAAM,CAAC,eAAe,SAAiB;IACvC,MAAM,CAAC,iBAAiB,SAAiB;IACzC,MAAM,CAAC,OAAO,SAAiB;IAC/B,MAAM,CAAC,OAAO,SAAiB;IAC/B,MAAM,CAAC,UAAU,SAAiB;IAClC,MAAM,CAAC,UAAU,SAAiB;IAClC,MAAM,CAAC,eAAe,SAAiB;IACvC,MAAM,CAAC,aAAa,SAAiB;IACrC,MAAM,CAAC,YAAY,SAAiB;IACpC,MAAM,CAAC,gBAAgB,SAAiB;IACxC,MAAM,CAAC,YAAY,SAAiB;gBAExB,KAAK,EAAE,MAAM;IAIzB,MAAM,CAAC,SAAS,IAAI,MAAM,EAAE;CAwC7B"}
1
+ {"version":3,"file":"threat.d.ts","sourceRoot":"","sources":["../../../../src/models/threat.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,YAAY,SAAiB;IACpC,MAAM,CAAC,gBAAgB,SAAiB;IACxC,MAAM,CAAC,KAAK,SAAiB;IAC7B,MAAM,CAAC,KAAK,SAAiB;IAC7B,MAAM,CAAC,QAAQ,SAAiB;IAChC,MAAM,CAAC,SAAS,SAAiB;IACjC,MAAM,CAAC,0BAA0B,SAAiB;IAClD,MAAM,CAAC,SAAS,SAAiB;IACjC,MAAM,CAAC,aAAa,SAAiB;IACrC,MAAM,CAAC,QAAQ,SAAiB;IAChC,MAAM,CAAC,eAAe,SAAiB;IACvC,MAAM,CAAC,iBAAiB,SAAiB;IACzC,MAAM,CAAC,OAAO,SAAiB;IAC/B,MAAM,CAAC,OAAO,SAAiB;IAC/B,MAAM,CAAC,UAAU,SAAiB;IAClC,MAAM,CAAC,UAAU,SAAiB;IAClC,MAAM,CAAC,eAAe,SAAiB;IACvC,MAAM,CAAC,aAAa,SAAiB;IACrC,MAAM,CAAC,YAAY,SAAiB;IACpC,MAAM,CAAC,gBAAgB,SAAiB;IACxC,MAAM,CAAC,YAAY,SAAiB;IACpC,MAAM,CAAC,UAAU,SAAiB;gBAEtB,KAAK,EAAE,MAAM;IAIzB,MAAM,CAAC,SAAS,IAAI,MAAM,EAAE;CAyC7B"}
@@ -55,6 +55,7 @@ export type ThreatEventActions = {
55
55
  timeSpoofing?: () => any;
56
56
  locationSpoofing?: () => any;
57
57
  unsecureWifi?: () => any;
58
+ automation?: () => any;
58
59
  };
59
60
  export type NativeEvent = {
60
61
  [key: string]: number | string[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACnC,8BAA8B,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,0BAA0B,CAAC,EAAE,MAAM,GAAG,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,GAAG,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,KAAK,GAAG,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,8BAA8B,GAAG;IAC3C,iBAAiB,CAAC,EAAE,MAAM,GAAG,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACnC,8BAA8B,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,0BAA0B,CAAC,EAAE,MAAM,GAAG,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,GAAG,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,KAAK,GAAG,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,8BAA8B,GAAG;IAC3C,iBAAiB,CAAC,EAAE,MAAM,GAAG,CAAC;CAC/B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "freerasp-react-native",
3
- "version": "4.3.2",
3
+ "version": "4.4.0",
4
4
  "description": "React Native plugin for improving app security and threat monitoring on Android and iOS mobile devices.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -1,6 +1,6 @@
1
1
  import { NativeEventEmitter, type EmitterSubscription } from 'react-native';
2
2
  import { FreeraspReactNative } from '../nativeModules';
3
- import { onInvalidCallback } from '../methods/native';
3
+ import { onInvalidCallback, removeListenerForEvent } from '../methods/native';
4
4
  import type {
5
5
  NativeEvent,
6
6
  RaspExecutionStateEventActions,
@@ -12,19 +12,41 @@ import {
12
12
  import { RaspExecutionState } from '../../models/raspExecutionState';
13
13
 
14
14
  const eventEmitter = new NativeEventEmitter(FreeraspReactNative);
15
- let eventsListener: EmitterSubscription | undefined;
15
+ let eventsListener: EmitterSubscription | null = null;
16
+ let executionStateChannel: string | null = null;
17
+ let executionStateKey: string | null = null;
18
+
19
+ let isMappingPrepared = false;
20
+ let isInitializing = false;
16
21
 
17
22
  export const setRaspExecutionStateListener = async (
18
23
  config: RaspExecutionStateEventActions
19
24
  ) => {
20
- const [channel, key] = await getRaspExecutionStateChannelData();
21
- await prepareRaspExecutionStateMapping();
25
+ if (isInitializing) {
26
+ return;
27
+ }
28
+
29
+ isInitializing = true;
30
+
31
+ await removeRaspExecutionStateEventListener();
32
+
33
+ if (!executionStateChannel || !executionStateKey) {
34
+ [executionStateChannel, executionStateKey] =
35
+ await getRaspExecutionStateChannelData();
36
+ }
37
+
38
+ if (!isMappingPrepared) {
39
+ await prepareRaspExecutionStateMapping();
40
+ isMappingPrepared = true;
41
+ }
22
42
 
23
43
  const listener = async (event: NativeEvent) => {
24
- if (event[key] === undefined) {
44
+ if (!executionStateKey) {
25
45
  onInvalidCallback();
46
+ return;
26
47
  }
27
- switch (event[key]) {
48
+
49
+ switch (event[executionStateKey]) {
28
50
  case RaspExecutionState.AllChecksFinished.value:
29
51
  config.allChecksFinished?.();
30
52
  break;
@@ -33,10 +55,16 @@ export const setRaspExecutionStateListener = async (
33
55
  break;
34
56
  }
35
57
  };
36
- eventsListener = eventEmitter.addListener(channel, listener);
58
+ eventsListener = eventEmitter.addListener(executionStateChannel, listener);
59
+ isInitializing = false;
37
60
  };
38
61
 
39
- export const removeRaspExecutionStateEventListener = (): void => {
40
- eventsListener?.remove();
41
- eventsListener = undefined;
42
- };
62
+ export const removeRaspExecutionStateEventListener =
63
+ async (): Promise<void> => {
64
+ if (!eventsListener || !executionStateChannel) {
65
+ return;
66
+ }
67
+ await removeListenerForEvent(executionStateChannel);
68
+ eventsListener?.remove();
69
+ eventsListener = null;
70
+ };
@@ -1,6 +1,6 @@
1
1
  import { NativeEventEmitter, type EmitterSubscription } from 'react-native';
2
2
  import { FreeraspReactNative } from '../nativeModules';
3
- import { onInvalidCallback } from '../methods/native';
3
+ import { onInvalidCallback, removeListenerForEvent } from '../methods/native';
4
4
  import { Threat } from '../../models/threat';
5
5
  import type { NativeEvent, ThreatEventActions } from '../../types/types';
6
6
  import { parseMalwareData } from '../../utils/malware';
@@ -10,17 +10,40 @@ import {
10
10
  } from '../../channels/threat';
11
11
 
12
12
  const eventEmitter = new NativeEventEmitter(FreeraspReactNative);
13
- let eventsListener: EmitterSubscription | undefined;
13
+ let eventsListener: EmitterSubscription | null = null;
14
+
15
+ let threatChannel: string | null = null;
16
+ let threatKey: string | null = null;
17
+ let threatMalwareKey: string | null = null;
18
+
19
+ let isMappingPrepared = false;
20
+ let isInitializing = false;
14
21
 
15
22
  export const setThreatListeners = async (config: ThreatEventActions) => {
16
- const [channel, key, malwareKey] = await getThreatChannelData();
17
- await prepareThreatMapping();
23
+ if (isInitializing) {
24
+ return;
25
+ }
26
+
27
+ isInitializing = true;
28
+
29
+ await removeThreatListener();
30
+
31
+ if (!threatChannel || !threatKey || !threatMalwareKey) {
32
+ [threatChannel, threatKey, threatMalwareKey] = await getThreatChannelData();
33
+ }
34
+
35
+ if (!isMappingPrepared) {
36
+ await prepareThreatMapping();
37
+ isMappingPrepared = true;
38
+ }
18
39
 
19
40
  const listener = async (event: NativeEvent) => {
20
- if (event[key] === undefined) {
41
+ if (!threatKey || !threatMalwareKey) {
21
42
  onInvalidCallback();
43
+ return;
22
44
  }
23
- switch (event[key]) {
45
+
46
+ switch (event[threatKey]) {
24
47
  case Threat.PrivilegedAccess.value:
25
48
  config.privilegedAccess?.();
26
49
  break;
@@ -61,7 +84,7 @@ export const setThreatListeners = async (config: ThreatEventActions) => {
61
84
  config.systemVPN?.();
62
85
  break;
63
86
  case Threat.Malware.value:
64
- const malwareData = event[malwareKey];
87
+ const malwareData = event[threatMalwareKey];
65
88
  config.malware?.(
66
89
  await parseMalwareData(Array.isArray(malwareData) ? malwareData : [])
67
90
  );
@@ -87,15 +110,23 @@ export const setThreatListeners = async (config: ThreatEventActions) => {
87
110
  case Threat.UnsecureWifi.value:
88
111
  config.unsecureWifi?.();
89
112
  break;
113
+ case Threat.Automation.value:
114
+ config.automation?.();
115
+ break;
90
116
  default:
91
117
  onInvalidCallback();
92
118
  break;
93
119
  }
94
120
  };
95
- eventsListener = eventEmitter.addListener(channel, listener);
121
+ eventsListener = eventEmitter.addListener(threatChannel, listener);
122
+ isInitializing = false;
96
123
  };
97
124
 
98
- export const removeThreatListener = (): void => {
125
+ export const removeThreatListener = async (): Promise<void> => {
126
+ if (!eventsListener || !threatChannel) {
127
+ return;
128
+ }
129
+ await removeListenerForEvent(threatChannel);
99
130
  eventsListener?.remove();
100
- eventsListener = undefined;
131
+ eventsListener = null;
101
132
  };
@@ -25,6 +25,10 @@ export const storeExternalId = (data: string): Promise<string> => {
25
25
  return FreeraspReactNative.storeExternalId(data);
26
26
  };
27
27
 
28
+ export const removeExternalId = (): Promise<string> => {
29
+ return FreeraspReactNative.removeExternalId();
30
+ };
31
+
28
32
  export const getAppIcon = (packageName: string): Promise<string> => {
29
33
  if (Platform.OS === 'ios') {
30
34
  return Promise.reject(
@@ -37,3 +41,7 @@ export const getAppIcon = (packageName: string): Promise<string> => {
37
41
  export const onInvalidCallback = (): void => {
38
42
  FreeraspReactNative.onInvalidCallback();
39
43
  };
44
+
45
+ export const removeListenerForEvent = (channel: string): Promise<string> => {
46
+ return FreeraspReactNative.removeListenerForEvent(channel);
47
+ };
@@ -1,4 +1,4 @@
1
- import { talsecStart } from 'freerasp-react-native';
1
+ import { talsecStart } from './native';
2
2
  import { useEffect } from 'react';
3
3
  import {
4
4
  setRaspExecutionStateListener,
@@ -12,6 +12,8 @@ import type {
12
12
  } from '../../types/types';
13
13
  import { onInvalidCallback } from './native';
14
14
 
15
+ let isRaspStarted = false;
16
+
15
17
  export const useFreeRasp = (
16
18
  config: TalsecConfig,
17
19
  actions: ThreatEventActions,
@@ -22,21 +24,28 @@ export const useFreeRasp = (
22
24
  await setThreatListeners(actions);
23
25
  raspExecutionStateActions &&
24
26
  (await setRaspExecutionStateListener(raspExecutionStateActions));
27
+
28
+ if (isRaspStarted) {
29
+ return;
30
+ }
31
+
25
32
  try {
26
- let response = await talsecStart(config);
33
+ const response = await talsecStart(config);
27
34
  if (response !== 'freeRASP started') {
28
35
  onInvalidCallback();
29
36
  }
30
- console.log(response);
37
+ isRaspStarted = true;
31
38
  } catch (e: any) {
32
39
  console.error(`${e.code}: ${e.message}`);
33
40
  }
34
-
35
- return () => {
36
- removeThreatListener();
37
- removeRaspExecutionStateEventListener();
38
- };
39
41
  })();
42
+
43
+ return () => {
44
+ (async () => {
45
+ await removeThreatListener();
46
+ await removeRaspExecutionStateEventListener();
47
+ })();
48
+ };
40
49
  // eslint-disable-next-line react-hooks/exhaustive-deps
41
50
  }, []);
42
51
  };
@@ -1,4 +1,3 @@
1
- import { Platform } from 'react-native';
2
1
  import { getThreatCount, itemsHaveType } from '../utils/utils';
3
2
  import { FreeraspReactNative } from '../api/nativeModules';
4
3
  import { Threat } from '../models/threat';
@@ -18,9 +17,8 @@ export const getThreatIdentifiers = async (): Promise<number[]> => {
18
17
  export const getThreatChannelData = async (): Promise<
19
18
  [string, string, string]
20
19
  > => {
21
- const dataLength = Platform.OS === 'ios' ? 2 : 3;
22
20
  const data = await FreeraspReactNative.getThreatChannelData();
23
- if (data.length !== dataLength || !itemsHaveType(data, 'string')) {
21
+ if (data.length !== 3 || !itemsHaveType(data, 'string')) {
24
22
  onInvalidCallback();
25
23
  }
26
24
  return data;