Compare commits

...

23 Commits

Author SHA1 Message Date
7090566041 fill changelog 2023-10-09 13:58:17 +06:00
f0d5035cd0 update dependencies 2023-10-09 13:53:44 +06:00
0fb9b8dc30 update compose version 2023-09-27 17:59:09 +06:00
eef6e81134 Update libs.versions.toml 2023-09-26 01:28:36 +06:00
1593159a3f Update libs.versions.toml 2023-09-26 01:27:20 +06:00
3da9eb9dbe temporal update 2023-09-22 14:14:23 +06:00
f17613f3fb update dependencies 2023-09-12 14:11:12 +06:00
14337ccb46 start 0.20.7 2023-09-10 17:09:08 +06:00
1a3913b09c Merge pull request #311 from InsanusMokrassar/0.20.6
0.20.6
2023-09-08 04:20:58 +06:00
039aed2747 improvements in ExposedReadKeyValuesRepo 2023-09-08 02:59:53 +06:00
173991e3cb start 0.20.6 2023-09-08 02:55:25 +06:00
8b3f8cab01 Merge pull request #310 from InsanusMokrassar/0.20.5
0.20.5
2023-09-07 20:09:58 +06:00
2a20d24589 fixes in SmartRWLocker 2023-09-07 16:57:59 +06:00
53c2d552ec start 0.20.5 2023-09-07 16:57:08 +06:00
af11c1a83d Merge pull request #307 from InsanusMokrassar/0.20.4
0.20.4
2023-09-06 19:17:17 +06:00
a65cf1481c fixes in build 2023-09-06 19:15:09 +06:00
0318716236 update kslog version 2023-09-06 19:08:32 +06:00
88eb4b3342 update dependencies 2023-09-06 18:58:10 +06:00
4810d1ef6a start 0.20.4 2023-09-06 18:55:48 +06:00
f2a9514d89 Merge pull request #306 from InsanusMokrassar/renovate/jb.dokka
Update dependency org.jetbrains.dokka:dokka-gradle-plugin to v1.9.0
2023-09-02 04:15:10 +06:00
925ba6ac24 Update build.gradle 2023-09-02 04:04:04 +06:00
renovate[bot]
ef407268a2 Update dependency org.jetbrains.dokka:dokka-gradle-plugin to v1.9.0 2023-09-01 21:04:25 +00:00
cd6c4bbe38 Merge pull request #304 from InsanusMokrassar/0.20.3
0.20.3
2023-09-02 03:03:57 +06:00
49 changed files with 128 additions and 60 deletions

View File

@@ -1,5 +1,38 @@
# Changelog
## 0.20.7
**THIS VERSION CONTAINS UPDATES OF DEPENDENCIES UP TO BETA VERSIONS. USE WITH CAUTION**
* `Versions`:
* `Kotlin`: `1.9.10` -> `1.9.20-Beta2`
* `Compose`: `1.5.1` -> `1.5.10-beta02`
* `Exposed`: `0.43.0` -> `0.44.0`
* `Ktor`: `2.3.4` -> `2.3.5`
* `Koin`: `3.4.3` -> `3.5.0`
* `Okio`: `3.5.0` -> `3.6.0`
* `Android Core`: `1.10.1` -> `1.12.0`
* `Android Compose Material`: `1.1.1` -> `1.1.2`
## 0.20.6
* `Repos`:
* `Exposed`
* Fixes in exposed key-values repos
## 0.20.5
* `Coroutines`:
* Fixes in `SmartRWLocker`
## 0.20.4
* `Versions`:
* `Kotlin`: `1.9.0` -> `1.9.10`
* `KSLog`: `1.2.0` -> `1.2.1`
* `Compose`: `1.5.0` -> `1.5.1`
* `UUID`: `0.8.0` -> `0.8.1`
## 0.20.3
* `Versions`:

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.android.alerts.common"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.android.alerts.recyclerview"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.android.pickers"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.android.recyclerview"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.android.smalltextfield"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.common.compose"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.common"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.coroutines.compose"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.coroutines"/>
<manifest/>

View File

