[versions] mustache = "0.9.7" guava = "33.1.0-android" jacksonCore = "2.12.7" jacksonDataformatYaml = "2.12.7" minSdk = "26" compileSdk = "35" targetSdk = "35" pluginSdk = "2.1.2-SNAPSHOT" gradle = "8.1.2" android-gradle-plugin = "8.2.2" ksp-gradle-plugin = "2.0.20-1.0.25" kotlin = "2.0.20" kotlinx-coroutines = "1.8.1" kotlinx-immutable = "0.3.5" kotlinx-serialization = "1.7.2" jetbrains-markdown = "0.5.2" androidx-compose = "1.8.0-alpha03" androidx-compose-material3 = "1.4.0-alpha01" androidx-compose-materialicons = "1.7.3" androidx-lifecycle = "2.8.2" androidx-core = "1.14.0-alpha01" androidx-appcompat = "1.7.0" androidx-activity = "1.9.2" androidx-work = "2.9.1" androidx-browser = "1.8.0" androidx-palette = "1.0.0" androidx-media2 = "1.3.0" androidx-room = "2.6.1" androidx-constraint-layout = "1.1.0-alpha13" accompanist = "0.33.2-alpha" coil = "2.3.0" koin = "3.2.0" retrofit = "2.9.0" junit = "4.13.2" junitVersion = "1.1.5" espressoCore = "3.5.1" [libraries] mustache-compiler = { module = "com.github.spullara.mustache.java:compiler", version.ref = "mustache" } gradle = { group = "com.android.tools.build", name = "gradle", version.ref = "android-gradle-plugin" } guava = { module = "com.google.guava:guava", version.ref = "guava" } jackson-core = { module = "com.fasterxml.jackson.core:jackson-core", version.ref = "jacksonCore" } jackson-dataformat-yaml = { module = "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml", version.ref = "jacksonDataformatYaml" } kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" } kotlin-gradle = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" } kotlinx-collections-immutable = { group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinx-immutable" } kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization" } markdown = { group = "org.jetbrains", name = "markdown", version.ref = "jetbrains-markdown" } androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime", version.ref = "androidx-compose" } androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "androidx-compose" } androidx-compose-foundationlayout = { group = "androidx.compose.foundation", name = "foundation-layout", version.ref = "androidx-compose" } androidx-compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "androidx-compose" } androidx-compose-uitooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "androidx-compose" } androidx-compose-material = { group = "androidx.compose.material", name = "material", version.ref = "androidx-compose" } androidx-compose-materialicons = { group = "androidx.compose.material", name = "material-icons-extended", version.ref = "androidx-compose-materialicons" } androidx-compose-animation = { group = "androidx.compose.animation", name = "animation", version.ref = "androidx-compose" } androidx-compose-animationgraphics = { group = "androidx.compose.animation", name = "animation-graphics", version.ref = "androidx-compose" } androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "androidx-compose-material3" } androidx-lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" } androidx-lifecycle-common = { group = "androidx.lifecycle", name = "lifecycle-common-java8", version.ref = "androidx-lifecycle" } androidx-lifecycle-runtime = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidx-lifecycle" } androidx-lifecycle-viewmodelcompose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" } androidx-lifecycle-runtimecompose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidx-lifecycle" } androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "androidx-activity" } androidx-activitycompose = { group = "androidx.activity", name = "activity-compose", version.ref = "androidx-activity" } androidx-room = { group = "androidx.room", name = "room-ktx", version.ref = "androidx-room" } androidx-roomruntime = { group = "androidx.room", name = "room-runtime", version.ref = "androidx-room" } androidx-roomcompiler = { group = "androidx.room", name = "room-compiler", version.ref = "androidx-room" } androidx-core = { group = "androidx.core", name = "core-ktx", version.ref = "androidx-core" } androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" } androidx-work = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "androidx-work" } androidx-browser = { group = "androidx.browser", name = "browser", version.ref = "androidx-browser" } androidx-palette = { group = "androidx.palette", name = "palette", version.ref = "androidx-palette" } androidx-media2 = { group = "androidx.media2", name = "media2-session", version.ref = "androidx-media2" } accompanist-systemuicontroller = { group = "com.google.accompanist", name = "accompanist-systemuicontroller", version.ref = "accompanist" } accompanist-pager = { group = "com.google.accompanist", name = "accompanist-pager", version.ref = "accompanist" } accompanist-pagerindicators = { group = "com.google.accompanist", name = "accompanist-pager-indicators", version.ref = "accompanist" } accompanist-flowlayout = { group = "com.google.accompanist", name = "accompanist-flowlayout", version.ref = "accompanist" } accompanist-navigationanimation = { group = "com.google.accompanist", name = "accompanist-navigation-animation", version.ref = "accompanist" } androidx-constraintlayout-views = { group = "androidx.constraintlayout", name = "constraintlayout", version = "2.1.4" } androidx-constraintlayout-compose = { group = "androidx.constraintlayout", name = "constraintlayout-compose", version.ref = "androidx-constraint-layout" } androidx-transition = { group = "androidx.transition", name = "transition", version = "1.4.1" } androidx-exifinterface = { group = "androidx.exifinterface", name = "exifinterface", version = "1.3.7" } androidx-securitycrypto = { group = "androidx.security", name = "security-crypto", version = "1.1.0-alpha03" } androidx-datastore = { group = "androidx.datastore", name = "datastore", version = "1.0.0" } androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version = "2.8.0-beta05" } materialcomponents-core = { group = "com.google.android.material", name = "material", version = "1.11.0" } okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version = "4.12.0" } retrofit-core = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" } retrofit-gson = { group = "com.squareup.retrofit2", name = "converter-gson", version.ref = "retrofit" } coil-core = { group = "io.coil-kt", name = "coil", version.ref = "coil" } coil-svg = { group = "io.coil-kt", name = "coil-svg", version.ref = "coil" } coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" } leakcanary = { group = "com.squareup.leakcanary", name = "leakcanary", version = "2.10" } suncalc = { group = "org.shredzone.commons", name = "commons-suncalc", version = "3.7" } jsoup = { group = "org.jsoup", name = "jsoup", version = "1.16.1" } commons-text = { group = "org.apache.commons", name = "commons-text", version = "1.10.0" } stringsimilarity = { group = "com.aallam.similarity", name = "string-similarity-kotlin", version = "0.1.0" } # 4.4.2 is the last GPL compatible version, don't update to 5.x mathparser = { group = "org.mariuszgromada.math", name = "MathParser.org-mXparser", version = "4.4.2" } google-auth = { group = "com.google.auth", name = "google-auth-library-oauth2-http", version = "1.14.0" } google-apiclient = { group = "com.google.api-client", name = "google-api-client", version = "2.1.2" } google-drive = { group = "com.google.apis", name = "google-api-services-drive", version = "v3-rev20221219-2.0.0" } google-oauth2 = { group = "com.google.apis", name = "google-api-services-oauth2", version = "v2-rev20200213-2.0.0" } koin-android = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" } koin-androidxcompose = { group = "io.insert-koin", name = "koin-androidx-compose", version.ref = "koin" } tinypinyin = { group = "com.github.promeg", name = "tinypinyin", version = "2.0.3" } emoji4j = { group = "com.sigpwned", name = "emoji4j-core", version = "15.0.1" } junit = { group = "junit", name = "junit", version.ref = "junit" } androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } [bundles] kotlin = ["kotlin-stdlib", "kotlinx-coroutines-core", "kotlinx-coroutines-android", "kotlinx-collections-immutable", "kotlinx-serialization-json"] androidx-lifecycle = ["androidx-lifecycle-viewmodel", "androidx-lifecycle-common", "androidx-lifecycle-runtime", "androidx-lifecycle-viewmodelcompose", "androidx-lifecycle-runtimecompose"] retrofit = ["retrofit-core", "retrofit-gson"] tests = ["junit"] [plugins] android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" } android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp-gradle-plugin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-plugin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } kotlin-plugin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } dokka = { id = "org.jetbrains.dokka", version = "1.9.20" }