From 2d8ad47083e8a5f404fab41de166a0e3a0658b41 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 28 Jan 2021 15:04:49 +0600 Subject: [PATCH 1/3] start 0.4.23 --- CHANGELOG.md | 2 ++ gradle.properties | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28b3ede5fd5..f0ec52d7e09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Changelog +## 0.4.23 + ## 0.4.22 * `Versions`: diff --git a/gradle.properties b/gradle.properties index 1d386e31746..e418925999d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -44,5 +44,5 @@ dokka_version=1.4.20 # Project data group=dev.inmo -version=0.4.22 -android_code_version=26 +version=0.4.23 +android_code_version=27 From 94e26ee8a0bed0b98d1f8833e0f769811aec796f Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 28 Jan 2021 15:38:22 +0600 Subject: [PATCH 2/3] add Base64BytesToFromStringSerializer --- CHANGELOG.md | 4 ++++ .../base64/Base64BytesToFromStringSerializer.kt | 17 +++++++++++++++++ .../serialization/base64/Base64Serializer.kt | 9 +++------ 3 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 serialization/base64/src/commonMain/kotlin/dev/inmo/micro_utils/serialization/base64/Base64BytesToFromStringSerializer.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index f0ec52d7e09..418bd7e36fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## 0.4.23 +* `Serialization` + * `Base64` + * New serializer `Base64BytesToFromStringSerializer` has been added + ## 0.4.22 * `Versions`: diff --git a/serialization/base64/src/commonMain/kotlin/dev/inmo/micro_utils/serialization/base64/Base64BytesToFromStringSerializer.kt b/serialization/base64/src/commonMain/kotlin/dev/inmo/micro_utils/serialization/base64/Base64BytesToFromStringSerializer.kt new file mode 100644 index 00000000000..eeb5bf63788 --- /dev/null +++ b/serialization/base64/src/commonMain/kotlin/dev/inmo/micro_utils/serialization/base64/Base64BytesToFromStringSerializer.kt @@ -0,0 +1,17 @@ +package dev.inmo.micro_utils.serialization.base64 + +import dev.inmo.micro_utils.crypto.* +import kotlinx.serialization.KSerializer +import kotlinx.serialization.builtins.serializer +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder + +/** + * Converts [ByteArray] into base64 encoded string due to serialization and decode base64 encoded string into bytes + */ +object Base64BytesToFromStringSerializer: KSerializer { + override val descriptor: SerialDescriptor = String.serializer().descriptor + override fun deserialize(decoder: Decoder): SourceBytes = decoder.decodeString().decodeBase64() + override fun serialize(encoder: Encoder, value: SourceBytes) = encoder.encodeString(value.encodeBase64String()) +} \ No newline at end of file diff --git a/serialization/base64/src/commonMain/kotlin/dev/inmo/micro_utils/serialization/base64/Base64Serializer.kt b/serialization/base64/src/commonMain/kotlin/dev/inmo/micro_utils/serialization/base64/Base64Serializer.kt index 435730f24ac..b63d05a5815 100644 --- a/serialization/base64/src/commonMain/kotlin/dev/inmo/micro_utils/serialization/base64/Base64Serializer.kt +++ b/serialization/base64/src/commonMain/kotlin/dev/inmo/micro_utils/serialization/base64/Base64Serializer.kt @@ -1,9 +1,6 @@ package dev.inmo.micro_utils.serialization.base64 -import dev.inmo.micro_utils.crypto.* import kotlinx.serialization.KSerializer -import kotlinx.serialization.Serializer -import kotlinx.serialization.builtins.serializer import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder @@ -12,9 +9,9 @@ open class Base64Serializer( private val converterFrom: (T) -> String, private val converterTo: (String) -> T, ) : KSerializer { - override val descriptor: SerialDescriptor = String.serializer().descriptor - override fun deserialize(decoder: Decoder): T = converterTo(decoder.decodeString().decodeBase64String()) - override fun serialize(encoder: Encoder, value: T) = encoder.encodeString(converterFrom(value).encodeBase64String()) + override val descriptor: SerialDescriptor = Base64BytesToFromStringSerializer.descriptor + override fun deserialize(decoder: Decoder): T = converterTo(Base64BytesToFromStringSerializer.deserialize(decoder).decodeToString()) + override fun serialize(encoder: Encoder, value: T) = Base64BytesToFromStringSerializer.serialize(encoder, converterFrom(value).encodeToByteArray()) } object Base64StringSerializer : Base64Serializer({ it }, { it }) From a03f7201d2e2ffab3342b65a2d10b703291b24ec Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 28 Jan 2021 15:43:06 +0600 Subject: [PATCH 3/3] update ktor --- CHANGELOG.md | 2 ++ gradle.properties | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 418bd7e36fc..14c2e747916 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## 0.4.23 +* `Versions`: + * `Ktor`: `1.5.0` -> `1.5.1` * `Serialization` * `Base64` * New serializer `Base64BytesToFromStringSerializer` has been added diff --git a/gradle.properties b/gradle.properties index e418925999d..e74082177ec 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ kotlin_coroutines_version=1.4.2 kotlin_serialisation_core_version=1.0.1 kotlin_exposed_version=0.29.1 -ktor_version=1.5.0 +ktor_version=1.5.1 klockVersion=2.0.4