Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
xcodebuild clean test -project TestApp.xcodeproj -scheme TestApp -destination "platform=iOS Simulator,OS=16.2,name=iPhone 12" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO region=${{ secrets.region }} clientId=${{ secrets.clientid }}
- name: Upload test result
if: ${{ always() }}
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: reports
path: build/reports/
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ DerivedData/
!*.xcodeproj/xcshareddata/
!*.xcworkspace/contents.xcworkspacedata
**/xcshareddata/WorkspaceSettings.xcsettings
kotlin-js-store/
kotlin-js-store/
/.kotlin/
96 changes: 35 additions & 61 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,39 +1,42 @@
@file:OptIn(ExperimentalWasmDsl::class)

import com.android.build.gradle.LibraryExtension
import com.liftric.vault.GetVaultSecretTask
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest
import org.jetbrains.kotlin.gradle.tasks.*

plugins {
kotlin("multiplatform") version libs.versions.kotlin
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.kotlin.serialization)
id("com.android.library") version libs.versions.android.tools.gradle
alias(libs.plugins.definitions)
alias(libs.plugins.npm.publishing)
alias(libs.plugins.android.library)
alias(libs.plugins.versioning)
alias(libs.plugins.vault.client)
id("maven-publish")
id("signing")
}

repositories {
mavenCentral()
google()
mavenCentral()
gradlePluginPortal()
}

java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}

