[versions]
#Java
java = "17"
#Kotlin
kotlin = "1.9.10"
ksp = "1.9.10-1.0.13"
kover = "0.7.4"
dokka = "1.9.0"
#Android
androidGradlePlugin = "8.1.2"
buildTools = "31.0.0"
minSdk = "21"
compileSdk = "34"
targetSdk = "34"
androidx-lifecycle = "2.6.2"
androidx-core = "1.12.0"
#iOS
test-iphone-device = "iPhone 15 Pro"
#Others
ktor = "2.3.5"
sqldelight = "1.5.5"
sqlJs = "1.8.0"
js-joda-core = "3.2.0"
coroutines = "1.7.3"
datetime = "0.4.0"
serializationJson = "1.5.1"
buildkonfig = "0.13.3"
okhttp = "4.10.0"
napier = "2.6.1"
multiplatformSettings = "1.1.0"
#Telereso
teleresoCore = "0.0.43"
teleresoKmp = "0.0.36"
#Test
test-logger = "3.2.0"
kotest = "5.6.2"
turbine = "1.0.0"
[libraries]
ksp = { group = "com.google.devtools.ksp", name = "com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" }
telereso-core = { group = "io.telereso.kmp", name = "core", version.ref = "teleresoCore" }
telereso-core-android = { group = "io.telereso.kmp", name = "core-android", version.ref = "teleresoCore" }
telereso-core-jvm = { group = "io.telereso.kmp", name = "core-jvm", version.ref = "teleresoCore" }
#Andorid
androidx-core = { group = "androidx.core", name = "core", version.ref = "androidx-core" }
androidx-lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "androidx-lifecycle" }
#Ktor
ktor-client-core = { group = "io.ktor", name = "ktor-client-core", version.ref = "ktor" }
ktor-client-auth = { group = "io.ktor", name = "ktor-client-auth", version.ref = "ktor" }
ktor-client-logging = { group = "io.ktor", name = "ktor-client-logging", version.ref = "ktor" }
ktor-client-content-negotiation = { group = "io.ktor", name = "ktor-client-content-negotiation", version.ref = "ktor" }
ktor-serialization-kotlinx-json = { group = "io.ktor", name = "ktor-serialization-kotlinx-json", version.ref = "ktor" }
ktor-client-darwin = { group = "io.ktor", name = "ktor-client-darwin", version.ref = "ktor" }
ktor-client-js = { group = "io.ktor", name = "ktor-client-js", version.ref = "ktor" }
ktor-client-okhttp = { group = "io.ktor", name = "ktor-client-okhttp", version.ref = "ktor" }
test-ktor-client-mock = { group = "io.ktor", name = "ktor-client-mock", version.ref = "ktor" }
#okhttp
okhttp-logging = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp" }
#SqlDelight
sqldelight-runtime = { group = "com.squareup.sqldelight", name = "runtime", version.ref = "sqldelight" }
sqldelight-coroutines-extensions = { group = "com.squareup.sqldelight", name = "coroutines-extensions", version.ref = "sqldelight" }
sqldelight-android-driver = { group = "com.squareup.sqldelight", name = "android-driver", version.ref = "sqldelight" }
sqldelight-native-driver = { group = "com.squareup.sqldelight", name = "native-driver", version.ref = "sqldelight" }
sqldelight-runtime-jvm = { group = "com.squareup.sqldelight", name = "runtime-jvm", version.ref = "sqldelight" }
sqldelight-sqljs-driver = { group = "com.squareup.sqldelight", name = "sqljs-driver", version.ref = "sqldelight" }
sqldelight-sqlite-driver = { group = "com.squareup.sqldelight", name = "sqlite-driver", version.ref = "sqldelight" }
kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "coroutines" }
test-kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "coroutines" }
kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "datetime" }
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "serializationJson" }
napier = { group = "io.github.aakira", name = "napier", version.ref = "napier" }
multiplatform-settings = { group = "com.russhwolf", name = "multiplatform-settings-no-arg", version.ref = "multiplatformSettings" }
#Test
test-kotest-framework-engine = { group = "io.kotest", name = "kotest-framework-engine", version.ref = "kotest" }
test-kotest-assertions-core = { group = "io.kotest", name = "kotest-assertions-core", version.ref = "kotest" }
test-multiplatform-settings-test = { group = "com.russhwolf", name = "multiplatform-settings-test", version.ref = "multiplatformSettings" }
test-turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine" }
[bundles]
ktor = [
"ktor-client-core",
"ktor-client-auth",
"ktor-client-content-negotiation",
"ktor-serialization-kotlinx-json",
"ktor-client-logging",
]
sqldelight = ["sqldelight-runtime", "sqldelight-coroutines-extensions"]
kotlinx = ["kotlinx-coroutines-core", "kotlinx-datetime", "kotlinx-serialization-json"]
#Test
test-kotest = ["test-kotest-framework-engine", "test-kotest-assertions-core"]
[plugins]
#Android
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" }
#Kotlin
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
kotlin-native-cocoapods = { id = "org.jetbrains.kotlin.native.cocoapods", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
kotlinx-kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
#Telreso
telereso-kmp = { id = "io.telereso.kmp", version.ref = "teleresoKmp" }
#Others
sqldelight = { id = "com.squareup.sqldelight", version.ref = "sqldelight" }
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
buildkonfig = { id = "com.codingfeline.buildkonfig", version.ref = "buildkonfig" }
#Test
test-logger = { id = "com.adarshr.test-logger", version.ref = "test-logger" }