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
@@ -11,6 +11,30 @@ class FreeraspReactNative: RCTEventEmitter {
11
11
  FreeraspReactNative.shared = self
12
12
  }
13
13
 
14
+ @objc(addListener:)
15
+ override func addListener(_ eventName: String!) {
16
+ super.addListener(eventName)
17
+ if eventName == EventIdentifiers.threatChannelName {
18
+ ThreatDispatcher.shared.listener = { [weak self] threat in
19
+ self?.dispatchThreatEvent(threat: threat)
20
+ }
21
+ } else if eventName == EventIdentifiers.raspExecutionStateChannelName {
22
+ ExecutionStateDispatcher.shared.listener = { [weak self] event in
23
+ self?.dispatchRaspExecutionStateEvent(event: event)
24
+ }
25
+ }
26
+ }
27
+
28
+ @objc(removeListenerForEvent:withResolver:withRejecter:)
29
+ func removeListenerForEvent(eventName: String, resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock) -> Void {
30
+ if eventName == EventIdentifiers.threatChannelName {
31
+ ThreatDispatcher.shared.listener = nil
32
+ } else if eventName == EventIdentifiers.raspExecutionStateChannelName {
33
+ ExecutionStateDispatcher.shared.listener = nil
34
+ }
35
+ resolve("Listener unregistered")
36
+ }
37
+
14
38
  @objc(talsecStart:withResolver:withRejecter:)
