capacitor-freerasp 2.0.0 → 2.2.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 +73 -0
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/aheaditec/freerasp/FreeraspPlugin.kt +19 -0
- package/android/src/main/java/com/aheaditec/freerasp/Threat.kt +3 -1
- package/android/src/main/java/com/aheaditec/freerasp/ThreatHandler.kt +3 -0
- package/dist/esm/definitions.d.ts +7 -0
- package/dist/esm/definitions.js +2 -0
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +9 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/plugin.cjs.js +11 -7
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +11 -7
- package/dist/plugin.js.map +1 -1
- package/ios/Plugin/FreeraspPlugin.m +3 -0
- package/ios/Plugin/FreeraspPlugin.swift +52 -0
- package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeDirectory +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeResources +78 -78
- 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 +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curl.h +7 -7
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/multi.h +4 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/options.h +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/urlapi.h +1 -1
- 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 +323 -207
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.private.swiftinterface +3 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftinterface +3 -0
- 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 +2 -2
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curl.h +7 -7
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/multi.h +4 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/options.h +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/urlapi.h +1 -1
- 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 +323 -207
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +3 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftinterface +3 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.abi.json +323 -207
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +3 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +3 -0
- 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 +29 -29
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,79 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.2.0] - 2025-07-16
|
|
9
|
+
|
|
10
|
+
- iOS SDK version: 6.12.1
|
|
11
|
+
- Android SDK version: 16.0.1
|
|
12
|
+
|
|
13
|
+
### Android
|
|
14
|
+
|
|
15
|
+
#### Added
|
|
16
|
+
|
|
17
|
+
- Added support for 16 KB memory page sizes
|
|
18
|
+
- Added `multiInstance` callback
|
|
19
|
+
- We are introducing a new capability, detecting whether the application is running in various multi instancing environments
|
|
20
|
+
|
|
21
|
+
#### Changed
|
|
22
|
+
|
|
23
|
+
- The ADB service running as a root is a signal for root detection
|
|
24
|
+
- Improved emulator detection
|
|
25
|
+
- Internal security improvements
|
|
26
|
+
|
|
27
|
+
#### Fixed
|
|
28
|
+
|
|
29
|
+
- Removed malware report duplicates
|
|
30
|
+
|
|
31
|
+
### iOS
|
|
32
|
+
|
|
33
|
+
#### Added
|
|
34
|
+
|
|
35
|
+
- Added palera1n jailbreak detection
|
|
36
|
+
|
|
37
|
+
#### Changed
|
|
38
|
+
|
|
39
|
+
- Improved Dopamine jailbreak detection
|
|
40
|
+
|
|
41
|
+
#### Fixed
|
|
42
|
+
|
|
43
|
+
- Resolved memory-related stability issues.
|
|
44
|
+
|
|
45
|
+
## [2.1.0] - 2025-05-15
|
|
46
|
+
|
|
47
|
+
- iOS SDK version: 6.11.0
|
|
48
|
+
- Android SDK version: 15.1.0
|
|
49
|
+
|
|
50
|
+
### Capacitor
|
|
51
|
+
|
|
52
|
+
#### Added
|
|
53
|
+
|
|
54
|
+
- Added interface for screenshot / screen recording blocking on iOS
|
|
55
|
+
- Added interface for external ID storage
|
|
56
|
+
|
|
57
|
+
### Android
|
|
58
|
+
|
|
59
|
+
#### Added
|
|
60
|
+
|
|
61
|
+
- Added externalId to put an integrator-specified custom identifier into the logs.
|
|
62
|
+
- Added eventId to the logs, which is unique per each log. It allows traceability of the same log across various systems.
|
|
63
|
+
|
|
64
|
+
#### Changed
|
|
65
|
+
|
|
66
|
+
- New root detection checks added
|
|
67
|
+
|
|
68
|
+
### iOS
|
|
69
|
+
|
|
70
|
+
#### Added
|
|
71
|
+
|
|
72
|
+
- Added externalId to put an integrator-specified custom identifier into the logs.
|
|
73
|
+
- Added eventId to the logs, which is unique per each log. It allows traceability of the same log across various systems.
|
|
74
|
+
- Screen capture protection obscuring app content in screenshots and screen recordings preventing unauthorized content capture. Refer to the freeRASP integration documentation.
|
|
75
|
+
|
|
76
|
+
#### Fixed
|
|
77
|
+
|
|
78
|
+
- Resolved an issue with the screen recording detection.
|
|
79
|
+
- Resolved an issue that prevented Xcode tests from running correctly.
|
|
80
|
+
|
|
8
81
|
## [2.0.0] - 2024-03-25
|
|
9
82
|
|
|
10
83
|
- iOS SDK version: 6.9.0
|
package/android/build.gradle
CHANGED
|
@@ -76,5 +76,5 @@ dependencies {
|
|
|
76
76
|
androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
|
|
77
77
|
androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
|
|
78
78
|
|
|
79
|
-
implementation 'com.aheaditec.talsec.security:TalsecSecurity-Community-Capacitor:
|
|
79
|
+
implementation 'com.aheaditec.talsec.security:TalsecSecurity-Community-Capacitor:16.0.1'
|
|
80
80
|
}
|
|
@@ -207,6 +207,25 @@ class FreeraspPlugin : Plugin() {
|
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
+
@PluginMethod
|
|
211
|
+
fun storeExternalId(call: PluginCall) {
|
|
212
|
+
val externalId = call.getString("data")
|
|
213
|
+
if (externalId.isNullOrEmpty()) {
|
|
214
|
+
call.reject(
|
|
215
|
+
"External ID not provided", "MissingArgumentError"
|
|
216
|
+
)
|
|
217
|
+
}
|
|
218
|
+
try {
|
|
219
|
+
Talsec.storeExternalId(context, externalId)
|
|
220
|
+
call.resolve(JSObject().put("result", true))
|
|
221
|
+
} catch (e: Exception) {
|
|
222
|
+
call.reject(
|
|
223
|
+
"Error during storeExternalId operation in freeRASP Native Plugin",
|
|
224
|
+
"NativePluginError"
|
|
225
|
+
)
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
210
229
|
internal fun notifyListeners(threat: Threat) {
|
|
211
230
|
notifyListeners(THREAT_CHANNEL_NAME, JSObject().put(THREAT_CHANNEL_KEY, threat.value), true)
|
|
212
231
|
}
|
|
@@ -27,6 +27,7 @@ internal sealed class Threat(val value: Int) {
|
|
|
27
27
|
object ADBEnabled : Threat((10000..999999999).random())
|
|
28
28
|
object Screenshot : Threat((10000..999999999).random())
|
|
29
29
|
object ScreenRecording : Threat((10000..999999999).random())
|
|
30
|
+
object MultiInstance : Threat((10000..999999999).random())
|
|
30
31
|
|
|
31
32
|
companion object {
|
|
32
33
|
internal fun getThreatValues(): JSONArray {
|
|
@@ -48,7 +49,8 @@ internal sealed class Threat(val value: Int) {
|
|
|
48
49
|
Malware.value,
|
|
49
50
|
ADBEnabled.value,
|
|
50
51
|
Screenshot.value,
|
|
51
|
-
ScreenRecording.value
|
|
52
|
+
ScreenRecording.value,
|
|
53
|
+
MultiInstance.value
|
|
52
54
|
))
|
|
53
55
|
)
|
|
54
56
|
}
|
|
@@ -30,6 +30,11 @@ export interface FreeraspPlugin {
|
|
|
30
30
|
isScreenCaptureBlocked(): Promise<{
|
|
31
31
|
result: boolean;
|
|
32
32
|
}>;
|
|
33
|
+
storeExternalId(options: {
|
|
34
|
+
data: string;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
result: boolean;
|
|
37
|
+
}>;
|
|
33
38
|
}
|
|
34
39
|
export declare type FreeraspConfig = {
|
|
35
40
|
androidConfig?: AndroidConfig;
|
|
@@ -82,6 +87,7 @@ export declare type NativeEventEmitterActions = {
|
|
|
82
87
|
adbEnabled?: () => any;
|
|
83
88
|
screenshot?: () => any;
|
|
84
89
|
screenRecording?: () => any;
|
|
90
|
+
multiInstance?: () => any;
|
|
85
91
|
};
|
|
86
92
|
export declare class Threat {
|
|
87
93
|
value: number;
|
|
@@ -103,6 +109,7 @@ export declare class Threat {
|
|
|
103
109
|
static ADBEnabled: Threat;
|
|
104
110
|
static Screenshot: Threat;
|
|
105
111
|
static ScreenRecording: Threat;
|
|
112
|
+
static MultiInstance: Threat;
|
|
106
113
|
constructor(value: number);
|
|
107
114
|
static getValues(): Threat[];
|
|
108
115
|
}
|
package/dist/esm/definitions.js
CHANGED
|
@@ -23,6 +23,7 @@ export class Threat {
|
|
|
23
23
|
this.ADBEnabled,
|
|
24
24
|
this.Screenshot,
|
|
25
25
|
this.ScreenRecording,
|
|
26
|
+
this.MultiInstance,
|
|
26
27
|
]
|
|
27
28
|
: [
|
|
28
29
|
this.AppIntegrity,
|
|
@@ -59,4 +60,5 @@ Threat.Malware = new Threat(0);
|
|
|
59
60
|
Threat.ADBEnabled = new Threat(0);
|
|
60
61
|
Threat.Screenshot = new Threat(0);
|
|
61
62
|
Threat.ScreenRecording = new Threat(0);
|
|
63
|
+
Threat.MultiInstance = new Threat(0);
|
|
62
64
|
//# sourceMappingURL=definitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAiF5C,MAAM,OAAO,MAAM;IAuBjB,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,SAAS;QACd,OAAO,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS;YAC1C,CAAC,CAAC;gBACE,IAAI,CAAC,YAAY;gBACjB,IAAI,CAAC,gBAAgB;gBACrB,IAAI,CAAC,KAAK;gBACV,IAAI,CAAC,KAAK;gBACV,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,SAAS;gBACd,IAAI,CAAC,0BAA0B;gBAC/B,IAAI,CAAC,SAAS;gBACd,IAAI,CAAC,aAAa;gBAClB,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,OAAO;gBACZ,IAAI,CAAC,iBAAiB;gBACtB,IAAI,CAAC,OAAO;gBACZ,IAAI,CAAC,OAAO;gBACZ,IAAI,CAAC,UAAU;gBACf,IAAI,CAAC,UAAU;gBACf,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,aAAa;aACnB;YACH,CAAC,CAAC;gBACE,IAAI,CAAC,YAAY;gBACjB,IAAI,CAAC,gBAAgB;gBACrB,IAAI,CAAC,KAAK;gBACV,IAAI,CAAC,KAAK;gBACV,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,SAAS;gBACd,IAAI,CAAC,0BAA0B;gBAC/B,IAAI,CAAC,SAAS;gBACd,IAAI,CAAC,aAAa;gBAClB,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,UAAU;gBACf,IAAI,CAAC,eAAe;aACrB,CAAC;IACR,CAAC;;AA7DM,mBAAY,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7B,uBAAgB,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AACjC,YAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,YAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,eAAQ,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AACzB,gBAAS,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,iCAA0B,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3C,gBAAS,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,oBAAa,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9B,eAAQ,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AACzB,sBAAe,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAChC,cAAO,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AACxB,wBAAiB,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAClC,cAAO,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AACxB,cAAO,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AACxB,iBAAU,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3B,iBAAU,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3B,sBAAe,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAChC,oBAAa,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC","sourcesContent":["import { Capacitor } from '@capacitor/core';\n\nexport interface FreeraspPlugin {\n addListener(listener: string, callback: (event: any) => void): any;\n talsecStart(options: {\n config: FreeraspConfig;\n }): Promise<{ started: boolean }>;\n onInvalidCallback(): void;\n getThreatIdentifiers(): Promise<{ ids: number[] }>;\n getThreatChannelData(): Promise<{ ids: [string, string, string] }>;\n addToWhitelist(options: {\n packageName: string;\n }): Promise<{ result: boolean }>;\n getAppIcon(options: { packageName: string }): Promise<{ result: string }>;\n blockScreenCapture(options: {\n enable: boolean;\n }): Promise<{ result: boolean }>;\n isScreenCaptureBlocked(): Promise<{ result: boolean }>;\n storeExternalId(options: { data: string }): Promise<{ result: boolean }>;\n}\n\nexport type FreeraspConfig = {\n androidConfig?: AndroidConfig;\n iosConfig?: IOSConfig;\n watcherMail: string;\n isProd?: boolean;\n};\n\nexport type AndroidConfig = {\n packageName: string;\n certificateHashes: string[];\n supportedAlternativeStores?: string[];\n malwareConfig?: MalwareConfig;\n};\n\nexport type IOSConfig = {\n appBundleId: string;\n appTeamId: string;\n};\n\nexport type MalwareConfig = {\n blacklistedHashes?: string[];\n blacklistedPackageNames?: string[];\n suspiciousPermissions?: string[][];\n whitelistedInstallationSources?: string[];\n};\n\nexport type SuspiciousAppInfo = {\n packageInfo: PackageInfo;\n reason: string;\n};\n\nexport type PackageInfo = {\n packageName: string;\n appName?: string;\n version?: string;\n appIcon?: string;\n installerStore?: string;\n};\n\nexport type NativeEventEmitterActions = {\n privilegedAccess?: () => any;\n debug?: () => any;\n simulator?: () => any;\n appIntegrity?: () => any;\n unofficialStore?: () => any;\n hooks?: () => any;\n deviceBinding?: () => any;\n deviceID?: () => any;\n passcode?: () => any;\n secureHardwareNotAvailable?: () => any;\n obfuscationIssues?: () => any;\n devMode?: () => any;\n systemVPN?: () => any;\n malware?: (suspiciousApps: SuspiciousAppInfo[]) => any;\n adbEnabled?: () => any;\n screenshot?: () => any;\n screenRecording?: () => any;\n multiInstance?: () => any;\n};\n\nexport class Threat {\n value: number;\n\n static AppIntegrity = new Threat(0);\n static PrivilegedAccess = new Threat(0);\n static Debug = new Threat(0);\n static Hooks = new Threat(0);\n static Passcode = new Threat(0);\n static Simulator = new Threat(0);\n static SecureHardwareNotAvailable = new Threat(0);\n static SystemVPN = new Threat(0);\n static DeviceBinding = new Threat(0);\n static DeviceID = new Threat(0);\n static UnofficialStore = new Threat(0);\n static Overlay = new Threat(0);\n static ObfuscationIssues = new Threat(0);\n static DevMode = new Threat(0);\n static Malware = new Threat(0);\n static ADBEnabled = new Threat(0);\n static Screenshot = new Threat(0);\n static ScreenRecording = new Threat(0);\n static MultiInstance = new Threat(0);\n\n constructor(value: number) {\n this.value = value;\n }\n\n static getValues(): Threat[] {\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}\n"]}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { FreeraspPlugin, FreeraspConfig, NativeEventEmitterActions } from './definitions';
|
|
2
2
|
declare const Freerasp: FreeraspPlugin;
|
|
3
|
-
declare const setThreatListeners: <T extends NativeEventEmitterActions>(callbacks: T & Record<Exclude<keyof T, "privilegedAccess" | "debug" | "simulator" | "appIntegrity" | "unofficialStore" | "hooks" | "deviceBinding" | "deviceID" | "passcode" | "secureHardwareNotAvailable" | "obfuscationIssues" | "devMode" | "systemVPN" | "malware" | "adbEnabled" | "screenshot" | "screenRecording">, []>) => Promise<void>;
|
|
3
|
+
declare const setThreatListeners: <T extends NativeEventEmitterActions>(callbacks: T & Record<Exclude<keyof T, "privilegedAccess" | "debug" | "simulator" | "appIntegrity" | "unofficialStore" | "hooks" | "deviceBinding" | "deviceID" | "passcode" | "secureHardwareNotAvailable" | "obfuscationIssues" | "devMode" | "systemVPN" | "malware" | "adbEnabled" | "screenshot" | "screenRecording" | "multiInstance">, []>) => Promise<void>;
|
|
4
4
|
declare const removeThreatListeners: () => void;
|
|
5
|
-
declare const startFreeRASP: <T extends NativeEventEmitterActions>(config: FreeraspConfig, reactions: T & Record<Exclude<keyof T, "privilegedAccess" | "debug" | "simulator" | "appIntegrity" | "unofficialStore" | "hooks" | "deviceBinding" | "deviceID" | "passcode" | "secureHardwareNotAvailable" | "obfuscationIssues" | "devMode" | "systemVPN" | "malware" | "adbEnabled" | "screenshot" | "screenRecording">, []>) => Promise<boolean>;
|
|
5
|
+
declare const startFreeRASP: <T extends NativeEventEmitterActions>(config: FreeraspConfig, reactions: T & Record<Exclude<keyof T, "privilegedAccess" | "debug" | "simulator" | "appIntegrity" | "unofficialStore" | "hooks" | "deviceBinding" | "deviceID" | "passcode" | "secureHardwareNotAvailable" | "obfuscationIssues" | "devMode" | "systemVPN" | "malware" | "adbEnabled" | "screenshot" | "screenRecording" | "multiInstance">, []>) => Promise<boolean>;
|
|
6
6
|
declare const addToWhitelist: (packageName: string) => Promise<boolean>;
|
|
7
7
|
declare const getAppIcon: (packageName: string) => Promise<string>;
|
|
8
8
|
declare const blockScreenCapture: (enable: boolean) => Promise<boolean>;
|
|
9
9
|
declare const isScreenCaptureBlocked: () => Promise<boolean>;
|
|
10
|
+
declare const storeExternalId: (data: string) => Promise<boolean>;
|
|
10
11
|
export * from './definitions';
|
|
11
|
-
export { Freerasp, startFreeRASP, setThreatListeners, removeThreatListeners, addToWhitelist, getAppIcon, blockScreenCapture, isScreenCaptureBlocked, };
|
|
12
|
+
export { Freerasp, startFreeRASP, setThreatListeners, removeThreatListeners, addToWhitelist, getAppIcon, blockScreenCapture, isScreenCaptureBlocked, storeExternalId, };
|
package/dist/esm/index.js
CHANGED
|
@@ -49,7 +49,7 @@ const setThreatListeners = async (callbacks) => {
|
|
|
49
49
|
const [channel, key, malwareKey] = await getThreatChannelData();
|
|
50
50
|
await prepareMapping();
|
|
51
51
|
await Freerasp.addListener(channel, async (event) => {
|
|
52
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
52
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
53
53
|
if (event[key] === undefined) {
|
|
54
54
|
onInvalidCallback();
|
|
55
55
|
}
|
|
@@ -105,6 +105,9 @@ const setThreatListeners = async (callbacks) => {
|
|
|
105
105
|
case Threat.ScreenRecording.value:
|
|
106
106
|
(_s = callbacks.screenRecording) === null || _s === void 0 ? void 0 : _s.call(callbacks);
|
|
107
107
|
break;
|
|
108
|
+
case Threat.MultiInstance.value:
|
|
109
|
+
(_t = callbacks.multiInstance) === null || _t === void 0 ? void 0 : _t.call(callbacks);
|
|
110
|
+
break;
|
|
108
111
|
default:
|
|
109
112
|
onInvalidCallback();
|
|
110
113
|
break;
|
|
@@ -140,19 +143,17 @@ const getAppIcon = async (packageName) => {
|
|
|
140
143
|
return result;
|
|
141
144
|
};
|
|
142
145
|
const blockScreenCapture = async (enable) => {
|
|
143
|
-
if (Capacitor.getPlatform() === 'ios') {
|
|
144
|
-
return Promise.reject('Block Screen Capture is not available on iOS');
|
|
145
|
-
}
|
|
146
146
|
const { result } = await Freerasp.blockScreenCapture({ enable });
|
|
147
147
|
return result;
|
|
148
148
|
};
|
|
149
149
|
const isScreenCaptureBlocked = async () => {
|
|
150
|
-
if (Capacitor.getPlatform() === 'ios') {
|
|
151
|
-
return Promise.reject('Screen Capture Status is not available on iOS');
|
|
152
|
-
}
|
|
153
150
|
const { result } = await Freerasp.isScreenCaptureBlocked();
|
|
154
151
|
return result;
|
|
155
152
|
};
|
|
153
|
+
const storeExternalId = async (data) => {
|
|
154
|
+
const { result } = await Freerasp.storeExternalId({ data });
|
|
155
|
+
return result;
|
|
156
|
+
};
|
|
156
157
|
export * from './definitions';
|
|
157
|
-
export { Freerasp, startFreeRASP, setThreatListeners, removeThreatListeners, addToWhitelist, getAppIcon, blockScreenCapture, isScreenCaptureBlocked, };
|
|
158
|
+
export { Freerasp, startFreeRASP, setThreatListeners, removeThreatListeners, addToWhitelist, getAppIcon, blockScreenCapture, isScreenCaptureBlocked, storeExternalId, };
|
|
158
159
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Capacitor, registerPlugin } from '@capacitor/core';\n\nimport type {\n FreeraspPlugin,\n FreeraspConfig,\n NativeEventEmitterActions,\n SuspiciousAppInfo,\n PackageInfo,\n} from './definitions';\nimport { Threat } from './definitions';\nimport { getThreatCount, itemsHaveType } from './utils';\n\nconst activeListeners: any[] = [];\n\nconst Freerasp = registerPlugin<FreeraspPlugin>('Freerasp', {});\n\nconst onInvalidCallback = (): void => {\n Freerasp.onInvalidCallback();\n};\n\nconst getThreatIdentifiers = async (): Promise<number[]> => {\n const { ids } = await Freerasp.getThreatIdentifiers();\n if (ids.length !== getThreatCount() || !itemsHaveType(ids, 'number')) {\n onInvalidCallback();\n }\n return ids;\n};\n\nconst getThreatChannelData = async (): Promise<[string, string, string]> => {\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};\n\nconst prepareMapping = async (): Promise<void> => {\n const newValues = await getThreatIdentifiers();\n const threats = Threat.getValues();\n\n threats.map((threat, index) => {\n threat.value = newValues[index];\n });\n};\n\n// parses base64-encoded malware data to SuspiciousAppInfo[]\nconst parseMalwareData = async (\n data: string[],\n): Promise<SuspiciousAppInfo[]> => {\n return new Promise((resolve, reject) => {\n try {\n const suspiciousAppData = data.map(entry => toSuspiciousAppInfo(entry));\n resolve(suspiciousAppData);\n } catch (error: any) {\n reject(`Parsing app data failed: ${error}`);\n }\n });\n};\n\nconst toSuspiciousAppInfo = (base64Value: string): SuspiciousAppInfo => {\n const data = JSON.parse(atob(base64Value));\n const packageInfo = data.packageInfo as PackageInfo;\n return { packageInfo, reason: data.reason } as SuspiciousAppInfo;\n};\n\nconst setThreatListeners = async <T extends NativeEventEmitterActions>(\n callbacks: T & Record<Exclude<keyof T, keyof NativeEventEmitterActions>, []>,\n): Promise<void> => {\n const [channel, key, malwareKey] = await getThreatChannelData();\n await prepareMapping();\n\n await Freerasp.addListener(channel, async (event: any) => {\n if (event[key] === undefined) {\n onInvalidCallback();\n }\n switch (event[key]) {\n case Threat.PrivilegedAccess.value:\n callbacks.privilegedAccess?.();\n break;\n case Threat.Debug.value:\n callbacks.debug?.();\n break;\n case Threat.Simulator.value:\n callbacks.simulator?.();\n break;\n case Threat.AppIntegrity.value:\n callbacks.appIntegrity?.();\n break;\n case Threat.UnofficialStore.value:\n callbacks.unofficialStore?.();\n break;\n case Threat.Hooks.value:\n callbacks.hooks?.();\n break;\n case Threat.DeviceBinding.value:\n callbacks.deviceBinding?.();\n break;\n case Threat.Passcode.value:\n callbacks.passcode?.();\n break;\n case Threat.SecureHardwareNotAvailable.value:\n callbacks.secureHardwareNotAvailable?.();\n break;\n case Threat.ObfuscationIssues.value:\n callbacks.obfuscationIssues?.();\n break;\n case Threat.DeviceID.value:\n callbacks.deviceID?.();\n break;\n case Threat.DevMode.value:\n callbacks.devMode?.();\n break;\n case Threat.SystemVPN.value:\n callbacks.systemVPN?.();\n break;\n case Threat.Malware.value:\n callbacks.malware?.(await parseMalwareData(event[malwareKey]));\n break;\n case Threat.ADBEnabled.value:\n callbacks.adbEnabled?.();\n break;\n case Threat.Screenshot.value:\n callbacks.screenshot?.();\n break;\n case Threat.ScreenRecording.value:\n callbacks.screenRecording?.();\n break;\n default:\n onInvalidCallback();\n break;\n }\n });\n};\n\nconst removeThreatListeners = (): void => {\n activeListeners.forEach(listener => listener.remove());\n};\n\nconst startFreeRASP = async <T extends NativeEventEmitterActions>(\n config: FreeraspConfig,\n reactions: T & Record<Exclude<keyof T, keyof NativeEventEmitterActions>, []>,\n): Promise<boolean> => {\n await setThreatListeners(reactions);\n try {\n const { started } = await Freerasp.talsecStart({ config });\n return started;\n } catch (e: any) {\n console.error(`${e.code}: ${e.message}`);\n return Promise.reject(`${e.code}: ${e.message}`);\n }\n};\n\nconst addToWhitelist = async (packageName: string): Promise<boolean> => {\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};\n\nconst getAppIcon = async (packageName: string): Promise<string> => {\n if (Capacitor.getPlatform() === 'ios') {\n return Promise.reject(\n 'App icon retrieval for Malware detection not available on iOS',\n );\n }\n const { result } = await Freerasp.getAppIcon({ packageName });\n return result;\n};\n\nconst blockScreenCapture = async (enable: boolean): Promise<boolean> => {\n if (Capacitor.getPlatform() === 'ios') {\n return Promise.reject('Block Screen Capture is not available on iOS');\n }\n const { result } = await Freerasp.blockScreenCapture({ enable });\n return result;\n};\n\nconst isScreenCaptureBlocked = async (): Promise<boolean> => {\n if (Capacitor.getPlatform() === 'ios') {\n return Promise.reject('Screen Capture Status is not available on iOS');\n }\n const { result } = await Freerasp.isScreenCaptureBlocked();\n return result;\n};\n\nexport * from './definitions';\nexport {\n Freerasp,\n startFreeRASP,\n setThreatListeners,\n removeThreatListeners,\n addToWhitelist,\n getAppIcon,\n blockScreenCapture,\n isScreenCaptureBlocked,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Capacitor, registerPlugin } from '@capacitor/core';\n\nimport type {\n FreeraspPlugin,\n FreeraspConfig,\n NativeEventEmitterActions,\n SuspiciousAppInfo,\n PackageInfo,\n} from './definitions';\nimport { Threat } from './definitions';\nimport { getThreatCount, itemsHaveType } from './utils';\n\nconst activeListeners: any[] = [];\n\nconst Freerasp = registerPlugin<FreeraspPlugin>('Freerasp', {});\n\nconst onInvalidCallback = (): void => {\n Freerasp.onInvalidCallback();\n};\n\nconst getThreatIdentifiers = async (): Promise<number[]> => {\n const { ids } = await Freerasp.getThreatIdentifiers();\n if (ids.length !== getThreatCount() || !itemsHaveType(ids, 'number')) {\n onInvalidCallback();\n }\n return ids;\n};\n\nconst getThreatChannelData = async (): Promise<[string, string, string]> => {\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};\n\nconst prepareMapping = async (): Promise<void> => {\n const newValues = await getThreatIdentifiers();\n const threats = Threat.getValues();\n\n threats.map((threat, index) => {\n threat.value = newValues[index];\n });\n};\n\n// parses base64-encoded malware data to SuspiciousAppInfo[]\nconst parseMalwareData = async (\n data: string[],\n): Promise<SuspiciousAppInfo[]> => {\n return new Promise((resolve, reject) => {\n try {\n const suspiciousAppData = data.map(entry => toSuspiciousAppInfo(entry));\n resolve(suspiciousAppData);\n } catch (error: any) {\n reject(`Parsing app data failed: ${error}`);\n }\n });\n};\n\nconst toSuspiciousAppInfo = (base64Value: string): SuspiciousAppInfo => {\n const data = JSON.parse(atob(base64Value));\n const packageInfo = data.packageInfo as PackageInfo;\n return { packageInfo, reason: data.reason } as SuspiciousAppInfo;\n};\n\nconst setThreatListeners = async <T extends NativeEventEmitterActions>(\n callbacks: T & Record<Exclude<keyof T, keyof NativeEventEmitterActions>, []>,\n): Promise<void> => {\n const [channel, key, malwareKey] = await getThreatChannelData();\n await prepareMapping();\n\n await Freerasp.addListener(channel, async (event: any) => {\n if (event[key] === undefined) {\n onInvalidCallback();\n }\n switch (event[key]) {\n case Threat.PrivilegedAccess.value:\n callbacks.privilegedAccess?.();\n break;\n case Threat.Debug.value:\n callbacks.debug?.();\n break;\n case Threat.Simulator.value:\n callbacks.simulator?.();\n break;\n case Threat.AppIntegrity.value:\n callbacks.appIntegrity?.();\n break;\n case Threat.UnofficialStore.value:\n callbacks.unofficialStore?.();\n break;\n case Threat.Hooks.value:\n callbacks.hooks?.();\n break;\n case Threat.DeviceBinding.value:\n callbacks.deviceBinding?.();\n break;\n case Threat.Passcode.value:\n callbacks.passcode?.();\n break;\n case Threat.SecureHardwareNotAvailable.value:\n callbacks.secureHardwareNotAvailable?.();\n break;\n case Threat.ObfuscationIssues.value:\n callbacks.obfuscationIssues?.();\n break;\n case Threat.DeviceID.value:\n callbacks.deviceID?.();\n break;\n case Threat.DevMode.value:\n callbacks.devMode?.();\n break;\n case Threat.SystemVPN.value:\n callbacks.systemVPN?.();\n break;\n case Threat.Malware.value:\n callbacks.malware?.(await parseMalwareData(event[malwareKey]));\n break;\n case Threat.ADBEnabled.value:\n callbacks.adbEnabled?.();\n break;\n case Threat.Screenshot.value:\n callbacks.screenshot?.();\n break;\n case Threat.ScreenRecording.value:\n callbacks.screenRecording?.();\n break;\n case Threat.MultiInstance.value:\n callbacks.multiInstance?.();\n break;\n default:\n onInvalidCallback();\n break;\n }\n });\n};\n\nconst removeThreatListeners = (): void => {\n activeListeners.forEach(listener => listener.remove());\n};\n\nconst startFreeRASP = async <T extends NativeEventEmitterActions>(\n config: FreeraspConfig,\n reactions: T & Record<Exclude<keyof T, keyof NativeEventEmitterActions>, []>,\n): Promise<boolean> => {\n await setThreatListeners(reactions);\n try {\n const { started } = await Freerasp.talsecStart({ config });\n return started;\n } catch (e: any) {\n console.error(`${e.code}: ${e.message}`);\n return Promise.reject(`${e.code}: ${e.message}`);\n }\n};\n\nconst addToWhitelist = async (packageName: string): Promise<boolean> => {\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};\n\nconst getAppIcon = async (packageName: string): Promise<string> => {\n if (Capacitor.getPlatform() === 'ios') {\n return Promise.reject(\n 'App icon retrieval for Malware detection not available on iOS',\n );\n }\n const { result } = await Freerasp.getAppIcon({ packageName });\n return result;\n};\n\nconst blockScreenCapture = async (enable: boolean): Promise<boolean> => {\n const { result } = await Freerasp.blockScreenCapture({ enable });\n return result;\n};\n\nconst isScreenCaptureBlocked = async (): Promise<boolean> => {\n const { result } = await Freerasp.isScreenCaptureBlocked();\n return result;\n};\n\nconst storeExternalId = async (data: string): Promise<boolean> => {\n const { result } = await Freerasp.storeExternalId({ data });\n return result;\n};\n\nexport * from './definitions';\nexport {\n Freerasp,\n startFreeRASP,\n setThreatListeners,\n removeThreatListeners,\n addToWhitelist,\n getAppIcon,\n blockScreenCapture,\n isScreenCaptureBlocked,\n storeExternalId,\n};\n"]}
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -28,6 +28,7 @@ class Threat {
|
|
|
28
28
|
this.ADBEnabled,
|
|
29
29
|
this.Screenshot,
|
|
30
30
|
this.ScreenRecording,
|
|
31
|
+
this.MultiInstance,
|
|
31
32
|
]
|
|
32
33
|
: [
|
|
33
34
|
this.AppIntegrity,
|
|
@@ -64,6 +65,7 @@ Threat.Malware = new Threat(0);
|
|
|
64
65
|
Threat.ADBEnabled = new Threat(0);
|
|
65
66
|
Threat.Screenshot = new Threat(0);
|
|
66
67
|
Threat.ScreenRecording = new Threat(0);
|
|
68
|
+
Threat.MultiInstance = new Threat(0);
|
|
67
69
|
|
|
68
70
|
const getThreatCount = () => {
|
|
69
71
|
return Threat.getValues().length;
|
|
@@ -120,7 +122,7 @@ const setThreatListeners = async (callbacks) => {
|
|
|
120
122
|
const [channel, key, malwareKey] = await getThreatChannelData();
|
|
121
123
|
await prepareMapping();
|
|
122
124
|
await Freerasp.addListener(channel, async (event) => {
|
|
123
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
125
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
124
126
|
if (event[key] === undefined) {
|
|
125
127
|
onInvalidCallback();
|
|
126
128
|
}
|
|
@@ -176,6 +178,9 @@ const setThreatListeners = async (callbacks) => {
|
|
|
176
178
|
case Threat.ScreenRecording.value:
|
|
177
179
|
(_s = callbacks.screenRecording) === null || _s === void 0 ? void 0 : _s.call(callbacks);
|
|
178
180
|
break;
|
|
181
|
+
case Threat.MultiInstance.value:
|
|
182
|
+
(_t = callbacks.multiInstance) === null || _t === void 0 ? void 0 : _t.call(callbacks);
|
|
183
|
+
break;
|
|
179
184
|
default:
|
|
180
185
|
onInvalidCallback();
|
|
181
186
|
break;
|
|
@@ -211,19 +216,17 @@ const getAppIcon = async (packageName) => {
|
|
|
211
216
|
return result;
|
|
212
217
|
};
|
|
213
218
|
const blockScreenCapture = async (enable) => {
|
|
214
|
-
if (core.Capacitor.getPlatform() === 'ios') {
|
|
215
|
-
return Promise.reject('Block Screen Capture is not available on iOS');
|
|
216
|
-
}
|
|
217
219
|
const { result } = await Freerasp.blockScreenCapture({ enable });
|
|
218
220
|
return result;
|
|
219
221
|
};
|
|
220
222
|
const isScreenCaptureBlocked = async () => {
|
|
221
|
-
if (core.Capacitor.getPlatform() === 'ios') {
|
|
222
|
-
return Promise.reject('Screen Capture Status is not available on iOS');
|
|
223
|
-
}
|
|
224
223
|
const { result } = await Freerasp.isScreenCaptureBlocked();
|
|
225
224
|
return result;
|
|
226
225
|
};
|
|
226
|
+
const storeExternalId = async (data) => {
|
|
227
|
+
const { result } = await Freerasp.storeExternalId({ data });
|
|
228
|
+
return result;
|
|
229
|
+
};
|
|
227
230
|
|
|
228
231
|
exports.Freerasp = Freerasp;
|
|
229
232
|
exports.Threat = Threat;
|
|
@@ -234,4 +237,5 @@ exports.isScreenCaptureBlocked = isScreenCaptureBlocked;
|
|
|
234
237
|
exports.removeThreatListeners = removeThreatListeners;
|
|
235
238
|
exports.setThreatListeners = setThreatListeners;
|
|
236
239
|
exports.startFreeRASP = startFreeRASP;
|
|
240
|
+
exports.storeExternalId = storeExternalId;
|
|
237
241
|
//# 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 ]\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);\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;\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 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 if (Capacitor.getPlatform() === 'ios') {\n return Promise.reject('Block Screen Capture is not available on iOS');\n }\n const { result } = await Freerasp.blockScreenCapture({ enable });\n return result;\n};\nconst isScreenCaptureBlocked = async () => {\n if (Capacitor.getPlatform() === 'ios') {\n return Promise.reject('Screen Capture Status is not available on iOS');\n }\n const { result } = await Freerasp.isScreenCaptureBlocked();\n return result;\n};\nexport * from './definitions';\nexport { Freerasp, startFreeRASP, setThreatListeners, removeThreatListeners, addToWhitelist, getAppIcon, blockScreenCapture, isScreenCaptureBlocked, };\n//# sourceMappingURL=index.js.map"],"names":["Capacitor","registerPlugin"],"mappings":"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"}
|
|
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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"}
|
package/dist/plugin.js
CHANGED
|
@@ -25,6 +25,7 @@ var capacitorFreerasp = (function (exports, core) {
|
|
|
25
25
|
this.ADBEnabled,
|
|
26
26
|
this.Screenshot,
|
|
27
27
|
this.ScreenRecording,
|
|
28
|
+
this.MultiInstance,
|
|
28
29
|
]
|
|
29
30
|
: [
|
|
30
31
|
this.AppIntegrity,
|
|
@@ -61,6 +62,7 @@ var capacitorFreerasp = (function (exports, core) {
|
|
|
61
62
|
Threat.ADBEnabled = new Threat(0);
|
|
62
63
|
Threat.Screenshot = new Threat(0);
|
|
63
64
|
Threat.ScreenRecording = new Threat(0);
|
|
65
|
+
Threat.MultiInstance = new Threat(0);
|
|
64
66
|
|
|
65
67
|
const getThreatCount = () => {
|
|
66
68
|
return Threat.getValues().length;
|
|
@@ -117,7 +119,7 @@ var capacitorFreerasp = (function (exports, core) {
|
|
|
117
119
|
const [channel, key, malwareKey] = await getThreatChannelData();
|
|
118
120
|
await prepareMapping();
|
|
119
121
|
await Freerasp.addListener(channel, async (event) => {
|
|
120
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
122
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
121
123
|
if (event[key] === undefined) {
|
|
122
124
|
onInvalidCallback();
|
|
123
125
|
}
|
|
@@ -173,6 +175,9 @@ var capacitorFreerasp = (function (exports, core) {
|
|
|
173
175
|
case Threat.ScreenRecording.value:
|
|
174
176
|
(_s = callbacks.screenRecording) === null || _s === void 0 ? void 0 : _s.call(callbacks);
|
|
175
177
|
break;
|
|
178
|
+
case Threat.MultiInstance.value:
|
|
179
|
+
(_t = callbacks.multiInstance) === null || _t === void 0 ? void 0 : _t.call(callbacks);
|
|
180
|
+
break;
|
|
176
181
|
default:
|
|
177
182
|
onInvalidCallback();
|
|
178
183
|
break;
|
|
@@ -208,19 +213,17 @@ var capacitorFreerasp = (function (exports, core) {
|
|
|
208
213
|
return result;
|
|
209
214
|
};
|
|
210
215
|
const blockScreenCapture = async (enable) => {
|
|
211
|
-
if (core.Capacitor.getPlatform() === 'ios') {
|
|
212
|
-
return Promise.reject('Block Screen Capture is not available on iOS');
|
|
213
|
-
}
|
|
214
216
|
const { result } = await Freerasp.blockScreenCapture({ enable });
|
|
215
217
|
return result;
|
|
216
218
|
};
|
|
217
219
|
const isScreenCaptureBlocked = async () => {
|
|
218
|
-
if (core.Capacitor.getPlatform() === 'ios') {
|
|
219
|
-
return Promise.reject('Screen Capture Status is not available on iOS');
|
|
220
|
-
}
|
|
221
220
|
const { result } = await Freerasp.isScreenCaptureBlocked();
|
|
222
221
|
return result;
|
|
223
222
|
};
|
|
223
|
+
const storeExternalId = async (data) => {
|
|
224
|
+
const { result } = await Freerasp.storeExternalId({ data });
|
|
225
|
+
return result;
|
|
226
|
+
};
|
|
224
227
|
|
|
225
228
|
exports.Freerasp = Freerasp;
|
|
226
229
|
exports.Threat = Threat;
|
|
@@ -231,6 +234,7 @@ var capacitorFreerasp = (function (exports, core) {
|
|
|
231
234
|
exports.removeThreatListeners = removeThreatListeners;
|
|
232
235
|
exports.setThreatListeners = setThreatListeners;
|
|
233
236
|
exports.startFreeRASP = startFreeRASP;
|
|
237
|
+
exports.storeExternalId = storeExternalId;
|
|
234
238
|
|
|
235
239
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
236
240
|
|