content: [versions]
  minSdk = "26"
  targetSdk = "36"
  compileSdk = "36"
  agp = "8.9.2"
  kotlin = "2.1.20"
  ksp = "2.1.20-1.0.32"
  ktlint = "12.2.0"
  kotlinx-serialization = "1.8.1"
  hilt = "2.56.2"
  hilt-androidx = "1.2.0"
  core-ktx = "1.16.0"
  splashscreen = "1.0.1"
  junit = "4.13.2"
  robolectric = "4.14.1"
  roborazzi = "1.43.1"
  okio = "3.11.0"
  mockk = "1.14.2"
  assertk = "0.28.1"
  turbine = "1.2.0"
  androidx-test-ext-junit = "1.2.1"
  androidx-test-runner = "1.6.2"
  androidx-test-core = "1.6.1"
  androidx-annotations = "1.9.1"
  espresso-core = "3.6.1"
  lifecycle-runtime = "2.9.0"
  activity-compose = "1.10.1"
  compose-bom = "2025.05.00"
  compose-htmlconverter = "1.0.4"
  kmpalette = "3.1.0"
  lyricist = "1.7.0"
  navigation = "2.9.0"
  molecule = "2.1.0"
  media3 = "1.6.1"
  coroutines = "1.10.1"
  workmanager = "2.10.1"
  coil = "3.1.0"
  ktor = "3.1.3"
  result = "2.0.1"
  xmlutil = "0.91.0"
  kermit = "2.0.5"
  # TODO: There is a regression in sqldelight 2.0.2 that causes sqldelight gradle tasks to fail on windows
  #  For more info, See https://github.com/sqldelight/sqldelight/issues/5129, https://github.com/sqldelight/sqldelight/issues/5204,
  #  https://slack-chats.kotlinlang.org/t/23461955/hello-i-started-using-the-sqldelight-libraries-in-my-kmp-pro, https://github.com/sqldelight/sqldelight/issues/5312
  sqldelight = "2.0.1"
  sqlite-jdbc = "3.18.0" # sqlite version used in Android API level 26 (our minSdk)
  google-services = "4.4.2"
  firebase-bom = "33.13.0"
  crashlytics = "3.0.3"
  leakcanary = "3.0-alpha-8"
  datastore = "1.1.1"
  aboutlibraries = "12.1.2"
  appversioning = "1.4.0"
  gpp = "3.12.1"
  uiautomator = "2.3.0"
  benchmarkMacroJunit4 = "1.3.4"
  baselineprofile = "1.3.4"
  profileinstaller = "1.4.1"
  
  [libraries]
  core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" }
  splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "splashscreen" }
  junit = { group = "junit", name = "junit", version.ref = "junit" }
  robolectric = { group = "org.robolectric", name = "robolectric", version.ref = "robolectric" }
  roborazzi = { group = "io.github.takahirom.roborazzi", name = "roborazzi", version.ref = "roborazzi" }
  roborazzi-compose = { group = "io.github.takahirom.roborazzi", name = "roborazzi-compose", version.ref = "roborazzi" }
  roborazzi-rule = { group = "io.github.takahirom.roborazzi", name = "roborazzi-junit-rule", version.ref = "roborazzi" }
  okio = { group = "com.squareup.okio", name = "okio", version.ref = "okio" }
  mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" }
  androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-ext-junit" }
  androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidx-test-runner" }
  androidx-test-core = { group = "androidx.test", name = "core-ktx", version.ref = "androidx-test-core" }
  androidx-annotations = { group = "androidx.annotation", name = "annotation", version.ref = "androidx-annotations" }
  espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso-core" }
  lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycle-runtime" }
  lifecycle-runtime-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "lifecycle-runtime" }
  activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activity-compose" }
  compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" }
  compose-htmlconverter = { group = "be.digitalia.compose.htmlconverter", name = "htmlconverter", version.ref = "compose-htmlconverter" }
  kmpalette-core = { group = "com.kmpalette", name = "kmpalette-core", version.ref = "kmpalette" }
  lyricist = { group = "cafe.adriel.lyricist", name = "lyricist", version.ref = "lyricist" }
  lyricist-processor = { group = "cafe.adriel.lyricist", name = "lyricist-processor", version.ref = "lyricist" }
  ui = { group = "androidx.compose.ui", name = "ui" }
  ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
  ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
  ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
  ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
  ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
  assertk = { group = "com.willowtreeapps.assertk", name = "assertk", version.ref = "assertk" }
  coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "coroutines" }
  turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine" }
  material3 = { group = "androidx.compose.material3", name = "material3" }
  material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended" }
  navigation = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigation" }
  molecule = { group = "app.cash.molecule", name = "molecule-runtime", version.ref = "molecule" }
  media3-exoplayer = { group = "androidx.media3", name = "media3-exoplayer", version.ref = "media3" }
  media3-common = { group = "androidx.media3", name = "media3-common", version.ref = "media3" }
  media3-session = { group = "androidx.media3", name = "media3-session", version.ref = "media3" }
  media3-exoplayer-workmanager = { group = "androidx.media3", name = "media3-exoplayer-workmanager", version.ref = "media3" }
  media3-testUtils-core = { module = "androidx.media3:media3-test-utils", version.ref = "media3" }
  media3-testUtils-robolectric = { module = "androidx.media3:media3-test-utils-robolectric", version.ref = "media3" }
  coroutines-guava = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-guava", version.ref = "coroutines" }
  workmanager-core = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "workmanager" }
  workmanager-testing = { group = "androidx.work", name = "work-testing", version.ref = "workmanager" }
  coil-mp = { group = "io.coil-kt.coil3", name = "coil", version.ref = "coil" }
  coil = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil" }
  coil-network-ktor = { group = "io.coil-kt.coil3", name = "coil-network-ktor3", version.ref = "coil" }
  coil-test = { group = "io.coil-kt.coil3", name = "coil-test", version.ref = "coil" }
  ktor-core = { group = "io.ktor", name = "ktor-client-core", version.ref = "ktor" }
  ktor-okhttp = { group = "io.ktor", name = "ktor-client-okhttp", version.ref = "ktor" }
  ktor-client-mock = { group = "io.ktor", name = "ktor-client-mock", version.ref = "ktor" }
  ktor-content-negotation = { group = "io.ktor", name = "ktor-client-content-negotiation", version.ref = "ktor" }
  ktor-kotlinx-serialization = { group = "io.ktor", name = "ktor-serialization-kotlinx-json", version.ref = "ktor" }
  result = { group = "com.michael-bull.kotlin-result", name = "kotlin-result", version.ref = "result" }
  kermit = { group = "co.touchlab", name = "kermit", version.ref = "kermit" }
  kermit-crashlytics = { group = "co.touchlab", name = "kermit-crashlytics", version.ref = "kermit" }
  kotlinx-serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
  hilt-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" }
  hilt-runtime = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
  hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "hilt-androidx" }
  hilt-androidx-compiler = { group = "androidx.hilt", name = "hilt-compiler", version.ref = "hilt-androidx" }
  hilt-common = { group = "androidx.hilt", name = "hilt-common", version.ref = "hilt-androidx" }
  hilt-workmanager = { group = "androidx.hilt", name = "hilt-work", version.ref = "hilt-androidx" }
  sqldelight-driver = { group = "app.cash.sqldelight", name = "android-driver", version.ref = "sqldelight" }
  sqldelight-sqlitedriver = { group = "app.cash.sqldelight", name = "sqlite-driver", version.ref = "sqldelight" }
  sqldelight-flowext = { group = "app.cash.sqldelight", name = "coroutines-extensions", version.ref = "sqldelight" }
  sqldelight-primitiveadapters = { group = "app.cash.sqldelight", name = "primitive-adapters", version.ref = "sqldelight" }
  sqlite-jdbc = { module = "org.xerial:sqlite-jdbc", version.ref = "sqlite-jdbc" }
  firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebase-bom" }
  firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics" }
  firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics" }
  leakcanary = { group = "com.squareup.leakcanary", name = "leakcanary-android", version.ref = "leakcanary" }
  datastore-pref = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "datastore" }
  aboutlibraries-m3 = { group = "com.mikepenz", name = "aboutlibraries-compose-m3", version.ref = "aboutlibraries" }
  xmlutil-core = { group = "io.github.pdvrieze.xmlutil", name = "core", version.ref = "xmlutil" }
  xmlutil-serialization = { group = "io.github.pdvrieze.xmlutil", name = "serialization", version.ref = "xmlutil" }
  androidx-uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "uiautomator" }
  androidx-benchmark-macro-junit4 = { group = "androidx.benchmark", name = "benchmark-macro-junit4", version.ref = "benchmarkMacroJunit4" }
  androidx-profileinstaller = { group = "androidx.profileinstaller", name = "profileinstaller", version.ref = "profileinstaller" }
  
  # Convention plugins dependencies
  android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "agp" }
  kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
  compose-compiler-gradlePlugin = { group = "org.jetbrains.kotlin", name = "compose-compiler-gradle-plugin", version.ref = "kotlin" }
  ktlint-gradlePlugin = { group = "org.jlleitschuh.gradle", name = "ktlint-gradle", version.ref = "ktlint" }
  
  [plugins]
  com-android-application = { id = "com.android.application", version.ref = "agp" }
  com-android-library = { id = "com.android.library", version.ref = "agp" }
  compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
  kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
  kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
  kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
  hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
  ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
  ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" }
  sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" }
  google-services = { id = "com.google.gms.google-services", version.ref = "google-services" }
  crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "crashlytics" }
  aboutlibraries = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "aboutlibraries" }
  appversioning = { id = "io.github.reactivecircus.app-versioning", version.ref = "appversioning" }
  play-publisher = { id = "com.github.triplet.play", version.ref = "gpp" }
  roborazzi = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" }
  podcaster-android-app = { id = "podcaster.android.application", version = "unspecified" }
  podcaster-android-lib = { id = "podcaster.android.library", version = "unspecified" }
  podcaster-android-test-lib = { id = "podcaster.android.test.library", version = "unspecified" }
  podcaster-compose-android-lib = { id = "podcaster.android.compose.library", version = "unspecified" }
  podcaster-jvm-lib = { id = "podcaster.jvm.library", version = "unspecified" }
  android-test = { id = "com.android.test", version.ref = "agp" }
  baselineprofile = { id = "androidx.baselineprofile", version.ref = "baselineprofile" }
  
  [bundles]
  androidx-core = [
      "core-ktx",
      "splashscreen",
      "activity-compose",
      "lifecycle-runtime-compose",
      "lifecycle-runtime-ktx"
  ]
  compose = [
      "ui",
      "ui-graphics",
      "ui-tooling-preview",
      "material3",
      "material-icons-extended",
      "coil-mp",
      "coil",
      "coil-network-ktor",
      "kmpalette-core",
      "aboutlibraries-m3",
      "compose-htmlconverter"
  ]
  navigation = [
      "navigation",
      "hilt-navigation-compose"
  ]
  media3 = [
      "media3-exoplayer",
      "media3-common",
      "media3-session",
      "media3-exoplayer-workmanager",
      "coroutines-guava"
  ]
  android-test = [
      "androidx-test-ext-junit",
      "androidx-test-runner",
      "androidx-test-core",
      "ui-test-junit4",
      "coil-test",
      "okio"
  ]
  ktor = [
      "ktor-core",
      "ktor-okhttp",
      "ktor-content-negotation",
      "ktor-kotlinx-serialization"
  ]
  serialization = [
      "xmlutil-core",
      "xmlutil-serialization",
      "kotlinx-serialization"
  ]
  workmanager = [
      "hilt-common",
      "hilt-workmanager",
      "workmanager-core"
  ]
  unit-testing = [
      "junit",
      "assertk",
      "coroutines-test",
      "turbine",
      "mockk"
  ]
  