## Version catalog — single source of truth for plugin & dependency versions.
## Pure JVM modules only (this env has NO Android SDK). See android/README.md.
## Kotlin pinned to 2.3.21 to match the Kotlin embedded in Gradle 9.6.1 (best
## compatibility with the Kotlin Gradle Plugin on Gradle 9.6).

[versions]
kotlin = "2.3.21"
kotlinxSerialization = "1.9.0"
kotlinxCoroutines = "1.10.2"
junit = "5.13.4"
junitPlatform = "1.13.4"
turbine = "1.2.1"
mockk = "1.14.2"

[libraries]
# Serialization
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerialization" }

# Coroutines
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" }

# Test — JUnit5 (Jupiter)
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" }
junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junitPlatform" }

# Test — Flow assertions + mocking
turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" }
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }

[bundles]
# Convenience bundle wired into every pure module's testImplementation.
unit-test = ["junit-jupiter", "kotlinx-coroutines-test", "turbine", "mockk"]

[plugins]
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
