diff --git a/.gitignore b/.gitignore index 237227b3..50e9d532 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,60 @@ -/.idea -/local.properties -/build -/captures -.DS_Store -.externalNativeBuild -.gradle +# https://github.com/github/gitignore/blob/main/Android.gitignore +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Log/OS Files +*.log + +# Android Studio generated files and folders +captures/ +.externalNativeBuild/ +.cxx/ +*.apk +output.json + +# IntelliJ *.iml -*.focus \ No newline at end of file +.idea/ +misc.xml +deploymentTargetDropDown.xml +render.experimental.xml + +# Keystore files +*.jks +*.keystore + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Android Profiling +*.hprof + +# https://github.com/github/gitignore/blob/main/Kotlin.gitignore +# Kotlin data directory +.kotlin/ + +# Compiled class file +*.class + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +replay_pid* diff --git a/build-config/build.gradle.kts b/build-config/build.gradle.kts new file mode 100644 index 00000000..0e848857 --- /dev/null +++ b/build-config/build.gradle.kts @@ -0,0 +1,10 @@ +plugins { + `kotlin-dsl` +} + +dependencies { + compileOnly(libs.pluginartifact.android) + compileOnly(libs.pluginartifact.kotlin) + compileOnly(libs.pluginartifact.ktlint) + compileOnly(libs.pluginartifact.mavenPublish) +} diff --git a/build-config/settings.gradle.kts b/build-config/settings.gradle.kts new file mode 100644 index 00000000..cc8b70f8 --- /dev/null +++ b/build-config/settings.gradle.kts @@ -0,0 +1,15 @@ +rootProject.name = "build-config" + +dependencyResolutionManagement { + repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS + repositories { + mavenCentral() + google() + gradlePluginPortal() + } + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } +} diff --git a/build-config/src/main/kotlin/configuration/configure-android.gradle.kts b/build-config/src/main/kotlin/configuration/configure-android.gradle.kts new file mode 100644 index 00000000..272d37be --- /dev/null +++ b/build-config/src/main/kotlin/configuration/configure-android.gradle.kts @@ -0,0 +1,37 @@ +import com.android.build.gradle.BaseExtension +import extensions.isAndroidApplicationModule +import extensions.isAndroidLibraryModule +import extensions.isMultiplatformModule + +configure { + compileSdkVersion(34) + defaultConfig { + minSdk = 21 + + if (isAndroidApplicationModule()) { + targetSdk = 34 + versionCode = 1 + versionName = "1.0" + } + + if (isAndroidLibraryModule()) { + val proguardFilename = "consumer-rules.pro" + if (layout.projectDirectory.file(proguardFilename).asFile.exists()) { + consumerProguardFile(proguardFilename) + } + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + testOptions { + unitTests.all(Test::useJUnitPlatform) + } + + if (isMultiplatformModule()) { + sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") + } +} diff --git a/build-config/src/main/kotlin/configuration/configure-explicit-api.gradle.kts b/build-config/src/main/kotlin/configuration/configure-explicit-api.gradle.kts new file mode 100644 index 00000000..74e3ced8 --- /dev/null +++ b/build-config/src/main/kotlin/configuration/configure-explicit-api.gradle.kts @@ -0,0 +1,5 @@ +import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension + +configure { + explicitApi() +} diff --git a/build-config/src/main/kotlin/configuration/configure-kotlin-android.gradle.kts b/build-config/src/main/kotlin/configuration/configure-kotlin-android.gradle.kts new file mode 100644 index 00000000..a40eb2ff --- /dev/null +++ b/build-config/src/main/kotlin/configuration/configure-kotlin-android.gradle.kts @@ -0,0 +1,8 @@ +import extensions.kotlinAndroid +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +kotlinAndroid { + compilerOptions { + jvmTarget = JvmTarget.JVM_1_8 + } +} diff --git a/build-config/src/main/kotlin/configuration/configure-kotlin-desktop.gradle.kts b/build-config/src/main/kotlin/configuration/configure-kotlin-desktop.gradle.kts new file mode 100644 index 00000000..9a853b31 --- /dev/null +++ b/build-config/src/main/kotlin/configuration/configure-kotlin-desktop.gradle.kts @@ -0,0 +1,33 @@ +import extensions.kotlinMultiplatform +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget + +@OptIn(ExperimentalKotlinGradlePluginApi::class) +kotlinMultiplatform { + applyDefaultHierarchyTemplate { + common { + group("jvm") { + withCompilations { + it.target.targetName == "desktop" || it.target is KotlinAndroidTarget + } + } + group("nonAndroid") { + withCompilations { + it.target.targetName == "desktop" + } + } + } + } + + androidTarget { + compilerOptions { + jvmTarget = JvmTarget.JVM_1_8 + } + } + jvm("desktop") { + compilerOptions { + jvmTarget = JvmTarget.JVM_1_8 + } + } +} diff --git a/build-config/src/main/kotlin/configuration/configure-kotlin-multiplatform.gradle.kts b/build-config/src/main/kotlin/configuration/configure-kotlin-multiplatform.gradle.kts new file mode 100644 index 00000000..65bc2256 --- /dev/null +++ b/build-config/src/main/kotlin/configuration/configure-kotlin-multiplatform.gradle.kts @@ -0,0 +1,60 @@ +import extensions.kotlinMultiplatform +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget + +@OptIn(ExperimentalKotlinGradlePluginApi::class) +kotlinMultiplatform { + applyDefaultHierarchyTemplate { + common { + group("jvm") { + withCompilations { + it.target.targetName == "desktop" || it.target is KotlinAndroidTarget + } + } + group("nonAndroid") { + withJs() + withNative() + withWasmJs() + withCompilations { + it.target.targetName == "desktop" + } + } + group("commonWeb") { + withJs() + withWasmJs() + } + } + } + + js(IR) { + browser() + } + @OptIn(ExperimentalWasmDsl::class) + wasmJs { + browser() + } + + androidTarget { + compilerOptions { + jvmTarget = JvmTarget.JVM_1_8 + } + } + jvm("desktop") { + compilerOptions { + jvmTarget = JvmTarget.JVM_1_8 + } + } + + macosX64() + macosArm64() + + iosArm64() + iosX64() + iosSimulatorArm64() + + compilerOptions { + freeCompilerArgs.add("-Xexpect-actual-classes") + } +} diff --git a/build-config/src/main/kotlin/configuration/configure-ktlint.gradle.kts b/build-config/src/main/kotlin/configuration/configure-ktlint.gradle.kts new file mode 100644 index 00000000..260aadc6 --- /dev/null +++ b/build-config/src/main/kotlin/configuration/configure-ktlint.gradle.kts @@ -0,0 +1,8 @@ +import org.jlleitschuh.gradle.ktlint.KtlintExtension + +plugins.apply("org.jlleitschuh.gradle.ktlint") + +configure { + version.set("0.47.1") + disabledRules.set(setOf("filename")) +} diff --git a/build-config/src/main/kotlin/configuration/configure-opt-in.gradle.kts b/build-config/src/main/kotlin/configuration/configure-opt-in.gradle.kts new file mode 100644 index 00000000..3235f4d0 --- /dev/null +++ b/build-config/src/main/kotlin/configuration/configure-opt-in.gradle.kts @@ -0,0 +1,10 @@ +import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension + +configure { + sourceSets.all { + languageSettings { + optIn("cafe.adriel.voyager.core.annotation.InternalVoyagerApi") + optIn("cafe.adriel.voyager.core.annotation.ExperimentalVoyagerApi") + } + } +} diff --git a/build-config/src/main/kotlin/configuration/configure-publishing.gradle.kts b/build-config/src/main/kotlin/configuration/configure-publishing.gradle.kts new file mode 100644 index 00000000..e98d54e9 --- /dev/null +++ b/build-config/src/main/kotlin/configuration/configure-publishing.gradle.kts @@ -0,0 +1,49 @@ +import com.vanniktech.maven.publish.MavenPublishBaseExtension +import com.vanniktech.maven.publish.SonatypeHost +import extensions.isMultiplatformModule +import extensions.kotlinMultiplatform + +pluginManager.apply("com.vanniktech.maven.publish") + +if (isMultiplatformModule()) { + kotlinMultiplatform { + androidTarget { + publishLibraryVariants("release") + } + } +} + +group = "cafe.adriel.voyager" + +configure { + publishToMavenCentral(host = SonatypeHost.S01, automaticRelease = true) + signAllPublications() + + pom { + description = "A pragmatic navigation library for Jetpack Compose" + inceptionYear = "2021" + url = "https://github.com/adrielcafe/voyager" + + licenses { + license { + name = "The MIT License" + url = "https://opensource.org/licenses/MIT" + distribution = "repo" + } + } + + scm { + url = "https://github.com/adrielcafe/voyager" + connection = "scm:git:ssh://git@github.com/adrielcafe/voyager.git" + developerConnection = "scm:git:ssh://git@github.com/adrielcafe/voyager.git" + } + + developers { + developer { + id = "adrielcafe" + name = "Adriel Cafe" + url = "https://github.com/adrielcafe/" + } + } + } +} diff --git a/build-config/src/main/kotlin/extensions/ProjectExtensions.kt b/build-config/src/main/kotlin/extensions/ProjectExtensions.kt new file mode 100644 index 00000000..0cbf33b9 --- /dev/null +++ b/build-config/src/main/kotlin/extensions/ProjectExtensions.kt @@ -0,0 +1,20 @@ +package extensions + +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidExtension +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension + +fun Project.hasPlugin(id: String) = plugins.hasPlugin(id) + +fun Project.isAndroidLibraryModule(): Boolean = hasPlugin("com.android.library") + +fun Project.isAndroidApplicationModule(): Boolean = hasPlugin("com.android.application") + +fun Project.isMultiplatformModule() = hasPlugin("org.jetbrains.kotlin.multiplatform") + +fun Project.kotlinMultiplatform(block: KotlinMultiplatformExtension.() -> Unit) = + extensions.configure(block) + +fun Project.kotlinAndroid(block: KotlinAndroidExtension.() -> Unit) = + extensions.configure(block) diff --git a/build-config/src/main/kotlin/extensions/StringExtensions.kt b/build-config/src/main/kotlin/extensions/StringExtensions.kt new file mode 100644 index 00000000..221a6e44 --- /dev/null +++ b/build-config/src/main/kotlin/extensions/StringExtensions.kt @@ -0,0 +1,11 @@ +package extensions + +import java.util.Locale + +fun String.capitalize(): String = replaceFirstChar { firstChar -> + if (firstChar.isLowerCase()) { + firstChar.titlecase(Locale.getDefault()) + } else { + toString() + } +} diff --git a/build-config/src/main/kotlin/samples-module.gradle.kts b/build-config/src/main/kotlin/samples-module.gradle.kts new file mode 100644 index 00000000..88bb9f41 --- /dev/null +++ b/build-config/src/main/kotlin/samples-module.gradle.kts @@ -0,0 +1,14 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + id("configure-android") + id("configure-opt-in") + id("configure-ktlint") +} + +tasks.withType { + compilerOptions { + jvmTarget = JvmTarget.JVM_1_8 + } +} diff --git a/build-config/src/main/kotlin/voyager-android-module.gradle.kts b/build-config/src/main/kotlin/voyager-android-module.gradle.kts new file mode 100644 index 00000000..a4198b22 --- /dev/null +++ b/build-config/src/main/kotlin/voyager-android-module.gradle.kts @@ -0,0 +1,4 @@ +plugins { + id("voyager-base-module") + id("configure-kotlin-android") +} diff --git a/build-config/src/main/kotlin/voyager-base-module.gradle.kts b/build-config/src/main/kotlin/voyager-base-module.gradle.kts new file mode 100644 index 00000000..46669c0c --- /dev/null +++ b/build-config/src/main/kotlin/voyager-base-module.gradle.kts @@ -0,0 +1,7 @@ +plugins { + id("configure-android") + id("configure-opt-in") + id("configure-explicit-api") + id("configure-publishing") + id("configure-ktlint") +} diff --git a/build-config/src/main/kotlin/voyager-desktop-module.gradle.kts b/build-config/src/main/kotlin/voyager-desktop-module.gradle.kts new file mode 100644 index 00000000..a3122619 --- /dev/null +++ b/build-config/src/main/kotlin/voyager-desktop-module.gradle.kts @@ -0,0 +1,4 @@ +plugins { + id("voyager-base-module") + id("configure-kotlin-desktop") +} diff --git a/build-config/src/main/kotlin/voyager-kmp-module.gradle.kts b/build-config/src/main/kotlin/voyager-kmp-module.gradle.kts new file mode 100644 index 00000000..af06a014 --- /dev/null +++ b/build-config/src/main/kotlin/voyager-kmp-module.gradle.kts @@ -0,0 +1,4 @@ +plugins { + id("voyager-base-module") + id("configure-kotlin-multiplatform") +} diff --git a/build.gradle.kts b/build.gradle.kts index a0cc5ca8..46cfb021 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,44 +1,34 @@ -buildscript { - repositories { - mavenCentral() - google() - gradlePluginPortal() - maven(url = "https://maven.pkg.jetbrains.space/public/p/compose/dev" ) - } - - dependencies { - classpath(libs.plugin.hilt) - classpath(libs.plugin.ktlint) - classpath(libs.plugin.maven) - classpath(libs.plugin.multiplatform.compose) - classpath(libs.plugin.atomicfu) - } -} +import org.gradle.api.internal.catalog.DelegatingProjectDependency plugins { + alias(libs.plugins.android.gradle) apply false + alias(libs.plugins.android.application) apply false + alias(libs.plugins.android.library) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.kotlin.multiplatform) apply false + alias(libs.plugins.kotlin.parcelize) apply false + alias(libs.plugins.kotlin.kapt) apply false + alias(libs.plugins.kotlin.compose) apply false + alias(libs.plugins.kotlin.atomicfu) apply false + alias(libs.plugins.compose.multiplatform) apply false + alias(libs.plugins.hilt) apply false + alias(libs.plugins.ktlint) apply false + alias(libs.plugins.mavenPublish) apply false alias(libs.plugins.binaryCompatibilityValidator) } -subprojects { - apply(plugin = "org.jlleitschuh.gradle.ktlint") - - configure { - version.set("0.47.1") - disabledRules.set(setOf("filename")) +apiValidation { + with(ignoredProjects) { + add(projects.samples.android) + add(projects.samples.multiplatform) + add(projects.samples.multiModule.app) + add(projects.samples.multiModule.featureHome) + add(projects.samples.multiModule.featurePosts) + add(projects.samples.multiModule.navigation) + } + with(nonPublicMarkers) { + add("cafe.adriel.voyager.core.annotation.InternalVoyagerApi") } } -apiValidation { - ignoredProjects.addAll(listOf( - /*samples*/"android", - /*samples*/"multiplatform", - /*samples/multi-modulo*/"app", - /*samples/multi-modulo*/"feature-home", - /*samples/multi-modulo*/"feature-posts", - /*samples/multi-modulo*/"navigation", - )) - nonPublicMarkers.addAll(listOf( - "cafe.adriel.voyager.core.annotation.InternalVoyagerApi", - "cafe.adriel.voyager.core.annotation.ExperimentalVoyagerApi" - )) -} +fun MutableSet.add(dependency: DelegatingProjectDependency) = add(dependency.name) diff --git a/buildSrc/.gitignore b/buildSrc/.gitignore deleted file mode 100644 index 00fd4ddd..00000000 --- a/buildSrc/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build -/.gradle \ No newline at end of file diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts deleted file mode 100644 index 8040a359..00000000 --- a/buildSrc/build.gradle.kts +++ /dev/null @@ -1,15 +0,0 @@ -plugins { - `kotlin-dsl` -} - -repositories { - gradlePluginPortal() - google() - mavenCentral() -} - -dependencies { - implementation(libs.plugin.android) - implementation(libs.plugin.kotlin) - implementation("com.squareup:javapoet:1.13.0") // https://github.com/google/dagger/issues/3068 -} diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts deleted file mode 100644 index b5a0fabf..00000000 --- a/buildSrc/settings.gradle.kts +++ /dev/null @@ -1,7 +0,0 @@ -dependencyResolutionManagement { - versionCatalogs { - create("libs") { - from(files("../gradle/libs.versions.toml")) - } - } -} diff --git a/buildSrc/src/main/kotlin/Setup.kt b/buildSrc/src/main/kotlin/Setup.kt deleted file mode 100644 index 13db7692..00000000 --- a/buildSrc/src/main/kotlin/Setup.kt +++ /dev/null @@ -1,165 +0,0 @@ -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.LibraryExtension -import org.gradle.api.JavaVersion -import org.gradle.api.Project -import org.gradle.api.artifacts.VersionCatalogsExtension -import org.gradle.api.plugins.ExtensionAware -import org.gradle.kotlin.dsl.configure -import org.gradle.kotlin.dsl.creating -import org.gradle.kotlin.dsl.findByType -import org.gradle.kotlin.dsl.get -import org.gradle.kotlin.dsl.getValue -import org.gradle.kotlin.dsl.getting -import org.gradle.kotlin.dsl.invoke -import org.gradle.kotlin.dsl.withType -import org.gradle.kotlin.dsl.getByType -import org.gradle.kotlin.dsl.hasPlugin -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions -import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension -import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget -import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - -private fun BaseExtension.setupAndroid() { - compileSdkVersion(34) - defaultConfig { - minSdk = 21 - targetSdk = 34 - - versionCode = 1 - versionName = "1.0" - } -} - -fun Project.setupModuleForAndroidxCompose( - withKotlinExplicitMode: Boolean = true, -) { - val androidExtension: BaseExtension = extensions.findByType() - ?: extensions.findByType() - ?: error("Could not found Android application or library plugin applied on module $name") - - val libs = extensions.getByType().named("libs") - val composeCompilerVersion = libs.findVersion("composeCompiler").get().requiredVersion - - androidExtension.apply { - setupAndroid() - - buildFeatures.apply { - compose = true - } - - composeOptions { - kotlinCompilerExtensionVersion = composeCompilerVersion - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - testOptions { - unitTests.all { - it.useJUnitPlatform() - } - } - - (this as ExtensionAware).extensions.configure { - configureKotlinJvmOptions(withKotlinExplicitMode) - } - } -} - -fun Project.setupModuleForComposeMultiplatform( - withKotlinExplicitMode: Boolean = true, - fullyMultiplatform: Boolean = false, - enableWasm: Boolean = true, -) { - plugins.withType { - extensions.configure { - if (withKotlinExplicitMode) { - explicitApi() - } - sourceSets { - all { - languageSettings.optIn("cafe.adriel.voyager.core.annotation.InternalVoyagerApi") - languageSettings.optIn("cafe.adriel.voyager.core.annotation.ExperimentalVoyagerApi") - } - } - - applyDefaultHierarchyTemplate { - common { - if(fullyMultiplatform) { - group("commonWeb") { - withJs() - if(enableWasm) { - withWasm() - } - } - } - group("jvm") { - withCompilations { - it.target.targetName == "desktop" || it.target is KotlinAndroidTarget - } - } - group("nonAndroid") { - if(fullyMultiplatform) { - withJs() - withNative() - if(enableWasm) { - withWasm() - } - } - withCompilations { - it.target.targetName == "desktop" - } - } - } - } - - androidTarget { - if (plugins.hasPlugin("com.vanniktech.maven.publish")) { - publishLibraryVariants("release") - } - } - jvm("desktop") - - if (fullyMultiplatform) { - js(IR) { - browser() - } - if (enableWasm) { - @OptIn(ExperimentalWasmDsl::class) - wasmJs { browser() } - } - macosX64() - macosArm64() - iosArm64() - iosX64() - iosSimulatorArm64() - } - } - - findAndroidExtension().apply { - setupAndroid() - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - } - - tasks.withType { - kotlinOptions.configureKotlinJvmOptions(withKotlinExplicitMode) - } - } -} - -private fun KotlinJvmOptions.configureKotlinJvmOptions( - enableExplicitMode: Boolean -) { - jvmTarget = JavaVersion.VERSION_1_8.toString() - - if (enableExplicitMode) freeCompilerArgs += "-Xexplicit-api=strict" - freeCompilerArgs += "-opt-in=cafe.adriel.voyager.core.annotation.InternalVoyagerApi" - freeCompilerArgs += "-opt-in=cafe.adriel.voyager.core.annotation.ExperimentalVoyagerApi" -} - -private fun Project.findAndroidExtension(): BaseExtension = extensions.findByType() - ?: extensions.findByType() - ?: error("Could not found Android application or library plugin applied on module $name") diff --git a/gradle.properties b/gradle.properties index bf523218..719ed675 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,54 +1,21 @@ +# Gradle org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8 + +# Android android.useAndroidX=true -android.enableJetifier=true -kotlin.code.style=official +# Kotlin +kotlin.code.style=official kotlin.native.useEmbeddableCompilerJar=true -# Enable kotlin/native experimental memory model kotlin.native.ignoreDisabledTargets=true -kotlin.native.binary.memoryModel=experimental kotlin.mpp.stability.nowarn=true -# Compose dependencies currently requires to be CompileOny if we want to both -# support Android only projects and multiplatform projects. -# based on the issue below, it seems to only have issues with compileOnly -# when cache is enable, so, based on the currently state of Compose Multiplatform -# the native target also does not work propertly with caching, so, any compose project -# will require `kotlin.native.cacheKind=none` making possible to we continue using compileOnly. -# https://youtrack.jetbrains.com/issue/KT-46377 -kotlin.native.ignoreIncorrectDependencies=true - -android.defaults.buildfeatures.buildconfig = false - +# Compose multiplatform org.jetbrains.compose.experimental.macos.enabled=true org.jetbrains.compose.experimental.jscanvas.enabled=true org.jetbrains.compose.experimental.wasm.enabled=true +# Atomicfu kotlinx.atomicfu.enableJvmIrTransformation=true kotlinx.atomicfu.enableNativeIrTransformation=true kotlinx.atomicfu.enableJsIrTransformation=true - -kotlin.mpp.androidSourceSetLayoutVersion=2 - -# Maven -SONATYPE_HOST=S01 -SONATYPE_AUTOMATIC_RELEASE=true -RELEASE_SIGNING_ENABLED=true - -GROUP=cafe.adriel.voyager - -POM_DESCRIPTION=A pragmatic navigation library for Jetpack Compose -POM_INCEPTION_YEAR=2021 -POM_URL=https://github.com/adrielcafe/voyager - -POM_LICENCE_NAME=The MIT License -POM_LICENCE_URL=https://opensource.org/licenses/MIT -POM_LICENCE_DIST=repo - -POM_SCM_URL=https://github.com/adrielcafe/voyager -POM_SCM_CONNECTION=scm:git:ssh://git@github.com/adrielcafe/voyager.git -POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/adrielcafe/voyager.git - -POM_DEVELOPER_ID=adrielcafe -POM_DEVELOPER_NAME=Adriel Cafe -POM_DEVELOPER_URL=https://github.com/adrielcafe/ \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4e08749a..28027014 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,66 +1,43 @@ [versions] -plugin-android = "8.1.1" -plugin-ktlint = "11.5.1" -plugin-maven = "0.25.3" -plugin-multiplatform-compose = "1.6.10" -plugin-binaryCompatibilityValidator = "0.13.2" -plugin-atomicfu = "0.23.1" +agp = "8.7.2" +kotlin = "2.1.0" +mavenPublish = "0.30.0" +composeMultiplatform = "1.7.1" +binaryCompatibilityValidator = "0.16.3" +atomicfu = "0.26.1" -coroutines = "1.8.0-RC2" -kotlin = "1.9.21" +ktlint = "12.1.2" +coroutines = "1.9.0" kodein = "7.21.2" -koin = "4.0.0" koin-compose = "4.0.0" -hilt = "2.51.1" -leakCanary = "2.14" -appCompat = "1.6.1" -lifecycle = "2.8.0" -composeCompiler = "1.5.7" -composeActivity = "1.7.2" -composeAnimation = "1.5.0" -composeMaterial = "1.5.0" -composeRuntime = "1.5.0" -composeUI = "1.5.0" -rxjava = "3.1.5" +hilt = "2.52" +lifecycle = "2.8.7" +activityCompose = "1.9.3" +rxjava = "3.1.10" -junit = "5.10.0" +androidxKmp-bundle = "1.0.1" +androidxKmp-lifecycle = "2.8.4" -androidxKmp-bundle = "1.0.0" -androidxKmp-lifecycle = "2.8.0" - -multiplatformUuid = "0.8.2" +junit = "5.11.3" [libraries] -plugin-android = { module = "com.android.tools.build:gradle", version.ref = "plugin-android" } -plugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } -plugin-ktlint = { module = "org.jlleitschuh.gradle:ktlint-gradle", version.ref = "plugin-ktlint" } -plugin-maven = { module = "com.vanniktech:gradle-maven-publish-plugin", version.ref = "plugin-maven" } -plugin-hilt = { module = "com.google.dagger:hilt-android-gradle-plugin", version.ref = "hilt" } -plugin-multiplatform-compose = { module = "org.jetbrains.compose:compose-gradle-plugin", version.ref = "plugin-multiplatform-compose" } -plugin-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu-gradle-plugin", version.ref = "plugin-atomicfu" } - -leakCanary = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakCanary" } +# Plugin artifacts +pluginartifact-android = { module = "com.android.tools.build:gradle", version.ref = "agp" } +pluginartifact-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } +pluginartifact-ktlint = { module = "org.jlleitschuh.gradle:ktlint-gradle", version.ref = "ktlint" } +pluginartifact-mavenPublish = { module = "com.vanniktech:gradle-maven-publish-plugin", version.ref = "mavenPublish" } +# Libraries coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" } kodein = { module = "org.kodein.di:kodein-di-framework-compose", version.ref = "kodein" } -koin = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin" } koin-compose = { module = "io.insert-koin:koin-compose", version.ref = "koin-compose" } hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } -appCompat = { module = "androidx.appcompat:appcompat", version.ref = "appCompat" } -lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycle" } -lifecycle-savedState = { module = "androidx.lifecycle:lifecycle-viewmodel-savedstate", version.ref = "lifecycle" } -lifecycle-viewModelKtx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycle" } -lifecycle-viewModelCompose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle" } -compose-rxjava = { module = "androidx.compose.runtime:runtime-rxjava3", version.ref = "composeRuntime" } -compose-compiler = { module = "androidx.compose.compiler:compiler", version.ref = "composeCompiler" } -compose-runtime = { module = "androidx.compose.runtime:runtime", version.ref = "composeRuntime" } -compose-runtimeSaveable = { module = "androidx.compose.runtime:runtime-saveable", version.ref = "composeRuntime" } -compose-runtimeLiveData = { module = "androidx.compose.runtime:runtime-livedata", version.ref = "composeRuntime" } -compose-ui = { module = "androidx.compose.ui:ui", version.ref = "composeUI" } -compose-animation = { module = "androidx.compose.animation:animation", version.ref = "composeAnimation" } -compose-material = { module = "androidx.compose.material:material", version.ref = "composeMaterial" } -compose-materialIcons = { module = "androidx.compose.material:material-icons-core", version.ref = "composeMaterial" } -compose-activity = { module = "androidx.activity:activity-compose", version.ref = "composeActivity" } +androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycle" } +androidx-lifecycle-savedState = { module = "androidx.lifecycle:lifecycle-viewmodel-savedstate", version.ref = "lifecycle" } +androidx-lifecycle-viewModelKtx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycle" } +androidx-lifecycle-viewModelCompose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle" } +androidx-lifecycle-livedata = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycle" } +androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityCompose" } rxjava = { module = "io.reactivex.rxjava3:rxjava", version.ref = "rxjava" } androidxKmp-core-bundle = { module = "org.jetbrains.androidx.core:core-bundle", version.ref = "androidxKmp-bundle" } @@ -68,10 +45,21 @@ androidxKmp-lifecycle-runtimeCompose = { module = "org.jetbrains.androidx.lifecy androidxKmp-lifecycle-viewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel", version.ref = "androidxKmp-lifecycle" } androidxKmp-lifecycle-viewmodelCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidxKmp-lifecycle" } -multiplatformUuid = { module = "com.benasher44:uuid", version.ref = "multiplatformUuid" } - junit-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" } junit-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" } [plugins] -binaryCompatibilityValidator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "plugin-binaryCompatibilityValidator" } +android-gradle = { id = "com.android.tools.build", version.ref = "agp" } +android-application = { id = "com.android.application", version.ref = "agp" } +android-library = { id = "com.android.library", version.ref = "agp" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } +kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } +kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } +kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +kotlin-atomicfu = { id = "org.jetbrains.kotlinx.atomicfu", version.ref = "atomicfu" } +compose-multiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" } +ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" } +mavenPublish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" } +hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } +binaryCompatibilityValidator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binaryCompatibilityValidator" } diff --git a/gradle/samples.versions.toml b/gradle/samples.versions.toml new file mode 100644 index 00000000..a464771d --- /dev/null +++ b/gradle/samples.versions.toml @@ -0,0 +1,13 @@ +[versions] +leakCanary = "2.14" +koin = "4.0.0" +compose = "1.7.5" + +[libraries] +leakCanary = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakCanary" } +koin = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin" } +compose-rxjava = { module = "androidx.compose.runtime:runtime-rxjava3", version.ref = "compose" } +compose-runtime = { module = "androidx.compose.runtime:runtime", version.ref = "compose" } +compose-livedata = { module = "androidx.compose.runtime:runtime-livedata", version.ref = "compose" } +compose-material = { module = "androidx.compose.material:material", version.ref = "compose" } +compose-materialIcons = { module = "androidx.compose.material:material-icons-core", version.ref = "compose" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180f..a4b76b95 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 15de9024..e2847c82 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 1b6c7873..f5feea6d 100755 --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,13 +82,12 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,22 +134,29 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -193,11 +201,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ @@ -205,6 +217,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/gradlew.bat b/gradlew.bat index 107acd32..9d21a218 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,8 +13,10 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +27,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,13 +43,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -56,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -75,13 +78,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/kotlin-js-store/yarn.lock b/kotlin-js-store/yarn.lock index c639ead1..1f34acac 100644 --- a/kotlin-js-store/yarn.lock +++ b/kotlin-js-store/yarn.lock @@ -26,6 +26,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" @@ -44,7 +49,20 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.20": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@jridgewell/trace-mapping@^0.3.9": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -104,31 +122,10 @@ dependencies: "@types/node" "*" -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "8.21.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.2.tgz#2b61b43a8b0e66006856a2a4c8e51f6f773ead27" - integrity sha512-EMpxUyystd3uZVByZap1DACsMXvb82ypQnGn89e1Y0a+LYu3JJscUd/gqhRsVFDkaD2MIiWo0MT8EfXr3DGRKw== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== +"@types/estree@^1.0.5": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": version "4.17.33" @@ -156,7 +153,7 @@ dependencies: "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== @@ -208,145 +205,145 @@ dependencies: "@types/node" "*" -"@types/ws@^8.5.1": - version "8.5.4" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" - integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== +"@types/ws@^8.5.5": + version "8.5.13" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" + integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== dependencies: "@types/node" "*" -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.12.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== dependencies: - "@webassemblyjs/helper-numbers" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" -"@webassemblyjs/floating-point-hex-parser@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" - integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== -"@webassemblyjs/helper-api-error@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" - integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== -"@webassemblyjs/helper-buffer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== -"@webassemblyjs/helper-numbers@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" - integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" - integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== -"@webassemblyjs/helper-wasm-section@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" -"@webassemblyjs/ieee754@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" - integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" - integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" - integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== - -"@webassemblyjs/wasm-edit@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-opt" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - "@webassemblyjs/wast-printer" "1.11.6" - -"@webassemblyjs/wasm-gen@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wasm-opt@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wast-printer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== - dependencies: - "@webassemblyjs/ast" "1.11.6" +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== + +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" + +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== + dependencies: + "@webassemblyjs/ast" "1.14.1" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^2.1.0": +"@webpack-cli/configtest@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== -"@webpack-cli/info@^2.0.1": +"@webpack-cli/info@^2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== -"@webpack-cli/serve@^2.0.3": +"@webpack-cli/serve@^2.0.5": version "2.0.5" resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== @@ -361,11 +358,6 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -374,10 +366,10 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== +acorn-import-attributes@^1.9.5: + version "1.9.5" + resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" + integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== acorn@^8.7.1: version "8.8.2" @@ -428,10 +420,10 @@ ajv@^8.0.0, ajv@^8.8.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-html-community@^0.0.8: version "0.0.8" @@ -561,20 +553,20 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browser-stdout@1.3.1: +browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.14.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== +browserslist@^4.21.10: + version "4.24.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" + integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" + caniuse-lite "^1.0.30001669" + electron-to-chromium "^1.5.41" + node-releases "^2.0.18" + update-browserslist-db "^1.1.1" buffer-from@^1.0.0: version "1.1.2" @@ -604,10 +596,10 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001449: - version "1.0.30001467" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001467.tgz#1afc9c16ed61f50dd87139da87ca43a3e0051c77" - integrity sha512-cEdN/5e+RPikvl9AHm4uuLXxeCNq8rFsQ+lPHTfe/OtypP3WwnVVbjn+6uBV7PaFL6xUFzTh+sSCOz1rKhcO+Q== +caniuse-lite@^1.0.30001669: + version "1.0.30001684" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz#0eca437bab7d5f03452ff0ef9de8299be6b08e16" + integrity sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ== chalk@^4.1.0: version "4.1.2" @@ -617,7 +609,7 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@3.5.3, chokidar@^3.5.1, chokidar@^3.5.3: +chokidar@^3.5.1, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -744,10 +736,10 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookie@~0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@~0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== core-util-is@~1.0.0: version "1.0.3" @@ -788,13 +780,20 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4.3.4, debug@^4.1.0, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@^4.1.0, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@^4.3.5: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + decamelize@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" @@ -837,10 +836,10 @@ di@^0.0.1: resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== dns-equal@^1.0.0: version "1.0.0" @@ -869,10 +868,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.284: - version "1.4.332" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.332.tgz#b981fcf61587abe03c24b301b2cfbdcc2b70e8a5" - integrity sha512-c1Vbv5tuUlBFp0mb3mCIjw+REEsgthRgNE8BlbEDKmvzb8rxjcVki6OkQP83vLN34s0XCxpSkq7AZNep1a6xhw== +electron-to-chromium@^1.5.41: + version "1.5.67" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz#66ebd2be4a77469ac2760ef5e9e460ba9a43a845" + integrity sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ== emoji-regex@^8.0.0: version "8.0.0" @@ -884,31 +883,31 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -engine.io-parser@~5.0.3: - version "5.0.6" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" - integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== +engine.io-parser@~5.2.1: + version "5.2.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f" + integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== -engine.io@~6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.4.1.tgz#8056b4526a88e779f9c280d820422d4e3eeaaae5" - integrity sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw== +engine.io@~6.6.0: + version "6.6.2" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.6.2.tgz#32bd845b4db708f8c774a4edef4e5c8a98b3da72" + integrity sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw== dependencies: "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" "@types/node" ">=10.0.0" accepts "~1.3.4" base64id "2.0.0" - cookie "~0.4.1" + cookie "~0.7.2" cors "~2.8.5" debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.11.0" + engine.io-parser "~5.2.1" + ws "~8.17.1" -enhanced-resolve@^5.13.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== +enhanced-resolve@^5.17.1: + version "5.17.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -933,12 +932,17 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@4.0.0: +escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -1095,14 +1099,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -1111,6 +1107,14 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -1201,31 +1205,30 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.1.3, glob@^7.1.7: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.3, glob@^7.1.7: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.1.1" + minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -1252,7 +1255,7 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -he@1.2.0: +he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -1487,7 +1490,7 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -js-yaml@4.1.0: +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -1537,19 +1540,19 @@ karma-sourcemap-loader@0.4.0: dependencies: graceful-fs "^4.2.10" -karma-webpack@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-5.0.0.tgz#2a2c7b80163fe7ffd1010f83f5507f95ef39f840" - integrity sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA== +karma-webpack@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-5.0.1.tgz#4eafd31bbe684a747a6e8f3e4ad373e53979ced4" + integrity sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ== dependencies: glob "^7.1.3" - minimatch "^3.0.4" + minimatch "^9.0.3" webpack-merge "^4.1.5" -karma@6.4.2: - version "6.4.2" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.2.tgz#a983f874cee6f35990c4b2dcc3d274653714de8e" - integrity sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ== +karma@6.4.4: + version "6.4.4" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.4.tgz#dfa5a426cf5a8b53b43cd54ef0d0d09742351492" + integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w== dependencies: "@colors/colors" "1.5.0" body-parser "^1.19.0" @@ -1570,7 +1573,7 @@ karma@6.4.2: qjobs "^1.2.0" range-parser "^1.2.1" rimraf "^3.0.2" - socket.io "^4.4.1" + socket.io "^4.7.2" source-map "^0.6.1" tmp "^0.2.1" ua-parser-js "^0.7.30" @@ -1581,6 +1584,13 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kotlin-web-helpers@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-2.0.0.tgz#b112096b273c1e733e0b86560998235c09a19286" + integrity sha512-xkVGl60Ygn/zuLkDPx+oHj7jeLR7hCvoNF99nhwXMn8a3ApB4lLiC9pk4ol4NHPjyoCbvQctBqvzUcp8pkqyWw== + dependencies: + format-util "^1.0.5" + launch-editor@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" @@ -1613,7 +1623,7 @@ lodash@^4.17.15, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -1699,13 +1709,6 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -1713,6 +1716,20 @@ minimatch@^3.0.4, minimatch@^3.1.1: dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1, minimatch@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.3: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.3, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -1725,32 +1742,31 @@ mkdirp@^0.5.5: dependencies: minimist "^1.2.6" -mocha@10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" +mocha@10.7.3: + version "10.7.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.3.tgz#ae32003cabbd52b59aece17846056a68eb4b0752" + integrity sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A== + dependencies: + ansi-colors "^4.1.3" + browser-stdout "^1.3.1" + chokidar "^3.5.3" + debug "^4.3.5" + diff "^5.2.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^8.1.0" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^5.1.6" + ms "^2.1.3" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^6.5.1" + yargs "^16.2.0" + yargs-parser "^20.2.9" + yargs-unparser "^2.0.0" ms@2.0.0: version "2.0.0" @@ -1762,7 +1778,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -1775,11 +1791,6 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -1795,10 +1806,10 @@ node-forge@^1: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -1945,6 +1956,11 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" @@ -2132,7 +2148,7 @@ schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^3.1.2: +schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -2182,13 +2198,6 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - serialize-javascript@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" @@ -2196,6 +2205,13 @@ serialize-javascript@^6.0.1: dependencies: randombytes "^2.1.0" +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -2274,25 +2290,26 @@ socket.io-adapter@~2.5.2: dependencies: ws "~8.11.0" -socket.io-parser@~4.2.1: - version "4.2.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206" - integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw== +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" -socket.io@^4.4.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.6.1.tgz#62ec117e5fce0692fa50498da9347cfb52c3bc70" - integrity sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA== +socket.io@^4.7.2: + version "4.8.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.8.1.tgz#fa0eaff965cc97fdf4245e8d4794618459f7558a" + integrity sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg== dependencies: accepts "~1.3.4" base64id "~2.0.0" + cors "~2.8.5" debug "~4.3.2" - engine.io "~6.4.1" + engine.io "~6.6.0" socket.io-adapter "~2.5.2" - socket.io-parser "~4.2.1" + socket.io-parser "~4.2.4" sockjs@^0.3.24: version "0.3.24" @@ -2308,12 +2325,11 @@ source-map-js@^1.0.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-loader@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-4.0.1.tgz#72f00d05f5d1f90f80974eda781cbd7107c125f2" - integrity sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA== +source-map-loader@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-5.0.0.tgz#f593a916e1cc54471cfc8851b905c8a845fc7e38" + integrity sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA== dependencies: - abab "^2.0.6" iconv-lite "^0.6.3" source-map-js "^1.0.2" @@ -2407,18 +2423,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@8.1.1, supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -2426,6 +2435,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -2436,21 +2452,21 @@ tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== +terser-webpack-plugin@^5.3.10: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.20" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.16.8" + terser "^5.26.0" -terser@^5.16.8: - version "5.19.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.3.tgz#359baeba615aef13db4b8c4d77a2aa0d8814aa9e" - integrity sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg== +terser@^5.26.0: + version "5.36.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.36.0.tgz#8b0dbed459ac40ff7b4c9fd5a3a2029de105180e" + integrity sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2489,10 +2505,10 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typescript@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" - integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== +typescript@5.5.4: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== ua-parser-js@^0.7.30: version "0.7.34" @@ -2509,13 +2525,13 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== +update-browserslist-db@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" + integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + escalade "^3.2.0" + picocolors "^1.1.0" uri-js@^4.2.2: version "4.4.1" @@ -2549,10 +2565,10 @@ void-elements@^2.0.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== +watchpack@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -2564,15 +2580,15 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -webpack-cli@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.0.tgz#abc4b1f44b50250f2632d8b8b536cfe2f6257891" - integrity sha512-a7KRJnCxejFoDpYTOwzm5o21ZXMaNqtRlvS183XzGDUPRdVEzJNImcQokqYZ8BNTnk9DkKiuWxw75+DCCoZ26w== +webpack-cli@5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" + integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.1.0" - "@webpack-cli/info" "^2.0.1" - "@webpack-cli/serve" "^2.0.3" + "@webpack-cli/configtest" "^2.1.1" + "@webpack-cli/info" "^2.0.2" + "@webpack-cli/serve" "^2.0.5" colorette "^2.0.14" commander "^10.0.1" cross-spawn "^7.0.3" @@ -2583,10 +2599,10 @@ webpack-cli@5.1.0: rechoir "^0.8.0" webpack-merge "^5.7.3" -webpack-dev-middleware@^5.3.1: - version "5.3.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" - integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== dependencies: colorette "^2.0.10" memfs "^3.4.3" @@ -2594,10 +2610,10 @@ webpack-dev-middleware@^5.3.1: range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@4.15.0: - version "4.15.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz#87ba9006eca53c551607ea0d663f4ae88be7af21" - integrity sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ== +webpack-dev-server@4.15.2: + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" @@ -2605,7 +2621,7 @@ webpack-dev-server@4.15.0: "@types/serve-index" "^1.9.1" "@types/serve-static" "^1.13.10" "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" + "@types/ws" "^8.5.5" ansi-html-community "^0.0.8" bonjour-service "^1.0.11" chokidar "^3.5.3" @@ -2627,7 +2643,7 @@ webpack-dev-server@4.15.0: serve-index "^1.9.1" sockjs "^0.3.24" spdy "^4.0.2" - webpack-dev-middleware "^5.3.1" + webpack-dev-middleware "^5.3.4" ws "^8.13.0" webpack-merge@^4.1.5: @@ -2650,34 +2666,33 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.82.0: - version "5.82.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.82.0.tgz#3c0d074dec79401db026b4ba0fb23d6333f88e7d" - integrity sha512-iGNA2fHhnDcV1bONdUu554eZx+XeldsaeQ8T67H6KKHl2nUSwX8Zm7cmzOA46ox/X1ARxf7Bjv8wQ/HsB5fxBg== +webpack@5.94.0: + version "5.94.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f" + integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg== dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" acorn "^8.7.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" + acorn-import-attributes "^1.9.5" + browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.13.0" + enhanced-resolve "^5.17.1" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" + graceful-fs "^4.2.11" json-parse-even-better-errors "^2.3.1" loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.2" + schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" - watchpack "^2.4.0" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" webpack-sources "^3.2.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: @@ -2713,10 +2728,10 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +workerpool@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" + integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== wrap-ansi@^7.0.0: version "7.0.0" @@ -2742,22 +2757,22 @@ ws@~8.11.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== +ws@~8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-unparser@2.0.0: +yargs-unparser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== @@ -2767,7 +2782,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0, yargs@^16.1.1: +yargs@^16.1.1, yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== diff --git a/samples/.gitignore b/samples/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/samples/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/samples/android/.gitignore b/samples/android/.gitignore deleted file mode 100644 index 2bdf0f6a..00000000 --- a/samples/android/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/build -/debug -/release \ No newline at end of file diff --git a/samples/android/build.gradle.kts b/samples/android/build.gradle.kts index 3dcaa778..e4bacd4a 100644 --- a/samples/android/build.gradle.kts +++ b/samples/android/build.gradle.kts @@ -1,15 +1,13 @@ plugins { - id("com.android.application") - kotlin("android") - kotlin("kapt") - id("kotlin-parcelize") - id("dagger.hilt.android.plugin") + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.kotlin.kapt) + alias(libs.plugins.kotlin.parcelize) + alias(libs.plugins.hilt) + id("samples-module") } -setupModuleForAndroidxCompose( - withKotlinExplicitMode = false -) - android { namespace = "cafe.adriel.voyager.sample" defaultConfig { @@ -33,21 +31,17 @@ dependencies { implementation(projects.voyagerRxjava) implementation(projects.voyagerLivedata) - implementation(libs.kodein) - implementation(libs.koin) - implementation(libs.appCompat) - implementation(libs.lifecycle.viewModelKtx) - implementation(libs.lifecycle.viewModelCompose) - implementation(libs.compose.rxjava) - implementation(libs.compose.compiler) - implementation(libs.compose.runtime) - implementation(libs.compose.runtimeLiveData) - implementation(libs.compose.activity) - implementation(libs.compose.material) - implementation(libs.compose.materialIcons) - implementation(libs.compose.animation) - implementation(libs.hilt.android) kapt(libs.hilt.compiler) + implementation(libs.hilt.android) + implementation(libs.kodein) + implementation(libs.androidx.lifecycle.viewModelKtx) + implementation(libs.androidx.lifecycle.viewModelCompose) + implementation(libs.androidx.activity.compose) + implementation(samples.koin) + implementation(samples.compose.rxjava) + implementation(samples.compose.livedata) + implementation(samples.compose.material) + implementation(samples.compose.materialIcons) - debugImplementation(libs.leakCanary) + debugImplementation(samples.leakCanary) } diff --git a/samples/android/src/main/AndroidManifest.xml b/samples/android/src/main/AndroidManifest.xml index fea83560..27a6a8a6 100644 --- a/samples/android/src/main/AndroidManifest.xml +++ b/samples/android/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ () + val screenModel = koinScreenModel() ListContent(screenModel.items) } diff --git a/samples/multi-module/.gitignore b/samples/multi-module/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/samples/multi-module/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/samples/multi-module/app/.gitignore b/samples/multi-module/app/.gitignore index 2bdf0f6a..a285baf6 100644 --- a/samples/multi-module/app/.gitignore +++ b/samples/multi-module/app/.gitignore @@ -1,3 +1,2 @@ -/build -/debug -/release \ No newline at end of file +debug/ +release/ diff --git a/samples/multi-module/app/build.gradle.kts b/samples/multi-module/app/build.gradle.kts index 024a52d6..5f21d709 100644 --- a/samples/multi-module/app/build.gradle.kts +++ b/samples/multi-module/app/build.gradle.kts @@ -1,12 +1,10 @@ plugins { - id("com.android.application") - kotlin("android") + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) + id("samples-module") } -setupModuleForAndroidxCompose( - withKotlinExplicitMode = false -) - android { namespace = "cafe.adriel.voyager.sample.multimodule" defaultConfig { @@ -20,11 +18,9 @@ dependencies { implementation(projects.samples.multiModule.featureHome) implementation(projects.samples.multiModule.featurePosts) - implementation(libs.appCompat) - implementation(libs.compose.compiler) - implementation(libs.compose.runtime) - implementation(libs.compose.activity) - implementation(libs.compose.material) + implementation(libs.androidx.activity.compose) + implementation(samples.compose.runtime) + implementation(samples.compose.material) - debugImplementation(libs.leakCanary) + debugImplementation(samples.leakCanary) } diff --git a/samples/multi-module/app/src/main/AndroidManifest.xml b/samples/multi-module/app/src/main/AndroidManifest.xml index 81747145..f6275cb8 100644 --- a/samples/multi-module/app/src/main/AndroidManifest.xml +++ b/samples/multi-module/app/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ Unit = { - binaries { + applyDefaultHierarchyTemplate() + + listOf( + macosX64(), + macosArm64() + ).forEach { macosTarget -> + macosTarget.binaries { executable { entryPoint = "main" freeCompilerArgs += listOf( @@ -47,8 +39,7 @@ kotlin { } } } - macosX64(macOsConfiguation) - macosArm64(macOsConfiguation) + listOf( iosX64(), iosArm64(), @@ -60,6 +51,28 @@ kotlin { } } + androidTarget { + compilerOptions { + jvmTarget = JvmTarget.JVM_1_8 + } + } + jvm("desktop") { + compilerOptions { + jvmTarget = JvmTarget.JVM_1_8 + } + } + + @OptIn(ExperimentalWasmDsl::class) + wasmJs { + moduleName = "composeApp" + browser { + commonWebpackConfig { + outputFileName = "composeApp.js" + } + } + binaries.executable() + } + js(IR) { browser() binaries.executable() @@ -67,57 +80,50 @@ kotlin { sourceSets { commonMain.dependencies { - implementation(compose.material) - implementation(compose.runtime) - implementation(projects.voyagerCore) implementation(projects.voyagerNavigator) + + implementation(compose.runtime) + implementation(compose.ui) + implementation(compose.material) implementation(libs.coroutines.core) } androidMain.dependencies { - implementation(libs.appCompat) - implementation(libs.compose.activity) + implementation(libs.androidx.activity.compose) } - val desktopMain by getting { - dependencies { - implementation(compose.desktop.currentOs) - } + jvmMain.dependencies { + implementation(compose.desktop.currentOs) } } } -android { - defaultConfig { - applicationId = "cafe.adriel.voyager.sample.multiplatform" - } -} - -compose.desktop { - application { - mainClass = "cafe.adriel.voyager.sample.multiplatform.AppKt" - nativeDistributions { - targetFormats(Dmg, Msi, Deb) - packageName = "jvm" - packageVersion = "1.0.0" +compose { + desktop { + application { + mainClass = "cafe.adriel.voyager.sample.multiplatform.AppKt" + nativeDistributions { + targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) + packageName = "jvm" + packageVersion = "1.0.0" + } + } + nativeApplication { + targets(kotlin.targets.getByName("macosX64")) + distributions { + targetFormats(TargetFormat.Dmg) + packageName = "MultiplatformSample" + packageVersion = "1.0.0" + } } - } -} - -compose.desktop.nativeApplication { - targets(kotlin.targets.getByName("macosX64")) - distributions { - targetFormats(Dmg) - packageName = "MultiplatformSample" - packageVersion = "1.0.0" } } afterEvaluate { val baseTask = "createDistributableNative" - listOf("debug", "release").forEach { - val createAppTaskName = baseTask + it.capitalize() + "macosX64".capitalize() + listOf("debug", "release").forEach { buildType -> + val createAppTaskName = baseTask + buildType.capitalize() + "macosX64".capitalize() val createAppTask = tasks.findByName(createAppTaskName) as? AbstractNativeMacApplicationPackageTask? ?: return@forEach @@ -125,7 +131,7 @@ afterEvaluate { val destinationDir = createAppTask.destinationDir.get().asFile val packageName = createAppTask.packageName.get() - tasks.create("runNative" + it.capitalize()) { + tasks.create("runNative" + buildType.capitalize()) { group = createAppTask.group dependsOn(createAppTaskName) doLast { @@ -134,7 +140,3 @@ afterEvaluate { } } } - -compose.experimental { - web.application {} -} diff --git a/samples/multiplatform/src/androidMain/AndroidManifest.xml b/samples/multiplatform/src/androidMain/AndroidManifest.xml index 08fd8c65..c78c55fa 100644 --- a/samples/multiplatform/src/androidMain/AndroidManifest.xml +++ b/samples/multiplatform/src/androidMain/AndroidManifest.xml @@ -4,7 +4,7 @@ { + useModule("${requested.id.id}:gradle:${requested.version}") + } + } + } + } +} + dependencyResolutionManagement { - // repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) +// repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS repositories { google() mavenCentral() - maven(url = "https://maven.pkg.jetbrains.space/public/p/compose/dev" ) + gradlePluginPortal() + mavenLocal() + maven(url = "https://maven.pkg.jetbrains.space/public/p/compose/dev") + } + versionCatalogs { + create("samples") { + from(files("./gradle/samples.versions.toml")) + } } } +includeBuild("build-config") + plugins { id("com.dropbox.focus") version "0.4.0" } -configure { +configure { allSettingsFileName.set("includes.gradle.kts") focusFileName.set(".focus") } diff --git a/voyager-bottom-sheet-navigator/.gitignore b/voyager-bottom-sheet-navigator/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-bottom-sheet-navigator/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-bottom-sheet-navigator/build.gradle.kts b/voyager-bottom-sheet-navigator/build.gradle.kts index 1b5b8f10..5d0ab0d7 100644 --- a/voyager-bottom-sheet-navigator/build.gradle.kts +++ b/voyager-bottom-sheet-navigator/build.gradle.kts @@ -1,12 +1,11 @@ plugins { - kotlin("multiplatform") - id("com.android.library") - id("org.jetbrains.compose") - id("com.vanniktech.maven.publish") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.compose.multiplatform) + id("voyager-kmp-module") } -setupModuleForComposeMultiplatform(fullyMultiplatform = true) - android { namespace = "cafe.adriel.voyager.navigator.bottomSheet" } @@ -16,17 +15,15 @@ kotlin { commonMain.dependencies { api(projects.voyagerCore) api(projects.voyagerNavigator) - compileOnly(compose.runtime) - compileOnly(compose.material) + implementation(compose.runtime) + implementation(compose.material) } - jvmTest.dependencies { implementation(libs.junit.api) runtimeOnly(libs.junit.engine) } - androidMain.dependencies { - implementation(libs.compose.activity) + implementation(libs.androidx.activity.compose) } } } diff --git a/voyager-bottom-sheet-navigator/consumer-rules.pro b/voyager-bottom-sheet-navigator/consumer-rules.pro deleted file mode 100644 index e69de29b..00000000 diff --git a/voyager-core/.gitignore b/voyager-core/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-core/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-core/build.gradle.kts b/voyager-core/build.gradle.kts index 5e80f46b..22691252 100644 --- a/voyager-core/build.gradle.kts +++ b/voyager-core/build.gradle.kts @@ -1,25 +1,21 @@ plugins { - kotlin("multiplatform") - id("com.android.library") - id("org.jetbrains.compose") - id("com.vanniktech.maven.publish") - id("kotlinx-atomicfu") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.kotlin.atomicfu) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.compose.multiplatform) + id("voyager-kmp-module") } -setupModuleForComposeMultiplatform(fullyMultiplatform = true) - android { namespace = "cafe.adriel.voyager.core" - defaultConfig { - consumerProguardFiles("consumer-rules.pro") - } } kotlin { sourceSets { commonMain.dependencies { - compileOnly(compose.runtime) - compileOnly(compose.runtimeSaveable) + implementation(compose.runtime) + implementation(compose.runtimeSaveable) implementation(libs.coroutines.core) } jvmTest.dependencies { @@ -27,17 +23,12 @@ kotlin { runtimeOnly(libs.junit.engine) } androidMain.dependencies { - implementation(libs.compose.activity) + implementation(libs.androidx.activity.compose) - implementation(libs.lifecycle.runtime) - implementation(libs.lifecycle.savedState) - implementation(libs.lifecycle.viewModelKtx) - implementation(libs.lifecycle.viewModelCompose) - } - val commonWebMain by getting { - dependencies { - implementation(libs.multiplatformUuid) - } + implementation(libs.androidx.lifecycle.runtime) + implementation(libs.androidx.lifecycle.savedState) + implementation(libs.androidx.lifecycle.viewModelKtx) + implementation(libs.androidx.lifecycle.viewModelCompose) } } } diff --git a/voyager-core/src/commonMain/kotlin/cafe/adriel/voyager/core/registry/ScreenRegistry.kt b/voyager-core/src/commonMain/kotlin/cafe/adriel/voyager/core/registry/ScreenRegistry.kt index 51408e11..6d2a8862 100644 --- a/voyager-core/src/commonMain/kotlin/cafe/adriel/voyager/core/registry/ScreenRegistry.kt +++ b/voyager-core/src/commonMain/kotlin/cafe/adriel/voyager/core/registry/ScreenRegistry.kt @@ -19,6 +19,7 @@ public object ScreenRegistry { } public inline fun register(noinline factory: (T) -> Screen) { + @Suppress("UNCHECKED_CAST") factories[T::class] = factory as ScreenFactory } diff --git a/voyager-core/src/commonWebMain/kotlin/cafe.adriel.voyager.core/lifecycle/ConfigurationChecker.kt b/voyager-core/src/commonWebMain/kotlin/cafe.adriel.voyager.core/lifecycle/ConfigurationChecker.kt index 4dc661fe..e17adfb2 100644 --- a/voyager-core/src/commonWebMain/kotlin/cafe.adriel.voyager.core/lifecycle/ConfigurationChecker.kt +++ b/voyager-core/src/commonWebMain/kotlin/cafe.adriel.voyager.core/lifecycle/ConfigurationChecker.kt @@ -1,12 +1,14 @@ package cafe.adriel.voyager.core.lifecycle import androidx.compose.runtime.Composable +import androidx.compose.runtime.NonRestartableComposable import androidx.compose.runtime.Stable import androidx.compose.runtime.remember private val configurationChecker = ConfigurationChecker() @Composable +@NonRestartableComposable internal actual fun getConfigurationChecker(): ConfigurationChecker { return remember { configurationChecker } } diff --git a/voyager-core/src/commonWebMain/kotlin/cafe.adriel.voyager.core/screen/ScreenKey.web.kt b/voyager-core/src/commonWebMain/kotlin/cafe.adriel.voyager.core/screen/ScreenKey.web.kt index e32e2d27..7708e233 100644 --- a/voyager-core/src/commonWebMain/kotlin/cafe.adriel.voyager.core/screen/ScreenKey.web.kt +++ b/voyager-core/src/commonWebMain/kotlin/cafe.adriel.voyager.core/screen/ScreenKey.web.kt @@ -1,5 +1,7 @@ package cafe.adriel.voyager.core.screen -import com.benasher44.uuid.uuid4 +import kotlin.uuid.ExperimentalUuidApi +import kotlin.uuid.Uuid -internal actual fun randomUuid(): String = uuid4().toString() +@OptIn(ExperimentalUuidApi::class) +internal actual fun randomUuid(): String = Uuid.random().toString() diff --git a/voyager-core/src/desktopMain/kotlin/cafe/adriel/voyager/core/lifecycle/ConfigurationChecker.kt b/voyager-core/src/desktopMain/kotlin/cafe/adriel/voyager/core/lifecycle/ConfigurationChecker.kt index 4dc661fe..e17adfb2 100644 --- a/voyager-core/src/desktopMain/kotlin/cafe/adriel/voyager/core/lifecycle/ConfigurationChecker.kt +++ b/voyager-core/src/desktopMain/kotlin/cafe/adriel/voyager/core/lifecycle/ConfigurationChecker.kt @@ -1,12 +1,14 @@ package cafe.adriel.voyager.core.lifecycle import androidx.compose.runtime.Composable +import androidx.compose.runtime.NonRestartableComposable import androidx.compose.runtime.Stable import androidx.compose.runtime.remember private val configurationChecker = ConfigurationChecker() @Composable +@NonRestartableComposable internal actual fun getConfigurationChecker(): ConfigurationChecker { return remember { configurationChecker } } diff --git a/voyager-core/src/nativeMain/kotlin/cafe.adriel.voyager.core/lifecycle/ConfigurationChecker.kt b/voyager-core/src/nativeMain/kotlin/cafe.adriel.voyager.core/lifecycle/ConfigurationChecker.kt index 4dc661fe..e17adfb2 100644 --- a/voyager-core/src/nativeMain/kotlin/cafe.adriel.voyager.core/lifecycle/ConfigurationChecker.kt +++ b/voyager-core/src/nativeMain/kotlin/cafe.adriel.voyager.core/lifecycle/ConfigurationChecker.kt @@ -1,12 +1,14 @@ package cafe.adriel.voyager.core.lifecycle import androidx.compose.runtime.Composable +import androidx.compose.runtime.NonRestartableComposable import androidx.compose.runtime.Stable import androidx.compose.runtime.remember private val configurationChecker = ConfigurationChecker() @Composable +@NonRestartableComposable internal actual fun getConfigurationChecker(): ConfigurationChecker { return remember { configurationChecker } } diff --git a/voyager-hilt/.gitignore b/voyager-hilt/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-hilt/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-hilt/build.gradle.kts b/voyager-hilt/build.gradle.kts index 41cbdcf4..57c3f7f1 100644 --- a/voyager-hilt/build.gradle.kts +++ b/voyager-hilt/build.gradle.kts @@ -1,17 +1,13 @@ plugins { - id("com.android.library") - kotlin("android") - kotlin("kapt") - id("com.vanniktech.maven.publish") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.kotlin.kapt) + id("voyager-android-module") } -setupModuleForAndroidxCompose() - android { namespace = "cafe.adriel.voyager.hilt" - defaultConfig { - consumerProguardFiles("consumer-rules.pro") - } } kapt { @@ -22,12 +18,10 @@ dependencies { api(projects.voyagerScreenmodel) api(projects.voyagerNavigator) - implementation(libs.compose.runtime) - implementation(libs.compose.ui) - implementation(libs.lifecycle.savedState) - implementation(libs.lifecycle.viewModelKtx) + implementation(libs.androidx.lifecycle.savedState) + implementation(libs.androidx.lifecycle.viewModelKtx) + implementation(libs.androidx.lifecycle.viewModelCompose) implementation(libs.hilt.android) - implementation(libs.lifecycle.viewModelCompose) kapt(libs.hilt.compiler) testRuntimeOnly(libs.junit.engine) diff --git a/voyager-hilt/consumer-rules.pro b/voyager-hilt/consumer-rules.pro deleted file mode 100644 index e69de29b..00000000 diff --git a/voyager-kodein/.gitignore b/voyager-kodein/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-kodein/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-kodein/build.gradle.kts b/voyager-kodein/build.gradle.kts index 9e6459b5..bcf78fcd 100644 --- a/voyager-kodein/build.gradle.kts +++ b/voyager-kodein/build.gradle.kts @@ -1,12 +1,11 @@ plugins { - kotlin("multiplatform") - id("com.android.library") - id("org.jetbrains.compose") - id("com.vanniktech.maven.publish") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.compose.multiplatform) + id("voyager-kmp-module") } -setupModuleForComposeMultiplatform(fullyMultiplatform = true) - android { namespace = "cafe.adriel.voyager.kodein" } @@ -17,11 +16,10 @@ kotlin { api(projects.voyagerCore) api(projects.voyagerScreenmodel) api(projects.voyagerNavigator) - compileOnly(compose.runtime) - compileOnly(compose.runtimeSaveable) compileOnly(libs.kodein) + implementation(compose.runtime) + implementation(compose.runtimeSaveable) } - jvmTest.dependencies { implementation(libs.junit.api) runtimeOnly(libs.junit.engine) diff --git a/voyager-kodein/consumer-rules.pro b/voyager-kodein/consumer-rules.pro deleted file mode 100644 index e69de29b..00000000 diff --git a/voyager-koin/.gitignore b/voyager-koin/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-koin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-koin/build.gradle.kts b/voyager-koin/build.gradle.kts index 089d5bc7..4f9a00f3 100644 --- a/voyager-koin/build.gradle.kts +++ b/voyager-koin/build.gradle.kts @@ -1,19 +1,13 @@ plugins { - kotlin("multiplatform") - id("com.android.library") - id("org.jetbrains.compose") - id("com.vanniktech.maven.publish") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.compose.multiplatform) + id("voyager-kmp-module") } -setupModuleForComposeMultiplatform( - fullyMultiplatform = true -) - android { namespace = "cafe.adriel.voyager.koin" - defaultConfig { - consumerProguardFiles("consumer-rules.pro") - } } kotlin { @@ -23,8 +17,8 @@ kotlin { api(projects.voyagerScreenmodel) api(projects.voyagerNavigator) - compileOnly(compose.runtime) - compileOnly(compose.runtimeSaveable) + implementation(compose.runtime) + implementation(compose.runtimeSaveable) implementation(libs.coroutines.core) } diff --git a/voyager-koin/consumer-rules.pro b/voyager-koin/consumer-rules.pro deleted file mode 100644 index e69de29b..00000000 diff --git a/voyager-lifecycle-kmp/.gitignore b/voyager-lifecycle-kmp/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-lifecycle-kmp/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-lifecycle-kmp/build.gradle.kts b/voyager-lifecycle-kmp/build.gradle.kts index 48ee6b1c..f4d282ca 100644 --- a/voyager-lifecycle-kmp/build.gradle.kts +++ b/voyager-lifecycle-kmp/build.gradle.kts @@ -1,12 +1,11 @@ plugins { - kotlin("multiplatform") - id("com.android.library") - id("org.jetbrains.compose") - id("com.vanniktech.maven.publish") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.compose.multiplatform) + id("voyager-kmp-module") } -setupModuleForComposeMultiplatform(fullyMultiplatform = true) - android { namespace = "cafe.adriel.voyager.lifecycle.kmp" } @@ -16,22 +15,20 @@ kotlin { commonMain.dependencies { api(projects.voyagerCore) api(projects.voyagerNavigator) - compileOnly(compose.runtime) - compileOnly(compose.runtimeSaveable) + implementation(compose.runtime) + implementation(compose.runtimeSaveable) implementation(libs.androidxKmp.lifecycle.viewmodelCompose) implementation(libs.androidxKmp.lifecycle.viewmodel) implementation(libs.androidxKmp.lifecycle.runtimeCompose) implementation(libs.androidxKmp.core.bundle) } - jvmTest.dependencies { - implementation(libs.junit.api) runtimeOnly(libs.junit.engine) + implementation(libs.junit.api) } - androidMain.dependencies { - compileOnly(libs.lifecycle.savedState) - compileOnly(compose.ui) + implementation(libs.androidx.lifecycle.savedState) + implementation(compose.ui) } } } diff --git a/voyager-livedata/.gitignore b/voyager-livedata/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-livedata/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-livedata/build.gradle.kts b/voyager-livedata/build.gradle.kts index 86d92754..bb6d2dab 100644 --- a/voyager-livedata/build.gradle.kts +++ b/voyager-livedata/build.gradle.kts @@ -1,23 +1,18 @@ plugins { - id("com.android.library") - kotlin("android") - id("com.vanniktech.maven.publish") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + id("voyager-android-module") } -setupModuleForAndroidxCompose() - android { namespace = "cafe.adriel.voyager.livedata" - defaultConfig { - consumerProguardFiles("consumer-rules.pro") - } } dependencies { api(projects.voyagerCore) api(projects.voyagerScreenmodel) - implementation(libs.compose.runtimeLiveData) + implementation(libs.androidx.lifecycle.livedata) testRuntimeOnly(libs.junit.engine) testImplementation(libs.junit.api) diff --git a/voyager-livedata/consumer-rules.pro b/voyager-livedata/consumer-rules.pro deleted file mode 100644 index e69de29b..00000000 diff --git a/voyager-navigator/.gitignore b/voyager-navigator/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-navigator/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-navigator/build.gradle.kts b/voyager-navigator/build.gradle.kts index 961ecd71..4fd5fe31 100644 --- a/voyager-navigator/build.gradle.kts +++ b/voyager-navigator/build.gradle.kts @@ -1,12 +1,11 @@ plugins { - kotlin("multiplatform") - id("com.android.library") - id("org.jetbrains.compose") - id("com.vanniktech.maven.publish") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.compose.multiplatform) + id("voyager-kmp-module") } -setupModuleForComposeMultiplatform(fullyMultiplatform = true) - android { namespace = "cafe.adriel.voyager.navigator" } @@ -15,17 +14,15 @@ kotlin { sourceSets { commonMain.dependencies { api(projects.voyagerCore) - compileOnly(compose.runtime) - compileOnly(compose.runtimeSaveable) + implementation(compose.runtime) + implementation(compose.runtimeSaveable) } - jvmTest.dependencies { implementation(libs.junit.api) runtimeOnly(libs.junit.engine) } - androidMain.dependencies { - implementation(libs.compose.activity) + implementation(libs.androidx.activity.compose) } } } diff --git a/voyager-navigator/consumer-rules.pro b/voyager-navigator/consumer-rules.pro deleted file mode 100644 index e69de29b..00000000 diff --git a/voyager-rxjava/.gitignore b/voyager-rxjava/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-rxjava/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-rxjava/build.gradle.kts b/voyager-rxjava/build.gradle.kts index 2f838756..2c2438d4 100644 --- a/voyager-rxjava/build.gradle.kts +++ b/voyager-rxjava/build.gradle.kts @@ -1,11 +1,9 @@ plugins { - kotlin("multiplatform") - id("com.android.library") - id("com.vanniktech.maven.publish") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.multiplatform) + id("voyager-desktop-module") } -setupModuleForComposeMultiplatform() - android { namespace = "cafe.adriel.voyager.rxjava" } diff --git a/voyager-rxjava/consumer-rules.pro b/voyager-rxjava/consumer-rules.pro deleted file mode 100644 index e69de29b..00000000 diff --git a/voyager-screenmodel/.gitignore b/voyager-screenmodel/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-screenmodel/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-screenmodel/build.gradle.kts b/voyager-screenmodel/build.gradle.kts index 298d3f46..38ca6de1 100644 --- a/voyager-screenmodel/build.gradle.kts +++ b/voyager-screenmodel/build.gradle.kts @@ -1,12 +1,11 @@ plugins { - kotlin("multiplatform") - id("com.android.library") - id("org.jetbrains.compose") - id("com.vanniktech.maven.publish") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.compose.multiplatform) + id("voyager-kmp-module") } -setupModuleForComposeMultiplatform(fullyMultiplatform = true) - android { namespace = "cafe.adriel.voyager.screenmodel" } @@ -16,11 +15,10 @@ kotlin { commonMain.dependencies { api(projects.voyagerCore) api(projects.voyagerNavigator) - compileOnly(compose.runtime) - compileOnly(compose.runtimeSaveable) + implementation(compose.runtime) + implementation(compose.runtimeSaveable) implementation(libs.coroutines.core) } - jvmTest.dependencies { implementation(libs.junit.api) runtimeOnly(libs.junit.engine) diff --git a/voyager-screenmodel/consumer-rules.pro b/voyager-screenmodel/consumer-rules.pro deleted file mode 100644 index e69de29b..00000000 diff --git a/voyager-tab-navigator/.gitignore b/voyager-tab-navigator/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-tab-navigator/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-tab-navigator/build.gradle.kts b/voyager-tab-navigator/build.gradle.kts index df715718..95a71503 100644 --- a/voyager-tab-navigator/build.gradle.kts +++ b/voyager-tab-navigator/build.gradle.kts @@ -1,12 +1,11 @@ plugins { - kotlin("multiplatform") - id("com.android.library") - id("org.jetbrains.compose") - id("com.vanniktech.maven.publish") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.compose.multiplatform) + id("voyager-kmp-module") } -setupModuleForComposeMultiplatform(fullyMultiplatform = true) - android { namespace = "cafe.adriel.voyager.navigator.tab" } @@ -16,10 +15,9 @@ kotlin { commonMain.dependencies { api(projects.voyagerCore) api(projects.voyagerNavigator) - compileOnly(compose.runtime) - compileOnly(compose.ui) + implementation(compose.runtime) + implementation(compose.ui) } - jvmTest.dependencies { implementation(libs.junit.api) runtimeOnly(libs.junit.engine) diff --git a/voyager-tab-navigator/consumer-rules.pro b/voyager-tab-navigator/consumer-rules.pro deleted file mode 100644 index e69de29b..00000000 diff --git a/voyager-transitions/.gitignore b/voyager-transitions/.gitignore deleted file mode 100644 index 42afabfd..00000000 --- a/voyager-transitions/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/voyager-transitions/build.gradle.kts b/voyager-transitions/build.gradle.kts index 604c7f2e..fd80efce 100644 --- a/voyager-transitions/build.gradle.kts +++ b/voyager-transitions/build.gradle.kts @@ -1,12 +1,11 @@ plugins { - kotlin("multiplatform") - id("com.android.library") - id("org.jetbrains.compose") - id("com.vanniktech.maven.publish") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.compose.multiplatform) + id("voyager-kmp-module") } -setupModuleForComposeMultiplatform(fullyMultiplatform = true) - android { namespace = "cafe.adriel.voyager.transitions" } @@ -16,9 +15,8 @@ kotlin { commonMain.dependencies { api(projects.voyagerCore) api(projects.voyagerNavigator) - compileOnly(compose.animation) + implementation(compose.animation) } - jvmTest.dependencies { implementation(libs.junit.api) runtimeOnly(libs.junit.engine) diff --git a/voyager-transitions/consumer-rules.pro b/voyager-transitions/consumer-rules.pro deleted file mode 100644 index e69de29b..00000000