kotlin {
ios {
binaries.framework()
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach {
it.binaries.framework()
}

iosSimulatorArm64()

androidTarget() {
androidTarget {
publishAllLibraryVariants()
}
jvm()
Expand All @@ -53,6 +56,15 @@ kotlin {
}
}
}
wasmJs {
browser ()
binaries.library()
compilations.all {
compileTaskProvider.configure {
compilerOptions.freeCompilerArgs.add("-Xir-minimized-member-names=false")
}
}
}

sourceSets {
val commonMain by getting {
Expand Down Expand Up @@ -96,17 +108,8 @@ kotlin {
implementation(libs.opt.java)
}
}
val iosMain by getting {
dependencies {
api(libs.ktor.client.darwin)
}
}
val iosTest by getting
val iosSimulatorArm64Main by getting {
dependsOn(iosMain)
}
val iosSimulatorArm64Test by getting {
dependsOn(iosTest)
iosMain.dependencies {
api(libs.ktor.client.darwin)
}
val jsMain by getting {
dependencies {
Expand All @@ -118,6 +121,12 @@ kotlin {
implementation(kotlin("test-js"))
}
}
val wasmJsMain by getting {
dependencies {
api(libs.ktor.client.cio)
api(libs.kotlinx.browser)
}
}
all {
languageSettings {
optIn("kotlinx.serialization.ExperimentalSerializationApi")
Expand All @@ -130,7 +139,7 @@ kotlin {

configure<LibraryExtension> {
defaultConfig.apply {
compileSdk = 30
compileSdk = 35
minSdkVersion(21)
targetSdkVersion(30)
testInstrumentationRunner = "org.robolectric.RobolectricTestRunner"
Expand Down Expand Up @@ -189,7 +198,7 @@ tasks {
doFirst {
val (clientId, region) = with(testSecrets.secret.get()) {
((System.getenv("clientId") ?: this["client_id_dev"].toString()) to
(System.getenv("region") ?: this["client_region_dev"].toString()))
(System.getenv("region") ?: this["client_region_dev"].toString()))
}

mkdir("$buildDir/gen")
Expand All @@ -214,7 +223,7 @@ tasks {
withType<KotlinCompile> {
kotlinOptions {
jvmTarget = "11"
languageVersion = "1.5"
languageVersion = "2.1"
freeCompilerArgs = listOf(
"-Xinline-classes"
)
Expand Down Expand Up @@ -314,41 +323,6 @@ publishing {
}
}

val npmAccessKey: String? by project

npmPublish {
organization.set("liftric")
access.set(PUBLIC)
readme.set(rootProject.file("README.md"))

packages {
named("js") {
packageName.set(project.name)
packageJson {
keywords.set(
listOf(
"kotlin",
"cognito",
"identity-provider",
"liftric",
"aws"
)
)
license.set("MIT")
description.set("Lightweight AWS Cognito Identity Provider client.")
homepage.set("https://github.com/liftric/cognito-idp")
}
}
}

registries {
npmjs {
uri.set(uri("https://registry.npmjs.org"))
authToken.set(npmAccessKey)
}
}
}

signing {
val signingKey: String? by project
val signingPassword: String? by project
Expand Down
1 change: 0 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,5 @@ kotlin.incremental=true
kotlin.incremental.multiplatform=true
kotlin.caching.enabled=true
kotlin.code.style=official
kotlin.js.generate.externals=true
kotlin.native.binary.memoryModel=experimental
kotlin.js.ir.output.granularity=whole-program
37 changes: 37 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[versions]
android-tools-gradle = "8.9.3"
kotlin = "2.1.20"
ktor = "3.1.3"
kotlinx-coroutines = "1.10.2"
kotlinx-serialization = "1.8.1"
kotlinx-browser = "0.3"
androidx-test-core = "1.6.1"
roboelectric = "4.9"
opt-java = "1.3.2"
vault-client = "2.0.0"
versioning = "3.1.0"
npm-publishing = "3.5.3"
definitions = "5.124.0"

[libraries]
ktor-client-core = { group = "io.ktor", name = "ktor-client-core", version.ref = "ktor" }
ktor-client-android = { group = "io.ktor", name = "ktor-client-android", version.ref = "ktor" }
ktor-client-darwin = { group = "io.ktor", name = "ktor-client-darwin-legacy", version.ref = "ktor" }
ktor-client-jvm = { group = "io.ktor", name = "ktor-client-java", version.ref = "ktor" }
ktor-client-js = { group = "io.ktor", name = "ktor-client-js", version.ref = "ktor" }
ktor-client-cio = { group = "io.ktor", name = "ktor-client-cio", version.ref = "ktor" }
kotlinx-coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" }
kotlinx-serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
kotlinx-browser = { group = "org.jetbrains.kotlinx", name = "kotlinx-browser", version.ref = "kotlinx-browser" }
androidx-test-core = { group = "androidx.test", name = "core", version.ref = "androidx-test-core" }
roboelectric = { group = "org.robolectric", name = "robolectric", version.ref = "roboelectric" }
opt-java = { group = "com.github.bastiaanjansen", name = "otp-java", version.ref = "opt-java" }

[plugins]
vault-client = { id = "com.liftric.vault-client-plugin", version.ref = "vault-client" }
versioning = { id = "net.nemerosa.versioning", version.ref = "versioning" }
npm-publishing = { id = "dev.petuska.npm.publish", version.ref = "npm-publishing" }
definitions = { id = "io.github.turansky.kfc.definitions", version.ref = "definitions" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
android-library = { id = "com.android.library", version.ref = "android-tools-gradle" }
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
34 changes: 1 addition & 33 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,36 +6,4 @@ pluginManagement {
mavenCentral()
gradlePluginPortal()
}
}

dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}

versionCatalogs {
create("libs") {
version("android-tools-gradle", "8.1.0")
version("kotlin", "1.9.10")
version("ktor", "2.3.5")

library("ktor-client-core", "io.ktor", "ktor-client-core").versionRef("ktor")
library("ktor-client-android", "io.ktor", "ktor-client-android").versionRef("ktor")
library("ktor-client-darwin", "io.ktor", "ktor-client-darwin-legacy").versionRef("ktor")
library("ktor-client-jvm", "io.ktor", "ktor-client-java").versionRef("ktor")
library("ktor-client-js", "io.ktor", "ktor-client-js").versionRef("ktor")
library("kotlinx-coroutines", "org.jetbrains.kotlinx", "kotlinx-coroutines-core").version("1.7.2")
library("kotlinx-serialization", "org.jetbrains.kotlinx", "kotlinx-serialization-json").version("1.5.1")
library("androidx-test-core", "androidx.test", "core").version("1.2.0")
library("roboelectric", "org.robolectric", "robolectric").version("4.9")
library("opt-java", "com.github.bastiaanjansen", "otp-java").version("1.3.2")

plugin("vault-client", "com.liftric.vault-client-plugin").version("2.0.0")
plugin("versioning", "net.nemerosa.versioning").version("3.0.0")
plugin("npm-publishing", "dev.petuska.npm.publish").version("3.0.0")
plugin("definitions", "io.github.turansky.kfc.definitions").version("5.50.0")
plugin("kotlin.serialization", "org.jetbrains.kotlin.plugin.serialization").versionRef("kotlin")
}
}
}
}
4 changes: 2 additions & 2 deletions src/commonMain/kotlin/com/liftric/cognito/idp/core/Payload.kt
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ internal data class ConfirmForgotPassword(
val Password: String
)

@JsExport

@Serializable
data class UserAttribute(
val Name: String,
Expand Down Expand Up @@ -134,7 +134,7 @@ internal data class SetUserMFAPreference(
val SoftwareTokenMfaSettings: MfaSettings?
)

@JsExport

@Serializable
data class MfaSettings(
val Enabled: Boolean,
Expand Down
20 changes: 10 additions & 10 deletions src/commonMain/kotlin/com/liftric/cognito/idp/core/Response.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ data class SignInResponse(
val Session: String?
)

@JsExport

@Serializable
data class AuthenticationResult(
val AccessToken: String?,
Expand All @@ -33,28 +33,28 @@ data class AuthenticationResult(
val NewDeviceMetadata: NewDeviceMetadata?,
)

@JsExport

@Serializable
data class NewDeviceMetadata(
val DeviceGroupKey: String?,
val DeviceKey: String?,
)

@JsExport

@Serializable
data class SignUpResponse(
val CodeDeliveryDetails: CodeDeliveryDetails?,
val UserConfirmed: Boolean,
val UserSub: String
)

@JsExport

@Serializable
data class ResendConfirmationCodeResponse(
val CodeDeliveryDetails: CodeDeliveryDetails
)

@JsExport

@Serializable
data class CodeDeliveryDetails(
val AttributeName: String?,
Expand All @@ -71,7 +71,7 @@ data class GetUserResponse(
val Username: String
)

@JsExport

@Serializable
data class MFAOptions(
val AttributeName: String?,
Expand All @@ -83,26 +83,26 @@ data class UpdateUserAttributesResponse(
val CodeDeliveryDetailsList: List<CodeDeliveryDetails> = listOf()
)

@JsExport

@Serializable
data class GetAttributeVerificationCodeResponse(
val CodeDeliveryDetails: CodeDeliveryDetails
)

@JsExport

@Serializable
data class ForgotPasswordResponse(
val CodeDeliveryDetails: CodeDeliveryDetails
)

@JsExport

@Serializable
data class AssociateSoftwareTokenResponse(
val SecretCode: String,
val Session: String?
)

@JsExport

@Serializable
data class VerifySoftwareTokenResponse(
val Session: String?,
Expand Down
Loading