@@ -37,8 +37,8 @@ class SmartRWLocker(private val readPermits: Int = Int.MAX_VALUE, writeIsLocked:
* Locking [writeMutex] and wait while all [readSemaphore] permits will be freed
*/
suspend fun lockWrite() {
_readSemaphore.acquire(readPermits)
_writeMutex.lock()
_readSemaphore.acquire(readPermits)
}
/**

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.crypto"/>
<manifest/>

View File

@@ -9,6 +9,7 @@ android {
targetSdkVersion libs.versions.android.props.compileSdk.get().toInteger()
versionCode "${android_code_version}".toInteger()
versionName "$version"
namespace "${project.group}.${project.name}"
}
buildTypes {
release {

View File

@@ -106,7 +106,7 @@ tasks.dokkaHtml {
skipDeprecated.set(true)
sourceLink {
localDirectory.set(file("./"))
localDirectory.set(file("../"))
remoteUrl.set(new URL("https://github.com/InsanusMokrassar/MicroUtils/blob/master/"))
remoteLineSuffix.set("#L")
}

View File

@@ -1 +1 @@
<manifest package="dev.inmo.dokka"/>
<manifest/>

View File

@@ -19,6 +19,12 @@ allprojects {
}
releaseMode = (project.hasProperty('RELEASE_MODE') && project.property('RELEASE_MODE') == "true") || System.getenv('RELEASE_MODE') == "true"
// String compilerPluginVersionFromProperties = (String) project.properties["compose.kotlinCompilerPluginVersion"]
// String compilerPluginVersionFromLibrariesVersions = libs.versions.compose.kotlin.get()
// composePluginKotlinVersion = compilerPluginVersionFromProperties
// if (compilerPluginVersionFromProperties == null) {
// composePluginKotlinVersion = compilerPluginVersionFromLibrariesVersions
// }
mppProjectWithSerializationPresetPath = "${rootProject.projectDir.absolutePath}/mppProjectWithSerialization.gradle"
mppProjectWithSerializationAndComposePresetPath = "${rootProject.projectDir.absolutePath}/mppProjectWithSerializationAndCompose.gradle"

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.fsm.common"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.fsm.repos.common"/>
<manifest/>

View File

@@ -6,7 +6,7 @@ kotlin.incremental.js=true
#kotlin.experimental.tryK2=true
android.useAndroidX=true
android.enableJetifier=true
org.gradle.jvmargs=-Xmx2g
org.gradle.jvmargs=-Xmx2500m
# JS NPM
@@ -15,5 +15,5 @@ crypto_js_version=4.1.1
# Project data
group=dev.inmo
version=0.20.3
android_code_version=209
version=0.20.7
android_code_version=213

View File

@@ -1,41 +1,42 @@
[versions]
kt = "1.9.0"
kt = "1.9.20-Beta2"
#compose-kotlin = "1.5.10-beta02"
kt-serialization = "1.6.0"
kt-coroutines = "1.7.3"
kslog = "1.2.0"
kslog = "1.2.1"
jb-compose = "1.5.0"
jb-exposed = "0.43.0"
jb-dokka = "1.8.20"
jb-compose = "1.5.10-beta02"
jb-exposed = "0.44.0"
jb-dokka = "1.9.0"
korlibs = "4.0.10"
uuid = "0.8.0"
uuid = "0.8.1"
ktor = "2.3.4"
ktor = "2.3.5"
gh-release = "2.4.1"
koin = "3.4.3"
koin = "3.5.0"
okio = "3.5.0"
okio = "3.6.0"
ksp = "1.9.0-1.0.13"
ksp = "1.9.20-Beta2-1.0.13"
kotlin-poet = "1.14.2"
versions = "0.47.0"
versions = "0.49.0"
android-gradle = "7.4.2"
dexcount = "4.0.0"
android-coreKtx = "1.10.1"
android-coreKtx = "1.12.0"
android-recyclerView = "1.3.1"
android-appCompat = "1.6.1"
android-fragment = "1.6.1"
android-espresso = "3.5.1"
android-test = "1.1.5"
android-compose-material3 = "1.1.1"
android-compose-material3 = "1.1.2"
android-props-minSdk = "21"
android-props-compileSdk = "34"

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.koin.generator.test"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.koin"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.ktor.client"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.ktor.common"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.language_codes"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.matrix"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.mime_types"/>
<manifest/>

View File

@@ -4,7 +4,7 @@ project.group = "$group"
apply from: "$publishGradlePath"
kotlin {
android {
androidTarget {
publishAllLibraryVariants()
}

View File

@@ -15,7 +15,7 @@ kotlin {
browser()
nodejs()
}
android {
androidTarget {
publishAllLibraryVariants()
}
linuxX64()

View File

@@ -15,7 +15,7 @@ kotlin {
browser()
nodejs()
}
android {
androidTarget {
publishAllLibraryVariants()
}
@@ -73,3 +73,10 @@ java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
//compose {
// if (composePluginKotlinVersion != null && !composePluginKotlinVersion.isEmpty()) {
// kotlinCompilerPlugin.set(composePluginKotlinVersion)
// }
//}

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.pagination.common"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.pagination.ktor.common"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.repos.cache"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.repos.common"/>
<manifest/>

View File

@@ -1,12 +1,10 @@
package dev.inmo.micro_utils.repos.exposed.onetomany
import dev.inmo.micro_utils.pagination.*
import dev.inmo.micro_utils.repos.ReadKeyValueRepo
import dev.inmo.micro_utils.repos.ReadKeyValuesRepo
import dev.inmo.micro_utils.repos.exposed.*
import dev.inmo.micro_utils.repos.exposed.utils.selectPaginated
import org.jetbrains.exposed.sql.*
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
import org.jetbrains.exposed.sql.transactions.transaction
abstract class AbstractExposedReadKeyValuesRepo<Key, Value>(
@@ -73,4 +71,26 @@ abstract class AbstractExposedReadKeyValuesRepo<Key, Value>(
override suspend fun contains(k: Key, v: Value): Boolean = transaction(database) {
select { selectById(k).and(selectByValue(v)) }.limit(1).any()
}
override suspend fun getAll(reverseLists: Boolean): Map<Key, List<Value>> = transaction(database) {
val query = if (reverseLists) {
selectAll().orderBy(keyColumn, SortOrder.DESC)
} else {
selectAll()
}
query.asSequence().map { it.asKey to it.asObject }.groupBy { it.first }.mapValues {
it.value.map { it.second }
}
}
override suspend fun getAll(k: Key, reverseLists: Boolean): List<Value> = transaction(database) {
val query = if (reverseLists) {
select { selectById(k) }.orderBy(keyColumn, SortOrder.DESC)
} else {
select { selectById(k) }
}
query.map {
it.asObject
}
}
}

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.repos.generator.test"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.repos.inmemory"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.repos.ktor.client"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.repos.ktor.common"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.safe_wrapper"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.selector"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.serialization.base64"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.serialization.encapsulator"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.serialization.mapper"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="dev.inmo.micro_utils.serialization.typed_serializer"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="group_name.module_name.client"/>
<manifest/>

View File

@@ -1 +1 @@
<manifest package="group_name.module_name.common"/>
<manifest/>