ext {
    versions = [
            BUILD_TOOLS_VERSION: '28.0.3',
            MIN_SDK_VERSION    : 17,
            TARGET_SDK_VERSION : 28,
            kotlin             : '1.4.10',
            apollo             : '2.2.3',
            detekt             : '1.10.0',
            android_junit5     : '1.2.0.0',
            kodein             : '6.2.0',
            lifecycle          : '2.0.0',
            spek               : '2.0.4',
            junit5_runner      : '0.2.2',
            mockk              : '1.9.3',
            mockwebserver      : '3.14.0',
            retrofit           : '2.5.0',
            coroutines         : '1.1.1',
            room               : '2.1.0-beta01',
            espressoVersion    : '3.1.1'
    ]
    androidx = [
            appcompat       : 'androidx.appcompat:appcompat:1.0.2',
            core            : 'androidx.core:core-ktx:1.0.2',
            constraintlayout: 'androidx.constraintlayout:constraintlayout:1.1.3',
            recyclerview    : 'androidx.recyclerview:recyclerview:1.0.0',
            cardview        : 'androidx.cardview:cardview:1.0.0',
            lifecycle       : "androidx.lifecycle:lifecycle-extensions:$versions.lifecycle"
    ]
    apollo = [
            apollo_runtime    : "com.apollographql.apollo:apollo-runtime:$versions.apollo",
            apollo_coroutines : "com.apollographql.apollo:apollo-coroutines-support:$versions.apollo"
    ]
    room = [
            room   : "androidx.room:room-runtime:$versions.room",
            roomktx: "androidx.room:room-ktx:$versions.room"
    ]
    coroutines = [
            core   : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$versions.coroutines",
            android: "org.jetbrains.kotlinx:kotlinx-coroutines-android:$versions.coroutines"
    ]
    kodein = [
            kodein : "org.kodein.di:kodein-di-generic-jvm:$versions.kodein",
            android: "org.kodein.di:kodein-di-framework-android-x:$versions.kodein"
    ]
    unitTests = [
            spek         : "org.spekframework.spek2:spek-dsl-jvm:$versions.spek",
            spek_runner  : "org.spekframework.spek2:spek-runner-junit5:$versions.spek",
            mockk        : "io.mockk:mockk:$versions.mockk",
            mockwebserver: "com.squareup.okhttp3:mockwebserver:$versions.mockwebserver",
            jupiter      : 'org.junit.jupiter:junit-jupiter:5.4.2',
            coroutines   : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$versions.coroutines"
    ]
    androidTests = [
            espressoCore: "com.android.support.test.espresso:espresso-core:$versions.espressoVersion",
            testRunner  : "com.android.support.test:runner:1.1.1"
    ]
    kapt = [
            room_compiler: "androidx.room:room-compiler:$versions.room",
            lifecycle    : "androidx.lifecycle:lifecycle-compiler:$versions.lifecycle",
    ]

    androidLibs = androidx.values()
    apolloLibs = apollo.values()
    coroutinesLibs = coroutines.values()
    kodeinLibs = kodein.values()
    roomLibs = room.values()
    compilerLibs = kapt.values()
    unitTestLibs = unitTests.values()
    androidTestsLibs = androidTests.values()
}
