[versions]
# catalog
catalog = "1.9"
#Java
java = "17"
#Kotlin
kotlin = "2.0.20"
ksp = "2.0.20-1.0.24"
kover = "0.7.4"
dokka = "1.9.10"
detekt = "1.23.5"
#Compose
compose = "1.6.11"
compose-navigation = "2.7.0-alpha07"
coil3 = "3.0.0-rc01"
compose-webview = "1.9.20"
#Android
agp = "8.2.2"
buildTools = "31.0.0"
minSdk = "21"
compileSdk = "34"
targetSdk = "34"
androidx-lifecycle = "2.8.0"
androidx-activity-compose = "1.9.2"
androidx-core = "1.12.0"
#iOS
test-iphone-device = "iPhone 15 Pro"
#Others
ktor = "3.0.0"
sqldelight = "2.0.2"
sqlJs = "1.8.0"
js-joda-core = "3.2.0"
coroutines = "1.9.0"
datetime = "0.5.0"
serializationJson = "1.6.2"
buildkonfig = "0.15.1"
okhttp = "4.10.0"
napier = "2.7.1"
multiplatformSettings = "1.2.0"
#Telereso
teleresoCore = "0.4.0"
teleresoKmp = "0.2.1"
#Test
test-logger = "3.2.0"
kotest = "5.9.1"
turbine = "1.1.0"
mockk = "1.13.12"
copy-webpack-plugin = "9.1.0"
[libraries]
kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" }
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-ui = { group = "io.telereso.kmp", name = "core-ui", 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" }
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "androidx-activity-compose" }
androidx-lifecycle-viewmodel = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel", 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" }
ktor-client-cio = { group = "io.ktor", name = "ktor-client-cio", version.ref = "ktor" }
ktor-utils = { group = "io.ktor", name = "ktor-utils", version.ref = "ktor" }
ktor-server-swagger = { module = "io.ktor:ktor-server-swagger", 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 = "app.cash.sqldelight", name = "runtime", version.ref = "sqldelight" }
sqldelight-coroutines-extensions = { group = "app.cash.sqldelight", name = "coroutines-extensions", version.ref = "sqldelight" }
sqldelight-android-driver = { group = "app.cash.sqldelight", name = "android-driver", version.ref = "sqldelight" }
sqldelight-native-driver = { group = "app.cash.sqldelight", name = "native-driver", version.ref = "sqldelight" }
sqldelight-runtime-jvm = { group = "app.cash.sqldelight", name = "runtime-jvm", version.ref = "sqldelight" }
sqldelight-web-worker-driver = { group = "app.cash.sqldelight", name = "web-worker-driver", version.ref = "sqldelight" }
sqldelight-sqlite-driver = { group = "app.cash.sqldelight", name = "sqlite-driver", version.ref = "sqldelight" }
kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "coroutines" }
kotlinx-coroutines-swing = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-swing", 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" }
multiplatform-settings-coroutines = { group = "com.russhwolf", name = "multiplatform-settings-coroutines", version.ref = "multiplatformSettings" }
#Compose
compose-navigation = { group = "org.jetbrains.androidx.navigation", name = "navigation-compose", version.ref = "compose-navigation" }
coil3-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil3" }
coil3-compose-core = { module = "io.coil-kt.coil3:coil-compose-core", version.ref = "coil3" }
coil3-network-ktor = { module = "io.coil-kt.coil3:coil-network-ktor3", version.ref = "coil3" }
coil3-svg = { module = "io.coil-kt.coil3:coil-svg", version.ref = "coil3" }
coil3-mp = { module = "io.coil-kt.coil3:coil", version.ref = "coil3" }
compose-webview = { module = "io.github.kevinnzou:compose-webview-multiplatform", version.ref = "compose-webview" }
#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" }
test-telereso-core = { group = "io.telereso.kmp", name = "core-test", version.ref = "teleresoCore" }
test-mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
[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 = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" }
#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" }
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
#Telreso
telereso-kmp = { id = "io.telereso.kmp", version.ref = "teleresoKmp" }
#Compose
compose = { id = "org.jetbrains.compose", version.ref = "compose" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
#Others
sqldelight = { id = "app.cash.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" }