Skip to content

Commit

Permalink
[Chore] Generate & update sample project
Browse files Browse the repository at this point in the history
  • Loading branch information
bot-nimble committed Aug 24, 2023
1 parent 111c067 commit 97f232c
Show file tree
Hide file tree
Showing 33 changed files with 687 additions and 148 deletions.
3 changes: 3 additions & 0 deletions sample/.github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ jobs:
distribution: 'temurin'
java-version: '17'

- name: Decode buildKonfig properties
run: echo ${{ secrets.BUILD_KONFIG_PROPERTIES }} | base64 --decode > ./buildKonfig.properties

- name: Cache Gradle
uses: actions/cache@v3
with:
Expand Down
1 change: 1 addition & 0 deletions sample/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ captures
.cxx
local.properties
xcuserdata
buildKonfig.properties

# iOS
ios/Pods/
Expand Down
4 changes: 1 addition & 3 deletions sample/android/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import org.jetbrains.kotlin.konan.properties.loadProperties

plugins {
id(Plugins.ANDROID_APPLICATION)
id(Plugins.KOVER)
kotlin(Plugins.ANDROID)
}

val keystoreProperties = loadProperties("signing.properties")
val keystoreProperties = rootDir.loadGradleProperties("signing.properties")

android {
namespace = "co.nimblehq.kmm.template.android"
Expand Down
2 changes: 2 additions & 0 deletions sample/android/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="co.nimblehq.kmm.template.android">

<uses-permission android:name="android.permission.INTERNET"/>

<application
android:name=".MyApplication"
android:allowBackup="false"
Expand Down
20 changes: 20 additions & 0 deletions sample/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,28 @@ plugins {
id(Plugins.ANDROID_LIBRARY) version Versions.GRADLE apply (false)
id(Plugins.DETEKT) version Versions.DETEKT
id(Plugins.KOVER) version Versions.KOVER
id(Plugins.KSP) version Versions.KSP
id(Plugins.BUILD_KONFIG) version Versions.BUILD_KONFIG apply (false)
kotlin(Plugins.ANDROID) version Versions.KOTLIN apply (false)
kotlin(Plugins.MULTIPLATFORM) version Versions.KOTLIN apply (false)
kotlin(Plugins.KOTLIN_SERIALIZATION) version Versions.KOTLIN
}

allprojects {
val buildProperties = rootDir.loadGradleProperties("buildKonfig.properties")
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") }
maven {
name = "Github Packages"
url = uri("https://maven.pkg.github.com/nimblehq/jsonapi-kotlin")
credentials {
username = buildProperties.getProperty("GITHUB_USER")
password = buildProperties.getProperty("GITHUB_TOKEN")
}
}
}
}

