freerasp-react-native 3.7.1-1 → 3.7.2
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 +4 -0
- package/README.md +16 -3
- package/lib/typescript/plugin/src/index.d.ts +1 -7
- package/lib/typescript/plugin/src/index.d.ts.map +1 -1
- package/lib/typescript/plugin/src/pluginConfig.d.ts +1 -0
- package/lib/typescript/plugin/src/pluginConfig.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -2
- package/plugin/build/index.d.ts +1 -7
- package/plugin/build/index.js +39 -14
- package/plugin/build/pluginConfig.d.ts +1 -0
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|

|
|
2
2
|
|
|
3
|
-
    [    [](https://42matters.com/sdks/android/talsec)
|
|
4
|
+
|
|
5
|
+
[<img src="https://assets.42matters.com/badges/2024/04/rising-star.svg?m=04" width="100"/>](https://42matters.com/sdks/android/talsec)
|
|
4
6
|
|
|
5
7
|
# freeRASP for React Native
|
|
6
8
|
|
|
@@ -322,14 +324,16 @@ If you encounter any other issues, you can see the list of solved issues [here](
|
|
|
322
324
|
freeRASP for React Native is bare React Native plugin. When installing freeRASP into a project that uses Expo SDK, there may be extra configuration needed. We provide plugin config that sets the dependencies automatically. It is recommended to use the plugin config. However, manual setup is also possible.
|
|
323
325
|
|
|
324
326
|
## Plugin config setup
|
|
325
|
-
Add the plugin config into your `app.json` and specify the `minSdkVersion` (use at least 23)
|
|
327
|
+
Add the plugin config into your `app.json` and specify the `minSdkVersion` (use at least 23).
|
|
328
|
+
Additionally, if you are using Expo 50, increase version of R8 above 8.2 with the `R8Version` property [(to support sealed classes on Android)](https://github.com/talsec/Free-RASP-ReactNative/issues/60).
|
|
326
329
|
```json
|
|
327
330
|
"plugins": [
|
|
328
331
|
[
|
|
329
332
|
"freerasp-react-native/app.plugin.js",
|
|
330
333
|
{
|
|
331
334
|
"android": {
|
|
332
|
-
"minSdkVersion": "23"
|
|
335
|
+
"minSdkVersion": "23",
|
|
336
|
+
"R8Version": "8.3.37" // optional for Expo 50
|
|
333
337
|
}
|
|
334
338
|
}
|
|
335
339
|
]
|
|
@@ -403,6 +407,15 @@ Go to `<your_project>/node_modules/freerasp-react-native/ios/TalsecRuntime.xcfra
|
|
|
403
407
|
#define TALSECRUNTIME_SWIFT_H
|
|
404
408
|
```
|
|
405
409
|
|
|
410
|
+
### Execution failed for task ':freerasp-react-native:minifyReleaseWithR8'.
|
|
411
|
+
`Sealed classes are not supported as program classes when generating class files.`
|
|
412
|
+
|
|
413
|
+
**Reason:**
|
|
414
|
+
Kotlin sealed classes are not supported in AGP 8.1 used by some versions of RN (currently 0.73.x)
|
|
415
|
+
|
|
416
|
+
**Solution:**
|
|
417
|
+
Follow [this comment on Google Issue Tracker](https://issuetracker.google.com/issues/227160052#comment37), which contains also additional information about the issue.
|
|
418
|
+
|
|
406
419
|
# Security Report
|
|
407
420
|
|
|
408
421
|
The Security Report is a weekly summary describing the application's security state and characteristics of the devices it runs on in a practical and easy-to-understand way.
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { ConfigPlugin } from '@expo/config-plugins';
|
|
2
|
-
import { PluginConfigType } from './pluginConfig';
|
|
3
|
-
export declare const setBuildscriptDependency: (buildGradle: string) => string;
|
|
4
|
-
/**
|
|
5
|
-
* Update `<project>/build.gradle` by adding nexus dependency to buildscript
|
|
6
|
-
*/
|
|
7
|
-
export declare const withBuildscriptDependency: ConfigPlugin;
|
|
8
|
-
export declare const withAndroidMinSdkVersion: ConfigPlugin<PluginConfigType>;
|
|
2
|
+
import { type PluginConfigType } from './pluginConfig';
|
|
9
3
|
declare const _default: ConfigPlugin<PluginConfigType>;
|
|
10
4
|
export default _default;
|
|
11
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../plugin/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAIb,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../plugin/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAIb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;;AAmHvD,wBAA2E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluginConfig.d.ts","sourceRoot":"","sources":["../../../../plugin/src/pluginConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;SAEK;IACL,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"pluginConfig.d.ts","sourceRoot":"","sources":["../../../../plugin/src/pluginConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;SAEK;IACL,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,YAAY,EACb,MAAM,eAAe,CAAC;AAGvB,QAAA,MAAQ,mBAAmB,KAAkB,CAAC;AAqC9C,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,YAAY,EACb,MAAM,eAAe,CAAC;AAGvB,QAAA,MAAQ,mBAAmB,KAAkB,CAAC;AAqC9C,eAAO,MAAM,kBAAkB,gDACrB,CAAC,GAAG,OAAO,QAAQ,MAAM,CAAC,EAAE,MAAM,yBAAyB,CAAC,EAAE,EAAE,CAAC,kBAgD1E,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,IAExC,CAAC;AAEF,eAAO,MAAM,WAAW,YAAmB,YAAY,KAAG,QAAQ,MAAM,CAEvE,CAAC;AAEF,eAAO,MAAM,WAAW,gDACd,YAAY,WACX,CAAC,GAAG,OAAO,QAAQ,MAAM,CAAC,EAAE,MAAM,yBAAyB,CAAC,EAAE,EAAE,CAAC,SAiB3E,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "freerasp-react-native",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.2",
|
|
4
4
|
"description": "React Native plugin for improving app security and threat monitoring on Android and iOS mobile devices.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"typecheck": "tsc --noEmit",
|
|
12
12
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
13
|
-
"prepack": "bob build",
|
|
14
13
|
"release": "release-it",
|
|
15
14
|
"example": "yarn --cwd example",
|
|
16
15
|
"bootstrap": "yarn example && yarn install && yarn example pods",
|
package/plugin/build/index.d.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import { ConfigPlugin } from '@expo/config-plugins';
|
|
2
|
-
import { PluginConfigType } from './pluginConfig';
|
|
3
|
-
export declare const setBuildscriptDependency: (buildGradle: string) => string;
|
|
4
|
-
/**
|
|
5
|
-
* Update `<project>/build.gradle` by adding nexus dependency to buildscript
|
|
6
|
-
*/
|
|
7
|
-
export declare const withBuildscriptDependency: ConfigPlugin;
|
|
8
|
-
export declare const withAndroidMinSdkVersion: ConfigPlugin<PluginConfigType>;
|
|
2
|
+
import { type PluginConfigType } from './pluginConfig';
|
|
9
3
|
declare const _default: ConfigPlugin<PluginConfigType>;
|
|
10
4
|
export default _default;
|
package/plugin/build/index.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.withAndroidMinSdkVersion = exports.withBuildscriptDependency = exports.setBuildscriptDependency = void 0;
|
|
4
3
|
const config_plugins_1 = require("@expo/config-plugins");
|
|
5
4
|
const { createBuildGradlePropsConfigPlugin } = config_plugins_1.AndroidConfig.BuildProperties;
|
|
6
|
-
const
|
|
5
|
+
const urlFreerasp = 'https://europe-west3-maven.pkg.dev/talsec-artifact-repository/freerasp';
|
|
7
6
|
const urlJitpack = 'https://www.jitpack.io';
|
|
8
7
|
const setBuildscriptDependency = (buildGradle) => {
|
|
9
8
|
// This enables users in bare workflow to comment out the line to prevent freerasp from adding it back.
|
|
10
|
-
const
|
|
9
|
+
const mavenFreerasp = buildGradle.includes(urlFreerasp)
|
|
11
10
|
? ''
|
|
12
|
-
: `maven { url "${
|
|
13
|
-
const mavenJitpack = buildGradle.includes(
|
|
11
|
+
: `maven { url "${urlFreerasp}" }`;
|
|
12
|
+
const mavenJitpack = buildGradle.includes(urlJitpack)
|
|
14
13
|
? ''
|
|
15
14
|
: `maven { url "${urlJitpack}" }`;
|
|
16
15
|
// It's ok to have multiple allprojects.repositories, so we create a new one since it's cheaper than tokenizing
|
|
@@ -18,21 +17,30 @@ const setBuildscriptDependency = (buildGradle) => {
|
|
|
18
17
|
const combinedGradleMaven = `
|
|
19
18
|
allprojects {
|
|
20
19
|
repositories {
|
|
21
|
-
${
|
|
20
|
+
${mavenFreerasp}
|
|
22
21
|
${mavenJitpack}
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
24
|
`;
|
|
26
25
|
return buildGradle + `\n${combinedGradleMaven}\n`;
|
|
27
26
|
};
|
|
28
|
-
|
|
27
|
+
const setAndroidR8 = (buildGradle, version) => {
|
|
28
|
+
const combinedGradleMaven = `
|
|
29
|
+
buildscript {
|
|
30
|
+
dependencies {
|
|
31
|
+
classpath("com.android.tools:r8:${version}")
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
`;
|
|
35
|
+
return buildGradle + `\n${combinedGradleMaven}\n`;
|
|
36
|
+
};
|
|
29
37
|
/**
|
|
30
38
|
* Update `<project>/build.gradle` by adding nexus dependency to buildscript
|
|
31
39
|
*/
|
|
32
|
-
const withBuildscriptDependency = (
|
|
33
|
-
return (0, config_plugins_1.withProjectBuildGradle)(
|
|
40
|
+
const withBuildscriptDependency = (expoConfig) => {
|
|
41
|
+
return (0, config_plugins_1.withProjectBuildGradle)(expoConfig, (config) => {
|
|
34
42
|
if (config.modResults.language === 'groovy') {
|
|
35
|
-
config.modResults.contents =
|
|
43
|
+
config.modResults.contents = setBuildscriptDependency(config.modResults.contents);
|
|
36
44
|
}
|
|
37
45
|
else {
|
|
38
46
|
config_plugins_1.WarningAggregator.addWarningAndroid('freerasp-react-native', `Cannot automatically configure project build.gradle, because it's not groovy`);
|
|
@@ -40,16 +48,33 @@ const withBuildscriptDependency = (config) => {
|
|
|
40
48
|
return config;
|
|
41
49
|
});
|
|
42
50
|
};
|
|
43
|
-
|
|
44
|
-
exports.withAndroidMinSdkVersion = createBuildGradlePropsConfigPlugin([
|
|
51
|
+
const withAndroidMinSdkVersion = createBuildGradlePropsConfigPlugin([
|
|
45
52
|
{
|
|
46
53
|
propName: 'android.minSdkVersion',
|
|
47
54
|
propValueGetter: (config) => config.android?.minSdkVersion?.toString(),
|
|
48
55
|
},
|
|
49
56
|
], 'withAndroidMinSdkVersion');
|
|
57
|
+
/**
|
|
58
|
+
* Update `<project>/build.gradle` by updating the R8 version
|
|
59
|
+
*/
|
|
60
|
+
const withAndroidR8Version = (expoConfig, props) => {
|
|
61
|
+
if (!props.android?.R8Version) {
|
|
62
|
+
return expoConfig;
|
|
63
|
+
}
|
|
64
|
+
return (0, config_plugins_1.withProjectBuildGradle)(expoConfig, (config) => {
|
|
65
|
+
if (config.modResults.language === 'groovy') {
|
|
66
|
+
config.modResults.contents = setAndroidR8(config.modResults.contents, props.android?.R8Version ?? '+');
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
config_plugins_1.WarningAggregator.addWarningAndroid('freerasp-react-native', `Cannot automatically configure project build.gradle, because it's not groovy`);
|
|
70
|
+
}
|
|
71
|
+
return config;
|
|
72
|
+
});
|
|
73
|
+
};
|
|
50
74
|
const withRnTalsecApp = (config, props) => {
|
|
51
|
-
config =
|
|
52
|
-
config =
|
|
75
|
+
config = withBuildscriptDependency(config);
|
|
76
|
+
config = withAndroidMinSdkVersion(config, props);
|
|
77
|
+
config = withAndroidR8Version(config, props);
|
|
53
78
|
return config;
|
|
54
79
|
};
|
|
55
80
|
let pkg = {
|