Catalog

[versions]
#Java
java = "17"

#Kotlin
kotlin = "1.8.21"
ksp = "1.8.21-1.0.11"
kover = "0.6.1"
dokka = "1.8.20"

#Android
androidGradlePlugin = "8.1.1"
buildTools = "31.0.0"
minSdk = "21"
compileSdk = "31"
targetSdk = "31"

#Others
ktor = "2.1.3"
sqldelight = "1.5.5"
sqlJs = "1.8.0"
js-joda-core = "3.2.0"
coroutines = "1.6.4"
datetime = "0.4.0"
serializationJson = "1.5.1"
buildkonfig = "0.13.3"
okhttp = "4.10.0"
napier = "2.6.1"
multiplatformSettings = "1.0.0-RC"

#Telereso
teleresoCore = "0.0.33"
teleresoKmp = "0.0.32"

#Test
test-logger = "3.2.0"
kotest = "5.6.2"
turbine = "0.12.1"

[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" }

#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" }