From 021b778e56081c7406d59e04bc533d4af4ed71b4 Mon Sep 17 00:00:00 2001 From: Jigar Brahmbhatt Date: Thu, 21 Mar 2024 19:05:12 -0400 Subject: [PATCH] Move to Kotlin 1.9.23, refactor Gradle file and source set directories (#110) --- .yarnrc | 1 + README.md | 2 +- build.gradle.kts | 8 - convention-plugins/build.gradle.kts | 7 + convention-plugins/settings.gradle.kts | 10 + .../src/main/kotlin/kmp-setup.gradle.kts | 67 + deprecated/stately-collections/build.gradle | 140 +- .../touchlab/stately/collections/Functions.kt | 0 .../touchlab/stately/collections/JsIgnore.kt | 0 .../stately/collections/CopyOnWriteList.kt | 4 +- .../touchlab/stately/collections/Functions.kt | 0 deprecated/stately-common/build.gradle | 141 +- .../co/touchlab/stately/annotation/Throws.kt | 24 - .../kotlin/co/touchlab/stately/HelpersJS.kt | 0 .../stately/annotation/Annotations.kt | 25 - .../stately/annotation/Annotations.kt | 23 - .../stately/annotation/Annotations.kt | 21 - .../kotlin/co/touchlab/stately/Helpers.kt | 0 .../stately-iso-collections/build.gradle | 74 +- .../touchlab/stately/collections/JsIgnore.kt | 0 deprecated/stately-isolate/build.gradle | 141 +- .../stately/isolate/BackgroundStateRunner.kt | 0 .../touchlab/stately/isolate/StateHolder.kt | 0 .../stately/isolate/BackgroundStateRunner.kt | 0 .../co/touchlab/stately/isolate/Platform.kt | 0 gradle.properties | 2 +- gradle/libs.versions.toml | 14 +- gradle/wrapper/gradle-wrapper.jar | Bin 56172 -> 63375 bytes gradle/wrapper/gradle-wrapper.properties | 20 +- gradlew | 300 +-- gradlew.bat | 56 +- kotlin-js-store/yarn.lock | 1688 +++++------------ settings.gradle.kts | 9 + stately-concurrency/build.gradle.kts | 104 +- .../co/touchlab/stately/concurrency/Lock.kt | 3 +- .../co/touchlab/stately/concurrency/Lock.kt | 0 .../touchlab/stately/concurrency/AtomicInt.kt | 0 .../stately/concurrency/AtomicLong.kt | 0 .../stately/concurrency/AtomicReference.kt | 0 .../co/touchlab/stately/concurrency/Lock.kt | 0 .../stately/concurrency/Synchronizable.kt | 0 .../stately/concurrency/ThreadLocal.kt | 0 .../touchlab/stately/concurrency/ThreadRef.kt | 0 .../co/touchlab/stately/concurrency/Lock.kt | 0 .../co/touchlab/stately/concurrency/Lock.kt | 0 .../co/touchlab/stately/concurrency/Lock.kt | 55 - .../touchlab/stately/concurrency/AtomicInt.kt | 2 +- .../stately/concurrency/AtomicLong.kt | 2 +- .../stately/concurrency/AtomicReference.kt | 2 +- .../touchlab/stately/concurrency/Functions.kt | 0 .../stately/concurrency/GuardedStableRef.kt | 0 .../stately/concurrency/ThreadLocal.kt | 0 .../touchlab/stately/concurrency/ThreadRef.kt | 2 +- .../concurrency/GuardedStableRefTest.kt | 0 .../build.gradle.kts | 71 +- .../collections/backgroundDispatcher.kt | 0 stately-strict/build.gradle.kts | 72 +- .../co/touchlab/stately/strict/HelpersJS.kt | 0 .../co/touchlab/stately/strict/Helpers.kt | 0 .../co/touchlab/stately/strict/HelpersTest.kt | 3 +- 60 files changed, 823 insertions(+), 2270 deletions(-) create mode 100644 .yarnrc create mode 100644 convention-plugins/build.gradle.kts create mode 100644 convention-plugins/settings.gradle.kts create mode 100644 convention-plugins/src/main/kotlin/kmp-setup.gradle.kts rename deprecated/stately-collections/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/collections/Functions.kt (100%) rename deprecated/stately-collections/src/{jsWasmTest => jsAndWasmJsTest}/kotlin/co/touchlab/stately/collections/JsIgnore.kt (100%) rename deprecated/stately-collections/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/collections/CopyOnWriteList.kt (98%) rename deprecated/stately-collections/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/collections/Functions.kt (100%) delete mode 100644 deprecated/stately-common/src/commonMain/kotlin/co/touchlab/stately/annotation/Throws.kt rename deprecated/stately-common/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/HelpersJS.kt (100%) delete mode 100644 deprecated/stately-common/src/jsWasmMain/kotlin/co/touchlab/stately/annotation/Annotations.kt delete mode 100644 deprecated/stately-common/src/jvmMain/kotlin/co/touchlab/stately/annotation/Annotations.kt delete mode 100644 deprecated/stately-common/src/nativeCommonMain/kotlin/co/touchlab/stately/annotation/Annotations.kt rename deprecated/stately-common/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/Helpers.kt (100%) rename deprecated/stately-iso-collections/src/{jsWasmTest => jsAndWasmJsTest}/kotlin/co/touchlab/stately/collections/JsIgnore.kt (100%) rename deprecated/stately-isolate/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/isolate/BackgroundStateRunner.kt (100%) rename deprecated/stately-isolate/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/isolate/StateHolder.kt (100%) rename deprecated/stately-isolate/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/isolate/BackgroundStateRunner.kt (100%) rename deprecated/stately-isolate/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/isolate/Platform.kt (100%) rename stately-concurrency/src/{pthreadAndroidMain => AndroidNativeMain}/kotlin/co/touchlab/stately/concurrency/Lock.kt (93%) rename stately-concurrency/src/{darwinMain => appleMain}/kotlin/co/touchlab/stately/concurrency/Lock.kt (100%) rename stately-concurrency/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt (100%) rename stately-concurrency/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt (100%) rename stately-concurrency/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt (100%) rename stately-concurrency/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/concurrency/Lock.kt (100%) rename stately-concurrency/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/concurrency/Synchronizable.kt (100%) rename stately-concurrency/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/concurrency/ThreadLocal.kt (100%) rename stately-concurrency/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt (100%) rename stately-concurrency/src/{pthreadMain => linuxMain}/kotlin/co/touchlab/stately/concurrency/Lock.kt (100%) rename stately-concurrency/src/{mingwX64Main => mingwMain}/kotlin/co/touchlab/stately/concurrency/Lock.kt (100%) delete mode 100644 stately-concurrency/src/mingwX86Main/kotlin/co/touchlab/stately/concurrency/Lock.kt rename stately-concurrency/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt (96%) rename stately-concurrency/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt (96%) rename stately-concurrency/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt (96%) rename stately-concurrency/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/concurrency/Functions.kt (100%) rename stately-concurrency/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/concurrency/GuardedStableRef.kt (100%) rename stately-concurrency/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/concurrency/ThreadLocal.kt (100%) rename stately-concurrency/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt (91%) rename stately-concurrency/src/{nativeCommonTest => nativeTest}/kotlin/co/touchlab/stately/concurrency/GuardedStableRefTest.kt (100%) rename stately-concurrent-collections/src/{jsWasmTest => jsAndWasmJsTest}/kotlin/co/touchlab/stately/collections/backgroundDispatcher.kt (100%) rename stately-strict/src/{jsWasmMain => jsAndWasmJsMain}/kotlin/co/touchlab/stately/strict/HelpersJS.kt (100%) rename stately-strict/src/{nativeCommonMain => nativeMain}/kotlin/co/touchlab/stately/strict/Helpers.kt (100%) rename stately-strict/src/{nativeCommonTest => nativeTest}/kotlin/co/touchlab/stately/strict/HelpersTest.kt (91%) diff --git a/.yarnrc b/.yarnrc new file mode 100644 index 0000000..f757a6a --- /dev/null +++ b/.yarnrc @@ -0,0 +1 @@ +--ignore-engines true \ No newline at end of file diff --git a/README.md b/README.md index 7de3805..0654009 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ commonMain { License ======= - Copyright 2022 Touchlab, Inc. + Copyright 2024 Touchlab, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/build.gradle.kts b/build.gradle.kts index 64fb31f..e0af3dc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,12 +26,4 @@ val VERSION_NAME: String by project allprojects { group = GROUP version = VERSION_NAME -} - -allprojects { - repositories { - mavenCentral() - google() - maven("https://maven.pkg.jetbrains.space/kotlin/p/wasm/experimental") - } } \ No newline at end of file diff --git a/convention-plugins/build.gradle.kts b/convention-plugins/build.gradle.kts new file mode 100644 index 0000000..5a4a1d3 --- /dev/null +++ b/convention-plugins/build.gradle.kts @@ -0,0 +1,7 @@ +plugins { + `kotlin-dsl` +} + +dependencies { + implementation(libs.kotlin.gradlePlugin) +} \ No newline at end of file diff --git a/convention-plugins/settings.gradle.kts b/convention-plugins/settings.gradle.kts new file mode 100644 index 0000000..ac9c362 --- /dev/null +++ b/convention-plugins/settings.gradle.kts @@ -0,0 +1,10 @@ +dependencyResolutionManagement { + repositories { + gradlePluginPortal() + } + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } +} \ No newline at end of file diff --git a/convention-plugins/src/main/kotlin/kmp-setup.gradle.kts b/convention-plugins/src/main/kotlin/kmp-setup.gradle.kts new file mode 100644 index 0000000..0ecfed8 --- /dev/null +++ b/convention-plugins/src/main/kotlin/kmp-setup.gradle.kts @@ -0,0 +1,67 @@ +import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension + +plugins { + kotlin("multiplatform") +} + +kotlin { + @OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class) + compilerOptions { + freeCompilerArgs.add("-Xexpect-actual-classes") + } + jvm() + js { + nodejs { + testTask { + useMocha { + // Override default timeout (needed for stress tests) + timeout = "120s" + } + } + } + browser() + } + @OptIn(org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl::class) + wasmJs { + browser() + nodejs() + } + macosX64() + iosArm64() + iosX64() + watchosArm32() + watchosArm64() + watchosX64() + watchosDeviceArm64() + tvosArm64() + tvosX64() + + macosArm64() + iosSimulatorArm64() + watchosSimulatorArm64() + tvosSimulatorArm64() + + mingwX64() + linuxX64() + linuxArm64() + + androidNativeArm32() + androidNativeArm64() + androidNativeX86() + androidNativeX64() + + @Suppress("OPT_IN_USAGE") + applyDefaultHierarchyTemplate { + common { + group("jsAndWasmJs") { + withJs() + withWasm() + } + } + } +} + +rootProject.the().apply { + nodeVersion = "21.0.0-v8-canary202309143a48826a08" + nodeDownloadBaseUrl = "https://nodejs.org/download/v8-canary" +} \ No newline at end of file diff --git a/deprecated/stately-collections/build.gradle b/deprecated/stately-collections/build.gradle index 2bcf853..d649449 100644 --- a/deprecated/stately-collections/build.gradle +++ b/deprecated/stately-collections/build.gradle @@ -14,7 +14,11 @@ * limitations under the License. */ -apply plugin: 'org.jetbrains.kotlin.multiplatform' +plugins { + id 'org.jetbrains.kotlin.multiplatform' + id 'kmp-setup' + id 'com.vanniktech.maven.publish' +} group = GROUP version = VERSION_NAME @@ -23,39 +27,6 @@ configurations { compileClasspath } kotlin { - targetHierarchy.default {} - jvm() - js { - nodejs() - browser() - } - wasm { - browser() - binaries.executable() - } - macosX64() - iosArm64() - iosX64() - watchosArm32() - watchosArm64() - watchosX64() - watchosDeviceArm64() - tvosArm64() - tvosX64() - mingwX64() - linuxX64() - linuxArm64() - - macosArm64() - iosSimulatorArm64() - watchosSimulatorArm64() - tvosSimulatorArm64() - - androidNativeArm32() - androidNativeArm64() - androidNativeX86() - androidNativeX64() - sourceSets { commonMain { dependencies { @@ -70,104 +41,5 @@ kotlin { implementation libs.testHelp } } - - create("jsWasmMain") { - dependsOn commonMain - } - - create("jsWasmTest") { - dependsOn commonTest - } - - jsMain { - dependsOn jsWasmMain - } - jsTest { - dependsOn jsWasmTest - } - - wasmMain { - dependsOn jsWasmMain - } - wasmTest { - dependsOn jsWasmTest - } - - nativeCommonMain { - dependsOn commonMain - } - nativeCommonTest { - dependsOn commonTest - } - - macosX64Main { - dependsOn nativeCommonMain - } - iosArm64Main { - dependsOn nativeCommonMain - } - iosX64Main { - dependsOn nativeCommonMain - } - watchosArm32Main { - dependsOn nativeCommonMain - } - watchosArm64Main { - dependsOn nativeCommonMain - } - watchosX64Main { - dependsOn nativeCommonMain - } - watchosDeviceArm64Main { - dependsOn nativeCommonMain - } - tvosArm64Main { - dependsOn nativeCommonMain - } - tvosX64Main { - dependsOn nativeCommonMain - } - - macosArm64Main { - dependsOn nativeCommonMain - } - iosSimulatorArm64Main { - dependsOn nativeCommonMain - } - watchosSimulatorArm64Main { - dependsOn nativeCommonMain - } - tvosSimulatorArm64Main { - dependsOn nativeCommonMain - } - - mingwX64Main { - dependsOn nativeCommonMain - } - - linuxX64Main { - dependsOn nativeCommonMain - } - linuxArm64Main { - dependsOn nativeCommonMain - } - - androidNativeArm32Main { - dependsOn nativeCommonMain - } - - androidNativeArm64Main { - dependsOn nativeCommonMain - } - - androidNativeX86Main { - dependsOn nativeCommonMain - } - - androidNativeX64Main { - dependsOn nativeCommonMain - } } -} - -apply plugin:"com.vanniktech.maven.publish" +} \ No newline at end of file diff --git a/deprecated/stately-collections/src/jsWasmMain/kotlin/co/touchlab/stately/collections/Functions.kt b/deprecated/stately-collections/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/collections/Functions.kt similarity index 100% rename from deprecated/stately-collections/src/jsWasmMain/kotlin/co/touchlab/stately/collections/Functions.kt rename to deprecated/stately-collections/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/collections/Functions.kt diff --git a/deprecated/stately-collections/src/jsWasmTest/kotlin/co/touchlab/stately/collections/JsIgnore.kt b/deprecated/stately-collections/src/jsAndWasmJsTest/kotlin/co/touchlab/stately/collections/JsIgnore.kt similarity index 100% rename from deprecated/stately-collections/src/jsWasmTest/kotlin/co/touchlab/stately/collections/JsIgnore.kt rename to deprecated/stately-collections/src/jsAndWasmJsTest/kotlin/co/touchlab/stately/collections/JsIgnore.kt diff --git a/deprecated/stately-collections/src/nativeCommonMain/kotlin/co/touchlab/stately/collections/CopyOnWriteList.kt b/deprecated/stately-collections/src/nativeMain/kotlin/co/touchlab/stately/collections/CopyOnWriteList.kt similarity index 98% rename from deprecated/stately-collections/src/nativeCommonMain/kotlin/co/touchlab/stately/collections/CopyOnWriteList.kt rename to deprecated/stately-collections/src/nativeMain/kotlin/co/touchlab/stately/collections/CopyOnWriteList.kt index 2138c0b..0afa4eb 100644 --- a/deprecated/stately-collections/src/nativeCommonMain/kotlin/co/touchlab/stately/collections/CopyOnWriteList.kt +++ b/deprecated/stately-collections/src/nativeMain/kotlin/co/touchlab/stately/collections/CopyOnWriteList.kt @@ -17,8 +17,8 @@ package co.touchlab.stately.collections import co.touchlab.stately.concurrency.Lock -import kotlin.native.concurrent.AtomicInt -import kotlin.native.concurrent.AtomicReference +import kotlin.concurrent.AtomicInt +import kotlin.concurrent.AtomicReference import kotlin.native.concurrent.freeze class CopyOnWriteList(elements: Collection) : MutableList { diff --git a/deprecated/stately-collections/src/nativeCommonMain/kotlin/co/touchlab/stately/collections/Functions.kt b/deprecated/stately-collections/src/nativeMain/kotlin/co/touchlab/stately/collections/Functions.kt similarity index 100% rename from deprecated/stately-collections/src/nativeCommonMain/kotlin/co/touchlab/stately/collections/Functions.kt rename to deprecated/stately-collections/src/nativeMain/kotlin/co/touchlab/stately/collections/Functions.kt diff --git a/deprecated/stately-common/build.gradle b/deprecated/stately-common/build.gradle index 01b526d..387636b 100644 --- a/deprecated/stately-common/build.gradle +++ b/deprecated/stately-common/build.gradle @@ -13,46 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -apply plugin: 'org.jetbrains.kotlin.multiplatform' +plugins { + id 'org.jetbrains.kotlin.multiplatform' + id 'kmp-setup' + id 'com.vanniktech.maven.publish' +} group = GROUP version = VERSION_NAME kotlin { - targetHierarchy.default {} - jvm() - js { - nodejs() - browser() - } - wasm { - browser() - binaries.executable() - } - macosX64() - iosArm64() - iosX64() - watchosArm32() - watchosArm64() - watchosX64() - watchosDeviceArm64() - tvosArm64() - tvosX64() - - macosArm64() - iosSimulatorArm64() - watchosSimulatorArm64() - tvosSimulatorArm64() - - mingwX64() - linuxX64() - linuxArm64() - - androidNativeArm32() - androidNativeArm64() - androidNativeX86() - androidNativeX64() - sourceSets { commonMain {} @@ -62,108 +32,9 @@ kotlin { implementation libs.testHelp } } - - create("jsWasmMain") { - dependsOn commonMain - } - - create("jsWasmTest") { - dependsOn commonTest - } - - jsMain { - dependsOn jsWasmMain - } - jsTest { - dependsOn jsWasmTest - } - - wasmMain { - dependsOn jsWasmMain - } - wasmTest { - dependsOn jsWasmTest - } - - nativeCommonMain { - dependsOn commonMain - } - nativeCommonTest { - dependsOn commonTest - } - - macosX64Main { - dependsOn nativeCommonMain - } - iosArm64Main { - dependsOn nativeCommonMain - } - iosX64Main { - dependsOn nativeCommonMain - } - watchosArm32Main { - dependsOn nativeCommonMain - } - watchosArm64Main { - dependsOn nativeCommonMain - } - watchosX64Main { - dependsOn nativeCommonMain - } - watchosDeviceArm64Main { - dependsOn nativeCommonMain - } - tvosArm64Main { - dependsOn nativeCommonMain - } - tvosX64Main { - dependsOn nativeCommonMain - } - - macosArm64Main { - dependsOn nativeCommonMain - } - iosSimulatorArm64Main { - dependsOn nativeCommonMain - } - watchosSimulatorArm64Main { - dependsOn nativeCommonMain - } - tvosSimulatorArm64Main { - dependsOn nativeCommonMain - } - - mingwX64Main { - dependsOn nativeCommonMain - } - - linuxX64Main { - dependsOn nativeCommonMain - } - linuxArm64Main { - dependsOn nativeCommonMain - } - - androidNativeArm32Main { - dependsOn nativeCommonMain - } - - androidNativeArm64Main { - dependsOn nativeCommonMain - } - - androidNativeX86Main { - dependsOn nativeCommonMain - } - - androidNativeX64Main { - dependsOn nativeCommonMain - } } } configurations { compileClasspath -} - -apply plugin:"com.vanniktech.maven.publish" +} \ No newline at end of file diff --git a/deprecated/stately-common/src/commonMain/kotlin/co/touchlab/stately/annotation/Throws.kt b/deprecated/stately-common/src/commonMain/kotlin/co/touchlab/stately/annotation/Throws.kt deleted file mode 100644 index 79e3aed..0000000 --- a/deprecated/stately-common/src/commonMain/kotlin/co/touchlab/stately/annotation/Throws.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2018 Touchlab, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package co.touchlab.stately.annotation - -import kotlin.reflect.KClass - -@Deprecated("Since Kotlin 1.4 a common Throws annotation is included in the standard library") -@Target(AnnotationTarget.FUNCTION, AnnotationTarget.CONSTRUCTOR) -@Retention(AnnotationRetention.SOURCE) -expect annotation class Throws(vararg val exceptionClasses: KClass) diff --git a/deprecated/stately-common/src/jsWasmMain/kotlin/co/touchlab/stately/HelpersJS.kt b/deprecated/stately-common/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/HelpersJS.kt similarity index 100% rename from deprecated/stately-common/src/jsWasmMain/kotlin/co/touchlab/stately/HelpersJS.kt rename to deprecated/stately-common/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/HelpersJS.kt diff --git a/deprecated/stately-common/src/jsWasmMain/kotlin/co/touchlab/stately/annotation/Annotations.kt b/deprecated/stately-common/src/jsWasmMain/kotlin/co/touchlab/stately/annotation/Annotations.kt deleted file mode 100644 index 4969ecd..0000000 --- a/deprecated/stately-common/src/jsWasmMain/kotlin/co/touchlab/stately/annotation/Annotations.kt +++ /dev/null @@ -1,25 +0,0 @@ -// ktlint-disable filename -/* - * Copyright (C) 2018 Touchlab, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package co.touchlab.stately.annotation - -import kotlin.reflect.KClass - -@Deprecated("Since Kotlin 1.4 a common Throws annotation is included in the standard library") -@Target(AnnotationTarget.FUNCTION, AnnotationTarget.CONSTRUCTOR) -@Retention(AnnotationRetention.SOURCE) -actual annotation class Throws actual constructor(actual vararg val exceptionClasses: KClass) diff --git a/deprecated/stately-common/src/jvmMain/kotlin/co/touchlab/stately/annotation/Annotations.kt b/deprecated/stately-common/src/jvmMain/kotlin/co/touchlab/stately/annotation/Annotations.kt deleted file mode 100644 index 20e8566..0000000 --- a/deprecated/stately-common/src/jvmMain/kotlin/co/touchlab/stately/annotation/Annotations.kt +++ /dev/null @@ -1,23 +0,0 @@ -// ktlint-disable filename -/* - * Copyright (C) 2018 Touchlab, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package co.touchlab.stately.annotation - -import kotlin.jvm.Throws - -@Deprecated("Since Kotlin 1.4 a common Throws annotation is included in the standard library") -actual typealias Throws = Throws diff --git a/deprecated/stately-common/src/nativeCommonMain/kotlin/co/touchlab/stately/annotation/Annotations.kt b/deprecated/stately-common/src/nativeCommonMain/kotlin/co/touchlab/stately/annotation/Annotations.kt deleted file mode 100644 index 8ede03e..0000000 --- a/deprecated/stately-common/src/nativeCommonMain/kotlin/co/touchlab/stately/annotation/Annotations.kt +++ /dev/null @@ -1,21 +0,0 @@ -// ktlint-disable filename -/* - * Copyright (C) 2018 Touchlab, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package co.touchlab.stately.annotation - -@Deprecated("Since Kotlin 1.4 a common Throws annotation is included in the standard library") -actual typealias Throws = kotlin.Throws diff --git a/deprecated/stately-common/src/nativeCommonMain/kotlin/co/touchlab/stately/Helpers.kt b/deprecated/stately-common/src/nativeMain/kotlin/co/touchlab/stately/Helpers.kt similarity index 100% rename from deprecated/stately-common/src/nativeCommonMain/kotlin/co/touchlab/stately/Helpers.kt rename to deprecated/stately-common/src/nativeMain/kotlin/co/touchlab/stately/Helpers.kt diff --git a/deprecated/stately-iso-collections/build.gradle b/deprecated/stately-iso-collections/build.gradle index ddaa1fd..649fb1a 100644 --- a/deprecated/stately-iso-collections/build.gradle +++ b/deprecated/stately-iso-collections/build.gradle @@ -13,54 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -apply plugin: 'org.jetbrains.kotlin.multiplatform' +plugins { + id 'org.jetbrains.kotlin.multiplatform' + id 'kmp-setup' + id 'com.vanniktech.maven.publish' +} group = GROUP version = VERSION_NAME kotlin { - targetHierarchy.default {} - jvm() - js { - browser() - nodejs { - testTask { - useMocha { - // Override default timeout (needed for stress tests) - timeout = "120s" - } - } - } - } - wasm { - browser() - binaries.executable() - } - - macosX64() - iosArm64() - iosX64() - watchosArm32() - watchosArm64() - watchosX64() - watchosDeviceArm64() - tvosArm64() - tvosX64() - - macosArm64() - iosSimulatorArm64() - watchosSimulatorArm64() - tvosSimulatorArm64() - - mingwX64() - linuxX64() - linuxArm64() - - androidNativeArm32() - androidNativeArm64() - androidNativeX86() - androidNativeX64() - sourceSets { commonMain { dependencies { @@ -74,33 +36,9 @@ kotlin { implementation libs.testHelp } } - - create("jsWasmMain") { - dependsOn commonMain - } - - create("jsWasmTest") { - dependsOn commonTest - } - - jsMain { - dependsOn jsWasmMain - } - jsTest { - dependsOn jsWasmTest - } - - wasmMain { - dependsOn jsWasmMain - } - wasmTest { - dependsOn jsWasmTest - } } } configurations { compileClasspath -} - -apply plugin:"com.vanniktech.maven.publish" +} \ No newline at end of file diff --git a/deprecated/stately-iso-collections/src/jsWasmTest/kotlin/co/touchlab/stately/collections/JsIgnore.kt b/deprecated/stately-iso-collections/src/jsAndWasmJsTest/kotlin/co/touchlab/stately/collections/JsIgnore.kt similarity index 100% rename from deprecated/stately-iso-collections/src/jsWasmTest/kotlin/co/touchlab/stately/collections/JsIgnore.kt rename to deprecated/stately-iso-collections/src/jsAndWasmJsTest/kotlin/co/touchlab/stately/collections/JsIgnore.kt diff --git a/deprecated/stately-isolate/build.gradle b/deprecated/stately-isolate/build.gradle index bf1127a..5067515 100644 --- a/deprecated/stately-isolate/build.gradle +++ b/deprecated/stately-isolate/build.gradle @@ -13,46 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -apply plugin: 'org.jetbrains.kotlin.multiplatform' +plugins { + id 'org.jetbrains.kotlin.multiplatform' + id 'kmp-setup' + id 'com.vanniktech.maven.publish' +} group = GROUP version = VERSION_NAME kotlin { - targetHierarchy.default {} - jvm() - js { - nodejs() - browser() - } - wasm { - browser() - binaries.executable() - } - macosX64() - iosArm64() - iosX64() - watchosArm32() - watchosArm64() - watchosX64() - watchosDeviceArm64() - tvosArm64() - tvosX64() - - macosArm64() - iosSimulatorArm64() - watchosSimulatorArm64() - tvosSimulatorArm64() - - mingwX64() - linuxX64() - linuxArm64() - - androidNativeArm32() - androidNativeArm64() - androidNativeX86() - androidNativeX64() - sourceSets { commonMain { dependencies { @@ -67,108 +37,9 @@ kotlin { implementation libs.testHelp } } - - create("jsWasmMain") { - dependsOn commonMain - } - - create("jsWasmTest") { - dependsOn commonTest - } - - jsMain { - dependsOn jsWasmMain - } - jsTest { - dependsOn jsWasmTest - } - - wasmMain { - dependsOn jsWasmMain - } - wasmTest { - dependsOn jsWasmTest - } - - nativeCommonMain { - dependsOn commonMain - } - nativeCommonTest { - dependsOn commonTest - } - - macosX64Main { - dependsOn nativeCommonMain - } - iosArm64Main { - dependsOn nativeCommonMain - } - iosX64Main { - dependsOn nativeCommonMain - } - watchosArm32Main { - dependsOn nativeCommonMain - } - watchosArm64Main { - dependsOn nativeCommonMain - } - watchosX64Main { - dependsOn nativeCommonMain - } - watchosDeviceArm64Main { - dependsOn nativeCommonMain - } - tvosArm64Main { - dependsOn nativeCommonMain - } - tvosX64Main { - dependsOn nativeCommonMain - } - - macosArm64Main { - dependsOn nativeCommonMain - } - iosSimulatorArm64Main { - dependsOn nativeCommonMain - } - watchosSimulatorArm64Main { - dependsOn nativeCommonMain - } - tvosSimulatorArm64Main { - dependsOn nativeCommonMain - } - - mingwX64Main { - dependsOn nativeCommonMain - } - - linuxX64Main { - dependsOn nativeCommonMain - } - linuxArm64Main { - dependsOn nativeCommonMain - } - - androidNativeArm32Main { - dependsOn nativeCommonMain - } - - androidNativeArm64Main { - dependsOn nativeCommonMain - } - - androidNativeX86Main { - dependsOn nativeCommonMain - } - - androidNativeX64Main { - dependsOn nativeCommonMain - } } } configurations { compileClasspath -} - -apply plugin:"com.vanniktech.maven.publish" +} \ No newline at end of file diff --git a/deprecated/stately-isolate/src/jsWasmMain/kotlin/co/touchlab/stately/isolate/BackgroundStateRunner.kt b/deprecated/stately-isolate/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/isolate/BackgroundStateRunner.kt similarity index 100% rename from deprecated/stately-isolate/src/jsWasmMain/kotlin/co/touchlab/stately/isolate/BackgroundStateRunner.kt rename to deprecated/stately-isolate/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/isolate/BackgroundStateRunner.kt diff --git a/deprecated/stately-isolate/src/jsWasmMain/kotlin/co/touchlab/stately/isolate/StateHolder.kt b/deprecated/stately-isolate/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/isolate/StateHolder.kt similarity index 100% rename from deprecated/stately-isolate/src/jsWasmMain/kotlin/co/touchlab/stately/isolate/StateHolder.kt rename to deprecated/stately-isolate/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/isolate/StateHolder.kt diff --git a/deprecated/stately-isolate/src/nativeCommonMain/kotlin/co/touchlab/stately/isolate/BackgroundStateRunner.kt b/deprecated/stately-isolate/src/nativeMain/kotlin/co/touchlab/stately/isolate/BackgroundStateRunner.kt similarity index 100% rename from deprecated/stately-isolate/src/nativeCommonMain/kotlin/co/touchlab/stately/isolate/BackgroundStateRunner.kt rename to deprecated/stately-isolate/src/nativeMain/kotlin/co/touchlab/stately/isolate/BackgroundStateRunner.kt diff --git a/deprecated/stately-isolate/src/nativeCommonMain/kotlin/co/touchlab/stately/isolate/Platform.kt b/deprecated/stately-isolate/src/nativeMain/kotlin/co/touchlab/stately/isolate/Platform.kt similarity index 100% rename from deprecated/stately-isolate/src/nativeCommonMain/kotlin/co/touchlab/stately/isolate/Platform.kt rename to deprecated/stately-isolate/src/nativeMain/kotlin/co/touchlab/stately/isolate/Platform.kt diff --git a/gradle.properties b/gradle.properties index 6b6b573..35e2f36 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,7 +19,7 @@ SONATYPE_HOST=DEFAULT RELEASE_SIGNING_ENABLED=true GROUP=co.touchlab -VERSION_NAME=2.0.6 +VERSION_NAME=2.0.7 POM_NAME=Stately POM_DESCRIPTION=Multithreaded Kotlin Multiplatform Utilities diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 58fc7c9..c796195 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,19 +1,21 @@ [versions] -agp = "8.1.0" +agp = "8.3.0" buildConfig = "4.1.2" -binaryCompatibilityValidator = "0.13.2" +binaryCompatibilityValidator = "0.14.0" dokka = "1.9.0" touchlab-docusaurusosstemplate = "0.1.10" -mavenPublish = "0.25.3" -testHelp = "0.6.11" -coroutines-test = "1.7.2-wasm0" -kotlin = "1.9.10" +mavenPublish = "0.27.0" +testHelp = "0.6.12" +coroutines-test = "1.8.0" +kotlin = "1.9.23" [libraries] testHelp = { module = "co.touchlab:testhelp", version.ref = "testHelp" } coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines-test" } +# For convention-plugins +kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } [plugins] kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 28861d273a5d270fd8f65dd74570c17c9c507736..033e24c4cdf41af1ab109bc7f253b2b887023340 100644 GIT binary patch delta 55022 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≪Dv$V-- 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 \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -81,92 +129,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" fi +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index e95643d..6689b85 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,4 +1,20 @@ -@if "%DEBUG%" == "" @echo off +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -9,19 +25,23 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +55,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,38 +65,26 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/kotlin-js-store/yarn.lock b/kotlin-js-store/yarn.lock index af1a991..999f0e2 100644 --- a/kotlin-js-store/yarn.lock +++ b/kotlin-js-store/yarn.lock @@ -12,85 +12,50 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: - "@jridgewell/set-array" "^1.0.1" + "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/source-map@^0.3.3": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" - integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.19" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" - integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" - integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== - -"@types/body-parser@*": - version "1.19.3" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.3.tgz#fb558014374f7d9e56c8f34bab2042a3a07d25cd" - integrity sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bonjour@^3.5.9": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.11.tgz#fbaa46a1529ea5c5e46cde36e4be6a880db55b84" - integrity sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg== - dependencies: - "@types/node" "*" - -"@types/component-emitter@^1.2.10": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.11.tgz#50d47d42b347253817a39709fef03ce66a108506" - integrity sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ== - -"@types/connect-history-api-fallback@^1.3.5": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.1.tgz#6e5e3602d93bda975cebc3449e1a318340af9e20" - integrity sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.36" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.36.tgz#e511558c15a39cb29bd5357eebb57bd1459cd1ab" - integrity sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w== - dependencies: - "@types/node" "*" +"@socket.io/component-emitter@~3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" + integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== "@types/cookie@^0.4.1": version "0.4.1" @@ -98,150 +63,49 @@ integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== "@types/cors@^2.8.12": - version "2.8.12" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" - integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== + version "2.8.17" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.17.tgz#5d718a5e494a8166f569d986794e49c48b216b2b" + integrity sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA== + dependencies: + "@types/node" "*" "@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.4.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304" - integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== + version "8.56.6" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.6.tgz#d5dc16cac025d313ee101108ba5714ea10eb3ed0" + integrity sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - -"@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.37" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz#7e4b7b59da9142138a2aaa7621f5abedce8c7320" - integrity sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@*", "@types/express@^4.17.13": - version "4.17.18" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.18.tgz#efabf5c4495c1880df1bdffee604b143b29c4a95" - integrity sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/http-errors@*": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.2.tgz#a86e00bbde8950364f8e7846687259ffcd96e8c2" - integrity sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg== - -"@types/http-proxy@^1.17.8": - version "1.17.12" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.12.tgz#86e849e9eeae0362548803c37a0a1afc616bd96b" - integrity sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw== - dependencies: - "@types/node" "*" +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/json-schema@*", "@types/json-schema@^7.0.8": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/json-schema@^7.0.9": - version "7.0.13" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" - integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== - -"@types/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/node@*", "@types/node@>=10.0.0": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.24.tgz#20ba1bf69c1b4ab405c7a01e950c4f446b05029f" - integrity sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g== - -"@types/qs@*": - version "6.9.8" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.8.tgz#f2a7de3c107b89b441e071d5472e6b726b4adf45" - integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== - -"@types/send@*": - version "0.17.2" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.2.tgz#af78a4495e3c2b79bfbdac3955fdd50e03cc98f2" - integrity sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-index@^1.9.1": - version "1.9.2" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.2.tgz#cb26e775678a8526b73a5d980a147518740aaecd" - integrity sha512-asaEIoc6J+DbBKXtO7p2shWUpKacZOoMBEGBgPG91P8xhO53ohzHWGCs4ScZo5pQMf5ukQzVT9fhX1WzpHihig== + version "20.11.30" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.30.tgz#9c33467fc23167a347e73834f788f4b9f399d66f" + integrity sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw== dependencies: - "@types/express" "*" + undici-types "~5.26.4" -"@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.3" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.3.tgz#2cfacfd1fd4520bbc3e292cca432d5e8e2e3ee61" - integrity sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg== - dependencies: - "@types/http-errors" "*" - "@types/mime" "*" - "@types/node" "*" - -"@types/sockjs@^0.3.33": - version "0.3.34" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.34.tgz#43e10e549b36d2ba2589278f00f81b5d7ccda167" - integrity sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g== - dependencies: - "@types/node" "*" - -"@types/ws@^8.5.1": - version "8.5.5" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" - integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg== - dependencies: - "@types/node" "*" - -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.11.5": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== dependencies: "@webassemblyjs/helper-numbers" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" @@ -256,10 +120,10 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== -"@webassemblyjs/helper-buffer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== "@webassemblyjs/helper-numbers@1.11.6": version "1.11.6" @@ -275,15 +139,15 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" "@webassemblyjs/ieee754@1.11.6": version "1.11.6" @@ -305,58 +169,58 @@ integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== "@webassemblyjs/wasm-edit@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-opt" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - "@webassemblyjs/wast-printer" "1.11.6" - -"@webassemblyjs/wasm-gen@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== - dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wasm-opt@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/ast" "1.12.1" "@webassemblyjs/helper-api-error" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wast-printer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/ast" "1.12.1" "@xtuc/long" "4.2.2" "@webpack-cli/configtest@^2.1.0": @@ -389,7 +253,7 @@ abab@^2.0.6: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: +accepts@~1.3.4: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -398,39 +262,20 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: negotiator "0.6.3" acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== - -acorn@^8.7.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -acorn@^8.8.2: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" +acorn@^8.7.1, acorn@^8.8.2: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv-keywords@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -441,26 +286,11 @@ ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.9.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - ansi-colors@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -474,9 +304,9 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: 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== + 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" @@ -486,16 +316,6 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-flatten@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -506,62 +326,29 @@ base64id@2.0.0, base64id@~2.0.0: resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== - 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== - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.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== body-parser@^1.19.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.10.3" - raw-body "2.5.1" + qs "6.11.0" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" -bonjour-service@^1.0.11: - version "1.1.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" - integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== - dependencies: - array-flatten "^2.1.2" - dns-equal "^1.0.0" - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -590,48 +377,45 @@ browser-stdout@1.3.1: integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserslist@^4.14.5: - version "4.20.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" - integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== dependencies: - caniuse-lite "^1.0.30001317" - electron-to-chromium "^1.4.84" - escalade "^3.1.1" - node-releases "^2.0.2" - picocolors "^1.0.0" + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" camelcase@^6.0.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001317: - version "1.0.30001332" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" - integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== +caniuse-lite@^1.0.30001587: + version "1.0.30001599" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz#571cf4f3f1506df9bf41fcbb6d10d5d017817bce" + integrity sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA== chalk@^4.1.0: version "4.1.2" @@ -641,7 +425,7 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@3.5.3, chokidar@^3.5.1, chokidar@^3.5.3: +chokidar@3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -656,6 +440,21 @@ chokidar@3.5.3, chokidar@^3.5.1, chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" +chokidar@^3.5.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -691,16 +490,11 @@ 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== -colorette@^2.0.10: +colorette@^2.0.14: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -colorette@^2.0.14: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== - commander@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" @@ -711,40 +505,10 @@ commander@^2.20.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -component-emitter@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== connect@^3.7.0: version "3.7.0" @@ -756,38 +520,16 @@ connect@^3.7.0: parseurl "~1.3.3" utils-merge "1.0.1" -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== cookie@~0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - cors@~2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" @@ -808,12 +550,12 @@ cross-spawn@^7.0.3: custom-event@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= + integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== -date-format@^4.0.11, date-format@^4.0.13: - version "4.0.13" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.13.tgz#87c3aab3a4f6f37582c5f5f63692d2956fa67890" - integrity sha512-bnYCwf8Emc3pTD8pXnre+wfnjGtfi5ncMDKy7+cWZXbmRAsdWkOQHrfC1yz/KiwP5thDp2kCHWYWKBX4HP1hoQ== +date-format@^4.0.14: + version "4.0.14" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" + integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== debug@2.6.9: version "2.6.9" @@ -822,7 +564,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4.3.4, debug@^4.1.0, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4.3.4, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -834,64 +576,39 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: - execa "^5.0.0" - -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - destroy@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= + integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== diff@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== - -dns-packet@^5.2.2: - version "5.6.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" - integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - dom-serialize@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= + integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== dependencies: custom-event "~1.0.0" ent "~2.2.0" @@ -901,12 +618,12 @@ dom-serialize@^2.2.1: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.84: - version "1.4.111" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.111.tgz#897613f6504f3f17c9381c7499a635b413e4df4e" - integrity sha512-/s3+fwhKf1YK4k7btOImOzCQLpUjS6MaPf0ODTNuT4eTM1Bg4itBpLkydhOzJmpmH6Z9eXFyuuK5czsmzRzwtw== +electron-to-chromium@^1.4.668: + version "1.4.713" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.713.tgz#7cd8e4083c948f8d0cc686fcfdde97d97fd76556" + integrity sha512-vDarADhwntXiULEdmWd77g2dV6FrNGa8ecAC29MZ4TwPut2fvosD0/5sJd1qWNNe8HcJFAC+F5Lf9jW1NPtWmw== emoji-regex@^8.0.0: version "8.0.0" @@ -916,17 +633,17 @@ emoji-regex@^8.0.0: encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -engine.io-parser@~5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" - integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== +engine.io-parser@~5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== -engine.io@~6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.0.tgz#003bec48f6815926f2b1b17873e576acd54f41d0" - integrity sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg== +engine.io@~6.5.2: + version "6.5.4" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.5.4.tgz#6822debf324e781add2254e912f8568508850cdc" + integrity sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg== dependencies: "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" @@ -936,13 +653,13 @@ engine.io@~6.2.0: cookie "~0.4.1" cors "~2.8.5" debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.2.3" + engine.io-parser "~5.2.1" + ws "~8.11.0" enhanced-resolve@^5.13.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== + version "5.16.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz#65ec88778083056cb32487faa9aef82ed0864787" + integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -950,27 +667,39 @@ enhanced-resolve@^5.13.0: ent@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= + integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== envinfo@^7.7.3: - version "7.8.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + version "7.11.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.1.tgz#2ffef77591057081b0129a8fd8cf6118da1b94e1" + integrity sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-module-lexer@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz#c1b0dd5ada807a3b3155315911f364dc4e909db1" - integrity sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q== + version "1.4.2" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.2.tgz#ba1a62255ff9b41023aaf9bd08c016a5f1a3fef3" + integrity sha512-7nOqkomXZEaxUDJw21XZNtRk739QvrPSoZoRtbsEfcii00vdzZUh6zh1CQwHhrib8MdEtJfv5rJiGeb4KuV/vw== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@4.0.0: version "4.0.0" @@ -1002,11 +731,6 @@ estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -1017,64 +741,12 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -express@^4.17.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - extend@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: +fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -1085,16 +757,9 @@ fast-json-stable-stringify@^2.0.0: integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fastest-levenshtein@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" - integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fill-range@^7.0.1: version "7.0.1" @@ -1116,19 +781,6 @@ finalhandler@1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - find-up@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -1150,31 +802,21 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== +flatted@^3.2.7: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== follow-redirects@^1.0.0: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== 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== -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -1184,44 +826,36 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-monkey@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" - integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + 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== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" glob-parent@~5.1.2: version "5.1.2" @@ -1235,7 +869,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.2.0, glob@^7.1.3, glob@^7.1.7: +glob@7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -1247,63 +881,64 @@ glob@7.2.0, glob@^7.1.3, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +glob@^7.1.3, glob@^7.1.7: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" -graceful-fs@^4.2.10: +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1: +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" he@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^2.3.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" - integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -1315,32 +950,6 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== - -http-proxy-middleware@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" - integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" @@ -1350,11 +959,6 @@ http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -1380,36 +984,21 @@ import-local@^3.0.2: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - interpret@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -ipaddr.js@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" - integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== - 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" @@ -1418,21 +1007,16 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-core-module@^2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" - integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: - has "^1.0.3" - -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + hasown "^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 sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -1456,11 +1040,6 @@ is-plain-obj@^2.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -1468,28 +1047,11 @@ is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isbinaryfile@^4.0.8: version "4.0.10" resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" @@ -1498,12 +1060,12 @@ isbinaryfile@^4.0.8: isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== jest-worker@^27.4.5: version "27.5.1" @@ -1531,11 +1093,6 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -1608,14 +1165,6 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -launch-editor@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" - integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== - dependencies: - picocolors "^1.0.0" - shell-quote "^1.7.3" - loader-runner@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" @@ -1649,83 +1198,43 @@ log-symbols@4.1.0: is-unicode-supported "^0.1.0" log4js@^6.4.1: - version "6.6.0" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.6.0.tgz#e8fd00143d1e0ecf1d10959bb69b90b1b30137f3" - integrity sha512-3v8R7fd45UB6THucSht6wN2/7AZEruQbXdjygPZcxt5TA/msO6si9CN5MefUuKXbYnJHTBnYcx4famwcyQd+sA== + version "6.9.1" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.9.1.tgz#aba5a3ff4e7872ae34f8b4c533706753709e38b6" + integrity sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g== dependencies: - date-format "^4.0.11" + date-format "^4.0.14" debug "^4.3.4" - flatted "^3.2.5" + flatted "^3.2.7" rfdc "^1.3.0" - streamroller "^3.1.1" + streamroller "^3.1.5" media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -memfs@^3.4.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" - integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== - dependencies: - fs-monkey "^1.0.4" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.2: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": +mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - mime@^2.5.2: version "2.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - minimatch@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" @@ -1733,7 +1242,7 @@ minimatch@5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.4: +minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -1741,9 +1250,9 @@ minimatch@^3.0.4: brace-expansion "^1.1.7" minimist@^1.2.3, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mkdirp@^0.5.5: version "0.5.6" @@ -1782,7 +1291,7 @@ mocha@10.2.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -1794,14 +1303,6 @@ ms@2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns@^7.2.5: - version "7.2.5" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - nanoid@3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" @@ -1817,42 +1318,25 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-releases@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" - integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== 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== -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - object-assign@^4: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== on-finished@2.4.1: version "2.4.1" @@ -1864,38 +1348,17 @@ on-finished@2.4.1: on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== dependencies: ee-first "1.1.1" -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@^8.0.9: - version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" - integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -1924,20 +1387,12 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-retry@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== - dependencies: - "@types/retry" "0.12.0" - retry "^0.13.1" - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -parseurl@~1.3.2, parseurl@~1.3.3: +parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -1950,9 +1405,9 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^3.0.0, path-key@^3.1.0: +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== @@ -1962,17 +1417,12 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: +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== @@ -1984,36 +1434,16 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== qjobs@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" @@ -2028,43 +1458,21 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -range-parser@^1.2.1, range-parser@~1.2.1: +range-parser@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" -readable-stream@^2.0.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -2082,17 +1490,12 @@ rechoir@^0.8.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-cwd@^3.0.0: version "3.0.0" @@ -2107,37 +1510,27 @@ resolve-from@^5.0.0: integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve@^1.20.0: - version "1.22.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" - integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -2147,16 +1540,7 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^3.1.2: +schema-utils@^3.1.1, schema-utils@^3.1.2: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -2165,47 +1549,6 @@ schema-utils@^3.1.2: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" - integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -selfsigned@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" - integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== - dependencies: - node-forge "^1" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - serialize-javascript@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" @@ -2214,39 +1557,23 @@ serialize-javascript@6.0.0: randombytes "^2.1.0" serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" setprototypeof@1.2.0: version "1.2.0" @@ -2272,64 +1599,49 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.7.3: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.3: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -socket.io-adapter@~2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6" - integrity sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg== - -socket.io-parser@~4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.5.tgz#cb404382c32324cc962f27f3a44058cf6e0552df" - integrity sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig== - dependencies: - "@types/component-emitter" "^1.2.10" - component-emitter "~1.3.0" + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +socket.io-adapter@~2.5.2: + version "2.5.4" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz#4fdb1358667f6d68f25343353bd99bd11ee41006" + integrity sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg== + dependencies: + debug "~4.3.4" + ws "~8.11.0" + +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== + dependencies: + "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" socket.io@^4.4.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.1.tgz#aa7e73f8a6ce20ee3c54b2446d321bbb6b1a9029" - integrity sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ== + version "4.7.5" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.7.5.tgz#56eb2d976aef9d1445f373a62d781a41c7add8f8" + integrity sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA== dependencies: accepts "~1.3.4" base64id "~2.0.0" + cors "~2.8.5" debug "~4.3.2" - engine.io "~6.2.0" - socket.io-adapter "~2.4.0" - socket.io-parser "~4.0.4" - -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" + engine.io "~6.5.2" + socket.io-adapter "~2.5.2" + socket.io-parser "~4.2.4" source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== source-map-loader@4.0.1: version "4.0.1" @@ -2353,45 +1665,22 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -"statuses@>= 1.4.0 < 2", statuses@~1.5.0: +statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -streamroller@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.1.2.tgz#abd444560768b340f696307cf84d3f46e86c0e63" - integrity sha512-wZswqzbgGGsXYIrBYhOE0yP+nQ6XRk7xDcYwuQAGTYXdyAUmvgVFE0YU1g5pvQT0m7GBaQfYcSnlHbapuK0H0A== +streamroller@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.1.5.tgz#1263182329a45def1ffaef58d31b15d13d2ee7ff" + integrity sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw== dependencies: - date-format "^4.0.13" + date-format "^4.0.14" debug "^4.3.4" fs-extra "^8.1.0" @@ -2404,20 +1693,6 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - 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" @@ -2425,11 +1700,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - strip-json-comments@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -2460,37 +1730,30 @@ tapable@^2.1.1, tapable@^2.2.0: integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.20" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.16.8" + terser "^5.26.0" -terser@^5.16.8: - version "5.19.4" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.4.tgz#941426fa482bf9b40a0308ab2b3cd0cf7c775ebd" - integrity sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g== +terser@^5.26.0: + version "5.29.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.29.2.tgz#c17d573ce1da1b30f21a877bffd5655dd86fdb35" + integrity sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - tmp@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== to-regex-range@^5.0.1: version "5.0.1" @@ -2518,9 +1781,14 @@ typescript@5.0.4: integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== ua-parser-js@^0.7.30: - version "0.7.31" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" - integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== + version "0.7.37" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.37.tgz#e464e66dac2d33a7a1251d7d7a99d6157ec27832" + integrity sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== universalify@^0.1.0: version "0.1.2" @@ -2530,7 +1798,15 @@ universalify@^0.1.0: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" uri-js@^4.2.2: version "4.4.1" @@ -2539,46 +1815,29 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -vary@^1, vary@~1.1.2: +vary@^1: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== void-elements@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= + integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + version "2.4.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - webpack-cli@5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.0.tgz#abc4b1f44b50250f2632d8b8b536cfe2f6257891" @@ -2598,53 +1857,6 @@ webpack-cli@5.1.0: rechoir "^0.8.0" webpack-merge "^5.7.3" -webpack-dev-middleware@^5.3.1: - version "5.3.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" - integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== - dependencies: - colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@4.15.0: - version "4.15.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz#87ba9006eca53c551607ea0d663f4ae88be7af21" - integrity sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" - ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" - graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - launch-editor "^2.6.0" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^5.3.1" - ws "^8.13.0" - webpack-merge@^4.1.5: version "4.2.2" resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" @@ -2653,11 +1865,12 @@ webpack-merge@^4.1.5: lodash "^4.17.15" webpack-merge@^5.7.3: - version "5.8.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" - integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== dependencies: clone-deep "^4.0.1" + flat "^5.0.2" wildcard "^2.0.0" webpack-sources@^3.2.3: @@ -2695,20 +1908,6 @@ webpack@5.82.0: watchpack "^2.4.0" webpack-sources "^3.2.3" -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - which@^1.2.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -2724,9 +1923,9 @@ which@^2.0.1: isexe "^2.0.0" wildcard@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" - integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== workerpool@6.2.1: version "6.2.1" @@ -2745,17 +1944,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -ws@^8.13.0: - version "8.14.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@~8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" - integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== +ws@~8.11.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" + integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== y18n@^5.0.5: version "5.0.8" diff --git a/settings.gradle.kts b/settings.gradle.kts index b307cb6..6aafaef 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -15,9 +15,18 @@ project(":stately-isolate").projectDir = File("deprecated/stately-isolate") project(":stately-iso-collections").projectDir = File("deprecated/stately-iso-collections") pluginManagement { + includeBuild("convention-plugins") repositories { google() gradlePluginPortal() mavenCentral() } +} + +dependencyResolutionManagement { + @Suppress("UnstableApiUsage") + repositories { + mavenCentral() + google() + } } \ No newline at end of file diff --git a/stately-concurrency/build.gradle.kts b/stately-concurrency/build.gradle.kts index 99d8b67..111c657 100644 --- a/stately-concurrency/build.gradle.kts +++ b/stately-concurrency/build.gradle.kts @@ -1,6 +1,9 @@ +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi + plugins { kotlin("multiplatform") id("com.vanniktech.maven.publish") + id("kmp-setup") } val GROUP: String by project @@ -10,104 +13,13 @@ group = GROUP version = VERSION_NAME kotlin { - @Suppress("OPT_IN_USAGE") - targetHierarchy.default() - jvm() - js { - nodejs() - browser() - } - @Suppress("OPT_IN_USAGE") - wasm { - browser() - binaries.executable() - } - macosX64() - iosArm64() - iosX64() - watchosArm32() - watchosArm64() - watchosX64() - watchosDeviceArm64() - tvosArm64() - tvosX64() - - macosArm64() - iosSimulatorArm64() - watchosSimulatorArm64() - tvosSimulatorArm64() - watchosDeviceArm64() - - mingwX64() - linuxX64() - linuxArm64() - - androidNativeArm32() - androidNativeArm64() - androidNativeX86() - androidNativeX64() - sourceSets { - val commonMain by getting { - dependencies { - implementation(project(":stately-strict")) - } - } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - implementation(libs.testHelp) - } - } - - val jsWasmMain by creating { - dependsOn(commonMain) - getByName("jsMain").dependsOn(this) - getByName("wasmMain").dependsOn(this) - } - - val jsWasmTest by creating { - dependsOn(commonTest) - getByName("jsTest").dependsOn(this) - getByName("wasmTest").dependsOn(this) - } - - val nativeCommonMain by creating { - dependsOn(commonMain) + commonMain.dependencies { + implementation(project(":stately-strict")) } - val nativeCommonTest by creating { - dependsOn(commonTest) - } - - val darwinMain by creating { - dependsOn(nativeCommonMain) - } - - val pthreadMain by creating { - dependsOn(nativeCommonMain) - } - - val mingwMain by getting { - dependsOn(nativeCommonMain) - } - - val pthreadAndroidMain by creating { - dependsOn(nativeCommonMain) - } - - targets.withType().all { - val mainSourceSet = compilations.getByName("main").defaultSourceSet - val testSourceSet = compilations.getByName("test").defaultSourceSet - - mainSourceSet.dependsOn(when { - konanTarget.family.isAppleFamily -> darwinMain - konanTarget.family == org.jetbrains.kotlin.konan.target.Family.LINUX -> pthreadMain - konanTarget.family == org.jetbrains.kotlin.konan.target.Family.MINGW -> mingwMain - konanTarget.family == org.jetbrains.kotlin.konan.target.Family.ANDROID -> pthreadAndroidMain - else -> nativeCommonMain - }) - - testSourceSet.dependsOn(nativeCommonTest) + commonTest.dependencies { + implementation(kotlin("test")) + implementation(libs.testHelp) } } } diff --git a/stately-concurrency/src/pthreadAndroidMain/kotlin/co/touchlab/stately/concurrency/Lock.kt b/stately-concurrency/src/AndroidNativeMain/kotlin/co/touchlab/stately/concurrency/Lock.kt similarity index 93% rename from stately-concurrency/src/pthreadAndroidMain/kotlin/co/touchlab/stately/concurrency/Lock.kt rename to stately-concurrency/src/AndroidNativeMain/kotlin/co/touchlab/stately/concurrency/Lock.kt index ba4da5f..d65636b 100644 --- a/stately-concurrency/src/pthreadAndroidMain/kotlin/co/touchlab/stately/concurrency/Lock.kt +++ b/stately-concurrency/src/AndroidNativeMain/kotlin/co/touchlab/stately/concurrency/Lock.kt @@ -2,6 +2,7 @@ package co.touchlab.stately.concurrency import co.touchlab.stately.strict.maybeFreeze import kotlinx.cinterop.Arena +import kotlinx.cinterop.UnsafeNumber import kotlinx.cinterop.alloc import kotlinx.cinterop.ptr import platform.posix.PTHREAD_MUTEX_RECURSIVE @@ -20,7 +21,7 @@ import platform.posix.pthread_mutexattr_tVar * A simple lock. * Implementations of this class should be re-entrant. */ -@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) +@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class, UnsafeNumber::class) actual class Lock actual constructor() { private val arena = Arena() private val attr = arena.alloc() diff --git a/stately-concurrency/src/darwinMain/kotlin/co/touchlab/stately/concurrency/Lock.kt b/stately-concurrency/src/appleMain/kotlin/co/touchlab/stately/concurrency/Lock.kt similarity index 100% rename from stately-concurrency/src/darwinMain/kotlin/co/touchlab/stately/concurrency/Lock.kt rename to stately-concurrency/src/appleMain/kotlin/co/touchlab/stately/concurrency/Lock.kt diff --git a/stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt b/stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt similarity index 100% rename from stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt rename to stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt diff --git a/stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt b/stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt similarity index 100% rename from stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt rename to stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt diff --git a/stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt b/stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt similarity index 100% rename from stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt rename to stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt diff --git a/stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/Lock.kt b/stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/Lock.kt similarity index 100% rename from stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/Lock.kt rename to stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/Lock.kt diff --git a/stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/Synchronizable.kt b/stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/Synchronizable.kt similarity index 100% rename from stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/Synchronizable.kt rename to stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/Synchronizable.kt diff --git a/stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/ThreadLocal.kt b/stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/ThreadLocal.kt similarity index 100% rename from stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/ThreadLocal.kt rename to stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/ThreadLocal.kt diff --git a/stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt b/stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt similarity index 100% rename from stately-concurrency/src/jsWasmMain/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt rename to stately-concurrency/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt diff --git a/stately-concurrency/src/pthreadMain/kotlin/co/touchlab/stately/concurrency/Lock.kt b/stately-concurrency/src/linuxMain/kotlin/co/touchlab/stately/concurrency/Lock.kt similarity index 100% rename from stately-concurrency/src/pthreadMain/kotlin/co/touchlab/stately/concurrency/Lock.kt rename to stately-concurrency/src/linuxMain/kotlin/co/touchlab/stately/concurrency/Lock.kt diff --git a/stately-concurrency/src/mingwX64Main/kotlin/co/touchlab/stately/concurrency/Lock.kt b/stately-concurrency/src/mingwMain/kotlin/co/touchlab/stately/concurrency/Lock.kt similarity index 100% rename from stately-concurrency/src/mingwX64Main/kotlin/co/touchlab/stately/concurrency/Lock.kt rename to stately-concurrency/src/mingwMain/kotlin/co/touchlab/stately/concurrency/Lock.kt diff --git a/stately-concurrency/src/mingwX86Main/kotlin/co/touchlab/stately/concurrency/Lock.kt b/stately-concurrency/src/mingwX86Main/kotlin/co/touchlab/stately/concurrency/Lock.kt deleted file mode 100644 index 9852e1d..0000000 --- a/stately-concurrency/src/mingwX86Main/kotlin/co/touchlab/stately/concurrency/Lock.kt +++ /dev/null @@ -1,55 +0,0 @@ -package co.touchlab.stately.concurrency - -import co.touchlab.stately.strict.maybeFreeze -import kotlinx.cinterop.Arena -import kotlinx.cinterop.alloc -import kotlinx.cinterop.ptr -import platform.posix.PTHREAD_MUTEX_RECURSIVE -import platform.posix.pthread_mutex_destroy -import platform.posix.pthread_mutex_init -import platform.posix.pthread_mutex_lock -import platform.posix.pthread_mutex_tVar -import platform.posix.pthread_mutex_trylock -import platform.posix.pthread_mutex_unlock -import platform.posix.pthread_mutexattr_destroy -import platform.posix.pthread_mutexattr_init -import platform.posix.pthread_mutexattr_settype -import platform.posix.pthread_mutexattr_tVar - -/** - * A simple lock. - * Implementations of this class should be re-entrant. - */ -@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) -actual class Lock actual constructor() { - private val arena = Arena() - private val attr = arena.alloc() - private val mutex = arena.alloc() - - init { - pthread_mutexattr_init(attr.ptr) - pthread_mutexattr_settype(attr.ptr, PTHREAD_MUTEX_RECURSIVE.toInt()) - pthread_mutex_init(mutex.ptr, attr.ptr) - maybeFreeze() - } - - actual fun lock() { - pthread_mutex_lock(mutex.ptr) - } - - actual fun unlock() { - pthread_mutex_unlock(mutex.ptr) - } - - actual fun tryLock(): Boolean = pthread_mutex_trylock(mutex.ptr) == 0 - - fun internalClose() { - pthread_mutex_destroy(mutex.ptr) - pthread_mutexattr_destroy(attr.ptr) - arena.clear() - } -} - -actual inline fun Lock.close() { - internalClose() -} \ No newline at end of file diff --git a/stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt b/stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt similarity index 96% rename from stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt rename to stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt index 6ddd4b0..6ff895e 100644 --- a/stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt +++ b/stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/AtomicInt.kt @@ -16,7 +16,7 @@ package co.touchlab.stately.concurrency -import kotlin.native.concurrent.AtomicInt +import kotlin.concurrent.AtomicInt actual class AtomicInt actual constructor(initialValue: Int) { private val atom = AtomicInt(initialValue) diff --git a/stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt b/stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt similarity index 96% rename from stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt rename to stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt index 2ff0d38..5603019 100644 --- a/stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt +++ b/stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/AtomicLong.kt @@ -16,7 +16,7 @@ package co.touchlab.stately.concurrency -import kotlin.native.concurrent.AtomicLong +import kotlin.concurrent.AtomicLong actual class AtomicLong actual constructor(initialValue: Long) { private val atom = AtomicLong(initialValue) diff --git a/stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt b/stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt similarity index 96% rename from stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt rename to stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt index 0a28a96..8249014 100644 --- a/stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt +++ b/stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/AtomicReference.kt @@ -17,7 +17,7 @@ package co.touchlab.stately.concurrency import co.touchlab.stately.strict.maybeFreeze -import kotlin.native.concurrent.AtomicReference +import kotlin.concurrent.AtomicReference // actual typealias AtomicReference = AtomicReference actual class AtomicReference actual constructor(initialValue: V) { diff --git a/stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/Functions.kt b/stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/Functions.kt similarity index 100% rename from stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/Functions.kt rename to stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/Functions.kt diff --git a/stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/GuardedStableRef.kt b/stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/GuardedStableRef.kt similarity index 100% rename from stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/GuardedStableRef.kt rename to stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/GuardedStableRef.kt diff --git a/stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/ThreadLocal.kt b/stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/ThreadLocal.kt similarity index 100% rename from stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/ThreadLocal.kt rename to stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/ThreadLocal.kt diff --git a/stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt b/stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt similarity index 91% rename from stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt rename to stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt index 5382c46..65fba2a 100644 --- a/stately-concurrency/src/nativeCommonMain/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt +++ b/stately-concurrency/src/nativeMain/kotlin/co/touchlab/stately/concurrency/ThreadRef.kt @@ -1,6 +1,6 @@ package co.touchlab.stately.concurrency -import kotlin.native.concurrent.AtomicInt +import kotlin.concurrent.AtomicInt @ThreadLocal private var localThreadId: Int = 0 diff --git a/stately-concurrency/src/nativeCommonTest/kotlin/co/touchlab/stately/concurrency/GuardedStableRefTest.kt b/stately-concurrency/src/nativeTest/kotlin/co/touchlab/stately/concurrency/GuardedStableRefTest.kt similarity index 100% rename from stately-concurrency/src/nativeCommonTest/kotlin/co/touchlab/stately/concurrency/GuardedStableRefTest.kt rename to stately-concurrency/src/nativeTest/kotlin/co/touchlab/stately/concurrency/GuardedStableRefTest.kt diff --git a/stately-concurrent-collections/build.gradle.kts b/stately-concurrent-collections/build.gradle.kts index 7b9c8c1..0911f0e 100644 --- a/stately-concurrent-collections/build.gradle.kts +++ b/stately-concurrent-collections/build.gradle.kts @@ -1,8 +1,11 @@ @file:Suppress("PropertyName") +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi + plugins { kotlin("multiplatform") id("com.vanniktech.maven.publish") + id("kmp-setup") } val GROUP: String by project @@ -12,70 +15,14 @@ group = GROUP version = VERSION_NAME kotlin { - @Suppress("OPT_IN_USAGE") - targetHierarchy.default() - jvm() - js { - nodejs() - browser() - } - @Suppress("OPT_IN_USAGE") - wasm { - browser() - binaries.executable() - } - macosX64() - iosArm64() - iosX64() - watchosArm32() - watchosArm64() - watchosX64() - watchosDeviceArm64() - tvosArm64() - tvosX64() - - macosArm64() - iosSimulatorArm64() - watchosSimulatorArm64() - tvosSimulatorArm64() - watchosDeviceArm64() - - mingwX64() - linuxX64() - linuxArm64() - - androidNativeArm32() - androidNativeArm64() - androidNativeX86() - androidNativeX64() - sourceSets { - val commonMain by getting { - dependencies { - api(project(":stately-concurrency")) - } + commonMain.dependencies { + api(project(":stately-concurrency")) } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - implementation(libs.testHelp) - implementation(libs.coroutines.test) - } + commonTest.dependencies { + implementation(kotlin("test")) + implementation(libs.testHelp) + implementation(libs.coroutines.test) } - - val jsWasmMain by creating { - dependsOn(commonMain) - getByName("jsMain").dependsOn(this) - getByName("wasmMain").dependsOn(this) - } - - val jsWasmTest by creating { - dependsOn(commonTest) - getByName("jsTest").dependsOn(this) - getByName("wasmTest").dependsOn(this) - } - - val nativeMain by getting - val nativeTest by getting } } diff --git a/stately-concurrent-collections/src/jsWasmTest/kotlin/co/touchlab/stately/collections/backgroundDispatcher.kt b/stately-concurrent-collections/src/jsAndWasmJsTest/kotlin/co/touchlab/stately/collections/backgroundDispatcher.kt similarity index 100% rename from stately-concurrent-collections/src/jsWasmTest/kotlin/co/touchlab/stately/collections/backgroundDispatcher.kt rename to stately-concurrent-collections/src/jsAndWasmJsTest/kotlin/co/touchlab/stately/collections/backgroundDispatcher.kt diff --git a/stately-strict/build.gradle.kts b/stately-strict/build.gradle.kts index f3e9cc2..0c19473 100644 --- a/stately-strict/build.gradle.kts +++ b/stately-strict/build.gradle.kts @@ -1,6 +1,7 @@ plugins { kotlin("multiplatform") id("com.vanniktech.maven.publish") + id("kmp-setup") } val GROUP: String by project @@ -10,75 +11,10 @@ group = GROUP version = VERSION_NAME kotlin { - @Suppress("OPT_IN_USAGE") - targetHierarchy.default() - jvm() - js { - nodejs() - browser() - } - @Suppress("OPT_IN_USAGE") - wasm { - browser() - binaries.executable() - } - macosX64() - iosArm64() - iosX64() - watchosArm32() - watchosArm64() - watchosX64() - watchosDeviceArm64() - tvosArm64() - tvosX64() - - macosArm64() - iosSimulatorArm64() - watchosSimulatorArm64() - tvosSimulatorArm64() - watchosDeviceArm64() - - mingwX64() - linuxX64() - linuxArm64() - - androidNativeArm32() - androidNativeArm64() - androidNativeX86() - androidNativeX64() - sourceSets { - val commonMain by getting - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - implementation(libs.testHelp) - } - } - - val jsWasmMain by creating { - dependsOn(commonMain) - getByName("jsMain").dependsOn(this) - getByName("wasmMain").dependsOn(this) - } - - val jsWasmTest by creating { - dependsOn(commonTest) - getByName("jsTest").dependsOn(this) - getByName("wasmTest").dependsOn(this) + commonTest.dependencies { + implementation(kotlin("test")) + implementation(libs.testHelp) } - - val nativeCommonMain by creating - nativeCommonMain.dependsOn(commonMain) - val nativeCommonTest by creating - nativeCommonTest.dependsOn(commonTest) - - targets.withType().all { - val mainSourceSet = compilations.getByName("main").defaultSourceSet - val testSourceSet = compilations.getByName("test").defaultSourceSet - - mainSourceSet.dependsOn(nativeCommonMain) - testSourceSet.dependsOn(nativeCommonTest) - } } } \ No newline at end of file diff --git a/stately-strict/src/jsWasmMain/kotlin/co/touchlab/stately/strict/HelpersJS.kt b/stately-strict/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/strict/HelpersJS.kt similarity index 100% rename from stately-strict/src/jsWasmMain/kotlin/co/touchlab/stately/strict/HelpersJS.kt rename to stately-strict/src/jsAndWasmJsMain/kotlin/co/touchlab/stately/strict/HelpersJS.kt diff --git a/stately-strict/src/nativeCommonMain/kotlin/co/touchlab/stately/strict/Helpers.kt b/stately-strict/src/nativeMain/kotlin/co/touchlab/stately/strict/Helpers.kt similarity index 100% rename from stately-strict/src/nativeCommonMain/kotlin/co/touchlab/stately/strict/Helpers.kt rename to stately-strict/src/nativeMain/kotlin/co/touchlab/stately/strict/Helpers.kt diff --git a/stately-strict/src/nativeCommonTest/kotlin/co/touchlab/stately/strict/HelpersTest.kt b/stately-strict/src/nativeTest/kotlin/co/touchlab/stately/strict/HelpersTest.kt similarity index 91% rename from stately-strict/src/nativeCommonTest/kotlin/co/touchlab/stately/strict/HelpersTest.kt rename to stately-strict/src/nativeTest/kotlin/co/touchlab/stately/strict/HelpersTest.kt index 28d5917..29303a4 100644 --- a/stately-strict/src/nativeCommonTest/kotlin/co/touchlab/stately/strict/HelpersTest.kt +++ b/stately-strict/src/nativeTest/kotlin/co/touchlab/stately/strict/HelpersTest.kt @@ -16,12 +16,13 @@ package co.touchlab.stately.strict -import co.touchlab.stately.strict.maybeFreeze import co.touchlab.testhelp.isFrozen +import kotlin.experimental.ExperimentalNativeApi import kotlin.test.Test import kotlin.test.assertEquals class HelpersTest { + @OptIn(ExperimentalNativeApi::class) @Test fun maybeFreezeTest(){ val h = Heyo("hello").maybeFreeze()