Skip to content

Commit 0c88972

Browse files
committed
feat: Add networking module
1 parent fe3e1c9 commit 0c88972

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1879
-189
lines changed

Diff for: build.gradle.kts

+18-131
Original file line numberDiff line numberDiff line change
@@ -1,143 +1,30 @@
11
plugins {
2-
alias(libs.plugins.kotlin.multiplatform)
3-
alias(libs.plugins.android.library)
4-
alias(libs.plugins.binary.compatibility.validator)
5-
`maven-publish`
6-
signing
2+
alias(libs.plugins.kotlin.jvm) apply false
3+
alias(libs.plugins.kotlin.multiplatform) apply false
4+
alias(libs.plugins.kotlin.serialization) apply false
5+
alias(libs.plugins.android.library) apply false
6+
alias(libs.plugins.binary.compatibility.validator) apply false
7+
alias(libs.plugins.ktor) apply false
78
}
89

910
group = "app.revanced"
1011

11-
// Because access to the project is necessary to authenticate with GitHub,
12-
// the following block must be placed in the root build.gradle.kts file
13-
// instead of the settings.gradle.kts file inside the dependencyResolutionManagement block.
14-
repositories {
15-
mavenCentral()
16-
mavenLocal()
17-
google()
18-
maven {
19-
// A repository must be specified for some reason. "registry" is a dummy.
20-
url = uri("https://maven.pkg.github.com/revanced/registry")
21-
credentials {
22-
username = project.findProperty("gpr.user") as String? ?: System.getenv("GITHUB_ACTOR")
23-
password = project.findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN")
24-
}
25-
}
26-
maven { url = uri("https://jitpack.io") }
27-
}
28-
29-
kotlin {
30-
jvm {
31-
compilations.all {
32-
kotlinOptions {
33-
jvmTarget = JavaVersion.VERSION_11.toString()
34-
}
35-
}
36-
}
37-
38-
androidTarget {
39-
compilations.all {
40-
kotlinOptions {
41-
jvmTarget = JavaVersion.VERSION_11.toString()
42-
}
43-
}
44-
45-
publishLibraryVariants("release")
46-
}
47-
48-
sourceSets {
49-
androidMain.dependencies {
50-
implementation(libs.libsu.nio)
51-
implementation(libs.libsu.service)
52-
implementation(libs.core.ktx)
53-
}
54-
55-
commonMain.dependencies {
56-
implementation(libs.revanced.patcher)
57-
implementation(libs.kotlin.reflect)
58-
implementation(libs.jadb) // Fork with Shell v2 support.
59-
implementation(libs.bcpkix.jdk15on)
60-
implementation(libs.jackson.module.kotlin)
61-
implementation(libs.apkzlib)
62-
implementation(libs.apksig)
63-
implementation(libs.guava)
64-
}
65-
66-
commonTest.dependencies {
67-
implementation(libs.revanced.patcher)
68-
implementation(libs.kotlin.test.junit)
69-
}
70-
}
71-
}
72-
73-
android {
74-
namespace = "app.revanced.library"
75-
compileSdk = 34
76-
defaultConfig {
77-
minSdk = 26
78-
}
79-
80-
buildFeatures {
81-
aidl = true
82-
}
83-
84-
compileOptions {
85-
sourceCompatibility = JavaVersion.VERSION_11
86-
targetCompatibility = JavaVersion.VERSION_11
87-
}
88-
}
89-
90-
java {
91-
targetCompatibility = JavaVersion.VERSION_11
92-
}
93-
94-
publishing {
12+
subprojects {
13+
// Because access to the project is necessary to authenticate with GitHub,
14+
// the following block must be placed in the root build.gradle.kts file
15+
// instead of the settings.gradle.kts file inside the dependencyResolutionManagement block.
9516
repositories {
17+
mavenCentral()
18+
mavenLocal()
19+
google()
9620
maven {
97-
name = "GitHubPackages"
98-
url = uri("https://maven.pkg.github.com/revanced/revanced-library")
21+
// A repository must be specified for some reason. "registry" is a dummy.
22+
url = uri("https://maven.pkg.github.com/revanced/registry")
9923
credentials {
100-
username = System.getenv("GITHUB_ACTOR")
101-
password = System.getenv("GITHUB_TOKEN")
24+
username = project.findProperty("gpr.user") as String? ?: System.getenv("GITHUB_ACTOR")
25+
password = project.findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN")
10226
}
10327
}
28+
maven { url = uri("https://jitpack.io") }
10429
}
105-
106-
publications {
107-
create<MavenPublication>("revanced-library-publication") {
108-
version = project.version.toString()
109-
110-
pom {
111-
name = "ReVanced Library"
112-
description = "Library containing common utilities for ReVanced"
113-
url = "https://revanced.app"
114-
115-
licenses {
116-
license {
117-
name = "GNU General Public License v3.0"
118-
url = "https://www.gnu.org/licenses/gpl-3.0.en.html"
119-
}
120-
}
121-
122-
developers {
123-
developer {
124-
id = "ReVanced"
125-
name = "ReVanced"
126-
127-
}
128-
}
129-
130-
scm {
131-
connection = "scm:git:git://github.com/revanced/revanced-library.git"
132-
developerConnection = "scm:git:[email protected]:revanced/revanced-library.git"
133-
url = "https://github.com/revanced/revanced-library"
134-
}
135-
}
136-
}
137-
}
138-
}
139-
140-
signing {
141-
useGpgCmd()
142-
sign(publishing.publications["revanced-library-publication"])
14330
}

Diff for: gradle/libs.versions.toml

+24-2
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@
22
jackson-module-kotlin = "2.15.0"
33
jadb = "1.2.1"
44
kotlin = "1.9.22"
5+
ktor-client = "2.3.10"
6+
ktor-server-test-host = "2.3.9"
57
revanced-patcher = "19.3.1"
68
binary-compatibility-validator = "0.14.0"
7-
android = "8.3.0"
9+
android = "8.3.2"
810
bcpkix-jdk15on = "1.70"
911
guava = "33.0.0-jre"
1012
libsu = "5.2.2"
1113
core-ktx = "1.12.0"
14+
ktor = "2.3.9"
15+
koin = "3.5.3"
16+
logback = "1.4.14"
1217

1318
[libraries]
1419
jackson-module-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin", version.ref = "jackson-module-kotlin" }
@@ -24,9 +29,26 @@ libsu-core = { module = "com.github.topjohnwu.libsu:core", version.ref = "libsu"
2429
libsu-nio = { module = "com.github.topjohnwu.libsu:nio", version.ref = "libsu" }
2530
libsu-service = { module = "com.github.topjohnwu.libsu:service", version.ref = "libsu" }
2631
core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" }
32+
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
33+
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor-client" }
34+
ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor-client" }
35+
ktor-server-conditional-headers = { module = "io.ktor:ktor-server-conditional-headers" }
36+
ktor-server-core = { module = "io.ktor:ktor-server-core" }
37+
ktor-server-content-negotiation = { module = "io.ktor:ktor-server-content-negotiation" }
38+
ktor-server-auth = { module = "io.ktor:ktor-server-auth" }
39+
ktor-server-auth-jwt = { module = "io.ktor:ktor-server-auth-jwt" }
40+
ktor-server-cors = { module = "io.ktor:ktor-server-cors" }
41+
ktor-server-caching-headers = { module = "io.ktor:ktor-server-caching-headers" }
42+
ktor-server-host-common = { module = "io.ktor:ktor-server-host-common" }
43+
ktor-server-netty = { module = "io.ktor:ktor-server-netty" }
44+
ktor-server-websockets = { module = "io.ktor:ktor-server-websockets" }
45+
ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json" }
46+
koin-ktor = { module = "io.insert-koin:koin-ktor", version.ref = "koin" }
2747

2848
[plugins]
49+
ktor = { id = "io.ktor.plugin", version.ref = "ktor" }
2950
binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binary-compatibility-validator" }
3051
android-library = { id = "com.android.library", version.ref = "android" }
31-
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
52+
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
3253
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
54+
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }

Diff for: library-networking/api/library-networking.api

+143
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
public final class app/revanced/library/networking/Server {
2+
public final fun start ()Lio/ktor/server/engine/ApplicationEngine;
3+
public final fun stop ()V
4+
}
5+
6+
public final class app/revanced/library/networking/Server$DependenciesConfiguration {
7+
public fun <init> (Lapp/revanced/library/networking/configuration/repository/StorageRepository;Lapp/revanced/library/networking/configuration/repository/PatchSetRepository;Lapp/revanced/library/networking/configuration/repository/AppRepository;Lapp/revanced/library/networking/configuration/repository/InstallerRepository;)V
8+
}
9+
10+
public final class app/revanced/library/networking/Server$SecurityConfiguration {
11+
public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
12+
}
13+
14+
public final class app/revanced/library/networking/Server$SerializersConfiguration {
15+
public fun <init> ()V
16+
public fun <init> (Ljava/util/Map;)V
17+
public synthetic fun <init> (Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
18+
}
19+
20+
public final class app/revanced/library/networking/ServerBuilder {
21+
public fun <init> ()V
22+
public final fun configureDependencies (Lkotlin/jvm/functions/Function1;)Lapp/revanced/library/networking/ServerBuilder;
23+
public final fun configureSecurity (Ljava/lang/String;Ljava/lang/String;)Lapp/revanced/library/networking/ServerBuilder;
24+
public final fun configureSerializers (Lkotlin/jvm/functions/Function1;)Lapp/revanced/library/networking/ServerBuilder;
25+
}
26+
27+
public final class app/revanced/library/networking/ServerBuilder$DependenciesConfigurationBuilder {
28+
public final fun build ()Lapp/revanced/library/networking/Server$DependenciesConfiguration;
29+
public final fun configureAppRepository (Lapp/revanced/library/networking/configuration/repository/AppRepository;)Lapp/revanced/library/networking/ServerBuilder$DependenciesConfigurationBuilder;
30+
public final fun configureInstallerRepository (Lapp/revanced/library/networking/configuration/repository/InstallerRepository;)Lapp/revanced/library/networking/ServerBuilder$DependenciesConfigurationBuilder;
31+
public final fun configurePatchSetRepository (Lapp/revanced/library/networking/configuration/repository/PatchSetRepository;)Lapp/revanced/library/networking/ServerBuilder$DependenciesConfigurationBuilder;
32+
public final fun configureStorageRepository (Lapp/revanced/library/networking/configuration/repository/StorageRepository;)Lapp/revanced/library/networking/ServerBuilder$DependenciesConfigurationBuilder;
33+
}
34+
35+
public final class app/revanced/library/networking/ServerBuilder$SerializersConfigurationBuilder {
36+
public final fun build ()Lapp/revanced/library/networking/Server$SerializersConfiguration;
37+
public final fun configurePatchOptionSerializers ([Lkotlin/Pair;)V
38+
}
39+
40+
public final class app/revanced/library/networking/ServerKt {
41+
public static final fun main ()V
42+
public static synthetic fun main ([Ljava/lang/String;)V
43+
public static final fun server (Ljava/lang/String;ILio/ktor/server/engine/ApplicationEngineFactory;Lkotlin/jvm/functions/Function1;)Lapp/revanced/library/networking/Server;
44+
public static synthetic fun server$default (Ljava/lang/String;ILio/ktor/server/engine/ApplicationEngineFactory;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lapp/revanced/library/networking/Server;
45+
}
46+
47+
public final class app/revanced/library/networking/configuration/SerializationKt {
48+
public static final fun configureSerialization (Lio/ktor/server/application/Application;Lapp/revanced/library/networking/Server$SerializersConfiguration;)V
49+
}
50+
51+
public abstract class app/revanced/library/networking/configuration/repository/AppRepository {
52+
public fun <init> ()V
53+
}
54+
55+
public abstract class app/revanced/library/networking/configuration/repository/InstallerRepository {
56+
public fun <init> ()V
57+
}
58+
59+
public abstract class app/revanced/library/networking/configuration/repository/PatchSetRepository {
60+
public fun <init> (Lapp/revanced/library/networking/configuration/repository/StorageRepository;)V
61+
}
62+
63+
public abstract class app/revanced/library/networking/configuration/repository/StorageRepository {
64+
public fun <init> (Ljava/io/File;Ljava/io/File;Ljava/io/File;Ljava/io/File;)V
65+
public synthetic fun <init> (Ljava/io/File;Ljava/io/File;Ljava/io/File;Ljava/io/File;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
66+
public final fun getAaptBinaryPath ()Ljava/io/File;
67+
public final fun getKeystoreFilePath ()Ljava/io/File;
68+
public final fun getOutputFilePath ()Ljava/io/File;
69+
public final fun getTemporaryFilesPath ()Ljava/io/File;
70+
}
71+
72+
public class app/revanced/library/networking/models/App {
73+
public static final field Companion Lapp/revanced/library/networking/models/App$Companion;
74+
public synthetic fun <init> (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V
75+
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
76+
public static final synthetic fun write$Self (Lapp/revanced/library/networking/models/App;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V
77+
}
78+
79+
public final class app/revanced/library/networking/models/App$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
80+
public static final field INSTANCE Lapp/revanced/library/networking/models/App$$serializer;
81+
public fun childSerializers ()[Lkotlinx/serialization/KSerializer;
82+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lapp/revanced/library/networking/models/App;
83+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
84+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
85+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lapp/revanced/library/networking/models/App;)V
86+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
87+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
88+
}
89+
90+
public final class app/revanced/library/networking/models/App$Companion {
91+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
92+
}
93+
94+
public final class app/revanced/library/networking/models/Patch {
95+
public static final field Companion Lapp/revanced/library/networking/models/Patch$Companion;
96+
}
97+
98+
public final class app/revanced/library/networking/models/Patch$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
99+
public static final field INSTANCE Lapp/revanced/library/networking/models/Patch$$serializer;
100+
public fun childSerializers ()[Lkotlinx/serialization/KSerializer;
101+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lapp/revanced/library/networking/models/Patch;
102+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
103+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
104+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lapp/revanced/library/networking/models/Patch;)V
105+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
106+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
107+
}
108+
109+
public final class app/revanced/library/networking/models/Patch$Companion {
110+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
111+
}
112+
113+
public final class app/revanced/library/networking/models/Patch$KeyValuePatchOption {
114+
public fun <init> (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)V
115+
public final fun getKey ()Ljava/lang/String;
116+
public final fun getValue ()Ljava/lang/Object;
117+
public final fun getValueType ()Ljava/lang/String;
118+
}
119+
120+
public final class app/revanced/library/networking/models/Patch$PatchOption {
121+
public static final field Companion Lapp/revanced/library/networking/models/Patch$PatchOption$Companion;
122+
}
123+
124+
public final class app/revanced/library/networking/models/Patch$PatchOption$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
125+
public synthetic fun <init> (Lkotlinx/serialization/KSerializer;)V
126+
public fun childSerializers ()[Lkotlinx/serialization/KSerializer;
127+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lapp/revanced/library/networking/models/Patch$PatchOption;
128+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
129+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
130+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lapp/revanced/library/networking/models/Patch$PatchOption;)V
131+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
132+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
133+
}
134+
135+
public final class app/revanced/library/networking/models/Patch$PatchOption$Companion {
136+
public final fun serializer (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;
137+
}
138+
139+
public final class app/revanced/library/networking/models/PatchBundle {
140+
public final fun getPatchBundleFile ()Ljava/io/File;
141+
public final fun getPatchBundleIntegrationsFile ()Ljava/io/File;
142+
}
143+

0 commit comments

Comments
 (0)