detekt {
Expand Down
8 changes: 8 additions & 0 deletions sample/buildKonfig.properties.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Staging env
STAGING_BASE_URL=
# Production env
PRODUCTION_BASE_URL=

// For more info: https://github.com/nimblehq/jsonapi-kotlin
GITHUB_USER=
GITHUB_TOKEN=
1 change: 1 addition & 0 deletions sample/buildSrc/src/main/java/Configurations.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ object Plugins {
const val KOTLIN_SERIALIZATION = "plugin.serialization"
const val KOTLINX_SERIALIZATION = "kotlinx-serialization"
const val KOVER = "org.jetbrains.kotlinx.kover"
const val KSP = "com.google.devtools.ksp"

const val MULTIPLATFORM = "multiplatform"
}
63 changes: 54 additions & 9 deletions sample/buildSrc/src/main/java/Dependencies.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ object Versions {
const val ANDROID_COMPILE_SDK_VERSION = 33
const val ANDROID_MIN_SDK_VERSION = 24
const val ANDROID_TARGET_SDK_VERSION = 33

const val ANDROID_VERSION_CODE = 1
const val ANDROID_VERSION_NAME = "1.0.0"

const val ANDROIDX_ACTIVITY_COMPOSE = "1.7.1"

const val BUILD_KONFIG = "0.13.3"

const val COMPOSE = "1.4.3"
const val COMPOSE_COMPILER = "1.4.7"
const val COMPOSE_NAVIGATION = "2.6.0"
Expand All @@ -16,36 +16,48 @@ object Versions {

const val GRADLE = "8.0.2"

const val JSON_API = "0.1.0"
const val JUNIT = "4.13.2"
const val JVM_TARGET = "1.8"

const val KOIN = "3.3.2"
const val KOIN_ANDROID = "3.3.2"
const val KOIN_ANDROIDX_COMPOSE = "3.4.1"
const val KOTLIN = "1.8.21"
const val KOTLIN_COROUTINES = "1.7.3"
const val KOTEST = "5.5.4"
const val KOTLINX_RESOURCES = "0.2.4"
const val KOVER = "0.7.3"
const val KSP = "1.8.21-1.0.11"
const val KTOR = "2.1.1"

const val MOCKATIVE = "1.3.0"
const val MOCKK = "1.13.3"

const val NAPIER = "2.6.1"

const val ROBOLECTRIC = "4.9.1"

const val TIMBER = "5.0.1"
const val TURBINE = "0.12.1"
}

object Dependencies {
object Gradle {
const val GRADLE = "com.android.tools.build:gradle:${Versions.GRADLE}"
}

object AndroidX {
const val ACTIVITY_COMPOSE = "androidx.activity:activity-compose:${Versions.ANDROIDX_ACTIVITY_COMPOSE}"
}

object Compose {
const val FOUNDATION = "androidx.compose.foundation:foundation:${Versions.COMPOSE}"

const val MATERIAL = "androidx.compose.material:material:${Versions.COMPOSE}"

const val NAVIGATION = "androidx.navigation:navigation-compose:${Versions.COMPOSE_NAVIGATION}"

const val UI = "androidx.compose.ui:ui:${Versions.COMPOSE}"
const val UI_GRAPHICS = "androidx.compose.ui:ui-graphics:${Versions.COMPOSE}"
const val UI_TOOLING = "androidx.compose.ui:ui-tooling:${Versions.COMPOSE}"
const val UI_TOOLING_PREVIEW = "androidx.compose.ui:ui-tooling-preview:${Versions.COMPOSE}"
const val FOUNDATION = "androidx.compose.foundation:foundation:${Versions.COMPOSE}"
const val MATERIAL = "androidx.compose.material:material:${Versions.COMPOSE}"
const val NAVIGATION = "androidx.navigation:navigation-compose:${Versions.COMPOSE_NAVIGATION}"
}

object Koin {
Expand All @@ -54,13 +66,46 @@ object Dependencies {
const val COMPOSE = "io.insert-koin:koin-androidx-compose:${Versions.KOIN_ANDROIDX_COMPOSE}"
}

object Ktor {
const val ANDROID = "io.ktor:ktor-client-android:${Versions.KTOR}"
const val AUTH = "io.ktor:ktor-client-auth:${Versions.KTOR}"

const val CIO = "io.ktor:ktor-client-cio:${Versions.KTOR}"
const val CORE = "io.ktor:ktor-client-core:${Versions.KTOR}"
const val CONTENT_NEGOTIATION = "io.ktor:ktor-client-content-negotiation:${Versions.KTOR}"

const val IOS = "io.ktor:ktor-client-ios:${Versions.KTOR}"

const val JSON = "io.ktor:ktor-serialization-kotlinx-json:${Versions.KTOR}"
const val JSON_API = "co.nimblehq.jsonapi:core:${Versions.JSON_API}"

const val LOGGING = "io.ktor:ktor-client-logging:${Versions.KTOR}"

const val SERIALIZATION = "io.ktor:ktor-client-serialization:${Versions.KTOR}"
}

object Log {
const val NAPIER = "io.github.aakira:napier:${Versions.NAPIER}"
const val TIMBER = "com.jakewharton.timber:timber:${Versions.TIMBER}"
}

object Test {
const val COMPOSE_UI_TEST_JUNIT = "androidx.compose.ui:ui-test-junit4:${Versions.COMPOSE}"
const val COMPOSE_UI_TEST_MANIFEST = "androidx.compose.ui:ui-test-manifest:${Versions.COMPOSE}"
const val COROUTINES = "org.jetbrains.kotlinx:kotlinx-coroutines-test:${Versions.KOTLIN_COROUTINES}"

const val JUNIT = "junit:junit:${Versions.JUNIT}"

const val KOTEST_ASSERTIONS = "io.kotest:kotest-assertions-core:${Versions.KOTEST}"
const val KOTLINX_RESOURCES = "com.goncalossilva:resources:${Versions.KOTLINX_RESOURCES}"

const val MOCKATIVE = "io.mockative:mockative:${Versions.MOCKATIVE}"
const val MOCKATIVE_PROCESSOR = "io.mockative:mockative-processor:${Versions.MOCKATIVE}"
const val MOCKK = "io.mockk:mockk:${Versions.MOCKK}"
const val MOCKK_ANDROID = "io.mockk:mockk-android:${Versions.MOCKK}"

const val ROBOLECTRIC = "org.robolectric:robolectric:${Versions.ROBOLECTRIC}"

const val TURBINE = "app.cash.turbine:turbine:${Versions.TURBINE}"
}
}
12 changes: 12 additions & 0 deletions sample/buildSrc/src/main/java/FileExt.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import java.io.File
import java.util.*

fun File.loadGradleProperties(fileName: String): Properties {
val properties = Properties()
val signingProperties = File(this, fileName)

if (signingProperties.isFile) {
properties.load(signingProperties.inputStream())
}
return properties
}
2 changes: 1 addition & 1 deletion sample/ios/ArkanaKeys/ArkanaKeys/Sources/ArkanaKeys.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import ArkanaKeysInterfaces
public enum ArkanaKeys {
@inline(__always)
fileprivate static let salt: [UInt8] = [
0xf8, 0x68, 0x3e, 0x2e, 0x5d, 0x8a, 0xc4, 0x5f, 0xb6, 0xa7, 0xc0, 0xa0, 0x51, 0x52, 0x28, 0xb9, 0x5a, 0x7d, 0x26, 0xb0, 0xd4, 0x92, 0x77, 0xc0, 0xfd, 0xed, 0x8c, 0x98, 0x91, 0x58, 0x3b, 0xb5, 0xe6, 0xcc, 0x4f, 0x45, 0xff, 0xd1, 0xf7, 0xb, 0xec, 0x42, 0x6a, 0xb, 0xdb, 0xae, 0xf9, 0xda, 0x28, 0x65, 0x8b, 0xbf, 0xcb, 0x84, 0x54, 0x10, 0x8a, 0xc0, 0x13, 0x17, 0xaf, 0x4d, 0xf5, 0xbf
0x51, 0x41, 0xce, 0x6a, 0x58, 0x48, 0x88, 0xd5, 0xfd, 0x28, 0xe4, 0xe4, 0x7d, 0x21, 0x39, 0xf5, 0x70, 0x2b, 0xda, 0xca, 0xef, 0xb4, 0xbb, 0x46, 0x90, 0xc4, 0x27, 0xa2, 0x23, 0xdf, 0x8, 0x25, 0xb4, 0xc3, 0xe, 0x7c, 0x8b, 0xcb, 0x4d, 0x20, 0x23, 0x2e, 0xf9, 0x6f, 0xf1, 0x13, 0x25, 0x59, 0x6, 0x23, 0xce, 0x61, 0xd, 0x3a, 0xc0, 0xa3, 0x52, 0xf3, 0xc, 0x7e, 0x2, 0xd9, 0x70, 0xb5
]

static func decode(encoded: [UInt8], cipher: [UInt8]) -> String {
Expand Down
22 changes: 11 additions & 11 deletions sample/ios/ArkanaKeys/ArkanaKeys/Tests/ArkanaKeysTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ final class ArkanaKeysTests: XCTestCase {
override func setUp() {
super.setUp()
salt = [
0xf8, 0x68, 0x3e, 0x2e, 0x5d, 0x8a, 0xc4, 0x5f, 0xb6, 0xa7, 0xc0, 0xa0, 0x51, 0x52, 0x28, 0xb9, 0x5a, 0x7d, 0x26, 0xb0, 0xd4, 0x92, 0x77, 0xc0, 0xfd, 0xed, 0x8c, 0x98, 0x91, 0x58, 0x3b, 0xb5, 0xe6, 0xcc, 0x4f, 0x45, 0xff, 0xd1, 0xf7, 0xb, 0xec, 0x42, 0x6a, 0xb, 0xdb, 0xae, 0xf9, 0xda, 0x28, 0x65, 0x8b, 0xbf, 0xcb, 0x84, 0x54, 0x10, 0x8a, 0xc0, 0x13, 0x17, 0xaf, 0x4d, 0xf5, 0xbf
0x51, 0x41, 0xce, 0x6a, 0x58, 0x48, 0x88, 0xd5, 0xfd, 0x28, 0xe4, 0xe4, 0x7d, 0x21, 0x39, 0xf5, 0x70, 0x2b, 0xda, 0xca, 0xef, 0xb4, 0xbb, 0x46, 0x90, 0xc4, 0x27, 0xa2, 0x23, 0xdf, 0x8, 0x25, 0xb4, 0xc3, 0xe, 0x7c, 0x8b, 0xcb, 0x4d, 0x20, 0x23, 0x2e, 0xf9, 0x6f, 0xf1, 0x13, 0x25, 0x59, 0x6, 0x23, 0xce, 0x61, 0xd, 0x3a, 0xc0, 0xa3, 0x52, 0xf3, 0xc, 0x7e, 0x2, 0xd9, 0x70, 0xb5
]
globalSecrets = ArkanaKeys.Global()
}
Expand All @@ -26,49 +26,49 @@ final class ArkanaKeysTests: XCTestCase {

func test_decodeRandomHexKey_shouldDecode() {
let encoded: [UInt8] = [
0x9b, 0xc, 0x9, 0x18, 0x38, 0xee, 0xf3, 0x6f, 0x82, 0x94, 0xf0, 0x91, 0x65, 0x64, 0x1e, 0xda, 0x6e, 0x49, 0x45, 0x82, 0xe6, 0xf6, 0x4f, 0xa5, 0xc9, 0xda, 0xed, 0xa9, 0xa5, 0x6c, 0x58, 0xd1, 0x80, 0xf5, 0x2c, 0x27, 0xcb, 0xe3, 0xc2, 0x6e, 0xd9, 0x23, 0x58, 0x6e, 0xea, 0xcf, 0x9d, 0xe9, 0x4a, 0x6, 0xef, 0x8a, 0xa9, 0xb4, 0x65, 0x23, 0xbc, 0xa3, 0x20, 0x23, 0x9b, 0x7e, 0xc2, 0xde, 0xcb, 0x5c, 0x5a, 0x4a, 0x68, 0xb9, 0xf7, 0x6b, 0x87, 0x94, 0xf0, 0x96, 0x65, 0x64, 0x1a, 0x8f, 0x62, 0x1c, 0x47, 0x86, 0xe7, 0xf7, 0x13, 0xa3, 0xc8, 0x89, 0xbe, 0xa9, 0xf2, 0x6d, 0xc, 0xd7, 0xd0, 0xae, 0x7d, 0x72, 0xc7, 0xb7, 0xcf, 0x69, 0xd5, 0x20, 0x5a, 0x3c, 0xba, 0xca, 0xc8, 0xbf, 0x10, 0x56, 0xed, 0xdc, 0xfa, 0xb1, 0x31, 0x20, 0xb8, 0xf6, 0x77, 0x26, 0xcc, 0x79, 0xc6, 0xdc
0x65, 0x24, 0xf9, 0x5a, 0x6c, 0x7d, 0xba, 0xe2, 0xcf, 0x1e, 0xd6, 0xd3, 0x4f, 0x14, 0x5a, 0xc0, 0x11, 0x4d, 0xea, 0xfd, 0xd9, 0x81, 0x8d, 0x75, 0xa7, 0xfd, 0x16, 0x92, 0x14, 0xe7, 0x38, 0x14, 0x85, 0xa0, 0x39, 0x1a, 0xb9, 0xf2, 0x75, 0x46, 0x14, 0x48, 0x9a, 0x57, 0xc2, 0x75, 0x12, 0x6e, 0x62, 0x46, 0xad, 0x7, 0x34, 0xd, 0xf2, 0xc5, 0x37, 0x90, 0x3a, 0x4a, 0x3b, 0xbd, 0x46, 0x8c, 0x30, 0x22, 0xff, 0xb, 0x3d, 0x79, 0xb1, 0xb1, 0x9e, 0x1c, 0xd7, 0xd4, 0x1e, 0x17, 0x5f, 0x93, 0x47, 0x4e, 0xe8, 0xae, 0x8c, 0x86, 0x8f, 0x73, 0xa7, 0xf5, 0x42, 0x90, 0x42, 0xe6, 0x31, 0x43, 0x83, 0xf1, 0x3c, 0x4b, 0xbf, 0xa8, 0x7b, 0x11, 0x1a, 0x1e, 0x9c, 0x59, 0xc7, 0x76, 0x17, 0x6f, 0x3e, 0x1b, 0xfe, 0x3, 0x3d, 0xf, 0xf7, 0xc6, 0x36, 0xc7, 0x3a, 0x46, 0x61, 0xea, 0x46, 0x86
]
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "cd76ed704301466c44c22d8e47a144cdf9cb425e5a2e1ad3bcd5b0136c34437a34dd5334130646268aa63edc5d21c57b6b278f8b9b07ad1e83fc15e026d1c43c")
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "4e704527262725c5af076563791078011c7f298f7fc83f77decf972fec649d69ac1ae19dc430c6ff7e2dc24571e2a99f72274c6190e66e26880b057ed468c363")
}

func test_decodeRandomBase64Key_shouldDecode() {
let encoded: [UInt8] = [
0xc8, 0x1a, 0x44, 0x44, 0x2c, 0xb9, 0xb0, 0x3b, 0xc4, 0xf7, 0xf6, 0xf8, 0x60, 0x22, 0x4b, 0x81, 0xd, 0xf, 0x43, 0xe5, 0x81, 0xfb, 0x3e, 0xaf, 0x92, 0x95, 0xcb, 0xe1, 0xe0, 0x3d, 0x57, 0xc0, 0x82, 0xa8, 0x35, 0x3d, 0xad, 0xa8, 0x9d, 0x59, 0x99, 0xb, 0x1c, 0x5b, 0xad, 0xd4, 0xb7, 0x99, 0x51, 0x6, 0xe0, 0xcb, 0xaa, 0xb1, 0x62, 0x7f, 0xcb, 0xae, 0x66, 0x78, 0xc7, 0x7, 0xa3, 0xde, 0x81, 0xb, 0x51, 0x5, 0x36, 0xe7, 0x93, 0x3d, 0xdc, 0xe5, 0x92, 0xeb, 0x21, 0x2a, 0x7d, 0xdf, 0xc, 0x35, 0x70, 0xfa, 0xb9, 0xc3, 0x4a, 0xfd
0x3, 0x6e, 0x9f, 0, 0x1e, 0x3b, 0xbc, 0x84, 0xaa, 0x6e, 0x9e, 0xa9, 0x35, 0x70, 0x77, 0xb4, 0xa, 0x46, 0xec, 0xbd, 0xb6, 0xf7, 0xc3, 0x72, 0xa2, 0x85, 0x66, 0xea, 0x73, 0x86, 0x4b, 0x7d, 0xdc, 0x99, 0x49, 0x34, 0xfa, 0x9c, 0x6, 0xb, 0xc, 0x56, 0xce, 0x1a, 0xbc, 0x24, 0xe, 0xb, 0x47, 0x64, 0xba, 0x36, 0x5e, 0x75, 0xa7, 0xd7, 0x17, 0x96, 0x7f, 0x12, 0x43, 0xf6, 0x3e, 0x9a, 0x25, 0x70, 0xa7, 0x1a, 0x1b, 0x3c, 0xe5, 0xe0, 0x87, 0x41, 0xbd, 0xdc, 0x45, 0x75, 0x50, 0xb7, 0x3a, 0x51, 0xa2, 0xfc, 0xbd, 0xc3, 0x86, 0x7b
]
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "0rzjq3tdrP6X1pc8WreUUiIooxGyqeluddzxRyjRuIvPvzNCyckta56oAnuohJVayco+kmWbjBRKpxUfVHVJmQ==")
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "R/QjFs4QWFzMHQNAzm6wYCx42AAHPYCXhZGHqWK+/x7uM7+RAGtWSOgtEeslA/N/t1ipCtm5ziY88TiBJzx6Rw==")
}

func test_decodeUUIDKey_shouldDecode() {
let encoded: [UInt8] = [
0x9a, 0xe, 0x5c, 0x16, 0x3e, 0xe8, 0xf0, 0x6f, 0x9b, 0x91, 0xa3, 0x93, 0x33, 0x7f, 0x1c, 0xdb, 0x6a, 0x45, 0xb, 0xd1, 0xe2, 0xa3, 0x16, 0xed, 0x9e, 0x8e, 0xbd, 0xfc, 0xa6, 0x6c, 0x59, 0x8c, 0x82, 0xa8, 0x2e, 0x7d
0x66, 0x70, 0xf8, 0x5a, 0x6b, 0x2d, 0xec, 0xb0, 0xd0, 0x1f, 0xd7, 0xdd, 0x1b, 0xc, 0xd, 0xc3, 0x15, 0x1e, 0xf7, 0xab, 0xda, 0x85, 0xdf, 0x6b, 0xa1, 0xa2, 0x12, 0x91, 0x45, 0xe7, 0x6c, 0x12, 0x80, 0xa5, 0x39, 0x4c
]
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "bfb8cb40-6c3b-4b08-a61a-cc1d74b9dda8")
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "71603ede-739f-46e5-a51d-1f53f8d74f70")
}

func test_decodeTrueBoolValue_shouldDecode() {
let encoded: [UInt8] = [
0x8c, 0x1a, 0x4b, 0x4b
0x25, 0x33, 0xbb, 0xf
]
XCTAssertTrue(ArkanaKeys.decode(encoded: encoded, cipher: salt))
}

func test_decodeFalseBoolValue_shouldDecode() {
let encoded: [UInt8] = [
0x9e, 0x9, 0x52, 0x5d, 0x38
0x37, 0x20, 0xa2, 0x19, 0x3d
]
XCTAssertFalse(ArkanaKeys.decode(encoded: encoded, cipher: salt))
}

func test_decodeIntValue_shouldDecode() {
let encoded: [UInt8] = [
0xcc, 0x5a
0x65, 0x73
]
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), 42)
}

func test_encodeAndDecodeValueWithDollarSign_shouldDecode() {
let encoded: [UInt8] = [
0x8a, 0xd, 0x5f, 0x42, 0x2, 0xae, 0xa8, 0x36, 0xdb, 0xf8, 0xb3, 0xc8, 0x30, 0x36, 0x51
0x23, 0x24, 0xaf, 0x6, 0x7, 0x6c, 0xe4, 0xbc, 0x90, 0x77, 0x97, 0x8c, 0x1c, 0x45, 0x40
]
XCTAssertEqual(ArkanaKeys.decode(encoded: encoded, cipher: salt), "real_$lim_shady")
}
Expand Down
4 changes: 2 additions & 2 deletions sample/ios/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ GEM
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.2.0)
aws-partitions (1.809.0)
aws-partitions (1.810.0)
aws-sdk-core (3.181.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
Expand Down Expand Up @@ -122,7 +122,7 @@ GEM
escape (0.0.4)
ethon (0.16.0)
ffi (>= 1.15.0)
excon (0.100.0)
excon (0.102.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
Expand Down
Loading

0 comments on commit 97f232c

Please sign in to comment.