content: [versions]
  compileSdk = "34"
  minSdk = "28"
  targetSdk = "34"
  appVersion = "1.2.0"
  versionCode = "10002"
  
  # kotlin
  kotlin = "1.9.22"
  kotlinx-serialization-json = "1.6.2"
  kotlinx-serialization-converter = "1.0.0"
  kotlinx-coroutines = "1.7.3"
  
  # android
  core-ktx = "1.12.0"
  appcompat = "1.6.1"
  activity = "1.8.2"
  lifecycle = "2.7.0"
  navigation = "2.7.6"
  startup = "1.1.1"
  security = "1.1.0-alpha06"
  desugarJdk = "2.0.4"
  dagger-hilt = "2.50"
  dagger-hilt-navigation-compose = "1.0.0"
  composeCompiler = "1.5.8"
  compose-bom = "2024.01.00"
  
  # material + google
  material = "1.11.0"
  accompanist = "0.30.1"
  in-app-update = "2.1.0"
  secret-gradle-plugin = "2.0.1"
  google-services = "4.4.0"
  crashlytics = "2.9.9"
  firebase = "32.1.1"
  app-distribution = "4.0.1"
  admob = "22.1.0"
  
  # test
  junit = "4.13.2"
  androidx-test-junit = "1.1.5"
  androidx-test-espresso = "3.5.1"
  junit5-plugin = "1.10.0.0"
  junit5-jupiter = "5.10.1"
  truth = "1.2.0"
  robolectric = "4.11.1"
  androidx-uiautomator = "2.3.0-alpha03"
  androidx-test = "1.5.2"
  androidx-test-core = "1.5.0"
  espressoIntents = "3.5.1"
  runner = "1.5.2"
  mockk = "1.13.9"
  mock-webserver = "4.9.1"
  
  # gradle
  agp = "8.2.1"
  ksp = "1.9.22-1.0.17"
  
  # third party
  okhttp = "4.12.0"
  retrofit = "2.9.0"
  timber = "5.0.1"
  coil = "2.5.0"
  lottie = "6.0.1"
  kakao = "2.14.0"
  splash-screen = "1.0.1"
  ktlint = "12.1.0"
  javax-inject = "1"
  
  [libraries]
  agp = { module = "com.android.tools.build:gradle", version.ref = "agp" }
  
  # kotlin
  kotlin = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", 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" }
  kotlin-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization-json" }
  
  # coroutines
  kotlin-coroutines-google-play = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-play-services", version.ref = "kotlinx-coroutines" }
  kotlin-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" }
  kotlin-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" }
  
  # android
  core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" }
  lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycle" }
  lifecycle = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycle" }
  appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
  material = { group = "com.google.android.material", name = "material", version.ref = "material" }
  startup = { module = "androidx.startup:startup-runtime", version.ref = "startup" }
  security = { module = "androidx.security:security-crypto", version.ref = "security" }
  desugarLibs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugarJdk" }
  javax-inject = { group = "javax.inject", name = "javax.inject", version.ref = "javax-inject" }
  
  # compose
  compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" }
  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" }
  ui-foundation = { group = "androidx.compose.foundation", name = "foundation" }
  material3-compose = { group = "androidx.compose.material3", name = "material3" }
  coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" }
  activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activity" }
  navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigation" }
  hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "dagger-hilt-navigation-compose" }
  lifecycle-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "lifecycle" }
  compose-lottie = { group = "com.airbnb.android", name = "lottie-compose", version.ref = "lottie" }
  
  # dagger-hilt
  hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "dagger-hilt" }
  hilt-compiler = { module = "com.google.dagger:hilt-compiler", name = "hilt-compiler", version.ref = "dagger-hilt" }
  hilt-plugin = { group = "com.google.dagger", name = "hilt-android-gradle-plugin", version.ref = "dagger-hilt" }
  hilt-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "dagger-hilt" }
  hilt-testing-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "dagger-hilt" }
  
  # google
  google-services = { module = "com.google.gms:google-services", version.ref = "google-services" }
  crashlytics-plugin = { module = "com.google.firebase:firebase-crashlytics-gradle", version.ref = "crashlytics" }
  firebase = { module = "com.google.firebase:firebase-bom", version.ref = "firebase" }
  firebase-analytics = { module = "com.google.firebase:firebase-analytics-ktx" }
  firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics-ktx" }
  firebase-messaging = { module = "com.google.firebase:firebase-messaging-ktx" }
  accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" }
  google-android-gms = { group = "com.google.android.gms", name = "play-services-ads", version.ref = "admob" }
  
  # test
  junit = { group = "junit", name = "junit", version.ref = "junit" }
  kotlin-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" }
  androidx-test-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-test-junit" }
  androidx-test-espresso = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-test-espresso" }
  androidx-test-core = { module = "androidx.test:core", version.ref = "androidx-test-core" }
  androidx-test-espresso-intents = { module = "androidx.test.espresso:espresso-intents", version.ref = "espressoIntents" }
  androidx-test-rules = { module = "androidx.test:rules", version.ref = "androidx-test-core" }
  androidx-test-truth = { module = "androidx.test.ext:truth", version.ref = "androidx-test-core" }
  androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidx-test" }
  androidx-test-junit-ktx = { group = "androidx.test.ext", name = "junit-ktx", version.ref = "androidx-test-junit" }
  junit5 = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit5-jupiter" }
  junit5-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit5-jupiter" }
  junit5-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit5-jupiter" }
  junit5-vintage = { module = "org.junit.vintage:junit-vintage-engine", version.ref = "junit5-jupiter" }
  junit5-android-test-core = { module = "de.mannodermaus.junit5:android-test-core", version = "1.4.0" }
  junit5-android-test-runner = { module = "de.mannodermaus.junit5:android-test-runner", version = "1.4.0" }
  truth = { module = "com.google.truth:truth", version.ref = "truth" }
  robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" }
  mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
  android-mockk = { module = "io.mockk:mockk-android", version.ref = "mockk" }
  mockk-webserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "okhttp" }
  
  # third party
  ktlint = { module = "org.jlleitschuh.gradle:ktlint-gradle", version.ref = "ktlint" }
  okhttp-bom = { module = "com.squareup.okhttp3:okhttp-bom", version.ref = "okhttp" }
  okhttp = { module = "com.squareup.okhttp3:okhttp" }
  okhttp-logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor" }
  retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
  retrofit-kotlin-serialization-converter = { group = "com.jakewharton.retrofit", name = "retrofit2-kotlinx-serialization-converter", version.ref = "kotlinx-serialization-converter" }
  
  timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" }
  
  coil-core = { module = "io.coil-kt:coil", version.ref = "coil" }
  
  kakao-login = { group = "com.kakao.sdk", name = "v2-user", version.ref = "kakao" }
  
  splash-screen = { module = "androidx.core:core-splashscreen", version.ref = "splash-screen" }
  
  
  [plugins]
  android-application = { id = "com.android.application", version.ref = "agp" }
  android-library = { id = "com.android.library", version.ref = "agp" }
  kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
  kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
  dagger-hilt = { id = "com.google.dagger.hilt.android", version.ref = "dagger-hilt" }
  google-services = { id = "com.google.gms.google-services", version.ref = "google-services" }
  crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "crashlytics" }
  ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
  secret = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version.ref = "secret-gradle-plugin" }
  kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
  junit5 = { id = "de.mannodermaus.android-junit5", version.ref = "junit5-plugin" }
  app-distribution = { id = "com.google.firebase.appdistribution", version.ref = "app-distribution" }
  ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" }
  
  # Plugins defined by moya
  funch-application = { id = "com.moya.funch.application", version = "unspecified" }
  funch-android-library = { id = "com.moya.funch.library", version = "unspecified" }
  funch-feature = { id = "com.moya.funch.feature", version = "unspecified" }
  funch-hilt = { id = "com.moya.funch.hilt", version = "unspecified" }
  funch-kotlinx-serialization = { id = "com.moya.funch.kotlinx_serialization", version = "unspecified" }
  funch-android-test = { id = "com.moya.funch.android.test", version = "unspecified" }
  funch-junit5 = { id = "com.moya.funch.junit5", version = "unspecified" }
  funch-compose = { id = "com.moya.funch.compose", version = "unspecified" }
  funch-jvm-library = { id = "com.moya.funch.jvm.library", version = "unspecified" }
  
  [bundles]
  firebase = ["firebase-analytics", "firebase-crashlytics"]
  lifecycle = ["lifecycle", "lifecycle-viewmodel"]
  compose = ["ui", "ui-graphics", "ui-tooling", "ui-tooling-preview", "material3-compose", "coil-compose", "ui-foundation", "activity-compose", "navigation-compose", "lifecycle-compose"]
  retrofit = ["retrofit", "retrofit-kotlin-serialization-converter"]
  junit5 = ["junit5", "junit5-engine", "junit5-params", "junit5-vintage"]
  androidx-android-test = ["androidx-test-core", "androidx-test-espresso", "androidx-test-espresso-intents", "androidx-test-junit", "androidx-test-junit-ktx", "androidx-test-rules", "androidx-test-runner", "androidx-test-truth"]
  