diff --git a/.github/workflows/packages_push.yml b/.github/workflows/build.yml similarity index 69% rename from .github/workflows/packages_push.yml rename to .github/workflows/build.yml index 9fb2a736b8e..8ce82b06c8a 100644 --- a/.github/workflows/packages_push.yml +++ b/.github/workflows/build.yml @@ -1,8 +1,8 @@ -name: Publish package to GitHub Packages +name: Build on: [push] jobs: - publishing: + build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -20,9 +20,9 @@ jobs: mv gradle.properties.tmp gradle.properties - name: Build run: ./gradlew build - - name: Publish - continue-on-error: true - run: ./gradlew --no-parallel publishAllPublicationsToGithubPackagesRepository - env: - GITHUBPACKAGES_USER: ${{ github.actor }} - GITHUBPACKAGES_PASSWORD: ${{ secrets.GITHUB_TOKEN }} +# - name: Publish +# continue-on-error: true +# run: ./gradlew --no-parallel publishAllPublicationsToGithubPackagesRepository +# env: +# GITHUBPACKAGES_USER: ${{ github.actor }} +# GITHUBPACKAGES_PASSWORD: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 5408893777b..2d10a9b3f01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## 0.12.0-beta + +**OLD DEPRECATIONS HAVE BEEN REMOVED** + +**MINIMAL ANDROID API HAS BEEN ENLARGED UP TO API 21 (Android 5.0)** + +* `Versions` + * `Kotlin`: `1.6.21` -> `1.7.0` + * `Coroutines`: `1.6.3` -> `1.6.4` + * `Exposed`: `0.38.2` -> `0.39.2` + * `Compose`: `1.2.0-alpha01-dev729` -> `1.2.0-alpha01-dev753` + * `Klock`: `2.7.0` -> `3.0.0` + * `uuid`: `0.4.1` -> `0.5.0` + * `Android Core KTX`: `1.7.0` -> `1.8.0` + * `Android AppCompat`: `1.4.1` -> `1.4.2` +* `Ktor`: + * All previously standard functions related to work with binary data by default have been deprecated + ## 0.11.14 * `Pagination`: diff --git a/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/Either.kt b/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/Either.kt index c07426febe1..3b1b161dea9 100644 --- a/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/Either.kt +++ b/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/Either.kt @@ -1,3 +1,5 @@ +@file:Suppress("unused", "NOTHING_TO_INLINE") + package dev.inmo.micro_utils.common import kotlinx.serialization.* @@ -21,11 +23,10 @@ import kotlinx.serialization.encoding.* sealed interface Either { val optionalT1: Optional val optionalT2: Optional - @Deprecated("Use optionalT1 instead", ReplaceWith("optionalT1")) - val t1: T1? + + val t1OrNull: T1? get() = optionalT1.dataOrNull() - @Deprecated("Use optionalT2 instead", ReplaceWith("optionalT2")) - val t2: T2? + val t2OrNull: T2? get() = optionalT2.dataOrNull() } @@ -33,7 +34,7 @@ class EitherSerializer( t1Serializer: KSerializer, t2Serializer: KSerializer, ) : KSerializer> { - @OptIn(InternalSerializationApi::class) + @OptIn(InternalSerializationApi::class, ExperimentalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor( "TypedSerializer", SerialKind.CONTEXTUAL @@ -96,7 +97,7 @@ class EitherSerializer( */ @Serializable data class EitherFirst( - override val t1: T1 + val t1: T1 ) : Either { override val optionalT1: Optional = t1.optional override val optionalT2: Optional = Optional.absent() @@ -107,7 +108,7 @@ data class EitherFirst( */ @Serializable data class EitherSecond( - override val t2: T2 + val t2: T2 ) : Either { override val optionalT1: Optional = Optional.absent() override val optionalT2: Optional = t2.optional diff --git a/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/Optional.kt b/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/Optional.kt index 4cb3e2eefd6..3fe34dbf471 100644 --- a/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/Optional.kt +++ b/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/Optional.kt @@ -52,6 +52,7 @@ inline val T?.optionalOrAbsentIfNull * Will call [block] when data presented ([Optional.dataPresented] == true) */ inline fun Optional.onPresented(block: (T) -> Unit): Optional = apply { + @OptIn(Warning::class) if (dataPresented) { @Suppress("UNCHECKED_CAST") block(data as T) } } @@ -59,6 +60,7 @@ inline fun Optional.onPresented(block: (T) -> Unit): Optional = apply * Will call [block] when data presented ([Optional.dataPresented] == true) */ inline fun Optional.mapOnPresented(block: (T) -> R): R? = run { + @OptIn(Warning::class) if (dataPresented) { @Suppress("UNCHECKED_CAST") block(data as T) } else null } @@ -66,6 +68,7 @@ inline fun Optional.mapOnPresented(block: (T) -> R): R? = run { * Will call [block] when data absent ([Optional.dataPresented] == false) */ inline fun Optional.onAbsent(block: () -> Unit): Optional = apply { + @OptIn(Warning::class) if (!dataPresented) { block() } } @@ -73,27 +76,22 @@ inline fun Optional.onAbsent(block: () -> Unit): Optional = apply { * Will call [block] when data presented ([Optional.dataPresented] == true) */ inline fun Optional.mapOnAbsent(block: () -> R): R? = run { - if (!dataPresented) { @Suppress("UNCHECKED_CAST") block() } else null + @OptIn(Warning::class) + if (!dataPresented) { block() } else null } /** * Returns [Optional.data] if [Optional.dataPresented] of [this] is true, or null otherwise */ -fun Optional.dataOrNull() = if (dataPresented) @Suppress("UNCHECKED_CAST") (data as T) else null +fun Optional.dataOrNull() = @OptIn(Warning::class) if (dataPresented) @Suppress("UNCHECKED_CAST") (data as T) else null /** * Returns [Optional.data] if [Optional.dataPresented] of [this] is true, or throw [throwable] otherwise */ -fun Optional.dataOrThrow(throwable: Throwable) = if (dataPresented) @Suppress("UNCHECKED_CAST") (data as T) else throw throwable +fun Optional.dataOrThrow(throwable: Throwable) = @OptIn(Warning::class) if (dataPresented) @Suppress("UNCHECKED_CAST") (data as T) else throw throwable /** * Returns [Optional.data] if [Optional.dataPresented] of [this] is true, or call [block] and returns the result of it */ -inline fun Optional.dataOrElse(block: () -> T) = if (dataPresented) @Suppress("UNCHECKED_CAST") (data as T) else block() - -/** - * Returns [Optional.data] if [Optional.dataPresented] of [this] is true, or call [block] and returns the result of it - */ -@Deprecated("dataOrElse now is inline", ReplaceWith("dataOrElse", "dev.inmo.micro_utils.common.dataOrElse")) -suspend fun Optional.dataOrElseSuspendable(block: suspend () -> T) = if (dataPresented) @Suppress("UNCHECKED_CAST") (data as T) else block() +inline fun Optional.dataOrElse(block: () -> T) = @OptIn(Warning::class) if (dataPresented) @Suppress("UNCHECKED_CAST") (data as T) else block() diff --git a/crypto/src/commonMain/kotlin/dev/inmo/micro_utils/crypto/Sha.kt b/crypto/src/commonMain/kotlin/dev/inmo/micro_utils/crypto/Sha.kt deleted file mode 100644 index 6ad62b85b06..00000000000 --- a/crypto/src/commonMain/kotlin/dev/inmo/micro_utils/crypto/Sha.kt +++ /dev/null @@ -1,4 +0,0 @@ -package dev.inmo.micro_utils.crypto - -@Deprecated("Deprecated due to incorrect of work sometimes and redundancy. Can be replaced by korlibs krypto") -expect fun SourceString.hmacSha256(key: String): String diff --git a/crypto/src/commonTest/kotlin/dev/inmo/micro_utils/crypto/HmacSHA256.kt b/crypto/src/commonTest/kotlin/dev/inmo/micro_utils/crypto/HmacSHA256.kt deleted file mode 100644 index 60ea7433568..00000000000 --- a/crypto/src/commonTest/kotlin/dev/inmo/micro_utils/crypto/HmacSHA256.kt +++ /dev/null @@ -1,12 +0,0 @@ -package dev.inmo.micro_utils.crypto - -import kotlin.test.* - -class HmacSHA256 { - @Test - fun testSimpleHmacSHA256Message() { - val text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." - val resultSha = text.hmacSha256("Example") - assertEquals("5a481d59329ef862b158eedc95392ebb22492ba3014661a3379d8201db992484", resultSha) - } -} diff --git a/crypto/src/jsMain/kotlin/dev/inmo/micro_utils/crypto/CryptoJs.kt b/crypto/src/jsMain/kotlin/dev/inmo/micro_utils/crypto/CryptoJs.kt index 8bca58a1a15..3f5e90439f8 100644 --- a/crypto/src/jsMain/kotlin/dev/inmo/micro_utils/crypto/CryptoJs.kt +++ b/crypto/src/jsMain/kotlin/dev/inmo/micro_utils/crypto/CryptoJs.kt @@ -7,8 +7,3 @@ external interface CryptoJs { @JsModule("crypto-js") @JsNonModule external val CryptoJS: CryptoJs - -@Deprecated("Deprecated due to incorrect of work sometimes and redundancy. Can be replaced by korlibs krypto") -actual fun SourceString.hmacSha256(key: String): String { - return CryptoJS.asDynamic().HmacSHA256(this, key).toString().unsafeCast() -} diff --git a/crypto/src/jvmMain/kotlin/dev/inmo/micro_utils/crypto/ShaHexActual.kt b/crypto/src/jvmMain/kotlin/dev/inmo/micro_utils/crypto/ShaHexActual.kt deleted file mode 100644 index 7158bb21c8e..00000000000 --- a/crypto/src/jvmMain/kotlin/dev/inmo/micro_utils/crypto/ShaHexActual.kt +++ /dev/null @@ -1,14 +0,0 @@ -package dev.inmo.micro_utils.crypto - -import javax.crypto.Mac -import javax.crypto.spec.SecretKeySpec - -@Deprecated("Deprecated due to incorrect of work sometimes and redundancy. Can be replaced by korlibs krypto") -actual fun SourceString.hmacSha256(key: String): String { - val mac = Mac.getInstance("HmacSHA256") - - val secretKey = SecretKeySpec(key.toByteArray(), "HmacSHA256") - mac.init(secretKey) - - return mac.doFinal(toByteArray()).hex() -} diff --git a/fsm/common/src/commonMain/kotlin/dev/inmo/micro_utils/fsm/common/CheckableHandlerHolder.kt b/fsm/common/src/commonMain/kotlin/dev/inmo/micro_utils/fsm/common/CheckableHandlerHolder.kt index bdd321b48e0..bf6c4ca9799 100644 --- a/fsm/common/src/commonMain/kotlin/dev/inmo/micro_utils/fsm/common/CheckableHandlerHolder.kt +++ b/fsm/common/src/commonMain/kotlin/dev/inmo/micro_utils/fsm/common/CheckableHandlerHolder.kt @@ -47,24 +47,11 @@ fun CheckableHandlerHolder( } ) -@Deprecated("Renamed", ReplaceWith("CheckableHandlerHolder")) -fun StateHandlerHolder( - inputKlass: KClass, - strict: Boolean = false, - delegateTo: StatesHandler -) = CheckableHandlerHolder(inputKlass, strict, delegateTo) - inline fun CheckableHandlerHolder( strict: Boolean = false, delegateTo: StatesHandler ) = CheckableHandlerHolder(I::class, strict, delegateTo) -@Deprecated("Renamed", ReplaceWith("CheckableHandlerHolder")) -inline fun StateHandlerHolder( - strict: Boolean = false, - delegateTo: StatesHandler -) = CheckableHandlerHolder(strict, delegateTo) - inline fun StatesHandler.holder( strict: Boolean = true ) = CheckableHandlerHolder( diff --git a/fsm/common/src/commonMain/kotlin/dev/inmo/micro_utils/fsm/common/UpdatableStatesMachine.kt b/fsm/common/src/commonMain/kotlin/dev/inmo/micro_utils/fsm/common/UpdatableStatesMachine.kt index b2078205623..15892a3cdee 100644 --- a/fsm/common/src/commonMain/kotlin/dev/inmo/micro_utils/fsm/common/UpdatableStatesMachine.kt +++ b/fsm/common/src/commonMain/kotlin/dev/inmo/micro_utils/fsm/common/UpdatableStatesMachine.kt @@ -68,9 +68,6 @@ open class DefaultUpdatableStatesMachine( */ protected open suspend fun shouldReplaceJob(previous: Optional, new: T): Boolean = previous.dataOrNull() != new - @Deprecated("Overwrite shouldReplaceJob instead") - protected open suspend fun compare(previous: Optional, new: T): Boolean = shouldReplaceJob(previous, new) - override suspend fun updateChain(currentState: T, newState: T) { statesManager.update(currentState, newState) } diff --git a/fsm/common/src/commonMain/kotlin/dev/inmo/micro_utils/fsm/common/managers/InMemoryStatesManager.kt b/fsm/common/src/commonMain/kotlin/dev/inmo/micro_utils/fsm/common/managers/InMemoryStatesManager.kt deleted file mode 100644 index 3cfe75323ad..00000000000 --- a/fsm/common/src/commonMain/kotlin/dev/inmo/micro_utils/fsm/common/managers/InMemoryStatesManager.kt +++ /dev/null @@ -1,17 +0,0 @@ -package dev.inmo.micro_utils.fsm.common.managers - -import dev.inmo.micro_utils.fsm.common.State -import kotlinx.coroutines.flow.* - -/** - * Creates [DefaultStatesManager] with [InMemoryDefaultStatesManagerRepo] - * - * @param onContextsConflictResolver Receive old [State], new one and the state currently placed on new [State.context] - * key. In case when this callback will returns true, the state placed on [State.context] of new will be replaced by - * new state by using [endChain] with that state - */ -@Deprecated("Use DefaultStatesManager instead", ReplaceWith("DefaultStatesManager")) -fun InMemoryStatesManager( - onStartContextsConflictResolver: suspend (old: T, new: T) -> Boolean = { _, _ -> true }, - onUpdateContextsConflictResolver: suspend (old: T, new: T, currentNew: T) -> Boolean = { _, _, _ -> true } -) = DefaultStatesManager(onStartContextsConflictResolver = onStartContextsConflictResolver, onUpdateContextsConflictResolver = onUpdateContextsConflictResolver) diff --git a/fsm/common/src/jvmTest/kotlin/PlayableMain.kt b/fsm/common/src/jvmTest/kotlin/PlayableMain.kt index 5a2e61d55e6..a643e636bdf 100644 --- a/fsm/common/src/jvmTest/kotlin/PlayableMain.kt +++ b/fsm/common/src/jvmTest/kotlin/PlayableMain.kt @@ -1,7 +1,6 @@ import dev.inmo.micro_utils.fsm.common.* import dev.inmo.micro_utils.fsm.common.dsl.buildFSM import dev.inmo.micro_utils.fsm.common.managers.DefaultStatesManager -import dev.inmo.micro_utils.fsm.common.managers.InMemoryStatesManager import kotlinx.coroutines.* sealed interface TrafficLightState : State { diff --git a/gradle.properties b/gradle.properties index e32a7c883b8..8b24b628623 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,5 +14,5 @@ crypto_js_version=4.1.1 # Project data group=dev.inmo -version=0.11.14 -android_code_version=138 +version=0.12.0 +android_code_version=139 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 031eae77080..0ca9269eb31 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,30 +1,30 @@ [versions] -kt = "1.6.21" -kt-serialization = "1.3.3" +kt = "1.7.0" +kt-serialization = "1.4.0-RC" kt-coroutines = "1.6.4" -jb-compose = "1.2.0-alpha01-dev731" -jb-exposed = "0.38.2" -jb-dokka = "1.6.21" +jb-compose = "1.2.0-alpha01-dev753" +jb-exposed = "0.39.2" +jb-dokka = "1.7.0" -klock = "2.7.0" -uuid = "0.4.1" +klock = "3.0.0" +uuid = "0.5.0" ktor = "2.0.3" gh-release = "2.4.1" -android-gradle = "7.0.4" +android-gradle = "7.2.2" dexcount = "3.1.0" -android-coreKtx = "1.7.0" +android-coreKtx = "1.8.0" android-recyclerView = "1.2.1" -android-appCompat = "1.4.1" -android-espresso = "3.3.0" -android-test = "1.1.2" +android-appCompat = "1.4.2" +android-espresso = "3.4.0" +android-test = "1.1.3" -android-props-minSdk = "19" +android-props-minSdk = "21" android-props-compileSdk = "32" android-props-buildTools = "32.0.0" diff --git a/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/client/FlowsWebsockets.kt b/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/client/FlowsWebsockets.kt index 1b59ee4f2dd..c2d9dc3b8c6 100644 --- a/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/client/FlowsWebsockets.kt +++ b/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/client/FlowsWebsockets.kt @@ -19,6 +19,7 @@ import kotlinx.serialization.DeserializationStrategy * @param checkReconnection This lambda will be called when it is required to reconnect to websocket to establish * connection. Must return true in case if must be reconnected. By default always reconnecting */ +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") inline fun HttpClient.createStandardWebsocketFlow( url: String, crossinline checkReconnection: suspend (Throwable?) -> Boolean = { true }, @@ -65,6 +66,7 @@ inline fun HttpClient.createStandardWebsocketFlow( * @param checkReconnection This lambda will be called when it is required to reconnect to websocket to establish * connection. Must return true in case if must be reconnected. By default always reconnecting */ +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") inline fun HttpClient.createStandardWebsocketFlow( url: String, deserializer: DeserializationStrategy, diff --git a/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/client/StandardHttpClientGetPost.kt b/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/client/StandardHttpClientGetPost.kt index a36d817a06e..f9c327ec27e 100644 --- a/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/client/StandardHttpClientGetPost.kt +++ b/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/client/StandardHttpClientGetPost.kt @@ -12,9 +12,7 @@ import io.ktor.http.* import io.ktor.utils.io.core.ByteReadPacket import kotlinx.serialization.* -@Deprecated("This class will be removed in next") -typealias BodyPair = Pair, T> - +@Deprecated("This class will be removed soon. It is now recommended to use built-in ktor features instead") class UnifiedRequester( val client: HttpClient = HttpClient(), val serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat @@ -100,8 +98,10 @@ class UnifiedRequester( ) = createStandardWebsocketFlow(url, { true }, deserializer, requestBuilder) } +@Deprecated("This property will be removed soon. It is now recommended to use built-in ktor features instead") val defaultRequester = UnifiedRequester() +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") suspend fun HttpClient.uniget( url: String, resultDeserializer: DeserializationStrategy, @@ -111,6 +111,7 @@ suspend fun HttpClient.uniget( } +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") fun SerializationStrategy.encodeUrlQueryValue( value: T, serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat @@ -119,6 +120,7 @@ fun SerializationStrategy.encodeUrlQueryValue( value ) +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") suspend fun HttpClient.unipost( url: String, bodyInfo: Pair, BodyType>, @@ -132,6 +134,7 @@ suspend fun HttpClient.unipost( serialFormat.decodeDefault(resultDeserializer, it.body()) } +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") suspend fun HttpClient.unimultipart( url: String, filename: String, @@ -160,6 +163,7 @@ suspend fun HttpClient.unimultipart( requestBuilder() }.let { serialFormat.decodeDefault(resultDeserializer, it.body()) } +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") suspend fun HttpClient.unimultipart( url: String, filename: String, @@ -197,6 +201,7 @@ suspend fun HttpClient.unimultipart( serialFormat ) +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") suspend fun HttpClient.unimultipart( url: String, mppFile: MPPFile, @@ -218,6 +223,7 @@ suspend fun HttpClient.unimultipart( serialFormat ) +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") suspend fun HttpClient.unimultipart( url: String, mppFile: MPPFile, diff --git a/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/FlowsWebsocket.kt b/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/FlowsWebsocket.kt index 32cfce7e3b0..3760e60ad4b 100644 --- a/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/FlowsWebsocket.kt +++ b/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/FlowsWebsocket.kt @@ -33,6 +33,7 @@ fun Route.includeWebsocketHandling( } } +@Deprecated("This method will be removed soon") fun Route.includeWebsocketHandling( suburl: String, flow: Flow, diff --git a/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/ServerRoutingShortcuts.kt b/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/ServerRoutingShortcuts.kt index 962f72e2404..d44914c72dc 100644 --- a/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/ServerRoutingShortcuts.kt +++ b/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/ServerRoutingShortcuts.kt @@ -19,6 +19,7 @@ import kotlinx.coroutines.flow.Flow import kotlinx.serialization.DeserializationStrategy import kotlinx.serialization.SerializationStrategy +@Deprecated("This class method will be removed soon. It is now recommended to use built-in ktor features instead") class UnifiedRouter( val serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat, val serialFormatContentType: ContentType = standardKtorSerialFormatContentType @@ -97,6 +98,7 @@ class UnifiedRouter( val defaultUnifiedRouter = UnifiedRouter() +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") suspend fun ApplicationCall.unianswer( answerSerializer: SerializationStrategy, answer: T @@ -107,6 +109,7 @@ suspend fun ApplicationCall.unianswer( ) } +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") suspend fun ApplicationCall.uniload( deserializer: DeserializationStrategy ) = safely { @@ -119,6 +122,7 @@ suspend fun ApplicationCall.uniload( suspend fun ApplicationCall.uniloadMultipart( onFormItem: (PartData.FormItem) -> Unit = {}, onCustomFileItem: (PartData.FileItem) -> Unit = {}, + onBinaryChannelItem: (PartData.BinaryChannelItem) -> Unit = {}, onBinaryContent: (PartData.BinaryItem) -> Unit = {} ) = safely { val multipartData = receiveMultipart() @@ -135,16 +139,19 @@ suspend fun ApplicationCall.uniloadMultipart( } } is PartData.BinaryItem -> onBinaryContent(it) + is PartData.BinaryChannelItem -> onBinaryChannelItem(it) } } resultInput ?: error("Bytes has not been received") } +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") suspend fun ApplicationCall.uniloadMultipart( deserializer: DeserializationStrategy, onFormItem: (PartData.FormItem) -> Unit = {}, onCustomFileItem: (PartData.FileItem) -> Unit = {}, + onBinaryChannelItem: (PartData.BinaryChannelItem) -> Unit = {}, onBinaryContent: (PartData.BinaryItem) -> Unit = {} ): Pair { var data: Optional? = null @@ -157,6 +164,7 @@ suspend fun ApplicationCall.uniloadMultipart( onCustomFileItem(it) } }, + onBinaryChannelItem, onBinaryContent ) @@ -164,10 +172,12 @@ suspend fun ApplicationCall.uniloadMultipart( return resultInput to (completeData.dataOrNull().let { it as T }) } +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") suspend fun ApplicationCall.uniloadMultipartFile( deserializer: DeserializationStrategy, onFormItem: (PartData.FormItem) -> Unit = {}, onCustomFileItem: (PartData.FileItem) -> Unit = {}, + onBinaryChannelItem: (PartData.BinaryChannelItem) -> Unit = {}, onBinaryContent: (PartData.BinaryItem) -> Unit = {}, ) = safely { val multipartData = receiveMultipart() @@ -204,6 +214,7 @@ suspend fun ApplicationCall.uniloadMultipartFile( } } is PartData.BinaryItem -> onBinaryContent(it) + is PartData.BinaryChannelItem -> onBinaryChannelItem(it) } } @@ -214,6 +225,7 @@ suspend fun ApplicationCall.uniloadMultipartFile( suspend fun ApplicationCall.uniloadMultipartFile( onFormItem: (PartData.FormItem) -> Unit = {}, onCustomFileItem: (PartData.FileItem) -> Unit = {}, + onBinaryChannelItem: (PartData.BinaryChannelItem) -> Unit = {}, onBinaryContent: (PartData.BinaryItem) -> Unit = {}, ) = safely { val multipartData = receiveMultipart() @@ -247,6 +259,7 @@ suspend fun ApplicationCall.uniloadMultipartFile( } } is PartData.BinaryItem -> onBinaryContent(it) + is PartData.BinaryChannelItem -> onBinaryChannelItem(it) } } @@ -273,6 +286,7 @@ suspend fun ApplicationCall.getQueryParameterOrSendError( } } +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") fun ApplicationCall.decodeUrlQueryValue( field: String, deserializer: DeserializationStrategy @@ -283,6 +297,7 @@ fun ApplicationCall.decodeUrlQueryValue( ) } +@Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") suspend fun ApplicationCall.decodeUrlQueryValueOrSendError( field: String, deserializer: DeserializationStrategy diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KVCache.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KVCache.kt deleted file mode 100644 index 51f000ba299..00000000000 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KVCache.kt +++ /dev/null @@ -1,6 +0,0 @@ -package dev.inmo.micro_utils.repos.cache - -@Deprecated("Replaced", ReplaceWith("KVCache", "dev.inmo.micro_utils.repos.cache.cache.KVCache")) -typealias KVCache = dev.inmo.micro_utils.repos.cache.cache.KVCache -@Deprecated("Replaced", ReplaceWith("SimpleKVCache", "dev.inmo.micro_utils.repos.cache.cache.SimpleKVCache")) -typealias SimpleKVCache = dev.inmo.micro_utils.repos.cache.cache.SimpleKVCache diff --git a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/KeyValueMappers.kt b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/KeyValueMappers.kt index dfabde93e95..1afaeb8806f 100644 --- a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/KeyValueMappers.kt +++ b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/KeyValueMappers.kt @@ -5,8 +5,6 @@ import dev.inmo.micro_utils.repos.* import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map -@Deprecated("Renamed", ReplaceWith("MapperReadKeyValueRepo", "dev.inmo.micro_utils.repos.mappers.MapperReadKeyValueRepo")) -typealias MapperReadStandardKeyValueRepo = MapperReadKeyValueRepo open class MapperReadKeyValueRepo( private val to: ReadKeyValueRepo, mapper: MapperRepo @@ -75,8 +73,6 @@ inline fun mapper(keyFromToTo, valueFromToTo, keyToToFrom, valueToToFrom) ) -@Deprecated("Renamed", ReplaceWith("MapperWriteKeyValueRepo", "dev.inmo.micro_utils.repos.mappers.MapperWriteKeyValueRepo")) -typealias MapperWriteStandardKeyValueRepo = MapperWriteKeyValueRepo open class MapperWriteKeyValueRepo( private val to: WriteKeyValueRepo, mapper: MapperRepo @@ -120,8 +116,6 @@ inline fun mapper(keyFromToTo, valueFromToTo, keyToToFrom, valueToToFrom) ) -@Deprecated("Renamed", ReplaceWith("MapperKeyValueRepo", "dev.inmo.micro_utils.repos.mappers.MapperKeyValueRepo")) -typealias MapperStandardKeyValueRepo = MapperKeyValueRepo @Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") open class MapperKeyValueRepo( private val to: KeyValueRepo, diff --git a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/OneToManyKeyValueMappers.kt b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/OneToManyKeyValueMappers.kt index 809f7ae340c..93b165e4c58 100644 --- a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/OneToManyKeyValueMappers.kt +++ b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/OneToManyKeyValueMappers.kt @@ -5,8 +5,6 @@ import dev.inmo.micro_utils.repos.* import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map -@Deprecated("Renamed", ReplaceWith("MapperReadKeyValuesRepo", "dev.inmo.micro_utils.repos.mappers.MapperReadKeyValuesRepo")) -typealias MapperReadOneToManyKeyValueRepo = MapperReadKeyValuesRepo open class MapperReadKeyValuesRepo( private val to: ReadKeyValuesRepo, mapper: MapperRepo @@ -73,8 +71,6 @@ inline fun mapper(keyFromToTo, valueFromToTo, keyToToFrom, valueToToFrom) ) -@Deprecated("Renamed", ReplaceWith("MapperWriteKeyValuesRepo", "dev.inmo.micro_utils.repos.mappers.MapperWriteKeyValuesRepo")) -typealias MapperWriteOneToManyKeyValueRepo = MapperWriteKeyValuesRepo open class MapperWriteKeyValuesRepo( private val to: WriteKeyValuesRepo, mapper: MapperRepo @@ -126,8 +122,6 @@ inline fun mapper(keyFromToTo, valueFromToTo, keyToToFrom, valueToToFrom) ) -@Deprecated("Renamed", ReplaceWith("MapperKeyValuesRepo", "dev.inmo.micro_utils.repos.mappers.MapperKeyValuesRepo")) -typealias MapperOneToManyKeyValueRepo = MapperKeyValuesRepo @Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") open class MapperKeyValuesRepo( private val to: KeyValuesRepo, diff --git a/repos/common/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/FileKeyValueRepo.kt b/repos/common/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/FileKeyValueRepo.kt index c35376242d3..d753d1f9f32 100644 --- a/repos/common/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/FileKeyValueRepo.kt +++ b/repos/common/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/FileKeyValueRepo.kt @@ -13,9 +13,6 @@ import java.nio.file.StandardWatchEventKinds.* private inline val String.isAbsolute get() = startsWith(File.separator) -@Deprecated("Renamed", ReplaceWith("FileReadKeyValueRepo", "dev.inmo.micro_utils.repos.FileReadKeyValueRepo")) -typealias FileReadStandardKeyValueRepo = FileReadKeyValueRepo - class FileReadKeyValueRepo( private val folder: File ) : ReadKeyValueRepo { @@ -82,9 +79,6 @@ class FileReadKeyValueRepo( override suspend fun count(): Long = folder.list() ?.size ?.toLong() ?: 0L } -@Deprecated("Renamed", ReplaceWith("FileWriteKeyValueRepo", "dev.inmo.micro_utils.repos.FileWriteKeyValueRepo")) -typealias FileWriteStandardKeyValueRepo = FileWriteKeyValueRepo - /** * Files watching will not correctly works on Android with version of API lower than API 26 */ @@ -184,9 +178,6 @@ class FileWriteKeyValueRepo( } } -@Deprecated("Renamed", ReplaceWith("FileKeyValueRepo", "dev.inmo.micro_utils.repos.FileKeyValueRepo")) -typealias FileStandardKeyValueRepo = FileKeyValueRepo - @Warning("Files watching will not correctly works on Android Platform with version of API lower than API 26") @Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") class FileKeyValueRepo( diff --git a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/AbstractExposedWriteCRUDRepo.kt b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/AbstractExposedWriteCRUDRepo.kt index 1e2816e4a02..5b6588880b7 100644 --- a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/AbstractExposedWriteCRUDRepo.kt +++ b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/AbstractExposedWriteCRUDRepo.kt @@ -20,12 +20,6 @@ abstract class AbstractExposedWriteCRUDRepo( protected val _newObjectsFlow = MutableSharedFlow(replyCacheInFlows, flowsChannelsSize) protected val _updatedObjectsFlow = MutableSharedFlow(replyCacheInFlows, flowsChannelsSize) protected val _deletedObjectsIdsFlow = MutableSharedFlow(replyCacheInFlows, flowsChannelsSize) - @Deprecated("Renamed", ReplaceWith("_newObjectsFlow")) - protected val newObjectsChannel = _newObjectsFlow - @Deprecated("Renamed", ReplaceWith("_updatedObjectsFlow")) - protected val updateObjectsChannel = _updatedObjectsFlow - @Deprecated("Renamed", ReplaceWith("_deletedObjectsIdsFlow")) - protected val deleteObjectsIdsChannel = _deletedObjectsIdsFlow override val newObjectsFlow: Flow = _newObjectsFlow.asSharedFlow() override val updatedObjectsFlow: Flow = _updatedObjectsFlow.asSharedFlow() diff --git a/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValueRepo.kt b/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValueRepo.kt index 17c21d33379..46fe85be252 100644 --- a/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValueRepo.kt +++ b/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValueRepo.kt @@ -87,6 +87,7 @@ class WriteMapKeyValueRepo( } } +@Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") class MapKeyValueRepo( private val map: MutableMap = mutableMapOf() ) : KeyValueRepo, diff --git a/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValuesRepo.kt b/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValuesRepo.kt index 4ab0d3ee2a4..cfe8dff41e8 100644 --- a/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValuesRepo.kt +++ b/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValuesRepo.kt @@ -5,8 +5,6 @@ import dev.inmo.micro_utils.pagination.utils.paginate import dev.inmo.micro_utils.pagination.utils.reverse import kotlinx.coroutines.flow.* -@Deprecated("Renamed", ReplaceWith("MapReadKeyValuesRepo", "dev.inmo.micro_utils.repos.MapReadKeyValuesRepo")) -typealias MapReadOneToManyKeyValueRepo = MapReadKeyValuesRepo class MapReadKeyValuesRepo( private val map: Map> = emptyMap() ) : ReadKeyValuesRepo { @@ -55,8 +53,6 @@ class MapReadKeyValuesRepo( override suspend fun count(): Long = map.size.toLong() } -@Deprecated("Renamed", ReplaceWith("MapWriteKeyValuesRepo", "dev.inmo.micro_utils.repos.MapWriteKeyValuesRepo")) -typealias MapWriteOneToManyKeyValueRepo = MapWriteKeyValuesRepo class MapWriteKeyValuesRepo( private val map: MutableMap> = mutableMapOf() ) : WriteKeyValuesRepo { @@ -102,8 +98,7 @@ class MapWriteKeyValuesRepo( } } -@Deprecated("Renamed", ReplaceWith("MapKeyValuesRepo", "dev.inmo.micro_utils.repos.MapKeyValuesRepo")) -typealias MapOneToManyKeyValueRepo1 = MapKeyValuesRepo +@Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") class MapKeyValuesRepo( private val map: MutableMap> = mutableMapOf() ) : KeyValuesRepo, @@ -113,6 +108,3 @@ class MapKeyValuesRepo( fun MutableMap>.asKeyValuesRepo(): KeyValuesRepo = MapKeyValuesRepo( map { (k, v) -> k to v.toMutableList() }.toMap().toMutableMap() ) - -@Deprecated("Renamed", ReplaceWith("asKeyValuesRepo", "dev.inmo.micro_utils.repos.asKeyValuesRepo")) -fun MutableMap>.asOneToManyKeyValueRepo(): KeyValuesRepo = asKeyValuesRepo() diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/crud/KtorReadStandardCrudRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/crud/KtorReadStandardCrudRepo.kt deleted file mode 100644 index 877e16c1547..00000000000 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/crud/KtorReadStandardCrudRepo.kt +++ /dev/null @@ -1,65 +0,0 @@ -package dev.inmo.micro_utils.repos.ktor.client.crud - -import dev.inmo.micro_utils.ktor.client.* -import dev.inmo.micro_utils.ktor.common.* -import dev.inmo.micro_utils.pagination.* -import dev.inmo.micro_utils.repos.ReadCRUDRepo -import dev.inmo.micro_utils.repos.ktor.common.countRouting -import dev.inmo.micro_utils.repos.ktor.common.crud.* -import dev.inmo.micro_utils.repos.ktor.common.idParameterName -import io.ktor.client.HttpClient -import kotlinx.serialization.KSerializer -import kotlinx.serialization.builtins.serializer - -@Deprecated("Use KtorReadCRUDRepoClient instead") -class KtorReadStandardCrudRepo ( - private val baseUrl: String, - private val unifiedRequester: UnifiedRequester, - private val objectsSerializer: KSerializer, - private val objectsSerializerNullable: KSerializer, - private val idsSerializer: KSerializer -) : ReadCRUDRepo { - private val paginationResultSerializer = PaginationResult.serializer(objectsSerializer) - - constructor( - baseUrl: String, - client: HttpClient, - objectsSerializer: KSerializer, - objectsSerializerNullable: KSerializer, - idsSerializer: KSerializer, - serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat - ) : this ( - baseUrl, UnifiedRequester(client, serialFormat), objectsSerializer, objectsSerializerNullable, idsSerializer - ) - - override suspend fun getByPagination(pagination: Pagination): PaginationResult = unifiedRequester.uniget( - buildStandardUrl(baseUrl, getByPaginationRouting, pagination.asUrlQueryParts), - paginationResultSerializer - ) - - override suspend fun getById(id: IdType): ObjectType? = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - getByIdRouting, - idParameterName to unifiedRequester.encodeUrlQueryValue(idsSerializer, id) - ), - objectsSerializerNullable - ) - - override suspend fun contains(id: IdType): Boolean = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - containsRouting, - idParameterName to unifiedRequester.encodeUrlQueryValue(idsSerializer, id) - ), - Boolean.serializer() - ) - - override suspend fun count(): Long = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - countRouting - ), - Long.serializer() - ) -} diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/crud/KtorStandardCrudRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/crud/KtorStandardCrudRepo.kt deleted file mode 100644 index 2b3f7528df9..00000000000 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/crud/KtorStandardCrudRepo.kt +++ /dev/null @@ -1,47 +0,0 @@ -package dev.inmo.micro_utils.repos.ktor.client.crud - -import dev.inmo.micro_utils.ktor.client.UnifiedRequester -import dev.inmo.micro_utils.ktor.common.StandardKtorSerialFormat -import dev.inmo.micro_utils.ktor.common.standardKtorSerialFormat -import dev.inmo.micro_utils.repos.* -import io.ktor.client.HttpClient -import kotlinx.serialization.KSerializer - -@Deprecated("Use KtorCRUDRepoClient instead") -class KtorStandardCrudRepo ( - baseUrl: String, - baseSubpart: String, - unifiedRequester: UnifiedRequester, - objectsSerializer: KSerializer, - objectsNullableSerializer: KSerializer, - inputsSerializer: KSerializer, - idsSerializer: KSerializer -) : CRUDRepo, - ReadCRUDRepo by KtorReadStandardCrudRepo( - "$baseUrl/$baseSubpart", - unifiedRequester, - objectsSerializer, - objectsNullableSerializer, - idsSerializer - ), - WriteCRUDRepo by KtorWriteStandardCrudRepo( - "$baseUrl/$baseSubpart", - unifiedRequester, - objectsSerializer, - objectsNullableSerializer, - inputsSerializer, - idsSerializer - ) { - constructor( - baseUrl: String, - baseSubpart: String, - client: HttpClient, - objectsSerializer: KSerializer, - objectsNullableSerializer: KSerializer, - inputsSerializer: KSerializer, - idsSerializer: KSerializer, - serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat - ) : this( - baseUrl, baseSubpart, UnifiedRequester(client, serialFormat), objectsSerializer, objectsNullableSerializer, inputsSerializer, idsSerializer - ) -} diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/crud/KtorWriteStandardCrudRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/crud/KtorWriteStandardCrudRepo.kt deleted file mode 100644 index e4dddd8f7e0..00000000000 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/crud/KtorWriteStandardCrudRepo.kt +++ /dev/null @@ -1,80 +0,0 @@ -package dev.inmo.micro_utils.repos.ktor.client.crud - -import dev.inmo.micro_utils.ktor.client.* -import dev.inmo.micro_utils.ktor.common.* -import dev.inmo.micro_utils.repos.UpdatedValuePair -import dev.inmo.micro_utils.repos.WriteCRUDRepo -import dev.inmo.micro_utils.repos.ktor.common.crud.* -import io.ktor.client.HttpClient -import kotlinx.coroutines.flow.Flow -import kotlinx.serialization.KSerializer -import kotlinx.serialization.builtins.* - -@Deprecated("Use KtorWriteCRUDRepoClient instead") -class KtorWriteStandardCrudRepo ( - private val baseUrl: String, - private val unifiedRequester: UnifiedRequester, - private val objectsSerializer: KSerializer, - private val objectsNullableSerializer: KSerializer, - private val inputsSerializer: KSerializer, - private val idsSerializer: KSerializer -) : WriteCRUDRepo { - private val listObjectsSerializer = ListSerializer(objectsSerializer) - private val listInputSerializer = ListSerializer(inputsSerializer) - private val listIdsSerializer = ListSerializer(idsSerializer) - private val inputUpdateSerializer = PairSerializer( - idsSerializer, - inputsSerializer - ) - private val listInputUpdateSerializer = ListSerializer(inputUpdateSerializer) - - constructor( - baseUrl: String, - client: HttpClient, - objectsSerializer: KSerializer, - objectsSerializerNullable: KSerializer, - inputsSerializer: KSerializer, - idsSerializer: KSerializer, - serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat - ) : this ( - baseUrl, UnifiedRequester(client, serialFormat), objectsSerializer, objectsSerializerNullable, inputsSerializer, idsSerializer - ) - - override val newObjectsFlow: Flow = unifiedRequester.createStandardWebsocketFlow( - buildStandardUrl(baseUrl, newObjectsFlowRouting), - deserializer = objectsSerializer - ) - override val updatedObjectsFlow: Flow = unifiedRequester.createStandardWebsocketFlow( - buildStandardUrl(baseUrl, updatedObjectsFlowRouting), - deserializer = objectsSerializer - ) - override val deletedObjectsIdsFlow: Flow = unifiedRequester.createStandardWebsocketFlow( - buildStandardUrl(baseUrl, deletedObjectsIdsFlowRouting), - deserializer = idsSerializer - ) - - - override suspend fun create(values: List): List = unifiedRequester.unipost( - buildStandardUrl(baseUrl, createRouting), - Pair(listInputSerializer, values), - listObjectsSerializer - ) - - override suspend fun update(id: IdType, value: InputValue): ObjectType? = unifiedRequester.unipost( - buildStandardUrl(baseUrl, updateRouting), - Pair(inputUpdateSerializer, id to value), - objectsNullableSerializer - ) - - override suspend fun update(values: List>): List = unifiedRequester.unipost( - buildStandardUrl(baseUrl, updateManyRouting), - Pair(listInputUpdateSerializer, values), - listObjectsSerializer - ) - - override suspend fun deleteById(ids: List) = unifiedRequester.unipost( - buildStandardUrl(baseUrl, deleteByIdRouting), - Pair(listIdsSerializer, ids), - Unit.serializer() - ) -} diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadStandardKeyValueRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadStandardKeyValueRepo.kt deleted file mode 100644 index cf9500652e1..00000000000 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadStandardKeyValueRepo.kt +++ /dev/null @@ -1,99 +0,0 @@ -package dev.inmo.micro_utils.repos.ktor.client.key_value - -import dev.inmo.micro_utils.ktor.client.* -import dev.inmo.micro_utils.ktor.common.* -import dev.inmo.micro_utils.pagination.* -import dev.inmo.micro_utils.repos.ReadKeyValueRepo -import dev.inmo.micro_utils.repos.ktor.common.* -import dev.inmo.micro_utils.repos.ktor.common.containsRoute -import dev.inmo.micro_utils.repos.ktor.common.countRoute -import dev.inmo.micro_utils.repos.ktor.common.key_value.* -import dev.inmo.micro_utils.repos.ktor.common.key_value.keyParameterName -import dev.inmo.micro_utils.repos.ktor.common.key_value.reversedParameterName -import io.ktor.client.HttpClient -import kotlinx.serialization.* -import kotlinx.serialization.builtins.serializer - -@Deprecated("Replaced with KtorReadKeyValueRepoClient") -class KtorReadStandardKeyValueRepo ( - private val baseUrl: String, - private val unifiedRequester: UnifiedRequester, - private val keySerializer: KSerializer, - private val valueSerializer: KSerializer, - private val valueNullableSerializer: KSerializer -) : ReadKeyValueRepo { - constructor( - baseUrl: String, - client: HttpClient, - keySerializer: KSerializer, - valueSerializer: KSerializer, - valueNullableSerializer: KSerializer, - serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat - ) : this ( - baseUrl, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer, valueNullableSerializer - ) - - override suspend fun get(k: Key): Value? = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - getRoute, - mapOf( - keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, k) - ) - ), - valueNullableSerializer - ) - - override suspend fun values(pagination: Pagination, reversed: Boolean): PaginationResult = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - valuesRoute, - mapOf( - reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) - ) + pagination.asUrlQueryParts - ), - PaginationResult.serializer(valueSerializer) - ) - - override suspend fun keys(pagination: Pagination, reversed: Boolean): PaginationResult = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - keysRoute, - mapOf( - reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) - ) + pagination.asUrlQueryParts - ), - PaginationResult.serializer(keySerializer) - ) - - override suspend fun keys(v: Value, pagination: Pagination, reversed: Boolean): PaginationResult = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - keysRoute, - mapOf( - valueParameterName to unifiedRequester.encodeUrlQueryValue(valueSerializer, v), - reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) - ) + pagination.asUrlQueryParts - ), - PaginationResult.serializer(keySerializer) - ) - - override suspend fun contains(key: Key): Boolean = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - containsRoute, - mapOf( - keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, key) - ), - ), - Boolean.serializer(), - ) - - override suspend fun count(): Long = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - countRoute, - ), - Long.serializer() - ) -} diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorStandartKeyValueRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorStandartKeyValueRepo.kt deleted file mode 100644 index 2ce6b5d6b1e..00000000000 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorStandartKeyValueRepo.kt +++ /dev/null @@ -1,42 +0,0 @@ -package dev.inmo.micro_utils.repos.ktor.client.key_value - -import dev.inmo.micro_utils.ktor.client.UnifiedRequester -import dev.inmo.micro_utils.ktor.common.StandardKtorSerialFormat -import dev.inmo.micro_utils.ktor.common.standardKtorSerialFormat -import dev.inmo.micro_utils.repos.* -import io.ktor.client.HttpClient -import kotlinx.serialization.* - -@Deprecated("Replaced with KtorKeyValueRepoClient") -@Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") -class KtorStandartKeyValueRepo ( - baseUrl: String, - baseSubpart: String, - unifiedRequester: UnifiedRequester, - keySerializer: KSerializer, - valueSerializer: KSerializer, - valueNullableSerializer: KSerializer -) : KeyValueRepo, - ReadKeyValueRepo by KtorReadStandardKeyValueRepo( - "$baseUrl/$baseSubpart", - unifiedRequester, - keySerializer, - valueSerializer, - valueNullableSerializer - ), - WriteKeyValueRepo by KtorWriteStandardKeyValueRepo( - "$baseUrl/$baseSubpart", - unifiedRequester, - keySerializer, - valueSerializer - ) { - constructor( - baseUrl: String, - baseSubpart: String, - client: HttpClient = HttpClient(), - keySerializer: KSerializer, - valueSerializer: KSerializer, - valueNullableSerializer: KSerializer, - serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat - ) : this(baseUrl, baseSubpart, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer, valueNullableSerializer) -} diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteStandardKeyValueRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteStandardKeyValueRepo.kt deleted file mode 100644 index 9ebf015600e..00000000000 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteStandardKeyValueRepo.kt +++ /dev/null @@ -1,69 +0,0 @@ -package dev.inmo.micro_utils.repos.ktor.client.key_value - -import dev.inmo.micro_utils.ktor.client.* -import dev.inmo.micro_utils.ktor.common.* -import dev.inmo.micro_utils.repos.WriteKeyValueRepo -import dev.inmo.micro_utils.repos.ktor.common.key_value.* -import io.ktor.client.HttpClient -import kotlinx.coroutines.flow.Flow -import kotlinx.serialization.KSerializer -import kotlinx.serialization.builtins.* - -@Deprecated("Replaced with KtorWriteKeyValueRepoClient") -class KtorWriteStandardKeyValueRepo ( - private var baseUrl: String, - private var unifiedRequester: UnifiedRequester, - private var keySerializer: KSerializer, - private var valueSerializer: KSerializer, -) : WriteKeyValueRepo { - private val keyValueMapSerializer = MapSerializer(keySerializer, valueSerializer) - private val keysListSerializer = ListSerializer(keySerializer) - private val valuesListSerializer = ListSerializer(valueSerializer) - - constructor( - baseUrl: String, - client: HttpClient, - keySerializer: KSerializer, - valueSerializer: KSerializer, - serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat - ) : this ( - baseUrl, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer - ) - - override val onNewValue: Flow> = unifiedRequester.createStandardWebsocketFlow( - buildStandardUrl(baseUrl, onNewValueRoute), - deserializer = PairSerializer(keySerializer, valueSerializer) - ) - - override val onValueRemoved: Flow = unifiedRequester.createStandardWebsocketFlow( - buildStandardUrl(baseUrl, onValueRemovedRoute), - deserializer = keySerializer - ) - - override suspend fun set(toSet: Map) = unifiedRequester.unipost( - buildStandardUrl( - baseUrl, - setRoute - ), - Pair(keyValueMapSerializer, toSet), - Unit.serializer() - ) - - override suspend fun unset(toUnset: List) = unifiedRequester.unipost( - buildStandardUrl( - baseUrl, - unsetRoute, - ), - Pair(keysListSerializer, toUnset), - Unit.serializer() - ) - - override suspend fun unsetWithValues(toUnset: List) = unifiedRequester.unipost( - buildStandardUrl( - baseUrl, - unsetWithValuesRoute, - ), - Pair(valuesListSerializer, toUnset), - Unit.serializer() - ) -} diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/one_to_many/KtorOneToManyKeyValueRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/one_to_many/KtorOneToManyKeyValueRepo.kt deleted file mode 100644 index 5bf8155d36d..00000000000 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/one_to_many/KtorOneToManyKeyValueRepo.kt +++ /dev/null @@ -1,38 +0,0 @@ -package dev.inmo.micro_utils.repos.ktor.client.one_to_many - -import dev.inmo.micro_utils.ktor.client.UnifiedRequester -import dev.inmo.micro_utils.ktor.common.StandardKtorSerialFormat -import dev.inmo.micro_utils.ktor.common.standardKtorSerialFormat -import dev.inmo.micro_utils.repos.* -import io.ktor.client.HttpClient -import kotlinx.serialization.KSerializer - -@Deprecated("Should be replaced with KtorKeyValuesRepoClient") -class KtorOneToManyKeyValueRepo( - baseUrl: String, - baseSubpart: String, - unifiedRequester: UnifiedRequester, - keySerializer: KSerializer, - valueSerializer: KSerializer, -) : KeyValuesRepo, - ReadKeyValuesRepo by KtorReadOneToManyKeyValueRepo ( - "$baseUrl/$baseSubpart", - unifiedRequester, - keySerializer, - valueSerializer, - ), - WriteKeyValuesRepo by KtorWriteOneToManyKeyValueRepo ( - "$baseUrl/$baseSubpart", - unifiedRequester, - keySerializer, - valueSerializer, - ) { - constructor( - baseUrl: String, - baseSubpart: String, - client: HttpClient, - keySerializer: KSerializer, - valueSerializer: KSerializer, - serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat - ) : this (baseUrl, baseSubpart, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer) -} diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/one_to_many/KtorReadOneToManyKeyValueRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/one_to_many/KtorReadOneToManyKeyValueRepo.kt deleted file mode 100644 index 6a91a21a208..00000000000 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/one_to_many/KtorReadOneToManyKeyValueRepo.kt +++ /dev/null @@ -1,108 +0,0 @@ -package dev.inmo.micro_utils.repos.ktor.client.one_to_many - -import dev.inmo.micro_utils.ktor.client.* -import dev.inmo.micro_utils.ktor.common.* -import dev.inmo.micro_utils.pagination.* -import dev.inmo.micro_utils.repos.ReadKeyValuesRepo -import dev.inmo.micro_utils.repos.ktor.common.keyParameterName -import dev.inmo.micro_utils.repos.ktor.common.one_to_many.* -import dev.inmo.micro_utils.repos.ktor.common.reversedParameterName -import dev.inmo.micro_utils.repos.ktor.common.valueParameterName -import io.ktor.client.HttpClient -import kotlinx.serialization.KSerializer -import kotlinx.serialization.builtins.serializer - -@Deprecated("Should be replaced with KtorReadKeyValuesRepoClient") -class KtorReadOneToManyKeyValueRepo ( - private val baseUrl: String, - private val unifiedRequester: UnifiedRequester, - private val keySerializer: KSerializer, - private val valueSerializer: KSerializer -) : ReadKeyValuesRepo { - private val paginationValueResultSerializer = PaginationResult.serializer(valueSerializer) - private val paginationKeyResultSerializer = PaginationResult.serializer(keySerializer) - - constructor( - baseUrl: String, - client: HttpClient, - keySerializer: KSerializer, - valueSerializer: KSerializer, - serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat - ) : this (baseUrl, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer) - - override suspend fun get(k: Key, pagination: Pagination, reversed: Boolean): PaginationResult = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - getRoute, - mapOf( - keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, k), - reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) - ) + pagination.asUrlQueryParts - ), - paginationValueResultSerializer - ) - - override suspend fun keys(pagination: Pagination, reversed: Boolean): PaginationResult = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - keysRoute, - mapOf( - reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) - ) + pagination.asUrlQueryParts - ), - paginationKeyResultSerializer - ) - - override suspend fun keys(v: Value, pagination: Pagination, reversed: Boolean): PaginationResult = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - keysRoute, - mapOf( - valueParameterName to unifiedRequester.encodeUrlQueryValue(valueSerializer, v), - reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) - ) + pagination.asUrlQueryParts - ), - paginationKeyResultSerializer - ) - - override suspend fun contains(k: Key): Boolean = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - containsByKeyRoute, - mapOf(keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, k)) - ), - Boolean.serializer() - ) - - override suspend fun contains(k: Key, v: Value): Boolean = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - containsByKeyValueRoute, - mapOf( - keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, k), - valueParameterName to unifiedRequester.encodeUrlQueryValue(valueSerializer, v), - ) - ), - Boolean.serializer() - ) - - override suspend fun count(k: Key): Long = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - countByKeyRoute, - mapOf( - keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, k) - ) - ), - Long.serializer() - ) - - override suspend fun count(): Long = unifiedRequester.uniget( - buildStandardUrl( - baseUrl, - countRoute, - ), - Long.serializer() - ) - -} diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/one_to_many/KtorWriteOneToManyKeyValueRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/one_to_many/KtorWriteOneToManyKeyValueRepo.kt deleted file mode 100644 index 6a9670b345c..00000000000 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/one_to_many/KtorWriteOneToManyKeyValueRepo.kt +++ /dev/null @@ -1,88 +0,0 @@ -package dev.inmo.micro_utils.repos.ktor.client.one_to_many - -import dev.inmo.micro_utils.ktor.client.* -import dev.inmo.micro_utils.ktor.common.* -import dev.inmo.micro_utils.repos.WriteKeyValuesRepo -import dev.inmo.micro_utils.repos.ktor.common.one_to_many.* -import io.ktor.client.HttpClient -import kotlinx.coroutines.flow.Flow -import kotlinx.serialization.KSerializer -import kotlinx.serialization.builtins.* - -@Deprecated("Should be replaced with KtorWriteKeyValuesRepoClient") -class KtorWriteOneToManyKeyValueRepo ( - private val baseUrl: String, - private val unifiedRequester: UnifiedRequester, - private val keySerializer: KSerializer, - private val valueSerializer: KSerializer -) : WriteKeyValuesRepo { - private val keyValueSerializer = PairSerializer(keySerializer, valueSerializer) - private val keyValueMapSerializer = MapSerializer(keySerializer, ListSerializer(valueSerializer)) - - constructor( - baseUrl: String, - client: HttpClient, - keySerializer: KSerializer, - valueSerializer: KSerializer, - serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat - ) : this ( - baseUrl, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer - ) - - override val onNewValue: Flow> = unifiedRequester.createStandardWebsocketFlow( - buildStandardUrl(baseUrl, onNewValueRoute), - deserializer = keyValueSerializer - ) - override val onValueRemoved: Flow> = unifiedRequester.createStandardWebsocketFlow( - buildStandardUrl(baseUrl, onValueRemovedRoute), - deserializer = keyValueSerializer - ) - override val onDataCleared: Flow = unifiedRequester.createStandardWebsocketFlow( - buildStandardUrl(baseUrl, onDataClearedRoute), - deserializer = keySerializer - ) - - override suspend fun remove(toRemove: Map>) = unifiedRequester.unipost( - buildStandardUrl( - baseUrl, - removeRoute, - ), - Pair(keyValueMapSerializer, toRemove), - Unit.serializer(), - ) - - override suspend fun add(toAdd: Map>) = unifiedRequester.unipost( - buildStandardUrl( - baseUrl, - addRoute, - ), - Pair(keyValueMapSerializer, toAdd), - Unit.serializer(), - ) - override suspend fun clear(k: Key) = unifiedRequester.unipost( - buildStandardUrl( - baseUrl, - clearRoute, - ), - Pair(keySerializer, k), - Unit.serializer(), - ) - - override suspend fun clearWithValue(v: Value) = unifiedRequester.unipost( - buildStandardUrl( - baseUrl, - clearWithValueRoute, - ), - Pair(valueSerializer, v), - Unit.serializer(), - ) - - override suspend fun set(toSet: Map>) = unifiedRequester.unipost( - buildStandardUrl( - baseUrl, - setRoute, - ), - Pair(keyValueMapSerializer, toSet), - Unit.serializer(), - ) -}