diff --git a/benchmark/src/jmh/kotlin/kotlinx/benchmarks/json/ImplicitNullsBenchmark.kt b/benchmark/src/jmh/kotlin/kotlinx/benchmarks/json/ImplicitNullsBenchmark.kt index 11d1240ddd..e0567a9a9e 100644 --- a/benchmark/src/jmh/kotlin/kotlinx/benchmarks/json/ImplicitNullsBenchmark.kt +++ b/benchmark/src/jmh/kotlin/kotlinx/benchmarks/json/ImplicitNullsBenchmark.kt @@ -82,37 +82,30 @@ open class ImplicitNullsBenchmark { private val serializer = Values.serializer() @Benchmark - fun decodeNoNulls() { + fun decodeNoNulls() = Json.decodeFromString(serializer, jsonNoNulls) - } @Benchmark - fun decodeNoNullsImplicit() { + fun decodeNoNullsImplicit() = jsonImplicitNulls.decodeFromString(serializer, jsonNoNulls) - } @Benchmark - fun decodeNulls() { + fun decodeNulls() = Json.decodeFromString(serializer, jsonWithNulls) - } @Benchmark - fun decodeNullsImplicit() { + fun decodeNullsImplicit() = jsonImplicitNulls.decodeFromString(serializer, jsonWithNulls) - } @Benchmark - fun decodeAbsenceImplicit() { + fun decodeAbsenceImplicit() = jsonImplicitNulls.decodeFromString(serializer, jsonWithAbsence) - } @Benchmark - fun encodeNulls() { + fun encodeNulls() = Json.encodeToString(serializer, valueWithNulls) - } @Benchmark - fun encodeNullsImplicit() { + fun encodeNullsImplicit() = jsonImplicitNulls.encodeToString(serializer, valueWithNulls) - } } diff --git a/buildSrc/src/main/kotlin/global-compiler-options.gradle.kts b/buildSrc/src/main/kotlin/global-compiler-options.gradle.kts index aa70b9ba55..4607211be0 100644 --- a/buildSrc/src/main/kotlin/global-compiler-options.gradle.kts +++ b/buildSrc/src/main/kotlin/global-compiler-options.gradle.kts @@ -15,6 +15,7 @@ val globalCompilerArgs "-P", "plugin:org.jetbrains.kotlinx.serialization:disableIntrinsic=false", "-Xreport-all-warnings", "-Xrender-internal-diagnostic-names", + "-Xreturn-value-checker=full", ) val kotlin_Werror_override: String? by project diff --git a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts index 79ffee6bec..224f69e9a3 100644 --- a/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts @@ -76,6 +76,8 @@ kotlin { freeCompilerArgs.add("-Xsuppress-version-warnings") } freeCompilerArgs.add("-Xexpect-actual-classes") + // for some reason, IDE does not enable feature in test source sets without this line: + freeCompilerArgs.add("-Xreturn-value-checker=full") } sourceSets { @@ -87,7 +89,7 @@ kotlin { commonTest { dependencies { - api(versionCatalog().findLibrary("kotlin.test").get()) + implementation(versionCatalog().findLibrary("kotlin.test").get()) } } diff --git a/core/commonMain/src/kotlinx/serialization/internal/Tagged.kt b/core/commonMain/src/kotlinx/serialization/internal/Tagged.kt index 705cf4544c..57e783ff3a 100644 --- a/core/commonMain/src/kotlinx/serialization/internal/Tagged.kt +++ b/core/commonMain/src/kotlinx/serialization/internal/Tagged.kt @@ -158,6 +158,7 @@ public abstract class TaggedEncoder : Encoder, CompositeEncoder { tagStack.add(name) } + @IgnorableReturnValue protected fun popTag(): Tag = if (tagStack.isNotEmpty()) tagStack.removeAt(tagStack.lastIndex) @@ -316,6 +317,7 @@ public abstract class TaggedDecoder : Decoder, CompositeDecoder { private var flag = false + @IgnorableReturnValue protected fun popTag(): Tag { val r = tagStack.removeAt(tagStack.lastIndex) flag = true diff --git a/core/commonTest/src/kotlinx/serialization/SerializersLookupEnumTest.kt b/core/commonTest/src/kotlinx/serialization/SerializersLookupEnumTest.kt index 5f5a6f7b2a..f65fc76c92 100644 --- a/core/commonTest/src/kotlinx/serialization/SerializersLookupEnumTest.kt +++ b/core/commonTest/src/kotlinx/serialization/SerializersLookupEnumTest.kt @@ -10,8 +10,7 @@ import kotlinx.serialization.internal.EnumSerializer import kotlinx.serialization.test.* import kotlin.test.* -// This is unimplemented functionality that should be -@Suppress("RemoveExplicitTypeArguments") // This is exactly what's being tested +@Suppress("RETURN_VALUE_NOT_USED") // assertIs, KT-82363 class SerializersLookupEnumTest { @Serializable(with = EnumExternalObjectSerializer::class) enum class EnumExternalObject diff --git a/core/commonTest/src/kotlinx/serialization/features/SealedInterfacesSerializationTest.kt b/core/commonTest/src/kotlinx/serialization/features/SealedInterfacesSerializationTest.kt index 433f9bafd7..7fd9344e95 100644 --- a/core/commonTest/src/kotlinx/serialization/features/SealedInterfacesSerializationTest.kt +++ b/core/commonTest/src/kotlinx/serialization/features/SealedInterfacesSerializationTest.kt @@ -68,9 +68,9 @@ class SealedInterfacesSerializationTest { assertEquals(listOf("ImplA", "ImplB"), subclasses) } - private fun SerialDescriptor.isDummy() = serialName == "Dummy" + private fun SerialDescriptor.isDummy() = assertEquals(serialName, "Dummy") - private fun SerialDescriptor.isPolymorphic() = kind == PolymorphicKind.OPEN + private fun SerialDescriptor.isPolymorphic() = assertEquals(kind, PolymorphicKind.OPEN) operator fun SerialDescriptor.get(i: Int) = getElementDescriptor(i) diff --git a/core/commonTest/src/kotlinx/serialization/internal/ObjectSerializerTest.kt b/core/commonTest/src/kotlinx/serialization/internal/ObjectSerializerTest.kt index 2234b8f59d..e100e07343 100644 --- a/core/commonTest/src/kotlinx/serialization/internal/ObjectSerializerTest.kt +++ b/core/commonTest/src/kotlinx/serialization/internal/ObjectSerializerTest.kt @@ -10,7 +10,7 @@ import kotlinx.serialization.* class ObjectSerializerTest { @Test fun testSequentialDecoding() { - SimpleObject.serializer().deserialize(DummySequentialDecoder()) + assertSame(SimpleObject, SimpleObject.serializer().deserialize(DummySequentialDecoder())) } @Serializable diff --git a/core/commonTest/src/kotlinx/serialization/internal/TuplesTest.kt b/core/commonTest/src/kotlinx/serialization/internal/TuplesTest.kt index ea0804c510..1654699741 100644 --- a/core/commonTest/src/kotlinx/serialization/internal/TuplesTest.kt +++ b/core/commonTest/src/kotlinx/serialization/internal/TuplesTest.kt @@ -12,7 +12,7 @@ class TuplesTest { fun testSequentialDecodingKeyValue() { val decoder = DummySequentialDecoder() val serializer = MapEntrySerializer(Unit.serializer(), Unit.serializer()) - serializer.deserialize(decoder) + assertNotNull(serializer.deserialize(decoder)) assertEquals(decoder.beginStructureCalled, decoder.endStructureCalled) } } diff --git a/core/commonTest/src/kotlinx/serialization/test/TestHelpers.kt b/core/commonTest/src/kotlinx/serialization/test/TestHelpers.kt index 4d572b3e5e..b0d03ef045 100644 --- a/core/commonTest/src/kotlinx/serialization/test/TestHelpers.kt +++ b/core/commonTest/src/kotlinx/serialization/test/TestHelpers.kt @@ -38,7 +38,7 @@ inline fun jvmOnly(test: () -> Unit) { if (isJvm()) test() } -inline fun assertFailsWithMessage(message: String, block: () -> Unit) { +inline fun assertFailsWithMessage(message: String, block: () -> Any?) { val exception = assertFailsWith(T::class, null, block) assertTrue(exception.message!!.contains(message), "Expected message '${exception.message}' to contain substring '$message'") } diff --git a/core/jvmMain/src/kotlinx/serialization/internal/Caching.kt b/core/jvmMain/src/kotlinx/serialization/internal/Caching.kt index 8ab4c852b3..792af90e3c 100644 --- a/core/jvmMain/src/kotlinx/serialization/internal/Caching.kt +++ b/core/jvmMain/src/kotlinx/serialization/internal/Caching.kt @@ -18,7 +18,7 @@ import kotlin.reflect.KTypeProjection * and fallback to ConcurrentHashMap-based cache. */ private val useClassValue = try { - Class.forName("java.lang.ClassValue") + val _ = Class.forName("java.lang.ClassValue") true } catch (_: Throwable) { false diff --git a/core/jvmTest/src/kotlinx/serialization/CachingTest.kt b/core/jvmTest/src/kotlinx/serialization/CachingTest.kt index 634fb00711..d2f3f8a99f 100644 --- a/core/jvmTest/src/kotlinx/serialization/CachingTest.kt +++ b/core/jvmTest/src/kotlinx/serialization/CachingTest.kt @@ -21,7 +21,7 @@ class CachingTest { } repeat(10) { - cache.get(typeOf().kclass()) + val _ = cache.get(typeOf().kclass()) } assertEquals(1, factoryCalled) @@ -38,7 +38,7 @@ class CachingTest { } repeat(10) { - cache.get(typeOf>().kclass(), listOf(typeOf(), typeOf())) + val _ = cache.get(typeOf>().kclass(), listOf(typeOf(), typeOf())) } assertEquals(1, factoryCalled) diff --git a/core/jvmTest/src/kotlinx/serialization/SerializationMethodInvocationOrderTest.kt b/core/jvmTest/src/kotlinx/serialization/SerializationMethodInvocationOrderTest.kt index 332886d4fe..3540305f43 100644 --- a/core/jvmTest/src/kotlinx/serialization/SerializationMethodInvocationOrderTest.kt +++ b/core/jvmTest/src/kotlinx/serialization/SerializationMethodInvocationOrderTest.kt @@ -23,7 +23,7 @@ class SerializationMethodInvocationOrderTest { out.done() val inp = Inp() - inp.decodeSerializableValue(serializer()) + assertEquals(Container(Data("s1", 42)), inp.decodeSerializableValue(serializer())) inp.done() } diff --git a/formats/cbor/commonMain/src/kotlinx/serialization/cbor/internal/Decoder.kt b/formats/cbor/commonMain/src/kotlinx/serialization/cbor/internal/Decoder.kt index a96c735ee1..fc6b8a98e2 100644 --- a/formats/cbor/commonMain/src/kotlinx/serialization/cbor/internal/Decoder.kt +++ b/formats/cbor/commonMain/src/kotlinx/serialization/cbor/internal/Decoder.kt @@ -158,6 +158,7 @@ internal class CborParser(private val input: ByteArrayInput, private val verifyO readByte() } + @IgnorableReturnValue private fun readByte(): Int { curByte = input.read() return curByte @@ -268,6 +269,7 @@ internal class CborParser(private val input: ByteArrayInput, private val verifyO input.readExactNBytes(strLen) } + @IgnorableReturnValue private fun processTags(tags: ULongArray?): ULongArray? { var index = 0 val collectedTags = mutableListOf() @@ -364,7 +366,7 @@ internal class CborParser(private val input: ByteArrayInput, private val verifyO error("Unexpected EOF, available $availableBytes bytes, requested: $bytesCount") } val array = ByteArray(bytesCount) - read(array, 0, bytesCount) + val _ = read(array, 0, bytesCount) return array } @@ -445,7 +447,7 @@ internal class CborParser(private val input: ByteArrayInput, private val verifyO val header = curByte and 0b111_00000 val length = elementLength() if (header == HEADER_TAG) { - readNumber() + val _ = readNumber() } else if (header == HEADER_ARRAY || header == HEADER_MAP) { if (length > 0) lengthStack.add(length) else prune(lengthStack) // empty map or array automatically completes diff --git a/formats/cbor/commonMain/src/kotlinx/serialization/cbor/internal/Encoder.kt b/formats/cbor/commonMain/src/kotlinx/serialization/cbor/internal/Encoder.kt index eb5fc556a2..e84fbd8cde 100644 --- a/formats/cbor/commonMain/src/kotlinx/serialization/cbor/internal/Encoder.kt +++ b/formats/cbor/commonMain/src/kotlinx/serialization/cbor/internal/Encoder.kt @@ -193,7 +193,7 @@ internal class DefiniteLengthCborWriter(cbor: Cbor, output: ByteArrayOutput) : C override fun beginStructure(descriptor: SerialDescriptor): CompositeEncoder { val current = Data(ByteArrayOutput(), 0) - structureStack.push(current) + val _ = structureStack.push(current) return this } diff --git a/formats/cbor/commonTest/src/kotlinx/serialization/TestUtilities.kt b/formats/cbor/commonTest/src/kotlinx/serialization/TestUtilities.kt index c576d1a53d..651c3b0ca4 100644 --- a/formats/cbor/commonTest/src/kotlinx/serialization/TestUtilities.kt +++ b/formats/cbor/commonTest/src/kotlinx/serialization/TestUtilities.kt @@ -30,7 +30,7 @@ internal inline fun assertSerializedToBinaryAndRestored( assertEquals(original, restored) } -inline fun assertFailsWithMessage(message: String, block: () -> Unit) { +inline fun assertFailsWithMessage(message: String, block: () -> Any?) { val exception = assertFailsWith(T::class, null, block) assertTrue(exception.message!!.contains(message), "Expected message '${exception.message}' to contain substring '$message'") } diff --git a/formats/cbor/commonTest/src/kotlinx/serialization/cbor/CborDecoderTest.kt b/formats/cbor/commonTest/src/kotlinx/serialization/cbor/CborDecoderTest.kt index 564823a756..c35d860d75 100644 --- a/formats/cbor/commonTest/src/kotlinx/serialization/cbor/CborDecoderTest.kt +++ b/formats/cbor/commonTest/src/kotlinx/serialization/cbor/CborDecoderTest.kt @@ -81,7 +81,7 @@ class CborDecoderTest { @Test fun testNullables() { - Cbor.decodeFromHexString("a0") + assertEquals(NullableByteStringDefaultNull(), Cbor.decodeFromHexString("a0")) } /** diff --git a/formats/cbor/commonTest/src/kotlinx/serialization/cbor/SampleClasses.kt b/formats/cbor/commonTest/src/kotlinx/serialization/cbor/SampleClasses.kt index 8feb491191..abfba7b4a9 100644 --- a/formats/cbor/commonTest/src/kotlinx/serialization/cbor/SampleClasses.kt +++ b/formats/cbor/commonTest/src/kotlinx/serialization/cbor/SampleClasses.kt @@ -99,7 +99,7 @@ data class NullableByteStringDefaultNull( if (this === other) return true if (other == null || this::class != other::class) return false - other as NullableByteString + other as NullableByteStringDefaultNull if (byteString != null) { if (other.byteString == null) return false @@ -150,4 +150,4 @@ value class ValueClassWithUnlabeledByteString(@ByteString val x: Inner) { @JvmInline @Serializable value class Inner(val x: ByteArray) -} \ No newline at end of file +} diff --git a/formats/cbor/jvmTest/src/kotlinx/serialization/cbor/CborStacktraceRecoveryTest.kt b/formats/cbor/jvmTest/src/kotlinx/serialization/cbor/CborStacktraceRecoveryTest.kt index 98ebc49bc3..4f72533798 100644 --- a/formats/cbor/jvmTest/src/kotlinx/serialization/cbor/CborStacktraceRecoveryTest.kt +++ b/formats/cbor/jvmTest/src/kotlinx/serialization/cbor/CborStacktraceRecoveryTest.kt @@ -15,7 +15,7 @@ class CborStacktraceRecoveryTest { Cbor.decodeFromByteArray(byteArrayOf(0xFF.toByte())) } - private inline fun checkRecovered(noinline block: () -> Unit) = runBlocking { + private inline fun checkRecovered(noinline block: () -> Any?) = runBlocking { val result = runCatching { callBlockWithRecovery(block) } @@ -29,7 +29,7 @@ class CborStacktraceRecoveryTest { } // KLUDGE: A separate function with state-machine to ensure coroutine DebugMetadata is generated. See KT-41789 - private suspend fun callBlockWithRecovery(block: () -> Unit) { + private suspend fun callBlockWithRecovery(block: () -> Any?) { yield() // use withContext to perform switch between coroutines and thus trigger exception recovery machinery withContext(NonCancellable) { diff --git a/formats/json-tests/build.gradle.kts b/formats/json-tests/build.gradle.kts index cd8ef12b5e..fad5a94b47 100644 --- a/formats/json-tests/build.gradle.kts +++ b/formats/json-tests/build.gradle.kts @@ -33,9 +33,9 @@ kotlin { } val commonTest by getting { dependencies { - api(project(":kotlinx-serialization-json")) - api(project(":kotlinx-serialization-json-okio")) - api(project(":kotlinx-serialization-json-io")) + implementation(project(":kotlinx-serialization-json")) + implementation(project(":kotlinx-serialization-json-okio")) + implementation(project(":kotlinx-serialization-json-io")) implementation(libs.kotlinx.io) implementation(libs.okio) } diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/JsonPathTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/JsonPathTest.kt index 10f943877a..f60356057a 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/JsonPathTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/JsonPathTest.kt @@ -106,15 +106,15 @@ class JsonPathTest : JsonTestBase() { @Serializable @SerialName("n") - class Nesting(val f: Sealed) : Sealed() + data class Nesting(val f: Sealed) : Sealed() @Serializable @SerialName("b") - class Box(val s: String) : Sealed() + data class Box(val s: String) : Sealed() @Serializable @SerialName("d") - class DoubleNesting(val f: Sealed, val f2: Sealed) : Sealed() + data class DoubleNesting(val f: Sealed, val f2: Sealed) : Sealed() } // TODO use non-array polymorphism when https://github.com/Kotlin/kotlinx.serialization/issues/1839 is fixed @@ -126,8 +126,8 @@ class JsonPathTest : JsonTestBase() { outer = Sealed.Nesting(outer) } val str = json.encodeToString(Sealed.serializer(), outer) - // throw-away data - json.decodeFromString(Sealed.serializer(), str) + // check that data is correctly formed + assertEquals(outer, json.decodeFromString(Sealed.serializer(), str)) val malformed = str.replace("\"value\"", "42") val expectedPath = "$" + ".value.f".repeat(101) + ".value.s" @@ -147,9 +147,10 @@ class JsonPathTest : JsonTestBase() { outer2 = Sealed.Nesting(outer2) } - val str = json.encodeToString(Sealed.serializer(), Sealed.DoubleNesting(outer1, outer2)) - // throw-away data - json.decodeFromString(Sealed.serializer(), str) + val value = Sealed.DoubleNesting(outer1, outer2) + val str = json.encodeToString(Sealed.serializer(), value) + // check that data is correctly formed + assertEquals(value, json.decodeFromString(Sealed.serializer(), str)) val malformed = str.replace("\"incorrect\"", "42") val expectedPath = "$.value.f2" + ".value.f".repeat(34) + ".value.s" @@ -169,15 +170,15 @@ class JsonPathTest : JsonTestBase() { outer = SimpleNested(n = outer) } val str = Json.encodeToString(SimpleNested.serializer(), outer) - // throw-away data - Json.decodeFromString(SimpleNested.serializer(), str) + // check that data is correctly formed + assertEquals(outer, Json.decodeFromString(SimpleNested.serializer(), str)) val malformed = str.replace("{}", "42") val expectedPath = "$" + ".n".repeat(20) + ".t\n" expectPath(expectedPath) { Json.decodeFromString(SimpleNested.serializer(), malformed) } } - private inline fun expectPath(path: String, block: () -> Unit) { + private inline fun expectPath(path: String, block: () -> Any?) { val message = runCatching { block() } .exceptionOrNull()!!.message!! assertContains(message, path) diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/KeepGeneratedSerializerTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/KeepGeneratedSerializerTest.kt index 0f87bc9939..d19f51e640 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/KeepGeneratedSerializerTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/KeepGeneratedSerializerTest.kt @@ -127,7 +127,7 @@ class KeepGeneratedSerializerTest { override val descriptor = PrimitiveSerialDescriptor("MyEnumSerializer", PrimitiveKind.INT) override fun deserialize(decoder: Decoder): MyEnum { - decoder.decodeString() + val _ = decoder.decodeString() return MyEnum.A } @@ -203,7 +203,7 @@ class KeepGeneratedSerializerTest { override val descriptor = PrimitiveSerialDescriptor("ObjectSerializer", PrimitiveKind.INT) override fun deserialize(decoder: Decoder): Object { - decoder.decodeInt() + val _ = decoder.decodeInt() return Object } override fun serialize(encoder: Encoder, value: Object) { @@ -244,4 +244,4 @@ class KeepGeneratedSerializerTest { assertEquals(value, keepDecoded, "Json.decodeFromString(${T::class.simpleName}.generatedSerializer(), json)") } -} \ No newline at end of file +} diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/features/PolymorphicDeserializationErrorMessagesTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/features/PolymorphicDeserializationErrorMessagesTest.kt index 2b2f1f7027..d48311d563 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/features/PolymorphicDeserializationErrorMessagesTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/features/PolymorphicDeserializationErrorMessagesTest.kt @@ -6,6 +6,7 @@ package kotlinx.serialization.features import kotlinx.serialization.* import kotlinx.serialization.json.* +import kotlinx.serialization.test.checkSerializationException import kotlin.test.* class PolymorphicDeserializationErrorMessagesTest : JsonTestBase() { @@ -15,13 +16,6 @@ class PolymorphicDeserializationErrorMessagesTest : JsonTestBase() { @Serializable class Holder(val d: DummyData) - // TODO: remove this after #2480 is merged - private fun checkSerializationException(action: () -> Unit, assertions: SerializationException.(String) -> Unit) { - val e = assertFailsWith(SerializationException::class, action) - assertNotNull(e.message) - e.assertions(e.message!!) - } - @Test fun testNotRegisteredMessage() = parametrizedTest { mode -> val input = """{"d":{"a":{"type":"my.Class", "value":42}}}""" diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonConfigurationTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonConfigurationTest.kt index 2a4dc2c148..1113f835ec 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonConfigurationTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonConfigurationTest.kt @@ -23,6 +23,7 @@ class JsonConfigurationTest { assertFailsWith { json(true, "\tf\n") } } + @IgnorableReturnValue private fun json(prettyPrint: Boolean, prettyPrintIndent: String) = Json { this.prettyPrint = prettyPrint this.prettyPrintIndent = prettyPrintIndent diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonDefaultContextTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonDefaultContextTest.kt index af54c31b0c..92d77d8337 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonDefaultContextTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonDefaultContextTest.kt @@ -12,6 +12,6 @@ class JsonDefaultContextTest { fun testRepeatedSerializer() { // #616 val json = Json - Json { serializersModule = json.serializersModule } + val _ = Json { serializersModule = json.serializersModule } } } diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonElementDecodingTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonElementDecodingTest.kt index efb4d84672..51816fde0a 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonElementDecodingTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonElementDecodingTest.kt @@ -52,7 +52,7 @@ class JsonElementDecodingTest : JsonTestBase() { json = json.replace("%", json) } json = json.replace("%", "0") - Json.parseToJsonElement(json) + val _ = Json.parseToJsonElement(json) } private open class NullAsElementSerializer(private val serializer: KSerializer, val nullElement: T) : KSerializer { diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonModesTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonModesTest.kt index e7f107c8d0..ca16006e2b 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonModesTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonModesTest.kt @@ -88,7 +88,7 @@ class JsonModesTest : JsonTestBase() { doTest("""{"a":[{"b":[{"c":{}d",""e"":"}]}""") doTest("""{"a":[}""") doTest("""{"a":""") - lenient.decodeFromString(Empty.serializer(), """{"a":[]}""") // should not throw + val _ = lenient.decodeFromString(Empty.serializer(), """{"a":[]}""") // should not throw } @Test diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonParserFailureModesTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonParserFailureModesTest.kt index 892696b8cc..305e3479af 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonParserFailureModesTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonParserFailureModesTest.kt @@ -121,14 +121,38 @@ class JsonParserFailureModesTest : JsonTestBase() { @Test fun testNoOverflow() = parametrizedTest { - default.decodeFromString("""{"b": ${Byte.MAX_VALUE}}""", it) - default.decodeFromString("""{"b": ${Byte.MIN_VALUE}}""", it) - default.decodeFromString("""{"s": ${Short.MAX_VALUE}}""", it) - default.decodeFromString("""{"s": ${Short.MIN_VALUE}}""", it) - default.decodeFromString("""{"i": ${Int.MAX_VALUE}}""", it) - default.decodeFromString("""{"i": ${Int.MIN_VALUE}}""", it) - default.decodeFromString("""{"id": ${Long.MIN_VALUE.toString()}}""", it) - default.decodeFromString("""{"id": ${Long.MAX_VALUE.toString()}}""", it) + assertEquals( + Byte.MAX_VALUE, + default.decodeFromString("""{"b": ${Byte.MAX_VALUE}}""", it).b + ) + assertEquals( + Byte.MIN_VALUE, + default.decodeFromString("""{"b": ${Byte.MIN_VALUE}}""", it).b + ) + assertEquals( + Short.MAX_VALUE, + default.decodeFromString("""{"s": ${Short.MAX_VALUE}}""", it).s + ) + assertEquals( + Short.MIN_VALUE, + default.decodeFromString("""{"s": ${Short.MIN_VALUE}}""", it).s + ) + assertEquals( + Int.MAX_VALUE, + default.decodeFromString("""{"i": ${Int.MAX_VALUE}}""", it).i + ) + assertEquals( + Int.MIN_VALUE, + default.decodeFromString("""{"i": ${Int.MIN_VALUE}}""", it).i + ) + assertEquals( + Long.MIN_VALUE, + default.decodeFromString("""{"id": ${Long.MIN_VALUE}}""", it).id + ) + assertEquals( + Long.MAX_VALUE, + default.decodeFromString("""{"id": ${Long.MAX_VALUE}}""", it).id + ) } @Test diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonTreeTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonTreeTest.kt index 6e600386b3..25d04b0bba 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonTreeTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonTreeTest.kt @@ -115,13 +115,12 @@ class JsonTreeTest : JsonTestBase() { assertEquals(m, lenient.decodeFromJsonElement(ComplexMapWrapper.serializer(), dyn)) } - private inline fun writeAndTest(obj: T, serial: KSerializer, printDiagnostics: Boolean = false): Pair { + private inline fun writeAndTest(obj: T, serial: KSerializer, printDiagnostics: Boolean = false) { val tree = lenient.encodeToJsonElement(serial, obj) val str = tree.toString() if (printDiagnostics) println(str) val restored = lenient.decodeFromJsonElement(serial, lenient.parseToJsonElement(str)) assertEquals(obj, restored) - return tree to restored } @Test diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/json/polymorphic/JsonProhibitedPolymorphicKindsTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/json/polymorphic/JsonProhibitedPolymorphicKindsTest.kt index 7a82539502..7d95b9badb 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/json/polymorphic/JsonProhibitedPolymorphicKindsTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/json/polymorphic/JsonProhibitedPolymorphicKindsTest.kt @@ -85,11 +85,13 @@ class JsonProhibitedPolymorphicKindsTest : JsonTestBase() { } } - private fun Json(useArrayPolymorphism: Boolean, builderAction: PolymorphicModuleBuilder.() -> Unit) = Json { - this.useArrayPolymorphism = useArrayPolymorphism - serializersModule = SerializersModule { - polymorphic(Any::class) { - builderAction() + private fun Json(useArrayPolymorphism: Boolean, builderAction: PolymorphicModuleBuilder.() -> Unit) { + val _ = Json { + this.useArrayPolymorphism = useArrayPolymorphism + serializersModule = SerializersModule { + polymorphic(Any::class) { + builderAction() + } } } } diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/json/serializers/JsonTreeTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/json/serializers/JsonTreeTest.kt index 1122332974..1ae7ca5f08 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/json/serializers/JsonTreeTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/json/serializers/JsonTreeTest.kt @@ -14,7 +14,7 @@ class JsonTreeTest : JsonTestBase() { @Test fun testParseWithoutExceptions() { val input = """{"a": "foo", "b": 10, "c": ["foo", 100500, {"bar": "baz"}]}""" - parse(input) + val _ = parse(input) } @Test diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/json/serializers/JsonUnquotedLiteralTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/json/serializers/JsonUnquotedLiteralTest.kt index e8090044cb..a1b9699d48 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/json/serializers/JsonUnquotedLiteralTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/json/serializers/JsonUnquotedLiteralTest.kt @@ -94,7 +94,7 @@ class JsonUnquotedLiteralTest : JsonTestBase() { @Test fun testUnquotedJsonNullString() { - fun test(block: () -> Unit) { + fun test(block: () -> Any?) { assertFailsWithSerialMessage( exceptionName = "JsonEncodingException", message = "Creating a literal unquoted value of 'null' is forbidden. If you want to create JSON null literal, use JsonNull object, otherwise, use JsonPrimitive", diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/modules/SerialNameCollisionInSealedClassesTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/modules/SerialNameCollisionInSealedClassesTest.kt index 9ddeb683ea..ccd7b3f8b7 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/modules/SerialNameCollisionInSealedClassesTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/modules/SerialNameCollisionInSealedClassesTest.kt @@ -26,12 +26,18 @@ class SerialNameCollisionInSealedClassesTest { fun testCollisionWithDiscriminator() { assertFailsWith { Json("type").encodeToString(Base.serializer(), Base.Child("a")) } assertFailsWith { Json("type2").encodeToString(Base.serializer(), Base.Child("a")) } - Json("f").encodeToString(Base.serializer(), Base.Child("a")) + val actual = Json("f").encodeToString(Base.serializer(), Base.Child("a")) + val expected = + """{"f":"kotlinx.serialization.modules.SerialNameCollisionInSealedClassesTest.Base.Child","type":"a"}""" + assertEquals(expected, actual) } @Test fun testNoCollisionWithArrayPolymorphism() { - Json("type", true).encodeToString(Base.serializer(), Base.Child("a")) + val actual = Json("type", true).encodeToString(Base.serializer(), Base.Child("a")) + val expected = + """["kotlinx.serialization.modules.SerialNameCollisionInSealedClassesTest.Base.Child",{"type":"a"}]""" + assertEquals(expected, actual) } @Serializable @@ -46,9 +52,10 @@ class SerialNameCollisionInSealedClassesTest { @Test fun testDescriptorInitializerFailure() { - BaseCollision.Child() - BaseCollision.ChildCollided() - BaseCollision.ChildCollided.serializer().descriptor // Doesn't fail + val _ = BaseCollision.Child() + val _ = BaseCollision.ChildCollided() + val descriptor = BaseCollision.ChildCollided.serializer().descriptor // Doesn't fail + assertEquals("$prefix.BaseCollision.Child", descriptor.serialName) assertFailsWith { BaseCollision.serializer().descriptor } } } diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/modules/SerialNameCollisionTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/modules/SerialNameCollisionTest.kt index 6b14f12cbd..4eebf170cb 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/modules/SerialNameCollisionTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/modules/SerialNameCollisionTest.kt @@ -63,7 +63,7 @@ class SerialNameCollisionTest { subclass(Derived.serializer()) } } - Json("type", module, true) + val _ = Json("type", module, true) } @Test @@ -91,7 +91,7 @@ class SerialNameCollisionTest { @Test fun testCollisionWithinHierarchy() { - SerializersModule { + val _ = SerializersModule { assertFailsWith { polymorphic(Base::class) { subclass(Derived.serializer()) diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/test/TestHelpers.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/test/TestHelpers.kt index 76ea07a0c5..4b3e4fd870 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/test/TestHelpers.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/test/TestHelpers.kt @@ -36,7 +36,7 @@ inline fun jvmOnly(test: () -> Unit) { if (isJvm()) test() } -inline fun assertFailsWithMissingField(block: () -> Unit) { +inline fun assertFailsWithMissingField(block: () -> Any?) { val e = assertFailsWith(block = block) assertTrue(e.message?.contains("but it was missing") ?: false) } diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/test/TestingFramework.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/test/TestingFramework.kt index 3ec0714980..3934b80c0b 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/test/TestingFramework.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/test/TestingFramework.kt @@ -55,7 +55,7 @@ fun assertSerializedAndRestored( inline fun assertFailsWithSerial( exceptionName: String, assertionMessage: String? = null, - block: () -> Unit + block: () -> Any? ) { val exception = assertFailsWith(SerializationException::class, assertionMessage, block) assertEquals( @@ -68,7 +68,7 @@ inline fun assertFailsWithSerialMessage( exceptionName: String, message: String, assertionMessage: String? = null, - block: () -> Unit + block: () -> Any? ) { val exception = assertFailsWith(SerializationException::class, assertionMessage, block) assertEquals( @@ -84,7 +84,7 @@ inline fun assertFailsWithSerialMessage( inline fun assertFailsWithMessage( message: String, assertionMessage: String? = null, - block: () -> Unit + block: () -> Any? ) { val exception = assertFailsWith(T::class, assertionMessage, block) assertTrue( @@ -93,7 +93,7 @@ inline fun assertFailsWithMessage( ) } -inline fun checkSerializationException(action: () -> Unit, assertions: SerializationException.(String) -> Unit) { +inline fun checkSerializationException(action: () -> Any?, assertions: SerializationException.(String) -> Unit) { val e = assertFailsWith(SerializationException::class, action) assertNotNull(e.message) e.assertions(e.message!!) diff --git a/formats/json-tests/jvmTest/src/kotlinx/serialization/JvmMissingFieldsExceptionTest.kt b/formats/json-tests/jvmTest/src/kotlinx/serialization/JvmMissingFieldsExceptionTest.kt index 05b99ccb71..7b8cb1456e 100644 --- a/formats/json-tests/jvmTest/src/kotlinx/serialization/JvmMissingFieldsExceptionTest.kt +++ b/formats/json-tests/jvmTest/src/kotlinx/serialization/JvmMissingFieldsExceptionTest.kt @@ -130,7 +130,7 @@ class JvmMissingFieldsExceptionTest { } - private inline fun assertFailsWithMessages(fields: List, block: () -> Unit) { + private inline fun assertFailsWithMessages(fields: List, block: () -> Any?) { val exception = assertFailsWith(MissingFieldException::class, null, block) val missedMessages = fields.filter { !exception.message!!.contains(it) } assertEquals(exception.missingFields.sorted(), fields.sorted()) diff --git a/formats/json-tests/jvmTest/src/kotlinx/serialization/SerializerByTypeCacheTest.kt b/formats/json-tests/jvmTest/src/kotlinx/serialization/SerializerByTypeCacheTest.kt index b8dd35d150..8a28231766 100644 --- a/formats/json-tests/jvmTest/src/kotlinx/serialization/SerializerByTypeCacheTest.kt +++ b/formats/json-tests/jvmTest/src/kotlinx/serialization/SerializerByTypeCacheTest.kt @@ -61,8 +61,8 @@ class SerializerByTypeCacheTest { assertNotSame(serializer1, serializer2) // serializers must work correctly - Json.decodeFromString(serializer1, "[{\"i\":1}]") - Json.decodeFromString(serializer2, "[{\"i\":1}]") + val _ = Json.decodeFromString(serializer1, "[{\"i\":1}]") + val _ = Json.decodeFromString(serializer2, "[{\"i\":1}]") } /** diff --git a/formats/json-tests/jvmTest/src/kotlinx/serialization/StacktraceRecoveryTest.kt b/formats/json-tests/jvmTest/src/kotlinx/serialization/StacktraceRecoveryTest.kt index dcf3e9591d..470d91bec9 100644 --- a/formats/json-tests/jvmTest/src/kotlinx/serialization/StacktraceRecoveryTest.kt +++ b/formats/json-tests/jvmTest/src/kotlinx/serialization/StacktraceRecoveryTest.kt @@ -35,10 +35,10 @@ class StacktraceRecoveryTest { // checks simple name because UFE is internal class fun testUnknownFieldException() = checkRecovered("UnknownFieldException") { val serializer = Data.serializer() - serializer.deserialize(BadDecoder()) + val _ = serializer.deserialize(BadDecoder()) } - private fun checkRecovered(exceptionClassSimpleName: String, block: () -> Unit) = runBlocking { + private fun checkRecovered(exceptionClassSimpleName: String, block: () -> Any?) = runBlocking { val result = runCatching { callBlockWithRecovery(block) } @@ -52,7 +52,7 @@ class StacktraceRecoveryTest { } // KLUDGE: A separate function with state-machine to ensure coroutine DebugMetadata is generated. See KT-41789 - private suspend fun callBlockWithRecovery(block: () -> Unit) { + private suspend fun callBlockWithRecovery(block: () -> Any?) { yield() // use withContext to perform switch between coroutines and thus trigger exception recovery machinery withContext(NonCancellable) { diff --git a/formats/json-tests/jvmTest/src/kotlinx/serialization/features/InternalInheritanceTest.kt b/formats/json-tests/jvmTest/src/kotlinx/serialization/features/InternalInheritanceTest.kt index 6a1f722eab..2ff6ee0e0c 100644 --- a/formats/json-tests/jvmTest/src/kotlinx/serialization/features/InternalInheritanceTest.kt +++ b/formats/json-tests/jvmTest/src/kotlinx/serialization/features/InternalInheritanceTest.kt @@ -8,6 +8,7 @@ import kotlinx.serialization.* import kotlinx.serialization.json.* import org.junit.* import org.junit.Assert.* +import kotlin.test.assertFailsWith class InternalInheritanceTest : JsonTestBase() { @Serializable @@ -105,16 +106,22 @@ class InternalInheritanceTest : JsonTestBase() { ) } - @Test(expected = SerializationException::class) + @Test fun testThrowTransient() { - Json.decodeFromString("""{"parent":100,"rootOptional":"rootOptional","transientDerived":"X",""" + - """"parent2":100,"derived":"wowstring","bodyDerived":"body"}""") + assertFailsWith { + Json.decodeFromString( + """{"parent":100,"rootOptional":"rootOptional","transientDerived":"X",""" + + """"parent2":100,"derived":"wowstring","bodyDerived":"body"}""" + ) + } } - @Test(expected = SerializationException::class) - fun testThrowMissingField() { - default.decodeFromString("""{"parent":42,"rootOptional":"rootOptional","derived":"derived",""" + + @Test + fun testThrowMissingField(): Unit { + assertFailsWith { + default.decodeFromString("""{"parent":42,"rootOptional":"rootOptional","derived":"derived",""" + """"bodyDerived":"body","parent3":42,"lastDerived":"optional"}""") + } } @Test diff --git a/formats/json-tests/jvmTest/src/kotlinx/serialization/features/JsonSequencePathTest.kt b/formats/json-tests/jvmTest/src/kotlinx/serialization/features/JsonSequencePathTest.kt index 554deab16e..c83fce3c4f 100644 --- a/formats/json-tests/jvmTest/src/kotlinx/serialization/features/JsonSequencePathTest.kt +++ b/formats/json-tests/jvmTest/src/kotlinx/serialization/features/JsonSequencePathTest.kt @@ -23,7 +23,7 @@ class JsonSequencePathTest { fun testFailure() { val source = """{"data":{"s":"value"}}{"data":{"s":42}}{notevenreached}""".toStream() val iterator = Json.decodeToSequence(source).iterator() - iterator.next() // Ignore + val _ = iterator.next() // Ignore assertFailsWithMessage( "Expected quotation mark '\"', but had '4' instead at path: \$.data.s" ) { iterator.next() } diff --git a/formats/json-tests/jvmTest/src/kotlinx/serialization/json/MissingFieldExceptionWithPathTest.kt b/formats/json-tests/jvmTest/src/kotlinx/serialization/json/MissingFieldExceptionWithPathTest.kt index e56f173e05..47c5138ae4 100644 --- a/formats/json-tests/jvmTest/src/kotlinx/serialization/json/MissingFieldExceptionWithPathTest.kt +++ b/formats/json-tests/jvmTest/src/kotlinx/serialization/json/MissingFieldExceptionWithPathTest.kt @@ -16,12 +16,12 @@ class MissingFieldExceptionWithPathTest { fun testMfeIsNotReappliedMultipleTimes() { val inputMalformed = """{"title": "...","cast": [{}]""" try { - Json.decodeFromString(inputMalformed) + val _ = Json.decodeFromString(inputMalformed) fail("Unreacheable state") } catch (e: MissingFieldException) { val fullStackTrace = e.stackTraceToString() - val i1 = fullStackTrace.toString().indexOf("at path") - val i2 = fullStackTrace.toString().lastIndexOf("at path") + val i1 = fullStackTrace.indexOf("at path") + val i2 = fullStackTrace.lastIndexOf("at path") assertEquals(i1, i2) assertTrue(i1 != -1) } diff --git a/formats/json/commonMain/src/kotlinx/serialization/json/JsonElementBuilders.kt b/formats/json/commonMain/src/kotlinx/serialization/json/JsonElementBuilders.kt index 7a25efdf4b..12d91ea84f 100644 --- a/formats/json/commonMain/src/kotlinx/serialization/json/JsonElementBuilders.kt +++ b/formats/json/commonMain/src/kotlinx/serialization/json/JsonElementBuilders.kt @@ -67,6 +67,7 @@ public class JsonObjectBuilder @PublishedApi internal constructor() { * * Returns the previous value associated with [key], or `null` if the key was not present. */ + @IgnorableReturnValue public fun put(key: String, element: JsonElement): JsonElement? = content.put(key, element) @PublishedApi @@ -78,6 +79,7 @@ public class JsonObjectBuilder @PublishedApi internal constructor() { * * Returns the previous value associated with [key], or `null` if the key was not present. */ +@IgnorableReturnValue public fun JsonObjectBuilder.putJsonObject(key: String, builderAction: JsonObjectBuilder.() -> Unit): JsonElement? = put(key, buildJsonObject(builderAction)) @@ -86,6 +88,7 @@ public fun JsonObjectBuilder.putJsonObject(key: String, builderAction: JsonObjec * * Returns the previous value associated with [key], or `null` if the key was not present. */ +@IgnorableReturnValue public fun JsonObjectBuilder.putJsonArray(key: String, builderAction: JsonArrayBuilder.() -> Unit): JsonElement? = put(key, buildJsonArray(builderAction)) @@ -94,6 +97,7 @@ public fun JsonObjectBuilder.putJsonArray(key: String, builderAction: JsonArrayB * * Returns the previous value associated with [key], or `null` if the key was not present. */ +@IgnorableReturnValue public fun JsonObjectBuilder.put(key: String, value: Boolean?): JsonElement? = put(key, JsonPrimitive(value)) /** @@ -101,6 +105,7 @@ public fun JsonObjectBuilder.put(key: String, value: Boolean?): JsonElement? = p * * Returns the previous value associated with [key], or `null` if the key was not present. */ +@IgnorableReturnValue public fun JsonObjectBuilder.put(key: String, value: Number?): JsonElement? = put(key, JsonPrimitive(value)) /** @@ -108,6 +113,7 @@ public fun JsonObjectBuilder.put(key: String, value: Number?): JsonElement? = pu * * Returns the previous value associated with [key], or `null` if the key was not present. */ +@IgnorableReturnValue public fun JsonObjectBuilder.put(key: String, value: String?): JsonElement? = put(key, JsonPrimitive(value)) /** @@ -115,6 +121,7 @@ public fun JsonObjectBuilder.put(key: String, value: String?): JsonElement? = pu * * Returns the previous value associated with [key], or `null` if the key was not present. */ +@IgnorableReturnValue @ExperimentalSerializationApi @Suppress("UNUSED_PARAMETER") // allows to call `put("key", null)` public fun JsonObjectBuilder.put(key: String, value: Nothing?): JsonElement? = put(key, JsonNull) @@ -132,6 +139,7 @@ public class JsonArrayBuilder @PublishedApi internal constructor() { * * Always returns `true` similarly to [ArrayList] specification. */ + @IgnorableReturnValue public fun add(element: JsonElement): Boolean { content += element return true @@ -142,6 +150,7 @@ public class JsonArrayBuilder @PublishedApi internal constructor() { * * @return `true` if the list was changed as the result of the operation. */ + @IgnorableReturnValue @ExperimentalSerializationApi public fun addAll(elements: Collection): Boolean = content.addAll(elements) @@ -155,6 +164,7 @@ public class JsonArrayBuilder @PublishedApi internal constructor() { * * Always returns `true` similarly to [ArrayList] specification. */ +@IgnorableReturnValue public fun JsonArrayBuilder.add(value: Boolean?): Boolean = add(JsonPrimitive(value)) /** @@ -162,6 +172,7 @@ public fun JsonArrayBuilder.add(value: Boolean?): Boolean = add(JsonPrimitive(va * * Always returns `true` similarly to [ArrayList] specification. */ +@IgnorableReturnValue public fun JsonArrayBuilder.add(value: Number?): Boolean = add(JsonPrimitive(value)) /** @@ -169,6 +180,7 @@ public fun JsonArrayBuilder.add(value: Number?): Boolean = add(JsonPrimitive(val * * Always returns `true` similarly to [ArrayList] specification. */ +@IgnorableReturnValue public fun JsonArrayBuilder.add(value: String?): Boolean = add(JsonPrimitive(value)) /** @@ -176,6 +188,7 @@ public fun JsonArrayBuilder.add(value: String?): Boolean = add(JsonPrimitive(val * * Always returns `true` similarly to [ArrayList] specification. */ +@IgnorableReturnValue @ExperimentalSerializationApi @Suppress("UNUSED_PARAMETER") // allows to call `add(null)` public fun JsonArrayBuilder.add(value: Nothing?): Boolean = add(JsonNull) @@ -185,6 +198,7 @@ public fun JsonArrayBuilder.add(value: Nothing?): Boolean = add(JsonNull) * * Always returns `true` similarly to [ArrayList] specification. */ +@IgnorableReturnValue public fun JsonArrayBuilder.addJsonObject(builderAction: JsonObjectBuilder.() -> Unit): Boolean = add(buildJsonObject(builderAction)) @@ -193,6 +207,7 @@ public fun JsonArrayBuilder.addJsonObject(builderAction: JsonObjectBuilder.() -> * * Always returns `true` similarly to [ArrayList] specification. */ +@IgnorableReturnValue public fun JsonArrayBuilder.addJsonArray(builderAction: JsonArrayBuilder.() -> Unit): Boolean = add(buildJsonArray(builderAction)) @@ -201,6 +216,7 @@ public fun JsonArrayBuilder.addJsonArray(builderAction: JsonArrayBuilder.() -> U * * @return `true` if the list was changed as the result of the operation. */ +@IgnorableReturnValue @JvmName("addAllStrings") @ExperimentalSerializationApi public fun JsonArrayBuilder.addAll(values: Collection): Boolean = @@ -211,6 +227,7 @@ public fun JsonArrayBuilder.addAll(values: Collection): Boolean = * * @return `true` if the list was changed as the result of the operation. */ +@IgnorableReturnValue @JvmName("addAllBooleans") @ExperimentalSerializationApi public fun JsonArrayBuilder.addAll(values: Collection): Boolean = @@ -221,6 +238,7 @@ public fun JsonArrayBuilder.addAll(values: Collection): Boolean = * * @return `true` if the list was changed as the result of the operation. */ +@IgnorableReturnValue @JvmName("addAllNumbers") @ExperimentalSerializationApi public fun JsonArrayBuilder.addAll(values: Collection): Boolean = diff --git a/formats/json/commonMain/src/kotlinx/serialization/json/JsonElementSerializers.kt b/formats/json/commonMain/src/kotlinx/serialization/json/JsonElementSerializers.kt index 269f68b415..740194e1b0 100644 --- a/formats/json/commonMain/src/kotlinx/serialization/json/JsonElementSerializers.kt +++ b/formats/json/commonMain/src/kotlinx/serialization/json/JsonElementSerializers.kt @@ -191,11 +191,11 @@ internal object JsonArraySerializer : KSerializer { } private fun verify(encoder: Encoder) { - encoder.asJsonEncoder() + val _ = encoder.asJsonEncoder() } private fun verify(decoder: Decoder) { - decoder.asJsonDecoder() + val _ = decoder.asJsonDecoder() } internal fun Decoder.asJsonDecoder(): JsonDecoder = this as? JsonDecoder diff --git a/formats/json/commonMain/src/kotlinx/serialization/json/internal/StreamingJsonDecoder.kt b/formats/json/commonMain/src/kotlinx/serialization/json/internal/StreamingJsonDecoder.kt index 9477db6290..48ce08995a 100644 --- a/formats/json/commonMain/src/kotlinx/serialization/json/internal/StreamingJsonDecoder.kt +++ b/formats/json/commonMain/src/kotlinx/serialization/json/internal/StreamingJsonDecoder.kt @@ -216,7 +216,7 @@ internal open class StreamingJsonDecoder( descriptor, index, { lexer.tryConsumeNull(it) }, { lexer.peekString(configuration.isLenient) }, - { lexer.consumeString() /* skip unknown enum string*/ } + { val _ = lexer.consumeString() /* skip unknown enum string*/ } ) private fun decodeObjectIndex(descriptor: SerialDescriptor): Int { diff --git a/formats/json/commonMain/src/kotlinx/serialization/json/internal/TreeJsonEncoder.kt b/formats/json/commonMain/src/kotlinx/serialization/json/internal/TreeJsonEncoder.kt index 6d2f36c90d..e8642f9ab1 100644 --- a/formats/json/commonMain/src/kotlinx/serialization/json/internal/TreeJsonEncoder.kt +++ b/formats/json/commonMain/src/kotlinx/serialization/json/internal/TreeJsonEncoder.kt @@ -84,7 +84,7 @@ private sealed class AbstractJsonTreeEncoder( polymorphicDiscriminator = discriminatorName polymorphicSerialName = serialName } - } else JsonPrimitiveEncoder(json, nodeConsumer).apply { + } else JsonPrimitiveEncoder(json, nodeConsumer).run { encodeSerializableValue(serializer, value) } } diff --git a/formats/json/commonMain/src/kotlinx/serialization/json/internal/lexer/AbstractJsonLexer.kt b/formats/json/commonMain/src/kotlinx/serialization/json/internal/lexer/AbstractJsonLexer.kt index 5f570a95ec..207aae39f9 100644 --- a/formats/json/commonMain/src/kotlinx/serialization/json/internal/lexer/AbstractJsonLexer.kt +++ b/formats/json/commonMain/src/kotlinx/serialization/json/internal/lexer/AbstractJsonLexer.kt @@ -200,6 +200,7 @@ internal abstract class AbstractJsonLexer { protected var escapedString = StringBuilder() // TODO consider replacing usages of this method in JsonParser with char overload + @IgnorableReturnValue fun consumeNextToken(expected: Byte): Byte { val token = consumeNextToken() if (token != expected) { @@ -531,13 +532,13 @@ internal abstract class AbstractJsonLexer { val tokenStack = mutableListOf() var lastToken = peekNextToken() if (lastToken != TC_BEGIN_LIST && lastToken != TC_BEGIN_OBJ) { - consumeStringLenient() + val _ = consumeStringLenient() return } while (true) { lastToken = peekNextToken() if (lastToken == TC_STRING) { - if (allowLenientStrings) consumeStringLenient() else consumeKeyString() + val _ = if (allowLenientStrings) consumeStringLenient() else consumeKeyString() continue } when (lastToken) { @@ -562,7 +563,7 @@ internal abstract class AbstractJsonLexer { } TC_EOF -> fail("Unexpected end of input due to malformed JSON during ignoring unknown keys") } - consumeNextToken() + val _ = consumeNextToken() if (tokenStack.size == 0) return } } diff --git a/formats/json/commonMain/src/kotlinx/serialization/json/internal/lexer/StringJsonLexer.kt b/formats/json/commonMain/src/kotlinx/serialization/json/internal/lexer/StringJsonLexer.kt index 3cadfcde8a..5578c336c0 100644 --- a/formats/json/commonMain/src/kotlinx/serialization/json/internal/lexer/StringJsonLexer.kt +++ b/formats/json/commonMain/src/kotlinx/serialization/json/internal/lexer/StringJsonLexer.kt @@ -89,7 +89,7 @@ internal open class StringJsonLexer(override val source: String) : AbstractJsonL if (closingQuote == -1) { // advance currentPosition to a token after the end of the string to guess position in the error msg // (not always correct, as `:`/`,` are valid contents of the string, but good guess anyway) - consumeStringLenient() + val _ = consumeStringLenient() fail(TC_STRING, wasConsumed = false) } // Now we _optimistically_ know where the string ends (it might have been an escaped quote) diff --git a/formats/json/jvmMain/src/kotlinx/serialization/json/internal/JsonToStringWriter.kt b/formats/json/jvmMain/src/kotlinx/serialization/json/internal/JsonToStringWriter.kt index 56667248e9..438c034091 100644 --- a/formats/json/jvmMain/src/kotlinx/serialization/json/internal/JsonToStringWriter.kt +++ b/formats/json/jvmMain/src/kotlinx/serialization/json/internal/JsonToStringWriter.kt @@ -126,6 +126,7 @@ internal actual class JsonToStringWriter : InternalJsonWriter { } // Old size is passed and returned separately to avoid excessive [size] field read + @IgnorableReturnValue private fun ensureTotalCapacity(oldSize: Int, additional: Int): Int { val newSize = oldSize + additional if (array.size <= newSize) { diff --git a/formats/json/jvmMain/src/kotlinx/serialization/json/internal/JvmJsonStreams.kt b/formats/json/jvmMain/src/kotlinx/serialization/json/internal/JvmJsonStreams.kt index e8e0d9a5bc..107072a6d6 100644 --- a/formats/json/jvmMain/src/kotlinx/serialization/json/internal/JvmJsonStreams.kt +++ b/formats/json/jvmMain/src/kotlinx/serialization/json/internal/JvmJsonStreams.kt @@ -91,6 +91,7 @@ internal class JsonToJavaStreamWriter(private val stream: OutputStream) : Intern flush() } + @IgnorableReturnValue private fun ensureTotalCapacity(oldSize: Int, additional: Int): Int { val newSize = oldSize + additional if (charArray.size <= newSize) { diff --git a/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufDecoding.kt b/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufDecoding.kt index 56884b12a7..3058717bbb 100644 --- a/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufDecoding.kt +++ b/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufDecoding.kt @@ -132,7 +132,7 @@ internal open class ProtobufDecoder( return if (this.descriptor.kind == StructureKind.LIST && tag != MISSING_TAG && this.descriptor != descriptor) { val reader = makeDelimited(reader, tag) // repeated decoder expects the first tag to be read already - reader.readTag() + val _ = reader.readTag() // all elements always have id = 1 RepeatedDecoder(proto, reader, ProtoDesc(1, ProtoIntegerType.DEFAULT), descriptor) diff --git a/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufReader.kt b/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufReader.kt index 674224a718..71e9af3a13 100644 --- a/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufReader.kt +++ b/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufReader.kt @@ -51,12 +51,12 @@ internal class ProtobufReader(private val input: ByteArrayInput) { pushBack = true val nextHeader = (currentId shl 3) or currentType.typeId - updateIdAndType(pushBackHeader) + val _ = updateIdAndType(pushBackHeader) pushBackHeader = nextHeader } fun skipElement() { - when (currentType) { + val _ = when (currentType) { ProtoWireType.VARINT -> readInt(ProtoIntegerType.DEFAULT) ProtoWireType.i64 -> readLong(ProtoIntegerType.FIXED) ProtoWireType.SIZE_DELIMITED -> skipSizeDelimited() diff --git a/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufTaggedBase.kt b/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufTaggedBase.kt index ffa9f47940..d550a9cc6e 100644 --- a/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufTaggedBase.kt +++ b/formats/protobuf/commonMain/src/kotlinx/serialization/protobuf/internal/ProtobufTaggedBase.kt @@ -49,6 +49,7 @@ internal abstract class ProtobufTaggedBase { tagsStack = tagsStack.copyOf(tagsStack.size * 2) } + @IgnorableReturnValue protected fun popTag(): ProtoDesc { if (stackSize >= 0) return tagsStack[stackSize--] // Unreachable diff --git a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtoOneofInline.kt b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtoOneofInline.kt index 4e303b571b..7fc5a3e888 100644 --- a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtoOneofInline.kt +++ b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtoOneofInline.kt @@ -46,4 +46,4 @@ class ProtoInline { assertEquals("1a03666f6f", it) } } -} \ No newline at end of file +} diff --git a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtoTagExceptionTest.kt b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtoTagExceptionTest.kt index a119ea5e8c..8b1f9280ba 100644 --- a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtoTagExceptionTest.kt +++ b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtoTagExceptionTest.kt @@ -197,4 +197,4 @@ class ProtoTagExceptionTest { ProtoBuf.decodeFromHexString("1a03666f6f182a") } } -} \ No newline at end of file +} diff --git a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtobufOneOfTest.kt b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtobufOneOfTest.kt index e272738fcb..6f9a4b8e05 100644 --- a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtobufOneOfTest.kt +++ b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/ProtobufOneOfTest.kt @@ -716,4 +716,4 @@ class ProtobufOneOfTest { ProtoBuf.decodeFromHexString("082a") } } -} \ No newline at end of file +} diff --git a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/TestFunctions.kt b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/TestFunctions.kt index d886e0ff43..078430f72f 100644 --- a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/TestFunctions.kt +++ b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/TestFunctions.kt @@ -23,7 +23,7 @@ inline fun testConversion(data: T, expectedHexString: String) { inline fun assertFailsWithMessage( message: String, assertionMessage: String? = null, - block: () -> Unit + block: () -> Any? ) { assertFailsWith( assertionMessage, @@ -51,7 +51,7 @@ inline fun ExceptionCheckScope<*>.assertCausedBy(noinlin inline fun assertFailsWith( assertionMessage: String? = null, assertion: ExceptionCheckScope.() -> Unit = {}, - block: () -> Unit + block: () -> Any? ) { val exception = assertFailsWith(T::class, assertionMessage, block = block) val scope = buildExceptionCheckScope(exception) diff --git a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/schema/SchemaValidationsTest.kt b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/schema/SchemaValidationsTest.kt index ffe9d94346..dda8170846 100644 --- a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/schema/SchemaValidationsTest.kt +++ b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/schema/SchemaValidationsTest.kt @@ -127,10 +127,11 @@ class SchemaValidationsTest { @Test fun testValidPackageNames() { val descriptors = listOf(ValidClass.serializer().descriptor) - ProtoBufSchemaGenerator.generateSchemaText(descriptors, "singleIdent") - ProtoBufSchemaGenerator.generateSchemaText(descriptors, "double.ident") - ProtoBufSchemaGenerator.generateSchemaText(descriptors, "with.digits0123") - ProtoBufSchemaGenerator.generateSchemaText(descriptors, "with.underscore_") + fun String.assertNotEmpty() = assertTrue(isNotEmpty()) + ProtoBufSchemaGenerator.generateSchemaText(descriptors, "singleIdent").assertNotEmpty() + ProtoBufSchemaGenerator.generateSchemaText(descriptors, "double.ident").assertNotEmpty() + ProtoBufSchemaGenerator.generateSchemaText(descriptors, "with.digits0123").assertNotEmpty() + ProtoBufSchemaGenerator.generateSchemaText(descriptors, "with.underscore_").assertNotEmpty() } @Test diff --git a/gradle.properties b/gradle.properties index 092c559a8f..c909c84734 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ # group=org.jetbrains.kotlinx -version=1.9.1-SNAPSHOT +version=1.10.0-SNAPSHOT jdk_toolchain_version=11 # This version takes precedence if 'bootstrap' property passed to project diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9437a9fb1a..0378030e91 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,9 @@ [versions] -kotlin = "2.2.0" +kotlin = "2.3.0-Beta2" kover = "0.8.2" dokka = "2.0.0" knit = "0.5.0" -bcv = "0.16.2" +bcv = "0.18.1" animalsniffer = "1.7.1" protobuf = "0.8.19" shadow = "8.3.9" diff --git a/integration-test/build.gradle.kts b/integration-test/build.gradle.kts index 0a9b4fd00e..e54acc0b4b 100644 --- a/integration-test/build.gradle.kts +++ b/integration-test/build.gradle.kts @@ -111,7 +111,7 @@ kotlin { } named("wasmJsTest") { dependencies { - api("org.jetbrains.kotlin:kotlin-test-wasm-js") + implementation("org.jetbrains.kotlin:kotlin-test-wasm-js") } } named("wasmWasiMain") { @@ -121,11 +121,15 @@ kotlin { } named("wasmWasiTest") { dependencies { - api("org.jetbrains.kotlin:kotlin-test-wasm-wasi") + implementation("org.jetbrains.kotlin:kotlin-test-wasm-wasi") } } } + compilerOptions { + freeCompilerArgs.add("-Xreturn-value-checker=check") + } + targets.all { compilations.all { compileTaskProvider.configure { diff --git a/integration-test/gradle.properties b/integration-test/gradle.properties index 2d2f12686e..99ff396929 100644 --- a/integration-test/gradle.properties +++ b/integration-test/gradle.properties @@ -2,8 +2,8 @@ # Copyright 2017-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. # -mainKotlinVersion=2.2.0 -mainLibVersion=1.9.1-SNAPSHOT +mainKotlinVersion=2.3.0-Beta2 +mainLibVersion=1.10.0-SNAPSHOT kotlin.code.style=official diff --git a/integration-test/kotlin-js-store/yarn.lock b/integration-test/kotlin-js-store/yarn.lock index 02b202d90e..ea095bbdd2 100644 --- a/integration-test/kotlin-js-store/yarn.lock +++ b/integration-test/kotlin-js-store/yarn.lock @@ -2,16 +2,33 @@ # yarn lockfile v1 -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== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== + ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -19,13 +36,10 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" +ansi-styles@^6.1.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== argparse@^2.0.1: version "2.0.1" @@ -37,11 +51,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - brace-expansion@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" @@ -49,13 +58,6 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" @@ -79,28 +81,20 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -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" +chokidar@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + dependencies: + readdirp "^4.0.1" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wrap-ansi "^7.0.0" color-convert@^2.0.1: @@ -115,6 +109,15 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + debug@^4.3.5: version "4.3.6" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" @@ -127,16 +130,26 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -diff@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" - integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== +diff@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" + integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -147,13 +160,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -167,43 +173,35 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + 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== -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -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== +glob@^10.4.5: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" has-flag@^4.0.0: version "4.0.0" @@ -215,48 +213,11 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" @@ -267,6 +228,20 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -274,10 +249,10 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -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== +kotlin-web-helpers@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-3.0.0.tgz#3ed6b48f694f74bb60a737a9d7e2c0e3b29abdb9" + integrity sha512-kdQO4AJQkUPvpLh9aglkXDRyN+CfXO7pKq+GESEnxooBFkQpytLrqZis3ABvmFN1cGw/ZQ/K38u5sRGW+NfBnw== dependencies: format-util "^1.0.5" @@ -296,37 +271,47 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -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== +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +minimatch@^9.0.4, minimatch@^9.0.5: + 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" -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== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +mocha@11.7.2: + version "11.7.2" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.2.tgz#3c0079fe5cc2f8ea86d99124debcc42bb1ab22b5" + integrity sha512-lkqVJPmqqG/w5jmmFtiRvtA2jkDyNVUcefFJKb2uyX4dekk8Okgqop3cgbFiaIvj8uCRJVTP5x9dfxGyXm2jvQ== dependencies: - ansi-colors "^4.1.3" browser-stdout "^1.3.1" - chokidar "^3.5.3" + chokidar "^4.0.1" debug "^4.3.5" - diff "^5.2.0" + diff "^7.0.0" escape-string-regexp "^4.0.0" find-up "^5.0.0" - glob "^8.1.0" + glob "^10.4.5" he "^1.2.0" js-yaml "^4.1.0" log-symbols "^4.1.0" - minimatch "^5.1.6" + minimatch "^9.0.5" ms "^2.1.3" + picocolors "^1.1.1" 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" + workerpool "^9.2.0" + yargs "^17.7.2" + yargs-parser "^21.1.1" yargs-unparser "^2.0.0" ms@2.1.2: @@ -339,18 +324,6 @@ ms@^2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -365,15 +338,33 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== randombytes@^2.1.0: version "2.1.0" @@ -382,12 +373,10 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== require-directory@^2.1.1: version "2.1.1" @@ -406,6 +395,23 @@ serialize-javascript@^6.0.2: dependencies: randombytes "^2.1.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + source-map-support@0.5.21: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -419,7 +425,7 @@ source-map@^0.6.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -string-width@^4.1.0, string-width@^4.2.0: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -428,13 +434,29 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + dependencies: + ansi-regex "^6.0.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" @@ -454,19 +476,19 @@ supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: - is-number "^7.0.0" + isexe "^2.0.0" -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== +workerpool@^9.2.0: + version "9.3.4" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" + integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -475,20 +497,24 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" 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.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-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs-unparser@^2.0.0: version "2.0.0" @@ -500,18 +526,18 @@ yargs-unparser@^2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -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== +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" - string-width "^4.2.0" + string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^20.2.2" + yargs-parser "^21.1.1" yocto-queue@^0.1.0: version "0.1.0" diff --git a/kotlin-js-store/yarn.lock b/kotlin-js-store/yarn.lock index c90cd890a2..63fe938cd3 100644 --- a/kotlin-js-store/yarn.lock +++ b/kotlin-js-store/yarn.lock @@ -2,16 +2,33 @@ # yarn lockfile v1 -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== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== + ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -19,13 +36,10 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" +ansi-styles@^6.1.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== argparse@^2.0.1: version "2.0.1" @@ -37,11 +51,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - brace-expansion@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" @@ -49,13 +58,6 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" @@ -79,28 +81,20 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -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" +chokidar@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + dependencies: + readdirp "^4.0.1" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wrap-ansi "^7.0.0" color-convert@^2.0.1: @@ -115,6 +109,15 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + debug@^4.3.5: version "4.4.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" @@ -127,16 +130,26 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -diff@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" - integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== +diff@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" + integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + escalade@^3.1.1: version "3.2.0" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" @@ -147,13 +160,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -167,43 +173,35 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + 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== -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -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== +glob@^10.4.5: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" has-flag@^4.0.0: version "4.0.0" @@ -215,48 +213,11 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" @@ -267,6 +228,20 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -274,10 +249,10 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -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== +kotlin-web-helpers@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-3.0.0.tgz#3ed6b48f694f74bb60a737a9d7e2c0e3b29abdb9" + integrity sha512-kdQO4AJQkUPvpLh9aglkXDRyN+CfXO7pKq+GESEnxooBFkQpytLrqZis3ABvmFN1cGw/ZQ/K38u5sRGW+NfBnw== dependencies: format-util "^1.0.5" @@ -296,37 +271,47 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -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== +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +minimatch@^9.0.4, minimatch@^9.0.5: + 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" -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== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +mocha@11.7.2: + version "11.7.2" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.2.tgz#3c0079fe5cc2f8ea86d99124debcc42bb1ab22b5" + integrity sha512-lkqVJPmqqG/w5jmmFtiRvtA2jkDyNVUcefFJKb2uyX4dekk8Okgqop3cgbFiaIvj8uCRJVTP5x9dfxGyXm2jvQ== dependencies: - ansi-colors "^4.1.3" browser-stdout "^1.3.1" - chokidar "^3.5.3" + chokidar "^4.0.1" debug "^4.3.5" - diff "^5.2.0" + diff "^7.0.0" escape-string-regexp "^4.0.0" find-up "^5.0.0" - glob "^8.1.0" + glob "^10.4.5" he "^1.2.0" js-yaml "^4.1.0" log-symbols "^4.1.0" - minimatch "^5.1.6" + minimatch "^9.0.5" ms "^2.1.3" + picocolors "^1.1.1" 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" + workerpool "^9.2.0" + yargs "^17.7.2" + yargs-parser "^21.1.1" yargs-unparser "^2.0.0" ms@^2.1.3: @@ -334,18 +319,6 @@ ms@^2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -360,15 +333,33 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== randombytes@^2.1.0: version "2.1.0" @@ -377,12 +368,10 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== require-directory@^2.1.1: version "2.1.1" @@ -401,6 +390,23 @@ serialize-javascript@^6.0.2: dependencies: randombytes "^2.1.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + source-map-support@0.5.21: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -414,7 +420,7 @@ source-map@^0.6.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -string-width@^4.1.0, string-width@^4.2.0: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -423,13 +429,29 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + dependencies: + ansi-regex "^6.0.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" @@ -449,19 +471,19 @@ supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: - is-number "^7.0.0" + isexe "^2.0.0" -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== +workerpool@^9.2.0: + version "9.3.4" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" + integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -470,20 +492,24 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" 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.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-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs-unparser@^2.0.0: version "2.0.0" @@ -495,18 +521,18 @@ yargs-unparser@^2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -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== +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" - string-width "^4.2.0" + string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^20.2.2" + yargs-parser "^21.1.1" yocto-queue@^0.1.0: version "0.1.0"