ext.versions = [
        'minSdk'            : 21,
        'compileSdk'        : 34,
        'targetSdk'         : 34,
        'sourceCompat'      : JavaVersion.VERSION_21,
        'targetCompat'      : JavaVersion.VERSION_21,
        'jvmTarget'         : "21",
]

def gradle = "8.4.2"
// Ref: https://kotlinlang.org/releases.html
def kotlin = "1.9.24"
def kotlinCoroutines = "1.8.1"
def dagger = "2.51.1"
def firebaseBom = "33.1.1"
def appDistribution = "16.0.0-beta08"
def retrofit = "2.11.0"
def markwon = "4.6.2"
def moshi = "1.15.1"
def lifecycle = "2.8.3"
def flowBinding = "1.2.0"
def flipper = "0.259.0"
def epoxy = "5.0.0"
def mavericks = "3.0.9"
def glide = "4.16.0"
def bigImageViewer = "1.8.1"
def jjwt = "0.11.5"
def vanniktechEmoji = "0.16.0"
def sentry = "6.18.1"
def fragment = "1.8.1"
// Testing
def mockk = "1.13.11"
def espresso = "3.6.1"
def androidxTest = "1.6.1"
def androidxOrchestrator = "1.5.0"
def paparazzi = "1.3.4"

ext.libs = [
        gradle      : [
                'gradlePlugin'            : "com.android.tools.build:gradle:$gradle",
                'kotlinPlugin'            : "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin",
                'hiltPlugin'              : "com.google.dagger:hilt-android-gradle-plugin:$dagger"
        ],
        jetbrains   : [
                'coroutinesCore'          : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines",
                'coroutinesAndroid'       : "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinCoroutines",
                'coroutinesTest'          : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
        ],
        androidx    : [
                'activity'                : "androidx.activity:activity-ktx:1.9.0",
                'appCompat'               : "androidx.appcompat:appcompat:1.7.0",
                'biometric'               : "androidx.biometric:biometric:1.1.0",
                'core'                    : "androidx.core:core-ktx:1.10.1",
                'recyclerview'            : "androidx.recyclerview:recyclerview:1.3.0",
                'exifinterface'           : "androidx.exifinterface:exifinterface:1.3.6",
                'fragmentKtx'             : "androidx.fragment:fragment-ktx:$fragment",
                'fragmentTesting'         : "androidx.fragment:fragment-testing:$fragment",
                'fragmentTestingManifest' : "androidx.fragment:fragment-testing-manifest:$fragment",
                'constraintLayout'        : "androidx.constraintlayout:constraintlayout:2.1.4",
                'work'                    : "androidx.work:work-runtime-ktx:2.8.1",
                'autoFill'                : "androidx.autofill:autofill:1.1.0",
                'preferenceKtx'           : "androidx.preference:preference-ktx:1.2.0",
                'junit'                   : "androidx.test.ext:junit:1.1.5",
                'lifecycleCommon'         : "androidx.lifecycle:lifecycle-common:$lifecycle",
                'lifecycleLivedata'       : "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle",
                'lifecycleProcess'        : "androidx.lifecycle:lifecycle-process:$lifecycle",
                'lifecycleRuntimeKtx'     : "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle",
                'datastore'               : "androidx.datastore:datastore:1.0.0",
                'datastorepreferences'    : "androidx.datastore:datastore-preferences:1.0.0",
                'pagingRuntimeKtx'        : "androidx.paging:paging-runtime-ktx:2.1.2",
                'coreTesting'             : "androidx.arch.core:core-testing:2.2.0",
                'testCore'                : "androidx.test:core:$androidxTest",
                'orchestrator'            : "androidx.test:orchestrator:$androidxOrchestrator",
                'testRunner'              : "androidx.test:runner:$androidxTest",
                'testRules'               : "androidx.test:rules:$androidxTest",
                'espressoCore'            : "androidx.test.espresso:espresso-core:$espresso",
                'espressoContrib'         : "androidx.test.espresso:espresso-contrib:$espresso",
                'espressoIntents'         : "androidx.test.espresso:espresso-intents:$espresso",
                'viewpager2'              : "androidx.viewpager2:viewpager2:1.1.0",
                'transition'              : "androidx.transition:transition:1.5.0",
        ],
        google      : [
                'material'                : "com.google.android.material:material:1.12.0",
                'firebaseBom'             : "com.google.firebase:firebase-bom:$firebaseBom",
                'messaging'               : "com.google.firebase:firebase-messaging",
                'appdistributionApi'      : "com.google.firebase:firebase-appdistribution-api-ktx:$appDistribution",
                'appdistribution'         : "com.google.firebase:firebase-appdistribution:$appDistribution",
                // Phone number https://github.com/google/libphonenumber
                'phonenumber'             : "com.googlecode.libphonenumber:libphonenumber:8.13.11"
        ],
        dagger      : [
                'dagger'                  : "com.google.dagger:dagger:$dagger",
                'daggerCompiler'          : "com.google.dagger:dagger-compiler:$dagger",
                'hilt'                    : "com.google.dagger:hilt-android:$dagger",
                'hiltAndroidTesting'      : "com.google.dagger:hilt-android-testing:$dagger",
                'hiltCompiler'            : "com.google.dagger:hilt-compiler:$dagger"
        ],
        flipper     : [
                'flipper'                 : "com.facebook.flipper:flipper:$flipper",
                'flipperNetworkPlugin'    : "com.facebook.flipper:flipper-network-plugin:$flipper",
        ],
        element     : [
                'opusencoder'             : "io.element.android:opusencoder:1.1.0",
                'wysiwyg'                 : "io.element.android:wysiwyg:2.37.4"
        ],
        squareup    : [
                'moshi'                  : "com.squareup.moshi:moshi:$moshi",
                'moshiKt'                : "com.squareup.moshi:moshi-kotlin:$moshi",
                'moshiKotlin'            : "com.squareup.moshi:moshi-kotlin-codegen:$moshi",
                'moshiAdapters'          : "com.squareup.moshi:moshi-adapters:$moshi",
                'paparazzi'              : "app.cash.paparazzi:paparazzi:$paparazzi",
                'paparazziPlugin'        : "app.cash.paparazzi:paparazzi-gradle-plugin:$paparazzi",
                'retrofit'               : "com.squareup.retrofit2:retrofit:$retrofit",
                'retrofitMoshi'          : "com.squareup.retrofit2:converter-moshi:$retrofit"
        ],
        rx          : [
                'rxKotlin'               : "io.reactivex.rxjava2:rxkotlin:2.4.0"
        ],
        markwon     : [
                'core'                   : "io.noties.markwon:core:$markwon",
                'extLatex'               : "io.noties.markwon:ext-latex:$markwon",
                'imageGlide'             : "io.noties.markwon:image-glide:$markwon",
                'inlineParser'           : "io.noties.markwon:inline-parser:$markwon",
                'html'                   : "io.noties.markwon:html:$markwon"
        ],
        airbnb      : [
                'epoxy'                  : "com.airbnb.android:epoxy:$epoxy",
                'epoxyGlide'             : "com.airbnb.android:epoxy-glide-preloading:$epoxy",
                'epoxyProcessor'         : "com.airbnb.android:epoxy-processor:$epoxy",
                'epoxyPaging'            : "com.airbnb.android:epoxy-paging:$epoxy",
                'mavericks'              : "com.airbnb.android:mavericks:$mavericks",
                'mavericksTesting'       : "com.airbnb.android:mavericks-testing:$mavericks"
        ],
        maplibre    : [
                'androidSdk'             : "org.maplibre.gl:android-sdk:10.0.2",
                'pluginAnnotation'       : "org.maplibre.gl:android-plugin-annotation-v9:1.0.0"
        ],
        mockk      : [
                'mockk'                   : "io.mockk:mockk:$mockk",
                'mockkAndroid'            : "io.mockk:mockk-android:$mockk"
        ],
        github     : [
                'glide'                  : "com.github.bumptech.glide:glide:$glide",
                'glideCompiler'          : "com.github.bumptech.glide:compiler:$glide",
                'bigImageViewer'         : "com.github.piasy:BigImageViewer:$bigImageViewer",
                'glideImageLoader'       : "com.github.piasy:GlideImageLoader:$bigImageViewer",
                'progressPieIndicator'   : "com.github.piasy:ProgressPieIndicator:$bigImageViewer",
                'glideImageViewFactory'  : "com.github.piasy:GlideImageViewFactory:$bigImageViewer",
                'flowBinding'            : "io.github.reactivecircus.flowbinding:flowbinding-android:$flowBinding",
                'flowBindingAppcompat'   : "io.github.reactivecircus.flowbinding:flowbinding-appcompat:$flowBinding",
                'flowBindingMaterial'    : "io.github.reactivecircus.flowbinding:flowbinding-material:$flowBinding"
        ],
        jakewharton : [
                'timber'                 : "com.jakewharton.timber:timber:5.0.1"
        ],
        jsonwebtoken: [
                'jjwtApi'                : "io.jsonwebtoken:jjwt-api:$jjwt",
                'jjwtImpl'               : "io.jsonwebtoken:jjwt-impl:$jjwt",
                'jjwtOrgjson'            : "io.jsonwebtoken:jjwt-orgjson:$jjwt"
        ],
        vanniktech  : [
                'emojiMaterial'          : "com.vanniktech:emoji-material:$vanniktechEmoji",
                'emojiGoogle'            : "com.vanniktech:emoji-google:$vanniktechEmoji"
        ],
        apache      : [
                'commonsImaging'         : "org.apache.commons:commons-imaging:1.0-alpha3"
        ],
        sentry: [
                'sentryAndroid'         : "io.sentry:sentry-android:$sentry"
        ],
        tests       : [
                'kluent'                 : "org.amshove.kluent:kluent-android:1.73",
                'timberJunitRule'        : "net.lachlanmckee:timber-junit-rule:1.0.1",
                'junit'                  : "junit:junit:4.13.2",
                'robolectric'            : "org.robolectric:robolectric:4.13",
        ]
]