15
39
  func talsecStart(options: NSDictionary, resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock) -> Void {
16
40
  do {
@@ -72,12 +96,18 @@ class FreeraspReactNative: RCTEventEmitter {
72
96
  resolve("OK - Store external ID")
73
97
  }
74
98
 
99
+ @objc(removeExternalId:withRejecter:)
100
+ private func removeExternalId(resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock) -> Void {
101
+ UserDefaults.standard.removeObject(forKey: "app.talsec.externalid")
102
+ resolve("OK - External ID removed")
103
+ }
104
+
75
105
  /**
76
106
  * Method to setup the message passing between native and React Native
77
107
  */
78
108
  @objc(getThreatChannelData:withRejecter:)
79
109
  private func getThreatChannelData(resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock) -> Void {
80
- resolve([EventIdentifiers.threatChannelName, EventIdentifiers.threatChannelKey])
110
+ resolve([EventIdentifiers.threatChannelName, EventIdentifiers.threatChannelKey, "0"])
81
111
  }
82
112
 
83
113
  /**
@@ -88,16 +118,16 @@ class FreeraspReactNative: RCTEventEmitter {
88
118
  resolve([EventIdentifiers.raspExecutionStateChannelName, EventIdentifiers.raspExecutionStateChannelKey])
89
119
  }
90
120
 
91
- func dispatchEvent(securityThreat: SecurityThreat) -> Void {
121
+ func dispatchThreatEvent(threat: SecurityThreat) {
92
122
  FreeraspReactNative.shared!.sendEvent(withName: EventIdentifiers.threatChannelName, body: [
93
- EventIdentifiers.threatChannelKey: securityThreat.callbackIdentifier,
123
+ EventIdentifiers.threatChannelKey: threat.callbackIdentifier
94
124
  ])
95
125
  }
96
126
 
97
- func dispatchRaspExecutionStateEvent(event: RaspExecutionStates) -> Void {
98
- FreeraspReactNative.shared!.sendEvent(withName: EventIdentifiers.raspExecutionStateChannelName, body: [
99
- EventIdentifiers.raspExecutionStateChannelKey: event.callbackIdentifier,
100
- ])
127
+ func dispatchRaspExecutionStateEvent(event: RaspExecutionStates) {
128
+ FreeraspReactNative.shared!.sendEvent(withName: EventIdentifiers.raspExecutionStateChannelName, body: [
129
+ EventIdentifiers.raspExecutionStateChannelKey: event.callbackIdentifier,
130
+ ])
101
131
  }
102
132
 
103
133
  /**
@@ -139,12 +169,11 @@ extension SecurityThreatCenter: @retroactive SecurityThreatHandler, @retroactive
139
169
  if (securityThreat.rawValue == "passcodeChange") {
140
170
  return
141
171
  }
142
- FreeraspReactNative.shared!.dispatchEvent(securityThreat: securityThreat)
172
+ ThreatDispatcher.shared.dispatch(threat: securityThreat)
143
173
  }
144
174
 
145
175
  public func onAllChecksFinished() {
146
-
147
- FreeraspReactNative.shared!.dispatchRaspExecutionStateEvent(event: RaspExecutionStates.allChecksFinished)
176
+ ExecutionStateDispatcher.shared.dispatch(event: RaspExecutionStates.allChecksFinished)
148
177
  }
149
178
  }
150
179
 
@@ -0,0 +1,35 @@
1
+ import Foundation
2
+
3
+ class ExecutionStateDispatcher {
4
+ static let shared = ExecutionStateDispatcher()
5
+ private var cache: Set<RaspExecutionStates> = []
6
+ private let lock = NSLock()
7
+
8
+ var listener: ((RaspExecutionStates) -> Void)? {
9
+ didSet {
10
+ if listener != nil {
11
+ flushCache()
12
+ }
13
+ }
14
+ }
15
+
16
+ func dispatch(event: RaspExecutionStates) {
17
+ lock.lock()
18
+ defer { lock.unlock() }
19
+
20
+ if let listener = listener {
21
+ listener(event)
22
+ } else {
23
+ cache.insert(event)
24
+ }
25
+ }
26
+
27
+ private func flushCache() {
28
+ lock.lock()
29
+ let events = cache
30
+ cache.removeAll()
31
+ lock.unlock()
32
+
33
+ events.forEach { listener?($0) }
34
+ }
35
+ }
@@ -0,0 +1,36 @@
1
+ import Foundation
2
+ import TalsecRuntime
3
+
4
+ class ThreatDispatcher {
5
+ static let shared = ThreatDispatcher()
6
+ private var threatCache: Set<SecurityThreat> = []
7
+ private let lock = NSLock()
8
+
9
+ var listener: ((SecurityThreat) -> Void)? {
10
+ didSet {
11
+ if listener != nil {
12
+ flushCache()
13
+ }
14
+ }
15
+ }
16
+
17
+ func dispatch(threat: SecurityThreat) {
18
+ lock.lock()
19
+ defer { lock.unlock() }
20
+
21
+ if let listener = listener {
22
+ listener(threat)
23
+ } else {
24
+ threatCache.insert(threat)
25
+ }
26
+ }
27
+
28
+ private func flushCache() {
29
+ lock.lock()
30
+ let threats = threatCache
31
+ threatCache.removeAll()
32
+ lock.unlock()
33
+
34
+ threats.forEach { listener?($0) }
35
+ }
36
+ }
@@ -10,16 +10,31 @@ var _native = require("../methods/native");
10
10
  var _raspExecutionState = require("../../channels/raspExecutionState");
11
11
  var _raspExecutionState2 = require("../../models/raspExecutionState");
12
12
  const eventEmitter = new _reactNative.NativeEventEmitter(_nativeModules.FreeraspReactNative);
13
- let eventsListener;
13
+ let eventsListener = null;
14
+ let executionStateChannel = null;
15
+ let executionStateKey = null;
16
+ let isMappingPrepared = false;
17
+ let isInitializing = false;
14
18
  const setRaspExecutionStateListener = async config => {
15
- const [channel, key] = await (0, _raspExecutionState.getRaspExecutionStateChannelData)();
16
- await (0, _raspExecutionState.prepareRaspExecutionStateMapping)();
19
+ if (isInitializing) {
20
+ return;
21
+ }
22
+ isInitializing = true;
23
+ await removeRaspExecutionStateEventListener();
24
+ if (!executionStateChannel || !executionStateKey) {
25
+ [executionStateChannel, executionStateKey] = await (0, _raspExecutionState.getRaspExecutionStateChannelData)();
26
+ }
27
+ if (!isMappingPrepared) {
28
+ await (0, _raspExecutionState.prepareRaspExecutionStateMapping)();
29
+ isMappingPrepared = true;
30
+ }
17
31
  const listener = async event => {
18
32
  var _config$allChecksFini;
19
- if (event[key] === undefined) {
33
+ if (!executionStateKey) {
20
34
  (0, _native.onInvalidCallback)();
35
+ return;
21
36
  }
22
- switch (event[key]) {
37
+ switch (event[executionStateKey]) {
23
38
  case _raspExecutionState2.RaspExecutionState.AllChecksFinished.value:
24
39
  (_config$allChecksFini = config.allChecksFinished) === null || _config$allChecksFini === void 0 || _config$allChecksFini.call(config);
25
40
  break;
@@ -28,13 +43,18 @@ const setRaspExecutionStateListener = async config => {
28
43
  break;
29
44
  }
30
45
  };
31
- eventsListener = eventEmitter.addListener(channel, listener);
46
+ eventsListener = eventEmitter.addListener(executionStateChannel, listener);
47
+ isInitializing = false;
32
48
  };
33
49
  exports.setRaspExecutionStateListener = setRaspExecutionStateListener;
34
- const removeRaspExecutionStateEventListener = () => {
50
+ const removeRaspExecutionStateEventListener = async () => {
35
51
  var _eventsListener;
52
+ if (!eventsListener || !executionStateChannel) {
53
+ return;
54
+ }
55
+ await (0, _native.removeListenerForEvent)(executionStateChannel);
36
56
  (_eventsListener = eventsListener) === null || _eventsListener === void 0 || _eventsListener.remove();
37
- eventsListener = undefined;
57
+ eventsListener = null;
38
58
  };
39
59
  exports.removeRaspExecutionStateEventListener = removeRaspExecutionStateEventListener;
40
60
  //# sourceMappingURL=raspExecutionState.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_nativeModules","_native","_raspExecutionState","_raspExecutionState2","eventEmitter","NativeEventEmitter","FreeraspReactNative","eventsListener","setRaspExecutionStateListener","config","channel","key","getRaspExecutionStateChannelData","prepareRaspExecutionStateMapping","listener","event","_config$allChecksFini","undefined","onInvalidCallback","RaspExecutionState","AllChecksFinished","value","allChecksFinished","call","addListener","exports","removeRaspExecutionStateEventListener","_eventsListener","remove"],"sourceRoot":"../../../../src","sources":["api/listeners/raspExecutionState.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAKA,IAAAG,mBAAA,GAAAH,OAAA;AAIA,IAAAI,oBAAA,GAAAJ,OAAA;AAEA,MAAMK,YAAY,GAAG,IAAIC,+BAAkB,CAACC,kCAAmB,CAAC;AAChE,IAAIC,cAA+C;AAE5C,MAAMC,6BAA6B,GAAG,MAC3CC,MAAsC,IACnC;EACH,MAAM,CAACC,OAAO,EAAEC,GAAG,CAAC,GAAG,MAAM,IAAAC,oDAAgC,EAAC,CAAC;EAC/D,MAAM,IAAAC,oDAAgC,EAAC,CAAC;EAExC,MAAMC,QAAQ,GAAG,MAAOC,KAAkB,IAAK;IAAA,IAAAC,qBAAA;IAC7C,IAAID,KAAK,CAACJ,GAAG,CAAC,KAAKM,SAAS,EAAE;MAC5B,IAAAC,yBAAiB,EAAC,CAAC;IACrB;IACA,QAAQH,KAAK,CAACJ,GAAG,CAAC;MAChB,KAAKQ,uCAAkB,CAACC,iBAAiB,CAACC,KAAK;QAC7C,CAAAL,qBAAA,GAAAP,MAAM,CAACa,iBAAiB,cAAAN,qBAAA,eAAxBA,qBAAA,CAAAO,IAAA,CAAAd,MAA2B,CAAC;QAC5B;MACF;QACE,IAAAS,yBAAiB,EAAC,CAAC;QACnB;IACJ;EACF,CAAC;EACDX,cAAc,GAAGH,YAAY,CAACoB,WAAW,CAACd,OAAO,EAAEI,QAAQ,CAAC;AAC9D,CAAC;AAACW,OAAA,CAAAjB,6BAAA,GAAAA,6BAAA;AAEK,MAAMkB,qCAAqC,GAAGA,CAAA,KAAY;EAAA,IAAAC,eAAA;EAC/D,CAAAA,eAAA,GAAApB,cAAc,cAAAoB,eAAA,eAAdA,eAAA,CAAgBC,MAAM,CAAC,CAAC;EACxBrB,cAAc,GAAGU,SAAS;AAC5B,CAAC;AAACQ,OAAA,CAAAC,qCAAA,GAAAA,qCAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_nativeModules","_native","_raspExecutionState","_raspExecutionState2","eventEmitter","NativeEventEmitter","FreeraspReactNative","eventsListener","executionStateChannel","executionStateKey","isMappingPrepared","isInitializing","setRaspExecutionStateListener","config","removeRaspExecutionStateEventListener","getRaspExecutionStateChannelData","prepareRaspExecutionStateMapping","listener","event","_config$allChecksFini","onInvalidCallback","RaspExecutionState","AllChecksFinished","value","allChecksFinished","call","addListener","exports","_eventsListener","removeListenerForEvent","remove"],"sourceRoot":"../../../../src","sources":["api/listeners/raspExecutionState.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAKA,IAAAG,mBAAA,GAAAH,OAAA;AAIA,IAAAI,oBAAA,GAAAJ,OAAA;AAEA,MAAMK,YAAY,GAAG,IAAIC,+BAAkB,CAACC,kCAAmB,CAAC;AAChE,IAAIC,cAA0C,GAAG,IAAI;AACrD,IAAIC,qBAAoC,GAAG,IAAI;AAC/C,IAAIC,iBAAgC,GAAG,IAAI;AAE3C,IAAIC,iBAAiB,GAAG,KAAK;AAC7B,IAAIC,cAAc,GAAG,KAAK;AAEnB,MAAMC,6BAA6B,GAAG,MAC3CC,MAAsC,IACnC;EACH,IAAIF,cAAc,EAAE;IAClB;EACF;EAEAA,cAAc,GAAG,IAAI;EAErB,MAAMG,qCAAqC,CAAC,CAAC;EAE7C,IAAI,CAACN,qBAAqB,IAAI,CAACC,iBAAiB,EAAE;IAChD,CAACD,qBAAqB,EAAEC,iBAAiB,CAAC,GACxC,MAAM,IAAAM,oDAAgC,EAAC,CAAC;EAC5C;EAEA,IAAI,CAACL,iBAAiB,EAAE;IACtB,MAAM,IAAAM,oDAAgC,EAAC,CAAC;IACxCN,iBAAiB,GAAG,IAAI;EAC1B;EAEA,MAAMO,QAAQ,GAAG,MAAOC,KAAkB,IAAK;IAAA,IAAAC,qBAAA;IAC7C,IAAI,CAACV,iBAAiB,EAAE;MACtB,IAAAW,yBAAiB,EAAC,CAAC;MACnB;IACF;IAEA,QAAQF,KAAK,CAACT,iBAAiB,CAAC;MAC9B,KAAKY,uCAAkB,CAACC,iBAAiB,CAACC,KAAK;QAC7C,CAAAJ,qBAAA,GAAAN,MAAM,CAACW,iBAAiB,cAAAL,qBAAA,eAAxBA,qBAAA,CAAAM,IAAA,CAAAZ,MAA2B,CAAC;QAC5B;MACF;QACE,IAAAO,yBAAiB,EAAC,CAAC;QACnB;IACJ;EACF,CAAC;EACDb,cAAc,GAAGH,YAAY,CAACsB,WAAW,CAAClB,qBAAqB,EAAES,QAAQ,CAAC;EAC1EN,cAAc,GAAG,KAAK;AACxB,CAAC;AAACgB,OAAA,CAAAf,6BAAA,GAAAA,6BAAA;AAEK,MAAME,qCAAqC,GAChD,MAAAA,CAAA,KAA2B;EAAA,IAAAc,eAAA;EACzB,IAAI,CAACrB,cAAc,IAAI,CAACC,qBAAqB,EAAE;IAC7C;EACF;EACA,MAAM,IAAAqB,8BAAsB,EAACrB,qBAAqB,CAAC;EACnD,CAAAoB,eAAA,GAAArB,cAAc,cAAAqB,eAAA,eAAdA,eAAA,CAAgBE,MAAM,CAAC,CAAC;EACxBvB,cAAc,GAAG,IAAI;AACvB,CAAC;AAACoB,OAAA,CAAAb,qCAAA,GAAAA,qCAAA","ignoreList":[]}
@@ -11,16 +11,32 @@ var _threat = require("../../models/threat");
11
11
  var _malware = require("../../utils/malware");
12
12
  var _threat2 = require("../../channels/threat");
13
13
  const eventEmitter = new _reactNative.NativeEventEmitter(_nativeModules.FreeraspReactNative);
14
- let eventsListener;
14
+ let eventsListener = null;
15
+ let threatChannel = null;
16
+ let threatKey = null;
17
+ let threatMalwareKey = null;
18
+ let isMappingPrepared = false;
19
+ let isInitializing = false;
15
20
  const setThreatListeners = async config => {
16
- const [channel, key, malwareKey] = await (0, _threat2.getThreatChannelData)();
17
- await (0, _threat2.prepareThreatMapping)();
21
+ if (isInitializing) {
22
+ return;
23
+ }
24
+ isInitializing = true;
25
+ await removeThreatListener();
26
+ if (!threatChannel || !threatKey || !threatMalwareKey) {
27
+ [threatChannel, threatKey, threatMalwareKey] = await (0, _threat2.getThreatChannelData)();
28
+ }
29
+ if (!isMappingPrepared) {
30
+ await (0, _threat2.prepareThreatMapping)();
31
+ isMappingPrepared = true;
32
+ }
18
33
  const listener = async event => {
19
- 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;
20
- if (event[key] === undefined) {
34
+ 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;
35
+ if (!threatKey || !threatMalwareKey) {
21
36
  (0, _native.onInvalidCallback)();
37
+ return;
22
38
  }
23
- switch (event[key]) {
39
+ switch (event[threatKey]) {
24
40
  case _threat.Threat.PrivilegedAccess.value:
25
41
  (_config$privilegedAcc = config.privilegedAccess) === null || _config$privilegedAcc === void 0 || _config$privilegedAcc.call(config);
26
42
  break;
@@ -61,7 +77,7 @@ const setThreatListeners = async config => {
61
77
  (_config$systemVPN = config.systemVPN) === null || _config$systemVPN === void 0 || _config$systemVPN.call(config);
62
78
  break;
63
79
  case _threat.Threat.Malware.value:
64
- const malwareData = event[malwareKey];
80
+ const malwareData = event[threatMalwareKey];
65
81
  (_config$malware = config.malware) === null || _config$malware === void 0 || _config$malware.call(config, await (0, _malware.parseMalwareData)(Array.isArray(malwareData) ? malwareData : []));
66
82
  break;
67
83
  case _threat.Threat.ADBEnabled.value:
@@ -85,18 +101,26 @@ const setThreatListeners = async config => {
85
101
  case _threat.Threat.UnsecureWifi.value:
86
102
  (_config$unsecureWifi = config.unsecureWifi) === null || _config$unsecureWifi === void 0 || _config$unsecureWifi.call(config);
87
103
  break;
104
+ case _threat.Threat.Automation.value:
105
+ (_config$automation = config.automation) === null || _config$automation === void 0 || _config$automation.call(config);
106
+ break;
88
107
  default:
89
108
  (0, _native.onInvalidCallback)();
90
109
  break;
91
110
  }
92
111
  };
93
- eventsListener = eventEmitter.addListener(channel, listener);
112
+ eventsListener = eventEmitter.addListener(threatChannel, listener);
113
+ isInitializing = false;
94
114
  };
95
115
  exports.setThreatListeners = setThreatListeners;
96
- const removeThreatListener = () => {
116
+ const removeThreatListener = async () => {
97
117
  var _eventsListener;
118
+ if (!eventsListener || !threatChannel) {
119
+ return;
120
+ }
121
+ await (0, _native.removeListenerForEvent)(threatChannel);
98
122
  (_eventsListener = eventsListener) === null || _eventsListener === void 0 || _eventsListener.remove();
99
- eventsListener = undefined;
123
+ eventsListener = null;
100
124
  };
101
125
  exports.removeThreatListener = removeThreatListener;
102
126
  //# sourceMappingURL=threat.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_nativeModules","_native","_threat","_malware","_threat2","eventEmitter","NativeEventEmitter","FreeraspReactNative","eventsListener","setThreatListeners","config","channel","key","malwareKey","getThreatChannelData","prepareThreatMapping","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","onInvalidCallback","Threat","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","parseMalwareData","Array","isArray","ADBEnabled","adbEnabled","Screenshot","screenshot","ScreenRecording","screenRecording","MultiInstance","multiInstance","TimeSpoofing","timeSpoofing","LocationSpoofing","locationSpoofing","UnsecureWifi","unsecureWifi","addListener","exports","removeThreatListener","_eventsListener","remove"],"sourceRoot":"../../../../src","sources":["api/listeners/threat.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_nativeModules","_native","_threat","_malware","_threat2","eventEmitter","NativeEventEmitter","FreeraspReactNative","eventsListener","threatChannel","threatKey","threatMalwareKey","isMappingPrepared","isInitializing","setThreatListeners","config","removeThreatListener","getThreatChannelData","prepareThreatMapping","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","onInvalidCallback","Threat","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","parseMalwareData","Array","isArray","ADBEnabled","adbEnabled","Screenshot","screenshot","ScreenRecording","screenRecording","MultiInstance","multiInstance","TimeSpoofing","timeSpoofing","LocationSpoofing","locationSpoofing","UnsecureWifi","unsecureWifi","Automation","automation","addListener","exports","_eventsListener","removeListenerForEvent","remove"],"sourceRoot":"../../../../src","sources":["api/listeners/threat.ts"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.talsecStart = exports.storeExternalId = exports.onInvalidCallback = exports.isScreenCaptureBlocked = exports.getAppIcon = exports.blockScreenCapture = exports.addToWhitelist = void 0;
6
+ exports.talsecStart = exports.storeExternalId = exports.removeListenerForEvent = exports.removeExternalId = exports.onInvalidCallback = exports.isScreenCaptureBlocked = exports.getAppIcon = exports.blockScreenCapture = exports.addToWhitelist = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _nativeModules = require("../nativeModules");
9
9
  const talsecStart = async options => {
@@ -29,6 +29,10 @@ const storeExternalId = data => {
29
29
  return _nativeModules.FreeraspReactNative.storeExternalId(data);
30
30
  };
31
31
  exports.storeExternalId = storeExternalId;
32
+ const removeExternalId = () => {
33
+ return _nativeModules.FreeraspReactNative.removeExternalId();
34
+ };
35
+ exports.removeExternalId = removeExternalId;
32
36
  const getAppIcon = packageName => {
33
37
  if (_reactNative.Platform.OS === 'ios') {
34
38
  return Promise.reject('App icon retrieval for Malware detection not available on iOS');
@@ -40,4 +44,8 @@ const onInvalidCallback = () => {
40
44
  _nativeModules.FreeraspReactNative.onInvalidCallback();
41
45
  };
42
46
  exports.onInvalidCallback = onInvalidCallback;
47
+ const removeListenerForEvent = channel => {
48
+ return _nativeModules.FreeraspReactNative.removeListenerForEvent(channel);
49
+ };
50
+ exports.removeListenerForEvent = removeListenerForEvent;
43
51
  //# sourceMappingURL=native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_nativeModules","talsecStart","options","FreeraspReactNative","exports","addToWhitelist","packageName","Platform","OS","Promise","reject","blockScreenCapture","enable","isScreenCaptureBlocked","storeExternalId","data","getAppIcon","onInvalidCallback"],"sourceRoot":"../../../../src","sources":["api/methods/native.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAGO,MAAME,WAAW,GAAG,MAAOC,OAAqB,IAAsB;EAC3E,OAAOC,kCAAmB,CAACF,WAAW,CAACC,OAAO,CAAC;AACjD,CAAC;AAACE,OAAA,CAAAH,WAAA,GAAAA,WAAA;AAEK,MAAMI,cAAc,GAAG,MAAOC,WAAmB,IAAuB;EAC7E,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CAAC,wCAAwC,CAAC;EACjE;EACA,OAAOP,kCAAmB,CAACE,cAAc,CAACC,WAAW,CAAC;AACxD,CAAC;AAACF,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAEK,MAAMM,kBAAkB,GAAIC,MAAe,IAAsB;EACtE,OAAOT,kCAAmB,CAACQ,kBAAkB,CAACC,MAAM,CAAC;AACvD,CAAC;AAACR,OAAA,CAAAO,kBAAA,GAAAA,kBAAA;AAEK,MAAME,sBAAsB,GAAGA,CAAA,KAAwB;EAC5D,OAAOV,kCAAmB,CAACU,sBAAsB,CAAC,CAAC;AACrD,CAAC;AAACT,OAAA,CAAAS,sBAAA,GAAAA,sBAAA;AAEK,MAAMC,eAAe,GAAIC,IAAY,IAAsB;EAChE,OAAOZ,kCAAmB,CAACW,eAAe,CAACC,IAAI,CAAC;AAClD,CAAC;AAACX,OAAA,CAAAU,eAAA,GAAAA,eAAA;AAEK,MAAME,UAAU,GAAIV,WAAmB,IAAsB;EAClE,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CACnB,+DACF,CAAC;EACH;EACA,OAAOP,kCAAmB,CAACa,UAAU,CAACV,WAAW,CAAC;AACpD,CAAC;AAACF,OAAA,CAAAY,UAAA,GAAAA,UAAA;AAEK,MAAMC,iBAAiB,GAAGA,CAAA,KAAY;EAC3Cd,kCAAmB,CAACc,iBAAiB,CAAC,CAAC;AACzC,CAAC;AAACb,OAAA,CAAAa,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_nativeModules","talsecStart","options","FreeraspReactNative","exports","addToWhitelist","packageName","Platform","OS","Promise","reject","blockScreenCapture","enable","isScreenCaptureBlocked","storeExternalId","data","removeExternalId","getAppIcon","onInvalidCallback","removeListenerForEvent","channel"],"sourceRoot":"../../../../src","sources":["api/methods/native.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAGO,MAAME,WAAW,GAAG,MAAOC,OAAqB,IAAsB;EAC3E,OAAOC,kCAAmB,CAACF,WAAW,CAACC,OAAO,CAAC;AACjD,CAAC;AAACE,OAAA,CAAAH,WAAA,GAAAA,WAAA;AAEK,MAAMI,cAAc,GAAG,MAAOC,WAAmB,IAAuB;EAC7E,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CAAC,wCAAwC,CAAC;EACjE;EACA,OAAOP,kCAAmB,CAACE,cAAc,CAACC,WAAW,CAAC;AACxD,CAAC;AAACF,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAEK,MAAMM,kBAAkB,GAAIC,MAAe,IAAsB;EACtE,OAAOT,kCAAmB,CAACQ,kBAAkB,CAACC,MAAM,CAAC;AACvD,CAAC;AAACR,OAAA,CAAAO,kBAAA,GAAAA,kBAAA;AAEK,MAAME,sBAAsB,GAAGA,CAAA,KAAwB;EAC5D,OAAOV,kCAAmB,CAACU,sBAAsB,CAAC,CAAC;AACrD,CAAC;AAACT,OAAA,CAAAS,sBAAA,GAAAA,sBAAA;AAEK,MAAMC,eAAe,GAAIC,IAAY,IAAsB;EAChE,OAAOZ,kCAAmB,CAACW,eAAe,CAACC,IAAI,CAAC;AAClD,CAAC;AAACX,OAAA,CAAAU,eAAA,GAAAA,eAAA;AAEK,MAAME,gBAAgB,GAAGA,CAAA,KAAuB;EACrD,OAAOb,kCAAmB,CAACa,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAACZ,OAAA,CAAAY,gBAAA,GAAAA,gBAAA;AAEK,MAAMC,UAAU,GAAIX,WAAmB,IAAsB;EAClE,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CACnB,+DACF,CAAC;EACH;EACA,OAAOP,kCAAmB,CAACc,UAAU,CAACX,WAAW,CAAC;AACpD,CAAC;AAACF,OAAA,CAAAa,UAAA,GAAAA,UAAA;AAEK,MAAMC,iBAAiB,GAAGA,CAAA,KAAY;EAC3Cf,kCAAmB,CAACe,iBAAiB,CAAC,CAAC;AACzC,CAAC;AAACd,OAAA,CAAAc,iBAAA,GAAAA,iBAAA;AAEK,MAAMC,sBAAsB,GAAIC,OAAe,IAAsB;EAC1E,OAAOjB,kCAAmB,CAACgB,sBAAsB,CAACC,OAAO,CAAC;AAC5D,CAAC;AAAChB,OAAA,CAAAe,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -4,30 +4,35 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useFreeRasp = void 0;
7
- var _freeraspReactNative = require("freerasp-react-native");
7
+ var _native = require("./native");
8
8
  var _react = require("react");
9
9
  var _raspExecutionState = require("../listeners/raspExecutionState");
10
10
  var _threat = require("../listeners/threat");
11
- var _native = require("./native");
11
+ let isRaspStarted = false;
12
12
  const useFreeRasp = (config, actions, raspExecutionStateActions) => {
13
13
  (0, _react.useEffect)(() => {
14
14
  (async () => {
15
15
  await (0, _threat.setThreatListeners)(actions);
16
16
  raspExecutionStateActions && (await (0, _raspExecutionState.setRaspExecutionStateListener)(raspExecutionStateActions));
17
+ if (isRaspStarted) {
18
+ return;
19
+ }
17
20
  try {
18
- let response = await (0, _freeraspReactNative.talsecStart)(config);
21
+ const response = await (0, _native.talsecStart)(config);
19
22
  if (response !== 'freeRASP started') {
20
23
  (0, _native.onInvalidCallback)();
21
24
  }
22
- console.log(response);
25
+ isRaspStarted = true;
23
26
  } catch (e) {
24
27
  console.error(`${e.code}: ${e.message}`);
25
28
  }
26
- return () => {
27
- (0, _threat.removeThreatListener)();
28
- (0, _raspExecutionState.removeRaspExecutionStateEventListener)();
29
- };
30
29
  })();
30
+ return () => {
31
+ (async () => {
32
+ await (0, _threat.removeThreatListener)();
33
+ await (0, _raspExecutionState.removeRaspExecutionStateEventListener)();
34
+ })();
35
+ };
31
36
  // eslint-disable-next-line react-hooks/exhaustive-deps
32
37
  }, []);
33
38
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_freeraspReactNative","require","_react","_raspExecutionState","_threat","_native","useFreeRasp","config","actions","raspExecutionStateActions","useEffect","setThreatListeners","setRaspExecutionStateListener","response","talsecStart","onInvalidCallback","console","log","e","error","code","message","removeThreatListener","removeRaspExecutionStateEventListener","exports"],"sourceRoot":"../../../../src","sources":["api/methods/reactNative.ts"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAIA,IAAAG,OAAA,GAAAH,OAAA;AAMA,IAAAI,OAAA,GAAAJ,OAAA;AAEO,MAAMK,WAAW,GAAGA,CACzBC,MAAoB,EACpBC,OAA2B,EAC3BC,yBAA0D,KACvD;EACH,IAAAC,gBAAS,EAAC,MAAM;IACd,CAAC,YAAY;MACX,MAAM,IAAAC,0BAAkB,EAACH,OAAO,CAAC;MACjCC,yBAAyB,KACtB,MAAM,IAAAG,iDAA6B,EAACH,yBAAyB,CAAC,CAAC;MAClE,IAAI;QACF,IAAII,QAAQ,GAAG,MAAM,IAAAC,gCAAW,EAACP,MAAM,CAAC;QACxC,IAAIM,QAAQ,KAAK,kBAAkB,EAAE;UACnC,IAAAE,yBAAiB,EAAC,CAAC;QACrB;QACAC,OAAO,CAACC,GAAG,CAACJ,QAAQ,CAAC;MACvB,CAAC,CAAC,OAAOK,CAAM,EAAE;QACfF,OAAO,CAACG,KAAK,CAAE,GAAED,CAAC,CAACE,IAAK,KAAIF,CAAC,CAACG,OAAQ,EAAC,CAAC;MAC1C;MAEA,OAAO,MAAM;QACX,IAAAC,4BAAoB,EAAC,CAAC;QACtB,IAAAC,yDAAqC,EAAC,CAAC;MACzC,CAAC;IACH,CAAC,EAAE,CAAC;IACJ;EACF,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAACC,OAAA,CAAAlB,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["_native","require","_react","_raspExecutionState","_threat","isRaspStarted","useFreeRasp","config","actions","raspExecutionStateActions","useEffect","setThreatListeners","setRaspExecutionStateListener","response","talsecStart","onInvalidCallback","e","console","error","code","message","removeThreatListener","removeRaspExecutionStateEventListener","exports"],"sourceRoot":"../../../../src","sources":["api/methods/reactNative.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAIA,IAAAG,OAAA,GAAAH,OAAA;AAQA,IAAII,aAAa,GAAG,KAAK;AAElB,MAAMC,WAAW,GAAGA,CACzBC,MAAoB,EACpBC,OAA2B,EAC3BC,yBAA0D,KACvD;EACH,IAAAC,gBAAS,EAAC,MAAM;IACd,CAAC,YAAY;MACX,MAAM,IAAAC,0BAAkB,EAACH,OAAO,CAAC;MACjCC,yBAAyB,KACtB,MAAM,IAAAG,iDAA6B,EAACH,yBAAyB,CAAC,CAAC;MAElE,IAAIJ,aAAa,EAAE;QACjB;MACF;MAEA,IAAI;QACF,MAAMQ,QAAQ,GAAG,MAAM,IAAAC,mBAAW,EAACP,MAAM,CAAC;QAC1C,IAAIM,QAAQ,KAAK,kBAAkB,EAAE;UACnC,IAAAE,yBAAiB,EAAC,CAAC;QACrB;QACAV,aAAa,GAAG,IAAI;MACtB,CAAC,CAAC,OAAOW,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,MAAM,IAAAC,4BAAoB,EAAC,CAAC;QAC5B,MAAM,IAAAC,yDAAqC,EAAC,CAAC;MAC/C,CAAC,EAAE,CAAC;IACN,CAAC;IACD;EACF,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAACC,OAAA,CAAAjB,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.prepareThreatMapping = exports.getThreatIdentifiers = exports.getThreatChannelData = void 0;
7
- var _reactNative = require("react-native");
8
7
  var _utils = require("../utils/utils");
9
8
  var _nativeModules = require("../api/nativeModules");
10
9
  var _threat = require("../models/threat");
@@ -18,9 +17,8 @@ const getThreatIdentifiers = async () => {
18
17
  };
19
18
  exports.getThreatIdentifiers = getThreatIdentifiers;
20
19
  const getThreatChannelData = async () => {
21
- const dataLength = _reactNative.Platform.OS === 'ios' ? 2 : 3;
22
20
  const data = await _nativeModules.FreeraspReactNative.getThreatChannelData();
23
- if (data.length !== dataLength || !(0, _utils.itemsHaveType)(data, 'string')) {
21
+ if (data.length !== 3 || !(0, _utils.itemsHaveType)(data, 'string')) {
24
22
  (0, _native.onInvalidCallback)();
25
23
  }
26
24
  return data;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_utils","_nativeModules","_threat","_native","getThreatIdentifiers","identifiers","FreeraspReactNative","length","getThreatCount","itemsHaveType","onInvalidCallback","exports","getThreatChannelData","dataLength","Platform","OS","data","prepareThreatMapping","newValues","threats","Threat","getValues","map","threat","index","value"],"sourceRoot":"../../../src","sources":["channels/threat.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAEO,MAAMK,oBAAoB,GAAG,MAAAA,CAAA,KAA+B;EACjE,MAAMC,WAAW,GAAG,MAAMC,kCAAmB,CAACF,oBAAoB,CAAC,CAAC;EACpE,IACEC,WAAW,CAACE,MAAM,KAAK,IAAAC,qBAAc,EAAC,CAAC,IACvC,CAAC,IAAAC,oBAAa,EAACJ,WAAW,EAAE,QAAQ,CAAC,EACrC;IACA,IAAAK,yBAAiB,EAAC,CAAC;EACrB;EACA,OAAOL,WAAW;AACpB,CAAC;AAACM,OAAA,CAAAP,oBAAA,GAAAA,oBAAA;AAEK,MAAMQ,oBAAoB,GAAG,MAAAA,CAAA,KAE/B;EACH,MAAMC,UAAU,GAAGC,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC;EAChD,MAAMC,IAAI,GAAG,MAAMV,kCAAmB,CAACM,oBAAoB,CAAC,CAAC;EAC7D,IAAII,IAAI,CAACT,MAAM,KAAKM,UAAU,IAAI,CAAC,IAAAJ,oBAAa,EAACO,IAAI,EAAE,QAAQ,CAAC,EAAE;IAChE,IAAAN,yBAAiB,EAAC,CAAC;EACrB;EACA,OAAOM,IAAI;AACb,CAAC;AAACL,OAAA,CAAAC,oBAAA,GAAAA,oBAAA;AAEK,MAAMK,oBAAoB,GAAG,MAAAA,CAAA,KAA2B;EAC7D,MAAMC,SAAS,GAAG,MAAMd,oBAAoB,CAAC,CAAC;EAC9C,MAAMe,OAAO,GAAGC,cAAM,CAACC,SAAS,CAAC,CAAC;EAClCF,OAAO,CAACG,GAAG,CAAC,CAACC,MAAM,EAAEC,KAAK,KAAK;IAC7BD,MAAM,CAACE,KAAK,GAAGP,SAAS,CAACM,KAAK,CAAE;EAClC,CAAC,CAAC;AACJ,CAAC;AAACb,OAAA,CAAAM,oBAAA,GAAAA,oBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_utils","require","_nativeModules","_threat","_native","getThreatIdentifiers","identifiers","FreeraspReactNative","length","getThreatCount","itemsHaveType","onInvalidCallback","exports","getThreatChannelData","data","prepareThreatMapping","newValues","threats","Threat","getValues","map","threat","index","value"],"sourceRoot":"../../../src","sources":["channels/threat.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEO,MAAMI,oBAAoB,GAAG,MAAAA,CAAA,KAA+B;EACjE,MAAMC,WAAW,GAAG,MAAMC,kCAAmB,CAACF,oBAAoB,CAAC,CAAC;EACpE,IACEC,WAAW,CAACE,MAAM,KAAK,IAAAC,qBAAc,EAAC,CAAC,IACvC,CAAC,IAAAC,oBAAa,EAACJ,WAAW,EAAE,QAAQ,CAAC,EACrC;IACA,IAAAK,yBAAiB,EAAC,CAAC;EACrB;EACA,OAAOL,WAAW;AACpB,CAAC;AAACM,OAAA,CAAAP,oBAAA,GAAAA,oBAAA;AAEK,MAAMQ,oBAAoB,GAAG,MAAAA,CAAA,KAE/B;EACH,MAAMC,IAAI,GAAG,MAAMP,kCAAmB,CAACM,oBAAoB,CAAC,CAAC;EAC7D,IAAIC,IAAI,CAACN,MAAM,KAAK,CAAC,IAAI,CAAC,IAAAE,oBAAa,EAACI,IAAI,EAAE,QAAQ,CAAC,EAAE;IACvD,IAAAH,yBAAiB,EAAC,CAAC;EACrB;EACA,OAAOG,IAAI;AACb,CAAC;AAACF,OAAA,CAAAC,oBAAA,GAAAA,oBAAA;AAEK,MAAME,oBAAoB,GAAG,MAAAA,CAAA,KAA2B;EAC7D,MAAMC,SAAS,GAAG,MAAMX,oBAAoB,CAAC,CAAC;EAC9C,MAAMY,OAAO,GAAGC,cAAM,CAACC,SAAS,CAAC,CAAC;EAClCF,OAAO,CAACG,GAAG,CAAC,CAACC,MAAM,EAAEC,KAAK,KAAK;IAC7BD,MAAM,CAACE,KAAK,GAAGP,SAAS,CAACM,KAAK,CAAE;EAClC,CAAC,CAAC;AACJ,CAAC;AAACV,OAAA,CAAAG,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -27,11 +27,12 @@ class Threat {
27
27
  static TimeSpoofing = new Threat(0);
28
28
  static LocationSpoofing = new Threat(0);
29
29
  static UnsecureWifi = new Threat(0);
30
+ static Automation = new Threat(0);
30
31
  constructor(value) {
31
32
  this.value = value;
32
33
  }
33
34
  static getValues() {
34
- return _reactNative.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];
35
+ return _reactNative.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];
35
36
  }
36
37
  }
37
38
  exports.Threat = Threat;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","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","Platform","OS","exports"],"sourceRoot":"../../../src","sources":["models/threat.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","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","Platform","OS","exports"],"sourceRoot":"../../../src","sources":["models/threat.ts"],"mappings":"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","ignoreList":[]}
@@ -1,19 +1,34 @@
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 { getRaspExecutionStateChannelData, prepareRaspExecutionStateMapping } from '../../channels/raspExecutionState';
5
5
  import { RaspExecutionState } from '../../models/raspExecutionState';
6
6
  const eventEmitter = new NativeEventEmitter(FreeraspReactNative);
7
- let eventsListener;
7
+ let eventsListener = null;
8
+ let executionStateChannel = null;
9
+ let executionStateKey = null;
10
+ let isMappingPrepared = false;
11
+ let isInitializing = false;
8
12
  export const setRaspExecutionStateListener = async config => {
9
- const [channel, key] = await getRaspExecutionStateChannelData();
10
- await prepareRaspExecutionStateMapping();
13
+ if (isInitializing) {
14
+ return;
15
+ }
16
+ isInitializing = true;
17
+ await removeRaspExecutionStateEventListener();
18
+ if (!executionStateChannel || !executionStateKey) {
19
+ [executionStateChannel, executionStateKey] = await getRaspExecutionStateChannelData();
20
+ }
21
+ if (!isMappingPrepared) {
22
+ await prepareRaspExecutionStateMapping();
23
+ isMappingPrepared = true;
24
+ }
11
25
  const listener = async event => {
12
26
  var _config$allChecksFini;
13
- if (event[key] === undefined) {
27
+ if (!executionStateKey) {
14
28
  onInvalidCallback();
29
+ return;
15
30
  }
16
- switch (event[key]) {
31
+ switch (event[executionStateKey]) {
17
32
  case RaspExecutionState.AllChecksFinished.value:
18
33
  (_config$allChecksFini = config.allChecksFinished) === null || _config$allChecksFini === void 0 || _config$allChecksFini.call(config);
19
34
  break;
@@ -22,11 +37,16 @@ export const setRaspExecutionStateListener = async config => {
22
37
  break;
23
38
  }
24
39
  };
25
- eventsListener = eventEmitter.addListener(channel, listener);
40
+ eventsListener = eventEmitter.addListener(executionStateChannel, listener);
41
+ isInitializing = false;
26
42
  };
27
- export const removeRaspExecutionStateEventListener = () => {
43
+ export const removeRaspExecutionStateEventListener = async () => {
28
44
  var _eventsListener;
45
+ if (!eventsListener || !executionStateChannel) {
46
+ return;
47
+ }
48
+ await removeListenerForEvent(executionStateChannel);
29
49
  (_eventsListener = eventsListener) === null || _eventsListener === void 0 || _eventsListener.remove();
30
- eventsListener = undefined;
50
+ eventsListener = null;
31
51
  };
32
52
  //# sourceMappingURL=raspExecutionState.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","FreeraspReactNative","onInvalidCallback","getRaspExecutionStateChannelData","prepareRaspExecutionStateMapping","RaspExecutionState","eventEmitter","eventsListener","setRaspExecutionStateListener","config","channel","key","listener","event","_config$allChecksFini","undefined","AllChecksFinished","value","allChecksFinished","call","addListener","removeRaspExecutionStateEventListener","_eventsListener","remove"],"sourceRoot":"../../../../src","sources":["api/listeners/raspExecutionState.ts"],"mappings":"AAAA,SAASA,kBAAkB,QAAkC,cAAc;AAC3E,SAASC,mBAAmB,QAAQ,kBAAkB;AACtD,SAASC,iBAAiB,QAAQ,mBAAmB;AAKrD,SACEC,gCAAgC,EAChCC,gCAAgC,QAC3B,mCAAmC;AAC1C,SAASC,kBAAkB,QAAQ,iCAAiC;AAEpE,MAAMC,YAAY,GAAG,IAAIN,kBAAkB,CAACC,mBAAmB,CAAC;AAChE,IAAIM,cAA+C;AAEnD,OAAO,MAAMC,6BAA6B,GAAG,MAC3CC,MAAsC,IACnC;EACH,MAAM,CAACC,OAAO,EAAEC,GAAG,CAAC,GAAG,MAAMR,gCAAgC,CAAC,CAAC;EAC/D,MAAMC,gCAAgC,CAAC,CAAC;EAExC,MAAMQ,QAAQ,GAAG,MAAOC,KAAkB,IAAK;IAAA,IAAAC,qBAAA;IAC7C,IAAID,KAAK,CAACF,GAAG,CAAC,KAAKI,SAAS,EAAE;MAC5Bb,iBAAiB,CAAC,CAAC;IACrB;IACA,QAAQW,KAAK,CAACF,GAAG,CAAC;MAChB,KAAKN,kBAAkB,CAACW,iBAAiB,CAACC,KAAK;QAC7C,CAAAH,qBAAA,GAAAL,MAAM,CAACS,iBAAiB,cAAAJ,qBAAA,eAAxBA,qBAAA,CAAAK,IAAA,CAAAV,MAA2B,CAAC;QAC5B;MACF;QACEP,iBAAiB,CAAC,CAAC;QACnB;IACJ;EACF,CAAC;EACDK,cAAc,GAAGD,YAAY,CAACc,WAAW,CAACV,OAAO,EAAEE,QAAQ,CAAC;AAC9D,CAAC;AAED,OAAO,MAAMS,qCAAqC,GAAGA,CAAA,KAAY;EAAA,IAAAC,eAAA;EAC/D,CAAAA,eAAA,GAAAf,cAAc,cAAAe,eAAA,eAAdA,eAAA,CAAgBC,MAAM,CAAC,CAAC;EACxBhB,cAAc,GAAGQ,SAAS;AAC5B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["NativeEventEmitter","FreeraspReactNative","onInvalidCallback","removeListenerForEvent","getRaspExecutionStateChannelData","prepareRaspExecutionStateMapping","RaspExecutionState","eventEmitter","eventsListener","executionStateChannel","executionStateKey","isMappingPrepared","isInitializing","setRaspExecutionStateListener","config","removeRaspExecutionStateEventListener","listener","event","_config$allChecksFini","AllChecksFinished","value","allChecksFinished","call","addListener","_eventsListener","remove"],"sourceRoot":"../../../../src","sources":["api/listeners/raspExecutionState.ts"],"mappings":"AAAA,SAASA,kBAAkB,QAAkC,cAAc;AAC3E,SAASC,mBAAmB,QAAQ,kBAAkB;AACtD,SAASC,iBAAiB,EAAEC,sBAAsB,QAAQ,mBAAmB;AAK7E,SACEC,gCAAgC,EAChCC,gCAAgC,QAC3B,mCAAmC;AAC1C,SAASC,kBAAkB,QAAQ,iCAAiC;AAEpE,MAAMC,YAAY,GAAG,IAAIP,kBAAkB,CAACC,mBAAmB,CAAC;AAChE,IAAIO,cAA0C,GAAG,IAAI;AACrD,IAAIC,qBAAoC,GAAG,IAAI;AAC/C,IAAIC,iBAAgC,GAAG,IAAI;AAE3C,IAAIC,iBAAiB,GAAG,KAAK;AAC7B,IAAIC,cAAc,GAAG,KAAK;AAE1B,OAAO,MAAMC,6BAA6B,GAAG,MAC3CC,MAAsC,IACnC;EACH,IAAIF,cAAc,EAAE;IAClB;EACF;EAEAA,cAAc,GAAG,IAAI;EAErB,MAAMG,qCAAqC,CAAC,CAAC;EAE7C,IAAI,CAACN,qBAAqB,IAAI,CAACC,iBAAiB,EAAE;IAChD,CAACD,qBAAqB,EAAEC,iBAAiB,CAAC,GACxC,MAAMN,gCAAgC,CAAC,CAAC;EAC5C;EAEA,IAAI,CAACO,iBAAiB,EAAE;IACtB,MAAMN,gCAAgC,CAAC,CAAC;IACxCM,iBAAiB,GAAG,IAAI;EAC1B;EAEA,MAAMK,QAAQ,GAAG,MAAOC,KAAkB,IAAK;IAAA,IAAAC,qBAAA;IAC7C,IAAI,CAACR,iBAAiB,EAAE;MACtBR,iBAAiB,CAAC,CAAC;MACnB;IACF;IAEA,QAAQe,KAAK,CAACP,iBAAiB,CAAC;MAC9B,KAAKJ,kBAAkB,CAACa,iBAAiB,CAACC,KAAK;QAC7C,CAAAF,qBAAA,GAAAJ,MAAM,CAACO,iBAAiB,cAAAH,qBAAA,eAAxBA,qBAAA,CAAAI,IAAA,CAAAR,MAA2B,CAAC;QAC5B;MACF;QACEZ,iBAAiB,CAAC,CAAC;QACnB;IACJ;EACF,CAAC;EACDM,cAAc,GAAGD,YAAY,CAACgB,WAAW,CAACd,qBAAqB,EAAEO,QAAQ,CAAC;EAC1EJ,cAAc,GAAG,KAAK;AACxB,CAAC;AAED,OAAO,MAAMG,qCAAqC,GAChD,MAAAA,CAAA,KAA2B;EAAA,IAAAS,eAAA;EACzB,IAAI,CAAChB,cAAc,IAAI,CAACC,qBAAqB,EAAE;IAC7C;EACF;EACA,MAAMN,sBAAsB,CAACM,qBAAqB,CAAC;EACnD,CAAAe,eAAA,GAAAhB,cAAc,cAAAgB,eAAA,eAAdA,eAAA,CAAgBC,MAAM,CAAC,CAAC;EACxBjB,cAAc,GAAG,IAAI;AACvB,CAAC","ignoreList":[]}