From 8fa66cb8e5e0f35c6947717968e7fa1f235a0925 Mon Sep 17 00:00:00 2001 From: Emil Kantis Date: Mon, 23 Dec 2024 11:51:04 +0100 Subject: [PATCH] Upgrading to Arrow v2 (#269) * migrating to Arrow v2 * re-adding composeModify laws * upgrade yarn lock * Removing SetterLaws https://github.com/arrow-kt/arrow/discussions/2859 * Cleaning up build warnings Example of warning: > > Configure project :kotest-assertions-arrow-fx-coroutines > w: A compileOnly dependency is used in targets: Kotlin/JS. > Dependencies: > - io.arrow-kt:arrow-fx-coroutines:2.0.0 (source sets: jsMain) > > Using compileOnly dependencies in these targets is not currently supported, because compileOnly dependencies must be present during the compilation of projects that depend on this project. > > To ensure consistent compilation behaviour, compileOnly dependencies should be exposed as api dependencies. > > Example: > > kotlin { > sourceSets { > nativeMain { > dependencies { > compileOnly("org.example:lib:1.2.3") > // additionally add the compileOnly dependency as an api dependency: > api("org.example:lib:1.2.3") > } > } > } > } > > This warning can be suppressed in gradle.properties: > > kotlin.suppressGradlePluginWarnings=IncorrectCompileOnlyDependencyWarning --- .gitignore | 1 + README.md | 4 + .../main/kotlin/kotest-conventions.gradle.kts | 152 +-- gradle/libs.versions.toml | 7 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../build.gradle.kts | 6 + .../arrow/fx/coroutines/ProjectResource.kt | 3 - .../arrow/fx/coroutines/Resource.kt | 11 +- .../arrow/fx/coroutines/ResourceExtension.kt | 44 +- .../arrow/fx/coroutines/ResourceUnderTest.kt | 14 +- kotest-assertions-arrow/build.gradle.kts | 6 + .../kotest/assertions/arrow/core/Validated.kt | 184 ---- .../arrow/core/ValidatedMatchers.kt | 49 - kotest-property-arrow-optics/build.gradle.kts | 7 + .../property/arrow/optics/SetterLaws.kt | 48 - .../property/arrow/optics/TraversalTests.kt | 7 +- kotest-property-arrow/build.gradle.kts | 6 + .../io/kotest/property/arrow/core/Const.kt | 8 - .../io/kotest/property/arrow/core/Endo.kt | 8 - .../io/kotest/property/arrow/core/Eval.kt | 8 - .../kotest/property/arrow/core/MonoidLaws.kt | 42 - .../io/kotest/property/arrow/core/Nel.kt | 9 +- .../property/arrow/core/SemigroupLaws.kt | 21 - .../property/arrow/core/SemiringLaws.kt | 320 +++---- .../io/kotest/property/arrow/core/Tuple.kt | 63 -- .../kotest/property/arrow/core/Validated.kt | 21 - .../io/kotest/property/arrow/core/IorTests.kt | 8 +- .../property/arrow/core/MonoidLawTests.kt | 15 - .../property/arrow/core/ValidatedTests.kt | 27 - kotlin-js-store/yarn.lock | 903 ++++++++++-------- publish-mpp.gradle.kts | 31 +- 31 files changed, 776 insertions(+), 1259 deletions(-) delete mode 100644 kotest-assertions-arrow/src/commonMain/kotlin/io/kotest/assertions/arrow/core/Validated.kt delete mode 100644 kotest-assertions-arrow/src/commonTest/kotlin/io/kotest/assertions/arrow/core/ValidatedMatchers.kt delete mode 100644 kotest-property-arrow-optics/src/commonMain/kotlin/io/kotest/property/arrow/optics/SetterLaws.kt delete mode 100644 kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Const.kt delete mode 100644 kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Endo.kt delete mode 100644 kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Eval.kt delete mode 100644 kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/MonoidLaws.kt delete mode 100644 kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/SemigroupLaws.kt delete mode 100644 kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Validated.kt delete mode 100644 kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/MonoidLawTests.kt delete mode 100644 kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/ValidatedTests.kt diff --git a/.gitignore b/.gitignore index c844ec18..c8eb796a 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ project/plugins/project/ credentials.sbt /.idea/ .DS_Store +.kotlin diff --git a/README.md b/README.md index 43318876..76d223c0 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,10 @@ The project is not shipping the arrow jars because this leads to dependency conf ## Changelog +### 2.0.0 + +* Release for Kotlin 2.1.0 and Arrow 2.0 + ### 1.4.0 * Release for Kotlin 1.8 and Kotest 5.7 and Arrow 1.2 diff --git a/buildSrc/src/main/kotlin/kotest-conventions.gradle.kts b/buildSrc/src/main/kotlin/kotest-conventions.gradle.kts index dd8f4960..381f9ff5 100644 --- a/buildSrc/src/main/kotlin/kotest-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/kotest-conventions.gradle.kts @@ -1,12 +1,9 @@ import org.gradle.api.tasks.testing.Test import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.api.tasks.testing.logging.TestLogEvent -import org.gradle.kotlin.dsl.all -import org.gradle.kotlin.dsl.dependencies import org.gradle.kotlin.dsl.named plugins { - `java-library` kotlin("multiplatform") id("ru.vyarus.animalsniffer") } @@ -22,144 +19,47 @@ version = Ci.version kotlin { explicitApi() - targets { - metadata() + metadata() - jvm { - compilations.all { - kotlinOptions.jvmTarget = "1.8" - } - } - - js(IR) { - browser() - nodejs() + jvm { + compilations.all { + kotlinOptions.jvmTarget = "1.8" } + } - linuxX64() - - mingwX64() - - iosArm32() - iosArm64() - iosSimulatorArm64() - iosX64() - macosArm64() - macosX64() - tvosArm64() - tvosSimulatorArm64() - tvosX64() - watchosArm32() - watchosArm64() - watchosSimulatorArm64() - watchosX64() - watchosX86() + js(IR) { + browser() + nodejs() } - sourceSets { - val commonMain by getting - val commonTest by getting { - dependsOn(commonMain) - } + linuxX64() - val jvmMain by getting { - dependsOn(commonMain) - } + mingwX64() + + iosArm64() + iosSimulatorArm64() + iosX64() + macosArm64() + macosX64() + tvosArm64() + tvosSimulatorArm64() + tvosX64() + watchosArm32() + watchosArm64() + watchosSimulatorArm64() + watchosX64() + + applyDefaultHierarchyTemplate() + sourceSets { val kotestVersion = resolveVersion("kotest") val jvmTest by getting { - dependsOn(commonTest) - dependsOn(jvmMain) dependencies { implementation("io.kotest:kotest-runner-junit5:$kotestVersion") } } - val jsMain by getting { - dependsOn(commonMain) - } - - val jsTest by getting { - dependsOn(commonTest) - dependsOn(jsMain) - } - - val mingwX64Main by getting - val linuxX64Main by getting - val iosArm32Main by getting - val iosArm64Main by getting - val iosSimulatorArm64Main by getting - val iosX64Main by getting - val macosArm64Main by getting - val macosX64Main by getting - val tvosArm64Main by getting - val tvosSimulatorArm64Main by getting - val tvosX64Main by getting - val watchosArm32Main by getting - val watchosArm64Main by getting - val watchosSimulatorArm64Main by getting - val watchosX64Main by getting - val watchosX86Main by getting - - val nativeMain by creating { - dependsOn(commonMain) - mingwX64Main.dependsOn(this) - linuxX64Main.dependsOn(this) - iosArm32Main.dependsOn(this) - iosArm64Main.dependsOn(this) - iosSimulatorArm64Main.dependsOn(this) - iosX64Main.dependsOn(this) - macosArm64Main.dependsOn(this) - macosX64Main.dependsOn(this) - tvosArm64Main.dependsOn(this) - tvosSimulatorArm64Main.dependsOn(this) - tvosX64Main.dependsOn(this) - watchosArm32Main.dependsOn(this) - watchosArm64Main.dependsOn(this) - watchosSimulatorArm64Main.dependsOn(this) - watchosX64Main.dependsOn(this) - watchosX86Main.dependsOn(this) - } - - val mingwX64Test by getting - val linuxX64Test by getting - val iosArm32Test by getting - val iosArm64Test by getting - val iosSimulatorArm64Test by getting - val iosX64Test by getting - val macosArm64Test by getting - val macosX64Test by getting - val tvosArm64Test by getting - val tvosSimulatorArm64Test by getting - val tvosX64Test by getting - val watchosArm32Test by getting - val watchosArm64Test by getting - val watchosSimulatorArm64Test by getting - val watchosX64Test by getting - val watchosX86Test by getting - - create("nativeTest") { - dependsOn(nativeMain) - dependsOn(commonTest) - mingwX64Test.dependsOn(this) - linuxX64Test.dependsOn(this) - iosArm32Test.dependsOn(this) - iosArm64Test.dependsOn(this) - iosSimulatorArm64Test.dependsOn(this) - iosX64Test.dependsOn(this) - macosArm64Test.dependsOn(this) - macosX64Test.dependsOn(this) - tvosArm64Test.dependsOn(this) - tvosSimulatorArm64Test.dependsOn(this) - tvosX64Test.dependsOn(this) - watchosArm32Test.dependsOn(this) - watchosArm64Test.dependsOn(this) - watchosSimulatorArm64Test.dependsOn(this) - watchosX64Test.dependsOn(this) - watchosX86Test.dependsOn(this) - } - all { languageSettings.optIn("kotlin.RequiresOptIn") } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4f665692..ef8425e0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,9 @@ [versions] -arrow = "1.2.4" -kotlin = "1.8.10" +arrow = "2.0.0" +kotlin = "2.1.0" kotest = "5.8.1" kotlinx-coroutines = "1.6.4" -animalsniffer = "1.7.1" +animalsniffer = "1.7.2" kotlinBinaryCompatibilityValidator = "0.14.0" [libraries] @@ -18,6 +18,7 @@ kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-c arrow-fx-coroutines = { module = "io.arrow-kt:arrow-fx-coroutines", version.ref = "arrow" } arrow-core = { module = "io.arrow-kt:arrow-core", version.ref = "arrow" } arrow-optics = { module = "io.arrow-kt:arrow-optics", version.ref = "arrow" } +arrow-functions = { module = "io.arrow-kt:arrow-functions", version.ref = "arrow" } # Gradle plugins used in buildSrc kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c7d437bb..21d5e095 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/kotest-assertions-arrow-fx-coroutines/build.gradle.kts b/kotest-assertions-arrow-fx-coroutines/build.gradle.kts index 6f4a6ef1..328fbb74 100644 --- a/kotest-assertions-arrow-fx-coroutines/build.gradle.kts +++ b/kotest-assertions-arrow-fx-coroutines/build.gradle.kts @@ -21,6 +21,12 @@ kotlin { } } + jsMain { + dependencies { + api(libs.arrow.fx.coroutines) + } + } + nativeMain { dependencies { implementation(libs.arrow.fx.coroutines) diff --git a/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/ProjectResource.kt b/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/ProjectResource.kt index e0b9c40f..2b398ed0 100644 --- a/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/ProjectResource.kt +++ b/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/ProjectResource.kt @@ -1,8 +1,6 @@ package io.kotest.assertions.arrow.fx.coroutines import arrow.fx.coroutines.Resource -import arrow.fx.coroutines.continuations.ResourceScope -import arrow.fx.coroutines.continuations.resource import io.kotest.core.extensions.LazyMaterialized import io.kotest.core.listeners.ProjectListener @@ -32,7 +30,6 @@ public class ProjectResource private constructor( ) : ProjectListener, LazyMaterialized by default { public constructor(resource: Resource) : this(resource, ResourceLazyMaterialized(resource)) - public constructor(block: suspend ResourceScope.() -> Resource) : this(resource { block().bind() }) override suspend fun beforeProject() { default.init() diff --git a/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/Resource.kt b/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/Resource.kt index 7b0c5ace..0a55b5be 100644 --- a/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/Resource.kt +++ b/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/Resource.kt @@ -1,13 +1,14 @@ package io.kotest.assertions.arrow.fx.coroutines -import arrow.core.identity import arrow.fx.coroutines.Resource -import arrow.fx.coroutines.continuations.resource +import arrow.fx.coroutines.resourceScope public suspend infix fun Resource.shouldBeResource(a: A): A = - use { it shouldBe a } + resourceScope { + bind() shouldBe a + } public suspend infix fun Resource.shouldBeResource(expected: Resource): A = - resource { + resourceScope { bind() shouldBe expected.bind() - }.use(::identity) + } diff --git a/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/ResourceExtension.kt b/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/ResourceExtension.kt index 5437c44c..5a6b6490 100644 --- a/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/ResourceExtension.kt +++ b/kotest-assertions-arrow-fx-coroutines/src/commonMain/kotlin/io/kotest/assertions/arrow/fx/coroutines/ResourceExtension.kt @@ -1,7 +1,6 @@ package io.kotest.assertions.arrow.fx.coroutines -import arrow.fx.coroutines.ExitCase -import arrow.fx.coroutines.Resource +import arrow.fx.coroutines.* import io.kotest.core.extensions.LazyMaterialized import io.kotest.core.extensions.LazyMountableExtension import io.kotest.core.listeners.AfterSpecListener @@ -62,28 +61,28 @@ public fun Resource.extension(lifecycleMode: LifecycleMode = LifecycleMod public class ResourceExtension( public val resource: Resource, public val lifecycleMode: LifecycleMode = LifecycleMode.Spec, ) : LazyMountableExtension, TestListener, AfterSpecListener { - + private var underlying: ResourceLazyMaterialized? = null - + override fun mount(configure: A.() -> Unit): LazyMaterialized = ResourceLazyMaterialized(resource, configure).also { underlying = it } - + override suspend fun beforeSpec(spec: Spec) { super.beforeSpec(spec) if (lifecycleMode == LifecycleMode.Spec) { underlying?.init() } } - + override suspend fun afterSpec(spec: Spec) { if (lifecycleMode == LifecycleMode.Spec) { underlying?.release() } underlying?.close() } - + override suspend fun beforeAny(testCase: TestCase) { val every = lifecycleMode == LifecycleMode.EveryTest val root = lifecycleMode == LifecycleMode.Root && testCase.isRootTest() @@ -92,7 +91,7 @@ public class ResourceExtension( underlying?.init() } } - + override suspend fun afterAny(testCase: TestCase, result: TestResult) { val every = lifecycleMode == LifecycleMode.EveryTest val root = lifecycleMode == LifecycleMode.Root && testCase.isRootTest() @@ -107,22 +106,22 @@ internal class ResourceLazyMaterialized( private val resource: Resource, private val configure: A.() -> Unit = {}, ) : LazyMaterialized { - + sealed interface State { - object Empty : State - object Closed : State + data object Empty : State + data object Closed : State data class Loading( val acquiring: CompletableDeferred = CompletableDeferred(), val finalizers: CompletableDeferred Unit> = CompletableDeferred(), ) : State - + data class Done(val value: A, val finalizers: suspend (ExitCase) -> Unit) : State } - + private val state = AtomicReference>(State.Empty) - + override suspend fun get(): A = init() - + @OptIn(DelicateCoroutinesApi::class) tailrec suspend fun init(): A = when (val current = state.value) { is State.Done -> current.value @@ -131,11 +130,10 @@ internal class ResourceLazyMaterialized( State.Empty -> { val loading = State.Loading() if (state.compareAndSet(State.Empty, loading)) { - val (res, fin) = resource.allocated() - .let { (acquire, finalizer) -> - val a = acquire() + val (res, fin) = resource.allocate() + .let { (a, finalizer) -> @Suppress("NAME_SHADOWING") - val finalizer: suspend (ExitCase) -> Unit = { finalizer(a, it) } + val finalizer: suspend (ExitCase) -> Unit = { finalizer(it) } Pair(a, finalizer) } state.value = State.Done(res, fin) @@ -145,19 +143,19 @@ internal class ResourceLazyMaterialized( } else init() } } - + tailrec suspend fun release(): Unit = when (val current = state.value) { State.Empty -> Unit is State.Done -> if (state.compareAndSet(current, State.Empty)) current.finalizers(ExitCase.Completed) else release() - + is State.Loading -> if (state.compareAndSet(current, State.Empty)) current.finalizers.await() .invoke(ExitCase.Completed) else release() - + State.Closed -> Unit } - + fun close() { state.value = State.Closed } diff --git a/kotest-assertions-arrow-fx-coroutines/src/commonTest/kotlin/io/kotest/assertions/arrow/fx/coroutines/ResourceUnderTest.kt b/kotest-assertions-arrow-fx-coroutines/src/commonTest/kotlin/io/kotest/assertions/arrow/fx/coroutines/ResourceUnderTest.kt index 06893bb7..cf3a77d3 100644 --- a/kotest-assertions-arrow-fx-coroutines/src/commonTest/kotlin/io/kotest/assertions/arrow/fx/coroutines/ResourceUnderTest.kt +++ b/kotest-assertions-arrow-fx-coroutines/src/commonTest/kotlin/io/kotest/assertions/arrow/fx/coroutines/ResourceUnderTest.kt @@ -1,6 +1,7 @@ package io.kotest.assertions.arrow.fx.coroutines import arrow.fx.coroutines.Resource +import arrow.fx.coroutines.resource class ResourceUnderTest { var count: Int = 0 @@ -15,18 +16,19 @@ class ResourceUnderTest { isConfigured = true } - fun asResource(): Resource = - Resource( - { + fun asResource(): Resource = resource { + install( + acquire = { isReleased = false isOpen = true - count += 1 - this + count++ + this@ResourceUnderTest }, - { res, _ -> + release = { res, _ -> res.isOpen = false res.isConfigured = false res.isReleased = true } ) + } } diff --git a/kotest-assertions-arrow/build.gradle.kts b/kotest-assertions-arrow/build.gradle.kts index ed6ca1b8..411dd3db 100644 --- a/kotest-assertions-arrow/build.gradle.kts +++ b/kotest-assertions-arrow/build.gradle.kts @@ -19,6 +19,12 @@ kotlin { } } + jsMain { + dependencies { + api(libs.arrow.core) + } + } + nativeMain { dependencies { implementation(libs.arrow.core) diff --git a/kotest-assertions-arrow/src/commonMain/kotlin/io/kotest/assertions/arrow/core/Validated.kt b/kotest-assertions-arrow/src/commonMain/kotlin/io/kotest/assertions/arrow/core/Validated.kt deleted file mode 100644 index ef5323a6..00000000 --- a/kotest-assertions-arrow/src/commonMain/kotlin/io/kotest/assertions/arrow/core/Validated.kt +++ /dev/null @@ -1,184 +0,0 @@ -package io.kotest.assertions.arrow.core - -import arrow.core.Invalid -import arrow.core.Valid -import arrow.core.Validated -import io.kotest.assertions.arrow.shouldBe -import io.kotest.assertions.arrow.shouldNotBe -import kotlin.contracts.ExperimentalContracts -import kotlin.contracts.contract - -/** - * smart casts to [Validated.Valid] and fails with [failureMessage] otherwise - * ```kotlin - * import arrow.core.Validated - * import arrow.core.computations.either - * import arrow.core.valid - * import arrow.core.invalid - * import arrow.core.NonEmptyList - * import arrow.typeclasses.Semigroup - * import java.net.MalformedURLException - * import java.net.URL - * import shouldBeValid - * - * data class ConnectionParams(val url: URL, val port: Int) - * - * abstract class Read { - * abstract fun read(s: String): A? - * - * companion object { - * val urlRead: Read = - * object : Read() { - * override fun read(s: String): URL? = - * try { - * URL(s) - * } catch (_: MalformedURLException) { - * null - * } - * } - * - * val intRead: Read = - * object : Read() { - * override fun read(s: String): Int? = - * if (s.matches(Regex("-?[0-9]+"))) s.toInt() else null - * } - * } - * } - * - * sealed class ConfigError { - * data class MissingConfig(val field: String) : ConfigError() - * data class ParseConfig(val field: String) : ConfigError() - * } - * - * data class Config(val map: Map) { - * suspend fun parse(read: Read, key: String): ValidatedNel = - * either { - * val value: String = Validated.fromNullable(map[key]) { - * ConfigError.MissingConfig(key) - * }.bind() - * val readVal: A = Validated.fromNullable(read.read(value)) { - * ConfigError.ParseConfig(key) - * }.bind() - * readVal - * }.toValidatedNel() - * } - * - * suspend fun main() { - * //sampleStart - * val config = Config(mapOf("wrong field" to "127.0.0.1", "port" to "8080", "url" to "https://kotest.io")) - * - * val params: ConnectionParams = - * config.parse(Read.urlRead, "url") - * .zip( - * Semigroup.nonEmptyList(), - * config.parse(Read.intRead, "port") - * ) { url: URL, port -> ConnectionParams(url, port) } - * .shouldBeInvalid() - * //sampleEnd - * println("connection = $params") - * } - * ``` - */ -@OptIn(ExperimentalContracts::class) -public fun Validated.shouldBeValid( - failureMessage: (Invalid) -> String = { "Expected Validated.Valid, but found Invalid with value ${it.value}" } -): A { - contract { - returns() implies (this@shouldBeValid is Valid) - } - return when (this) { - is Valid -> value - is Invalid -> throw AssertionError(failureMessage(this)) - } -} - -public infix fun Validated.shouldBeValid(a: A): A = - shouldBeValid().shouldBe(a) - -public infix fun Validated.shouldNotBeValid(a: A): A = - shouldBeValid().shouldNotBe(a) - -/** - * smart casts to [Validated.Invalid] and fails with [failureMessage] otherwise. - * ```kotlin - * import arrow.core.Validated - * import arrow.core.computations.either - * import arrow.core.zip - * import arrow.core.valid - * import arrow.core.invalid - * import arrow.core.NonEmptyList - * import arrow.typeclasses.Semigroup - * import shouldBeInvalid - * - * data class ConnectionParams(val url: String, val port: Int) - * - * abstract class Read { - * abstract fun read(s: String): A? - * - * companion object { - * - * val stringRead: Read = - * object : Read() { - * override fun read(s: String): String = s - * } - * - * val intRead: Read = - * object : Read() { - * override fun read(s: String): Int? = - * if (s.matches(Regex("-?[0-9]+"))) s.toInt() else null - * } - * } - * } - * - * sealed class ConfigError { - * data class MissingConfig(val field: String) : ConfigError() - * data class ParseConfig(val field: String) : ConfigError() - * } - * - * data class Config(val map: Map) { - * suspend fun parse(read: Read, key: String): ValidatedNel = - * either { - * val value: String = Validated.fromNullable(map[key]) { - * ConfigError.MissingConfig(key) - * }.bind() - * val readVal: A = Validated.fromNullable(read.read(value)) { - * ConfigError.ParseConfig(key) - * }.bind() - * readVal - * }.toValidatedNel() - * } - * - * suspend fun main() { - * //sampleStart - * val config = Config(mapOf("wrong field" to "127.0.0.1", "port" to "not a number")) - * - * val failures: NonEmptyList = - * config.parse(Read.stringRead, "url") - * .zip( - * Semigroup.nonEmptyList(), - * config.parse(Read.intRead, "port") - * ) { url, port -> ConnectionParams(url, port) } - * .shouldBeInvalid() - * //sampleEnd - * println("failures = $failures") - * } - * ``` - */ -@OptIn(ExperimentalContracts::class) -public fun Validated.shouldBeInvalid( - failureMessage: (Valid) -> String = { "Expected Validated.Invalid, but found Valid with value ${it.value}" } -): E { - contract { - returns() implies (this@shouldBeInvalid is Invalid) - } - return when (this) { - is Valid -> throw AssertionError(failureMessage(this)) - is Invalid -> value - } -} - -public infix fun Validated.shouldBeInvalid(e: E): E = - shouldBeInvalid().shouldBe(e) - -public infix fun Validated.shouldNotBeInvalid(e: E): E = - shouldBeInvalid().shouldNotBe(e) diff --git a/kotest-assertions-arrow/src/commonTest/kotlin/io/kotest/assertions/arrow/core/ValidatedMatchers.kt b/kotest-assertions-arrow/src/commonTest/kotlin/io/kotest/assertions/arrow/core/ValidatedMatchers.kt deleted file mode 100644 index 0abc17a4..00000000 --- a/kotest-assertions-arrow/src/commonTest/kotlin/io/kotest/assertions/arrow/core/ValidatedMatchers.kt +++ /dev/null @@ -1,49 +0,0 @@ -package io.kotest.assertions.arrow.core - -import arrow.core.Validated -import arrow.core.Validated.Valid -import io.kotest.property.Arb -import io.kotest.core.spec.style.StringSpec -import io.kotest.matchers.shouldBe -import io.kotest.property.arbitrary.bind -import io.kotest.property.arbitrary.filter -import io.kotest.property.arbitrary.int -import io.kotest.property.checkAll - -class ValidatedMatchers : StringSpec({ - "shouldBeValid" { - checkAll(Arb.int()) { v -> - val valid = Valid(v) - valid shouldBeValid v - // smart cast test - valid.value shouldBe v - } - } - - "shouldBeInvalid" { - checkAll(Arb.int()) { v -> - val invalid = Validated.Invalid(v) - invalid shouldBeInvalid v - // smart cast test - invalid.value shouldBe v - } - } - - "shouldNotBeValid"{ - checkAll( - Arb.bind(Arb.int(), Arb.int(), ::Pair) - .filter { (a, b) -> a != b } - ) { (a, b) -> - Valid(a) shouldNotBeValid b - } - } - - "shouldNotBeInvalid"{ - checkAll( - Arb.bind(Arb.int(), Arb.int(), ::Pair) - .filter { (a, b) -> a != b } - ) { (a, b) -> - Validated.Invalid(a) shouldNotBeInvalid b - } - } -}) diff --git a/kotest-property-arrow-optics/build.gradle.kts b/kotest-property-arrow-optics/build.gradle.kts index 2e2c4563..98520f6b 100644 --- a/kotest-property-arrow-optics/build.gradle.kts +++ b/kotest-property-arrow-optics/build.gradle.kts @@ -7,6 +7,7 @@ kotlin { commonMain { dependencies { compileOnly(libs.arrow.optics) + implementation(libs.arrow.functions) implementation(libs.kotest.assertions.core) implementation(libs.kotest.framework.api) implementation(libs.kotest.property) @@ -26,6 +27,12 @@ kotlin { } } + jsMain { + dependencies { + api(libs.arrow.optics) + } + } + nativeMain { dependencies { implementation(libs.arrow.optics) diff --git a/kotest-property-arrow-optics/src/commonMain/kotlin/io/kotest/property/arrow/optics/SetterLaws.kt b/kotest-property-arrow-optics/src/commonMain/kotlin/io/kotest/property/arrow/optics/SetterLaws.kt deleted file mode 100644 index a43056ba..00000000 --- a/kotest-property-arrow-optics/src/commonMain/kotlin/io/kotest/property/arrow/optics/SetterLaws.kt +++ /dev/null @@ -1,48 +0,0 @@ -@file:Suppress("MemberVisibilityCanBePrivate", "unused") - -package io.kotest.property.arrow.optics - -import arrow.core.compose -import arrow.core.identity -import arrow.optics.Setter -import io.kotest.property.Arb -import io.kotest.property.PropertyContext -import io.kotest.property.arrow.laws.Law -import io.kotest.property.arrow.laws.equalUnderTheLaw -import io.kotest.property.checkAll - -public object SetterLaws { - - public fun laws( - setter: Setter, - aGen: Arb, - bGen: Arb, - funcGen: Arb<(B) -> B>, - eq: (A, A) -> Boolean = { a, b -> a == b } - ): List = listOf( - Law("Setter law: set is idempotent") { setter.setIdempotent(aGen, bGen, eq) }, - Law("Setter law: modify identity") { setter.modifyIdentity(aGen, eq) }, - Law("Setter law: compose modify") { setter.composeModify(aGen, eq, funcGen) }, - Law("Setter law: consistent set modify") { setter.consistentSetModify(aGen, bGen, eq) } - ) - - public suspend fun Setter.setIdempotent(aGen: Arb, bGen: Arb, eq: (A, A) -> Boolean): PropertyContext = - checkAll(aGen, bGen) { a, b -> - set(set(a, b), b).equalUnderTheLaw(set(a, b), eq) - } - - public suspend fun Setter.modifyIdentity(aGen: Arb, eq: (A, A) -> Boolean): PropertyContext = - checkAll(aGen) { a -> - modify(a, ::identity).equalUnderTheLaw(a, eq) - } - - public suspend fun Setter.composeModify(aGen: Arb, eq: (A, A) -> Boolean, funcGen: Arb<(B) -> B>): PropertyContext = - checkAll(aGen, funcGen, funcGen) { a, f, g -> - modify(modify(a, f), g).equalUnderTheLaw(modify(a, g compose f), eq) - } - - public suspend fun Setter.consistentSetModify(aGen: Arb, bGen: Arb, eq: (A, A) -> Boolean): PropertyContext = - checkAll(aGen, bGen) { a, b -> - modify(a) { b }.equalUnderTheLaw(set(a, b), eq) - } -} diff --git a/kotest-property-arrow-optics/src/commonTest/kotlin/io/kotest/property/arrow/optics/TraversalTests.kt b/kotest-property-arrow-optics/src/commonTest/kotlin/io/kotest/property/arrow/optics/TraversalTests.kt index 36b8679f..5ad594e3 100644 --- a/kotest-property-arrow-optics/src/commonTest/kotlin/io/kotest/property/arrow/optics/TraversalTests.kt +++ b/kotest-property-arrow-optics/src/commonTest/kotlin/io/kotest/property/arrow/optics/TraversalTests.kt @@ -11,7 +11,7 @@ import io.kotest.property.arbitrary.pair import io.kotest.property.arbitrary.string import io.kotest.property.arrow.core.either import io.kotest.property.arrow.core.functionAToB -import io.kotest.property.arrow.core.tuple10 +import io.kotest.property.arrow.core.tuple9 import io.kotest.property.arrow.laws.testLaws class TraversalTests : StringSpec({ @@ -36,9 +36,8 @@ class TraversalTests : StringSpec({ funcGen = Arb.functionAToB(Arb.boolean()), ), TraversalLaws.laws( - traversal = Traversal.tuple10(), - aGen = Arb.tuple10( - Arb.boolean(), + traversal = Traversal.tuple9(), + aGen = Arb.tuple9( Arb.boolean(), Arb.boolean(), Arb.boolean(), diff --git a/kotest-property-arrow/build.gradle.kts b/kotest-property-arrow/build.gradle.kts index ceaeb008..fd766f15 100644 --- a/kotest-property-arrow/build.gradle.kts +++ b/kotest-property-arrow/build.gradle.kts @@ -23,6 +23,12 @@ kotlin { } } + jsMain { + dependencies { + api(libs.arrow.core) + } + } + nativeMain { dependencies { implementation(libs.arrow.core) diff --git a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Const.kt b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Const.kt deleted file mode 100644 index 8ca0c9f4..00000000 --- a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Const.kt +++ /dev/null @@ -1,8 +0,0 @@ -package io.kotest.property.arrow.core - -import arrow.core.Const -import io.kotest.property.Arb -import io.kotest.property.arbitrary.map - -public fun Arb.Companion.const(arb: Arb): Arb> = - arb.map { Const(it) } diff --git a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Endo.kt b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Endo.kt deleted file mode 100644 index 522544cc..00000000 --- a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Endo.kt +++ /dev/null @@ -1,8 +0,0 @@ -package io.kotest.property.arrow.core - -import arrow.core.Endo -import io.kotest.property.Arb -import io.kotest.property.arbitrary.map - -public fun Arb.Companion.endo(arb: Arb): Arb> = - arb.map { a: A -> Endo { a } } diff --git a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Eval.kt b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Eval.kt deleted file mode 100644 index 04cd574a..00000000 --- a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Eval.kt +++ /dev/null @@ -1,8 +0,0 @@ -package io.kotest.property.arrow.core - -import arrow.core.Eval -import io.kotest.property.Arb -import io.kotest.property.arbitrary.map - -public fun Arb.evalNow(): Arb> = - map { Eval.now(it) } diff --git a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/MonoidLaws.kt b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/MonoidLaws.kt deleted file mode 100644 index 4b93c474..00000000 --- a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/MonoidLaws.kt +++ /dev/null @@ -1,42 +0,0 @@ -@file:Suppress("MemberVisibilityCanBePrivate", "unused") - -package io.kotest.property.arrow.core - -import arrow.typeclasses.Monoid -import io.kotest.property.Arb -import io.kotest.property.PropertyContext -import io.kotest.property.arbitrary.list -import io.kotest.property.arrow.laws.Law -import io.kotest.property.arrow.laws.equalUnderTheLaw -import io.kotest.property.arrow.laws.shouldBe -import io.kotest.property.checkAll - -public object MonoidLaws { - - public fun laws(M: Monoid, GEN: Arb, eq: (F, F) -> Boolean = { a, b -> a == b }): List = - SemigroupLaws.laws(M, GEN, eq) + - listOf( - Law("Monoid Laws: Left identity") { M.monoidLeftIdentity(GEN, eq) }, - Law("Monoid Laws: Right identity") { M.monoidRightIdentity(GEN, eq) }, - Law("Monoid Laws: combineAll should be derived") { M.combineAllIsDerived(GEN, eq) }, - Law("Monoid Laws: combineAll of empty list is empty") { M.combineAllOfEmptyIsEmpty(eq) } - ) - - public suspend fun Monoid.monoidLeftIdentity(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(GEN) { a -> - (empty().combine(a)).equalUnderTheLaw(a, eq) - } - - public suspend fun Monoid.monoidRightIdentity(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(GEN) { a -> - a.combine(empty()).equalUnderTheLaw(a, eq) - } - - public suspend fun Monoid.combineAllIsDerived(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(5, Arb.list(GEN)) { list -> - list.combineAll().equalUnderTheLaw(if (list.isEmpty()) empty() else list.reduce { acc, f -> acc.combine(f) }, eq) - } - - public fun Monoid.combineAllOfEmptyIsEmpty(eq: (F, F) -> Boolean): Boolean = - emptyList().combineAll().equalUnderTheLaw(empty(), eq) shouldBe true -} diff --git a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Nel.kt b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Nel.kt index 39c65bc9..050dbe64 100644 --- a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Nel.kt +++ b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Nel.kt @@ -1,6 +1,7 @@ package io.kotest.property.arrow.core import arrow.core.NonEmptyList +import arrow.core.toNonEmptyListOrNull import io.kotest.property.Arb import io.kotest.property.arbitrary.filter import io.kotest.property.arbitrary.list @@ -9,9 +10,13 @@ import io.kotest.property.arbitrary.map public fun Arb.Companion.nel(a: Arb): Arb> = nonEmptyList(a) public fun Arb.Companion.nonEmptyList(a: Arb): Arb> = - list(a).filter(List::isNotEmpty).map(NonEmptyList.Companion::fromListUnsafe) + list(a) + .filter(List::isNotEmpty) + .map { it.toNonEmptyListOrNull()!! } public fun Arb.Companion.nel(a: Arb, size: IntRange): Arb> = nonEmptyList(a, size) public fun Arb.Companion.nonEmptyList(a: Arb, size: IntRange): Arb> = - list(a, size).filter(List::isNotEmpty).map(NonEmptyList.Companion::fromListUnsafe) + list(a, size) + .filter(List::isNotEmpty) + .map { it.toNonEmptyListOrNull()!! } diff --git a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/SemigroupLaws.kt b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/SemigroupLaws.kt deleted file mode 100644 index 6604e6b9..00000000 --- a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/SemigroupLaws.kt +++ /dev/null @@ -1,21 +0,0 @@ -@file:Suppress("MemberVisibilityCanBePrivate") - -package io.kotest.property.arrow.core - -import arrow.typeclasses.Semigroup -import io.kotest.property.Arb -import io.kotest.property.PropertyContext -import io.kotest.property.arrow.laws.Law -import io.kotest.property.arrow.laws.equalUnderTheLaw -import io.kotest.property.checkAll - -public object SemigroupLaws { - - public fun laws(SG: Semigroup, G: Arb, eq: (F, F) -> Boolean = { a, b -> a == b }): List = - listOf(Law("Semigroup: associativity") { SG.semigroupAssociative(G, eq) }) - - public suspend fun Semigroup.semigroupAssociative(G: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(G, G, G) { A, B, C -> - A.combine(B).combine(C).equalUnderTheLaw(A.combine(B.combine(C)), eq) - } -} diff --git a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/SemiringLaws.kt b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/SemiringLaws.kt index 05655b00..843e652a 100644 --- a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/SemiringLaws.kt +++ b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/SemiringLaws.kt @@ -1,160 +1,160 @@ -@file:Suppress("unused") - -package io.kotest.property.arrow.core - -import arrow.typeclasses.Semiring -import io.kotest.property.Arb -import io.kotest.property.checkAll -import io.kotest.matchers.shouldBe -import io.kotest.property.PropertyContext -import io.kotest.property.arrow.laws.Law -import io.kotest.property.arrow.laws.equalUnderTheLaw - -public object SemiringLaws { - - public fun laws(SG: Semiring, GEN: Arb, eq: (F, F) -> Boolean = { a, b -> a == b }): List = - listOf( - Law("Semiring: Additive commutativity") { SG.semiringAdditiveCommutativity(GEN, eq) }, - Law("Semiring: Additive left identity") { SG.semiringAdditiveLeftIdentity(GEN, eq) }, - Law("Semiring: Additive right identity") { SG.semiringAdditiveRightIdentity(GEN, eq) }, - Law("Semiring: Additive associativity") { SG.semiringAdditiveAssociativity(GEN, eq) }, - Law("Semiring: Multiplicative commutativity") { SG.semiringMultiplicativeCommutativity(GEN, eq) }, - Law("Semiring: Multiplicative left identity") { SG.semiringMultiplicativeLeftIdentity(GEN, eq) }, - Law("Semiring: Multiplicative right identity") { SG.semiringMultiplicativeRightIdentity(GEN, eq) }, - Law("Semiring: Multiplicative associativity") { SG.semiringMultiplicativeAssociativity(GEN, eq) }, - Law("Semiring: Right distributivity") { SG.semiringRightDistributivity(GEN, eq) }, - Law("Semiring: Left distributivity") { SG.semiringLeftDistributivity(GEN, eq) }, - Law("Semiring: Multiplicative left absorption") { SG.semiringMultiplicativeLeftAbsorption(GEN, eq) }, - Law("Semiring: Multiplicative right absorption") { SG.semiringMultiplicativeRightAbsorption(GEN, eq) }, - Law("Semiring: times is derived") { SG.timesIsDerived(GEN, eq) }, - Law("Semiring: plus is derived") { SG.plusIsDerived(GEN, eq) }, - Law("Semiring: maybeCombineAddition is derived") { SG.maybeCombineAdditionIsDerived(GEN, eq) }, - Law("Semiring: maybeCombineAddition left null") { SG.maybeCombineAdditionLeftNull(GEN, eq) }, - Law("Semiring: maybeCombineAddition right null") { SG.maybeCombineAdditionRightNull(GEN, eq) }, - Law("Semiring: maybeCombineAddition both null") { SG.maybeCombineAdditionBothNull(eq) }, - Law("Semiring: maybeCombineMultiplicate is derived") { SG.maybeCombineMultiplicateIsDerived(GEN, eq) }, - Law("Semiring: maybeCombineMultiplicate left null") { SG.maybeCombineMultiplicateLeftNull(GEN, eq) }, - Law("Semiring: maybeCombineMultiplicate right null") { SG.maybeCombineMultiplicateRightNull(GEN, eq) }, - Law("Semiring: maybeCombineMultiplicate both null") { SG.maybeCombineMultiplicateBothNull(eq) } - ) - - // a + b = b + a - private suspend fun Semiring.semiringAdditiveCommutativity(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN, GEN) { a, b -> - a.combine(b).equalUnderTheLaw(b.combine(a), eq) - } - - // 0 + a = a - private suspend fun Semiring.semiringAdditiveLeftIdentity(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN) { A -> - (zero().combine(A)).equalUnderTheLaw(A, eq) - } - - // a + 0 = a - private suspend fun Semiring.semiringAdditiveRightIdentity(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN) { A -> - A.combine(zero()).equalUnderTheLaw(A, eq) - } - - // a + (b + c) = (a + b) + c - private suspend fun Semiring.semiringAdditiveAssociativity(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN, GEN, GEN) { A, B, C -> - A.combine(B.combine(C)).equalUnderTheLaw((A.combine(B)).combine(C), eq) - } - - // a · b = b · a - private suspend fun Semiring.semiringMultiplicativeCommutativity(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN, GEN) { a, b -> - a.combineMultiplicate(b).equalUnderTheLaw(b.combineMultiplicate(a), eq) - } - - // 1 · a = a - private suspend fun Semiring.semiringMultiplicativeLeftIdentity(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN) { A -> - (one().combineMultiplicate(A)).equalUnderTheLaw(A, eq) - } - - // a · 1 = a - private suspend fun Semiring.semiringMultiplicativeRightIdentity(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN) { A -> - A.combineMultiplicate(one()).equalUnderTheLaw(A, eq) - } - - // a · (b · c) = (a · b) · c - private suspend fun Semiring.semiringMultiplicativeAssociativity(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN, GEN, GEN) { A, B, C -> - A.combineMultiplicate(B.combineMultiplicate(C)).equalUnderTheLaw((B.combineMultiplicate(A)).combineMultiplicate(C), eq) - } - - // (a + b) · c = a · c + b · c - private suspend fun Semiring.semiringRightDistributivity(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN, GEN, GEN) { A, B, C -> - (A.combine(B)).combineMultiplicate(C).equalUnderTheLaw((A.combineMultiplicate(C)).combine(B.combineMultiplicate(C)), eq) - } - - // a · (b + c) = a · b + a · c - private suspend fun Semiring.semiringLeftDistributivity(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN, GEN, GEN) { A, B, C -> - A.combineMultiplicate(B.combine(C)).equalUnderTheLaw((A.combineMultiplicate(B)).combine(A.combineMultiplicate(C)), eq) - } - - // 0 · a = 0 - private suspend fun Semiring.semiringMultiplicativeLeftAbsorption(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN) { A -> - (zero().combineMultiplicate(A)).equalUnderTheLaw(zero(), eq) - } - - // a · 0 = 0 - private suspend fun Semiring.semiringMultiplicativeRightAbsorption(GEN: Arb, eq: (F, F) -> Boolean) = - checkAll(GEN) { A -> - A.combineMultiplicate(zero()).equalUnderTheLaw(zero(), eq) - } - - private suspend fun Semiring.timesIsDerived(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(GEN, GEN) { A, B -> - A.times(B).equalUnderTheLaw(A.combineMultiplicate(B), eq) - } - - private suspend fun Semiring.plusIsDerived(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(GEN, GEN) { A, B -> - A.plus(B).equalUnderTheLaw(A.combine(B), eq) - } - - private suspend fun Semiring.maybeCombineAdditionIsDerived(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(GEN, GEN) { A, B -> - A.maybeCombineAddition(B).equalUnderTheLaw(A.combine(B), eq) - } - - private suspend fun Semiring.maybeCombineAdditionLeftNull(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(GEN) { A -> - null.maybeCombineAddition(A).equalUnderTheLaw(zero(), eq) - } - - private suspend fun Semiring.maybeCombineAdditionRightNull(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(GEN) { A -> - A.maybeCombineAddition(null).equalUnderTheLaw(A, eq) - } - - private fun Semiring.maybeCombineAdditionBothNull(eq: (F, F) -> Boolean): Unit { - null.maybeCombineAddition(null).equalUnderTheLaw(zero(), eq) shouldBe true - } - - private suspend fun Semiring.maybeCombineMultiplicateIsDerived(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(GEN, GEN) { A, B -> - A.maybeCombineMultiplicate(B).equalUnderTheLaw(A.combineMultiplicate(B), eq) - } - - private suspend fun Semiring.maybeCombineMultiplicateLeftNull(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(GEN) { A -> - null.maybeCombineMultiplicate(A).equalUnderTheLaw(one(), eq) - } - - private suspend fun Semiring.maybeCombineMultiplicateRightNull(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = - checkAll(GEN) { A -> - A.maybeCombineMultiplicate(null).equalUnderTheLaw(A, eq) - } - - private fun Semiring.maybeCombineMultiplicateBothNull(eq: (F, F) -> Boolean): Unit { - null.maybeCombineMultiplicate(null).equalUnderTheLaw(one(), eq) shouldBe true - } -} +//@file:Suppress("unused") +// +//package io.kotest.property.arrow.core +// +//import arrow.typeclasses.Semiring +//import io.kotest.property.Arb +//import io.kotest.property.checkAll +//import io.kotest.matchers.shouldBe +//import io.kotest.property.PropertyContext +//import io.kotest.property.arrow.laws.Law +//import io.kotest.property.arrow.laws.equalUnderTheLaw +// +//public object SemiringLaws { +// +// public fun laws(SG: Semiring, GEN: Arb, eq: (F, F) -> Boolean = { a, b -> a == b }): List = +// listOf( +// Law("Semiring: Additive commutativity") { SG.semiringAdditiveCommutativity(GEN, eq) }, +// Law("Semiring: Additive left identity") { SG.semiringAdditiveLeftIdentity(GEN, eq) }, +// Law("Semiring: Additive right identity") { SG.semiringAdditiveRightIdentity(GEN, eq) }, +// Law("Semiring: Additive associativity") { SG.semiringAdditiveAssociativity(GEN, eq) }, +// Law("Semiring: Multiplicative commutativity") { SG.semiringMultiplicativeCommutativity(GEN, eq) }, +// Law("Semiring: Multiplicative left identity") { SG.semiringMultiplicativeLeftIdentity(GEN, eq) }, +// Law("Semiring: Multiplicative right identity") { SG.semiringMultiplicativeRightIdentity(GEN, eq) }, +// Law("Semiring: Multiplicative associativity") { SG.semiringMultiplicativeAssociativity(GEN, eq) }, +// Law("Semiring: Right distributivity") { SG.semiringRightDistributivity(GEN, eq) }, +// Law("Semiring: Left distributivity") { SG.semiringLeftDistributivity(GEN, eq) }, +// Law("Semiring: Multiplicative left absorption") { SG.semiringMultiplicativeLeftAbsorption(GEN, eq) }, +// Law("Semiring: Multiplicative right absorption") { SG.semiringMultiplicativeRightAbsorption(GEN, eq) }, +// Law("Semiring: times is derived") { SG.timesIsDerived(GEN, eq) }, +// Law("Semiring: plus is derived") { SG.plusIsDerived(GEN, eq) }, +// Law("Semiring: maybeCombineAddition is derived") { SG.maybeCombineAdditionIsDerived(GEN, eq) }, +// Law("Semiring: maybeCombineAddition left null") { SG.maybeCombineAdditionLeftNull(GEN, eq) }, +// Law("Semiring: maybeCombineAddition right null") { SG.maybeCombineAdditionRightNull(GEN, eq) }, +// Law("Semiring: maybeCombineAddition both null") { SG.maybeCombineAdditionBothNull(eq) }, +// Law("Semiring: maybeCombineMultiplicate is derived") { SG.maybeCombineMultiplicateIsDerived(GEN, eq) }, +// Law("Semiring: maybeCombineMultiplicate left null") { SG.maybeCombineMultiplicateLeftNull(GEN, eq) }, +// Law("Semiring: maybeCombineMultiplicate right null") { SG.maybeCombineMultiplicateRightNull(GEN, eq) }, +// Law("Semiring: maybeCombineMultiplicate both null") { SG.maybeCombineMultiplicateBothNull(eq) } +// ) +// +// // a + b = b + a +// private suspend fun Semiring.semiringAdditiveCommutativity(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN, GEN) { a, b -> +// a.combine(b).equalUnderTheLaw(b.combine(a), eq) +// } +// +// // 0 + a = a +// private suspend fun Semiring.semiringAdditiveLeftIdentity(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN) { A -> +// (zero().combine(A)).equalUnderTheLaw(A, eq) +// } +// +// // a + 0 = a +// private suspend fun Semiring.semiringAdditiveRightIdentity(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN) { A -> +// A.combine(zero()).equalUnderTheLaw(A, eq) +// } +// +// // a + (b + c) = (a + b) + c +// private suspend fun Semiring.semiringAdditiveAssociativity(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN, GEN, GEN) { A, B, C -> +// A.combine(B.combine(C)).equalUnderTheLaw((A.combine(B)).combine(C), eq) +// } +// +// // a · b = b · a +// private suspend fun Semiring.semiringMultiplicativeCommutativity(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN, GEN) { a, b -> +// a.combineMultiplicate(b).equalUnderTheLaw(b.combineMultiplicate(a), eq) +// } +// +// // 1 · a = a +// private suspend fun Semiring.semiringMultiplicativeLeftIdentity(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN) { A -> +// (one().combineMultiplicate(A)).equalUnderTheLaw(A, eq) +// } +// +// // a · 1 = a +// private suspend fun Semiring.semiringMultiplicativeRightIdentity(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN) { A -> +// A.combineMultiplicate(one()).equalUnderTheLaw(A, eq) +// } +// +// // a · (b · c) = (a · b) · c +// private suspend fun Semiring.semiringMultiplicativeAssociativity(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN, GEN, GEN) { A, B, C -> +// A.combineMultiplicate(B.combineMultiplicate(C)).equalUnderTheLaw((B.combineMultiplicate(A)).combineMultiplicate(C), eq) +// } +// +// // (a + b) · c = a · c + b · c +// private suspend fun Semiring.semiringRightDistributivity(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN, GEN, GEN) { A, B, C -> +// (A.combine(B)).combineMultiplicate(C).equalUnderTheLaw((A.combineMultiplicate(C)).combine(B.combineMultiplicate(C)), eq) +// } +// +// // a · (b + c) = a · b + a · c +// private suspend fun Semiring.semiringLeftDistributivity(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN, GEN, GEN) { A, B, C -> +// A.combineMultiplicate(B.combine(C)).equalUnderTheLaw((A.combineMultiplicate(B)).combine(A.combineMultiplicate(C)), eq) +// } +// +// // 0 · a = 0 +// private suspend fun Semiring.semiringMultiplicativeLeftAbsorption(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN) { A -> +// (zero().combineMultiplicate(A)).equalUnderTheLaw(zero(), eq) +// } +// +// // a · 0 = 0 +// private suspend fun Semiring.semiringMultiplicativeRightAbsorption(GEN: Arb, eq: (F, F) -> Boolean) = +// checkAll(GEN) { A -> +// A.combineMultiplicate(zero()).equalUnderTheLaw(zero(), eq) +// } +// +// private suspend fun Semiring.timesIsDerived(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = +// checkAll(GEN, GEN) { A, B -> +// A.times(B).equalUnderTheLaw(A.combineMultiplicate(B), eq) +// } +// +// private suspend fun Semiring.plusIsDerived(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = +// checkAll(GEN, GEN) { A, B -> +// A.plus(B).equalUnderTheLaw(A.combine(B), eq) +// } +// +// private suspend fun Semiring.maybeCombineAdditionIsDerived(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = +// checkAll(GEN, GEN) { A, B -> +// A.maybeCombineAddition(B).equalUnderTheLaw(A.combine(B), eq) +// } +// +// private suspend fun Semiring.maybeCombineAdditionLeftNull(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = +// checkAll(GEN) { A -> +// null.maybeCombineAddition(A).equalUnderTheLaw(zero(), eq) +// } +// +// private suspend fun Semiring.maybeCombineAdditionRightNull(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = +// checkAll(GEN) { A -> +// A.maybeCombineAddition(null).equalUnderTheLaw(A, eq) +// } +// +// private fun Semiring.maybeCombineAdditionBothNull(eq: (F, F) -> Boolean): Unit { +// null.maybeCombineAddition(null).equalUnderTheLaw(zero(), eq) shouldBe true +// } +// +// private suspend fun Semiring.maybeCombineMultiplicateIsDerived(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = +// checkAll(GEN, GEN) { A, B -> +// A.maybeCombineMultiplicate(B).equalUnderTheLaw(A.combineMultiplicate(B), eq) +// } +// +// private suspend fun Semiring.maybeCombineMultiplicateLeftNull(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = +// checkAll(GEN) { A -> +// null.maybeCombineMultiplicate(A).equalUnderTheLaw(one(), eq) +// } +// +// private suspend fun Semiring.maybeCombineMultiplicateRightNull(GEN: Arb, eq: (F, F) -> Boolean): PropertyContext = +// checkAll(GEN) { A -> +// A.maybeCombineMultiplicate(null).equalUnderTheLaw(A, eq) +// } +// +// private fun Semiring.maybeCombineMultiplicateBothNull(eq: (F, F) -> Boolean): Unit { +// null.maybeCombineMultiplicate(null).equalUnderTheLaw(one(), eq) shouldBe true +// } +//} diff --git a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Tuple.kt b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Tuple.kt index 0c1dd04b..761f1a21 100644 --- a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Tuple.kt +++ b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Tuple.kt @@ -1,8 +1,5 @@ package io.kotest.property.arrow.core -import arrow.core.Tuple10 -import arrow.core.Tuple11 -import arrow.core.Tuple12 import arrow.core.Tuple4 import arrow.core.Tuple5 import arrow.core.Tuple6 @@ -84,63 +81,3 @@ public fun Arb.Companion.tuple9( ) { (a, b, c, d, e, f, g, h), i -> Tuple9(a, b, c, d, e, f, g, h, i) } - -public fun Arb.Companion.tuple10( - arbA: Arb, - arbB: Arb, - arbC: Arb, - arbD: Arb, - arbE: Arb, - arbF: Arb, - arbG: Arb, - arbH: Arb, - arbI: Arb, - arbJ: Arb -): Arb> = - Arb.bind( - Arb.tuple9(arbA, arbB, arbC, arbD, arbE, arbF, arbG, arbH, arbI), - arbJ - ) { (a, b, c, d, e, f, g, h, i), j -> - Tuple10(a, b, c, d, e, f, g, h, i, j) - } - -public fun Arb.Companion.tuple11( - arbA: Arb, - arbB: Arb, - arbC: Arb, - arbD: Arb, - arbE: Arb, - arbF: Arb, - arbG: Arb, - arbH: Arb, - arbI: Arb, - arbJ: Arb, - arbK: Arb -): Arb> = - Arb.bind( - Arb.tuple10(arbA, arbB, arbC, arbD, arbE, arbF, arbG, arbH, arbI, arbJ), - arbK - ) { (a, b, c, d, e, f, g, h, i, j), k -> - Tuple11(a, b, c, d, e, f, g, h, i, j, k) - } - -public fun Arb.Companion.tuple12( - arbA: Arb, - arbB: Arb, - arbC: Arb, - arbD: Arb, - arbE: Arb, - arbF: Arb, - arbG: Arb, - arbH: Arb, - arbI: Arb, - arbJ: Arb, - arbK: Arb, - arbL: Arb -): Arb> = - Arb.bind( - Arb.tuple11(arbA, arbB, arbC, arbD, arbE, arbF, arbG, arbH, arbI, arbJ, arbK), - arbL - ) { (a, b, c, d, e, f, g, h, i, j, k), l -> - Tuple12(a, b, c, d, e, f, g, h, i, j, k, l) - } diff --git a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Validated.kt b/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Validated.kt deleted file mode 100644 index ed5740d3..00000000 --- a/kotest-property-arrow/src/commonMain/kotlin/io/kotest/property/arrow/core/Validated.kt +++ /dev/null @@ -1,21 +0,0 @@ -package io.kotest.property.arrow.core - -import arrow.core.Validated -import arrow.core.Validated.Invalid -import arrow.core.Validated.Valid -import arrow.core.ValidatedNel -import arrow.core.invalidNel -import arrow.core.validNel -import io.kotest.property.Arb -import io.kotest.property.arbitrary.choice -import io.kotest.property.arbitrary.map - -public fun Arb.Companion.validated(invalid: Arb, valid: Arb): Arb> = - choice(invalid.map(::Invalid), valid.map(::Valid)) - -public fun Arb.Companion.validatedNel(invalidNel: Arb, valid: Arb): Arb> = - choice(invalidNel.map { it.invalidNel() }, valid.map { r -> r.validNel() }) - -public fun Arb.Companion.valid(arb: Arb): Arb> = arb.map { Valid(it) } - -public fun Arb.Companion.invalid(arb: Arb): Arb> = arb.map { Invalid(it) } diff --git a/kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/IorTests.kt b/kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/IorTests.kt index 0bc52cbf..fe0ed2e7 100644 --- a/kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/IorTests.kt +++ b/kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/IorTests.kt @@ -7,8 +7,6 @@ import io.kotest.property.Arb import io.kotest.property.arbitrary.int import io.kotest.property.arbitrary.string import io.kotest.property.arbitrary.list -import io.kotest.property.arrow.laws.shouldBe -import io.kotest.property.checkAll import io.kotest.property.arbitrary.next import io.kotest.inspectors.forAtLeastOne @@ -16,13 +14,13 @@ class IorTests : StringSpec({ "Arb.ior should generate Left, Right & Both" { assertSoftly(Arb.list(Arb.ior(Arb.string(), Arb.int()), 100..120).next()) { forAtLeastOne { - it.isRight.shouldBeTrue() + it.isRight().shouldBeTrue() } forAtLeastOne { - it.isBoth.shouldBeTrue() + it.isBoth().shouldBeTrue() } forAtLeastOne { - it.isLeft.shouldBeTrue() + it.isLeft().shouldBeTrue() } } } diff --git a/kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/MonoidLawTests.kt b/kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/MonoidLawTests.kt deleted file mode 100644 index 083d1cfe..00000000 --- a/kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/MonoidLawTests.kt +++ /dev/null @@ -1,15 +0,0 @@ -package io.kotest.property.arrow.core - -import arrow.typeclasses.Monoid -import io.kotest.core.spec.style.StringSpec -import io.kotest.property.Arb -import io.kotest.property.arbitrary.boolean -import io.kotest.property.arbitrary.int -import io.kotest.property.arbitrary.string -import io.kotest.property.arrow.laws.testLaws - -class MonoidLawTests : StringSpec({ - testLaws("boolean obeys monoid laws", MonoidLaws.laws(Monoid.boolean(), Arb.boolean())) - testLaws("int obeys monoid laws", MonoidLaws.laws(Monoid.int(), Arb.int())) - testLaws("string obeys monoid laws", MonoidLaws.laws(Monoid.string(), Arb.string())) -}) diff --git a/kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/ValidatedTests.kt b/kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/ValidatedTests.kt deleted file mode 100644 index 5057e581..00000000 --- a/kotest-property-arrow/src/commonTest/kotlin/io/kotest/property/arrow/core/ValidatedTests.kt +++ /dev/null @@ -1,27 +0,0 @@ -package io.kotest.property.arrow.core - -import io.kotest.assertions.arrow.core.shouldBeInvalid -import io.kotest.assertions.arrow.core.shouldBeValid -import io.kotest.assertions.throwables.shouldThrow -import io.kotest.core.spec.style.StringSpec -import io.kotest.matchers.string.shouldContain -import io.kotest.property.Arb -import io.kotest.property.arbitrary.int -import io.kotest.property.arbitrary.string -import io.kotest.property.checkAll - -class ValidatedTests : StringSpec({ - "shouldBeValid/ shouldBeInvalid throw an AssertionError if the assertion is incorrect" { - checkAll(Arb.validated(Arb.string(), Arb.int())) { v -> - if (v.isInvalid) { - shouldThrow { - v.shouldBeValid() - }.message shouldContain "Expected Validated.Valid, but found Invalid with value" - } else { - shouldThrow { - v.shouldBeInvalid() - }.message shouldContain "Expected Validated.Invalid, but found Valid with value" - } - } - } -}) diff --git a/kotlin-js-store/yarn.lock b/kotlin-js-store/yarn.lock index 097a7beb..e99e09e6 100644 --- a/kotlin-js-store/yarn.lock +++ b/kotlin-js-store/yarn.lock @@ -12,6 +12,46 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@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.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@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", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + 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" + "@socket.io/component-emitter@~3.1.0": version "3.1.0" resolved "https://packages.atlassian.com/api/npm/npm-remote/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" @@ -29,28 +69,12 @@ dependencies: "@types/node" "*" -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://packages.atlassian.com/api/npm/npm-remote/@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.4.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304" - integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== +"@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/json-schema@*", "@types/json-schema@^7.0.8": +"@types/json-schema@^7.0.8": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== @@ -60,148 +84,141 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.17.tgz#a8ddf6e0c2341718d74ee3dc413a13a042c45a0c" integrity sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw== -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" +"@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.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + +"@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.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.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.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.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== +"@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.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== +"@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.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" + "@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.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== +"@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.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== +"@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.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" +"@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@^1.2.0": - version "1.2.0" - resolved "https://packages.atlassian.com/api/npm/npm-remote/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" - integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== +"@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@^1.5.0": - version "1.5.0" - resolved "https://packages.atlassian.com/api/npm/npm-remote/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" - integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== - dependencies: - envinfo "^7.7.3" +"@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@^1.7.0": - version "1.7.0" - resolved "https://packages.atlassian.com/api/npm/npm-remote/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" - integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== +"@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== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -213,11 +230,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://packages.atlassian.com/api/npm/npm-remote/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - accepts@~1.3.4: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -226,16 +238,21 @@ accepts@~1.3.4: 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" resolved "https://packages.atlassian.com/api/npm/npm-remote/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.8.2: + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== + ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" @@ -251,10 +268,10 @@ ajv@^6.12.5: json-schema-traverse "^0.4.1" 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-regex@^5.0.1: version "5.0.1" @@ -334,21 +351,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.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== +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.30001286" - electron-to-chromium "^1.4.17" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" + 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" @@ -365,10 +381,10 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001286: - version "1.0.30001312" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" - integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== +caniuse-lite@^1.0.30001669: + version "1.0.30001687" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz#d0ac634d043648498eedf7a3932836beba90ebae" + integrity sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ== chalk@^4.1.0: version "4.1.2" @@ -378,7 +394,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.1: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -393,6 +409,21 @@ chokidar@3.5.3, chokidar@^3.5.1: optionalDependencies: fsevents "~2.3.2" +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -433,16 +464,16 @@ colorette@^2.0.14: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -463,10 +494,10 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -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== cors@~2.8.5: version "2.8.5" @@ -502,13 +533,20 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4.3.4, debug@^4.3.4, debug@~4.3.2: +debug@^4.3.4, debug@~4.3.2: version "4.3.4" resolved "https://packages.atlassian.com/api/npm/npm-remote/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@^4.3.5: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + dependencies: + ms "^2.1.3" + debug@~4.3.1: version "4.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" @@ -531,10 +569,10 @@ di@^0.0.1: resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= -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== dom-serialize@^2.2.1: version "2.2.1" @@ -551,10 +589,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.4.17: - version "1.4.68" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz#d79447b6bd1bec9183f166bb33d4bef0d5e4e568" - integrity sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA== +electron-to-chromium@^1.5.41: + version "1.5.71" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.71.tgz#d8b5dba1e55b320f2f4e9b1ca80738f53fcfec2b" + integrity sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA== emoji-regex@^8.0.0: version "8.0.0" @@ -566,31 +604,31 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -engine.io-parser@~5.0.3: - version "5.0.6" - resolved "https://packages.atlassian.com/api/npm/npm-remote/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://packages.atlassian.com/api/npm/npm-remote/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.10.0: - version "5.13.0" - resolved "https://packages.atlassian.com/api/npm/npm-remote/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz#26d1ecc448c02de997133217b5c1053f34a0a275" - integrity sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg== +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" @@ -605,22 +643,27 @@ envinfo@^7.7.3: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-module-lexer@^1.2.1: + version "1.5.4" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" + integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== escalade@^3.1.1: version "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 sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -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== @@ -700,14 +743,6 @@ finalhandler@1.1.2: statuses "~1.5.0" 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" @@ -716,6 +751,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" @@ -731,7 +774,7 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== -format-util@1.0.5: +format-util@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/format-util/-/format-util-1.0.5.tgz#1ffb450c8a03e7bccffe40643180918cc297d271" integrity sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg== @@ -755,10 +798,10 @@ fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== get-caller-file@^2.0.5: version "2.0.5" @@ -777,7 +820,7 @@ 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, glob@^7.1.3, glob@^7.1.7: +glob@^7.1.3, glob@^7.1.7: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -789,14 +832,25 @@ glob@7.2.0, glob@^7.1.3, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" +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 "^5.0.1" + once "^1.3.0" + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== -graceful-fs@^4.2.9: +graceful-fs@^4.2.10, graceful-fs@^4.2.11: version "4.2.11" - resolved "https://packages.atlassian.com/api/npm/npm-remote/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + 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== has-flag@^4.0.0: @@ -804,14 +858,14 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" -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== @@ -871,10 +925,10 @@ inherits@2, inherits@2.0.4: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -interpret@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" - integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== is-binary-path@~2.1.0: version "2.1.0" @@ -883,12 +937,12 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== +is-core-module@^2.13.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== dependencies: - has "^1.0.3" + hasown "^2.0.2" is-extglob@^2.1.1: version "2.1.1" @@ -953,7 +1007,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== @@ -977,10 +1031,10 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -karma-chrome-launcher@3.1.1: - version "3.1.1" - resolved "https://packages.atlassian.com/api/npm/npm-remote/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz#baca9cc071b1562a1db241827257bfe5cab597ea" - integrity sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ== +karma-chrome-launcher@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9" + integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== dependencies: which "^1.2.1" @@ -991,26 +1045,26 @@ karma-mocha@2.0.1: dependencies: minimist "^1.2.3" -karma-sourcemap-loader@0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.8.tgz#d4bae72fb7a8397328a62b75013d2df937bdcf9c" - integrity sha512-zorxyAakYZuBcHRJE+vbrK2o2JXLFWK8VVjiT/6P+ltLBUGUvqTEkUiQ119MGdOrK7mrmxXHZF1/pfT6GgIZ6g== +karma-sourcemap-loader@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.4.0.tgz#b01d73f8f688f533bcc8f5d273d43458e13b5488" + integrity sha512-xCRL3/pmhAYF3I6qOrcn0uhbQevitc2DERMPH82FMnG+4WReoGcGFZb1pURf2a5apyrOHRdvD+O6K7NljqKHyA== dependencies: - graceful-fs "^4.1.2" + 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.0: - version "6.4.0" - resolved "https://packages.atlassian.com/api/npm/npm-remote/karma/-/karma-6.4.0.tgz#82652dfecdd853ec227b74ed718a997028a99508" - integrity sha512-s8m7z0IF5g/bS5ONT7wsOavhW4i4aFkzD4u4wgzAQWT4HGUeWI3i21cK2Yz6jndMAeHETp5XuNsRoyGJZXVd4w== +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" @@ -1031,7 +1085,7 @@ karma@6.4.0: 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" @@ -1042,6 +1096,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" + loader-runner@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" @@ -1066,7 +1127,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== @@ -1112,13 +1173,6 @@ mime@^2.5.2: resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== -minimatch@5.0.1: - version "5.0.1" - resolved "https://packages.atlassian.com/api/npm/npm-remote/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4: version "3.1.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.1.tgz#879ad447200773912898b46cd516a7abbb5e50b0" @@ -1126,6 +1180,20 @@ minimatch@^3.0.4: 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: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" @@ -1143,33 +1211,31 @@ mkdirp@^0.5.5: dependencies: minimist "^1.2.6" -mocha@10.0.0: - version "10.0.0" - resolved "https://packages.atlassian.com/api/npm/npm-remote/mocha/-/mocha-10.0.0.tgz#205447d8993ec755335c4b13deba3d3a13c4def9" - integrity sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA== - dependencies: - "@ungap/promise-all-settled" "1.1.2" - 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" @@ -1181,16 +1247,11 @@ 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: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -nanoid@3.3.3: - version "3.3.3" - resolved "https://packages.atlassian.com/api/npm/npm-remote/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" @@ -1201,10 +1262,10 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-releases@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" - integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== +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" @@ -1288,10 +1349,10 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -picocolors@^1.0.0: - version "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: version "2.3.1" @@ -1349,12 +1410,12 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -rechoir@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" - integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== dependencies: - resolve "^1.9.0" + resolve "^1.20.0" require-directory@^2.1.1: version "2.1.1" @@ -1378,12 +1439,12 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.9.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== +resolve@^1.20.0: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -1409,7 +1470,7 @@ safe-buffer@^5.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -schema-utils@^3.1.0, schema-utils@^3.1.1: +schema-utils@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== @@ -1418,10 +1479,19 @@ schema-utils@^3.1.0, schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" -serialize-javascript@6.0.0, 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== +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== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +serialize-javascript@^6.0.1, 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" @@ -1456,37 +1526,37 @@ socket.io-adapter@~2.5.2: dependencies: ws "~8.11.0" -socket.io-parser@~4.2.1: - version "4.2.2" - resolved "https://packages.atlassian.com/api/npm/npm-remote/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://packages.atlassian.com/api/npm/npm-remote/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" source-map-js@^1.0.2: version "1.0.2" resolved "https://packages.atlassian.com/api/npm/npm-remote/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-loader@4.0.0: - version "4.0.0" - resolved "https://packages.atlassian.com/api/npm/npm-remote/source-map-loader/-/source-map-loader-4.0.0.tgz#bdc6b118bc6c87ee4d8d851f2d4efcc5abdb2ef5" - integrity sha512-i3KVgM3+QPAHNbGavK+VBq03YoJl24m9JWNbLgsjTj8aJzXG9M61bantBTNBt7CNwY2FYf+RJRYJ3pzalKjIrw== +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" @@ -1503,11 +1573,6 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" @@ -1538,18 +1603,11 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -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" @@ -1557,6 +1615,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" @@ -1567,24 +1632,25 @@ 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.1.3: - version "5.3.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" - integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== +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.20" jest-worker "^27.4.5" schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - terser "^5.7.2" + serialize-javascript "^6.0.1" + terser "^5.26.0" -terser@^5.7.2: - version "5.10.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" - integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== +terser@^5.26.0: + version "5.37.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.37.0.tgz#38aa66d1cfc43d0638fab54e43ff8a4f72a21ba3" + integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" - source-map "~0.7.2" source-map-support "~0.5.20" tmp@^0.2.1: @@ -1614,6 +1680,11 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +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.35" resolved "https://packages.atlassian.com/api/npm/npm-remote/ua-parser-js/-/ua-parser-js-0.7.35.tgz#8bda4827be4f0b1dda91699a29499575a1f1d307" @@ -1629,6 +1700,14 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= +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.2.0" + picocolors "^1.1.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -1651,30 +1730,31 @@ void-elements@^2.0.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -watchpack@^2.4.0: - version "2.4.0" - resolved "https://packages.atlassian.com/api/npm/npm-remote/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" -webpack-cli@4.10.0: - version "4.10.0" - resolved "https://packages.atlassian.com/api/npm/npm-remote/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" - integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== +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" "^1.2.0" - "@webpack-cli/info" "^1.5.0" - "@webpack-cli/serve" "^1.7.0" + "@webpack-cli/configtest" "^2.1.1" + "@webpack-cli/info" "^2.0.2" + "@webpack-cli/serve" "^2.0.5" colorette "^2.0.14" - commander "^7.0.0" + commander "^10.0.1" cross-spawn "^7.0.3" + envinfo "^7.7.3" fastest-levenshtein "^1.0.12" import-local "^3.0.2" - interpret "^2.2.0" - rechoir "^0.7.0" + interpret "^3.1.1" + rechoir "^0.8.0" webpack-merge "^5.7.3" webpack-merge@^4.1.5: @@ -1697,34 +1777,33 @@ webpack-sources@^3.2.3: resolved "https://packages.atlassian.com/api/npm/npm-remote/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.74.0: - version "5.74.0" - resolved "https://packages.atlassian.com/api/npm/npm-remote/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980" - integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA== +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" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" + "@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.10.0" - es-module-lexer "^0.9.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.0" + schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.4.0" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" webpack-sources "^3.2.3" which@^1.2.1: @@ -1746,10 +1825,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://packages.atlassian.com/api/npm/npm-remote/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" @@ -1770,22 +1849,22 @@ ws@~8.11.0: resolved "https://packages.atlassian.com/api/npm/npm-remote/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== @@ -1795,7 +1874,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/publish-mpp.gradle.kts b/publish-mpp.gradle.kts index 366a18ab..476342ee 100644 --- a/publish-mpp.gradle.kts +++ b/publish-mpp.gradle.kts @@ -1,28 +1,29 @@ -apply(plugin = "java") -apply(plugin = "java-library") - apply(from = "$rootDir/signing-pom-details.gradle.kts") -val javadoc = tasks.named("javadoc") +val javadoc by tasks.creating(Jar::class) { + group = "build" + description = "Assembles Javadoc jar file from for publishing" + archiveClassifier.set("javadoc") +} val javadocJar by tasks.creating(Jar::class) { - group = JavaBasePlugin.DOCUMENTATION_GROUP - description = "Assembles java doc to jar" - archiveClassifier.set("javadoc") - from(javadoc) + group = JavaBasePlugin.DOCUMENTATION_GROUP + description = "Assembles java doc to jar" + archiveClassifier.set("javadoc") + from(javadoc) } fun Project.publishing(action: PublishingExtension.() -> Unit) = - configure(action) + configure(action) val publications: PublicationContainer = (extensions.getByName("publishing") as PublishingExtension).publications publishing { - publications.withType().forEach { - it.apply { - //if (Ci.isRelease) - artifact(javadocJar) - } - } + publications.withType().forEach { + it.apply { + //if (Ci.isRelease) + artifact(javadocJar) + } + } }