capacitor-freerasp 2.2.2 → 2.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.
- package/CHANGELOG.md +105 -0
- package/CapacitorFreerasp.podspec +5 -1
- package/README.md +8 -8
- package/android/build.gradle +3 -3
- package/android/src/main/java/com/aheaditec/freerasp/FreeraspPlugin.kt +106 -33
- package/android/src/main/java/com/aheaditec/freerasp/PluginThreatHandler.kt +121 -0
- package/android/src/main/java/com/aheaditec/freerasp/ScreenProtector.kt +24 -2
- package/android/src/main/java/com/aheaditec/freerasp/dispatchers/ExecutionStateDispatcher.kt +38 -0
- package/android/src/main/java/com/aheaditec/freerasp/dispatchers/ThreatDispatcher.kt +62 -0
- package/android/src/main/java/com/aheaditec/freerasp/events/BaseRaspEvent.kt +7 -0
- package/android/src/main/java/com/aheaditec/freerasp/events/RaspExecutionStateEvent.kt +22 -0
- package/android/src/main/java/com/aheaditec/freerasp/events/ThreatEvent.kt +71 -0
- package/android/src/main/java/com/aheaditec/freerasp/interfaces/PluginExecutionStateListener.kt +7 -0
- package/android/src/main/java/com/aheaditec/freerasp/interfaces/PluginThreatListener.kt +9 -0
- package/android/src/main/java/com/aheaditec/freerasp/models/CapSuspiciousAppInfo.kt +1 -0
- package/android/src/main/java/com/aheaditec/freerasp/utils/Extensions.kt +1 -0
- package/android/src/main/java/com/aheaditec/freerasp/utils/RandomGenerator.kt +24 -0
- package/android/src/main/java/com/aheaditec/freerasp/utils/Utils.kt +3 -5
- package/dist/esm/api/listeners/raspExecutionState.d.ts +3 -0
- package/dist/esm/api/listeners/raspExecutionState.js +40 -0
- package/dist/esm/api/listeners/raspExecutionState.js.map +1 -0
- package/dist/esm/api/listeners/threat.d.ts +3 -0
- package/dist/esm/api/listeners/threat.js +104 -0
- package/dist/esm/api/listeners/threat.js.map +1 -0
- package/dist/esm/api/methods/capacitor.d.ts +4 -0
- package/dist/esm/api/methods/capacitor.js +11 -0
- package/dist/esm/api/methods/capacitor.js.map +1 -0
- package/dist/esm/api/methods/native.d.ts +7 -0
- package/dist/esm/api/methods/native.js +36 -0
- package/dist/esm/api/methods/native.js.map +1 -0
- package/dist/esm/api/nativeModules.d.ts +2 -0
- package/dist/esm/api/nativeModules.js +3 -0
- package/dist/esm/api/nativeModules.js.map +1 -0
- package/dist/esm/channels/raspExecutionState.d.ts +3 -0
- package/dist/esm/channels/raspExecutionState.js +27 -0
- package/dist/esm/channels/raspExecutionState.js.map +1 -0
- package/dist/esm/channels/threat.d.ts +3 -0
- package/dist/esm/channels/threat.js +34 -0
- package/dist/esm/channels/threat.js.map +1 -0
- package/dist/esm/index.d.ts +7 -12
- package/dist/esm/index.js +7 -158
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/models/raspExecutionState.d.ts +6 -0
- package/dist/esm/models/raspExecutionState.js +10 -0
- package/dist/esm/models/raspExecutionState.js.map +1 -0
- package/dist/esm/models/threat.d.ts +27 -0
- package/dist/esm/{definitions.js → models/threat.js} +9 -3
- package/dist/esm/models/threat.js.map +1 -0
- package/dist/esm/{definitions.d.ts → types/types.d.ts} +41 -44
- package/dist/esm/types/types.js +2 -0
- package/dist/esm/types/types.js.map +1 -0
- package/dist/esm/utils/malware.d.ts +3 -0
- package/dist/esm/utils/malware.js +22 -0
- package/dist/esm/utils/malware.js.map +1 -0
- package/dist/esm/utils/utils.d.ts +3 -0
- package/dist/esm/utils/utils.js +12 -0
- package/dist/esm/utils/utils.js.map +1 -0
- package/dist/plugin.cjs.js +197 -76
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +197 -76
- package/dist/plugin.js.map +1 -1
- package/ios/Plugin/FreeraspPlugin.m +3 -0
- package/ios/Plugin/FreeraspPlugin.swift +36 -77
- package/ios/Plugin/Info.plist +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeDirectory +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeResources +100 -298
- package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeSignature +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +7 -2
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curl.h +380 -281
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curlver.h +5 -6
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/easy.h +4 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/header.h +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/mprintf.h +11 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/multi.h +62 -22
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/options.h +2 -2
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/system.h +76 -164
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/typecheck-gcc.h +947 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/urlapi.h +5 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/websockets.h +17 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Info.plist +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.abi.json +233 -528
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.private.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/TalsecRuntime +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +14 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curl.h +380 -281
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curlver.h +5 -6
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/easy.h +4 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/header.h +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/mprintf.h +11 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/multi.h +62 -22
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/options.h +2 -2
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/system.h +76 -164
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/typecheck-gcc.h +947 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/urlapi.h +5 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/websockets.h +17 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Info.plist +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.abi.json +233 -528
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.abi.json +233 -528
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/TalsecRuntime +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/_CodeSignature/CodeResources +56 -45
- package/ios/Plugin/dispatchers/ExecutionStateDispatcher.swift +35 -0
- package/ios/Plugin/dispatchers/ThreatDispatcher.swift +36 -0
- package/ios/Plugin/models/RaspExecutionStates.swift +15 -0
- package/ios/Plugin/models/SecurityThreat.swift +40 -0
- package/ios/Plugin/utils/EventIdentifiers.swift +17 -0
- package/ios/Plugin/utils/RandomGenerator.swift +23 -0
- package/ios/Plugin/utils/Utils.swift +32 -0
- package/package.json +15 -10
- package/android/src/main/java/com/aheaditec/freerasp/Threat.kt +0 -58
- package/android/src/main/java/com/aheaditec/freerasp/ThreatHandler.kt +0 -76
- package/dist/esm/definitions.js.map +0 -1
- package/dist/esm/utils.d.ts +0 -2
- package/dist/esm/utils.js +0 -8
- package/dist/esm/utils.js.map +0 -1
- package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
package/dist/plugin.cjs.js
CHANGED
|
@@ -4,6 +4,42 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var core = require('@capacitor/core');
|
|
6
6
|
|
|
7
|
+
const Talsec = core.registerPlugin('Freerasp', {});
|
|
8
|
+
|
|
9
|
+
const addToWhitelist = async (packageName) => {
|
|
10
|
+
if (core.Capacitor.getPlatform() === 'ios') {
|
|
11
|
+
return Promise.reject('Malware detection is not available on iOS');
|
|
12
|
+
}
|
|
13
|
+
const { result } = await Talsec.addToWhitelist({ packageName });
|
|
14
|
+
return result;
|
|
15
|
+
};
|
|
16
|
+
const blockScreenCapture = async (enable) => {
|
|
17
|
+
const { result } = await Talsec.blockScreenCapture({ enable });
|
|
18
|
+
return result;
|
|
19
|
+
};
|
|
20
|
+
const isScreenCaptureBlocked = async () => {
|
|
21
|
+
const { result } = await Talsec.isScreenCaptureBlocked();
|
|
22
|
+
return result;
|
|
23
|
+
};
|
|
24
|
+
const storeExternalId = async (data) => {
|
|
25
|
+
const { result } = await Talsec.storeExternalId({ data });
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
const removeExternalId = async () => {
|
|
29
|
+
const { result } = await Talsec.removeExternalId();
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
32
|
+
const getAppIcon = async (packageName) => {
|
|
33
|
+
if (core.Capacitor.getPlatform() === 'ios') {
|
|
34
|
+
return Promise.reject('App icon retrieval for Malware detection is not available on iOS');
|
|
35
|
+
}
|
|
36
|
+
const { result } = await Talsec.getAppIcon({ packageName });
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
const onInvalidCallback = () => {
|
|
40
|
+
Talsec.onInvalidCallback();
|
|
41
|
+
};
|
|
42
|
+
|
|
7
43
|
class Threat {
|
|
8
44
|
constructor(value) {
|
|
9
45
|
this.value = value;
|
|
@@ -21,7 +57,6 @@ class Threat {
|
|
|
21
57
|
this.SystemVPN,
|
|
22
58
|
this.DeviceBinding,
|
|
23
59
|
this.UnofficialStore,
|
|
24
|
-
this.Overlay,
|
|
25
60
|
this.ObfuscationIssues,
|
|
26
61
|
this.DevMode,
|
|
27
62
|
this.Malware,
|
|
@@ -29,6 +64,10 @@ class Threat {
|
|
|
29
64
|
this.Screenshot,
|
|
30
65
|
this.ScreenRecording,
|
|
31
66
|
this.MultiInstance,
|
|
67
|
+
this.TimeSpoofing,
|
|
68
|
+
this.LocationSpoofing,
|
|
69
|
+
this.UnsecureWifi,
|
|
70
|
+
this.Automation,
|
|
32
71
|
]
|
|
33
72
|
: [
|
|
34
73
|
this.AppIntegrity,
|
|
@@ -58,7 +97,6 @@ Threat.SystemVPN = new Threat(0);
|
|
|
58
97
|
Threat.DeviceBinding = new Threat(0);
|
|
59
98
|
Threat.DeviceID = new Threat(0);
|
|
60
99
|
Threat.UnofficialStore = new Threat(0);
|
|
61
|
-
Threat.Overlay = new Threat(0);
|
|
62
100
|
Threat.ObfuscationIssues = new Threat(0);
|
|
63
101
|
Threat.DevMode = new Threat(0);
|
|
64
102
|
Threat.Malware = new Threat(0);
|
|
@@ -66,46 +104,65 @@ Threat.ADBEnabled = new Threat(0);
|
|
|
66
104
|
Threat.Screenshot = new Threat(0);
|
|
67
105
|
Threat.ScreenRecording = new Threat(0);
|
|
68
106
|
Threat.MultiInstance = new Threat(0);
|
|
107
|
+
Threat.TimeSpoofing = new Threat(0);
|
|
108
|
+
Threat.LocationSpoofing = new Threat(0);
|
|
109
|
+
Threat.UnsecureWifi = new Threat(0);
|
|
110
|
+
Threat.Automation = new Threat(0);
|
|
111
|
+
|
|
112
|
+
class RaspExecutionState {
|
|
113
|
+
constructor(value) {
|
|
114
|
+
this.value = value;
|
|
115
|
+
}
|
|
116
|
+
static getValues() {
|
|
117
|
+
return [this.AllChecksFinished];
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
RaspExecutionState.AllChecksFinished = new RaspExecutionState(0);
|
|
69
121
|
|
|
70
122
|
const getThreatCount = () => {
|
|
71
123
|
return Threat.getValues().length;
|
|
72
124
|
};
|
|
73
|
-
const
|
|
74
|
-
return
|
|
125
|
+
const getRaspExecutionStateCount = () => {
|
|
126
|
+
return RaspExecutionState.getValues().length;
|
|
75
127
|
};
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const Freerasp = core.registerPlugin('Freerasp', {});
|
|
79
|
-
const onInvalidCallback = () => {
|
|
80
|
-
Freerasp.onInvalidCallback();
|
|
128
|
+
const itemsHaveType = (data, expectedType) => {
|
|
129
|
+
return data.every((item) => typeof item === expectedType);
|
|
81
130
|
};
|
|
131
|
+
|
|
82
132
|
const getThreatIdentifiers = async () => {
|
|
83
|
-
const { ids } = await
|
|
133
|
+
const { ids } = await Talsec.getThreatIdentifiers();
|
|
84
134
|
if (ids.length !== getThreatCount() || !itemsHaveType(ids, 'number')) {
|
|
85
|
-
|
|
135
|
+
console.error(`Threat count mismatch: Native ${ids.length} vs JS ${getThreatCount()}. Items are numbers: ${itemsHaveType(ids, 'number')}`);
|
|
136
|
+
// onInvalidCallback();
|
|
86
137
|
}
|
|
87
138
|
return ids;
|
|
88
139
|
};
|
|
89
140
|
const getThreatChannelData = async () => {
|
|
90
141
|
const dataLength = core.Capacitor.getPlatform() === 'ios' ? 2 : 3;
|
|
91
|
-
const { ids } = await
|
|
142
|
+
const { ids } = await Talsec.getThreatChannelData();
|
|
92
143
|
if (ids.length !== dataLength || !itemsHaveType(ids, 'string')) {
|
|
93
144
|
onInvalidCallback();
|
|
94
145
|
}
|
|
95
146
|
return ids;
|
|
96
147
|
};
|
|
97
|
-
const
|
|
148
|
+
const prepareThreatMapping = async () => {
|
|
98
149
|
const newValues = await getThreatIdentifiers();
|
|
99
150
|
const threats = Threat.getValues();
|
|
100
|
-
|
|
101
|
-
threat
|
|
102
|
-
|
|
151
|
+
try {
|
|
152
|
+
threats.map((threat, index) => {
|
|
153
|
+
threat.value = newValues[index];
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
console.error('Could not map Talsec threats', err);
|
|
158
|
+
}
|
|
103
159
|
};
|
|
160
|
+
|
|
104
161
|
// parses base64-encoded malware data to SuspiciousAppInfo[]
|
|
105
162
|
const parseMalwareData = async (data) => {
|
|
106
163
|
return new Promise((resolve, reject) => {
|
|
107
164
|
try {
|
|
108
|
-
const suspiciousAppData = data.map(entry => toSuspiciousAppInfo(entry));
|
|
165
|
+
const suspiciousAppData = data.map((entry) => toSuspiciousAppInfo(entry));
|
|
109
166
|
resolve(suspiciousAppData);
|
|
110
167
|
}
|
|
111
168
|
catch (error) {
|
|
@@ -116,126 +173,190 @@ const parseMalwareData = async (data) => {
|
|
|
116
173
|
const toSuspiciousAppInfo = (base64Value) => {
|
|
117
174
|
const data = JSON.parse(atob(base64Value));
|
|
118
175
|
const packageInfo = data.packageInfo;
|
|
119
|
-
return {
|
|
176
|
+
return {
|
|
177
|
+
packageInfo,
|
|
178
|
+
reason: data.reason,
|
|
179
|
+
permissions: data.permissions,
|
|
180
|
+
};
|
|
120
181
|
};
|
|
121
|
-
|
|
182
|
+
|
|
183
|
+
let eventsListener$1 = null;
|
|
184
|
+
let isInitializing$1 = false;
|
|
185
|
+
const registerThreatListener = async (config) => {
|
|
186
|
+
if (isInitializing$1) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
isInitializing$1 = true;
|
|
190
|
+
if (eventsListener$1) {
|
|
191
|
+
await eventsListener$1.remove();
|
|
192
|
+
eventsListener$1 = null;
|
|
193
|
+
}
|
|
122
194
|
const [channel, key, malwareKey] = await getThreatChannelData();
|
|
123
|
-
await
|
|
124
|
-
await
|
|
125
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
126
|
-
if (event[key]
|
|
195
|
+
await prepareThreatMapping();
|
|
196
|
+
eventsListener$1 = await Talsec.addListener(channel, async (event) => {
|
|
197
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
|
|
198
|
+
if (event[key] == undefined) {
|
|
127
199
|
onInvalidCallback();
|
|
128
200
|
}
|
|
129
201
|
switch (event[key]) {
|
|
130
202
|
case Threat.PrivilegedAccess.value:
|
|
131
|
-
(_a =
|
|
203
|
+
(_a = config.privilegedAccess) === null || _a === void 0 ? void 0 : _a.call(config);
|
|
132
204
|
break;
|
|
133
205
|
case Threat.Debug.value:
|
|
134
|
-
(_b =
|
|
206
|
+
(_b = config.debug) === null || _b === void 0 ? void 0 : _b.call(config);
|
|
135
207
|
break;
|
|
136
208
|
case Threat.Simulator.value:
|
|
137
|
-
(_c =
|
|
209
|
+
(_c = config.simulator) === null || _c === void 0 ? void 0 : _c.call(config);
|
|
138
210
|
break;
|
|
139
211
|
case Threat.AppIntegrity.value:
|
|
140
|
-
(_d =
|
|
212
|
+
(_d = config.appIntegrity) === null || _d === void 0 ? void 0 : _d.call(config);
|
|
141
213
|
break;
|
|
142
214
|
case Threat.UnofficialStore.value:
|
|
143
|
-
(_e =
|
|
215
|
+
(_e = config.unofficialStore) === null || _e === void 0 ? void 0 : _e.call(config);
|
|
144
216
|
break;
|
|
145
217
|
case Threat.Hooks.value:
|
|
146
|
-
(_f =
|
|
218
|
+
(_f = config.hooks) === null || _f === void 0 ? void 0 : _f.call(config);
|
|
147
219
|
break;
|
|
148
220
|
case Threat.DeviceBinding.value:
|
|
149
|
-
(_g =
|
|
221
|
+
(_g = config.deviceBinding) === null || _g === void 0 ? void 0 : _g.call(config);
|
|
150
222
|
break;
|
|
151
223
|
case Threat.Passcode.value:
|
|
152
|
-
(_h =
|
|
224
|
+
(_h = config.passcode) === null || _h === void 0 ? void 0 : _h.call(config);
|
|
153
225
|
break;
|
|
154
226
|
case Threat.SecureHardwareNotAvailable.value:
|
|
155
|
-
(_j =
|
|
227
|
+
(_j = config.secureHardwareNotAvailable) === null || _j === void 0 ? void 0 : _j.call(config);
|
|
156
228
|
break;
|
|
157
229
|
case Threat.ObfuscationIssues.value:
|
|
158
|
-
(_k =
|
|
230
|
+
(_k = config.obfuscationIssues) === null || _k === void 0 ? void 0 : _k.call(config);
|
|
159
231
|
break;
|
|
160
232
|
case Threat.DeviceID.value:
|
|
161
|
-
(_l =
|
|
233
|
+
(_l = config.deviceID) === null || _l === void 0 ? void 0 : _l.call(config);
|
|
162
234
|
break;
|
|
163
235
|
case Threat.DevMode.value:
|
|
164
|
-
(_m =
|
|
236
|
+
(_m = config.devMode) === null || _m === void 0 ? void 0 : _m.call(config);
|
|
165
237
|
break;
|
|
166
238
|
case Threat.SystemVPN.value:
|
|
167
|
-
(_o =
|
|
239
|
+
(_o = config.systemVPN) === null || _o === void 0 ? void 0 : _o.call(config);
|
|
168
240
|
break;
|
|
169
241
|
case Threat.Malware.value:
|
|
170
|
-
(_p =
|
|
242
|
+
(_p = config.malware) === null || _p === void 0 ? void 0 : _p.call(config, await parseMalwareData(event[malwareKey]));
|
|
171
243
|
break;
|
|
172
244
|
case Threat.ADBEnabled.value:
|
|
173
|
-
(_q =
|
|
245
|
+
(_q = config.adbEnabled) === null || _q === void 0 ? void 0 : _q.call(config);
|
|
174
246
|
break;
|
|
175
247
|
case Threat.Screenshot.value:
|
|
176
|
-
(_r =
|
|
248
|
+
(_r = config.screenshot) === null || _r === void 0 ? void 0 : _r.call(config);
|
|
177
249
|
break;
|
|
178
250
|
case Threat.ScreenRecording.value:
|
|
179
|
-
(_s =
|
|
251
|
+
(_s = config.screenRecording) === null || _s === void 0 ? void 0 : _s.call(config);
|
|
180
252
|
break;
|
|
181
253
|
case Threat.MultiInstance.value:
|
|
182
|
-
(_t =
|
|
254
|
+
(_t = config.multiInstance) === null || _t === void 0 ? void 0 : _t.call(config);
|
|
255
|
+
break;
|
|
256
|
+
case Threat.TimeSpoofing.value:
|
|
257
|
+
(_u = config.timeSpoofing) === null || _u === void 0 ? void 0 : _u.call(config);
|
|
258
|
+
break;
|
|
259
|
+
case Threat.LocationSpoofing.value:
|
|
260
|
+
(_v = config.locationSpoofing) === null || _v === void 0 ? void 0 : _v.call(config);
|
|
261
|
+
break;
|
|
262
|
+
case Threat.UnsecureWifi.value:
|
|
263
|
+
(_w = config.unsecureWifi) === null || _w === void 0 ? void 0 : _w.call(config);
|
|
264
|
+
break;
|
|
265
|
+
case Threat.Automation.value:
|
|
266
|
+
(_x = config.automation) === null || _x === void 0 ? void 0 : _x.call(config);
|
|
183
267
|
break;
|
|
184
268
|
default:
|
|
185
269
|
onInvalidCallback();
|
|
186
270
|
break;
|
|
187
271
|
}
|
|
188
272
|
});
|
|
273
|
+
isInitializing$1 = false;
|
|
189
274
|
};
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
await setThreatListeners(reactions);
|
|
195
|
-
try {
|
|
196
|
-
const { started } = await Freerasp.talsecStart({ config });
|
|
197
|
-
return started;
|
|
198
|
-
}
|
|
199
|
-
catch (e) {
|
|
200
|
-
console.error(`${e.code}: ${e.message}`);
|
|
201
|
-
return Promise.reject(`${e.code}: ${e.message}`);
|
|
275
|
+
const removeThreatListener = async () => {
|
|
276
|
+
if (eventsListener$1) {
|
|
277
|
+
await eventsListener$1.remove();
|
|
278
|
+
eventsListener$1 = null;
|
|
202
279
|
}
|
|
203
280
|
};
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
281
|
+
|
|
282
|
+
const getRaspExecutionStateIdentifiers = async () => {
|
|
283
|
+
const { ids } = await Talsec.getRaspExecutionStateIdentifiers();
|
|
284
|
+
if (ids.length !== getRaspExecutionStateCount() || !itemsHaveType(ids, 'number')) {
|
|
285
|
+
onInvalidCallback();
|
|
207
286
|
}
|
|
208
|
-
|
|
209
|
-
return result;
|
|
287
|
+
return ids;
|
|
210
288
|
};
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
|
|
289
|
+
const getRaspExecutionStateChannelData = async () => {
|
|
290
|
+
const dataLength = 2;
|
|
291
|
+
const { ids } = await Talsec.getRaspExecutionStateChannelData();
|
|
292
|
+
if (ids.length !== dataLength || !itemsHaveType(ids, 'string')) {
|
|
293
|
+
onInvalidCallback();
|
|
214
294
|
}
|
|
215
|
-
|
|
216
|
-
return result;
|
|
295
|
+
return ids;
|
|
217
296
|
};
|
|
218
|
-
const
|
|
219
|
-
const
|
|
220
|
-
|
|
297
|
+
const prepareRaspExecutionStateMapping = async () => {
|
|
298
|
+
const newValues = await getRaspExecutionStateIdentifiers();
|
|
299
|
+
const threats = RaspExecutionState.getValues();
|
|
300
|
+
threats.map((threat, index) => {
|
|
301
|
+
threat.value = newValues[index];
|
|
302
|
+
});
|
|
221
303
|
};
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
304
|
+
|
|
305
|
+
let eventsListener = null;
|
|
306
|
+
let isInitializing = false;
|
|
307
|
+
const registerRaspExecutionStateListener = async (config) => {
|
|
308
|
+
if (isInitializing) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
isInitializing = true;
|
|
312
|
+
if (eventsListener) {
|
|
313
|
+
await eventsListener.remove();
|
|
314
|
+
eventsListener = null;
|
|
315
|
+
}
|
|
316
|
+
const [channel, key] = await getRaspExecutionStateChannelData();
|
|
317
|
+
await prepareRaspExecutionStateMapping();
|
|
318
|
+
eventsListener = await Talsec.addListener(channel, async (event) => {
|
|
319
|
+
var _a;
|
|
320
|
+
if (event[key] == undefined) {
|
|
321
|
+
onInvalidCallback();
|
|
322
|
+
}
|
|
323
|
+
switch (event[key]) {
|
|
324
|
+
case RaspExecutionState.AllChecksFinished.value:
|
|
325
|
+
(_a = config.allChecksFinished) === null || _a === void 0 ? void 0 : _a.call(config);
|
|
326
|
+
break;
|
|
327
|
+
default:
|
|
328
|
+
onInvalidCallback();
|
|
329
|
+
break;
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
isInitializing = false;
|
|
225
333
|
};
|
|
226
|
-
const
|
|
227
|
-
|
|
228
|
-
|
|
334
|
+
const removeRaspExecutionStateListener = async () => {
|
|
335
|
+
if (eventsListener) {
|
|
336
|
+
await eventsListener.remove();
|
|
337
|
+
eventsListener = null;
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
const startFreeRASP = async (config, actions, raspExecutionStateActions) => {
|
|
342
|
+
await registerThreatListener(actions);
|
|
343
|
+
if (raspExecutionStateActions) {
|
|
344
|
+
await registerRaspExecutionStateListener(raspExecutionStateActions);
|
|
345
|
+
}
|
|
346
|
+
return Talsec.talsecStart({ config });
|
|
229
347
|
};
|
|
230
348
|
|
|
231
|
-
exports.
|
|
232
|
-
exports.Threat = Threat;
|
|
349
|
+
exports.abortApp = onInvalidCallback;
|
|
233
350
|
exports.addToWhitelist = addToWhitelist;
|
|
234
351
|
exports.blockScreenCapture = blockScreenCapture;
|
|
235
352
|
exports.getAppIcon = getAppIcon;
|
|
236
353
|
exports.isScreenCaptureBlocked = isScreenCaptureBlocked;
|
|
237
|
-
exports.
|
|
238
|
-
exports.
|
|
354
|
+
exports.onInvalidCallback = onInvalidCallback;
|
|
355
|
+
exports.registerRaspExecutionStateListener = registerRaspExecutionStateListener;
|
|
356
|
+
exports.registerThreatListener = registerThreatListener;
|
|
357
|
+
exports.removeExternalId = removeExternalId;
|
|
358
|
+
exports.removeRaspExecutionStateListener = removeRaspExecutionStateListener;
|
|
359
|
+
exports.removeThreatListener = removeThreatListener;
|
|
239
360
|
exports.startFreeRASP = startFreeRASP;
|
|
240
361
|
exports.storeExternalId = storeExternalId;
|
|
241
362
|
//# sourceMappingURL=plugin.cjs.js.map
|
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/definitions.js","esm/utils.js","esm/index.js"],"sourcesContent":["import { Capacitor } from '@capacitor/core';\nexport class Threat {\n constructor(value) {\n this.value = value;\n }\n static getValues() {\n return Capacitor.getPlatform() === 'android'\n ? [\n this.AppIntegrity,\n this.PrivilegedAccess,\n this.Debug,\n this.Hooks,\n this.Passcode,\n this.Simulator,\n this.SecureHardwareNotAvailable,\n this.SystemVPN,\n this.DeviceBinding,\n this.UnofficialStore,\n this.Overlay,\n this.ObfuscationIssues,\n this.DevMode,\n this.Malware,\n this.ADBEnabled,\n this.Screenshot,\n this.ScreenRecording,\n this.MultiInstance,\n ]\n : [\n this.AppIntegrity,\n this.PrivilegedAccess,\n this.Debug,\n this.Hooks,\n this.Passcode,\n this.Simulator,\n this.SecureHardwareNotAvailable,\n this.SystemVPN,\n this.DeviceBinding,\n this.DeviceID,\n this.UnofficialStore,\n this.Screenshot,\n this.ScreenRecording,\n ];\n }\n}\nThreat.AppIntegrity = new Threat(0);\nThreat.PrivilegedAccess = new Threat(0);\nThreat.Debug = new Threat(0);\nThreat.Hooks = new Threat(0);\nThreat.Passcode = new Threat(0);\nThreat.Simulator = new Threat(0);\nThreat.SecureHardwareNotAvailable = new Threat(0);\nThreat.SystemVPN = new Threat(0);\nThreat.DeviceBinding = new Threat(0);\nThreat.DeviceID = new Threat(0);\nThreat.UnofficialStore = new Threat(0);\nThreat.Overlay = new Threat(0);\nThreat.ObfuscationIssues = new Threat(0);\nThreat.DevMode = new Threat(0);\nThreat.Malware = new Threat(0);\nThreat.ADBEnabled = new Threat(0);\nThreat.Screenshot = new Threat(0);\nThreat.ScreenRecording = new Threat(0);\nThreat.MultiInstance = new Threat(0);\n//# sourceMappingURL=definitions.js.map","import { Threat } from './definitions';\nexport const getThreatCount = () => {\n return Threat.getValues().length;\n};\nexport const itemsHaveType = (data, desiredType) => {\n return data.every(item => typeof item === desiredType);\n};\n//# sourceMappingURL=utils.js.map","import { Capacitor, registerPlugin } from '@capacitor/core';\nimport { Threat } from './definitions';\nimport { getThreatCount, itemsHaveType } from './utils';\nconst activeListeners = [];\nconst Freerasp = registerPlugin('Freerasp', {});\nconst onInvalidCallback = () => {\n Freerasp.onInvalidCallback();\n};\nconst getThreatIdentifiers = async () => {\n const { ids } = await Freerasp.getThreatIdentifiers();\n if (ids.length !== getThreatCount() || !itemsHaveType(ids, 'number')) {\n onInvalidCallback();\n }\n return ids;\n};\nconst getThreatChannelData = async () => {\n const dataLength = Capacitor.getPlatform() === 'ios' ? 2 : 3;\n const { ids } = await Freerasp.getThreatChannelData();\n if (ids.length !== dataLength || !itemsHaveType(ids, 'string')) {\n onInvalidCallback();\n }\n return ids;\n};\nconst prepareMapping = async () => {\n const newValues = await getThreatIdentifiers();\n const threats = Threat.getValues();\n threats.map((threat, index) => {\n threat.value = newValues[index];\n });\n};\n// parses base64-encoded malware data to SuspiciousAppInfo[]\nconst parseMalwareData = async (data) => {\n return new Promise((resolve, reject) => {\n try {\n const suspiciousAppData = data.map(entry => toSuspiciousAppInfo(entry));\n resolve(suspiciousAppData);\n }\n catch (error) {\n reject(`Parsing app data failed: ${error}`);\n }\n });\n};\nconst toSuspiciousAppInfo = (base64Value) => {\n const data = JSON.parse(atob(base64Value));\n const packageInfo = data.packageInfo;\n return { packageInfo, reason: data.reason };\n};\nconst setThreatListeners = async (callbacks) => {\n const [channel, key, malwareKey] = await getThreatChannelData();\n await prepareMapping();\n await Freerasp.addListener(channel, async (event) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;\n if (event[key] === undefined) {\n onInvalidCallback();\n }\n switch (event[key]) {\n case Threat.PrivilegedAccess.value:\n (_a = callbacks.privilegedAccess) === null || _a === void 0 ? void 0 : _a.call(callbacks);\n break;\n case Threat.Debug.value:\n (_b = callbacks.debug) === null || _b === void 0 ? void 0 : _b.call(callbacks);\n break;\n case Threat.Simulator.value:\n (_c = callbacks.simulator) === null || _c === void 0 ? void 0 : _c.call(callbacks);\n break;\n case Threat.AppIntegrity.value:\n (_d = callbacks.appIntegrity) === null || _d === void 0 ? void 0 : _d.call(callbacks);\n break;\n case Threat.UnofficialStore.value:\n (_e = callbacks.unofficialStore) === null || _e === void 0 ? void 0 : _e.call(callbacks);\n break;\n case Threat.Hooks.value:\n (_f = callbacks.hooks) === null || _f === void 0 ? void 0 : _f.call(callbacks);\n break;\n case Threat.DeviceBinding.value:\n (_g = callbacks.deviceBinding) === null || _g === void 0 ? void 0 : _g.call(callbacks);\n break;\n case Threat.Passcode.value:\n (_h = callbacks.passcode) === null || _h === void 0 ? void 0 : _h.call(callbacks);\n break;\n case Threat.SecureHardwareNotAvailable.value:\n (_j = callbacks.secureHardwareNotAvailable) === null || _j === void 0 ? void 0 : _j.call(callbacks);\n break;\n case Threat.ObfuscationIssues.value:\n (_k = callbacks.obfuscationIssues) === null || _k === void 0 ? void 0 : _k.call(callbacks);\n break;\n case Threat.DeviceID.value:\n (_l = callbacks.deviceID) === null || _l === void 0 ? void 0 : _l.call(callbacks);\n break;\n case Threat.DevMode.value:\n (_m = callbacks.devMode) === null || _m === void 0 ? void 0 : _m.call(callbacks);\n break;\n case Threat.SystemVPN.value:\n (_o = callbacks.systemVPN) === null || _o === void 0 ? void 0 : _o.call(callbacks);\n break;\n case Threat.Malware.value:\n (_p = callbacks.malware) === null || _p === void 0 ? void 0 : _p.call(callbacks, await parseMalwareData(event[malwareKey]));\n break;\n case Threat.ADBEnabled.value:\n (_q = callbacks.adbEnabled) === null || _q === void 0 ? void 0 : _q.call(callbacks);\n break;\n case Threat.Screenshot.value:\n (_r = callbacks.screenshot) === null || _r === void 0 ? void 0 : _r.call(callbacks);\n break;\n case Threat.ScreenRecording.value:\n (_s = callbacks.screenRecording) === null || _s === void 0 ? void 0 : _s.call(callbacks);\n break;\n case Threat.MultiInstance.value:\n (_t = callbacks.multiInstance) === null || _t === void 0 ? void 0 : _t.call(callbacks);\n break;\n default:\n onInvalidCallback();\n break;\n }\n });\n};\nconst removeThreatListeners = () => {\n activeListeners.forEach(listener => listener.remove());\n};\nconst startFreeRASP = async (config, reactions) => {\n await setThreatListeners(reactions);\n try {\n const { started } = await Freerasp.talsecStart({ config });\n return started;\n }\n catch (e) {\n console.error(`${e.code}: ${e.message}`);\n return Promise.reject(`${e.code}: ${e.message}`);\n }\n};\nconst addToWhitelist = async (packageName) => {\n if (Capacitor.getPlatform() === 'ios') {\n return Promise.reject('Malware detection not available on iOS');\n }\n const { result } = await Freerasp.addToWhitelist({ packageName });\n return result;\n};\nconst getAppIcon = async (packageName) => {\n if (Capacitor.getPlatform() === 'ios') {\n return Promise.reject('App icon retrieval for Malware detection not available on iOS');\n }\n const { result } = await Freerasp.getAppIcon({ packageName });\n return result;\n};\nconst blockScreenCapture = async (enable) => {\n const { result } = await Freerasp.blockScreenCapture({ enable });\n return result;\n};\nconst isScreenCaptureBlocked = async () => {\n const { result } = await Freerasp.isScreenCaptureBlocked();\n return result;\n};\nconst storeExternalId = async (data) => {\n const { result } = await Freerasp.storeExternalId({ data });\n return result;\n};\nexport * from './definitions';\nexport { Freerasp, startFreeRASP, setThreatListeners, removeThreatListeners, addToWhitelist, getAppIcon, blockScreenCapture, isScreenCaptureBlocked, storeExternalId, };\n//# sourceMappingURL=index.js.map"],"names":["Capacitor","registerPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/api/nativeModules.js","esm/api/methods/native.js","esm/models/threat.js","esm/models/raspExecutionState.js","esm/utils/utils.js","esm/channels/threat.js","esm/utils/malware.js","esm/api/listeners/threat.js","esm/channels/raspExecutionState.js","esm/api/listeners/raspExecutionState.js","esm/api/methods/capacitor.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nexport const Talsec = registerPlugin('Freerasp', {});\n//# sourceMappingURL=nativeModules.js.map","import { Capacitor } from '@capacitor/core';\nimport { Talsec } from '../nativeModules';\nexport const addToWhitelist = async (packageName) => {\n if (Capacitor.getPlatform() === 'ios') {\n return Promise.reject('Malware detection is not available on iOS');\n }\n const { result } = await Talsec.addToWhitelist({ packageName });\n return result;\n};\nexport const blockScreenCapture = async (enable) => {\n const { result } = await Talsec.blockScreenCapture({ enable });\n return result;\n};\nexport const isScreenCaptureBlocked = async () => {\n const { result } = await Talsec.isScreenCaptureBlocked();\n return result;\n};\nexport const storeExternalId = async (data) => {\n const { result } = await Talsec.storeExternalId({ data });\n return result;\n};\nexport const removeExternalId = async () => {\n const { result } = await Talsec.removeExternalId();\n return result;\n};\nexport const getAppIcon = async (packageName) => {\n if (Capacitor.getPlatform() === 'ios') {\n return Promise.reject('App icon retrieval for Malware detection is not available on iOS');\n }\n const { result } = await Talsec.getAppIcon({ packageName });\n return result;\n};\nexport const onInvalidCallback = () => {\n Talsec.onInvalidCallback();\n};\n//# sourceMappingURL=native.js.map","import { Capacitor } from '@capacitor/core';\nexport class Threat {\n constructor(value) {\n this.value = value;\n }\n static getValues() {\n return Capacitor.getPlatform() === 'android'\n ? [\n this.AppIntegrity,\n this.PrivilegedAccess,\n this.Debug,\n this.Hooks,\n this.Passcode,\n this.Simulator,\n this.SecureHardwareNotAvailable,\n this.SystemVPN,\n this.DeviceBinding,\n this.UnofficialStore,\n this.ObfuscationIssues,\n this.DevMode,\n this.Malware,\n this.ADBEnabled,\n this.Screenshot,\n this.ScreenRecording,\n this.MultiInstance,\n this.TimeSpoofing,\n this.LocationSpoofing,\n this.UnsecureWifi,\n this.Automation,\n ]\n : [\n this.AppIntegrity,\n this.PrivilegedAccess,\n this.Debug,\n this.Hooks,\n this.Passcode,\n this.Simulator,\n this.SecureHardwareNotAvailable,\n this.SystemVPN,\n this.DeviceBinding,\n this.DeviceID,\n this.UnofficialStore,\n this.Screenshot,\n this.ScreenRecording,\n ];\n }\n}\nThreat.AppIntegrity = new Threat(0);\nThreat.PrivilegedAccess = new Threat(0);\nThreat.Debug = new Threat(0);\nThreat.Hooks = new Threat(0);\nThreat.Passcode = new Threat(0);\nThreat.Simulator = new Threat(0);\nThreat.SecureHardwareNotAvailable = new Threat(0);\nThreat.SystemVPN = new Threat(0);\nThreat.DeviceBinding = new Threat(0);\nThreat.DeviceID = new Threat(0);\nThreat.UnofficialStore = new Threat(0);\nThreat.ObfuscationIssues = new Threat(0);\nThreat.DevMode = new Threat(0);\nThreat.Malware = new Threat(0);\nThreat.ADBEnabled = new Threat(0);\nThreat.Screenshot = new Threat(0);\nThreat.ScreenRecording = new Threat(0);\nThreat.MultiInstance = new Threat(0);\nThreat.TimeSpoofing = new Threat(0);\nThreat.LocationSpoofing = new Threat(0);\nThreat.UnsecureWifi = new Threat(0);\nThreat.Automation = new Threat(0);\n//# sourceMappingURL=threat.js.map","export class RaspExecutionState {\n constructor(value) {\n this.value = value;\n }\n static getValues() {\n return [this.AllChecksFinished];\n }\n}\nRaspExecutionState.AllChecksFinished = new RaspExecutionState(0);\n//# sourceMappingURL=raspExecutionState.js.map","import { RaspExecutionState } from '../models/raspExecutionState';\nimport { Threat } from '../models/threat';\nexport const getThreatCount = () => {\n return Threat.getValues().length;\n};\nexport const getRaspExecutionStateCount = () => {\n return RaspExecutionState.getValues().length;\n};\nexport const itemsHaveType = (data, expectedType) => {\n return data.every((item) => typeof item === expectedType);\n};\n//# sourceMappingURL=utils.js.map","import { Capacitor } from '@capacitor/core';\nimport { onInvalidCallback } from '../api/methods/native';\nimport { Talsec } from '../api/nativeModules';\nimport { Threat } from '../models/threat';\nimport { getThreatCount, itemsHaveType } from '../utils/utils';\nexport const getThreatIdentifiers = async () => {\n const { ids } = await Talsec.getThreatIdentifiers();\n if (ids.length !== getThreatCount() || !itemsHaveType(ids, 'number')) {\n console.error(`Threat count mismatch: Native ${ids.length} vs JS ${getThreatCount()}. Items are numbers: ${itemsHaveType(ids, 'number')}`);\n // onInvalidCallback();\n }\n return ids;\n};\nexport const getThreatChannelData = async () => {\n const dataLength = Capacitor.getPlatform() === 'ios' ? 2 : 3;\n const { ids } = await Talsec.getThreatChannelData();\n if (ids.length !== dataLength || !itemsHaveType(ids, 'string')) {\n onInvalidCallback();\n }\n return ids;\n};\nexport const prepareThreatMapping = async () => {\n const newValues = await getThreatIdentifiers();\n const threats = Threat.getValues();\n try {\n threats.map((threat, index) => {\n threat.value = newValues[index];\n });\n }\n catch (err) {\n console.error('Could not map Talsec threats', err);\n }\n};\n//# sourceMappingURL=threat.js.map","// parses base64-encoded malware data to SuspiciousAppInfo[]\nexport const parseMalwareData = async (data) => {\n return new Promise((resolve, reject) => {\n try {\n const suspiciousAppData = data.map((entry) => toSuspiciousAppInfo(entry));\n resolve(suspiciousAppData);\n }\n catch (error) {\n reject(`Parsing app data failed: ${error}`);\n }\n });\n};\nexport const toSuspiciousAppInfo = (base64Value) => {\n const data = JSON.parse(atob(base64Value));\n const packageInfo = data.packageInfo;\n return {\n packageInfo,\n reason: data.reason,\n permissions: data.permissions,\n };\n};\n//# sourceMappingURL=malware.js.map","import { getThreatChannelData, prepareThreatMapping } from '../../channels/threat';\nimport { Threat } from '../../models/threat';\nimport { parseMalwareData } from '../../utils/malware';\nimport { onInvalidCallback } from '../methods/native';\nimport { Talsec } from '../nativeModules';\nlet eventsListener = null;\nlet isInitializing = false;\nexport const registerThreatListener = async (config) => {\n if (isInitializing) {\n return;\n }\n isInitializing = true;\n if (eventsListener) {\n await eventsListener.remove();\n eventsListener = null;\n }\n const [channel, key, malwareKey] = await getThreatChannelData();\n await prepareThreatMapping();\n eventsListener = await Talsec.addListener(channel, async (event) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n if (event[key] == undefined) {\n onInvalidCallback();\n }\n switch (event[key]) {\n case Threat.PrivilegedAccess.value:\n (_a = config.privilegedAccess) === null || _a === void 0 ? void 0 : _a.call(config);\n break;\n case Threat.Debug.value:\n (_b = config.debug) === null || _b === void 0 ? void 0 : _b.call(config);\n break;\n case Threat.Simulator.value:\n (_c = config.simulator) === null || _c === void 0 ? void 0 : _c.call(config);\n break;\n case Threat.AppIntegrity.value:\n (_d = config.appIntegrity) === null || _d === void 0 ? void 0 : _d.call(config);\n break;\n case Threat.UnofficialStore.value:\n (_e = config.unofficialStore) === null || _e === void 0 ? void 0 : _e.call(config);\n break;\n case Threat.Hooks.value:\n (_f = config.hooks) === null || _f === void 0 ? void 0 : _f.call(config);\n break;\n case Threat.DeviceBinding.value:\n (_g = config.deviceBinding) === null || _g === void 0 ? void 0 : _g.call(config);\n break;\n case Threat.Passcode.value:\n (_h = config.passcode) === null || _h === void 0 ? void 0 : _h.call(config);\n break;\n case Threat.SecureHardwareNotAvailable.value:\n (_j = config.secureHardwareNotAvailable) === null || _j === void 0 ? void 0 : _j.call(config);\n break;\n case Threat.ObfuscationIssues.value:\n (_k = config.obfuscationIssues) === null || _k === void 0 ? void 0 : _k.call(config);\n break;\n case Threat.DeviceID.value:\n (_l = config.deviceID) === null || _l === void 0 ? void 0 : _l.call(config);\n break;\n case Threat.DevMode.value:\n (_m = config.devMode) === null || _m === void 0 ? void 0 : _m.call(config);\n break;\n case Threat.SystemVPN.value:\n (_o = config.systemVPN) === null || _o === void 0 ? void 0 : _o.call(config);\n break;\n case Threat.Malware.value:\n (_p = config.malware) === null || _p === void 0 ? void 0 : _p.call(config, await parseMalwareData(event[malwareKey]));\n break;\n case Threat.ADBEnabled.value:\n (_q = config.adbEnabled) === null || _q === void 0 ? void 0 : _q.call(config);\n break;\n case Threat.Screenshot.value:\n (_r = config.screenshot) === null || _r === void 0 ? void 0 : _r.call(config);\n break;\n case Threat.ScreenRecording.value:\n (_s = config.screenRecording) === null || _s === void 0 ? void 0 : _s.call(config);\n break;\n case Threat.MultiInstance.value:\n (_t = config.multiInstance) === null || _t === void 0 ? void 0 : _t.call(config);\n break;\n case Threat.TimeSpoofing.value:\n (_u = config.timeSpoofing) === null || _u === void 0 ? void 0 : _u.call(config);\n break;\n case Threat.LocationSpoofing.value:\n (_v = config.locationSpoofing) === null || _v === void 0 ? void 0 : _v.call(config);\n break;\n case Threat.UnsecureWifi.value:\n (_w = config.unsecureWifi) === null || _w === void 0 ? void 0 : _w.call(config);\n break;\n case Threat.Automation.value:\n (_x = config.automation) === null || _x === void 0 ? void 0 : _x.call(config);\n break;\n default:\n onInvalidCallback();\n break;\n }\n });\n isInitializing = false;\n};\nexport const removeThreatListener = async () => {\n if (eventsListener) {\n await eventsListener.remove();\n eventsListener = null;\n }\n};\n//# sourceMappingURL=threat.js.map","import { onInvalidCallback } from '../api/methods/native';\nimport { Talsec } from '../api/nativeModules';\nimport { RaspExecutionState } from '../models/raspExecutionState';\nimport { getRaspExecutionStateCount, itemsHaveType } from '../utils/utils';\nexport const getRaspExecutionStateIdentifiers = async () => {\n const { ids } = await Talsec.getRaspExecutionStateIdentifiers();\n if (ids.length !== getRaspExecutionStateCount() || !itemsHaveType(ids, 'number')) {\n onInvalidCallback();\n }\n return ids;\n};\nexport const getRaspExecutionStateChannelData = async () => {\n const dataLength = 2;\n const { ids } = await Talsec.getRaspExecutionStateChannelData();\n if (ids.length !== dataLength || !itemsHaveType(ids, 'string')) {\n onInvalidCallback();\n }\n return ids;\n};\nexport const prepareRaspExecutionStateMapping = async () => {\n const newValues = await getRaspExecutionStateIdentifiers();\n const threats = RaspExecutionState.getValues();\n threats.map((threat, index) => {\n threat.value = newValues[index];\n });\n};\n//# sourceMappingURL=raspExecutionState.js.map","import { getRaspExecutionStateChannelData, prepareRaspExecutionStateMapping } from '../../channels/raspExecutionState';\nimport { RaspExecutionState } from '../../models/raspExecutionState';\nimport { onInvalidCallback } from '../methods/native';\nimport { Talsec } from '../nativeModules';\nlet eventsListener = null;\nlet isInitializing = false;\nexport const registerRaspExecutionStateListener = async (config) => {\n if (isInitializing) {\n return;\n }\n isInitializing = true;\n if (eventsListener) {\n await eventsListener.remove();\n eventsListener = null;\n }\n const [channel, key] = await getRaspExecutionStateChannelData();\n await prepareRaspExecutionStateMapping();\n eventsListener = await Talsec.addListener(channel, async (event) => {\n var _a;\n if (event[key] == undefined) {\n onInvalidCallback();\n }\n switch (event[key]) {\n case RaspExecutionState.AllChecksFinished.value:\n (_a = config.allChecksFinished) === null || _a === void 0 ? void 0 : _a.call(config);\n break;\n default:\n onInvalidCallback();\n break;\n }\n });\n isInitializing = false;\n};\nexport const removeRaspExecutionStateListener = async () => {\n if (eventsListener) {\n await eventsListener.remove();\n eventsListener = null;\n }\n};\n//# sourceMappingURL=raspExecutionState.js.map","import { registerRaspExecutionStateListener } from '../listeners/raspExecutionState';\nimport { registerThreatListener } from '../listeners/threat';\nimport { Talsec } from '../nativeModules';\nexport const startFreeRASP = async (config, actions, raspExecutionStateActions) => {\n await registerThreatListener(actions);\n if (raspExecutionStateActions) {\n await registerRaspExecutionStateListener(raspExecutionStateActions);\n }\n return Talsec.talsecStart({ config });\n};\n//# sourceMappingURL=capacitor.js.map"],"names":["registerPlugin","Capacitor","eventsListener","isInitializing"],"mappings":"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"}
|