[versions]
minSdk = "23"
targetSdk = "35"
compileSdk = "35"
versionCode = "9"
versionName = "0.1.6"

agp = "8.9.0"
converterMoshi = "2.11.0"
eithernet = "2.0.0"
haze = "1.5.1"
kotlin = "2.1.10"
ksp = "2.1.10-1.0.31"

compose-bom = "2025.03.00"
koin = "4.0.2"

accompanist = "0.37.2"
coil = "2.7.0"
coroutines = "1.10.1"
junit = "4.13.2"
chucker = "4.1.0"
guava = "33.4.5-jre"
lifecycle = "2.8.7"
core-ktx = "1.15.0"
material = "1.12.0"
loggingInterceptor = "5.0.0-alpha.14"
moshi = "1.15.2"
retrofit = "2.11.0"
room = "2.6.1"
preference-ktx = "1.2.1"
nanokt = "1.2.0"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
appcompat = "1.7.0"
androidx-navigation = "2.8.9"
serialization = "1.8.0"
rebugger = "1.0.0-rc03"
moduleGraph = "2.8.0"

[libraries]
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }
coil = { module = "io.coil-kt:coil", version.ref = "coil" }
coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" }
converter-moshi = { module = "com.squareup.retrofit2:converter-moshi", version.ref = "converterMoshi" }
eithernet = { module = "com.slack.eithernet:eithernet", version.ref = "eithernet" }
eithernet-integration-retrofit = { module = "com.slack.eithernet:eithernet-integration-retrofit", version.ref = "eithernet" }
haze = { module = "dev.chrisbanes.haze:haze", version.ref = "haze" }
haze-materials = { module = "dev.chrisbanes.haze:haze-materials", version.ref = "haze" }
junit = { module = "junit:junit", version.ref = "junit" }
chucker = { module = "com.github.chuckerteam.chucker:library", version.ref = "chucker" }
chucker-noop = { module = "com.github.chuckerteam.chucker:library-no-op", version.ref = "chucker" }
guava = { module = "com.google.guava:guava", version.ref = "guava" }
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" }
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycle" }
lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycle" }
core-ktx = { module = "androidx.core:core-ktx", version.ref = "core-ktx" }
material = { module = "com.google.android.material:material", version.ref = "material" }
logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "loggingInterceptor" }
moshi-kotlin-codegen = { module = "com.squareup.moshi:moshi-kotlin-codegen", version.ref = "moshi" }
moshi-kotlin = { module = "com.squareup.moshi:moshi-kotlin", version.ref = "moshi" }
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }

room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }
room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" }
room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" }
preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "preference-ktx" }
nanokt = { module = "com.conena.nanokt:nanokt", version.ref = "nanokt" }
nanokt-android = { module = "com.conena.nanokt:nanokt-android", version.ref = "nanokt" }
nanokt-jvm = { module = "com.conena.nanokt:nanokt-jvm", version.ref = "nanokt" }
ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }

androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidx-navigation" }
kotlin-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization" }

rebugger = { module = "io.github.theapache64:rebugger-android", version.ref = "rebugger" }

compose-bom = { module = "androidx.compose:compose-bom", version.ref = "compose-bom" }
compose-material3 = { module = "androidx.compose.material3:material3" }
compose-ui = { module = "androidx.compose.ui:ui" }
compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }
compose-material3-windowsize = { module = "androidx.compose.material3:material3-window-size-class" }
compose-activity = { module = "androidx.activity:activity-compose" }
compose-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-compose" }
compose-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-compose" }
compose-runtime-saveable = { module = "androidx.compose.runtime:runtime-saveable" }
compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" }
compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" }

koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" }
koin-core-coroutines = { module = "io.insert-koin:koin-core-coroutines", version.ref = "koin" }
koin-test = { module = "io.insert-koin:koin-test", version.ref = "koin" }
koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
koin-android-test = { module = "io.insert-koin:koin-android-test", version.ref = "koin" }
koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin" }
koin-androidx-compose-navigation = { module = "io.insert-koin:koin-androidx-compose-navigation", version.ref = "koin" }

# build-logic dependencies
android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "agp" }
compose-gradlePlugin = { module = "org.jetbrains.kotlin:compose-compiler-gradle-plugin", version.ref = "kotlin" }
kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
ksp-gradlePlugin = { group = "com.google.devtools.ksp", name = "com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" }
room-gradlePlugin = { group = "androidx.room", name = "room-gradle-plugin", version.ref = "room" }

[bundles]
compose = [
    "compose-material3",
    "compose-material3-windowsize",
    "compose-ui",
    "compose-ui-tooling-preview",
    "compose-activity",
    "compose-lifecycle-viewmodel",
    "compose-lifecycle-runtime",
    "compose-runtime-saveable"
]
compose-ui-test = ["compose-ui-test-junit4", "compose-ui-test-manifest"]
nanokt = [
    "nanokt",
    "nanokt-android",
    "nanokt-jvm"
]

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" }
compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
room = { id = "androidx.room", version.ref = "room" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
module-graph = { id = "com.jraska.module.graph.assertion", version.ref = "moduleGraph" }

#project plugins
fast-android-application = { id = "fast.android.application", version = "unspecified" }
fast-android-application-compose = { id = "fast.android.application.compose", version = "unspecified" }
fast-android-feature = { id = "fast.android.feature", version = "unspecified" }
fast-android-library = { id = "fast.android.library", version = "unspecified" }
fast-android-library-compose = { id = "fast.android.library.compose", version = "unspecified" }
fast-android-room = { id = "fast.android.room", version = "unspecified" }
fast-android-test = { id = "fast.android.test", version = "unspecified" }
fast-jvm-library = { id = "fast.jvm.library", version = "unspecified" }
