From 8d2ec45ad4501aa99d64950f7929eff82d773466 Mon Sep 17 00:00:00 2001 From: Tad Fisher Date: Fri, 17 May 2024 14:52:02 -0700 Subject: [PATCH] Rewrite plugin, use filenames in lockfile --- app/build.gradle.kts | 22 +- .../org/nixos/gradle2nix/GradleRunner.kt | 96 +- .../kotlin/org/nixos/gradle2nix/Logger.kt | 49 +- .../main/kotlin/org/nixos/gradle2nix/Main.kt | 84 +- .../kotlin/org/nixos/gradle2nix/Process.kt | 374 +- .../kotlin/org/nixos/gradle2nix}/Version.kt | 31 +- .../kotlin/org/nixos/gradle2nix/env/Env.kt | 62 +- .../{module => gradle}/GradleModule.kt | 2 +- .../metadata/VerificationMetadata.kt | 13 +- .../kotlin/org/nixos/gradle2nix/GoldenTest.kt | 3 + .../kotlin/org/nixos/gradle2nix/TestUtil.kt | 120 +- .../maven-bom/kotlin/build.gradle.kts | 12 - .../basic/basic-java-project.groovy.json | 146 +- .../basic/basic-java-project.kotlin.json | 146 +- .../basic/basic-kotlin-project.kotlin.json | 2978 ++++----- .../buildsrc/plugin-in-buildsrc.kotlin.json | 1278 ++-- .../golden/dependency/classifier.groovy.json | 42 +- .../golden/dependency/classifier.kotlin.json | 42 +- .../golden/dependency/maven-bom.kotlin.json | 88 +- .../dependency/snapshot-dynamic.groovy.json | 26 +- .../dependency/snapshot-dynamic.kotlin.json | 26 +- .../dependency/snapshot-redirect.groovy.json | 128 +- .../golden/dependency/snapshot.groovy.json | 26 +- .../golden/dependency/snapshot.kotlin.json | 26 +- fixtures/golden/included-build.groovy.json | 78 +- .../settings-buildscript.groovy.json | 322 +- fixtures/golden/ivy/basic.kotlin.json | 52 +- .../resolves-from-default-repo.groovy.json | 976 ++- .../resolves-from-default-repo.kotlin.json | 976 ++- .../golden/settings/buildscript.groovy.json | 26 +- ...pendency-resolution-management.kotlin.json | 26 +- .../subprojects/multi-module.groovy.json | 244 +- .../subprojects/multi-module.kotlin.json | 244 +- .../basic-java-project/groovy/build.gradle | 0 .../basic-java-project/groovy/settings.gradle | 0 .../kotlin/build.gradle.kts | 0 .../kotlin/settings.gradle.kts | 0 .../kotlin/build.gradle.kts | 8 +- .../kotlin/settings.gradle.kts | 0 .../kotlin/build.gradle.kts | 0 .../kotlin/buildSrc/build.gradle.kts | 0 .../kotlin/buildSrc/settings.gradle.kts | 0 .../com/example/ApplyPluginPublishPlugin.kt | 0 .../kotlin/settings.gradle.kts | 0 .../dependency/classifier/groovy/build.gradle | 0 .../classifier/groovy/settings.gradle | 0 .../classifier/kotlin/build.gradle.kts | 0 .../classifier/kotlin/settings.gradle.kts | 0 .../maven-bom/kotlin/build.gradle.kts | 16 + .../maven-bom/kotlin/settings.gradle.kts | 0 .../snapshot-dynamic/groovy/build.gradle | 5 +- .../snapshot-dynamic/groovy/settings.gradle | 0 .../snapshot-dynamic/kotlin/build.gradle.kts | 5 +- .../kotlin/settings.gradle.kts | 0 .../snapshot-redirect/groovy/build.gradle | 1 + .../snapshot-redirect/groovy/settings.gradle | 0 .../dependency/snapshot/groovy/build.gradle | 5 +- .../snapshot/groovy/settings.gradle | 0 .../snapshot/kotlin/build.gradle.kts | 5 +- .../snapshot/kotlin/settings.gradle.kts | 0 .../included-build/groovy/build.gradle | 5 +- .../groovy/included-child/build.gradle | 5 +- .../groovy/included-child/settings.gradle | 5 +- .../included-build/groovy/settings.gradle | 0 .../settings-buildscript/groovy/build.gradle | 0 .../settings-buildscript/groovy/default.nix | 0 .../groovy/gradle-env.json | 0 .../groovy/gradle-env.nix | 0 .../groovy/semantic-build-versioning.gradle | 0 .../groovy/settings.gradle | 0 .../ivy/basic/kotlin/build.gradle.kts | 0 .../ivy/basic/kotlin/settings.gradle.kts | 0 .../groovy/build.gradle | 0 .../groovy/settings.gradle | 0 .../kotlin/build.gradle.kts | 0 .../kotlin/settings.gradle.kts | 0 .../s3/maven-snapshot/groovy/build.gradle | 0 .../s3/maven-snapshot/groovy/settings.gradle | 0 .../s3/maven-snapshot/kotlin/build.gradle.kts | 0 .../maven-snapshot/kotlin/settings.gradle.kts | 0 .../s3/maven/groovy/build.gradle | 4 +- .../projects/s3/maven/groovy/settings.gradle | 1 + .../s3/maven/kotlin/build.gradle.kts | 0 .../s3/maven/kotlin/settings.gradle.kts | 0 .../buildscript/groovy/settings.gradle | 1 + .../kotlin/build.gradle.kts | 0 .../kotlin/settings.gradle.kts | 9 + .../multi-module/groovy/build.gradle | 0 .../multi-module/groovy/child-a/build.gradle | 0 .../multi-module/groovy/child-b/build.gradle | 0 .../multi-module/groovy/settings.gradle | 0 .../multi-module/kotlin/build.gradle.kts | 0 .../kotlin/child-a/build.gradle.kts | 0 .../kotlin/child-b/build.gradle.kts | 0 .../multi-module/kotlin/settings.gradle.kts | 0 .../oss/oss-parent/7/oss-parent-7.pom | 155 + .../oss/oss-parent/7/oss-parent-7.pom.md5 | 1 + .../oss/oss-parent/7/oss-parent-7.pom.sha1 | 1 + .../oss/oss-parent/maven-metadata.xml | 19 + fixtures/s3/maven/groovy/settings.gradle | 0 .../kotlin/settings.gradle.kts | 6 - gradle-env.json | 5295 ++++++++++------- gradle-env.nix | 185 +- gradle/libs.versions.toml | 10 +- gradle/wrapper/gradle-wrapper.jar | Bin 63721 -> 43453 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 14 +- gradlew.bat | 20 +- model/build.gradle.kts | 5 - .../gradle2nix/model/DependencyCoordinates.kt | 77 +- .../nixos/gradle2nix/model/DependencySet.kt | 8 + .../gradle2nix/model/DependencySource.kt | 26 - .../gradle2nix/model/PluginParameters.kt | 3 - .../org/nixos/gradle2nix/model/Repository.kt | 20 +- .../gradle2nix/model/ResolvedArtifact.kt | 17 +- .../gradle2nix/model/ResolvedConfiguration.kt | 19 - .../gradle2nix/model/ResolvedDependency.kt | 14 +- .../gradle2nix/model/ResolvedMetadata.kt | 9 - .../impl/DefaultDependencyCoordinates.kt | 29 + .../model/impl/DefaultDependencySet.kt | 8 + .../model/impl/DefaultRepository.kt | 11 + .../model/impl/DefaultResolvedArtifact.kt | 9 + .../model/impl/DefaultResolvedDependency.kt | 10 + plugin/build.gradle.kts | 16 +- .../org/nixos/gradle2nix/Gradle2NixPlugin.kt | 43 +- .../gradle2nix/NixDependencyGraphRenderer.kt | 27 - .../AbstractDependencyExtractorPlugin.kt | 148 - .../dependencygraph/DependencyExtractor.kt | 252 + .../DependencyGraphRenderer.kt | 11 - .../dependencygraph/DependencyUrlParser.kt | 158 + .../extractor/DependencyExtractor.kt | 428 -- .../DependencyExtractorBuildService.kt | 18 - .../extractor/LegacyDependencyExtractor.kt | 10 - .../extractor/ResolvedConfigurationFilter.kt | 16 - .../util/BuildOperationTracker.kt | 64 - .../dependencygraph/util/GradleExtensions.kt | 30 - .../dependencygraph/util/PluginParameters.kt | 6 - .../AbstractResolveProjectDependenciesTask.kt | 15 + .../ForceDependencyResolutionPlugin.kt | 6 +- .../LegacyResolveProjectDependenciesTask.kt | 6 +- .../ResolveProjectDependenciesTask.kt | 34 +- .../nixos/gradle2nix/util/GradleExtensions.kt | 27 + .../DependencyUrlParserTest.kt | 58 + settings.gradle.kts | 1 - 144 files changed, 8679 insertions(+), 7507 deletions(-) rename {model/src/main/kotlin/org/nixos/gradle2nix/model => app/src/main/kotlin/org/nixos/gradle2nix}/Version.kt (82%) rename app/src/main/kotlin/org/nixos/gradle2nix/{module => gradle}/GradleModule.kt (98%) delete mode 100644 fixtures/dependency/maven-bom/kotlin/build.gradle.kts rename fixtures/{ => projects}/basic/basic-java-project/groovy/build.gradle (100%) rename fixtures/{ => projects}/basic/basic-java-project/groovy/settings.gradle (100%) rename fixtures/{ => projects}/basic/basic-java-project/kotlin/build.gradle.kts (100%) rename fixtures/{ => projects}/basic/basic-java-project/kotlin/settings.gradle.kts (100%) rename fixtures/{ => projects}/basic/basic-kotlin-project/kotlin/build.gradle.kts (82%) rename fixtures/{ => projects}/basic/basic-kotlin-project/kotlin/settings.gradle.kts (100%) rename fixtures/{ => projects}/buildsrc/plugin-in-buildsrc/kotlin/build.gradle.kts (100%) rename fixtures/{ => projects}/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/build.gradle.kts (100%) rename fixtures/{ => projects}/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/settings.gradle.kts (100%) rename fixtures/{ => projects}/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/src/main/kotlin/com/example/ApplyPluginPublishPlugin.kt (100%) rename fixtures/{ => projects}/buildsrc/plugin-in-buildsrc/kotlin/settings.gradle.kts (100%) rename fixtures/{ => projects}/dependency/classifier/groovy/build.gradle (100%) rename fixtures/{ => projects}/dependency/classifier/groovy/settings.gradle (100%) rename fixtures/{ => projects}/dependency/classifier/kotlin/build.gradle.kts (100%) rename fixtures/{ => projects}/dependency/classifier/kotlin/settings.gradle.kts (100%) create mode 100644 fixtures/projects/dependency/maven-bom/kotlin/build.gradle.kts rename fixtures/{ => projects}/dependency/maven-bom/kotlin/settings.gradle.kts (100%) rename fixtures/{ => projects}/dependency/snapshot-dynamic/groovy/build.gradle (50%) rename fixtures/{ => projects}/dependency/snapshot-dynamic/groovy/settings.gradle (100%) rename fixtures/{ => projects}/dependency/snapshot-dynamic/kotlin/build.gradle.kts (50%) rename fixtures/{ => projects}/dependency/snapshot-dynamic/kotlin/settings.gradle.kts (100%) rename fixtures/{ => projects}/dependency/snapshot-redirect/groovy/build.gradle (89%) rename fixtures/{ => projects}/dependency/snapshot-redirect/groovy/settings.gradle (100%) rename fixtures/{ => projects}/dependency/snapshot/groovy/build.gradle (50%) rename fixtures/{ => projects}/dependency/snapshot/groovy/settings.gradle (100%) rename fixtures/{ => projects}/dependency/snapshot/kotlin/build.gradle.kts (50%) rename fixtures/{ => projects}/dependency/snapshot/kotlin/settings.gradle.kts (100%) rename fixtures/{ => projects}/included-build/groovy/build.gradle (56%) rename fixtures/{ => projects}/included-build/groovy/included-child/build.gradle (56%) rename fixtures/{ => projects}/included-build/groovy/included-child/settings.gradle (51%) rename fixtures/{ => projects}/included-build/groovy/settings.gradle (100%) rename fixtures/{ => projects}/integration/settings-buildscript/groovy/build.gradle (100%) rename fixtures/{ => projects}/integration/settings-buildscript/groovy/default.nix (100%) rename fixtures/{ => projects}/integration/settings-buildscript/groovy/gradle-env.json (100%) rename fixtures/{ => projects}/integration/settings-buildscript/groovy/gradle-env.nix (100%) rename fixtures/{ => projects}/integration/settings-buildscript/groovy/semantic-build-versioning.gradle (100%) rename fixtures/{ => projects}/integration/settings-buildscript/groovy/settings.gradle (100%) rename fixtures/{ => projects}/ivy/basic/kotlin/build.gradle.kts (100%) rename fixtures/{ => projects}/ivy/basic/kotlin/settings.gradle.kts (100%) rename fixtures/{ => projects}/plugin/resolves-from-default-repo/groovy/build.gradle (100%) rename fixtures/{ => projects}/plugin/resolves-from-default-repo/groovy/settings.gradle (100%) rename fixtures/{ => projects}/plugin/resolves-from-default-repo/kotlin/build.gradle.kts (100%) rename fixtures/{ => projects}/plugin/resolves-from-default-repo/kotlin/settings.gradle.kts (100%) rename fixtures/{ => projects}/s3/maven-snapshot/groovy/build.gradle (100%) rename fixtures/{ => projects}/s3/maven-snapshot/groovy/settings.gradle (100%) rename fixtures/{ => projects}/s3/maven-snapshot/kotlin/build.gradle.kts (100%) rename fixtures/{ => projects}/s3/maven-snapshot/kotlin/settings.gradle.kts (100%) rename fixtures/{ => projects}/s3/maven/groovy/build.gradle (87%) create mode 100644 fixtures/projects/s3/maven/groovy/settings.gradle rename fixtures/{ => projects}/s3/maven/kotlin/build.gradle.kts (100%) rename fixtures/{ => projects}/s3/maven/kotlin/settings.gradle.kts (100%) rename fixtures/{ => projects}/settings/buildscript/groovy/settings.gradle (83%) rename fixtures/{ => projects}/settings/dependency-resolution-management/kotlin/build.gradle.kts (100%) create mode 100644 fixtures/projects/settings/dependency-resolution-management/kotlin/settings.gradle.kts rename fixtures/{ => projects}/subprojects/multi-module/groovy/build.gradle (100%) rename fixtures/{ => projects}/subprojects/multi-module/groovy/child-a/build.gradle (100%) rename fixtures/{ => projects}/subprojects/multi-module/groovy/child-b/build.gradle (100%) rename fixtures/{ => projects}/subprojects/multi-module/groovy/settings.gradle (100%) rename fixtures/{ => projects}/subprojects/multi-module/kotlin/build.gradle.kts (100%) rename fixtures/{ => projects}/subprojects/multi-module/kotlin/child-a/build.gradle.kts (100%) rename fixtures/{ => projects}/subprojects/multi-module/kotlin/child-b/build.gradle.kts (100%) rename fixtures/{ => projects}/subprojects/multi-module/kotlin/settings.gradle.kts (100%) create mode 100644 fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom create mode 100644 fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom.md5 create mode 100644 fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1 create mode 100644 fixtures/repositories/m2/org/sonatype/oss/oss-parent/maven-metadata.xml delete mode 100644 fixtures/s3/maven/groovy/settings.gradle delete mode 100644 fixtures/settings/dependency-resolution-management/kotlin/settings.gradle.kts create mode 100644 model/src/main/kotlin/org/nixos/gradle2nix/model/DependencySet.kt delete mode 100644 model/src/main/kotlin/org/nixos/gradle2nix/model/DependencySource.kt delete mode 100644 model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedConfiguration.kt delete mode 100644 model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedMetadata.kt create mode 100644 model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultDependencyCoordinates.kt create mode 100644 model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultDependencySet.kt create mode 100644 model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultRepository.kt create mode 100644 model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultResolvedArtifact.kt create mode 100644 model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultResolvedDependency.kt delete mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/NixDependencyGraphRenderer.kt delete mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/AbstractDependencyExtractorPlugin.kt create mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyExtractor.kt delete mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyGraphRenderer.kt create mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyUrlParser.kt delete mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/DependencyExtractor.kt delete mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/DependencyExtractorBuildService.kt delete mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/LegacyDependencyExtractor.kt delete mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/ResolvedConfigurationFilter.kt delete mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/BuildOperationTracker.kt delete mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/GradleExtensions.kt delete mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/PluginParameters.kt create mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/AbstractResolveProjectDependenciesTask.kt create mode 100644 plugin/src/main/kotlin/org/nixos/gradle2nix/util/GradleExtensions.kt create mode 100644 plugin/src/test/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyUrlParserTest.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2bb5458..d3a29e1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,26 +4,28 @@ plugins { application } -configurations { - register("share") -} +configurations.register("share") dependencies { - implementation(kotlin("reflect")) implementation(project(":model")) implementation(libs.clikt) implementation(libs.gradle.toolingApi) + implementation(libs.kotlinx.coroutines.core) + implementation(libs.okio) implementation(libs.serialization.json) implementation(libs.slf4j.api) runtimeOnly(libs.slf4j.simple) - implementation(libs.okio) implementation(libs.xmlutil) - "share"(project(":plugin", configuration = "shadow")) + "share"(project(":plugin", configuration = "shadow")) { + isTransitive = false + } - testRuntimeOnly(kotlin("reflect")) + //testRuntimeOnly(kotlin("reflect")) testImplementation(libs.kotest.assertions) testImplementation(libs.kotest.runner) + testImplementation(libs.ktor.server.core) + testImplementation(libs.ktor.server.netty) } application { @@ -36,10 +38,6 @@ application { .rename("plugin.*\\.jar", "plugin.jar") } -kotlin { - jvmToolchain(11) -} - sourceSets { test { resources { @@ -80,7 +78,7 @@ tasks { } systemProperties( "org.nixos.gradle2nix.share" to installDist.get().destinationDir.resolve("share"), - "org.nixos.gradle2nix.m2" to rootDir.resolve("fixtures/repositories/m2").toURI().toString() + "org.nixos.gradle2nix.m2" to "http://0.0.0.0:8989/m2" ) } useJUnitPlatform() diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt b/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt index fa3844a..e1273f2 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt @@ -1,53 +1,93 @@ package org.nixos.gradle2nix +import java.io.File +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException +import kotlin.io.path.absolutePathString +import kotlinx.coroutines.suspendCancellableCoroutine +import org.gradle.tooling.GradleConnectionException import org.gradle.tooling.GradleConnector import org.gradle.tooling.ProjectConnection -import org.nixos.gradle2nix.model.PARAM_INCLUDE_CONFIGURATIONS -import org.nixos.gradle2nix.model.PARAM_INCLUDE_PROJECTS +import org.gradle.tooling.ResultHandler +import org.gradle.tooling.model.gradle.GradleBuild +import org.nixos.gradle2nix.model.DependencySet import org.nixos.gradle2nix.model.RESOLVE_ALL_TASK -fun connect(config: Config): ProjectConnection = +fun connect(config: Config, projectDir: File = config.projectDir): ProjectConnection = GradleConnector.newConnector() .apply { if (config.gradleVersion != null) { useGradleVersion(config.gradleVersion) } } - .forProjectDirectory(config.projectDir) + .forProjectDirectory(projectDir) .connect() -fun ProjectConnection.build( - config: Config, -) { - newBuild() +suspend fun ProjectConnection.buildModel(): GradleBuild = suspendCancellableCoroutine { continuation -> + val cancellationTokenSource = GradleConnector.newCancellationTokenSource() + + continuation.invokeOnCancellation { cancellationTokenSource.cancel() } + + action { controller -> controller.buildModel } + .withCancellationToken(cancellationTokenSource.token()) + .run(object : ResultHandler { + override fun onComplete(result: GradleBuild) { + continuation.resume(result) + } + + override fun onFailure(failure: GradleConnectionException) { + continuation.resumeWithException(failure) + } + }) +} + +suspend fun ProjectConnection.build(config: Config): DependencySet = suspendCancellableCoroutine { continuation -> + val cancellationTokenSource = GradleConnector.newCancellationTokenSource() + + continuation.invokeOnCancellation { cancellationTokenSource.cancel() } + + action { controller -> controller.getModel(DependencySet::class.java) } + .withCancellationToken(cancellationTokenSource.token()) .apply { if (config.tasks.isNotEmpty()) { forTasks(*config.tasks.toTypedArray()) } else { forTasks(RESOLVE_ALL_TASK) } - if (config.gradleJdk != null) { - setJavaHome(config.gradleJdk) - } - addArguments(config.gradleArgs) - addArguments( - "--gradle-user-home=${config.gradleHome}", - "--init-script=${config.appHome}/init.gradle", - "--write-verification-metadata", "sha256" - ) - if (config.projectFilter != null) { - addArguments("-D$PARAM_INCLUDE_PROJECTS") - } - if (config.configurationFilter != null) { - addArguments("-D$PARAM_INCLUDE_CONFIGURATIONS") - } - if (config.logger.verbose) { - setStandardOutput(System.err) - setStandardError(System.err) - } + } + .setJavaHome(config.gradleJdk) + .addArguments(config.gradleArgs) + .addArguments( + "--no-parallel", + "--refresh-dependencies", + "--gradle-user-home=${config.gradleHome}", + "--init-script=${config.appHome}/init.gradle", + "--write-verification-metadata", "sha256" + ) + .apply { if (config.logger.stacktrace) { addArguments("--stacktrace") } + if (config.logger.logLevel <= LogLevel.debug) { + setStandardOutput(System.err) + setStandardError(System.err) + } + if (config.dumpEvents) { + withSystemProperties( + mapOf( + "org.gradle.internal.operations.trace" to + config.outDir.toPath().resolve("debug").absolutePathString() + ) + ) + } } - .run() + .run(object : ResultHandler { + override fun onComplete(result: DependencySet) { + continuation.resume(result) + } + + override fun onFailure(failure: GradleConnectionException) { + continuation.resumeWithException(failure) + } + }) } diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/Logger.kt b/app/src/main/kotlin/org/nixos/gradle2nix/Logger.kt index 1303fcd..13d3eb1 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/Logger.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/Logger.kt @@ -5,43 +5,44 @@ import kotlin.system.exitProcess class Logger( val out: PrintStream = System.err, - val verbose: Boolean, - val stacktrace: Boolean = false + val logLevel: LogLevel = LogLevel.warn, + val stacktrace: Boolean = false, ) { fun debug(message: String, error: Throwable? = null) { - if (!stacktrace) return - out.println(message) - if (error == null) return - error.message?.let { println(" Cause: $it") } - error.printStackTrace(out) + if (logLevel <= LogLevel.debug) { + out.println("[DEBUG] $message") + printError(error) + } } - fun log(message: String, error: Throwable? = null) { - if (!verbose) return - out.println(message) - if (error == null) return - error.message?.let { println(" Cause: $it") } - if (stacktrace) error.printStackTrace(out) + fun info(message: String, error: Throwable? = null) { + if (logLevel <= LogLevel.info) { + out.println("[INFO] $message") + printError(error) + } } fun warn(message: String, error: Throwable? = null) { - out.println("Warning: $message") + if (logLevel <= LogLevel.warn) { + out.println("[WARN] $message") + printError(error) + } + } + + fun error(message: String, error: Throwable? = null): Nothing { + out.println("[ERROR] $message") + printError(error) + exitProcess(1) + } + + private fun printError(error: Throwable?) { if (error == null) return error.message?.let { println(" Cause: $it") } if (stacktrace) error.printStackTrace(out) } - fun error(message: String, error: Throwable? = null): Nothing { - out.println("Error: $message") - if (error != null) { - error.message?.let { println(" Cause: $it") } - if (stacktrace) error.printStackTrace(out) - } - exitProcess(1) - } - - operator fun component1() = ::log + operator fun component1() = ::info operator fun component2() = ::warn operator fun component3() = ::error } diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt b/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt index 2a38fe5..6e81f0a 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt @@ -10,11 +10,16 @@ import com.github.ajalt.clikt.parameters.options.flag import com.github.ajalt.clikt.parameters.options.multiple import com.github.ajalt.clikt.parameters.options.option import com.github.ajalt.clikt.parameters.options.validate +import com.github.ajalt.clikt.parameters.types.choice +import com.github.ajalt.clikt.parameters.types.enum import com.github.ajalt.clikt.parameters.types.file import java.io.File +import kotlinx.coroutines.runBlocking import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.json.Json import kotlinx.serialization.json.encodeToStream +import org.gradle.tooling.model.gradle.GradleBuild +import org.nixos.gradle2nix.model.DependencySet data class Config( val appHome: File, @@ -22,11 +27,11 @@ data class Config( val gradleVersion: String?, val gradleJdk: File?, val gradleArgs: List, - val projectFilter: String?, - val configurationFilter: String?, + val outDir: File, val projectDir: File, val tasks: List, val logger: Logger, + val dumpEvents: Boolean ) @OptIn(ExperimentalSerializationApi::class) @@ -36,6 +41,13 @@ val JsonFormat = Json { prettyPrintIndent = " " } +enum class LogLevel { + debug, + info, + warn, + error, +} + class Gradle2Nix : CliktCommand( name = "gradle2nix" ) { @@ -51,17 +63,6 @@ class Gradle2Nix : CliktCommand( help = "JDK home directory to use for launching Gradle (default: ${System.getProperty("java.home")})" ).file(canBeFile = false, canBeDir = true) - private val projectFilter: String? by option( - "--projects", "-p", - metavar = "REGEX", - help = "Regex to filter Gradle projects (default: include all projects)" - ) - - private val configurationFilter: String? by option( - "--configurations", "-c", - metavar = "REGEX", - help = "Regex to filter Gradle configurations (default: include all configurations)") - val outDir: File? by option( "--out-dir", "-o", metavar = "DIR", @@ -74,11 +75,12 @@ class Gradle2Nix : CliktCommand( help = "Prefix for environment files (.json and .nix)") .default("gradle-env") - private val debug: Boolean by option("--debug", help = "Enable debug logging") - .flag(default = false) - - private val quiet: Boolean by option("--quiet", "-q", help = "Disable logging") - .flag(default = false) + private val logLevel: LogLevel by option( + "--log", "-l", + metavar = "LEVEL", + help = "Print messages with priority of at least LEVEL") + .enum() + .default(LogLevel.error) private val projectDir: File by option( "--projectDir", "-d", @@ -99,6 +101,16 @@ class Gradle2Nix : CliktCommand( help = "Gradle tasks to run" ).multiple() + private val dumpEvents: Boolean by option( + "--dump-events", + help = "Dump Gradle event logs to the output directory", + ).flag() + + private val stacktrace: Boolean by option( + "--stacktrace", + help = "Print a stack trace on error" + ).flag() + private val gradleArgs: List by argument( name = "ARGS", help = "Extra arguments to pass to Gradle" @@ -118,7 +130,7 @@ class Gradle2Nix : CliktCommand( } val gradleHome = System.getenv("GRADLE_USER_HOME")?.let(::File) ?: File("${System.getProperty("user.home")}/.gradle") - val logger = Logger(verbose = !quiet, stacktrace = debug) + val logger = Logger(logLevel = logLevel, stacktrace = stacktrace) val config = Config( File(appHome), @@ -126,11 +138,11 @@ class Gradle2Nix : CliktCommand( gradleVersion, gradleJdk, gradleArgs, - projectFilter, - configurationFilter, + outDir ?: projectDir, projectDir, tasks, - logger + logger, + dumpEvents ) val metadata = File("$projectDir/gradle/verification-metadata.xml") @@ -146,19 +158,37 @@ class Gradle2Nix : CliktCommand( } } + val buildSrcs = connect(config).use { connection -> + val root = runBlocking { connection.buildModel() } + val builds: List = buildList { + add(root) + addAll(root.editableBuilds) + } + builds.mapNotNull { build -> + build.rootProject.projectDirectory.resolve("buildSrc").takeIf { it.exists() } + } + } + + val dependencySets = mutableListOf() + connect(config).use { connection -> - connection.build(config) + dependencySets.add(runBlocking { connection.build(config) }) + } + + for (buildSrc in buildSrcs) { + connect(config, buildSrc).use { connection -> + dependencySets.add(runBlocking { connection.build(config) }) + } } val env = try { - processDependencies(config) + processDependencies(config, dependencySets) } catch (e: Throwable) { logger.error("dependency parsing failed", e) } - val outDir = outDir ?: projectDir - val json = outDir.resolve("$envFile.json") - logger.log("Writing environment to $json") + val json = config.outDir.resolve("$envFile.json") + logger.info("Writing environment to $json") json.outputStream().buffered().use { output -> JsonFormat.encodeToStream(env, output) } diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/Process.kt b/app/src/main/kotlin/org/nixos/gradle2nix/Process.kt index 6050acf..7d8b8c0 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/Process.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/Process.kt @@ -4,23 +4,13 @@ import org.nixos.gradle2nix.metadata.Artifact as ArtifactMetadata import java.io.File import java.io.IOException import java.net.URI -import java.net.URL -import kotlinx.serialization.ExperimentalSerializationApi -import kotlinx.serialization.SerializationException -import kotlinx.serialization.json.Json -import kotlinx.serialization.json.decodeFromStream import okio.ByteString.Companion.decodeHex import okio.HashingSource import okio.blackholeSink import okio.buffer import okio.source -import org.nixos.gradle2nix.model.Repository -import org.nixos.gradle2nix.model.ResolvedConfiguration -import org.nixos.gradle2nix.env.ArtifactFile -import org.nixos.gradle2nix.env.ArtifactSet +import org.nixos.gradle2nix.env.Artifact import org.nixos.gradle2nix.env.Env -import org.nixos.gradle2nix.env.Module -import org.nixos.gradle2nix.env.ModuleId import org.nixos.gradle2nix.metadata.Checksum import org.nixos.gradle2nix.metadata.Component import org.nixos.gradle2nix.metadata.Md5 @@ -30,239 +20,100 @@ import org.nixos.gradle2nix.metadata.Sha512 import org.nixos.gradle2nix.metadata.VerificationMetadata import org.nixos.gradle2nix.metadata.parseVerificationMetadata import org.nixos.gradle2nix.model.DependencyCoordinates -import org.nixos.gradle2nix.model.Version -import org.nixos.gradle2nix.module.GradleModule -import org.nixos.gradle2nix.module.Variant +import org.nixos.gradle2nix.model.DependencySet -// Local Maven repository for testing -private val m2 = System.getProperty("org.nixos.gradle2nix.m2") - -private fun shouldSkipRepository(repository: Repository): Boolean { - return repository.artifactResources.all { it.startsWith("file:") && (m2 == null || !it.startsWith(m2)) } || - repository.metadataResources.all { it.startsWith("file:") && (m2 == null || !it.startsWith(m2)) } -} - -fun processDependencies(config: Config): Env { +fun processDependencies( + config: Config, + dependencySets: Iterable +): Env { val verificationMetadata = readVerificationMetadata(config) - val verificationComponents = verificationMetadata?.components?.associateBy { it.id } ?: emptyMap() - val moduleCache = mutableMapOf() - val pomCache = mutableMapOf?>() - val ivyCache = mutableMapOf?>() - val configurations = readDependencyGraph(config) + val verificationComponents = verificationMetadata?.components?.associateBy { it.id.id } ?: emptyMap() - val repositories = configurations - .flatMap { it.repositories } - .associateBy { it.id } - .filterNot { (id, repo) -> - if (shouldSkipRepository(repo)) { - config.logger.warn("$id: all URLs are files; skipping") - true - } else { - false + return buildMap> { + for (dependencySet in dependencySets) { + val env = dependencySet.toEnv(config, verificationComponents) + + for ((id, artifacts) in env) { + merge(id, artifacts) { a, b -> + buildMap { + putAll(a) + for ((name, artifact) in b) { + merge(name, artifact) { aa, ba -> + check(aa.hash == ba.hash) { + config.logger.error(""" + Conflicting hashes found for $id:$name: + 1: ${aa.hash} + 2: ${ba.hash} + """.trimIndent()) + } + + Artifact( + (aa.urls + ba.urls).distinct().sorted(), + aa.hash + ) + } + } + } + } } } - if (repositories.isEmpty()) { - config.logger.warn("no repositories found in any configuration") - return emptyMap() + }.mapValues { (_, artifacts) -> + artifacts.toSortedMap() + }.toSortedMap(coordinatesComparator) + .mapKeys { (coordinates, _) -> coordinates.id } +} + +private fun DependencySet.toEnv(config: Config, verificationComponents: Map): Map> { + return dependencies.associate { dep -> + val component = verificationComponents[dep.coordinates.id] + ?: verifyComponentFilesInCache(config, dep.coordinates) + ?: config.logger.error("${dep.coordinates}: no dependency metadata found") + + dep.coordinates to dep.artifacts.mapNotNull { resolvedArtifact -> + val artifact = component.artifacts.find { it.name == resolvedArtifact.name } + ?.let { Artifact(resolvedArtifact.urls.sorted(), it.checksums.first().toSri()) } + ?: downloadArtifact(resolvedArtifact.urls.sorted()) + artifact?.let { resolvedArtifact.filename to it } + }.sortedBy { it.first }.toMap() } - config.logger.debug("Repositories:\n ${repositories.values.joinToString("\n ")}") - - return configurations.asSequence() - .flatMap { it.allDependencies.asSequence() } - .filterNot { it.repository == null || it.repository !in repositories } - .groupBy { ModuleId(it.id.group, it.id.module) } - .mapValues { (_, deps) -> - val byVersion = deps.groupBy { it.id } - .mapValues { (componentId, deps) -> - val dep = MergedDependency( - id = componentId, - repositories = deps.mapNotNull { repositories[it.repository] }.distinct() - ) - val component = verificationComponents[componentId] - ?: verifyComponentFilesInCache(config, componentId) - ?: verifyComponentFilesInTestRepository(config, componentId) - ?: config.logger.error("$componentId: no dependency metadata found") - - val gradleModule = moduleCache.getOrPut(componentId) { - maybeDownloadGradleModule(config.logger, component, dep.repositories)?.artifact?.second - } - val pomArtifact = pomCache.getOrPut(componentId) { - maybeDownloadMavenPom(config.logger, component, dep.repositories, gradleModule) - } - val ivyArtifact = ivyCache.getOrPut(componentId) { - maybeDownloadIvyDescriptor(config.logger, component, dep.repositories) - } - - val files = buildMap { - if (pomArtifact != null) put(pomArtifact.first, pomArtifact.second) - if (ivyArtifact != null) put(ivyArtifact.first, ivyArtifact.second) - for (artifact in component.artifacts) { - put( - artifact.name, - ArtifactFile( - urls = dep.repositories.flatMap { repo -> - artifactUrls(config.logger, componentId, artifact.name, repo, gradleModule) - }.distinct(), - hash = artifact.checksums.first().toSri() - ) - ) - } - }.toSortedMap() - - ArtifactSet(files) - } - .mapKeys { Version(it.key.version) } - .toSortedMap(Version.Comparator.reversed()) - Module(byVersion) - } - .toSortedMap(compareBy(ModuleId::toString)) } private fun readVerificationMetadata(config: Config): VerificationMetadata? { return parseVerificationMetadata(config.logger, config.projectDir.resolve("gradle/verification-metadata.xml")) } -@OptIn(ExperimentalSerializationApi::class) -private fun readDependencyGraph(config: Config): List { - return config.projectDir.resolve("build/reports/nix-dependency-graph/dependency-graph.json") - .inputStream() - .buffered() - .use { input -> Json.decodeFromStream(input) } -} - private fun verifyComponentFilesInCache( config: Config, id: DependencyCoordinates, ): Component? { - val cacheDir = with(id) { config.gradleHome.resolve("caches/modules-2/files-2.1/$group/$module/$version") } + val cacheDir = with(id) { config.gradleHome.resolve("caches/modules-2/files-2.1/$group/$artifact/$version") } if (!cacheDir.exists()) { return null } val verifications = cacheDir.walk().filter { it.isFile }.map { f -> - ArtifactMetadata(f.name, sha256 = Sha256(f.sha256())) + ArtifactMetadata(f.name.replaceFirst(id.version, id.timestampedVersion), sha256 = Sha256(f.sha256())) } - config.logger.log("$id: obtained artifact hashes from Gradle cache.") + config.logger.info("${id.id}: obtained artifact hashes from Gradle cache.") return Component(id, verifications.toList()) } -private fun verifyComponentFilesInTestRepository( - config: Config, - id: DependencyCoordinates -): Component? { - if (m2 == null) return null - val dir = with(id) { - File(URI.create(m2)).resolve("${group.replace(".", "/")}/$module/$version") - } - if (!dir.exists()) { - config.logger.log("$id: not found in m2 repository; tried $dir") - return null - } - val verifications = dir.walk().filter { it.isFile && it.name.startsWith(id.module) }.map { f -> - ArtifactMetadata( - f.name, - sha256 = Sha256(f.sha256()) - ) - } - config.logger.log("$id: obtained artifact hashes from test Maven repository.") - return Component(id, verifications.toList()) -} - -private fun maybeDownloadGradleModule( - logger: Logger, - component: Component, - repos: List -): ArtifactDownload>? { - if (component.artifacts.none { it.name.endsWith(".module") }) return null - val filename = with(component.id) { "$module-$version.module" } - return maybeDownloadArtifact(logger, component.id, filename, repos)?.let { artifact -> - try { - ArtifactDownload( - filename to JsonFormat.decodeFromString(artifact.artifact), - artifact.url, - artifact.hash - ) - } catch (e: SerializationException) { - logger.warn("${component.id}: failed to parse Gradle module metadata from ${artifact.url}") - null - } - } -} - -private fun maybeDownloadMavenPom( - logger: Logger, - component: Component, - repos: List, - gradleModule: GradleModule? -): Pair? { - if (component.artifacts.any { it.name.endsWith(".pom") }) return null - val pomRepos = repos.filter { "mavenPom" in it.metadataSources } - if (pomRepos.isEmpty()) return null - val filename = with(component.id) { "$module-$version.pom" } - - return maybeDownloadArtifact(logger, component.id, filename, pomRepos)?.let { artifact -> - filename to ArtifactFile( - urls = pomRepos.flatMap { repo -> - artifactUrls(logger, component.id, filename, repo, gradleModule) - }.distinct(), - hash = artifact.hash.toSri() +private fun downloadArtifact( + urls: List +): Artifact? { + return maybeDownloadText(urls)?.let { + Artifact( + urls, + it.hash.toSri() ) } } -private fun maybeDownloadIvyDescriptor( - logger: Logger, - component: Component, - repos: List, -): Pair? { - val ivyRepos = repos.filter { "ivyDescriptor" in it.metadataSources } - if (ivyRepos.isEmpty()) return null - - val urls = ivyRepos - .flatMap { repo -> - val attributes = attributes(component.id, repo) - repo.metadataResources.mapNotNull { fill(it, attributes).takeIf(::isUrlComplete) } - } - .filter { url -> - component.artifacts.none { url.substringAfterLast('/') == it.name } - } - - var artifact: ArtifactDownload? = null - - for (url in urls) { - try { - val source = HashingSource.sha256(URL(url).openStream().source()) - val text = source.buffer().readUtf8() - val hash = source.hash - artifact = ArtifactDownload(text, url, Sha256(hash.hex())) - break - } catch (e: IOException) { - // Pass - } - } - - if (artifact == null) { - logger.debug("ivy descriptor not found in urls: $urls") - return null - } - return artifact.artifact to ArtifactFile( - urls = urls, - hash = artifact.hash.toSri() - ) -} - -private fun maybeDownloadArtifact( - logger: Logger, - id: DependencyCoordinates, - filename: String, - repos: List +private fun maybeDownloadText( + urls: List, ): ArtifactDownload? { - val urls = repos.flatMap { artifactUrls(logger, id, filename, it, null)} - - logger.debug("artifact $filename: $urls") - for (url in urls) { try { - val source = HashingSource.sha256(URL(url).openStream().source()) + val source = HashingSource.sha256(URI(url).toURL().openStream().source()) val text = source.buffer().readUtf8() val hash = source.hash return ArtifactDownload(text, url, Sha256(hash.hex())) @@ -270,8 +121,6 @@ private fun maybeDownloadArtifact( // Pass } } - - logger.debug("artifact $filename not found in any repository") return null } @@ -281,7 +130,7 @@ private fun File.sha256(): String { return source.hash.hex() } -private fun Checksum.toSri(): String { +internal fun Checksum.toSri(): String { val hash = value.decodeHex().base64() return when (this) { is Md5 -> "md5-$hash" @@ -291,96 +140,13 @@ private fun Checksum.toSri(): String { } } -private fun artifactUrls( - logger: Logger, - id: DependencyCoordinates, - filename: String, - repository: Repository, - module: GradleModule?, -): List { - val groupAsPath = id.group.replace(".", "/") - - val repoFilename = module?.let { m -> - m.variants - .asSequence() - .flatMap(Variant::files) - .find { it.name == filename } - }?.url ?: filename - - val attributes = mutableMapOf( - "organisation" to if (repository.m2Compatible) groupAsPath else id.group, - "module" to id.module, - "revision" to id.version, - ) + fileAttributes(repoFilename, id.version) - - val resources = when (attributes["ext"]) { - "pom" -> if ("mavenPom" in repository.metadataSources) repository.metadataResources else repository.artifactResources - "xml" -> if ("ivyDescriptor" in repository.metadataSources) repository.metadataResources else repository.artifactResources - "module" -> if ("gradleMetadata" in repository.metadataSources || "ignoreGradleMetadataRedirection" !in repository.metadataSources) { - repository.metadataResources - } else { - repository.artifactResources - } - else -> repository.artifactResources - }.map { it.replaceFirst("-[revision]", "-${id.artifactVersion}") } - - val urls = mutableListOf() - - for (resource in resources) { - val location = attributes.entries.fold(fill(resource, attributes)) { acc, (key, value) -> - acc.replace("[$key]", value) - } - if (location.none { it == '[' || it == ']' }) { - urls.add(location) - } else { - logger.warn("failed to construct artifact URL: $location") - } - } - - return urls.distinct() -} - -private val optionalRegex = Regex("\\(([^)]+)\\)") -private val attrRegex = Regex("\\[([^]]+)]") - -private fun fill(template: String, attributes: Map): String { - return optionalRegex.replace(template) { match -> - attrRegex.find(match.value)?.groupValues?.get(1)?.let { attr -> - attributes[attr]?.takeIf { it.isNotBlank() }?.let { value -> - match.groupValues[1].replace("[$attr]", value) - } - } ?: "" - } -} - -private fun isUrlComplete(url: String): Boolean = !url.contains("[") - -private fun attributes(id: DependencyCoordinates, repository: Repository): Map = buildMap { - put("organisation", if (repository.m2Compatible) id.group.replace(".", "/") else id.group) - put("module", id.module) - put("revision", id.version) -} - -// Gradle persists artifacts with the Maven artifact pattern, which may not match the repository's pattern. -private fun fileAttributes(file: String, version: String): Map { - val parts = Regex("(.+)-$version(-([^.]+))?(\\.(.+))?").matchEntire(file) ?: return emptyMap() - - val (artifact, _, classifier, _, ext) = parts.destructured - - return buildMap { - put("artifact", artifact) - put("classifier", classifier) - put("ext", ext) - } -} - -private data class MergedDependency( - val id: DependencyCoordinates, - val repositories: List -) - private data class ArtifactDownload( val artifact: T, val url: String, val hash: Checksum ) + +private val coordinatesComparator: Comparator = compareBy { it.group } + .thenBy { it.artifact } + .thenByDescending { Version(it.version) } + .thenByDescending { it.timestamp } diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/Version.kt b/app/src/main/kotlin/org/nixos/gradle2nix/Version.kt similarity index 82% rename from model/src/main/kotlin/org/nixos/gradle2nix/model/Version.kt rename to app/src/main/kotlin/org/nixos/gradle2nix/Version.kt index 8219268..c583621 100644 --- a/model/src/main/kotlin/org/nixos/gradle2nix/model/Version.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/Version.kt @@ -1,16 +1,7 @@ -package org.nixos.gradle2nix.model +package org.nixos.gradle2nix import java.util.concurrent.ConcurrentHashMap -import kotlinx.serialization.KSerializer -import kotlinx.serialization.Serializable -import kotlinx.serialization.descriptors.PrimitiveKind -import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder - -@Serializable(Version.Serializer::class) class Version(val source: String, val parts: List, base: Version?) : Comparable { private val base: Version @@ -35,26 +26,6 @@ class Version(val source: String, val parts: List, base: Version?) : Com override fun hashCode(): Int = source.hashCode() - object Comparator : kotlin.Comparator { - override fun compare(o1: Version, o2: Version): Int = - Version.compare(o1, o2) - } - - internal object Serializer : KSerializer { - override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor( - Version::class.qualifiedName!!, - PrimitiveKind.STRING - ) - - override fun serialize(encoder: Encoder, value: Version) { - encoder.encodeString(value.source) - } - - override fun deserialize(decoder: Decoder): Version { - return Version(decoder.decodeString()) - } - } - companion object { private val SPECIAL_MEANINGS: Map = mapOf( "dev" to -1, diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/env/Env.kt b/app/src/main/kotlin/org/nixos/gradle2nix/env/Env.kt index 2176a31..c74d9db 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/env/Env.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/env/Env.kt @@ -1,68 +1,22 @@ package org.nixos.gradle2nix.env -import kotlinx.serialization.KSerializer import kotlinx.serialization.Serializable -import kotlinx.serialization.SerializationException -import kotlinx.serialization.descriptors.PrimitiveKind -import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder -import org.nixos.gradle2nix.model.Version -typealias Env = Map +typealias Env = Map> @Serializable -@JvmInline -value class Module( - val versions: Map, -) - -@Serializable -@JvmInline -value class ArtifactSet( - val files: Map -) - -@Serializable -data class ArtifactFile internal constructor( +data class Artifact internal constructor( val urls: List, val hash: String, ) { companion object { - operator fun invoke(urls: List, hash: String) = ArtifactFile(urls.sorted(), hash) - } -} - -@Serializable(ModuleId.Serializer::class) -data class ModuleId( - val group: String, - val name: String, -) : Comparable { - - override fun compareTo(other: ModuleId): Int = - compareValuesBy(this, other, ModuleId::group, ModuleId::name) - - override fun toString(): String = "$group:$name" - - companion object Serializer : KSerializer { - override val descriptor: SerialDescriptor get() = PrimitiveSerialDescriptor( - ModuleId::class.qualifiedName!!, - PrimitiveKind.STRING + operator fun invoke( + urls: List, + hash: String + ) = Artifact( + urls.sorted(), + hash ) - - override fun serialize(encoder: Encoder, value: ModuleId) { - encoder.encodeString(value.toString()) - } - - override fun deserialize(decoder: Decoder): ModuleId { - val encoded = decoder.decodeString() - val parts = encoded.split(":") - if (parts.size != 2 || parts.any(String::isBlank)) { - throw SerializationException("invalid module id: $encoded") - } - return ModuleId(parts[0], parts[1]) - } } } diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/module/GradleModule.kt b/app/src/main/kotlin/org/nixos/gradle2nix/gradle/GradleModule.kt similarity index 98% rename from app/src/main/kotlin/org/nixos/gradle2nix/module/GradleModule.kt rename to app/src/main/kotlin/org/nixos/gradle2nix/gradle/GradleModule.kt index bc08c63..daf6766 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/module/GradleModule.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/gradle/GradleModule.kt @@ -1,4 +1,4 @@ -package org.nixos.gradle2nix.module +package org.nixos.gradle2nix.gradle import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/metadata/VerificationMetadata.kt b/app/src/main/kotlin/org/nixos/gradle2nix/metadata/VerificationMetadata.kt index 3bd95d9..83d456b 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/metadata/VerificationMetadata.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/metadata/VerificationMetadata.kt @@ -10,6 +10,7 @@ import nl.adaptivity.xmlutil.serialization.XmlSerialName import nl.adaptivity.xmlutil.xmlStreaming import org.nixos.gradle2nix.Logger import org.nixos.gradle2nix.model.DependencyCoordinates +import org.nixos.gradle2nix.model.impl.DefaultDependencyCoordinates sealed interface Coordinates { val group: String? @@ -40,10 +41,10 @@ data class Configuration( @Serializable sealed interface Checksum { - abstract val value: String - abstract val origin: String? - abstract val reason: String? - abstract val alternatives: List + val value: String + val origin: String? + val reason: String? + val alternatives: List } @Serializable @@ -107,11 +108,11 @@ data class Component( val timestamp: String? = null, val artifacts: List = emptyList(), ) { - val id: DependencyCoordinates get() = DependencyCoordinates(group, name, version, timestamp) + val id: DependencyCoordinates get() = DefaultDependencyCoordinates(group, name, version, timestamp) constructor(id: DependencyCoordinates, artifacts: List) : this( id.group, - id.module, + id.artifact, id.version, id.timestamp, artifacts diff --git a/app/src/test/kotlin/org/nixos/gradle2nix/GoldenTest.kt b/app/src/test/kotlin/org/nixos/gradle2nix/GoldenTest.kt index 0f521ee..e07c275 100644 --- a/app/src/test/kotlin/org/nixos/gradle2nix/GoldenTest.kt +++ b/app/src/test/kotlin/org/nixos/gradle2nix/GoldenTest.kt @@ -1,8 +1,11 @@ package org.nixos.gradle2nix +import io.kotest.core.extensions.install import io.kotest.core.spec.style.FunSpec class GoldenTest : FunSpec({ + install(MavenRepo) + context("basic") { golden("basic/basic-java-project") golden("basic/basic-kotlin-project") diff --git a/app/src/test/kotlin/org/nixos/gradle2nix/TestUtil.kt b/app/src/test/kotlin/org/nixos/gradle2nix/TestUtil.kt index 8e1d2a7..3e5936d 100644 --- a/app/src/test/kotlin/org/nixos/gradle2nix/TestUtil.kt +++ b/app/src/test/kotlin/org/nixos/gradle2nix/TestUtil.kt @@ -1,20 +1,37 @@ package org.nixos.gradle2nix import io.kotest.assertions.fail +import io.kotest.assertions.withClue import io.kotest.common.ExperimentalKotest import io.kotest.common.KotestInternal +import io.kotest.core.extensions.MountableExtension +import io.kotest.core.listeners.AfterSpecListener import io.kotest.core.names.TestName import io.kotest.core.source.sourceRef +import io.kotest.core.spec.Spec import io.kotest.core.test.NestedTest import io.kotest.core.test.TestScope import io.kotest.core.test.TestType import io.kotest.matchers.equals.beEqual import io.kotest.matchers.file.shouldBeAFile +import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.should +import io.kotest.matchers.shouldBe +import io.ktor.http.ContentType +import io.ktor.http.Url +import io.ktor.server.engine.embeddedServer +import io.ktor.server.http.content.staticFiles +import io.ktor.server.netty.Netty +import io.ktor.server.netty.NettyApplicationEngine +import io.ktor.server.routing.routing import java.io.File import java.io.FileFilter import java.nio.file.Files import java.nio.file.Paths +import kotlin.random.Random +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.SerializationException import kotlinx.serialization.encodeToString @@ -23,6 +40,7 @@ import kotlinx.serialization.json.decodeFromStream import kotlinx.serialization.json.encodeToStream import okio.use import org.nixos.gradle2nix.env.Env +import org.nixos.gradle2nix.metadata.parseVerificationMetadata private val app = Gradle2Nix() @@ -32,7 +50,7 @@ private val json = Json { prettyPrintIndent = " " } -val testLogger = Logger(verbose = true, stacktrace = true) +val testLogger = Logger(logLevel = LogLevel.debug, stacktrace = true) fun fixture(path: String): File { return Paths.get("../fixtures", path).toFile() @@ -42,10 +60,10 @@ fun fixture(path: String): File { suspend fun TestScope.fixture( project: String, vararg args: String, - test: suspend TestScope.(Env) -> Unit + test: suspend TestScope.(File, Env) -> Unit ) { val tmp = Paths.get("build/tmp/gradle2nix").apply { toFile().mkdirs() } - val baseDir = Paths.get("../fixtures", project).toFile() + val baseDir = Paths.get("../fixtures/projects", project).toFile() val children = baseDir.listFiles(FileFilter { it.isDirectory && (it.name == "groovy" || it.name == "kotlin") }) ?.toList() val cases = if (children.isNullOrEmpty()) { @@ -73,13 +91,22 @@ suspend fun TestScope.fixture( if (!tempDir.resolve("settings.gradle").exists() && !tempDir.resolve("settings.gradle.kts").exists()) { Files.createFile(tempDir.resolve("settings.gradle").toPath()) } - app.main(listOf("-d", tempDir.toString()) + listOf("--debug") + args.withM2() + "-Dorg.gradle.internal.operations.trace=${tempDir.resolve("build").absolutePath}") + app.main( + listOf( + "-d", tempDir.toString(), + "--log", "debug", + "--stacktrace", + "--dump-events", + "--", + "-Dorg.nixos.gradle2nix.m2=$m2" + ) + args + ) val file = tempDir.resolve("${app.envFile}.json") file.shouldBeAFile() val env: Env = file.inputStream().buffered().use { input -> Json.decodeFromStream(input) } - test(env) + test(tempDir, env) } ) } @@ -92,7 +119,7 @@ suspend fun TestScope.golden( project: String, vararg args: String, ) { - fixture(project, *args) { env -> + fixture(project, *args) { dir, env -> val filename = "${testCase.name.testName}.json" val goldenFile = File("../fixtures/golden/$filename") if (updateGolden) { @@ -111,14 +138,83 @@ suspend fun TestScope.golden( } json.encodeToString(env) should beEqual(goldenData) } + + val metadata = parseVerificationMetadata( + testLogger, + dir.resolve("gradle/verification-metadata.xml") + )!! + + for (component in metadata.components) { + val componentId = component.id.id + + withClue("env should contain component $componentId") { + env[componentId].shouldNotBeNull() + } + } } } -val m2 = System.getProperty("org.nixos.gradle2nix.m2") +val m2: String = requireNotNull(System.getProperty("org.nixos.gradle2nix.m2")) -private fun Array.withM2(): List { - val args = toMutableList() - if (args.indexOf("--") < 0) args.add("--") - args.add("-Dorg.nixos.gradle2nix.m2=$m2") - return args +object MavenRepo : MountableExtension, AfterSpecListener { + class Config { + var repository: File = File("../fixtures/repositories/m2") + var path: String = "" + var port: Int? = null + var host: String = DEFAULT_HOST + } + + const val DEFAULT_HOST = "0.0.0.0" + + private val coroutineScope = CoroutineScope(Dispatchers.Default) + private var server: NettyApplicationEngine? = null + private val config = Config() + + init { + require(config.repository.exists()) { + "test repository doesn't exist: ${config.repository}" + } + val m2Url = Url(m2) + config.path = m2Url.encodedPath + config.host = m2Url.host + config.port = m2Url.port + } + + override fun mount(configure: Config.() -> Unit): NettyApplicationEngine { + config.configure() + // try 3 times to find a port if random + return tryStart(3).also { this.server = it } + } + + private fun tryStart(attempts: Int): NettyApplicationEngine { + return try { + val p = config.port ?: Random.nextInt(10000, 65000) + val s = embeddedServer(Netty, port = p, host = config.host) { + routing { + staticFiles( + remotePath = config.path, + dir = config.repository, + index = null, + ) { + enableAutoHeadResponse() + contentType { path -> + when (path.extension) { + "pom", "xml" -> ContentType.Text.Xml + "jar" -> ContentType("application", "java-archive") + else -> ContentType.Text.Plain + } + } + } + } + } + coroutineScope.launch { s.start(wait = true) } + s + } catch (e: Throwable) { + if (config.port == null && attempts > 0) tryStart(attempts - 1) else throw e + } + } + + override suspend fun afterSpec(spec: Spec) { + server?.stop() + } } diff --git a/fixtures/dependency/maven-bom/kotlin/build.gradle.kts b/fixtures/dependency/maven-bom/kotlin/build.gradle.kts deleted file mode 100644 index 2734242..0000000 --- a/fixtures/dependency/maven-bom/kotlin/build.gradle.kts +++ /dev/null @@ -1,12 +0,0 @@ -plugins { - java -} - -repositories { - maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) } -} - -dependencies { - implementation(platform("io.micrometer:micrometer-bom:1.5.1")) - implementation("io.micrometer:micrometer-core") -} diff --git a/fixtures/golden/basic/basic-java-project.groovy.json b/fixtures/golden/basic/basic-java-project.groovy.json index 6bdf5d6..e7f7e32 100644 --- a/fixtures/golden/basic/basic-java-project.groovy.json +++ b/fixtures/golden/basic/basic-java-project.groovy.json @@ -1,82 +1,88 @@ { - "com.squareup.moshi:moshi": { - "1.8.0": { - "moshi-1.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar" - ], - "hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo=" - }, - "moshi-1.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom" - ], - "hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8=" - } + "com.squareup.moshi:moshi:1.8.0": { + "moshi-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar" + ], + "hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo=" + }, + "moshi-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom" + ], + "hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8=" } }, - "com.squareup.okio:okio": { - "2.2.2": { - "okio-2.2.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar" - ], - "hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs=" - }, - "okio-2.2.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom" - ], - "hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs=" - } + "com.squareup.moshi:moshi-parent:1.8.0": { + "moshi-parent-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi-parent/1.8.0/moshi-parent-1.8.0.pom" + ], + "hash": "sha256-2t8UzX/uSexrgqkORdccwax1imVTFwGtlNy+98xgP7c=" } }, - "org.jetbrains.kotlin:kotlin-stdlib": { - "1.2.60": { - "kotlin-stdlib-1.2.60.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar" - ], - "hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE=" - }, - "kotlin-stdlib-1.2.60.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom" - ], - "hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg=" - } + "com.squareup.okio:okio:2.2.2": { + "okio-2.2.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar" + ], + "hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs=" + }, + "okio-2.2.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom" + ], + "hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-common": { - "1.2.60": { - "kotlin-stdlib-common-1.2.60.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar" - ], - "hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E=" - }, - "kotlin-stdlib-common-1.2.60.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom" - ], - "hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE=" - } + "org.jetbrains:annotations:13.0": { + "annotations-13.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + ], + "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" + }, + "annotations-13.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" + ], + "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" } }, - "org.jetbrains:annotations": { - "13.0": { - "annotations-13.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" - ], - "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" - }, - "annotations-13.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" - ], - "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" - } + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60": { + "kotlin-stdlib-1.2.60.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar" + ], + "hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE=" + }, + "kotlin-stdlib-1.2.60.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom" + ], + "hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60": { + "kotlin-stdlib-common-1.2.60.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar" + ], + "hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E=" + }, + "kotlin-stdlib-common-1.2.60.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom" + ], + "hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE=" + } + }, + "org.sonatype.oss:oss-parent:7": { + "oss-parent-7.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom" + ], + "hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" } } } \ No newline at end of file diff --git a/fixtures/golden/basic/basic-java-project.kotlin.json b/fixtures/golden/basic/basic-java-project.kotlin.json index 6bdf5d6..e7f7e32 100644 --- a/fixtures/golden/basic/basic-java-project.kotlin.json +++ b/fixtures/golden/basic/basic-java-project.kotlin.json @@ -1,82 +1,88 @@ { - "com.squareup.moshi:moshi": { - "1.8.0": { - "moshi-1.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar" - ], - "hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo=" - }, - "moshi-1.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom" - ], - "hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8=" - } + "com.squareup.moshi:moshi:1.8.0": { + "moshi-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar" + ], + "hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo=" + }, + "moshi-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom" + ], + "hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8=" } }, - "com.squareup.okio:okio": { - "2.2.2": { - "okio-2.2.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar" - ], - "hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs=" - }, - "okio-2.2.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom" - ], - "hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs=" - } + "com.squareup.moshi:moshi-parent:1.8.0": { + "moshi-parent-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi-parent/1.8.0/moshi-parent-1.8.0.pom" + ], + "hash": "sha256-2t8UzX/uSexrgqkORdccwax1imVTFwGtlNy+98xgP7c=" } }, - "org.jetbrains.kotlin:kotlin-stdlib": { - "1.2.60": { - "kotlin-stdlib-1.2.60.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar" - ], - "hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE=" - }, - "kotlin-stdlib-1.2.60.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom" - ], - "hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg=" - } + "com.squareup.okio:okio:2.2.2": { + "okio-2.2.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar" + ], + "hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs=" + }, + "okio-2.2.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom" + ], + "hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-common": { - "1.2.60": { - "kotlin-stdlib-common-1.2.60.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar" - ], - "hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E=" - }, - "kotlin-stdlib-common-1.2.60.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom" - ], - "hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE=" - } + "org.jetbrains:annotations:13.0": { + "annotations-13.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + ], + "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" + }, + "annotations-13.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" + ], + "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" } }, - "org.jetbrains:annotations": { - "13.0": { - "annotations-13.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" - ], - "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" - }, - "annotations-13.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" - ], - "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" - } + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60": { + "kotlin-stdlib-1.2.60.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar" + ], + "hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE=" + }, + "kotlin-stdlib-1.2.60.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom" + ], + "hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60": { + "kotlin-stdlib-common-1.2.60.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar" + ], + "hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E=" + }, + "kotlin-stdlib-common-1.2.60.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom" + ], + "hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE=" + } + }, + "org.sonatype.oss:oss-parent:7": { + "oss-parent-7.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom" + ], + "hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" } } } \ No newline at end of file diff --git a/fixtures/golden/basic/basic-kotlin-project.kotlin.json b/fixtures/golden/basic/basic-kotlin-project.kotlin.json index 2aca94e..d76a46d 100644 --- a/fixtures/golden/basic/basic-kotlin-project.kotlin.json +++ b/fixtures/golden/basic/basic-kotlin-project.kotlin.json @@ -1,1428 +1,1676 @@ { - "com.fasterxml.jackson.core:jackson-annotations": { - "2.10.1": { - "jackson-annotations-2.10.1.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.10.1/jackson-annotations-2.10.1.jar" - ], - "hash": "sha256-Zz+K4Wvs6k+pN0BLOoUUF/r0LfO7xZICi74r/gzJ2Ms=" - }, - "jackson-annotations-2.10.1.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.10.1/jackson-annotations-2.10.1.pom" - ], - "hash": "sha256-7OURA2Z+iBHw/3RYmGryFxhi5UuYE8FwjPk3kESH+Vw=" - } + "com.fasterxml:oss-parent:38": { + "oss-parent-38.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/fasterxml/oss-parent/38/oss-parent-38.pom" + ], + "hash": "sha256-yD+PRd/cqNC2s2YcYLP4R4D2cbEuBvka1dHBodH5Zug=" } }, - "com.fasterxml.jackson.core:jackson-core": { - "2.10.1": { - "jackson-core-2.10.1.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar" - ], - "hash": "sha256-eb/73NNJ9ppawlLitAlhMXBDhq9PoU2VOV6poOQjzzM=" - }, - "jackson-core-2.10.1.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.pom" - ], - "hash": "sha256-EXkJC3ILJankJmQwLwM0oiQLMMcoC0IkJeT0UZ5bLP4=" - } + "com.fasterxml.jackson:jackson-base:2.10.1": { + "jackson-base-2.10.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-base/2.10.1/jackson-base-2.10.1.pom" + ], + "hash": "sha256-dUnyCbxITO6tG0ME+XtPfi5bXOmARSfQ2XFw3FF3ri8=" } }, - "com.fasterxml.jackson.core:jackson-databind": { - "2.10.1": { - "jackson-databind-2.10.1.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.10.1/jackson-databind-2.10.1.jar" - ], - "hash": "sha256-LSP0cAFJIjNWWt9aNPIl8q6JVkzuCAJIc+w2t4Qu3kY=" - }, - "jackson-databind-2.10.1.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.10.1/jackson-databind-2.10.1.pom" - ], - "hash": "sha256-OGlQZeP1ILBbvY6lmC5ba1vZ+FYpZ7g9rLfQerCMauc=" - } + "com.fasterxml.jackson:jackson-bom:2.10.1": { + "jackson-bom-2.10.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-bom/2.10.1/jackson-bom-2.10.1.pom" + ], + "hash": "sha256-H92hwb5qLkrG8MML3/C7ydAtYkcKgIIwJcF6u2ly1eQ=" } }, - "com.github.gundy:semver4j": { - "0.16.4": { - "semver4j-0.16.4-nodeps.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/github/gundy/semver4j/0.16.4/semver4j-0.16.4-nodeps.jar" - ], - "hash": "sha256-P1nspRY3TM1P01UWJb9Q+KSxkfcAUI985IZkYKYSivA=" - }, - "semver4j-0.16.4.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/github/gundy/semver4j/0.16.4/semver4j-0.16.4.pom" - ], - "hash": "sha256-MgAdskQ7M53SH1t5/ynRreci0boIDCFL3oGfD3LRYE0=" - } + "com.fasterxml.jackson:jackson-parent:2.10": { + "jackson-parent-2.10.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-parent/2.10/jackson-parent-2.10.pom" + ], + "hash": "sha256-pQ24CCnE+JfG0OfpVHLLtDsOvs4TWmjjnCe4pv4z5IE=" } }, - "com.github.pengrad:java-telegram-bot-api": { - "4.6.0": { - "java-telegram-bot-api-4.6.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/pengrad/java-telegram-bot-api/4.6.0/java-telegram-bot-api-4.6.0.jar" - ], - "hash": "sha256-w4H/cErewM/mZbrnUYtwiT5Czf83Smb0qYxGfeG/TdU=" - }, - "java-telegram-bot-api-4.6.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/pengrad/java-telegram-bot-api/4.6.0/java-telegram-bot-api-4.6.0.pom" - ], - "hash": "sha256-nZxF//5qwbIbZffUK0k2T/gnnX5pLU9wF0BLLhC+YsE=" - } - } - }, - "com.google.code.findbugs:jsr305": { - "3.0.2": { - "jsr305-3.0.2.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" - ], - "hash": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=" - }, - "jsr305-3.0.2.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.pom" - ], - "hash": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4=" - } - } - }, - "com.google.code.gson:gson": { - "2.8.9": { - "gson-2.8.9.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar" - ], - "hash": "sha256-05mSkYVd5JXJTHQ3YbirUXbP6r4oGlqw2OjUUyb9cD4=" - }, - "gson-2.8.9.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.9/gson-2.8.9.pom" - ], - "hash": "sha256-r97W5qaQ+/OtSuZa2jl/CpCl9jCzA9G3QbnJeSb91N4=" - } + "com.fasterxml.jackson.core:jackson-annotations:2.10.1": { + "jackson-annotations-2.10.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.10.1/jackson-annotations-2.10.1.jar" + ], + "hash": "sha256-Zz+K4Wvs6k+pN0BLOoUUF/r0LfO7xZICi74r/gzJ2Ms=" }, - "2.8.5": { - "gson-2.8.5.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar" - ], - "hash": "sha256-IzoBSfw2XJ9u29aDz+JmsZvcdzvpjqva9rPJJLSOfYE=" - }, - "gson-2.8.5.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.5/gson-2.8.5.pom" - ], - "hash": "sha256-uDCFV6f8zJLZ/nyM0FmSWLNhKF0uzedontqYhDJVoJI=" - } + "jackson-annotations-2.10.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.10.1/jackson-annotations-2.10.1.pom" + ], + "hash": "sha256-7OURA2Z+iBHw/3RYmGryFxhi5UuYE8FwjPk3kESH+Vw=" } }, - "com.google.errorprone:error_prone_annotations": { - "2.3.4": { - "error_prone_annotations-2.3.4.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" - ], - "hash": "sha256-uvfW6pfOYGxT4RtoVLpfLOfvXCTd3wr6GNEmC9JbACw=" - }, - "error_prone_annotations-2.3.4.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.pom" - ], - "hash": "sha256-EyZziktPfMrPYHuGahH7hRk+9g9qWUYRh85yZfm+W+0=" - } - } - }, - "com.google.guava:failureaccess": { - "1.0.1": { - "failureaccess-1.0.1.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" - ], - "hash": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=" - }, - "failureaccess-1.0.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.pom" - ], - "hash": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk=" - } - } - }, - "com.google.guava:guava": { - "29.0-jre": { - "guava-29.0-jre.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" - ], - "hash": "sha256-sixftm1h57lSJTHQSy+RW1FY6AqgtA7nKCyL+wew2iU=" - }, - "guava-29.0-jre.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/guava/guava/29.0-jre/guava-29.0-jre.pom" - ], - "hash": "sha256-kCfpNAmJA9KH8bphyLZfAdHR4dp6b7zAS/PeBUQBRCY=" - } - } - }, - "com.google.guava:listenablefuture": { - "9999.0-empty-to-avoid-conflict-with-guava": { - "listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" - ], - "hash": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=" - }, - "listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom" - ], - "hash": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s=" - } - } - }, - "com.google.j2objc:j2objc-annotations": { - "1.3": { - "j2objc-annotations-1.3.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" - ], - "hash": "sha256-Ia8wySJnvWEiwOC00gzMtmQaN+r5VsZUDsRx1YTmSns=" - }, - "j2objc-annotations-1.3.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.pom" - ], - "hash": "sha256-X6yoJLoRW+5FhzAzff2y/OpGui/XdNQwTtvzD6aj8FU=" - } - } - }, - "com.natpryce:konfig": { - "1.6.10.0": { - "konfig-1.6.10.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/natpryce/konfig/1.6.10.0/konfig-1.6.10.0.jar" - ], - "hash": "sha256-1Va6vANYRVP1/TzEaJTF6jMxCSv7qufqYm1bjUznk7s=" - }, - "konfig-1.6.10.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/natpryce/konfig/1.6.10.0/konfig-1.6.10.0.pom" - ], - "hash": "sha256-1NTlAHxEbyBlnbIqc2WXwLCFOLy6FL1HEND4VNxxFYg=" - } - } - }, - "com.squareup.okhttp3:logging-interceptor": { - "3.12.3": { - "logging-interceptor-3.12.3.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okhttp3/logging-interceptor/3.12.3/logging-interceptor-3.12.3.jar" - ], - "hash": "sha256-NNEihOBDYkI+VFe03a74xNhLyNgN1K0ZQ+Y8hQf4FXY=" - }, - "logging-interceptor-3.12.3.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okhttp3/logging-interceptor/3.12.3/logging-interceptor-3.12.3.pom" - ], - "hash": "sha256-H/YmwXE+Itb1bpLtvctOnBRMszSoT6gAsHAfmW+xp/I=" - } - } - }, - "com.squareup.okhttp3:okhttp": { - "3.12.3": { - "okhttp-3.12.3.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.3/okhttp-3.12.3.jar" - ], - "hash": "sha256-gUWW1U7f2Ut9nYcSvzeYZ9ObCQQo3TjFEG0N7V2jVv8=" - }, - "okhttp-3.12.3.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.3/okhttp-3.12.3.pom" - ], - "hash": "sha256-xXZHCTgwkLDEfEiizwh2OTvt1Ihmv83hk0NJf/oXuEQ=" - } - } - }, - "com.squareup.okio:okio": { - "1.15.0": { - "okio-1.15.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.15.0/okio-1.15.0.jar" - ], - "hash": "sha256-aT+jGafohDMAYCsgQCO3Z08Qbry1d/LdWAchK2YRi9I=" - }, - "okio-1.15.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.15.0/okio-1.15.0.pom" - ], - "hash": "sha256-8cELFIDRq3X7BRoHsnPjfNolJel+Fgfug+aDO3Dhv84=" - } - } - }, - "com.winterbe:expekt": { - "0.5.0": { - "expekt-0.5.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/winterbe/expekt/0.5.0/expekt-0.5.0.jar" - ], - "hash": "sha256-mKJnQqgnRs1u5m7/u8PK/TInA+onhhf734u5tU3O8Xw=" - }, - "expekt-0.5.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/winterbe/expekt/0.5.0/expekt-0.5.0.pom" - ], - "hash": "sha256-We03cwfzVZIPORBAQ6YBDDrnbKWfKULGxk3Ttg0pEsc=" - } - } - }, - "de.undercouch:gradle-download-task": { - "4.1.1": { - "gradle-download-task-4.1.1.jar": { - "urls": [ - "https://plugins.gradle.org/m2/de/undercouch/gradle-download-task/4.1.1/gradle-download-task-4.1.1.jar" - ], - "hash": "sha256-6wi1cOQI1GRnBecKlJYU1DnqKxFFXxZSqwMw3olU2rk=" - }, - "gradle-download-task-4.1.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/de/undercouch/gradle-download-task/4.1.1/gradle-download-task-4.1.1.pom" - ], - "hash": "sha256-EQnx9xpUJU1ZAzfYudRD+d/AhyjJwdgzVlXMHcyIwLk=" - } - } - }, - "io.github.classgraph:classgraph": { - "4.8.37": { - "classgraph-4.8.37.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/classgraph/classgraph/4.8.37/classgraph-4.8.37.jar" - ], - "hash": "sha256-fR0+iCjB7vVJ1B7x7Oc9LFxYz7lRs/Igzwzx3SVVgXM=" - }, - "classgraph-4.8.37.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/classgraph/classgraph/4.8.37/classgraph-4.8.37.pom" - ], - "hash": "sha256-pJBV0GEleGZQvjPu13rphQCROLhNOWA7wesu08gIWzQ=" - } - } - }, - "io.javalin:javalin": { - "3.7.0": { - "javalin-3.7.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/javalin/javalin/3.7.0/javalin-3.7.0.jar" - ], - "hash": "sha256-YGYQPPI2In7IacUllknrErvlwFyH8MHp9y86RGYOZ3I=" - }, - "javalin-3.7.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/javalin/javalin/3.7.0/javalin-3.7.0.pom" - ], - "hash": "sha256-11U3Www5qZiAEH3sDAzdMgDx7qi2npxtFkYdyuR050M=" - } - } - }, - "javax.servlet:javax.servlet-api": { - "3.1.0": { - "javax.servlet-api-3.1.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar" - ], - "hash": "sha256-r0VrLdQcToLPVPPnQ7xniXPZ/jW9TTBx+gXH5TM7hII=" - }, - "javax.servlet-api-3.1.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.pom" - ], - "hash": "sha256-sxEJ4i6j8t8a15VUMucYo13vUK5sGWmANK+ooM+ekGk=" - } - } - }, - "net.java.dev.jna:jna": { - "5.6.0": { - "jna-5.6.0.jar": { - "urls": [ - "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar", - "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar" - ], - "hash": "sha256-VVfiNaiqL5dm1dxgnWeUjyqIMsLXls6p7x1svgs7fq8=" - }, - "jna-5.6.0.pom": { - "urls": [ - "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom", - "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom" - ], - "hash": "sha256-X+gbAlWXjyRhbTexBgi3lJil8wc+HZsgONhzaoMfJgg=" - } - } - }, - "org.apiguardian:apiguardian-api": { - "1.1.0": { - "apiguardian-api-1.1.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar" - ], - "hash": "sha256-qarp/4rj4XoqGPeRdegrFiZ8JG+708qd+7spCwjc/dQ=" - }, - "apiguardian-api-1.1.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.pom" - ], - "hash": "sha256-qUW5y1zZt3sscRhE5lnEPsBw71nZ9Qn6n0wYYbSGJxE=" - } - } - }, - "org.checkerframework:checker-qual": { - "2.11.1": { - "checker-qual-2.11.1.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" - ], - "hash": "sha256-AVIkpLHcbebaBTJz1Np9Oc/qIOYwOBafxFrA0dycWTg=" - }, - "checker-qual-2.11.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.pom" - ], - "hash": "sha256-zy4MkNj3V0VfSiWOpglzkFNmO9XaannZvVP5NaR955w=" - } - } - }, - "org.eclipse.jetty.websocket:websocket-api": { - "9.4.25.v20191220": { - "websocket-api-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-api/9.4.25.v20191220/websocket-api-9.4.25.v20191220.jar" - ], - "hash": "sha256-sRCCel9HyDUQMj7hm+h+N7FUDhVTfNAhqTVJ4El0f68=" - }, - "websocket-api-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-api/9.4.25.v20191220/websocket-api-9.4.25.v20191220.pom" - ], - "hash": "sha256-xn/BVBQDGiWCGJri17IMVhDTUvWkf4fSi8+1lJQTWcs=" - } - } - }, - "org.eclipse.jetty.websocket:websocket-client": { - "9.4.25.v20191220": { - "websocket-client-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-client/9.4.25.v20191220/websocket-client-9.4.25.v20191220.jar" - ], - "hash": "sha256-dIMBH4pyWNlP62P+SjZSCYG8HYXsPdGxSJlX1AcRFOw=" - }, - "websocket-client-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-client/9.4.25.v20191220/websocket-client-9.4.25.v20191220.pom" - ], - "hash": "sha256-AzAQdDEZ7xKiB2CXLdHAu6BwLuiVU5LtP/QdF2RMOs4=" - } - } - }, - "org.eclipse.jetty.websocket:websocket-common": { - "9.4.25.v20191220": { - "websocket-common-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-common/9.4.25.v20191220/websocket-common-9.4.25.v20191220.jar" - ], - "hash": "sha256-1bvWkUvEIbKOB6MXkc2ZKgBnQX1rX9Bapkq1hDrydzw=" - }, - "websocket-common-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-common/9.4.25.v20191220/websocket-common-9.4.25.v20191220.pom" - ], - "hash": "sha256-ukxD7w1zKeye8StLaAa+D3rHPCQRm8vkvj1m7ebbmlQ=" - } - } - }, - "org.eclipse.jetty.websocket:websocket-server": { - "9.4.25.v20191220": { - "websocket-server-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-server/9.4.25.v20191220/websocket-server-9.4.25.v20191220.jar" - ], - "hash": "sha256-PjO/DwuuXX+/Rx16JWroB4UCkGoxIaCgANkU39F21bo=" - }, - "websocket-server-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-server/9.4.25.v20191220/websocket-server-9.4.25.v20191220.pom" - ], - "hash": "sha256-o9WaXSoxrXskMRuXh2Eog5sNeO+oH4blG6yqelb5MKQ=" - } - } - }, - "org.eclipse.jetty.websocket:websocket-servlet": { - "9.4.25.v20191220": { - "websocket-servlet-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-servlet/9.4.25.v20191220/websocket-servlet-9.4.25.v20191220.jar" - ], - "hash": "sha256-nYoe6bmGzp/JJM3ai9fvzxwLZ0X3qWa1B8x3WU/vIms=" - }, - "websocket-servlet-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-servlet/9.4.25.v20191220/websocket-servlet-9.4.25.v20191220.pom" - ], - "hash": "sha256-WgVNHE2/17gfAqoOIR+pm7ZHZEn6T48swQGjvPtT7wY=" - } - } - }, - "org.eclipse.jetty:jetty-client": { - "9.4.25.v20191220": { - "jetty-client-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-client/9.4.25.v20191220/jetty-client-9.4.25.v20191220.jar" - ], - "hash": "sha256-qwUsaY1GjdLLjZ1bcH5VqUQDDZFfT59BrDzc+Cs9xuA=" - }, - "jetty-client-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-client/9.4.25.v20191220/jetty-client-9.4.25.v20191220.pom" - ], - "hash": "sha256-ixNwOlizo3BtJIiemlXDSRu+XY+DZdOoKkvvqcbp+eM=" - } - } - }, - "org.eclipse.jetty:jetty-http": { - "9.4.25.v20191220": { - "jetty-http-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-http/9.4.25.v20191220/jetty-http-9.4.25.v20191220.jar" - ], - "hash": "sha256-3JxGbw/kvzf9X02iPQFoSwZ63poWAsTzxbaUvMIIR7o=" - }, - "jetty-http-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-http/9.4.25.v20191220/jetty-http-9.4.25.v20191220.pom" - ], - "hash": "sha256-upIlnnZtESJEah+zuPZAXnroxcQS8i6XbLCEyoxhm4c=" - } - } - }, - "org.eclipse.jetty:jetty-io": { - "9.4.25.v20191220": { - "jetty-io-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-io/9.4.25.v20191220/jetty-io-9.4.25.v20191220.jar" - ], - "hash": "sha256-6cMdtQO2B1/UPxVTGQMAfB6Cn8JF2jQEtuQyfyTvlWk=" - }, - "jetty-io-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-io/9.4.25.v20191220/jetty-io-9.4.25.v20191220.pom" - ], - "hash": "sha256-q1nyQDwSIWhSvBzyhOVhETo9LgsZUmMwmLBfOQW9kYE=" - } - } - }, - "org.eclipse.jetty:jetty-security": { - "9.4.25.v20191220": { - "jetty-security-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-security/9.4.25.v20191220/jetty-security-9.4.25.v20191220.jar" - ], - "hash": "sha256-Y3HBY7kqyNb6sIyx2rkdDmkOclZoc9j3g706d5Oj2iY=" - }, - "jetty-security-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-security/9.4.25.v20191220/jetty-security-9.4.25.v20191220.pom" - ], - "hash": "sha256-2j1qeYtoSPOXIPxweDTha+S8pC31qiXCWSK5Mvz+rus=" - } - } - }, - "org.eclipse.jetty:jetty-server": { - "9.4.25.v20191220": { - "jetty-server-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-server/9.4.25.v20191220/jetty-server-9.4.25.v20191220.jar" - ], - "hash": "sha256-z89tvOS+zuXwZw2bx6do0bc87wyEZj6CrMC5EN8lZfQ=" - }, - "jetty-server-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-server/9.4.25.v20191220/jetty-server-9.4.25.v20191220.pom" - ], - "hash": "sha256-uWOogVUMUf5hOTgJbqfwWZLoGzBBy8faXgb6+8/YZWk=" - } - } - }, - "org.eclipse.jetty:jetty-servlet": { - "9.4.25.v20191220": { - "jetty-servlet-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-servlet/9.4.25.v20191220/jetty-servlet-9.4.25.v20191220.jar" - ], - "hash": "sha256-LU0t1OZdCWL0/xHTycytMKYmN3fgVpwbVzE4aLNHchw=" - }, - "jetty-servlet-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-servlet/9.4.25.v20191220/jetty-servlet-9.4.25.v20191220.pom" - ], - "hash": "sha256-tw95bbbqAGKLv7ph5aLgMRLjJ10OaIHJN/ARwn/wXos=" - } - } - }, - "org.eclipse.jetty:jetty-util": { - "9.4.25.v20191220": { - "jetty-util-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-util/9.4.25.v20191220/jetty-util-9.4.25.v20191220.jar" - ], - "hash": "sha256-IjeA1yTBx0Y8MjOoLAdobz/XigIvVg0BAlfb5AKODRQ=" - }, - "jetty-util-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-util/9.4.25.v20191220/jetty-util-9.4.25.v20191220.pom" - ], - "hash": "sha256-iEWSOTxmB1pqb6Z9iY532crIf1lIy10xDPyN5Z7wE8Y=" - } - } - }, - "org.eclipse.jetty:jetty-webapp": { - "9.4.25.v20191220": { - "jetty-webapp-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-webapp/9.4.25.v20191220/jetty-webapp-9.4.25.v20191220.jar" - ], - "hash": "sha256-qnWB2sNcrVdLA82aFEuibc9DeZ0k7P9enzoGiKJzLvE=" - }, - "jetty-webapp-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-webapp/9.4.25.v20191220/jetty-webapp-9.4.25.v20191220.pom" - ], - "hash": "sha256-HRXbctxeN+O+7iEjd1PsYkXn/sXj/ehUK5Yf/ZB9Ufw=" - } - } - }, - "org.eclipse.jetty:jetty-xml": { - "9.4.25.v20191220": { - "jetty-xml-9.4.25.v20191220.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-xml/9.4.25.v20191220/jetty-xml-9.4.25.v20191220.jar" - ], - "hash": "sha256-+xNsUWNTj8WHQuqlbfRIdlu4FvJd43Hasf6u5612tN8=" - }, - "jetty-xml-9.4.25.v20191220.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-xml/9.4.25.v20191220/jetty-xml-9.4.25.v20191220.pom" - ], - "hash": "sha256-05fGZk1fr9j7VX7NJU4EZP16bakwG60B4C248SAFvrM=" - } - } - }, - "org.jetbrains.intellij.deps:trove4j": { - "1.0.20200330": { - "trove4j-1.0.20200330.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar", - "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" - ], - "hash": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=" - }, - "trove4j-1.0.20200330.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom", - "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom" - ], - "hash": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" - } - } - }, - "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin": { - "1.6.21": { - "org.jetbrains.kotlin.jvm.gradle.plugin-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.6.21/org.jetbrains.kotlin.jvm.gradle.plugin-1.6.21.pom" - ], - "hash": "sha256-hKJnm90W1DkKJmp58Gzaix+iq38XlowYk0l84ZWOHEQ=" - } - } - }, - "org.jetbrains.kotlin:kotlin-android-extensions": { - "1.6.21": { - "kotlin-android-extensions-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.6.21/kotlin-android-extensions-1.6.21.jar" - ], - "hash": "sha256-QY25MO/hevs27AnooGI1615PYAsrXKFIeEIsn5lEbPs=" - }, - "kotlin-android-extensions-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.6.21/kotlin-android-extensions-1.6.21.pom" - ], - "hash": "sha256-oWU+E091vwu2aNklZdd/Qy3lGijcUcNK9eOBS53tCsQ=" - } - } - }, - "org.jetbrains.kotlin:kotlin-annotation-processing-gradle": { - "1.6.21": { - "kotlin-annotation-processing-gradle-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.6.21/kotlin-annotation-processing-gradle-1.6.21.jar" - ], - "hash": "sha256-tA86gSFVnlAjnFXvh2Z6IYBRG7GTQfzIYZh+T4TOYog=" - }, - "kotlin-annotation-processing-gradle-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.6.21/kotlin-annotation-processing-gradle-1.6.21.pom" - ], - "hash": "sha256-MImLOrD3X6VZjABz0qoqV9yctWnJ6Mb/O6UXUopMEHE=" - } - } - }, - "org.jetbrains.kotlin:kotlin-build-common": { - "1.6.21": { - "kotlin-build-common-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.6.21/kotlin-build-common-1.6.21.jar" - ], - "hash": "sha256-Y+6kBdNeNOggJcL0FW49R1fLjyWUmWIzVspma9IQAZ0=" - }, - "kotlin-build-common-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.6.21/kotlin-build-common-1.6.21.pom" - ], - "hash": "sha256-LRDfBINfB7h6qBoOf+xAbSwawRxU5+CPCOtRGv5btI8=" - } - } - }, - "org.jetbrains.kotlin:kotlin-compiler-embeddable": { - "1.6.21": { - "kotlin-compiler-embeddable-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.21/kotlin-compiler-embeddable-1.6.21.jar", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.21/kotlin-compiler-embeddable-1.6.21.jar" - ], - "hash": "sha256-X5ZQPNgiqmwg7abHFqVTxBTYAO0Mbn1lX6Gx+/1P7Cs=" - }, - "kotlin-compiler-embeddable-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.21/kotlin-compiler-embeddable-1.6.21.pom", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.21/kotlin-compiler-embeddable-1.6.21.pom" - ], - "hash": "sha256-wpULrWEPTie9iidbgcDoPIUfGD1gTuH7iRJV9DRa9EE=" - } - } - }, - "org.jetbrains.kotlin:kotlin-compiler-runner": { - "1.6.21": { - "kotlin-compiler-runner-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.6.21/kotlin-compiler-runner-1.6.21.jar" - ], - "hash": "sha256-IGGw47e3Uwv2cg2LBBC+Eyb7Fs1NrcN+d8Aqz+/loLM=" - }, - "kotlin-compiler-runner-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.6.21/kotlin-compiler-runner-1.6.21.pom" - ], - "hash": "sha256-b0Ofb0jeG+QltfdQlLbqpICL6hG8LjzmtUTG4zOQtSU=" - } - } - }, - "org.jetbrains.kotlin:kotlin-daemon-client": { - "1.6.21": { - "kotlin-daemon-client-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.6.21/kotlin-daemon-client-1.6.21.jar" - ], - "hash": "sha256-ZHawBzZPVFzmd6ObkzG8IbVqvXtWbwOfUfIVCKOQL6c=" - }, - "kotlin-daemon-client-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.6.21/kotlin-daemon-client-1.6.21.pom" - ], - "hash": "sha256-Q8EnIKTydrNdwEOWEo6bf7Goq9B6FstAnGwNZwaiMWs=" - } - } - }, - "org.jetbrains.kotlin:kotlin-daemon-embeddable": { - "1.6.21": { - "kotlin-daemon-embeddable-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.6.21/kotlin-daemon-embeddable-1.6.21.jar", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.6.21/kotlin-daemon-embeddable-1.6.21.jar" - ], - "hash": "sha256-UcPsHDLDbWVw2DFC6v4qJCk08WXwt4w4YTdpBfkPLhI=" - }, - "kotlin-daemon-embeddable-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.6.21/kotlin-daemon-embeddable-1.6.21.pom", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.6.21/kotlin-daemon-embeddable-1.6.21.pom" - ], - "hash": "sha256-tFZZFoP6YHGHAFr0sx0x1DYE4CHWBFUf8PIubdpWK5o=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin": { - "1.6.21": { - "kotlin-gradle-plugin-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.6.21/kotlin-gradle-plugin-1.6.21.jar" - ], - "hash": "sha256-Z1Oi4RJtP5k6lRryrcBrHsTKJxdulsj2Mnd5kBBNFa0=" - }, - "kotlin-gradle-plugin-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.6.21/kotlin-gradle-plugin-1.6.21.pom" - ], - "hash": "sha256-7RX0N/j1aW6NU7mszIYS6cas9Wfbau0E/ymq3F4DpC4=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-api": { - "1.6.21": { - "kotlin-gradle-plugin-api-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.6.21/kotlin-gradle-plugin-api-1.6.21.jar" - ], - "hash": "sha256-x0wfF5FsrG1ygGJkmI0V4yGa8kYJB5E3Tq6cua8ufLM=" - }, - "kotlin-gradle-plugin-api-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.6.21/kotlin-gradle-plugin-api-1.6.21.pom" - ], - "hash": "sha256-JL0R1cjnNGMHSBUXnPuyYCAJIxyEE5aTr3ydVtzU3z8=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-model": { - "1.6.21": { - "kotlin-gradle-plugin-model-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.6.21/kotlin-gradle-plugin-model-1.6.21.jar" - ], - "hash": "sha256-YFmxxhMI+4WaAedYsrj9Ctr/dBs9+AI1+t6VrWq4loc=" - }, - "kotlin-gradle-plugin-model-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.6.21/kotlin-gradle-plugin-model-1.6.21.pom" - ], - "hash": "sha256-QkLJzsOQLX21n4OMupPDDnMeC10yzDnQ5Ft1gKZUBOo=" - } - } - }, - "org.jetbrains.kotlin:kotlin-klib-commonizer-api": { - "1.6.21": { - "kotlin-klib-commonizer-api-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.6.21/kotlin-klib-commonizer-api-1.6.21.jar" - ], - "hash": "sha256-0s9pUu7ziUqs+KnYzx6MZ78hW075AmioyQMYNFMKOHQ=" - }, - "kotlin-klib-commonizer-api-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.6.21/kotlin-klib-commonizer-api-1.6.21.pom" - ], - "hash": "sha256-FICJ7qPCUPClDqxomfFFq5D1mJM8GrT5qsldYXKHJfQ=" - } - } - }, - "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable": { - "1.6.21": { - "kotlin-klib-commonizer-embeddable-1.6.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.6.21/kotlin-klib-commonizer-embeddable-1.6.21.jar" - ], - "hash": "sha256-1jgafq67fkj8p2v1u55fQ/pW3eb9UQXK6N4TXmMoD3A=" - }, - "kotlin-klib-commonizer-embeddable-1.6.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.6.21/kotlin-klib-commonizer-embeddable-1.6.21.pom" - ], - "hash": "sha256-bz7nSBQNsbaG5nqJehadbeQv1nQkHVVA3FK7o2Re/i4=" - } - } - }, - "org.jetbrains.kotlin:kotlin-native-utils": { - "1.6.21": { - "kotlin-native-utils-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.6.21/kotlin-native-utils-1.6.21.jar" - ], - "hash": "sha256-a9hyJOVq4V/+IQTTx2M9cq9sezWCRa08SnbG1f0NNr8=" - }, - "kotlin-native-utils-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.6.21/kotlin-native-utils-1.6.21.pom" - ], - "hash": "sha256-92q9t+TzvxouyTxiqybO/lKg7UlBAY53w/74BrCXvq8=" - } - } - }, - "org.jetbrains.kotlin:kotlin-project-model": { - "1.6.21": { - "kotlin-project-model-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.6.21/kotlin-project-model-1.6.21.jar" - ], - "hash": "sha256-FLaE+Kc+IpZ4ASS/OB3eAT9YLqIzZ6zgGEWAo4Sa6Ng=" - }, - "kotlin-project-model-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.6.21/kotlin-project-model-1.6.21.pom" - ], - "hash": "sha256-dgKHUWgMZJAf76wyN5AmtNC9I3rdfw873ujtXH51LG4=" - } - } - }, - "org.jetbrains.kotlin:kotlin-reflect": { - "1.6.21": { - "kotlin-reflect-1.6.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.21/kotlin-reflect-1.6.21.jar" - ], - "hash": "sha256-Hh9XIJ9yOMP9FzWhuTOaVlZVB9yiSfg3G/WdkfYBrqo=" - }, - "kotlin-reflect-1.6.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.21/kotlin-reflect-1.6.21.pom" - ], - "hash": "sha256-2nHh493COI1nVkFnLi8DFtucnSEvlG8CbUoOahM2p/M=" - } + "com.fasterxml.jackson.core:jackson-core:2.10.1": { + "jackson-core-2.10.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar" + ], + "hash": "sha256-eb/73NNJ9ppawlLitAlhMXBDhq9PoU2VOV6poOQjzzM=" }, - "1.3.50": { - "kotlin-reflect-1.3.50.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.3.50/kotlin-reflect-1.3.50.jar" - ], - "hash": "sha256-ZFgxmepaVK79G9FZUoiSX3hCJu5WLR3SeQEcYHWz16Q=" - }, - "kotlin-reflect-1.3.50.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.3.50/kotlin-reflect-1.3.50.pom" - ], - "hash": "sha256-h0UYHlo+C6/v1GMJxrgQ33JT83n+uYUTHq+NTZwwJjU=" - } + "jackson-core-2.10.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.pom" + ], + "hash": "sha256-EXkJC3ILJankJmQwLwM0oiQLMMcoC0IkJeT0UZ5bLP4=" } }, - "org.jetbrains.kotlin:kotlin-runtime": { - "1.0.3": { - "kotlin-runtime-1.0.3.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-runtime/1.0.3/kotlin-runtime-1.0.3.jar" - ], - "hash": "sha256-jBkPOBLPoR0I6wFBuMh36jJC8N3Q6r/llSV0Pq5ifo4=" - }, - "kotlin-runtime-1.0.3.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-runtime/1.0.3/kotlin-runtime-1.0.3.pom" - ], - "hash": "sha256-LaX+tSEGymCnZiDUaRgktUkbyi7ojMJVcwALCX3lRRc=" - } - } - }, - "org.jetbrains.kotlin:kotlin-script-runtime": { - "1.6.21": { - "kotlin-script-runtime-1.6.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.6.21/kotlin-script-runtime-1.6.21.jar" - ], - "hash": "sha256-YGw0p+bo5DnpIIdl59dbHbz4Dzg1Pz4puydFbXs3EXE=" - }, - "kotlin-script-runtime-1.6.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.6.21/kotlin-script-runtime-1.6.21.pom" - ], - "hash": "sha256-jVeQOOsdLK0DMFKOKdyMy4rozQ1WClRMXBswqT7O/t4=" - } - } - }, - "org.jetbrains.kotlin:kotlin-scripting-common": { - "1.6.21": { - "kotlin-scripting-common-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.21/kotlin-scripting-common-1.6.21.jar", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.21/kotlin-scripting-common-1.6.21.jar" - ], - "hash": "sha256-v79fA2I3zTPCX7oz1IlI2ZXbgYbOPwnDGvnCnIDOnK4=" - }, - "kotlin-scripting-common-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.21/kotlin-scripting-common-1.6.21.pom", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.21/kotlin-scripting-common-1.6.21.pom" - ], - "hash": "sha256-qgWvDyJWUokIeXiduzo6UY4XdWqFsT1UCo3P3wPL+5w=" - } - } - }, - "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { - "1.6.21": { - "kotlin-scripting-compiler-embeddable-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.6.21/kotlin-scripting-compiler-embeddable-1.6.21.jar", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.6.21/kotlin-scripting-compiler-embeddable-1.6.21.jar" - ], - "hash": "sha256-XJNzrzrkC3PW12JLJOjOEXIUSV2GLebSz7YYpxGRBrE=" - }, - "kotlin-scripting-compiler-embeddable-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.6.21/kotlin-scripting-compiler-embeddable-1.6.21.pom", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.6.21/kotlin-scripting-compiler-embeddable-1.6.21.pom" - ], - "hash": "sha256-C32qtju7PFTd0+NF6wzLI3aAv9TDh7Zfzllt/0uEe9s=" - } - } - }, - "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { - "1.6.21": { - "kotlin-scripting-compiler-impl-embeddable-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.6.21/kotlin-scripting-compiler-impl-embeddable-1.6.21.jar", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.6.21/kotlin-scripting-compiler-impl-embeddable-1.6.21.jar" - ], - "hash": "sha256-5ARLjeAehGM5I3BvQ82oDTfYu++M6ahm+dlZYt3SBIA=" - }, - "kotlin-scripting-compiler-impl-embeddable-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.6.21/kotlin-scripting-compiler-impl-embeddable-1.6.21.pom", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.6.21/kotlin-scripting-compiler-impl-embeddable-1.6.21.pom" - ], - "hash": "sha256-gIxqOEi7Xk9sYWmKxYkxIVc8Q9s4FCNW6D3q0EyzhjQ=" - } - } - }, - "org.jetbrains.kotlin:kotlin-scripting-jvm": { - "1.6.21": { - "kotlin-scripting-jvm-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.21/kotlin-scripting-jvm-1.6.21.jar", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.21/kotlin-scripting-jvm-1.6.21.jar" - ], - "hash": "sha256-ksA/6r9L3ZLVoixRp0i9NAJ0Z8PY9MZftbV0uGsH0QQ=" - }, - "kotlin-scripting-jvm-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.21/kotlin-scripting-jvm-1.6.21.pom", - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.21/kotlin-scripting-jvm-1.6.21.pom" - ], - "hash": "sha256-i5q1hXoYheSL2uAPqosix0sNPkCmNPyeCadG+op1fTI=" - } - } - }, - "org.jetbrains.kotlin:kotlin-stdlib": { - "1.6.21": { - "kotlin-stdlib-1.6.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.6.21/kotlin-stdlib-1.6.21.jar" - ], - "hash": "sha256-c5xSZnK7M3Vzso9jr6gwbrCIsMOgln9W1sifSjASpJI=" - }, - "kotlin-stdlib-1.6.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.6.21/kotlin-stdlib-1.6.21.pom" - ], - "hash": "sha256-zkJyW6Ab2DbNqmZ9l032hL9vjxXng5JjMgraf/quHzQ=" - } + "com.fasterxml.jackson.core:jackson-databind:2.10.1": { + "jackson-databind-2.10.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.10.1/jackson-databind-2.10.1.jar" + ], + "hash": "sha256-LSP0cAFJIjNWWt9aNPIl8q6JVkzuCAJIc+w2t4Qu3kY=" }, - "1.3.61": { - "kotlin-stdlib-1.3.61.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.jar" - ], - "hash": "sha256-5R5RJhmn52UKMOtOs+nAPmkJx7XjwCZATgdiVMCYuTI=" - }, - "kotlin-stdlib-1.3.61.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.pom" - ], - "hash": "sha256-2+W6vNjUPpsIwoRWgLU/wbs+BRxIBYAt3Q7T6OLFCoQ=" - } + "jackson-databind-2.10.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.10.1/jackson-databind-2.10.1.pom" + ], + "hash": "sha256-OGlQZeP1ILBbvY6lmC5ba1vZ+FYpZ7g9rLfQerCMauc=" + } + }, + "com.github.gundy:semver4j:0.16.4": { + "semver4j-0.16.4-nodeps.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/github/gundy/semver4j/0.16.4/semver4j-0.16.4-nodeps.jar" + ], + "hash": "sha256-P1nspRY3TM1P01UWJb9Q+KSxkfcAUI985IZkYKYSivA=" }, - "1.0.3": { - "kotlin-stdlib-1.0.3.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.0.3/kotlin-stdlib-1.0.3.jar" - ], - "hash": "sha256-ZyHVKFgAZF7WgZP35t0H0srOCd6fO3XN8fMFD0Y1l4E=" - }, - "kotlin-stdlib-1.0.3.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.0.3/kotlin-stdlib-1.0.3.pom" - ], - "hash": "sha256-QK5yi+5hvXgSHcWjdko/vH1jRYaHuRmI2qXKMhFQNx0=" - } + "semver4j-0.16.4.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/github/gundy/semver4j/0.16.4/semver4j-0.16.4.pom" + ], + "hash": "sha256-MgAdskQ7M53SH1t5/ynRreci0boIDCFL3oGfD3LRYE0=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-common": { - "1.6.21": { - "kotlin-stdlib-common-1.6.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.21/kotlin-stdlib-common-1.6.21.jar" - ], - "hash": "sha256-GDvsWc2fOhSVexkOjIec8RlL0fEGsKe24cu4eQ0kI2M=" - }, - "kotlin-stdlib-common-1.6.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.21/kotlin-stdlib-common-1.6.21.pom" - ], - "hash": "sha256-W8FW7nP9PC2sil7FSNWBtjMzNUfC/r7Zz2VH//FSa6I=" - } + "com.github.pengrad:java-telegram-bot-api:4.6.0": { + "java-telegram-bot-api-4.6.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/pengrad/java-telegram-bot-api/4.6.0/java-telegram-bot-api-4.6.0.jar" + ], + "hash": "sha256-w4H/cErewM/mZbrnUYtwiT5Czf83Smb0qYxGfeG/TdU=" }, - "1.3.61": { - "kotlin-stdlib-common-1.3.61.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.jar" - ], - "hash": "sha256-oufzQc8wR7XwChkX73d9MjzasqVzd0aLjtYqoxRpz38=" - }, - "kotlin-stdlib-common-1.3.61.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.pom" - ], - "hash": "sha256-4i2wCbsaYWNtlCVjWYlzbbXj/KSUgJq/JERo3EdM/AQ=" - } + "java-telegram-bot-api-4.6.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/pengrad/java-telegram-bot-api/4.6.0/java-telegram-bot-api-4.6.0.pom" + ], + "hash": "sha256-nZxF//5qwbIbZffUK0k2T/gnnX5pLU9wF0BLLhC+YsE=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { - "1.6.21": { - "kotlin-stdlib-jdk7-1.6.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.21/kotlin-stdlib-jdk7-1.6.21.jar" - ], - "hash": "sha256-8bBjTbuUFyA4RjAguy3UXKJoSfjOKdYlrLDxVp0R2+4=" - }, - "kotlin-stdlib-jdk7-1.6.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.21/kotlin-stdlib-jdk7-1.6.21.pom" - ], - "hash": "sha256-ARzSjruf3oFrA1nVrhCjZ07A/yxTEMBBLCDv6Oo9oG4=" - } + "com.google.code.findbugs:jsr305:3.0.2": { + "jsr305-3.0.2.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" + ], + "hash": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=" }, - "1.3.61": { - "kotlin-stdlib-jdk7-1.3.61.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61/kotlin-stdlib-jdk7-1.3.61.jar" - ], - "hash": "sha256-EfSlfj59gfPxUtXc7+Ob13YUtalBJf87EVJrChmsOYk=" - }, - "kotlin-stdlib-jdk7-1.3.61.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61/kotlin-stdlib-jdk7-1.3.61.pom" - ], - "hash": "sha256-xBYICuq9uRGKCO54wo4oVgOM2FhYQipx98Rr8nb2Z6c=" - } + "jsr305-3.0.2.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.pom" + ], + "hash": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { - "1.6.21": { - "kotlin-stdlib-jdk8-1.6.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.21/kotlin-stdlib-jdk8-1.6.21.jar" - ], - "hash": "sha256-2rRUibR3NtWfzkS4BnbxlHqba8qxD9YOh4qDvYKmlUw=" - }, - "kotlin-stdlib-jdk8-1.6.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.21/kotlin-stdlib-jdk8-1.6.21.pom" - ], - "hash": "sha256-g2oReaCNJJFGl9JhLgO4SKCHyAy0sMoj+c+rJH86dcQ=" - } + "com.google.code.gson:gson:2.8.9": { + "gson-2.8.9.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar" + ], + "hash": "sha256-05mSkYVd5JXJTHQ3YbirUXbP6r4oGlqw2OjUUyb9cD4=" }, - "1.3.61": { - "kotlin-stdlib-jdk8-1.3.61.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61/kotlin-stdlib-jdk8-1.3.61.jar" - ], - "hash": "sha256-ODm6fet5g3XaGAe8Rp0c8xXbemJ1WZ9zMYQ3R3LsOyE=" - }, - "kotlin-stdlib-jdk8-1.3.61.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61/kotlin-stdlib-jdk8-1.3.61.pom" - ], - "hash": "sha256-4wGH5XIMpkC45oaG8g3QJQ3O8Bk9VuVWnDxKYSdzErY=" - } + "gson-2.8.9.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.9/gson-2.8.9.pom" + ], + "hash": "sha256-r97W5qaQ+/OtSuZa2jl/CpCl9jCzA9G3QbnJeSb91N4=" } }, - "org.jetbrains.kotlin:kotlin-tooling-metadata": { - "1.6.21": { - "kotlin-tooling-metadata-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-metadata/1.6.21/kotlin-tooling-metadata-1.6.21.jar" - ], - "hash": "sha256-Tsk9BRYGawtki6mHxtPWX2+wZ9wLu6lcHs5h4EKEiOU=" - }, - "kotlin-tooling-metadata-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-metadata/1.6.21/kotlin-tooling-metadata-1.6.21.pom" - ], - "hash": "sha256-uwYH34aI9gLBwvTQmWMz/YsDtpMoaGpud15S9/sNFxg=" - } + "com.google.code.gson:gson:2.8.5": { + "gson-2.8.5.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar" + ], + "hash": "sha256-IzoBSfw2XJ9u29aDz+JmsZvcdzvpjqva9rPJJLSOfYE=" + }, + "gson-2.8.5.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.5/gson-2.8.5.pom" + ], + "hash": "sha256-uDCFV6f8zJLZ/nyM0FmSWLNhKF0uzedontqYhDJVoJI=" } }, - "org.jetbrains.kotlin:kotlin-util-io": { - "1.6.21": { - "kotlin-util-io-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.6.21/kotlin-util-io-1.6.21.jar" - ], - "hash": "sha256-wCxUcFYyGLcDvh5xbi0M6leH01y+tryUbfAMAM1CrNI=" - }, - "kotlin-util-io-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.6.21/kotlin-util-io-1.6.21.pom" - ], - "hash": "sha256-52nyybmRQIYlhKLAoRLIQ3P0fkryrxbQHOSThRMZMhk=" - } + "com.google.code.gson:gson-parent:2.8.9": { + "gson-parent-2.8.9.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/code/gson/gson-parent/2.8.9/gson-parent-2.8.9.pom" + ], + "hash": "sha256-sW4CbmNCfBlyrQ/GhwPsN5sVduQRuknDL6mjGrC7z/s=" } }, - "org.jetbrains.kotlin:kotlin-util-klib": { - "1.6.21": { - "kotlin-util-klib-1.6.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.6.21/kotlin-util-klib-1.6.21.jar" - ], - "hash": "sha256-7iGKnoGAwbNIwawc+K1xj2qseLp+JrUIEyNIT2Q8YbI=" - }, - "kotlin-util-klib-1.6.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.6.21/kotlin-util-klib-1.6.21.pom" - ], - "hash": "sha256-EsegqvZnLbHXgxxHGWV/+b9rEXGbD8h9iNcnXzl/lKs=" - } + "com.google.code.gson:gson-parent:2.8.5": { + "gson-parent-2.8.5.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/google/code/gson/gson-parent/2.8.5/gson-parent-2.8.5.pom" + ], + "hash": "sha256-jx/scrkaceo57Dn193jE0RJLawl8bVWzpQtVSlIjeyc=" } }, - "org.jetbrains.kotlinx:kotlinx-coroutines-core": { - "1.3.3": { - "kotlinx-coroutines-core-1.3.3.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.3/kotlinx-coroutines-core-1.3.3.jar" - ], - "hash": "sha256-91+LDzJgcX1FNZ+elv9mYT+gY+QGUSCwZ8yQcleghmo=" - }, - "kotlinx-coroutines-core-1.3.3.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.3/kotlinx-coroutines-core-1.3.3.pom" - ], - "hash": "sha256-KZmeUobJiKm3K3xt/rmE2fohxRcY9bb5P1Yh5wClN/4=" - } + "com.google.errorprone:error_prone_annotations:2.3.4": { + "error_prone_annotations-2.3.4.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" + ], + "hash": "sha256-uvfW6pfOYGxT4RtoVLpfLOfvXCTd3wr6GNEmC9JbACw=" + }, + "error_prone_annotations-2.3.4.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.pom" + ], + "hash": "sha256-EyZziktPfMrPYHuGahH7hRk+9g9qWUYRh85yZfm+W+0=" } }, - "org.jetbrains.kotlinx:kotlinx-coroutines-core-common": { - "1.3.0": { - "kotlinx-coroutines-core-common-1.3.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-common/1.3.0/kotlinx-coroutines-core-common-1.3.0.jar" - ], - "hash": "sha256-Evof8J9dtFxlGJKP9HmjZPOqEXSRW6JgWkIF7GCwGMM=" - }, - "kotlinx-coroutines-core-common-1.3.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-common/1.3.0/kotlinx-coroutines-core-common-1.3.0.pom" - ], - "hash": "sha256-V2kqeg3vYTmMQz4s87C0p0l4ZpQuBLFFshG1t57CoYM=" - } + "com.google.errorprone:error_prone_parent:2.3.4": { + "error_prone_parent-2.3.4.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/errorprone/error_prone_parent/2.3.4/error_prone_parent-2.3.4.pom" + ], + "hash": "sha256-QElbQ3pg0jmPD9/AVLidnDlKgjR6J0oHIcLpUKQwIYY=" } }, - "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { - "1.5.0": { - "kotlinx-coroutines-core-jvm-1.5.0.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar" - ], - "hash": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=" - }, - "kotlinx-coroutines-core-jvm-1.5.0.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module" - ], - "hash": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=" - }, - "kotlinx-coroutines-core-jvm-1.5.0.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom" - ], - "hash": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" - } + "com.google.guava:failureaccess:1.0.1": { + "failureaccess-1.0.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" + ], + "hash": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=" + }, + "failureaccess-1.0.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.pom" + ], + "hash": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk=" } }, - "org.jetbrains:annotations": { - "13.0": { - "annotations-13.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" - ], - "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" - }, - "annotations-13.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" - ], - "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" - } + "com.google.guava:guava:29.0-jre": { + "guava-29.0-jre.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" + ], + "hash": "sha256-sixftm1h57lSJTHQSy+RW1FY6AqgtA7nKCyL+wew2iU=" + }, + "guava-29.0-jre.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/guava/guava/29.0-jre/guava-29.0-jre.pom" + ], + "hash": "sha256-kCfpNAmJA9KH8bphyLZfAdHR4dp6b7zAS/PeBUQBRCY=" } }, - "org.junit.platform:junit-platform-commons": { - "1.5.2": { - "junit-platform-commons-1.5.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.5.2/junit-platform-commons-1.5.2.jar" - ], - "hash": "sha256-/ESv38DyDIXnGmbnlDKBrvO8Hg/WLS1po2y2kB5oLBA=" - }, - "junit-platform-commons-1.5.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.5.2/junit-platform-commons-1.5.2.pom" - ], - "hash": "sha256-O9DU3tYyqK+MpYf7Z2QBnedxsda8uJrNViQ1oQCfqto=" - } + "com.google.guava:guava-parent:29.0-jre": { + "guava-parent-29.0-jre.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/guava/guava-parent/29.0-jre/guava-parent-29.0-jre.pom" + ], + "hash": "sha256-alf54C9436L0vaNBYGWmRCauG2beIoz24Zbi4ZElU78=" } }, - "org.junit.platform:junit-platform-engine": { - "1.5.2": { - "junit-platform-engine-1.5.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.5.2/junit-platform-engine-1.5.2.jar" - ], - "hash": "sha256-/yC6StjADvF7rvnFVRL5wC2aaHQPfxrAGppqoCOZMfg=" - }, - "junit-platform-engine-1.5.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.5.2/junit-platform-engine-1.5.2.pom" - ], - "hash": "sha256-LUuVVVwh4IXrwd299C156x1VZA3Bk7G35hACQP0vGJ8=" - } + "com.google.guava:guava-parent:26.0-android": { + "guava-parent-26.0-android.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/guava/guava-parent/26.0-android/guava-parent-26.0-android.pom" + ], + "hash": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ=" } }, - "org.opentest4j:opentest4j": { - "1.2.0": { - "opentest4j-1.2.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar" - ], - "hash": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=" - }, - "opentest4j-1.2.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.pom" - ], - "hash": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" - } + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava": { + "listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" + ], + "hash": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=" + }, + "listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom" + ], + "hash": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s=" } }, - "org.postgresql:postgresql": { - "42.2.2": { - "postgresql-42.2.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/postgresql/postgresql/42.2.2/postgresql-42.2.2.jar" - ], - "hash": "sha256-GZZSQCajAnhT85MuhjnvgTgH0bY/4Ugy9BD/+kJ0+nA=" - }, - "postgresql-42.2.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/postgresql/postgresql/42.2.2/postgresql-42.2.2.pom" - ], - "hash": "sha256-NbNCwrBu1Cf6VP/xw3GNQ2HvrcNC7DJM7DnBeKm481Y=" - } + "com.google.j2objc:j2objc-annotations:1.3": { + "j2objc-annotations-1.3.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" + ], + "hash": "sha256-Ia8wySJnvWEiwOC00gzMtmQaN+r5VsZUDsRx1YTmSns=" + }, + "j2objc-annotations-1.3.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.pom" + ], + "hash": "sha256-X6yoJLoRW+5FhzAzff2y/OpGui/XdNQwTtvzD6aj8FU=" } }, - "org.slf4j:slf4j-api": { - "1.8.0-beta4": { - "slf4j-api-1.8.0-beta4.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.8.0-beta4/slf4j-api-1.8.0-beta4.jar" - ], - "hash": "sha256-YCtxIynIS0qDxARk9P39D+QjjFPvOXE5qGcGRznb9OA=" - }, - "slf4j-api-1.8.0-beta4.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.8.0-beta4/slf4j-api-1.8.0-beta4.pom" - ], - "hash": "sha256-+DFtKKzyUrIbHp6O7ZqEwq+9yOBA9p06ELq4E9PYWoU=" - } + "com.natpryce:konfig:1.6.10.0": { + "konfig-1.6.10.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/natpryce/konfig/1.6.10.0/konfig-1.6.10.0.jar" + ], + "hash": "sha256-1Va6vANYRVP1/TzEaJTF6jMxCSv7qufqYm1bjUznk7s=" + }, + "konfig-1.6.10.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/natpryce/konfig/1.6.10.0/konfig-1.6.10.0.pom" + ], + "hash": "sha256-1NTlAHxEbyBlnbIqc2WXwLCFOLy6FL1HEND4VNxxFYg=" } }, - "org.slf4j:slf4j-simple": { - "1.8.0-beta4": { - "slf4j-simple-1.8.0-beta4.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/1.8.0-beta4/slf4j-simple-1.8.0-beta4.jar" - ], - "hash": "sha256-usZqvFtEYt/2Lh4ZqzsKZcFg681WTPJZENsAOo5WnP0=" - }, - "slf4j-simple-1.8.0-beta4.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/1.8.0-beta4/slf4j-simple-1.8.0-beta4.pom" - ], - "hash": "sha256-oXrS6OU00OgZ6o0UIT3nSNRlD/8qJX0+kqE9oxAoe/c=" - } + "com.squareup.okhttp3:logging-interceptor:3.12.3": { + "logging-interceptor-3.12.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okhttp3/logging-interceptor/3.12.3/logging-interceptor-3.12.3.jar" + ], + "hash": "sha256-NNEihOBDYkI+VFe03a74xNhLyNgN1K0ZQ+Y8hQf4FXY=" + }, + "logging-interceptor-3.12.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okhttp3/logging-interceptor/3.12.3/logging-interceptor-3.12.3.pom" + ], + "hash": "sha256-H/YmwXE+Itb1bpLtvctOnBRMszSoT6gAsHAfmW+xp/I=" } }, - "org.spekframework.spek2:spek-dsl-jvm": { - "2.0.9": { - "spek-dsl-jvm-2.0.9.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-dsl-jvm/2.0.9/spek-dsl-jvm-2.0.9.jar" - ], - "hash": "sha256-gohf+MCcJfvntBQS/IoIyCAn8kuE6gH3ZL5jm8CYGeg=" - }, - "spek-dsl-jvm-2.0.9.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-dsl-jvm/2.0.9/spek-dsl-jvm-2.0.9.pom" - ], - "hash": "sha256-q3b2C4rYViJC615qA1SLpiL6xHDFpE6pzckZ34VzgQQ=" - } + "com.squareup.okhttp3:okhttp:3.12.3": { + "okhttp-3.12.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.3/okhttp-3.12.3.jar" + ], + "hash": "sha256-gUWW1U7f2Ut9nYcSvzeYZ9ObCQQo3TjFEG0N7V2jVv8=" + }, + "okhttp-3.12.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.3/okhttp-3.12.3.pom" + ], + "hash": "sha256-xXZHCTgwkLDEfEiizwh2OTvt1Ihmv83hk0NJf/oXuEQ=" } }, - "org.spekframework.spek2:spek-runner-junit5": { - "2.0.9": { - "spek-runner-junit5-2.0.9.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-runner-junit5/2.0.9/spek-runner-junit5-2.0.9.jar" - ], - "hash": "sha256-K0ZmWbdh12OKtc2CX8yC3CrA1FPJ6yAKGUAHG4KkpYY=" - }, - "spek-runner-junit5-2.0.9.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-runner-junit5/2.0.9/spek-runner-junit5-2.0.9.pom" - ], - "hash": "sha256-7GcxgitATmAvUWoOpzJFBWgHoMWg2Kb4SkTjqnfrSjg=" - } + "com.squareup.okhttp3:parent:3.12.3": { + "parent-3.12.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.12.3/parent-3.12.3.pom" + ], + "hash": "sha256-wKYntmtFpWhCEyGoGoLl/Fnit2zV9+X2Em8oKUR4MR4=" } }, - "org.spekframework.spek2:spek-runtime-jvm": { - "2.0.9": { - "spek-runtime-jvm-2.0.9.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-runtime-jvm/2.0.9/spek-runtime-jvm-2.0.9.jar" - ], - "hash": "sha256-dZ18fuF78XJYwySioaGwhusrz2QnnBfh+av1Xsph+nQ=" - }, - "spek-runtime-jvm-2.0.9.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-runtime-jvm/2.0.9/spek-runtime-jvm-2.0.9.pom" - ], - "hash": "sha256-9o3lUgIMgh6TRueEI5uGtT5rR1+2DQRoWsdGILeiKeU=" - } + "com.squareup.okio:okio:1.15.0": { + "okio-1.15.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.15.0/okio-1.15.0.jar" + ], + "hash": "sha256-aT+jGafohDMAYCsgQCO3Z08Qbry1d/LdWAchK2YRi9I=" + }, + "okio-1.15.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.15.0/okio-1.15.0.pom" + ], + "hash": "sha256-8cELFIDRq3X7BRoHsnPjfNolJel+Fgfug+aDO3Dhv84=" } }, - "org.xerial:sqlite-jdbc": { - "3.30.1": { - "sqlite-jdbc-3.30.1.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/xerial/sqlite-jdbc/3.30.1/sqlite-jdbc-3.30.1.jar" - ], - "hash": "sha256-KAA0qJkwABBMWza8XhE5sOgt8d6c/ZUfUpva3q9vRW0=" - }, - "sqlite-jdbc-3.30.1.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/xerial/sqlite-jdbc/3.30.1/sqlite-jdbc-3.30.1.pom" - ], - "hash": "sha256-eGpZKh7AtwPJJVOlE37gAxGb5UmlGTM05t44WrKGb3I=" - } + "com.squareup.okio:okio-parent:1.15.0": { + "okio-parent-1.15.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.15.0/okio-parent-1.15.0.pom" + ], + "hash": "sha256-NOCaPqKqzXId85lHDQWkeuza2AEmmiEhlf+/nSEFbbI=" + } + }, + "com.winterbe:expekt:0.5.0": { + "expekt-0.5.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/winterbe/expekt/0.5.0/expekt-0.5.0.jar" + ], + "hash": "sha256-mKJnQqgnRs1u5m7/u8PK/TInA+onhhf734u5tU3O8Xw=" + }, + "expekt-0.5.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/winterbe/expekt/0.5.0/expekt-0.5.0.pom" + ], + "hash": "sha256-We03cwfzVZIPORBAQ6YBDDrnbKWfKULGxk3Ttg0pEsc=" + } + }, + "de.undercouch:gradle-download-task:4.1.1": { + "gradle-download-task-4.1.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/de/undercouch/gradle-download-task/4.1.1/gradle-download-task-4.1.1.jar" + ], + "hash": "sha256-6wi1cOQI1GRnBecKlJYU1DnqKxFFXxZSqwMw3olU2rk=" + }, + "gradle-download-task-4.1.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/de/undercouch/gradle-download-task/4.1.1/gradle-download-task-4.1.1.pom" + ], + "hash": "sha256-EQnx9xpUJU1ZAzfYudRD+d/AhyjJwdgzVlXMHcyIwLk=" + } + }, + "io.github.classgraph:classgraph:4.8.37": { + "classgraph-4.8.37.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/classgraph/classgraph/4.8.37/classgraph-4.8.37.jar" + ], + "hash": "sha256-fR0+iCjB7vVJ1B7x7Oc9LFxYz7lRs/Igzwzx3SVVgXM=" + }, + "classgraph-4.8.37.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/classgraph/classgraph/4.8.37/classgraph-4.8.37.pom" + ], + "hash": "sha256-pJBV0GEleGZQvjPu13rphQCROLhNOWA7wesu08gIWzQ=" + } + }, + "io.javalin:javalin:3.7.0": { + "javalin-3.7.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/javalin/javalin/3.7.0/javalin-3.7.0.jar" + ], + "hash": "sha256-YGYQPPI2In7IacUllknrErvlwFyH8MHp9y86RGYOZ3I=" + }, + "javalin-3.7.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/javalin/javalin/3.7.0/javalin-3.7.0.pom" + ], + "hash": "sha256-11U3Www5qZiAEH3sDAzdMgDx7qi2npxtFkYdyuR050M=" + } + }, + "javax.servlet:javax.servlet-api:3.1.0": { + "javax.servlet-api-3.1.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar" + ], + "hash": "sha256-r0VrLdQcToLPVPPnQ7xniXPZ/jW9TTBx+gXH5TM7hII=" + }, + "javax.servlet-api-3.1.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.pom" + ], + "hash": "sha256-sxEJ4i6j8t8a15VUMucYo13vUK5sGWmANK+ooM+ekGk=" + } + }, + "joda-time:joda-time:2.12.7": { + "joda-time-2.12.7.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/joda-time/joda-time/2.12.7/joda-time-2.12.7.jar" + ], + "hash": "sha256-OFKCsAWBjPrM2+i9JCmBHn5kF4LyuIkyprj/UdZo9hY=" + }, + "joda-time-2.12.7.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/joda-time/joda-time/2.12.7/joda-time-2.12.7.pom" + ], + "hash": "sha256-hf3b+kfCmf2OzhyT//1H2cLTyQNaM7XbAXswTGd+hCg=" + } + }, + "net.java:jvnet-parent:3": { + "jvnet-parent-3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/java/jvnet-parent/3/jvnet-parent-3.pom" + ], + "hash": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o=" + } + }, + "net.java.dev.jna:jna:5.6.0": { + "jna-5.6.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar", + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar" + ], + "hash": "sha256-VVfiNaiqL5dm1dxgnWeUjyqIMsLXls6p7x1svgs7fq8=" + }, + "jna-5.6.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom", + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom" + ], + "hash": "sha256-X+gbAlWXjyRhbTexBgi3lJil8wc+HZsgONhzaoMfJgg=" + } + }, + "org.apiguardian:apiguardian-api:1.1.0": { + "apiguardian-api-1.1.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar" + ], + "hash": "sha256-qarp/4rj4XoqGPeRdegrFiZ8JG+708qd+7spCwjc/dQ=" + }, + "apiguardian-api-1.1.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.pom" + ], + "hash": "sha256-qUW5y1zZt3sscRhE5lnEPsBw71nZ9Qn6n0wYYbSGJxE=" + } + }, + "org.checkerframework:checker-qual:2.11.1": { + "checker-qual-2.11.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" + ], + "hash": "sha256-AVIkpLHcbebaBTJz1Np9Oc/qIOYwOBafxFrA0dycWTg=" + }, + "checker-qual-2.11.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.pom" + ], + "hash": "sha256-zy4MkNj3V0VfSiWOpglzkFNmO9XaannZvVP5NaR955w=" + } + }, + "org.eclipse.jetty:jetty-client:9.4.25.v20191220": { + "jetty-client-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-client/9.4.25.v20191220/jetty-client-9.4.25.v20191220.jar" + ], + "hash": "sha256-qwUsaY1GjdLLjZ1bcH5VqUQDDZFfT59BrDzc+Cs9xuA=" + }, + "jetty-client-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-client/9.4.25.v20191220/jetty-client-9.4.25.v20191220.pom" + ], + "hash": "sha256-ixNwOlizo3BtJIiemlXDSRu+XY+DZdOoKkvvqcbp+eM=" + } + }, + "org.eclipse.jetty:jetty-http:9.4.25.v20191220": { + "jetty-http-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-http/9.4.25.v20191220/jetty-http-9.4.25.v20191220.jar" + ], + "hash": "sha256-3JxGbw/kvzf9X02iPQFoSwZ63poWAsTzxbaUvMIIR7o=" + }, + "jetty-http-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-http/9.4.25.v20191220/jetty-http-9.4.25.v20191220.pom" + ], + "hash": "sha256-upIlnnZtESJEah+zuPZAXnroxcQS8i6XbLCEyoxhm4c=" + } + }, + "org.eclipse.jetty:jetty-io:9.4.25.v20191220": { + "jetty-io-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-io/9.4.25.v20191220/jetty-io-9.4.25.v20191220.jar" + ], + "hash": "sha256-6cMdtQO2B1/UPxVTGQMAfB6Cn8JF2jQEtuQyfyTvlWk=" + }, + "jetty-io-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-io/9.4.25.v20191220/jetty-io-9.4.25.v20191220.pom" + ], + "hash": "sha256-q1nyQDwSIWhSvBzyhOVhETo9LgsZUmMwmLBfOQW9kYE=" + } + }, + "org.eclipse.jetty:jetty-project:9.4.25.v20191220": { + "jetty-project-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-project/9.4.25.v20191220/jetty-project-9.4.25.v20191220.pom" + ], + "hash": "sha256-sXc6pTwOhm898Oi9iSBTqbSRaiglyCqH073vbdTG0vk=" + } + }, + "org.eclipse.jetty:jetty-security:9.4.25.v20191220": { + "jetty-security-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-security/9.4.25.v20191220/jetty-security-9.4.25.v20191220.jar" + ], + "hash": "sha256-Y3HBY7kqyNb6sIyx2rkdDmkOclZoc9j3g706d5Oj2iY=" + }, + "jetty-security-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-security/9.4.25.v20191220/jetty-security-9.4.25.v20191220.pom" + ], + "hash": "sha256-2j1qeYtoSPOXIPxweDTha+S8pC31qiXCWSK5Mvz+rus=" + } + }, + "org.eclipse.jetty:jetty-server:9.4.25.v20191220": { + "jetty-server-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-server/9.4.25.v20191220/jetty-server-9.4.25.v20191220.jar" + ], + "hash": "sha256-z89tvOS+zuXwZw2bx6do0bc87wyEZj6CrMC5EN8lZfQ=" + }, + "jetty-server-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-server/9.4.25.v20191220/jetty-server-9.4.25.v20191220.pom" + ], + "hash": "sha256-uWOogVUMUf5hOTgJbqfwWZLoGzBBy8faXgb6+8/YZWk=" + } + }, + "org.eclipse.jetty:jetty-servlet:9.4.25.v20191220": { + "jetty-servlet-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-servlet/9.4.25.v20191220/jetty-servlet-9.4.25.v20191220.jar" + ], + "hash": "sha256-LU0t1OZdCWL0/xHTycytMKYmN3fgVpwbVzE4aLNHchw=" + }, + "jetty-servlet-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-servlet/9.4.25.v20191220/jetty-servlet-9.4.25.v20191220.pom" + ], + "hash": "sha256-tw95bbbqAGKLv7ph5aLgMRLjJ10OaIHJN/ARwn/wXos=" + } + }, + "org.eclipse.jetty:jetty-util:9.4.25.v20191220": { + "jetty-util-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-util/9.4.25.v20191220/jetty-util-9.4.25.v20191220.jar" + ], + "hash": "sha256-IjeA1yTBx0Y8MjOoLAdobz/XigIvVg0BAlfb5AKODRQ=" + }, + "jetty-util-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-util/9.4.25.v20191220/jetty-util-9.4.25.v20191220.pom" + ], + "hash": "sha256-iEWSOTxmB1pqb6Z9iY532crIf1lIy10xDPyN5Z7wE8Y=" + } + }, + "org.eclipse.jetty:jetty-webapp:9.4.25.v20191220": { + "jetty-webapp-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-webapp/9.4.25.v20191220/jetty-webapp-9.4.25.v20191220.jar" + ], + "hash": "sha256-qnWB2sNcrVdLA82aFEuibc9DeZ0k7P9enzoGiKJzLvE=" + }, + "jetty-webapp-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-webapp/9.4.25.v20191220/jetty-webapp-9.4.25.v20191220.pom" + ], + "hash": "sha256-HRXbctxeN+O+7iEjd1PsYkXn/sXj/ehUK5Yf/ZB9Ufw=" + } + }, + "org.eclipse.jetty:jetty-xml:9.4.25.v20191220": { + "jetty-xml-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-xml/9.4.25.v20191220/jetty-xml-9.4.25.v20191220.jar" + ], + "hash": "sha256-+xNsUWNTj8WHQuqlbfRIdlu4FvJd43Hasf6u5612tN8=" + }, + "jetty-xml-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-xml/9.4.25.v20191220/jetty-xml-9.4.25.v20191220.pom" + ], + "hash": "sha256-05fGZk1fr9j7VX7NJU4EZP16bakwG60B4C248SAFvrM=" + } + }, + "org.eclipse.jetty.websocket:websocket-api:9.4.25.v20191220": { + "websocket-api-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-api/9.4.25.v20191220/websocket-api-9.4.25.v20191220.jar" + ], + "hash": "sha256-sRCCel9HyDUQMj7hm+h+N7FUDhVTfNAhqTVJ4El0f68=" + }, + "websocket-api-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-api/9.4.25.v20191220/websocket-api-9.4.25.v20191220.pom" + ], + "hash": "sha256-xn/BVBQDGiWCGJri17IMVhDTUvWkf4fSi8+1lJQTWcs=" + } + }, + "org.eclipse.jetty.websocket:websocket-client:9.4.25.v20191220": { + "websocket-client-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-client/9.4.25.v20191220/websocket-client-9.4.25.v20191220.jar" + ], + "hash": "sha256-dIMBH4pyWNlP62P+SjZSCYG8HYXsPdGxSJlX1AcRFOw=" + }, + "websocket-client-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-client/9.4.25.v20191220/websocket-client-9.4.25.v20191220.pom" + ], + "hash": "sha256-AzAQdDEZ7xKiB2CXLdHAu6BwLuiVU5LtP/QdF2RMOs4=" + } + }, + "org.eclipse.jetty.websocket:websocket-common:9.4.25.v20191220": { + "websocket-common-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-common/9.4.25.v20191220/websocket-common-9.4.25.v20191220.jar" + ], + "hash": "sha256-1bvWkUvEIbKOB6MXkc2ZKgBnQX1rX9Bapkq1hDrydzw=" + }, + "websocket-common-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-common/9.4.25.v20191220/websocket-common-9.4.25.v20191220.pom" + ], + "hash": "sha256-ukxD7w1zKeye8StLaAa+D3rHPCQRm8vkvj1m7ebbmlQ=" + } + }, + "org.eclipse.jetty.websocket:websocket-parent:9.4.25.v20191220": { + "websocket-parent-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-parent/9.4.25.v20191220/websocket-parent-9.4.25.v20191220.pom" + ], + "hash": "sha256-OJkMYyevE89u7BknNhRV3vr7uEvMR1bkBaPQVWD7Qzo=" + } + }, + "org.eclipse.jetty.websocket:websocket-server:9.4.25.v20191220": { + "websocket-server-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-server/9.4.25.v20191220/websocket-server-9.4.25.v20191220.jar" + ], + "hash": "sha256-PjO/DwuuXX+/Rx16JWroB4UCkGoxIaCgANkU39F21bo=" + }, + "websocket-server-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-server/9.4.25.v20191220/websocket-server-9.4.25.v20191220.pom" + ], + "hash": "sha256-o9WaXSoxrXskMRuXh2Eog5sNeO+oH4blG6yqelb5MKQ=" + } + }, + "org.eclipse.jetty.websocket:websocket-servlet:9.4.25.v20191220": { + "websocket-servlet-9.4.25.v20191220.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-servlet/9.4.25.v20191220/websocket-servlet-9.4.25.v20191220.jar" + ], + "hash": "sha256-nYoe6bmGzp/JJM3ai9fvzxwLZ0X3qWa1B8x3WU/vIms=" + }, + "websocket-servlet-9.4.25.v20191220.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/websocket/websocket-servlet/9.4.25.v20191220/websocket-servlet-9.4.25.v20191220.pom" + ], + "hash": "sha256-WgVNHE2/17gfAqoOIR+pm7ZHZEn6T48swQGjvPtT7wY=" + } + }, + "org.jetbrains:annotations:23.0.0": { + "annotations-23.0.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/23.0.0/annotations-23.0.0.jar" + ], + "hash": "sha256-ew8ZckCCy/y8ZuWr6iubySzwih6hHhkZM+1DgB6zzQU=" + }, + "annotations-23.0.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/23.0.0/annotations-23.0.0.pom" + ], + "hash": "sha256-yUkPZVEyMo3yz7z990P1P8ORbWwdEENxdabKbjpndxw=" + } + }, + "org.jetbrains:annotations:13.0": { + "annotations-13.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + ], + "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" + }, + "annotations-13.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" + ], + "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" + } + }, + "org.jetbrains.exposed:exposed-core:0.50.1": { + "exposed-core-0.50.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-core/0.50.1/exposed-core-0.50.1.jar" + ], + "hash": "sha256-7GxEwj+Da3NEFyI+Ky2jp/sdEypoEaTJM1AngEUXq8A=" + }, + "exposed-core-0.50.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-core/0.50.1/exposed-core-0.50.1.module" + ], + "hash": "sha256-9JeEbcyuFSWn/NRS2Ed//BxImFnJV6UwRISqjsFAumY=" + }, + "exposed-core-0.50.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-core/0.50.1/exposed-core-0.50.1.pom" + ], + "hash": "sha256-HW3Uxt2pYCn4HW+aYgGDO5Prl/kJXHN9iIQ0Tp4sfDE=" + } + }, + "org.jetbrains.exposed:exposed-dao:0.50.1": { + "exposed-dao-0.50.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-dao/0.50.1/exposed-dao-0.50.1.jar" + ], + "hash": "sha256-fpnRwIETZkjHT6QPdvilfqLPiFVogWDLOJU91WUxCXM=" + }, + "exposed-dao-0.50.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-dao/0.50.1/exposed-dao-0.50.1.module" + ], + "hash": "sha256-mOsYPcGblfmbuh9Zia1He8CSoxpFVzm9rUAHfIwoCjs=" + }, + "exposed-dao-0.50.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-dao/0.50.1/exposed-dao-0.50.1.pom" + ], + "hash": "sha256-w7hJrpLaTMlxL4N/3JzFtjOoJr4JCvDpdgFXPukuDy0=" + } + }, + "org.jetbrains.exposed:exposed-jdbc:0.50.1": { + "exposed-jdbc-0.50.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-jdbc/0.50.1/exposed-jdbc-0.50.1.jar" + ], + "hash": "sha256-P1awsJfx/rkzovIGo/Q4IiiibbWIa133ZU7Ww5pmDGI=" + }, + "exposed-jdbc-0.50.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-jdbc/0.50.1/exposed-jdbc-0.50.1.module" + ], + "hash": "sha256-68KP7F8KnI9XuuhbT4mQp9w4x5M1115sBMcUTSkvPns=" + }, + "exposed-jdbc-0.50.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-jdbc/0.50.1/exposed-jdbc-0.50.1.pom" + ], + "hash": "sha256-Y1Uw/BYvS7kRyknmrsteebD5gQ2iFhtcNGd+Aur8MUg=" + } + }, + "org.jetbrains.exposed:exposed-jodatime:0.50.1": { + "exposed-jodatime-0.50.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-jodatime/0.50.1/exposed-jodatime-0.50.1.jar" + ], + "hash": "sha256-5nun4F887ZbziMXBK+8JdfsOzPpaD8YLoFc3cdDyhOk=" + }, + "exposed-jodatime-0.50.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-jodatime/0.50.1/exposed-jodatime-0.50.1.module" + ], + "hash": "sha256-xSJ+g/T+u6Fu0JftbMrHWXN8sj1mPsUmgc0b7gh5dLk=" + }, + "exposed-jodatime-0.50.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/exposed/exposed-jodatime/0.50.1/exposed-jodatime-0.50.1.pom" + ], + "hash": "sha256-+8jyAjnBFMoa9UG5semZ9yF6///YUxFzA1mA70lPpBg=" + } + }, + "org.jetbrains.intellij.deps:trove4j:1.0.20200330": { + "trove4j-1.0.20200330.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" + ], + "hash": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=" + }, + "trove4j-1.0.20200330.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom" + ], + "hash": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" + } + }, + "org.jetbrains.kotlin:kotlin-android-extensions:1.6.21": { + "kotlin-android-extensions-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.6.21/kotlin-android-extensions-1.6.21.jar" + ], + "hash": "sha256-QY25MO/hevs27AnooGI1615PYAsrXKFIeEIsn5lEbPs=" + }, + "kotlin-android-extensions-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.6.21/kotlin-android-extensions-1.6.21.pom" + ], + "hash": "sha256-oWU+E091vwu2aNklZdd/Qy3lGijcUcNK9eOBS53tCsQ=" + } + }, + "org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.6.21": { + "kotlin-annotation-processing-gradle-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.6.21/kotlin-annotation-processing-gradle-1.6.21.jar" + ], + "hash": "sha256-tA86gSFVnlAjnFXvh2Z6IYBRG7GTQfzIYZh+T4TOYog=" + }, + "kotlin-annotation-processing-gradle-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.6.21/kotlin-annotation-processing-gradle-1.6.21.pom" + ], + "hash": "sha256-MImLOrD3X6VZjABz0qoqV9yctWnJ6Mb/O6UXUopMEHE=" + } + }, + "org.jetbrains.kotlin:kotlin-build-common:1.6.21": { + "kotlin-build-common-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.6.21/kotlin-build-common-1.6.21.jar" + ], + "hash": "sha256-Y+6kBdNeNOggJcL0FW49R1fLjyWUmWIzVspma9IQAZ0=" + }, + "kotlin-build-common-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.6.21/kotlin-build-common-1.6.21.pom" + ], + "hash": "sha256-LRDfBINfB7h6qBoOf+xAbSwawRxU5+CPCOtRGv5btI8=" + } + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable:1.6.21": { + "kotlin-compiler-embeddable-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.21/kotlin-compiler-embeddable-1.6.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.21/kotlin-compiler-embeddable-1.6.21.jar" + ], + "hash": "sha256-X5ZQPNgiqmwg7abHFqVTxBTYAO0Mbn1lX6Gx+/1P7Cs=" + }, + "kotlin-compiler-embeddable-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.21/kotlin-compiler-embeddable-1.6.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.21/kotlin-compiler-embeddable-1.6.21.pom" + ], + "hash": "sha256-wpULrWEPTie9iidbgcDoPIUfGD1gTuH7iRJV9DRa9EE=" + } + }, + "org.jetbrains.kotlin:kotlin-compiler-runner:1.6.21": { + "kotlin-compiler-runner-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.6.21/kotlin-compiler-runner-1.6.21.jar" + ], + "hash": "sha256-IGGw47e3Uwv2cg2LBBC+Eyb7Fs1NrcN+d8Aqz+/loLM=" + }, + "kotlin-compiler-runner-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.6.21/kotlin-compiler-runner-1.6.21.pom" + ], + "hash": "sha256-b0Ofb0jeG+QltfdQlLbqpICL6hG8LjzmtUTG4zOQtSU=" + } + }, + "org.jetbrains.kotlin:kotlin-daemon-client:1.6.21": { + "kotlin-daemon-client-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.6.21/kotlin-daemon-client-1.6.21.jar" + ], + "hash": "sha256-ZHawBzZPVFzmd6ObkzG8IbVqvXtWbwOfUfIVCKOQL6c=" + }, + "kotlin-daemon-client-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.6.21/kotlin-daemon-client-1.6.21.pom" + ], + "hash": "sha256-Q8EnIKTydrNdwEOWEo6bf7Goq9B6FstAnGwNZwaiMWs=" + } + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable:1.6.21": { + "kotlin-daemon-embeddable-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.6.21/kotlin-daemon-embeddable-1.6.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.6.21/kotlin-daemon-embeddable-1.6.21.jar" + ], + "hash": "sha256-UcPsHDLDbWVw2DFC6v4qJCk08WXwt4w4YTdpBfkPLhI=" + }, + "kotlin-daemon-embeddable-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.6.21/kotlin-daemon-embeddable-1.6.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.6.21/kotlin-daemon-embeddable-1.6.21.pom" + ], + "hash": "sha256-tFZZFoP6YHGHAFr0sx0x1DYE4CHWBFUf8PIubdpWK5o=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21": { + "kotlin-gradle-plugin-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.6.21/kotlin-gradle-plugin-1.6.21.jar" + ], + "hash": "sha256-Z1Oi4RJtP5k6lRryrcBrHsTKJxdulsj2Mnd5kBBNFa0=" + }, + "kotlin-gradle-plugin-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.6.21/kotlin-gradle-plugin-1.6.21.pom" + ], + "hash": "sha256-7RX0N/j1aW6NU7mszIYS6cas9Wfbau0E/ymq3F4DpC4=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.6.21": { + "kotlin-gradle-plugin-api-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.6.21/kotlin-gradle-plugin-api-1.6.21.jar" + ], + "hash": "sha256-x0wfF5FsrG1ygGJkmI0V4yGa8kYJB5E3Tq6cua8ufLM=" + }, + "kotlin-gradle-plugin-api-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.6.21/kotlin-gradle-plugin-api-1.6.21.pom" + ], + "hash": "sha256-JL0R1cjnNGMHSBUXnPuyYCAJIxyEE5aTr3ydVtzU3z8=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.6.21": { + "kotlin-gradle-plugin-model-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.6.21/kotlin-gradle-plugin-model-1.6.21.jar" + ], + "hash": "sha256-YFmxxhMI+4WaAedYsrj9Ctr/dBs9+AI1+t6VrWq4loc=" + }, + "kotlin-gradle-plugin-model-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.6.21/kotlin-gradle-plugin-model-1.6.21.pom" + ], + "hash": "sha256-QkLJzsOQLX21n4OMupPDDnMeC10yzDnQ5Ft1gKZUBOo=" + } + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.6.21": { + "kotlin-klib-commonizer-api-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.6.21/kotlin-klib-commonizer-api-1.6.21.jar" + ], + "hash": "sha256-0s9pUu7ziUqs+KnYzx6MZ78hW075AmioyQMYNFMKOHQ=" + }, + "kotlin-klib-commonizer-api-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.6.21/kotlin-klib-commonizer-api-1.6.21.pom" + ], + "hash": "sha256-FICJ7qPCUPClDqxomfFFq5D1mJM8GrT5qsldYXKHJfQ=" + } + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.6.21": { + "kotlin-klib-commonizer-embeddable-1.6.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.6.21/kotlin-klib-commonizer-embeddable-1.6.21.jar" + ], + "hash": "sha256-1jgafq67fkj8p2v1u55fQ/pW3eb9UQXK6N4TXmMoD3A=" + }, + "kotlin-klib-commonizer-embeddable-1.6.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.6.21/kotlin-klib-commonizer-embeddable-1.6.21.pom" + ], + "hash": "sha256-bz7nSBQNsbaG5nqJehadbeQv1nQkHVVA3FK7o2Re/i4=" + } + }, + "org.jetbrains.kotlin:kotlin-native-utils:1.6.21": { + "kotlin-native-utils-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.6.21/kotlin-native-utils-1.6.21.jar" + ], + "hash": "sha256-a9hyJOVq4V/+IQTTx2M9cq9sezWCRa08SnbG1f0NNr8=" + }, + "kotlin-native-utils-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.6.21/kotlin-native-utils-1.6.21.pom" + ], + "hash": "sha256-92q9t+TzvxouyTxiqybO/lKg7UlBAY53w/74BrCXvq8=" + } + }, + "org.jetbrains.kotlin:kotlin-project:1.0.3": { + "kotlin-project-1.0.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-project/1.0.3/kotlin-project-1.0.3.pom" + ], + "hash": "sha256-8lmQMqeX56sX1ozZOy4m0BOUxsYmeoow4v104d/lX7Q=" + } + }, + "org.jetbrains.kotlin:kotlin-project-model:1.6.21": { + "kotlin-project-model-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.6.21/kotlin-project-model-1.6.21.jar" + ], + "hash": "sha256-FLaE+Kc+IpZ4ASS/OB3eAT9YLqIzZ6zgGEWAo4Sa6Ng=" + }, + "kotlin-project-model-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.6.21/kotlin-project-model-1.6.21.pom" + ], + "hash": "sha256-dgKHUWgMZJAf76wyN5AmtNC9I3rdfw873ujtXH51LG4=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.9.21": { + "kotlin-reflect-1.9.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.21/kotlin-reflect-1.9.21.jar" + ], + "hash": "sha256-oTPgSfCk4kllFYJCjhZt5N+slUat9Da2FyEZJV7eUQ8=" + }, + "kotlin-reflect-1.9.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.21/kotlin-reflect-1.9.21.pom" + ], + "hash": "sha256-wu93WbdrxNn29SnS8/vBwxpFl8wVhuc6fXqxbRvbtKk=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.6.21": { + "kotlin-reflect-1.6.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.21/kotlin-reflect-1.6.21.jar" + ], + "hash": "sha256-Hh9XIJ9yOMP9FzWhuTOaVlZVB9yiSfg3G/WdkfYBrqo=" + }, + "kotlin-reflect-1.6.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.21/kotlin-reflect-1.6.21.pom" + ], + "hash": "sha256-2nHh493COI1nVkFnLi8DFtucnSEvlG8CbUoOahM2p/M=" + } + }, + "org.jetbrains.kotlin:kotlin-runtime:1.0.3": { + "kotlin-runtime-1.0.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-runtime/1.0.3/kotlin-runtime-1.0.3.jar" + ], + "hash": "sha256-jBkPOBLPoR0I6wFBuMh36jJC8N3Q6r/llSV0Pq5ifo4=" + }, + "kotlin-runtime-1.0.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-runtime/1.0.3/kotlin-runtime-1.0.3.pom" + ], + "hash": "sha256-LaX+tSEGymCnZiDUaRgktUkbyi7ojMJVcwALCX3lRRc=" + } + }, + "org.jetbrains.kotlin:kotlin-script-runtime:1.6.21": { + "kotlin-script-runtime-1.6.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.6.21/kotlin-script-runtime-1.6.21.jar" + ], + "hash": "sha256-YGw0p+bo5DnpIIdl59dbHbz4Dzg1Pz4puydFbXs3EXE=" + }, + "kotlin-script-runtime-1.6.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.6.21/kotlin-script-runtime-1.6.21.pom" + ], + "hash": "sha256-jVeQOOsdLK0DMFKOKdyMy4rozQ1WClRMXBswqT7O/t4=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-common:1.6.21": { + "kotlin-scripting-common-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.21/kotlin-scripting-common-1.6.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.21/kotlin-scripting-common-1.6.21.jar" + ], + "hash": "sha256-v79fA2I3zTPCX7oz1IlI2ZXbgYbOPwnDGvnCnIDOnK4=" + }, + "kotlin-scripting-common-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.21/kotlin-scripting-common-1.6.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.21/kotlin-scripting-common-1.6.21.pom" + ], + "hash": "sha256-qgWvDyJWUokIeXiduzo6UY4XdWqFsT1UCo3P3wPL+5w=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.6.21": { + "kotlin-scripting-compiler-embeddable-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.6.21/kotlin-scripting-compiler-embeddable-1.6.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.6.21/kotlin-scripting-compiler-embeddable-1.6.21.jar" + ], + "hash": "sha256-XJNzrzrkC3PW12JLJOjOEXIUSV2GLebSz7YYpxGRBrE=" + }, + "kotlin-scripting-compiler-embeddable-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.6.21/kotlin-scripting-compiler-embeddable-1.6.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.6.21/kotlin-scripting-compiler-embeddable-1.6.21.pom" + ], + "hash": "sha256-C32qtju7PFTd0+NF6wzLI3aAv9TDh7Zfzllt/0uEe9s=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.6.21": { + "kotlin-scripting-compiler-impl-embeddable-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.6.21/kotlin-scripting-compiler-impl-embeddable-1.6.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.6.21/kotlin-scripting-compiler-impl-embeddable-1.6.21.jar" + ], + "hash": "sha256-5ARLjeAehGM5I3BvQ82oDTfYu++M6ahm+dlZYt3SBIA=" + }, + "kotlin-scripting-compiler-impl-embeddable-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.6.21/kotlin-scripting-compiler-impl-embeddable-1.6.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.6.21/kotlin-scripting-compiler-impl-embeddable-1.6.21.pom" + ], + "hash": "sha256-gIxqOEi7Xk9sYWmKxYkxIVc8Q9s4FCNW6D3q0EyzhjQ=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm:1.6.21": { + "kotlin-scripting-jvm-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.21/kotlin-scripting-jvm-1.6.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.21/kotlin-scripting-jvm-1.6.21.jar" + ], + "hash": "sha256-ksA/6r9L3ZLVoixRp0i9NAJ0Z8PY9MZftbV0uGsH0QQ=" + }, + "kotlin-scripting-jvm-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.21/kotlin-scripting-jvm-1.6.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.21/kotlin-scripting-jvm-1.6.21.pom" + ], + "hash": "sha256-i5q1hXoYheSL2uAPqosix0sNPkCmNPyeCadG+op1fTI=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib:1.9.21": { + "kotlin-stdlib-1.9.21-all.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21-all.jar" + ], + "hash": "sha256-zsOLwzAucqiq+c3kNrWpBx7gMx4q0F6E2LuJczTX6dQ=" + }, + "kotlin-stdlib-1.9.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21.jar" + ], + "hash": "sha256-O0eTE6tsrqTl4l097oyoDDAsibpz4a9Nr6oQD275KWo=" + }, + "kotlin-stdlib-1.9.21.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21.module" + ], + "hash": "sha256-0wGffw1xkkzkcpjJzEavAkX3UhlxmzXFkV+8x+emk5U=" + }, + "kotlin-stdlib-1.9.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21.pom" + ], + "hash": "sha256-yAfZL3xqobZcBs+HIyNjUE5pD8o/PB4nIGYwoTIv1+A=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib:1.6.21": { + "kotlin-stdlib-1.6.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.6.21/kotlin-stdlib-1.6.21.jar" + ], + "hash": "sha256-c5xSZnK7M3Vzso9jr6gwbrCIsMOgln9W1sifSjASpJI=" + }, + "kotlin-stdlib-1.6.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.6.21/kotlin-stdlib-1.6.21.pom" + ], + "hash": "sha256-zkJyW6Ab2DbNqmZ9l032hL9vjxXng5JjMgraf/quHzQ=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib:1.3.61": { + "kotlin-stdlib-1.3.61.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.pom" + ], + "hash": "sha256-2+W6vNjUPpsIwoRWgLU/wbs+BRxIBYAt3Q7T6OLFCoQ=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib:1.0.3": { + "kotlin-stdlib-1.0.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.0.3/kotlin-stdlib-1.0.3.jar" + ], + "hash": "sha256-ZyHVKFgAZF7WgZP35t0H0srOCd6fO3XN8fMFD0Y1l4E=" + }, + "kotlin-stdlib-1.0.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.0.3/kotlin-stdlib-1.0.3.pom" + ], + "hash": "sha256-QK5yi+5hvXgSHcWjdko/vH1jRYaHuRmI2qXKMhFQNx0=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.9.21": { + "kotlin-stdlib-common-1.9.21.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.21/kotlin-stdlib-common-1.9.21.module" + ], + "hash": "sha256-aNyOhKoF9SeMFlBSR9cTRtNRK57a3UH2E9ZXyUxZmTs=" + }, + "kotlin-stdlib-common-1.9.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.21/kotlin-stdlib-common-1.9.21.pom" + ], + "hash": "sha256-d4C4Z7/lc/y7D9H5Jx3aVAEhfG1or5OTV0zYYglX+K4=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21": { + "kotlin-stdlib-common-1.6.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.21/kotlin-stdlib-common-1.6.21.jar" + ], + "hash": "sha256-GDvsWc2fOhSVexkOjIec8RlL0fEGsKe24cu4eQ0kI2M=" + }, + "kotlin-stdlib-common-1.6.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.21/kotlin-stdlib-common-1.6.21.pom" + ], + "hash": "sha256-W8FW7nP9PC2sil7FSNWBtjMzNUfC/r7Zz2VH//FSa6I=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61": { + "kotlin-stdlib-common-1.3.61.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.pom" + ], + "hash": "sha256-4i2wCbsaYWNtlCVjWYlzbbXj/KSUgJq/JERo3EdM/AQ=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50": { + "kotlin-stdlib-common-1.3.50.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.pom" + ], + "hash": "sha256-tjlv6ALXvHajgUheJmy5dfOy8tPdm/chOqtsonpWH8E=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0": { + "kotlin-stdlib-jdk7-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.0/kotlin-stdlib-jdk7-1.8.0.jar" + ], + "hash": "sha256-TIidHZgD9fLrbBWSprfmI2msdmDJ7uFauhb+wFkWNmY=" + }, + "kotlin-stdlib-jdk7-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.0/kotlin-stdlib-jdk7-1.8.0.pom" + ], + "hash": "sha256-36lkSmrluJjuR1ux9X6DC6H3cK7mycFfgRKqOBGAGEo=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21": { + "kotlin-stdlib-jdk7-1.6.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.21/kotlin-stdlib-jdk7-1.6.21.jar" + ], + "hash": "sha256-8bBjTbuUFyA4RjAguy3UXKJoSfjOKdYlrLDxVp0R2+4=" + }, + "kotlin-stdlib-jdk7-1.6.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.21/kotlin-stdlib-jdk7-1.6.21.pom" + ], + "hash": "sha256-ARzSjruf3oFrA1nVrhCjZ07A/yxTEMBBLCDv6Oo9oG4=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61": { + "kotlin-stdlib-jdk7-1.3.61.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61/kotlin-stdlib-jdk7-1.3.61.jar" + ], + "hash": "sha256-EfSlfj59gfPxUtXc7+Ob13YUtalBJf87EVJrChmsOYk=" + }, + "kotlin-stdlib-jdk7-1.3.61.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61/kotlin-stdlib-jdk7-1.3.61.pom" + ], + "hash": "sha256-xBYICuq9uRGKCO54wo4oVgOM2FhYQipx98Rr8nb2Z6c=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0": { + "kotlin-stdlib-jdk8-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.0/kotlin-stdlib-jdk8-1.8.0.jar" + ], + "hash": "sha256-BbYoBEQbDJoZILa31c9zKaTiS2JYR44ysfBGygGQCUY=" + }, + "kotlin-stdlib-jdk8-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.0/kotlin-stdlib-jdk8-1.8.0.pom" + ], + "hash": "sha256-K7bHVRuXx7oCn5hmWC56oZ1jq/1M1T2j/AxGLzq1/CY=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21": { + "kotlin-stdlib-jdk8-1.6.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.21/kotlin-stdlib-jdk8-1.6.21.jar" + ], + "hash": "sha256-2rRUibR3NtWfzkS4BnbxlHqba8qxD9YOh4qDvYKmlUw=" + }, + "kotlin-stdlib-jdk8-1.6.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.21/kotlin-stdlib-jdk8-1.6.21.pom" + ], + "hash": "sha256-g2oReaCNJJFGl9JhLgO4SKCHyAy0sMoj+c+rJH86dcQ=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61": { + "kotlin-stdlib-jdk8-1.3.61.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61/kotlin-stdlib-jdk8-1.3.61.jar" + ], + "hash": "sha256-ODm6fet5g3XaGAe8Rp0c8xXbemJ1WZ9zMYQ3R3LsOyE=" + }, + "kotlin-stdlib-jdk8-1.3.61.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61/kotlin-stdlib-jdk8-1.3.61.pom" + ], + "hash": "sha256-4wGH5XIMpkC45oaG8g3QJQ3O8Bk9VuVWnDxKYSdzErY=" + } + }, + "org.jetbrains.kotlin:kotlin-tooling-metadata:1.6.21": { + "kotlin-tooling-metadata-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-metadata/1.6.21/kotlin-tooling-metadata-1.6.21.jar" + ], + "hash": "sha256-Tsk9BRYGawtki6mHxtPWX2+wZ9wLu6lcHs5h4EKEiOU=" + }, + "kotlin-tooling-metadata-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-metadata/1.6.21/kotlin-tooling-metadata-1.6.21.pom" + ], + "hash": "sha256-uwYH34aI9gLBwvTQmWMz/YsDtpMoaGpud15S9/sNFxg=" + } + }, + "org.jetbrains.kotlin:kotlin-util-io:1.6.21": { + "kotlin-util-io-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.6.21/kotlin-util-io-1.6.21.jar" + ], + "hash": "sha256-wCxUcFYyGLcDvh5xbi0M6leH01y+tryUbfAMAM1CrNI=" + }, + "kotlin-util-io-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.6.21/kotlin-util-io-1.6.21.pom" + ], + "hash": "sha256-52nyybmRQIYlhKLAoRLIQ3P0fkryrxbQHOSThRMZMhk=" + } + }, + "org.jetbrains.kotlin:kotlin-util-klib:1.6.21": { + "kotlin-util-klib-1.6.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.6.21/kotlin-util-klib-1.6.21.jar" + ], + "hash": "sha256-7iGKnoGAwbNIwawc+K1xj2qseLp+JrUIEyNIT2Q8YbI=" + }, + "kotlin-util-klib-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.6.21/kotlin-util-klib-1.6.21.pom" + ], + "hash": "sha256-EsegqvZnLbHXgxxHGWV/+b9rEXGbD8h9iNcnXzl/lKs=" + } + }, + "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.6.21": { + "org.jetbrains.kotlin.jvm.gradle.plugin-1.6.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.6.21/org.jetbrains.kotlin.jvm.gradle.plugin-1.6.21.pom" + ], + "hash": "sha256-hKJnm90W1DkKJmp58Gzaix+iq38XlowYk0l84ZWOHEQ=" + } + }, + "org.jetbrains.kotlinx:atomicfu:0.23.1": { + "atomicfu-0.23.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.23.1/atomicfu-0.23.1.jar" + ], + "hash": "sha256-fbhmDr5LkbtHjts2FsTjpQulnAfcpRfR4ShMA/6GrFc=" + }, + "atomicfu-0.23.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.23.1/atomicfu-0.23.1.module" + ], + "hash": "sha256-Pokf5ja1UQgZIQD884saObzRwlM+I8Ri/AdkTur8sg8=" + }, + "atomicfu-0.23.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.23.1/atomicfu-0.23.1.pom" + ], + "hash": "sha256-aIt5ABn0F87APmldZWexc7o7skGJVBZi8U/2ZEG1Pas=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.0": { + "kotlinx-coroutines-bom-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.8.0/kotlinx-coroutines-bom-1.8.0.pom" + ], + "hash": "sha256-Ejnp2+E5fNWXE0KVayURvDrOe2QYQuQ3KgiNz6i5rVU=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0": { + "kotlinx-coroutines-core-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.0/kotlinx-coroutines-core-1.8.0.jar" + ], + "hash": "sha256-IKpDS2qTDqZtLmGwDe764J/qPTL5ZA0uDCcTEogOCt0=" + }, + "kotlinx-coroutines-core-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.0/kotlinx-coroutines-core-1.8.0.module" + ], + "hash": "sha256-FE7s1TZd4+MNe0YibAWAUeOZVbXBieMfpMfP+5nWILo=" + }, + "kotlinx-coroutines-core-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.0/kotlinx-coroutines-core-1.8.0.pom" + ], + "hash": "sha256-yglaS/iLR0+trOgzLBCXC3nLgBu/XfBHo5Ov4Ql28yE=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3": { + "kotlinx-coroutines-core-1.3.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.3/kotlinx-coroutines-core-1.3.3.pom" + ], + "hash": "sha256-KZmeUobJiKm3K3xt/rmE2fohxRcY9bb5P1Yh5wClN/4=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.0": { + "kotlinx-coroutines-core-common-1.3.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-common/1.3.0/kotlinx-coroutines-core-common-1.3.0.jar" + ], + "hash": "sha256-Evof8J9dtFxlGJKP9HmjZPOqEXSRW6JgWkIF7GCwGMM=" + }, + "kotlinx-coroutines-core-common-1.3.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-common/1.3.0/kotlinx-coroutines-core-common-1.3.0.pom" + ], + "hash": "sha256-V2kqeg3vYTmMQz4s87C0p0l4ZpQuBLFFshG1t57CoYM=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0": { + "kotlinx-coroutines-core-jvm-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.0/kotlinx-coroutines-core-jvm-1.8.0.jar" + ], + "hash": "sha256-mGCQahk3SQv187BtLw4Q70UeZblbJp8i2vaKPR9QZcU=" + }, + "kotlinx-coroutines-core-jvm-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.0/kotlinx-coroutines-core-jvm-1.8.0.module" + ], + "hash": "sha256-/2oi2kAECTh1HbCuIRd+dlF9vxJqdnlvVCZye/dsEig=" + }, + "kotlinx-coroutines-core-jvm-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.0/kotlinx-coroutines-core-jvm-1.8.0.pom" + ], + "hash": "sha256-pWM6vVNGfOuRYi2B8umCCAh3FF4LduG3V4hxVDSIXQs=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0": { + "kotlinx-coroutines-core-jvm-1.5.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar" + ], + "hash": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module" + ], + "hash": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom" + ], + "hash": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" + } + }, + "org.junit.platform:junit-platform-commons:1.5.2": { + "junit-platform-commons-1.5.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.5.2/junit-platform-commons-1.5.2.jar" + ], + "hash": "sha256-/ESv38DyDIXnGmbnlDKBrvO8Hg/WLS1po2y2kB5oLBA=" + }, + "junit-platform-commons-1.5.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.5.2/junit-platform-commons-1.5.2.pom" + ], + "hash": "sha256-O9DU3tYyqK+MpYf7Z2QBnedxsda8uJrNViQ1oQCfqto=" + } + }, + "org.junit.platform:junit-platform-engine:1.5.2": { + "junit-platform-engine-1.5.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.5.2/junit-platform-engine-1.5.2.jar" + ], + "hash": "sha256-/yC6StjADvF7rvnFVRL5wC2aaHQPfxrAGppqoCOZMfg=" + }, + "junit-platform-engine-1.5.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.5.2/junit-platform-engine-1.5.2.pom" + ], + "hash": "sha256-LUuVVVwh4IXrwd299C156x1VZA3Bk7G35hACQP0vGJ8=" + } + }, + "org.opentest4j:opentest4j:1.2.0": { + "opentest4j-1.2.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar" + ], + "hash": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=" + }, + "opentest4j-1.2.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.pom" + ], + "hash": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" + } + }, + "org.postgresql:pgjdbc-core-parent:1.1.3": { + "pgjdbc-core-parent-1.1.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/postgresql/pgjdbc-core-parent/1.1.3/pgjdbc-core-parent-1.1.3.pom" + ], + "hash": "sha256-n7TAlyDu+QAZ0Oqs7KQ3bF8P7XTmOTGxx+RGA/r6orQ=" + } + }, + "org.postgresql:pgjdbc-versions:1.1.3": { + "pgjdbc-versions-1.1.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/postgresql/pgjdbc-versions/1.1.3/pgjdbc-versions-1.1.3.pom" + ], + "hash": "sha256-6MhIqzxkHBSbTVUp5zVMta7Tn6YFASA03n2uUXQqSQg=" + } + }, + "org.postgresql:postgresql:42.2.2": { + "postgresql-42.2.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/postgresql/postgresql/42.2.2/postgresql-42.2.2.jar" + ], + "hash": "sha256-GZZSQCajAnhT85MuhjnvgTgH0bY/4Ugy9BD/+kJ0+nA=" + }, + "postgresql-42.2.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/postgresql/postgresql/42.2.2/postgresql-42.2.2.pom" + ], + "hash": "sha256-NbNCwrBu1Cf6VP/xw3GNQ2HvrcNC7DJM7DnBeKm481Y=" + } + }, + "org.slf4j:slf4j-api:2.0.9": { + "slf4j-api-2.0.9.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar" + ], + "hash": "sha256-CBiTDcjX3rtAMgRhFpHaWOSdQsULb/z9zgLa23w8K2w=" + }, + "slf4j-api-2.0.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.pom" + ], + "hash": "sha256-nDplT50KoaNLMXjr5TqJx2eS4dgfwelznL6bFhBSM4U=" + } + }, + "org.slf4j:slf4j-bom:2.0.9": { + "slf4j-bom-2.0.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-bom/2.0.9/slf4j-bom-2.0.9.pom" + ], + "hash": "sha256-6u9FhIB9gSxqC2z4OdXkf1DHVDJ3GbnOCB4nHRXaYkM=" + } + }, + "org.slf4j:slf4j-parent:2.0.9": { + "slf4j-parent-2.0.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/2.0.9/slf4j-parent-2.0.9.pom" + ], + "hash": "sha256-wwfwQkFB8cUArlzw04aOSGbLIZ7V45m2bFoHxh6iH9U=" + } + }, + "org.slf4j:slf4j-parent:1.8.0-beta4": { + "slf4j-parent-1.8.0-beta4.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/1.8.0-beta4/slf4j-parent-1.8.0-beta4.pom" + ], + "hash": "sha256-uvujCoPVOpRVAZZEdWKqjNrRRWFcKJMsaku0QcNVMQE=" + } + }, + "org.slf4j:slf4j-simple:1.8.0-beta4": { + "slf4j-simple-1.8.0-beta4.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/1.8.0-beta4/slf4j-simple-1.8.0-beta4.jar" + ], + "hash": "sha256-usZqvFtEYt/2Lh4ZqzsKZcFg681WTPJZENsAOo5WnP0=" + }, + "slf4j-simple-1.8.0-beta4.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/1.8.0-beta4/slf4j-simple-1.8.0-beta4.pom" + ], + "hash": "sha256-oXrS6OU00OgZ6o0UIT3nSNRlD/8qJX0+kqE9oxAoe/c=" + } + }, + "org.sonatype.oss:oss-parent:9": { + "oss-parent-9.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/9/oss-parent-9.pom", + "https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/9/oss-parent-9.pom" + ], + "hash": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + }, + "org.sonatype.oss:oss-parent:7": { + "oss-parent-7.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom", + "https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom" + ], + "hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + } + }, + "org.spekframework.spek2:spek-dsl-jvm:2.0.9": { + "spek-dsl-jvm-2.0.9.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-dsl-jvm/2.0.9/spek-dsl-jvm-2.0.9.jar" + ], + "hash": "sha256-gohf+MCcJfvntBQS/IoIyCAn8kuE6gH3ZL5jm8CYGeg=" + }, + "spek-dsl-jvm-2.0.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-dsl-jvm/2.0.9/spek-dsl-jvm-2.0.9.pom" + ], + "hash": "sha256-q3b2C4rYViJC615qA1SLpiL6xHDFpE6pzckZ34VzgQQ=" + } + }, + "org.spekframework.spek2:spek-runner-junit5:2.0.9": { + "spek-runner-junit5-2.0.9.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-runner-junit5/2.0.9/spek-runner-junit5-2.0.9.jar" + ], + "hash": "sha256-K0ZmWbdh12OKtc2CX8yC3CrA1FPJ6yAKGUAHG4KkpYY=" + }, + "spek-runner-junit5-2.0.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-runner-junit5/2.0.9/spek-runner-junit5-2.0.9.pom" + ], + "hash": "sha256-7GcxgitATmAvUWoOpzJFBWgHoMWg2Kb4SkTjqnfrSjg=" + } + }, + "org.spekframework.spek2:spek-runtime-jvm:2.0.9": { + "spek-runtime-jvm-2.0.9.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-runtime-jvm/2.0.9/spek-runtime-jvm-2.0.9.jar" + ], + "hash": "sha256-dZ18fuF78XJYwySioaGwhusrz2QnnBfh+av1Xsph+nQ=" + }, + "spek-runtime-jvm-2.0.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/spekframework/spek2/spek-runtime-jvm/2.0.9/spek-runtime-jvm-2.0.9.pom" + ], + "hash": "sha256-9o3lUgIMgh6TRueEI5uGtT5rR1+2DQRoWsdGILeiKeU=" + } + }, + "org.xerial:sqlite-jdbc:3.30.1": { + "sqlite-jdbc-3.30.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/xerial/sqlite-jdbc/3.30.1/sqlite-jdbc-3.30.1.jar" + ], + "hash": "sha256-KAA0qJkwABBMWza8XhE5sOgt8d6c/ZUfUpva3q9vRW0=" + }, + "sqlite-jdbc-3.30.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/xerial/sqlite-jdbc/3.30.1/sqlite-jdbc-3.30.1.pom" + ], + "hash": "sha256-eGpZKh7AtwPJJVOlE37gAxGb5UmlGTM05t44WrKGb3I=" } } } \ No newline at end of file diff --git a/fixtures/golden/buildsrc/plugin-in-buildsrc.kotlin.json b/fixtures/golden/buildsrc/plugin-in-buildsrc.kotlin.json index 9b675a2..a62ed46 100644 --- a/fixtures/golden/buildsrc/plugin-in-buildsrc.kotlin.json +++ b/fixtures/golden/buildsrc/plugin-in-buildsrc.kotlin.json @@ -1,674 +1,666 @@ { - "com.gradle.publish:plugin-publish-plugin": { - "1.2.1": { - "plugin-publish-plugin-1.2.1.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.jar" - ], - "hash": "sha256-KY8MLpeVMhcaBaQWAyY3M7ZfiRE9ToCczQ4mmQFJ3hg=" - }, - "plugin-publish-plugin-1.2.1.module": { - "urls": [ - "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.module" - ], - "hash": "sha256-w98uuag1ZdO2MVDYa0344o9mG1XOzdRJJ+RpMxA2yxk=" - }, - "plugin-publish-plugin-1.2.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.pom" - ], - "hash": "sha256-E6X+iu2+Rs/b6hLp/NcJemKygqpqtMkIZWuWzpoqX6M=" - } - } - }, - "org.apache.maven:maven-model": { - "3.6.3": { - "maven-model-3.6.3.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/maven/maven-model/3.6.3/maven-model-3.6.3.jar" - ], - "hash": "sha256-F87x9Y4UbvDX2elrO5LZih1v19KzKIulOOj/Hg2RYM8=" - }, - "maven-model-3.6.3.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/maven/maven-model/3.6.3/maven-model-3.6.3.pom" - ], - "hash": "sha256-fHIOjLA9KFxxzW4zTZyeWWBivdMQ7grRX1xHmpkxVPA=" - } - } - }, - "org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin": { - "4.2.1": { - "org.gradle.kotlin.kotlin-dsl.gradle.plugin-4.2.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/gradle/kotlin/kotlin-dsl/org.gradle.kotlin.kotlin-dsl.gradle.plugin/4.2.1/org.gradle.kotlin.kotlin-dsl.gradle.plugin-4.2.1.pom" - ], - "hash": "sha256-MR/57KF7D2ycyBBOu4jHPTikmFoEiLAWcLwr4J5aIyA=" - } - } - }, - "org.gradle.kotlin:gradle-kotlin-dsl-plugins": { - "4.2.1": { - "gradle-kotlin-dsl-plugins-4.2.1.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/gradle/kotlin/gradle-kotlin-dsl-plugins/4.2.1/gradle-kotlin-dsl-plugins-4.2.1.jar" - ], - "hash": "sha256-UU8yyenA0IAji9/8ASH0PRYEnFeFqadeuGYMTrplj/o=" - }, - "gradle-kotlin-dsl-plugins-4.2.1.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/gradle/kotlin/gradle-kotlin-dsl-plugins/4.2.1/gradle-kotlin-dsl-plugins-4.2.1.module" - ], - "hash": "sha256-0w8XMxUzcV3LgIG4YvZjGUf4YPHLjgWjJcexiIz/KgA=" - }, - "gradle-kotlin-dsl-plugins-4.2.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/gradle/kotlin/gradle-kotlin-dsl-plugins/4.2.1/gradle-kotlin-dsl-plugins-4.2.1.pom" - ], - "hash": "sha256-lMOWsjFHh+ZXZg516zxtQKFdolRygvFMJLsiXKuzJaI=" - } - } - }, - "org.jetbrains.intellij.deps:trove4j": { - "1.0.20200330": { - "trove4j-1.0.20200330.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" - ], - "hash": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=" - }, - "trove4j-1.0.20200330.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom" - ], - "hash": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" - } - } - }, - "org.jetbrains.kotlin:kotlin-android-extensions": { - "1.9.20": { - "kotlin-android-extensions-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.9.20/kotlin-android-extensions-1.9.20.jar" - ], - "hash": "sha256-t3EjlGnwrwfhgPdGz95qeVbCtiYeGuIOWx1iCg3Sm/8=" - }, - "kotlin-android-extensions-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.9.20/kotlin-android-extensions-1.9.20.pom" - ], - "hash": "sha256-DXrbht5Z1d44B+3tGwlbyeFLAK3x3CUKX2LJw/VBg+Y=" - } - } - }, - "org.jetbrains.kotlin:kotlin-assignment": { - "1.9.20": { - "kotlin-assignment-1.9.20-gradle81.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-assignment/1.9.20/kotlin-assignment-1.9.20-gradle81.jar" - ], - "hash": "sha256-ztlN7cdMOUOlaRsY6tTRZzLwvbQQeLAoJND8foLj/uI=" - }, - "kotlin-assignment-1.9.20.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-assignment/1.9.20/kotlin-assignment-1.9.20.module" - ], - "hash": "sha256-KfAzaty3JPax04XG7SfYv1FikHMXu8gvuaTjGJ8D5Gc=" - }, - "kotlin-assignment-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-assignment/1.9.20/kotlin-assignment-1.9.20.pom" - ], - "hash": "sha256-MjMxOtdq5rpN2Npal4hCduW0aik7RJWLw1LKAdRm9+0=" - } - } - }, - "org.jetbrains.kotlin:kotlin-assignment-compiler-plugin-embeddable": { - "1.9.20": { - "kotlin-assignment-compiler-plugin-embeddable-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-assignment-compiler-plugin-embeddable/1.9.20/kotlin-assignment-compiler-plugin-embeddable-1.9.20.jar" - ], - "hash": "sha256-xiG4V/X+ExIZ2FduGR0G8tt6bfgPoUnQRsMuuiaQat0=" - }, - "kotlin-assignment-compiler-plugin-embeddable-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-assignment-compiler-plugin-embeddable/1.9.20/kotlin-assignment-compiler-plugin-embeddable-1.9.20.pom" - ], - "hash": "sha256-Df0Ud50u4/gHw+/3IBxl0jNX87jMEYK0sFbkdJX9UoE=" - } - } - }, - "org.jetbrains.kotlin:kotlin-build-tools-api": { - "1.9.20": { - "kotlin-build-tools-api-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.20/kotlin-build-tools-api-1.9.20.jar" - ], - "hash": "sha256-xyKUjFaDUs3BncioskXRSq5QfU3P/eansmxTXEcsGxc=" - }, - "kotlin-build-tools-api-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.20/kotlin-build-tools-api-1.9.20.pom" - ], - "hash": "sha256-P7w3D4WHo9joDGny3M1lxVFzu0S505QuFVNrzjzNwaY=" - } - } - }, - "org.jetbrains.kotlin:kotlin-compiler-embeddable": { - "1.9.20": { - "kotlin-compiler-embeddable-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.20/kotlin-compiler-embeddable-1.9.20.jar" - ], - "hash": "sha256-olAk/l2oRA3gGvBFxPy5VKIvB4c47AJhYIXwz8V7JwI=" - }, - "kotlin-compiler-embeddable-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.20/kotlin-compiler-embeddable-1.9.20.pom" - ], - "hash": "sha256-x9jfyJ5iFEJQRQa5SS+3YxF0BhIM6RByvAZ/+W0mTCM=" - } - } - }, - "org.jetbrains.kotlin:kotlin-compiler-runner": { - "1.9.20": { - "kotlin-compiler-runner-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.20/kotlin-compiler-runner-1.9.20.jar" - ], - "hash": "sha256-SXacBG+NOSZUpKtSr3lUVb1B6I2Dkq6rkCjw7dXo1Qs=" - }, - "kotlin-compiler-runner-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.20/kotlin-compiler-runner-1.9.20.pom" - ], - "hash": "sha256-XKJ9myEE4yMOf4Grqm62Eb85htdKAOVl4l7rGGENDYo=" - } - } - }, - "org.jetbrains.kotlin:kotlin-daemon-client": { - "1.9.20": { - "kotlin-daemon-client-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.20/kotlin-daemon-client-1.9.20.jar" - ], - "hash": "sha256-WCIwy8/WXTa5S8nRJ/kAJLjPF9+kpn72qSnxTGwnZhw=" - }, - "kotlin-daemon-client-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.20/kotlin-daemon-client-1.9.20.pom" - ], - "hash": "sha256-0qQYFjppSNcrBMvjUgOi4wXhw41WgJAXCshy+IH6k4E=" - } - } - }, - "org.jetbrains.kotlin:kotlin-daemon-embeddable": { - "1.9.20": { - "kotlin-daemon-embeddable-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.20/kotlin-daemon-embeddable-1.9.20.jar" - ], - "hash": "sha256-qTnLXW7ip1jJKFvZ8yhoJL6r4S2aS19J94TQvKMp3qU=" - }, - "kotlin-daemon-embeddable-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.20/kotlin-daemon-embeddable-1.9.20.pom" - ], - "hash": "sha256-zYkt52nMILl5jiJTjZljB0sF8cRI8uAat3VH7rZZfUE=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin": { - "1.9.20": { - "kotlin-gradle-plugin-1.9.20-gradle81.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.20/kotlin-gradle-plugin-1.9.20-gradle81.jar" - ], - "hash": "sha256-BJEPymUvjb6ASknI5ylxv2QdA82LRaBlukzhDGWE6qw=" - }, - "kotlin-gradle-plugin-1.9.20.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.20/kotlin-gradle-plugin-1.9.20.module" - ], - "hash": "sha256-VVJcPgNpJSnI8ZZgd4mtyO6xogfqEx+NnBwytJf35jY=" - }, - "kotlin-gradle-plugin-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.20/kotlin-gradle-plugin-1.9.20.pom" - ], - "hash": "sha256-HOzt6DD+6ar1QulF/AQWZ1FYqlVgzGKYlcsvd3FBiTY=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-annotations": { - "1.9.20": { - "kotlin-gradle-plugin-annotations-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.20/kotlin-gradle-plugin-annotations-1.9.20.jar" - ], - "hash": "sha256-Klw2IuJGhYTRq32rOs2P+2BAO2N90GA69nXibToFQyk=" - }, - "kotlin-gradle-plugin-annotations-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.20/kotlin-gradle-plugin-annotations-1.9.20.pom" - ], - "hash": "sha256-9L+gqiwjkuTyPia38aQZhlvrdqAW2BgIcrsIbMADWU4=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-api": { - "1.9.20": { - "kotlin-gradle-plugin-api-1.9.20-gradle81.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.20/kotlin-gradle-plugin-api-1.9.20-gradle81.jar" - ], - "hash": "sha256-KHwmdl+GkuXrVQWFQSaBnPuwx9XUm75fRXcUJ+oZkT0=" - }, - "kotlin-gradle-plugin-api-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.20/kotlin-gradle-plugin-api-1.9.20.jar" - ], - "hash": "sha256-KHwmdl+GkuXrVQWFQSaBnPuwx9XUm75fRXcUJ+oZkT0=" - }, - "kotlin-gradle-plugin-api-1.9.20.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.20/kotlin-gradle-plugin-api-1.9.20.module" - ], - "hash": "sha256-SD51d/Tp4tPKF/aqZPRlXUYDwrHQ5t/VlRVS70DV10U=" - }, - "kotlin-gradle-plugin-api-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.20/kotlin-gradle-plugin-api-1.9.20.pom" - ], - "hash": "sha256-oZKj3Ob7gpwnvQgdggXYmJlp1R/D7J5tctzERt6H9ys=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-idea": { - "1.9.20": { - "kotlin-gradle-plugin-idea-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.20/kotlin-gradle-plugin-idea-1.9.20.jar" - ], - "hash": "sha256-jRr4djLZUUjxIqn6CuKQPBnub6t9AeAX924NLJoCLCA=" - }, - "kotlin-gradle-plugin-idea-1.9.20.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.20/kotlin-gradle-plugin-idea-1.9.20.module" - ], - "hash": "sha256-Hms5OB86T5sUl0VOgl+JQuDJxuw9wbii/WNuI3GV+Ks=" - }, - "kotlin-gradle-plugin-idea-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.20/kotlin-gradle-plugin-idea-1.9.20.pom" - ], - "hash": "sha256-m6hUoroB+w9/7fl8b5P2W42otQ6jv1OQofuoDmQqMic=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto": { - "1.9.20": { - "kotlin-gradle-plugin-idea-proto-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.20/kotlin-gradle-plugin-idea-proto-1.9.20.jar" - ], - "hash": "sha256-xnsNiEn+vdmpZO2gvRZ8FnxNBWyo3TiSQdkuHXY8lJA=" - }, - "kotlin-gradle-plugin-idea-proto-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.20/kotlin-gradle-plugin-idea-proto-1.9.20.pom" - ], - "hash": "sha256-1AENSzu56SQPPeDnjo31pYEjbzPWLoBwyP3yUxdwNZQ=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-model": { - "1.9.20": { - "kotlin-gradle-plugin-model-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.20/kotlin-gradle-plugin-model-1.9.20.jar" - ], - "hash": "sha256-f5MPDkVLdYGPX4l2ulFfOuyIdnGl/oU4Csl/BdqZhqc=" - }, - "kotlin-gradle-plugin-model-1.9.20.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.20/kotlin-gradle-plugin-model-1.9.20.module" - ], - "hash": "sha256-OZaqq5tUbM9FWxyvDDFuoy6c5kb+tU6XOvTWn7YF8kg=" - }, - "kotlin-gradle-plugin-model-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.20/kotlin-gradle-plugin-model-1.9.20.pom" - ], - "hash": "sha256-jXpoeFaRP5ydn96r2/hg6cEZ65WtmdXbXYisIya1FJs=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugins-bom": { - "1.9.20": { - "kotlin-gradle-plugins-bom-1.9.20.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.20/kotlin-gradle-plugins-bom-1.9.20.module" - ], - "hash": "sha256-dyD4Rc/jGaoablsjOH5pIKNema5CGMoPb24H/RcTCTw=" - }, - "kotlin-gradle-plugins-bom-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.20/kotlin-gradle-plugins-bom-1.9.20.pom" - ], - "hash": "sha256-bzukKj6YFwAoTJVhRu9NcWuJrb5dgDq5JVPewhY0QzA=" - } - } - }, - "org.jetbrains.kotlin:kotlin-klib-commonizer-api": { - "1.9.20": { - "kotlin-klib-commonizer-api-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.20/kotlin-klib-commonizer-api-1.9.20.jar" - ], - "hash": "sha256-ibYmCCiVMELjEKUlkqpbWV9fibZBzGo9OoFV75LYj/4=" - }, - "kotlin-klib-commonizer-api-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.20/kotlin-klib-commonizer-api-1.9.20.pom" - ], - "hash": "sha256-l4D9xWeaTbGhcPpSEPVhzrKtRrb4Kchqwx/HjPkpbGU=" - } - } - }, - "org.jetbrains.kotlin:kotlin-native-utils": { - "1.9.20": { - "kotlin-native-utils-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.9.20/kotlin-native-utils-1.9.20.jar" - ], - "hash": "sha256-sPkrySU6kH8M4oUyhkP+ijbCftSUtcWRnuCcKSbY6NI=" - }, - "kotlin-native-utils-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.9.20/kotlin-native-utils-1.9.20.pom" - ], - "hash": "sha256-8+9ZeAaTG0DO7YHZG2nnzHp4Z+zO2S20S7/mEkd2xbw=" - } - } - }, - "org.jetbrains.kotlin:kotlin-project-model": { - "1.9.20": { - "kotlin-project-model-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.9.20/kotlin-project-model-1.9.20.jar" - ], - "hash": "sha256-JhqbQOJA4lmsNZwWk4AC7MbAhDSlxuXlv/7iQqPFAhg=" - }, - "kotlin-project-model-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.9.20/kotlin-project-model-1.9.20.pom" - ], - "hash": "sha256-4FhEBdW+70QKZrKQ1uTA3UPqll3DW3cMHqMmSofSczw=" - } - } - }, - "org.jetbrains.kotlin:kotlin-reflect": { - "1.9.20": { - "kotlin-reflect-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.9.20/kotlin-reflect-1.9.20.jar" - ], - "hash": "sha256-SbZvmonVD9KVTC6K6sgOT0iLCgkyKiXvrWJhV2cT3A8=" - }, - "kotlin-reflect-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.9.20/kotlin-reflect-1.9.20.pom" - ], - "hash": "sha256-lCtehgLTF+wTZS8cAiIFK7kIF/KM9v6dRxEvCbPo5n0=" - } + "com.gradle.publish:plugin-publish-plugin:1.2.1": { + "plugin-publish-plugin-1.2.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.jar" + ], + "hash": "sha256-KY8MLpeVMhcaBaQWAyY3M7ZfiRE9ToCczQ4mmQFJ3hg=" }, - "1.6.10": { - "kotlin-reflect-1.6.10.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.jar" - ], - "hash": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=" - }, - "kotlin-reflect-1.6.10.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.pom" - ], - "hash": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak=" - } + "plugin-publish-plugin-1.2.1.module": { + "urls": [ + "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.module" + ], + "hash": "sha256-w98uuag1ZdO2MVDYa0344o9mG1XOzdRJJ+RpMxA2yxk=" + }, + "plugin-publish-plugin-1.2.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.pom" + ], + "hash": "sha256-E6X+iu2+Rs/b6hLp/NcJemKygqpqtMkIZWuWzpoqX6M=" } }, - "org.jetbrains.kotlin:kotlin-sam-with-receiver": { - "1.9.20": { - "kotlin-sam-with-receiver-1.9.20-gradle81.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.9.20/kotlin-sam-with-receiver-1.9.20-gradle81.jar" - ], - "hash": "sha256-MDCZRpW7ZaAXvjPiQzLpKtDTwdkLyifA9KL3lStV74M=" - }, - "kotlin-sam-with-receiver-1.9.20.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.9.20/kotlin-sam-with-receiver-1.9.20.module" - ], - "hash": "sha256-goKuJEBF/oGCFBPZSL8mp+/ncYNCGxcOZVj+TC3ORMA=" - }, - "kotlin-sam-with-receiver-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.9.20/kotlin-sam-with-receiver-1.9.20.pom" - ], - "hash": "sha256-IV1w6BR2xN00PCyRSi9WEhODOXvM4Z8ITLsCqpK2kGM=" - } + "org.apache:apache:21": { + "apache-21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/apache/21/apache-21.pom" + ], + "hash": "sha256-rxDBCNoBTxfK+se1KytLWjocGCZfoq+XoyXZFDU3s4A=" } }, - "org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin-embeddable": { - "1.9.20": { - "kotlin-sam-with-receiver-compiler-plugin-embeddable-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver-compiler-plugin-embeddable/1.9.20/kotlin-sam-with-receiver-compiler-plugin-embeddable-1.9.20.jar" - ], - "hash": "sha256-02IXChzBUxYPDLIDjIRBEDS1bAVamzFvMsC3txaMoPI=" - }, - "kotlin-sam-with-receiver-compiler-plugin-embeddable-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver-compiler-plugin-embeddable/1.9.20/kotlin-sam-with-receiver-compiler-plugin-embeddable-1.9.20.pom" - ], - "hash": "sha256-lo97qpSJb+esipLfy16Tfd22iSIJudwCJUNUugrXf2A=" - } + "org.apache.maven:maven:3.6.3": { + "maven-3.6.3.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven/3.6.3/maven-3.6.3.pom" + ], + "hash": "sha256-0thiRepmFJvBTS3XK7uWH5ZN1li4CaBXMlLAZTHu7BY=" } }, - "org.jetbrains.kotlin:kotlin-script-runtime": { - "1.9.20": { - "kotlin-script-runtime-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.20/kotlin-script-runtime-1.9.20.jar" - ], - "hash": "sha256-ompiVqdvdmq4us20CbP4yUDZmXEqjoiGQlK2eNZrq54=" - }, - "kotlin-script-runtime-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.20/kotlin-script-runtime-1.9.20.pom" - ], - "hash": "sha256-vNIn0pN0LFEaJLssVoItlfljivUTW5c+fNo+inZoZXk=" - } + "org.apache.maven:maven-model:3.6.3": { + "maven-model-3.6.3.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven-model/3.6.3/maven-model-3.6.3.jar" + ], + "hash": "sha256-F87x9Y4UbvDX2elrO5LZih1v19KzKIulOOj/Hg2RYM8=" + }, + "maven-model-3.6.3.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven-model/3.6.3/maven-model-3.6.3.pom" + ], + "hash": "sha256-fHIOjLA9KFxxzW4zTZyeWWBivdMQ7grRX1xHmpkxVPA=" } }, - "org.jetbrains.kotlin:kotlin-scripting-common": { - "1.9.20": { - "kotlin-scripting-common-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.20/kotlin-scripting-common-1.9.20.jar" - ], - "hash": "sha256-WqCEd8tz95J0E67Gg6SqOz+Z6HvgYwJVzml0UqGkLWU=" - }, - "kotlin-scripting-common-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.20/kotlin-scripting-common-1.9.20.pom" - ], - "hash": "sha256-GH6fO3S9VqCDZJgYx7mkD4vCP2IBKwinvJnD+ohr/wM=" - } + "org.apache.maven:maven-parent:33": { + "maven-parent-33.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven-parent/33/maven-parent-33.pom" + ], + "hash": "sha256-OFbj/NFpUC1fEv4kUmBOv2x8Al8VZWv6VY6pntKdc+o=" } }, - "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { - "1.9.20": { - "kotlin-scripting-compiler-embeddable-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.20/kotlin-scripting-compiler-embeddable-1.9.20.jar" - ], - "hash": "sha256-IYHdDE1SxvaWrZ8Xk0IzeQ9NaCNLFBjWN2/aflw3TE4=" - }, - "kotlin-scripting-compiler-embeddable-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.20/kotlin-scripting-compiler-embeddable-1.9.20.pom" - ], - "hash": "sha256-JmEo2/Q1466/7mU1fd4QLJ7ZKd/rCQHla+eMoUjFc/c=" - } + "org.gradle.kotlin:gradle-kotlin-dsl-plugins:4.3.0": { + "gradle-kotlin-dsl-plugins-4.3.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/gradle/kotlin/gradle-kotlin-dsl-plugins/4.3.0/gradle-kotlin-dsl-plugins-4.3.0.jar" + ], + "hash": "sha256-+IsyeBRxXRfiD4to/wCbmrGo+8GjyRLDO4TfucEVn78=" + }, + "gradle-kotlin-dsl-plugins-4.3.0.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/gradle/kotlin/gradle-kotlin-dsl-plugins/4.3.0/gradle-kotlin-dsl-plugins-4.3.0.module" + ], + "hash": "sha256-wDF/LfYjmTSfi1NHpsZme9yjHMt1meBsKG/IOPxM7c0=" + }, + "gradle-kotlin-dsl-plugins-4.3.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/gradle/kotlin/gradle-kotlin-dsl-plugins/4.3.0/gradle-kotlin-dsl-plugins-4.3.0.pom" + ], + "hash": "sha256-d1G9LyTDRdGbRhGy5+1NZfT1YIA2iuNqpyT5X63VbDw=" } }, - "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { - "1.9.20": { - "kotlin-scripting-compiler-impl-embeddable-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.20/kotlin-scripting-compiler-impl-embeddable-1.9.20.jar" - ], - "hash": "sha256-3Jq29pxZKtHx0uK5lLl1CdDuCUgL6mvHce7u8wceuBc=" - }, - "kotlin-scripting-compiler-impl-embeddable-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.20/kotlin-scripting-compiler-impl-embeddable-1.9.20.pom" - ], - "hash": "sha256-bbowA+jK3LFJkt/xNOhmyrWQXquA4nAj3kHCY4WDgZg=" - } + "org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:4.3.0": { + "org.gradle.kotlin.kotlin-dsl.gradle.plugin-4.3.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/gradle/kotlin/kotlin-dsl/org.gradle.kotlin.kotlin-dsl.gradle.plugin/4.3.0/org.gradle.kotlin.kotlin-dsl.gradle.plugin-4.3.0.pom" + ], + "hash": "sha256-hgR9KoSpaXsVkXDj1rLL9Cpv5UCQTYdZzJ8JUsmUnXw=" } }, - "org.jetbrains.kotlin:kotlin-scripting-jvm": { - "1.9.20": { - "kotlin-scripting-jvm-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.20/kotlin-scripting-jvm-1.9.20.jar" - ], - "hash": "sha256-gJ9zvdTdd2auHvLO2WiJbOnAPWpf5t5vZ5l3iFH3W9M=" - }, - "kotlin-scripting-jvm-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.20/kotlin-scripting-jvm-1.9.20.pom" - ], - "hash": "sha256-v4gcbi/Go36p0J/+mMoHLfzajcgoj9ibJMrcYLFNt14=" - } + "org.jetbrains:annotations:13.0": { + "annotations-13.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + ], + "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" + }, + "annotations-13.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13.0.pom" + ], + "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" } }, - "org.jetbrains.kotlin:kotlin-stdlib": { - "1.9.20": { - "kotlin-stdlib-1.9.20-all.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.9.20/kotlin-stdlib-1.9.20-all.jar" - ], - "hash": "sha256-zsOLwzAucqiq+c3kNrWpBx7gMx4q0F6E2LuJczTX6dQ=" - }, - "kotlin-stdlib-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.9.20/kotlin-stdlib-1.9.20.jar" - ], - "hash": "sha256-KKNbzf9G2GT4DzRqYX5IYoSyCNFzeMQZAN+x3pWpDmw=" - }, - "kotlin-stdlib-1.9.20.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.9.20/kotlin-stdlib-1.9.20.module" - ], - "hash": "sha256-3Mql0xVHD6s5IFAohru4Xy2myGECxl2cBEEFRO7bIBk=" - }, - "kotlin-stdlib-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.9.20/kotlin-stdlib-1.9.20.pom" - ], - "hash": "sha256-43IWpzLI6Bqf0FtN2JLDDKwMrXtOP9ovlmP0jogHQcA=" - } + "org.jetbrains.intellij.deps:trove4j:1.0.20200330": { + "trove4j-1.0.20200330.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" + ], + "hash": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=" + }, + "trove4j-1.0.20200330.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom" + ], + "hash": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" } }, - "org.jetbrains.kotlin:kotlin-tooling-core": { - "1.9.20": { - "kotlin-tooling-core-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.20/kotlin-tooling-core-1.9.20.jar" - ], - "hash": "sha256-iTjrl+NjINqj5vsqYP0qBbIy/0pVcXPFAZ8EW4gy2fQ=" - }, - "kotlin-tooling-core-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.20/kotlin-tooling-core-1.9.20.pom" - ], - "hash": "sha256-c9r0kUA5KLFcSTCVeuABrPBPazpLwo/kqld37wlwntY=" - } + "org.jetbrains.kotlin:kotlin-android-extensions:1.9.22": { + "kotlin-android-extensions-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.9.22/kotlin-android-extensions-1.9.22.jar" + ], + "hash": "sha256-Hl6IFkKpnduPbRPmmVoIwZK8OEGHOWZj2ER8CB2H4k8=" + }, + "kotlin-android-extensions-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.9.22/kotlin-android-extensions-1.9.22.pom" + ], + "hash": "sha256-lEt8+zPgpvtoRVkEjwKMuWMmyTKiRdXLAhQ7zSwDEVk=" } }, - "org.jetbrains.kotlin:kotlin-util-io": { - "1.9.20": { - "kotlin-util-io-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.9.20/kotlin-util-io-1.9.20.jar" - ], - "hash": "sha256-x0/aqunXn98DMn7oc4JR4CSySyTYtTd6GkKaw7f3LMo=" - }, - "kotlin-util-io-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.9.20/kotlin-util-io-1.9.20.pom" - ], - "hash": "sha256-rbH0NbMLIlY6oK5X0/Y5YkWYhIennq+uOOZnb9ggKok=" - } + "org.jetbrains.kotlin:kotlin-assignment:1.9.22": { + "kotlin-assignment-1.9.22-gradle82.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-assignment/1.9.22/kotlin-assignment-1.9.22-gradle82.jar" + ], + "hash": "sha256-SbgHX6DiGLoRuhim9yUE38XwOZQovs8Ta9yHHceBgMU=" + }, + "kotlin-assignment-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-assignment/1.9.22/kotlin-assignment-1.9.22.module" + ], + "hash": "sha256-bxIe+E4ozzMG/eTDHVXC2D14RPJLDnslZfh7Apn7sx0=" + }, + "kotlin-assignment-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-assignment/1.9.22/kotlin-assignment-1.9.22.pom" + ], + "hash": "sha256-9kQYoM3bm9hQ96/CasjyPon7ptlgSNqnNZVWJ5AgbwA=" } }, - "org.jetbrains.kotlin:kotlin-util-klib": { - "1.9.20": { - "kotlin-util-klib-1.9.20.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.9.20/kotlin-util-klib-1.9.20.jar" - ], - "hash": "sha256-xFPv4noGMtFhUb/fAIShK4zAGf0ss0LiuIkqzM5OkbI=" - }, - "kotlin-util-klib-1.9.20.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.9.20/kotlin-util-klib-1.9.20.pom" - ], - "hash": "sha256-Vuv6PpLwCiXzwL/tyaYxCV4oYsj/m6WY+T5pGkCe7c0=" - } + "org.jetbrains.kotlin:kotlin-assignment-compiler-plugin-embeddable:1.9.22": { + "kotlin-assignment-compiler-plugin-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-assignment-compiler-plugin-embeddable/1.9.22/kotlin-assignment-compiler-plugin-embeddable-1.9.22.jar" + ], + "hash": "sha256-KmHdIZ/tvlMYo7HiPA9zm0XtG1sksLZzdRm3hF6Alfg=" + }, + "kotlin-assignment-compiler-plugin-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-assignment-compiler-plugin-embeddable/1.9.22/kotlin-assignment-compiler-plugin-embeddable-1.9.22.pom" + ], + "hash": "sha256-nbJr6D8/Y8Uf972pHjpqQNTDTaAj5ilsAQW7SqZvzJI=" } }, - "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { - "1.5.0": { - "kotlinx-coroutines-core-jvm-1.5.0.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar" - ], - "hash": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=" - }, - "kotlinx-coroutines-core-jvm-1.5.0.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module" - ], - "hash": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=" - }, - "kotlinx-coroutines-core-jvm-1.5.0.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom" - ], - "hash": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" - } + "org.jetbrains.kotlin:kotlin-build-common:1.9.22": { + "kotlin-build-common-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.9.22/kotlin-build-common-1.9.22.jar" + ], + "hash": "sha256-U8PcxTA/WQPmJgrqc+zMaTD5o276KhHNO9On5V32OWY=" + }, + "kotlin-build-common-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.9.22/kotlin-build-common-1.9.22.pom" + ], + "hash": "sha256-KXxfSYoHdIPvic06cQzSt/LlrjgPOjrt+5xBvGI7E0A=" } }, - "org.jetbrains:annotations": { - "13.0": { - "annotations-13.0.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13.0.jar" - ], - "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" - }, - "annotations-13.0.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13.0.pom" - ], - "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" - } + "org.jetbrains.kotlin:kotlin-build-tools-api:1.9.22": { + "kotlin-build-tools-api-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.22/kotlin-build-tools-api-1.9.22.jar" + ], + "hash": "sha256-3UnLfij08zgvUlDPsFyGT9XwqW0yZbspPHezCtzJP/Y=" + }, + "kotlin-build-tools-api-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.22/kotlin-build-tools-api-1.9.22.pom" + ], + "hash": "sha256-DFZLu4fcXs32Q005buob886Xar8IgYCN0Wb6SbBGSfs=" + } + }, + "org.jetbrains.kotlin:kotlin-build-tools-impl:1.9.22": { + "kotlin-build-tools-impl-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-impl/1.9.22/kotlin-build-tools-impl-1.9.22.jar" + ], + "hash": "sha256-G0jW3gQqUl9jtVdROuEmbWmTSCJbAT+UDjLGPeJolCg=" + }, + "kotlin-build-tools-impl-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-impl/1.9.22/kotlin-build-tools-impl-1.9.22.pom" + ], + "hash": "sha256-tWM/E0m+lcdHRuHimiqm51LoneGrmmUjSS85j6aVWN0=" + } + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.22": { + "kotlin-compiler-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.22/kotlin-compiler-embeddable-1.9.22.jar" + ], + "hash": "sha256-K/6t7lmrGYjDNtvW5l2ZH3Zq4d2Gg/Km3tX6oCefDKA=" + }, + "kotlin-compiler-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.22/kotlin-compiler-embeddable-1.9.22.pom" + ], + "hash": "sha256-s9o0u29ClqzzoPRDRm8FBsbJnaXNliTW4LdFsiKHhOs=" + } + }, + "org.jetbrains.kotlin:kotlin-compiler-runner:1.9.22": { + "kotlin-compiler-runner-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.22/kotlin-compiler-runner-1.9.22.jar" + ], + "hash": "sha256-c+x1u5nr/6iySiSjuFPz9mCWvEapNRrw2sk967acFes=" + }, + "kotlin-compiler-runner-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.22/kotlin-compiler-runner-1.9.22.pom" + ], + "hash": "sha256-pO6KZ8HW8lODjAAnKAvLgFCsDc3MrZdIlhOKaaAX6wE=" + } + }, + "org.jetbrains.kotlin:kotlin-daemon-client:1.9.22": { + "kotlin-daemon-client-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.22/kotlin-daemon-client-1.9.22.jar" + ], + "hash": "sha256-XXPhgVsRZ+Sv4gjwCyp1wIC8WoEHhsqtuOFHh1k6k7k=" + }, + "kotlin-daemon-client-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.22/kotlin-daemon-client-1.9.22.pom" + ], + "hash": "sha256-YsRKZZ2lXbb7El4pKbmNUEow4fSvgU4I5JIUJqpST4o=" + } + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.22": { + "kotlin-daemon-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.22/kotlin-daemon-embeddable-1.9.22.jar" + ], + "hash": "sha256-kqV4ExcUR9U0Rh+hP+N9yM07f4bYPpsfe7GwvjBUH4s=" + }, + "kotlin-daemon-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.22/kotlin-daemon-embeddable-1.9.22.pom" + ], + "hash": "sha256-9uo9z2v7Og0GmER8SKa88I2Oqs+D/JX+nUGBpeXjwrE=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22": { + "kotlin-gradle-plugin-1.9.22-gradle82.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.22/kotlin-gradle-plugin-1.9.22-gradle82.jar" + ], + "hash": "sha256-1OcY3V8wxrqTLZPM/FswFendPkQUOgUrh3Ao8frlQtw=" + }, + "kotlin-gradle-plugin-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.22/kotlin-gradle-plugin-1.9.22.module" + ], + "hash": "sha256-pPRqwMq9jVzbaJ0tN9GdWFhPcIv59k/+TpgKL/dTS7U=" + }, + "kotlin-gradle-plugin-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.22/kotlin-gradle-plugin-1.9.22.pom" + ], + "hash": "sha256-A3750tSupA9JKdglE1g+STwOBRVuDaix1/Ujurhobyc=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-annotations:1.9.22": { + "kotlin-gradle-plugin-annotations-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.22/kotlin-gradle-plugin-annotations-1.9.22.jar" + ], + "hash": "sha256-lnaDy5jZkQFFYH+/W0VilbQ/Cq+Tsbunv2mS5zHLJOw=" + }, + "kotlin-gradle-plugin-annotations-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.22/kotlin-gradle-plugin-annotations-1.9.22.pom" + ], + "hash": "sha256-Y7por+B4/3D3CPnpecaTxFv+iQQfeWQbC4H2tKEm7rs=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.9.22": { + "kotlin-gradle-plugin-api-1.9.22-gradle82.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22-gradle82.jar" + ], + "hash": "sha256-7P9nVGBlxg4JX7k7P4i5uS7R7cN+P+u8b57TVCL6QSs=" + }, + "kotlin-gradle-plugin-api-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22.jar" + ], + "hash": "sha256-7P9nVGBlxg4JX7k7P4i5uS7R7cN+P+u8b57TVCL6QSs=" + }, + "kotlin-gradle-plugin-api-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22.module" + ], + "hash": "sha256-H0SJxTBPmlEqVof/zAqvCTCvydcgUdOpBfrAcANi+3s=" + }, + "kotlin-gradle-plugin-api-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22.pom" + ], + "hash": "sha256-ZAFewaGutVCqGCjCQuIoODDFD2g2TkCDH+FYj9wEEfU=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.9.22": { + "kotlin-gradle-plugin-idea-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.22/kotlin-gradle-plugin-idea-1.9.22.jar" + ], + "hash": "sha256-jRr4djLZUUjxIqn6CuKQPBnub6t9AeAX924NLJoCLCA=" + }, + "kotlin-gradle-plugin-idea-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.22/kotlin-gradle-plugin-idea-1.9.22.module" + ], + "hash": "sha256-z+LCbjMPaAMsAD+lJMAx5aYPzo2Jn/8uQjFBKL60QCs=" + }, + "kotlin-gradle-plugin-idea-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.22/kotlin-gradle-plugin-idea-1.9.22.pom" + ], + "hash": "sha256-3BSjKHVDun5QRs1OCVAtJ4hMqYfshwb1+xid54luOsw=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.9.22": { + "kotlin-gradle-plugin-idea-proto-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.22/kotlin-gradle-plugin-idea-proto-1.9.22.jar" + ], + "hash": "sha256-9dgu5hlmotmK364Z8k1hcwIsFUBIls3yNjQANe5owPU=" + }, + "kotlin-gradle-plugin-idea-proto-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.22/kotlin-gradle-plugin-idea-proto-1.9.22.pom" + ], + "hash": "sha256-huMsqCkn2ogKHPNDpA7MIJgHXm/XInOzTVDfpUTzRjs=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.9.22": { + "kotlin-gradle-plugin-model-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.22/kotlin-gradle-plugin-model-1.9.22.jar" + ], + "hash": "sha256-UQj61b4UmCXs46ABA8PCHPGv6VS7ZLhweJVyk511OMs=" + }, + "kotlin-gradle-plugin-model-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.22/kotlin-gradle-plugin-model-1.9.22.module" + ], + "hash": "sha256-L/MBPfK6epteiwBOhIF1DI0PqVOtAHoZbYXSY2cdvq4=" + }, + "kotlin-gradle-plugin-model-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.22/kotlin-gradle-plugin-model-1.9.22.pom" + ], + "hash": "sha256-gfUmlHml2X7oeSpITIMr495DgggSZxlhUAHKyI5C9qg=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugins-bom:1.9.22": { + "kotlin-gradle-plugins-bom-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.22/kotlin-gradle-plugins-bom-1.9.22.module" + ], + "hash": "sha256-Qj401h0iCxoN3BgUCGqM6rTa2ed5ArDOjLRyG789xu0=" + }, + "kotlin-gradle-plugins-bom-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.22/kotlin-gradle-plugins-bom-1.9.22.pom" + ], + "hash": "sha256-da2/XHjOJHwiuvNijQs/8c9+19N9YB66cwTXerdb3Z8=" + } + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.9.22": { + "kotlin-klib-commonizer-api-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.22/kotlin-klib-commonizer-api-1.9.22.jar" + ], + "hash": "sha256-jC9lQpwYLi5KLgnLkQ5iuW227tKFWUuPga+CO35ZROI=" + }, + "kotlin-klib-commonizer-api-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.22/kotlin-klib-commonizer-api-1.9.22.pom" + ], + "hash": "sha256-EMrJcNMAo0icM/CzBBVv8DLZWVm+WqrDuIAoKtWGIv4=" + } + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.9.22": { + "kotlin-klib-commonizer-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.9.22/kotlin-klib-commonizer-embeddable-1.9.22.jar" + ], + "hash": "sha256-c/50PnTSEoPTg9C6voX9CMRCr8GnvYgIL42gUQ0FPUs=" + }, + "kotlin-klib-commonizer-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.9.22/kotlin-klib-commonizer-embeddable-1.9.22.pom" + ], + "hash": "sha256-dxghItppe2YqSRPX3Z/mu68ATOhH/YZ9oj6v8MTIJEs=" + } + }, + "org.jetbrains.kotlin:kotlin-native-utils:1.9.22": { + "kotlin-native-utils-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.9.22/kotlin-native-utils-1.9.22.jar" + ], + "hash": "sha256-eGwSfdVTXbLDmuWXzQsMrZ6RS4PiNvHbAlEjXMnGUqw=" + }, + "kotlin-native-utils-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.9.22/kotlin-native-utils-1.9.22.pom" + ], + "hash": "sha256-EcUUwF7qOuno4Wq0l5bxEd9DxzSCMeNfr0xCjMT3Q+o=" + } + }, + "org.jetbrains.kotlin:kotlin-project-model:1.9.22": { + "kotlin-project-model-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.9.22/kotlin-project-model-1.9.22.jar" + ], + "hash": "sha256-zBHVwLGQnFsKCP0l7w51T/0r9Wyu9mX7eFEiI15UKhg=" + }, + "kotlin-project-model-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.9.22/kotlin-project-model-1.9.22.pom" + ], + "hash": "sha256-659KFngb/ADM7IAw++XuIo5vKydxxQwmezIY/rAGW0A=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.9.22": { + "kotlin-reflect-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.9.22/kotlin-reflect-1.9.22.jar" + ], + "hash": "sha256-d/MRyhOEgR1Rn9o4n8sSaL2qBY1gUEbg7edsA7DfPpc=" + }, + "kotlin-reflect-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.9.22/kotlin-reflect-1.9.22.pom" + ], + "hash": "sha256-xxLjWN97kxi2j1RjlxsIhnODf8DKQoXRw4LIEC7da18=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.6.10": { + "kotlin-reflect-1.6.10.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.jar" + ], + "hash": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=" + }, + "kotlin-reflect-1.6.10.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.pom" + ], + "hash": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak=" + } + }, + "org.jetbrains.kotlin:kotlin-sam-with-receiver:1.9.22": { + "kotlin-sam-with-receiver-1.9.22-gradle82.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.9.22/kotlin-sam-with-receiver-1.9.22-gradle82.jar" + ], + "hash": "sha256-cvvN3L25ZaQ9uWfLKjGaXXp3NttQrCA8lrmatVc5wkE=" + }, + "kotlin-sam-with-receiver-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.9.22/kotlin-sam-with-receiver-1.9.22.module" + ], + "hash": "sha256-7rpm+YBjiXkSCkm5/aW4YeEHLWCQIzi1NyYH8kljDC0=" + }, + "kotlin-sam-with-receiver-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.9.22/kotlin-sam-with-receiver-1.9.22.pom" + ], + "hash": "sha256-AD+clOG/rX8ZDm70F+kTOhCjH3hRMBPlkHS2DzZZLCY=" + } + }, + "org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin-embeddable:1.9.22": { + "kotlin-sam-with-receiver-compiler-plugin-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver-compiler-plugin-embeddable/1.9.22/kotlin-sam-with-receiver-compiler-plugin-embeddable-1.9.22.jar" + ], + "hash": "sha256-jqUUoRQABsxXoHMVsVoTaI7W/qFwfzrJjpzoCVu2z38=" + }, + "kotlin-sam-with-receiver-compiler-plugin-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver-compiler-plugin-embeddable/1.9.22/kotlin-sam-with-receiver-compiler-plugin-embeddable-1.9.22.pom" + ], + "hash": "sha256-MM9L0JPCbn/Ryt/F1Qop5q60WXUSeia84rEJUfJPgqo=" + } + }, + "org.jetbrains.kotlin:kotlin-script-runtime:1.9.22": { + "kotlin-script-runtime-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.22/kotlin-script-runtime-1.9.22.jar" + ], + "hash": "sha256-uAZwV59/ktRz2NWDTwsST3dVxFmP6UskQYOwKDSDRXQ=" + }, + "kotlin-script-runtime-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.22/kotlin-script-runtime-1.9.22.pom" + ], + "hash": "sha256-/ra0ns9pEG1MEoXnH5ob2noSfO9oMC4+n9yCmKTjR5U=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-common:1.9.22": { + "kotlin-scripting-common-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.22/kotlin-scripting-common-1.9.22.jar" + ], + "hash": "sha256-+lAMvwNJQ++BJvPT3GWvCf+Z3//kTFCZtPwu1b8vXcc=" + }, + "kotlin-scripting-common-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.22/kotlin-scripting-common-1.9.22.pom" + ], + "hash": "sha256-ROURI7DCfm/ZM/wma00Nrw8GhKYq7Z/mhC6Noz8qKz8=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.9.22": { + "kotlin-scripting-compiler-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.22/kotlin-scripting-compiler-embeddable-1.9.22.jar" + ], + "hash": "sha256-Ij/shIMCNEmc1MeiPqHJLroSfEGzXZux1LYdJBVa6zU=" + }, + "kotlin-scripting-compiler-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.22/kotlin-scripting-compiler-embeddable-1.9.22.pom" + ], + "hash": "sha256-wWCPP7yyqfdSPq0zWZwurc5MgSFhqeBmufSwBa97Qxw=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.9.22": { + "kotlin-scripting-compiler-impl-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.22/kotlin-scripting-compiler-impl-embeddable-1.9.22.jar" + ], + "hash": "sha256-OJkYFqKH/3YkHxp35/ERZIHU6To9tjJZplfd4g5tD2U=" + }, + "kotlin-scripting-compiler-impl-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.22/kotlin-scripting-compiler-impl-embeddable-1.9.22.pom" + ], + "hash": "sha256-gmccM6lXsuKoINZqaSwvzmPjvwR/HLJeb7A5HF3c8uc=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.22": { + "kotlin-scripting-jvm-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.22/kotlin-scripting-jvm-1.9.22.jar" + ], + "hash": "sha256-jRJ9dvz6BRfDbB6g4ijs4D1aRoJkKgH2R5prvccxKik=" + }, + "kotlin-scripting-jvm-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.22/kotlin-scripting-jvm-1.9.22.pom" + ], + "hash": "sha256-cBJS6huo/4f8M0dqYePVxtnS3aQbqpiZTdaYDuE/vG0=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib:1.9.22": { + "kotlin-stdlib-1.9.22-all.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22-all.jar" + ], + "hash": "sha256-zsOLwzAucqiq+c3kNrWpBx7gMx4q0F6E2LuJczTX6dQ=" + }, + "kotlin-stdlib-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22.jar" + ], + "hash": "sha256-ar4UbCeGQTi4dMzM/l9TTj65I8maG3tdRUlO5WlPPgo=" + }, + "kotlin-stdlib-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22.module" + ], + "hash": "sha256-9IIxS1B5wUVfb7DUJXp0XRAcYSTOlhUiuob53JCQHkc=" + }, + "kotlin-stdlib-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22.pom" + ], + "hash": "sha256-zOLxUoXsgHijd0a1cwigVAQt1cwlQgxD9zt4V8JGjwM=" + } + }, + "org.jetbrains.kotlin:kotlin-tooling-core:1.9.22": { + "kotlin-tooling-core-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.22/kotlin-tooling-core-1.9.22.jar" + ], + "hash": "sha256-iTjrl+NjINqj5vsqYP0qBbIy/0pVcXPFAZ8EW4gy2fQ=" + }, + "kotlin-tooling-core-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.22/kotlin-tooling-core-1.9.22.pom" + ], + "hash": "sha256-FPx/NcY15fzRvqU3q0+kQxLoQyUtUzNRnjaxJeoImyE=" + } + }, + "org.jetbrains.kotlin:kotlin-util-io:1.9.22": { + "kotlin-util-io-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.9.22/kotlin-util-io-1.9.22.jar" + ], + "hash": "sha256-9telhJGjeLCDrRvq1IikheEdFgsx52wYwa1SDx0o9Gs=" + }, + "kotlin-util-io-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.9.22/kotlin-util-io-1.9.22.pom" + ], + "hash": "sha256-ZP1qINbsBAE7ttdWJ/ZYC7c2QdlIkJ1cFmTi53MQbe4=" + } + }, + "org.jetbrains.kotlin:kotlin-util-klib:1.9.22": { + "kotlin-util-klib-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.9.22/kotlin-util-klib-1.9.22.jar" + ], + "hash": "sha256-pnnuL1EPOrkmkYGN5etbCQLobYjJdnTn20TcTyJSxfk=" + }, + "kotlin-util-klib-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.9.22/kotlin-util-klib-1.9.22.pom" + ], + "hash": "sha256-Dep9//Cit0CIrJlwQ8vCQINdK/9Zs5/MiwysbqPrNpc=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0": { + "kotlinx-coroutines-core-jvm-1.5.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar" + ], + "hash": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module" + ], + "hash": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom" + ], + "hash": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" } } } \ No newline at end of file diff --git a/fixtures/golden/dependency/classifier.groovy.json b/fixtures/golden/dependency/classifier.groovy.json index 4a89135..2b7caa5 100644 --- a/fixtures/golden/dependency/classifier.groovy.json +++ b/fixtures/golden/dependency/classifier.groovy.json @@ -1,18 +1,32 @@ { - "com.badlogicgames.gdx:gdx-platform": { - "1.9.9": { - "gdx-platform-1.9.9-natives-desktop.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9-natives-desktop.jar" - ], - "hash": "sha256-e8c9VPpFH+LeJU6PgmCkOb/jutOxFnO6LPMaTxL2hU8=" - }, - "gdx-platform-1.9.9.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9.pom" - ], - "hash": "sha256-SWnDZyJaErav4Z4sA+D1WA3U1aQOSR64sd8+cQzofSY=" - } + "com.badlogicgames.gdx:gdx-parent:1.9.9": { + "gdx-parent-1.9.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-parent/1.9.9/gdx-parent-1.9.9.pom" + ], + "hash": "sha256-JSpktycxGU+lvD37inPSXOa3NXxQLQ+y9W5rTiqaeJM=" + } + }, + "com.badlogicgames.gdx:gdx-platform:1.9.9": { + "gdx-platform-1.9.9-natives-desktop.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9-natives-desktop.jar" + ], + "hash": "sha256-e8c9VPpFH+LeJU6PgmCkOb/jutOxFnO6LPMaTxL2hU8=" + }, + "gdx-platform-1.9.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9.pom" + ], + "hash": "sha256-SWnDZyJaErav4Z4sA+D1WA3U1aQOSR64sd8+cQzofSY=" + } + }, + "org.sonatype.oss:oss-parent:5": { + "oss-parent-5.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/5/oss-parent-5.pom" + ], + "hash": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0=" } } } \ No newline at end of file diff --git a/fixtures/golden/dependency/classifier.kotlin.json b/fixtures/golden/dependency/classifier.kotlin.json index 4a89135..2b7caa5 100644 --- a/fixtures/golden/dependency/classifier.kotlin.json +++ b/fixtures/golden/dependency/classifier.kotlin.json @@ -1,18 +1,32 @@ { - "com.badlogicgames.gdx:gdx-platform": { - "1.9.9": { - "gdx-platform-1.9.9-natives-desktop.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9-natives-desktop.jar" - ], - "hash": "sha256-e8c9VPpFH+LeJU6PgmCkOb/jutOxFnO6LPMaTxL2hU8=" - }, - "gdx-platform-1.9.9.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9.pom" - ], - "hash": "sha256-SWnDZyJaErav4Z4sA+D1WA3U1aQOSR64sd8+cQzofSY=" - } + "com.badlogicgames.gdx:gdx-parent:1.9.9": { + "gdx-parent-1.9.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-parent/1.9.9/gdx-parent-1.9.9.pom" + ], + "hash": "sha256-JSpktycxGU+lvD37inPSXOa3NXxQLQ+y9W5rTiqaeJM=" + } + }, + "com.badlogicgames.gdx:gdx-platform:1.9.9": { + "gdx-platform-1.9.9-natives-desktop.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9-natives-desktop.jar" + ], + "hash": "sha256-e8c9VPpFH+LeJU6PgmCkOb/jutOxFnO6LPMaTxL2hU8=" + }, + "gdx-platform-1.9.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9.pom" + ], + "hash": "sha256-SWnDZyJaErav4Z4sA+D1WA3U1aQOSR64sd8+cQzofSY=" + } + }, + "org.sonatype.oss:oss-parent:5": { + "oss-parent-5.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/5/oss-parent-5.pom" + ], + "hash": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0=" } } } \ No newline at end of file diff --git a/fixtures/golden/dependency/maven-bom.kotlin.json b/fixtures/golden/dependency/maven-bom.kotlin.json index c43c01e..6ebd332 100644 --- a/fixtures/golden/dependency/maven-bom.kotlin.json +++ b/fixtures/golden/dependency/maven-bom.kotlin.json @@ -1,44 +1,60 @@ { - "io.micrometer:micrometer-bom": { - "1.5.1": { - "micrometer-bom-1.5.1.pom": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/io/micrometer/micrometer-bom/1.5.1/micrometer-bom-1.5.1.pom" - ], - "hash": "sha256-K/qF6ds8ck5sWvelJBYk+w+K04oQpT/4BtY57WVLRUI=" - } + "io.micrometer:micrometer-bom:1.5.1": { + "micrometer-bom-1.5.1.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/io/micrometer/micrometer-bom/1.5.1/micrometer-bom-1.5.1.pom" + ], + "hash": "sha256-K/qF6ds8ck5sWvelJBYk+w+K04oQpT/4BtY57WVLRUI=" } }, - "io.micrometer:micrometer-core": { - "1.5.1": { - "micrometer-core-1.5.1.jar": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/io/micrometer/micrometer-core/1.5.1/micrometer-core-1.5.1.jar" - ], - "hash": "sha256-DtgVYBDVGDBWMwSfeKC6O+fwqd+N2q4eTizJgQ1wfI8=" - }, - "micrometer-core-1.5.1.pom": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/io/micrometer/micrometer-core/1.5.1/micrometer-core-1.5.1.pom" - ], - "hash": "sha256-Cb4KaUHaOvdOz7VpDax6kJKuT2KWY5Ci73foX2xl6xw=" - } + "io.micrometer:micrometer-core:1.5.1": { + "micrometer-core-1.5.1.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/io/micrometer/micrometer-core/1.5.1/micrometer-core-1.5.1.jar" + ], + "hash": "sha256-DtgVYBDVGDBWMwSfeKC6O+fwqd+N2q4eTizJgQ1wfI8=" + }, + "micrometer-core-1.5.1.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/io/micrometer/micrometer-core/1.5.1/micrometer-core-1.5.1.pom" + ], + "hash": "sha256-Cb4KaUHaOvdOz7VpDax6kJKuT2KWY5Ci73foX2xl6xw=" } }, - "org.hdrhistogram:HdrHistogram": { - "2.1.12": { - "HdrHistogram-2.1.12.jar": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar" - ], - "hash": "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" - }, - "HdrHistogram-2.1.12.pom": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.pom" - ], - "hash": "sha256-f7PnkMFU0bXiMXC7jL9/cO8ICa8XIp8dywENd5llEIA=" - } + "org.hdrhistogram:HdrHistogram:2.1.12": { + "HdrHistogram-2.1.12.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar" + ], + "hash": "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" + }, + "HdrHistogram-2.1.12.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.pom" + ], + "hash": "sha256-f7PnkMFU0bXiMXC7jL9/cO8ICa8XIp8dywENd5llEIA=" + } + }, + "org.latencyutils:LatencyUtils:2.0.3": { + "LatencyUtils-2.0.3.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" + ], + "hash": "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" + }, + "LatencyUtils-2.0.3.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.pom" + ], + "hash": "sha256-jwwBU3kLhK9sCTFtVpvRBu4PAIuTk+gLpHj1v2Vziig=" + } + }, + "org.sonatype.oss:oss-parent:7": { + "oss-parent-7.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom" + ], + "hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" } } } \ No newline at end of file diff --git a/fixtures/golden/dependency/snapshot-dynamic.groovy.json b/fixtures/golden/dependency/snapshot-dynamic.groovy.json index 5463f25..eaaa8f7 100644 --- a/fixtures/golden/dependency/snapshot-dynamic.groovy.json +++ b/fixtures/golden/dependency/snapshot-dynamic.groovy.json @@ -1,16 +1,18 @@ { - "org.apache:test-SNAPSHOT1": { - "2.0.2-SNAPSHOT": { - "test-SNAPSHOT1-2.0.2-20070310.181613-3.jar": { - "urls": [ - ], - "hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE=" - }, - "test-SNAPSHOT1-2.0.2-20070310.181613-3.pom": { - "urls": [ - ], - "hash": "sha256-HkNYH8bwRqh0B760aORWKwMuDrO1E89Y8tx0esl66gs=" - } + "org.apache:test-SNAPSHOT1:2.0.2-SNAPSHOT:20070310.181613-3": { + "test-SNAPSHOT1-2.0.2-20070310.181613-3.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT1/2.0.2-SNAPSHOT/test-SNAPSHOT1-2.0.2-20070310.181613-3.jar" + ], + "hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE=" + } + }, + "org.apache:test-SNAPSHOT1:2.0.2-SNAPSHOT": { + "test-SNAPSHOT1-2.0.2-20070310.181613-3.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT1/2.0.2-SNAPSHOT/test-SNAPSHOT1-2.0.2-20070310.181613-3.pom" + ], + "hash": "sha256-HkNYH8bwRqh0B760aORWKwMuDrO1E89Y8tx0esl66gs=" } } } \ No newline at end of file diff --git a/fixtures/golden/dependency/snapshot-dynamic.kotlin.json b/fixtures/golden/dependency/snapshot-dynamic.kotlin.json index 5463f25..eaaa8f7 100644 --- a/fixtures/golden/dependency/snapshot-dynamic.kotlin.json +++ b/fixtures/golden/dependency/snapshot-dynamic.kotlin.json @@ -1,16 +1,18 @@ { - "org.apache:test-SNAPSHOT1": { - "2.0.2-SNAPSHOT": { - "test-SNAPSHOT1-2.0.2-20070310.181613-3.jar": { - "urls": [ - ], - "hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE=" - }, - "test-SNAPSHOT1-2.0.2-20070310.181613-3.pom": { - "urls": [ - ], - "hash": "sha256-HkNYH8bwRqh0B760aORWKwMuDrO1E89Y8tx0esl66gs=" - } + "org.apache:test-SNAPSHOT1:2.0.2-SNAPSHOT:20070310.181613-3": { + "test-SNAPSHOT1-2.0.2-20070310.181613-3.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT1/2.0.2-SNAPSHOT/test-SNAPSHOT1-2.0.2-20070310.181613-3.jar" + ], + "hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE=" + } + }, + "org.apache:test-SNAPSHOT1:2.0.2-SNAPSHOT": { + "test-SNAPSHOT1-2.0.2-20070310.181613-3.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT1/2.0.2-SNAPSHOT/test-SNAPSHOT1-2.0.2-20070310.181613-3.pom" + ], + "hash": "sha256-HkNYH8bwRqh0B760aORWKwMuDrO1E89Y8tx0esl66gs=" } } } \ No newline at end of file diff --git a/fixtures/golden/dependency/snapshot-redirect.groovy.json b/fixtures/golden/dependency/snapshot-redirect.groovy.json index d4f9c6c..48f5de8 100644 --- a/fixtures/golden/dependency/snapshot-redirect.groovy.json +++ b/fixtures/golden/dependency/snapshot-redirect.groovy.json @@ -1,18 +1,118 @@ { - "com.github.anuken:packr": { - "-SNAPSHOT": { - "packr--SNAPSHOT.jar": { - "urls": [ - "https://jitpack.io/com/github/anuken/packr/-SNAPSHOT/packr--packr-1.2-g034efe5-114.jar" - ], - "hash": "sha256-XrfVZLc7efr2n3Bz6mOw8DkRI0T8rU8B/MKUMVDl71w=" - }, - "packr--SNAPSHOT.pom": { - "urls": [ - "https://jitpack.io/com/github/anuken/packr/-SNAPSHOT/packr--packr-1.2-g034efe5-114.pom" - ], - "hash": "sha256-xP28J7blX1IzuJxD4u/wy1ZbwAT5RAajBcpBWs1fAxU=" - } + "com.eclipsesource.minimal-json:minimal-json:0.9.1": { + "minimal-json-0.9.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/eclipsesource/minimal-json/minimal-json/0.9.1/minimal-json-0.9.1.jar" + ], + "hash": "sha256-pvRb7vRcTbyODylD0CuzTZ2btyDUoX1NwfChHNHvWFg=" + }, + "minimal-json-0.9.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/eclipsesource/minimal-json/minimal-json/0.9.1/minimal-json-0.9.1.pom" + ], + "hash": "sha256-Xb0I7Og8f0XxOeis+0S+gUv4NugvuGAEdvwMuR2awUM=" + } + }, + "com.github.anuken:packr:-SNAPSHOT:packr-1.2-g034efe5-114": { + "packr--packr-1.2-g034efe5-114.jar": { + "urls": [ + "https://jitpack.io/com/github/anuken/packr/-SNAPSHOT/packr--packr-1.2-g034efe5-114.jar" + ], + "hash": "sha256-XrfVZLc7efr2n3Bz6mOw8DkRI0T8rU8B/MKUMVDl71w=" + } + }, + "com.github.anuken:packr:-SNAPSHOT": { + "packr--SNAPSHOT.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/anuken/packr/-SNAPSHOT/packr--SNAPSHOT.pom" + ], + "hash": "sha256-xP28J7blX1IzuJxD4u/wy1ZbwAT5RAajBcpBWs1fAxU=" + }, + "packr--packr-1.2-g034efe5-114.pom": { + "urls": [ + "https://jitpack.io/com/github/anuken/packr/-SNAPSHOT/packr--packr-1.2-g034efe5-114.pom" + ], + "hash": "sha256-xP28J7blX1IzuJxD4u/wy1ZbwAT5RAajBcpBWs1fAxU=" + } + }, + "com.lexicalscope.jewelcli:jewelcli:0.8.9": { + "jewelcli-0.8.9.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/lexicalscope/jewelcli/jewelcli/0.8.9/jewelcli-0.8.9.jar" + ], + "hash": "sha256-edo0/mgFGCboBtIUgBL7NIHJ5pc4ipG9RMwl1piBAvM=" + }, + "jewelcli-0.8.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/lexicalscope/jewelcli/jewelcli/0.8.9/jewelcli-0.8.9.pom" + ], + "hash": "sha256-eTF2d4p/6F9cw1QWZQhjpG1Es5CJKI1+DkiheuCZHMQ=" + } + }, + "com.lexicalscope.jewelcli:jewelcli-parent:0.8.9": { + "jewelcli-parent-0.8.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/lexicalscope/jewelcli/jewelcli-parent/0.8.9/jewelcli-parent-0.8.9.pom" + ], + "hash": "sha256-+K7AtECUZHhdpChr8qutNwSH30dSEVRwb+728brQ9Is=" + } + }, + "org.slf4j:slf4j-api:1.6.6": { + "slf4j-api-1.6.6.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar" + ], + "hash": "sha256-Q0VrLuMVKanFEtWB5T4oXGX+3ewgSiwUaUXgMrB4ELo=" + }, + "slf4j-api-1.6.6.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.pom" + ], + "hash": "sha256-cxmZMiteIokinNntRiTJQexXG3xh0qJ9alB+9zuXyho=" + } + }, + "org.slf4j:slf4j-parent:1.6.6": { + "slf4j-parent-1.6.6.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/1.6.6/slf4j-parent-1.6.6.pom" + ], + "hash": "sha256-QrjCR2CP2OENW2Zs98gKW1nSseEoRQ97bZ0sIM+2sxs=" + } + }, + "org.slf4j:slf4j-simple:1.6.6": { + "slf4j-simple-1.6.6.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/1.6.6/slf4j-simple-1.6.6.jar" + ], + "hash": "sha256-Xpfxe7h5v9RDOlHGnjyS/iIQfG/8e8oiRIHy5YmEbgg=" + }, + "slf4j-simple-1.6.6.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/1.6.6/slf4j-simple-1.6.6.pom" + ], + "hash": "sha256-6eV8yFljFwnFUrbskwj+m6FUncWK7ZA5p+UFzeKrUbM=" + } + }, + "org.sonatype.oss:oss-parent:7": { + "oss-parent-7.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom" + ], + "hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + } + }, + "org.zeroturnaround:zt-zip:1.10": { + "zt-zip-1.10.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/zeroturnaround/zt-zip/1.10/zt-zip-1.10.jar" + ], + "hash": "sha256-Vw46sIh5Ok9QLaGJtyutlgzwiqWaFxyDzwj0du1ELBk=" + }, + "zt-zip-1.10.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/zeroturnaround/zt-zip/1.10/zt-zip-1.10.pom" + ], + "hash": "sha256-tsgm40wVcdupU51FIac34FxJmuQOi50BgbYLFdbVCns=" } } } \ No newline at end of file diff --git a/fixtures/golden/dependency/snapshot.groovy.json b/fixtures/golden/dependency/snapshot.groovy.json index f111b17..1e4f545 100644 --- a/fixtures/golden/dependency/snapshot.groovy.json +++ b/fixtures/golden/dependency/snapshot.groovy.json @@ -1,18 +1,16 @@ { - "org.apache:test-SNAPSHOT2": { - "2.0.2-SNAPSHOT": { - "test-SNAPSHOT2-2.0.2-SNAPSHOT.jar": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.jar" - ], - "hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE=" - }, - "test-SNAPSHOT2-2.0.2-SNAPSHOT.pom": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.pom" - ], - "hash": "sha256-XCACfgVM2OthMcb9rU/nVQvjiJawqxOd5CSRmvql1O8=" - } + "org.apache:test-SNAPSHOT2:2.0.2-SNAPSHOT": { + "test-SNAPSHOT2-2.0.2-SNAPSHOT.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.jar" + ], + "hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE=" + }, + "test-SNAPSHOT2-2.0.2-SNAPSHOT.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.pom" + ], + "hash": "sha256-XCACfgVM2OthMcb9rU/nVQvjiJawqxOd5CSRmvql1O8=" } } } \ No newline at end of file diff --git a/fixtures/golden/dependency/snapshot.kotlin.json b/fixtures/golden/dependency/snapshot.kotlin.json index f111b17..1e4f545 100644 --- a/fixtures/golden/dependency/snapshot.kotlin.json +++ b/fixtures/golden/dependency/snapshot.kotlin.json @@ -1,18 +1,16 @@ { - "org.apache:test-SNAPSHOT2": { - "2.0.2-SNAPSHOT": { - "test-SNAPSHOT2-2.0.2-SNAPSHOT.jar": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.jar" - ], - "hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE=" - }, - "test-SNAPSHOT2-2.0.2-SNAPSHOT.pom": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.pom" - ], - "hash": "sha256-XCACfgVM2OthMcb9rU/nVQvjiJawqxOd5CSRmvql1O8=" - } + "org.apache:test-SNAPSHOT2:2.0.2-SNAPSHOT": { + "test-SNAPSHOT2-2.0.2-SNAPSHOT.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.jar" + ], + "hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE=" + }, + "test-SNAPSHOT2-2.0.2-SNAPSHOT.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.pom" + ], + "hash": "sha256-XCACfgVM2OthMcb9rU/nVQvjiJawqxOd5CSRmvql1O8=" } } } \ No newline at end of file diff --git a/fixtures/golden/included-build.groovy.json b/fixtures/golden/included-build.groovy.json index 7556b4e..fc96533 100644 --- a/fixtures/golden/included-build.groovy.json +++ b/fixtures/golden/included-build.groovy.json @@ -1,48 +1,44 @@ { - "org.apache:foo": { - "2.0.0": { - "foo-2.0.0.jar": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/foo/2.0.0/foo-2.0.0.jar" - ], - "hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8=" - }, - "foo-2.0.0.pom": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/foo/2.0.0/foo-2.0.0.pom" - ], - "hash": "sha256-gcL/k4xoI5SK4qDNcyH1uHkgiGQv3WohPb45Gsb9gi8=" - } + "org.apache:foo:2.0.0": { + "foo-2.0.0.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/foo/2.0.0/foo-2.0.0.jar" + ], + "hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8=" }, - "1.0.0": { - "foo-1.0.0.jar": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/foo/1.0.0/foo-1.0.0.jar" - ], - "hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8=" - }, - "foo-1.0.0.pom": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/foo/1.0.0/foo-1.0.0.pom" - ], - "hash": "sha256-roNL3MgAJuUPxIdJJiSpjU3yEFlJFDQ99QvnaWlkVcE=" - } + "foo-2.0.0.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/foo/2.0.0/foo-2.0.0.pom" + ], + "hash": "sha256-gcL/k4xoI5SK4qDNcyH1uHkgiGQv3WohPb45Gsb9gi8=" } }, - "org.apache:test": { - "1.0.0": { - "test-1.0.0.jar": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.jar" - ], - "hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8=" - }, - "test-1.0.0.pom": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.pom" - ], - "hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To=" - } + "org.apache:foo:1.0.0": { + "foo-1.0.0.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/foo/1.0.0/foo-1.0.0.jar" + ], + "hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8=" + }, + "foo-1.0.0.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/foo/1.0.0/foo-1.0.0.pom" + ], + "hash": "sha256-roNL3MgAJuUPxIdJJiSpjU3yEFlJFDQ99QvnaWlkVcE=" + } + }, + "org.apache:test:1.0.0": { + "test-1.0.0.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.jar" + ], + "hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8=" + }, + "test-1.0.0.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.pom" + ], + "hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To=" } } } \ No newline at end of file diff --git a/fixtures/golden/integration/settings-buildscript.groovy.json b/fixtures/golden/integration/settings-buildscript.groovy.json index b92c54f..ede1686 100644 --- a/fixtures/golden/integration/settings-buildscript.groovy.json +++ b/fixtures/golden/integration/settings-buildscript.groovy.json @@ -1,146 +1,216 @@ { - "com.googlecode.javaewah:JavaEWAH": { - "1.1.6": { - "JavaEWAH-1.1.6.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.jar" - ], - "hash": "sha256-941EoeOHfxznSLSoXfUXHl6Omlw8b2O7kAPbb4TM6VI=" - }, - "JavaEWAH-1.1.6.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.pom" - ], - "hash": "sha256-f0/5GbHuF783duBYo/IOYXPbI6XkTPLRB+x1cMGGq/A=" - } + "com.googlecode.javaewah:JavaEWAH:1.1.6": { + "JavaEWAH-1.1.6.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.jar" + ], + "hash": "sha256-941EoeOHfxznSLSoXfUXHl6Omlw8b2O7kAPbb4TM6VI=" + }, + "JavaEWAH-1.1.6.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.pom" + ], + "hash": "sha256-f0/5GbHuF783duBYo/IOYXPbI6XkTPLRB+x1cMGGq/A=" } }, - "com.jcraft:jsch": { - "0.1.54": { - "jsch-0.1.54.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar" - ], - "hash": "sha256-kusnOjMWdiR4/dT+A6DOGELFb0lsnBL+EjXbgEUOH9s=" - }, - "jsch-0.1.54.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/jcraft/jsch/0.1.54/jsch-0.1.54.pom" - ], - "hash": "sha256-q49RIDm+f2riDhjnQ7Sp2KIJWElEMZF9pYrlqu+KNHg=" - } + "com.jcraft:jsch:0.1.54": { + "jsch-0.1.54.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar" + ], + "hash": "sha256-kusnOjMWdiR4/dT+A6DOGELFb0lsnBL+EjXbgEUOH9s=" + }, + "jsch-0.1.54.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/jcraft/jsch/0.1.54/jsch-0.1.54.pom" + ], + "hash": "sha256-q49RIDm+f2riDhjnQ7Sp2KIJWElEMZF9pYrlqu+KNHg=" } }, - "commons-codec:commons-codec": { - "1.6": { - "commons-codec-1.6.jar": { - "urls": [ - "https://plugins.gradle.org/m2/commons-codec/commons-codec/1.6/commons-codec-1.6.jar" - ], - "hash": "sha256-VLNOlBuOFBS9PkDXNu/TSBdy3CbbMpb2qkXOyfYgPYY=" - }, - "commons-codec-1.6.pom": { - "urls": [ - "https://plugins.gradle.org/m2/commons-codec/commons-codec/1.6/commons-codec-1.6.pom" - ], - "hash": "sha256-oG410//zprgT2UiU6/PkmPlUDIZMWzmueDkH46bHKIk=" - } + "commons-codec:commons-codec:1.6": { + "commons-codec-1.6.jar": { + "urls": [ + "https://plugins.gradle.org/m2/commons-codec/commons-codec/1.6/commons-codec-1.6.jar" + ], + "hash": "sha256-VLNOlBuOFBS9PkDXNu/TSBdy3CbbMpb2qkXOyfYgPYY=" + }, + "commons-codec-1.6.pom": { + "urls": [ + "https://plugins.gradle.org/m2/commons-codec/commons-codec/1.6/commons-codec-1.6.pom" + ], + "hash": "sha256-oG410//zprgT2UiU6/PkmPlUDIZMWzmueDkH46bHKIk=" } }, - "commons-logging:commons-logging": { - "1.1.3": { - "commons-logging-1.1.3.jar": { - "urls": [ - "https://plugins.gradle.org/m2/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar" - ], - "hash": "sha256-cJA/b8gumQjI2p8gRD9h2Q8IcKMSZCmR/oRioLk5F4Q=" - }, - "commons-logging-1.1.3.pom": { - "urls": [ - "https://plugins.gradle.org/m2/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.pom" - ], - "hash": "sha256-MlCsOsa9YO0GMfXNAzUDKymT1j5AWmrgVV0np+SGWEk=" - } + "commons-logging:commons-logging:1.1.3": { + "commons-logging-1.1.3.jar": { + "urls": [ + "https://plugins.gradle.org/m2/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar" + ], + "hash": "sha256-cJA/b8gumQjI2p8gRD9h2Q8IcKMSZCmR/oRioLk5F4Q=" + }, + "commons-logging-1.1.3.pom": { + "urls": [ + "https://plugins.gradle.org/m2/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.pom" + ], + "hash": "sha256-MlCsOsa9YO0GMfXNAzUDKymT1j5AWmrgVV0np+SGWEk=" } }, - "gradle.plugin.net.vivin:gradle-semantic-build-versioning": { - "4.0.0": { - "gradle-semantic-build-versioning-4.0.0.jar": { - "urls": [ - "https://plugins.gradle.org/m2/gradle/plugin/net/vivin/gradle-semantic-build-versioning/4.0.0/gradle-semantic-build-versioning-4.0.0.jar" - ], - "hash": "sha256-UTjmfOjgGUN4ALk8n2+dD8vr763Jb7xOvAl1yZomHvg=" - }, - "gradle-semantic-build-versioning-4.0.0.pom": { - "urls": [ - "https://plugins.gradle.org/m2/gradle/plugin/net/vivin/gradle-semantic-build-versioning/4.0.0/gradle-semantic-build-versioning-4.0.0.pom" - ], - "hash": "sha256-TygodBYH7RAtletfGJ1JbHhA7UY6zqifHlGmBWdxTvc=" - } + "gradle.plugin.net.vivin:gradle-semantic-build-versioning:4.0.0": { + "gradle-semantic-build-versioning-4.0.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/gradle/plugin/net/vivin/gradle-semantic-build-versioning/4.0.0/gradle-semantic-build-versioning-4.0.0.jar" + ], + "hash": "sha256-UTjmfOjgGUN4ALk8n2+dD8vr763Jb7xOvAl1yZomHvg=" + }, + "gradle-semantic-build-versioning-4.0.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/gradle/plugin/net/vivin/gradle-semantic-build-versioning/4.0.0/gradle-semantic-build-versioning-4.0.0.pom" + ], + "hash": "sha256-TygodBYH7RAtletfGJ1JbHhA7UY6zqifHlGmBWdxTvc=" } }, - "org.apache.httpcomponents:httpclient": { - "4.3.6": { - "httpclient-4.3.6.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6.jar" - ], - "hash": "sha256-eYONnq73PU+FLGOkgIMMOi1LWQ8Ks66BWkiUY+RxQAQ=" - }, - "httpclient-4.3.6.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6.pom" - ], - "hash": "sha256-0CY09hMekUlhwCqoNnEeuscnBLJ+JsW9Iju62JsbZMM=" - } + "org.apache:apache:13": { + "apache-13.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/apache/13/apache-13.pom" + ], + "hash": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0=" } }, - "org.apache.httpcomponents:httpcore": { - "4.3.3": { - "httpcore-4.3.3.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3.jar" - ], - "hash": "sha256-UoXegK8WUcSJMTuRqfQMZaTNy2s73nFvzAKNFoaaWpM=" - }, - "httpcore-4.3.3.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3.pom" - ], - "hash": "sha256-tCf3z2fHWk4/niEI01v0UwNXPBRex3j8rc/6zvF6EmQ=" - } + "org.apache:apache:9": { + "apache-9.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/apache/9/apache-9.pom" + ], + "hash": "sha256-SUbmClR8jtpp87wjxbbw2tz4Rp6kmx0dp940rs/PGN0=" } }, - "org.eclipse.jgit:org.eclipse.jgit": { - "4.8.0.201706111038-r": { - "org.eclipse.jgit-4.8.0.201706111038-r.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit/4.8.0.201706111038-r/org.eclipse.jgit-4.8.0.201706111038-r.jar" - ], - "hash": "sha256-SdkS6NXM4N0I3KPTkBiduGkqj34zY8274YJYFGIACro=" - }, - "org.eclipse.jgit-4.8.0.201706111038-r.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit/4.8.0.201706111038-r/org.eclipse.jgit-4.8.0.201706111038-r.pom" - ], - "hash": "sha256-pVap9a38avSbKhLnLcPNfkPbj9whbA81iFlyovWton0=" - } + "org.apache.commons:commons-parent:28": { + "commons-parent-28.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/commons/commons-parent/28/commons-parent-28.pom" + ], + "hash": "sha256-FHM6aOixILad5gzZbSIhRtzzLwPBxsxqdQsSabr+hsc=" } }, - "org.slf4j:slf4j-api": { - "1.7.2": { - "slf4j-api-1.7.2.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.jar" - ], - "hash": "sha256-O654m0ATM7Kh0WA7f6Vz4ZkIYoGRcHID9utwjN7iwFI=" - }, - "slf4j-api-1.7.2.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.pom" - ], - "hash": "sha256-LqynGv4KFRb0q9jp/5B4ONJo84yBw6VCzOjX87h8XUw=" - } + "org.apache.commons:commons-parent:22": { + "commons-parent-22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/commons/commons-parent/22/commons-parent-22.pom" + ], + "hash": "sha256-+4xeVeMKet20/yEIWKDo0klO1nV7vhkBLamdUVhsPLs=" + } + }, + "org.apache.httpcomponents:httpclient:4.3.6": { + "httpclient-4.3.6.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6.jar" + ], + "hash": "sha256-eYONnq73PU+FLGOkgIMMOi1LWQ8Ks66BWkiUY+RxQAQ=" + }, + "httpclient-4.3.6.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6.pom" + ], + "hash": "sha256-0CY09hMekUlhwCqoNnEeuscnBLJ+JsW9Iju62JsbZMM=" + } + }, + "org.apache.httpcomponents:httpcomponents-client:4.3.6": { + "httpcomponents-client-4.3.6.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcomponents-client/4.3.6/httpcomponents-client-4.3.6.pom" + ], + "hash": "sha256-StooJ7SWM5gmiRx8gdzrpkcCneb8GIixazyrVlCrzGM=" + } + }, + "org.apache.httpcomponents:httpcomponents-core:4.3.3": { + "httpcomponents-core-4.3.3.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcomponents-core/4.3.3/httpcomponents-core-4.3.3.pom" + ], + "hash": "sha256-wW4vwNSbp6As71teJgBYWp9nNVMyim+eWPJClt8d0DE=" + } + }, + "org.apache.httpcomponents:httpcore:4.3.3": { + "httpcore-4.3.3.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3.jar" + ], + "hash": "sha256-UoXegK8WUcSJMTuRqfQMZaTNy2s73nFvzAKNFoaaWpM=" + }, + "httpcore-4.3.3.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3.pom" + ], + "hash": "sha256-tCf3z2fHWk4/niEI01v0UwNXPBRex3j8rc/6zvF6EmQ=" + } + }, + "org.apache.httpcomponents:project:7": { + "project-7.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/project/7/project-7.pom" + ], + "hash": "sha256-PW66QoVVpVjeBGtddurMH1pUtPXyC4TWNu16/xiqSMM=" + } + }, + "org.eclipse.jgit:org.eclipse.jgit:4.8.0.201706111038-r": { + "org.eclipse.jgit-4.8.0.201706111038-r.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit/4.8.0.201706111038-r/org.eclipse.jgit-4.8.0.201706111038-r.jar" + ], + "hash": "sha256-SdkS6NXM4N0I3KPTkBiduGkqj34zY8274YJYFGIACro=" + }, + "org.eclipse.jgit-4.8.0.201706111038-r.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit/4.8.0.201706111038-r/org.eclipse.jgit-4.8.0.201706111038-r.pom" + ], + "hash": "sha256-pVap9a38avSbKhLnLcPNfkPbj9whbA81iFlyovWton0=" + } + }, + "org.eclipse.jgit:org.eclipse.jgit-parent:4.8.0.201706111038-r": { + "org.eclipse.jgit-parent-4.8.0.201706111038-r.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit-parent/4.8.0.201706111038-r/org.eclipse.jgit-parent-4.8.0.201706111038-r.pom" + ], + "hash": "sha256-OWpMyJQgaHP/EH0GapliUrC0f1hbiM9X/Dsx6T1JKHg=" + } + }, + "org.slf4j:slf4j-api:1.7.2": { + "slf4j-api-1.7.2.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.jar" + ], + "hash": "sha256-O654m0ATM7Kh0WA7f6Vz4ZkIYoGRcHID9utwjN7iwFI=" + }, + "slf4j-api-1.7.2.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.pom" + ], + "hash": "sha256-LqynGv4KFRb0q9jp/5B4ONJo84yBw6VCzOjX87h8XUw=" + } + }, + "org.slf4j:slf4j-parent:1.7.2": { + "slf4j-parent-1.7.2.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/slf4j/slf4j-parent/1.7.2/slf4j-parent-1.7.2.pom" + ], + "hash": "sha256-HY4ISm8jhK3kJoUzK1Kg7OCQR4ZB3BTA+oxS4eKYRCU=" + } + }, + "org.sonatype.oss:oss-parent:6": { + "oss-parent-6.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/6/oss-parent-6.pom" + ], + "hash": "sha256-tDBtE+j1OSRYobMIZvHP8WGz0uaZmojQWe6jkyyKhJk=" + } + }, + "org.sonatype.oss:oss-parent:5": { + "oss-parent-5.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/5/oss-parent-5.pom" + ], + "hash": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0=" } } } \ No newline at end of file diff --git a/fixtures/golden/ivy/basic.kotlin.json b/fixtures/golden/ivy/basic.kotlin.json index a1bc3fb..bceb43b 100644 --- a/fixtures/golden/ivy/basic.kotlin.json +++ b/fixtures/golden/ivy/basic.kotlin.json @@ -1,34 +1,30 @@ { - "org.opendof.core-java:dof-cipher-sms4": { - "1.0": { - "dof-cipher-sms4-1.0.jar": { - "urls": [ - "https://asset.opendof.org/artifact/org.opendof.core-java/dof-cipher-sms4/1.0/dof-cipher-sms4-1.0.jar" - ], - "hash": "sha256-/Joo51NA6nBPEwFuFcnDc10JQZDE8P3jF3P4gl0vpMA=" - }, - "ivy-1.0.xml": { - "urls": [ - "https://asset.opendof.org/ivy2/org.opendof.core-java/dof-cipher-sms4/1.0/ivy.xml" - ], - "hash": "sha256-rh+pQpXqPP/cmBD8slvwMrKlWCUb3JNzW3l58hd7oJ8=" - } + "org.opendof.core-java:dof-cipher-sms4:1.0": { + "dof-cipher-sms4-1.0.jar": { + "urls": [ + "https://asset.opendof.org/artifact/org.opendof.core-java/dof-cipher-sms4/1.0/jars/dof-cipher-sms4-1.0.jar" + ], + "hash": "sha256-/Joo51NA6nBPEwFuFcnDc10JQZDE8P3jF3P4gl0vpMA=" + }, + "ivy.xml": { + "urls": [ + "https://asset.opendof.org/ivy2/org.opendof.core-java/dof-cipher-sms4/1.0/ivy.xml" + ], + "hash": "sha256-rh+pQpXqPP/cmBD8slvwMrKlWCUb3JNzW3l58hd7oJ8=" } }, - "org.opendof.core-java:dof-oal": { - "7.0.2": { - "dof-oal-7.0.2.jar": { - "urls": [ - "https://asset.opendof.org/artifact/org.opendof.core-java/dof-oal/7.0.2/dof-oal-7.0.2.jar" - ], - "hash": "sha256-u+FUhQGBA8MRl28mXMTSnZ2HY2ysPHq7h9lANmHBK40=" - }, - "ivy-7.0.2.xml": { - "urls": [ - "https://asset.opendof.org/ivy2/org.opendof.core-java/dof-oal/7.0.2/ivy.xml" - ], - "hash": "sha256-KZoUVyoDcfH/B/9V1SVqNiA/XIb3zlwoJkjb/jD+xig=" - } + "org.opendof.core-java:dof-oal:7.0.2": { + "dof-oal-7.0.2.jar": { + "urls": [ + "https://asset.opendof.org/artifact/org.opendof.core-java/dof-oal/7.0.2/jars/dof-oal-7.0.2.jar" + ], + "hash": "sha256-u+FUhQGBA8MRl28mXMTSnZ2HY2ysPHq7h9lANmHBK40=" + }, + "ivy.xml": { + "urls": [ + "https://asset.opendof.org/ivy2/org.opendof.core-java/dof-oal/7.0.2/ivy.xml" + ], + "hash": "sha256-KZoUVyoDcfH/B/9V1SVqNiA/XIb3zlwoJkjb/jD+xig=" } } } \ No newline at end of file diff --git a/fixtures/golden/plugin/resolves-from-default-repo.groovy.json b/fixtures/golden/plugin/resolves-from-default-repo.groovy.json index 039ae71..595b40e 100644 --- a/fixtures/golden/plugin/resolves-from-default-repo.groovy.json +++ b/fixtures/golden/plugin/resolves-from-default-repo.groovy.json @@ -1,592 +1,524 @@ { - "net.java.dev.jna:jna": { - "5.6.0": { - "jna-5.6.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar", - "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar" - ], - "hash": "sha256-VVfiNaiqL5dm1dxgnWeUjyqIMsLXls6p7x1svgs7fq8=" - }, - "jna-5.6.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom", - "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom" - ], - "hash": "sha256-X+gbAlWXjyRhbTexBgi3lJil8wc+HZsgONhzaoMfJgg=" - } + "net.java.dev.jna:jna:5.6.0": { + "jna-5.6.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar", + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar" + ], + "hash": "sha256-VVfiNaiqL5dm1dxgnWeUjyqIMsLXls6p7x1svgs7fq8=" + }, + "jna-5.6.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom", + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom" + ], + "hash": "sha256-X+gbAlWXjyRhbTexBgi3lJil8wc+HZsgONhzaoMfJgg=" } }, - "org.jetbrains.intellij.deps:trove4j": { - "1.0.20200330": { - "trove4j-1.0.20200330.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar", - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" - ], - "hash": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=" - }, - "trove4j-1.0.20200330.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom", - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom" - ], - "hash": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" - } + "org.jetbrains:annotations:13.0": { + "annotations-13.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + ], + "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" + }, + "annotations-13.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" + ], + "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" } }, - "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin": { - "1.7.21": { - "org.jetbrains.kotlin.jvm.gradle.plugin-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.7.21/org.jetbrains.kotlin.jvm.gradle.plugin-1.7.21.pom" - ], - "hash": "sha256-18S+c5nTziimR77ivh3nCwUdpLqoz9X4KYNDJ2UKD30=" - } + "org.jetbrains.intellij.deps:trove4j:1.0.20200330": { + "trove4j-1.0.20200330.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" + ], + "hash": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=" + }, + "trove4j-1.0.20200330.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom" + ], + "hash": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" } }, - "org.jetbrains.kotlin:kotlin-android-extensions": { - "1.7.21": { - "kotlin-android-extensions-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.7.21/kotlin-android-extensions-1.7.21.jar" - ], - "hash": "sha256-JVeliP7QxmbRVq1uDfXjFOqz1p5m6aJyJ5uaRiQ0xq8=" - }, - "kotlin-android-extensions-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.7.21/kotlin-android-extensions-1.7.21.pom" - ], - "hash": "sha256-8pic3UN0A8hyZc/K8GHSFOaGlVyX40ntFWa6FqouDI0=" - } + "org.jetbrains.kotlin:kotlin-android-extensions:1.7.21": { + "kotlin-android-extensions-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.7.21/kotlin-android-extensions-1.7.21.jar" + ], + "hash": "sha256-JVeliP7QxmbRVq1uDfXjFOqz1p5m6aJyJ5uaRiQ0xq8=" + }, + "kotlin-android-extensions-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.7.21/kotlin-android-extensions-1.7.21.pom" + ], + "hash": "sha256-8pic3UN0A8hyZc/K8GHSFOaGlVyX40ntFWa6FqouDI0=" } }, - "org.jetbrains.kotlin:kotlin-annotation-processing-gradle": { - "1.7.21": { - "kotlin-annotation-processing-gradle-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.7.21/kotlin-annotation-processing-gradle-1.7.21.jar" - ], - "hash": "sha256-RhyKdFvNVeRyXykBIVnUdOEor/G4KlPR80UkYFK5cwk=" - }, - "kotlin-annotation-processing-gradle-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.7.21/kotlin-annotation-processing-gradle-1.7.21.pom" - ], - "hash": "sha256-r2JZxfjfTezw8FXmZcTLaP8TtK9c1HfuHTO/7gAaFr4=" - } + "org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.7.21": { + "kotlin-annotation-processing-gradle-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.7.21/kotlin-annotation-processing-gradle-1.7.21.jar" + ], + "hash": "sha256-RhyKdFvNVeRyXykBIVnUdOEor/G4KlPR80UkYFK5cwk=" + }, + "kotlin-annotation-processing-gradle-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.7.21/kotlin-annotation-processing-gradle-1.7.21.pom" + ], + "hash": "sha256-r2JZxfjfTezw8FXmZcTLaP8TtK9c1HfuHTO/7gAaFr4=" } }, - "org.jetbrains.kotlin:kotlin-build-common": { - "1.7.21": { - "kotlin-build-common-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.7.21/kotlin-build-common-1.7.21.jar" - ], - "hash": "sha256-Y3O9HhUPfcsnL1KvvBWZBkCSqddbKM7WvroA/qy6u/8=" - }, - "kotlin-build-common-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.7.21/kotlin-build-common-1.7.21.pom" - ], - "hash": "sha256-msmBVHbIUfFKH3QeG46CJRxyepVGgMdXT4owUn2z718=" - } + "org.jetbrains.kotlin:kotlin-build-common:1.7.21": { + "kotlin-build-common-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.7.21/kotlin-build-common-1.7.21.jar" + ], + "hash": "sha256-Y3O9HhUPfcsnL1KvvBWZBkCSqddbKM7WvroA/qy6u/8=" + }, + "kotlin-build-common-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.7.21/kotlin-build-common-1.7.21.pom" + ], + "hash": "sha256-msmBVHbIUfFKH3QeG46CJRxyepVGgMdXT4owUn2z718=" } }, - "org.jetbrains.kotlin:kotlin-compiler-embeddable": { - "1.7.21": { - "kotlin-compiler-embeddable-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.jar" - ], - "hash": "sha256-Ty5JK8x5XgaA4/h67qGtrp8wbK9SBAuUpvoPiP2skvk=" - }, - "kotlin-compiler-embeddable-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.pom" - ], - "hash": "sha256-CwIzMip2MO/eEzUmjkYSPw1tNjg5gg/TfE7Lbv+njjs=" - } + "org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.21": { + "kotlin-compiler-embeddable-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.jar" + ], + "hash": "sha256-Ty5JK8x5XgaA4/h67qGtrp8wbK9SBAuUpvoPiP2skvk=" + }, + "kotlin-compiler-embeddable-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.pom" + ], + "hash": "sha256-CwIzMip2MO/eEzUmjkYSPw1tNjg5gg/TfE7Lbv+njjs=" } }, - "org.jetbrains.kotlin:kotlin-compiler-runner": { - "1.7.21": { - "kotlin-compiler-runner-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.7.21/kotlin-compiler-runner-1.7.21.jar" - ], - "hash": "sha256-LdVae/7udr97ASbFtx0FuJmBK6a0Cjc1n50T+uIC8yc=" - }, - "kotlin-compiler-runner-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.7.21/kotlin-compiler-runner-1.7.21.pom" - ], - "hash": "sha256-+JDieVykDuyu+jpdjkOND3C7YCo5SUe7rOp2Quqy+Tw=" - } + "org.jetbrains.kotlin:kotlin-compiler-runner:1.7.21": { + "kotlin-compiler-runner-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.7.21/kotlin-compiler-runner-1.7.21.jar" + ], + "hash": "sha256-LdVae/7udr97ASbFtx0FuJmBK6a0Cjc1n50T+uIC8yc=" + }, + "kotlin-compiler-runner-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.7.21/kotlin-compiler-runner-1.7.21.pom" + ], + "hash": "sha256-+JDieVykDuyu+jpdjkOND3C7YCo5SUe7rOp2Quqy+Tw=" } }, - "org.jetbrains.kotlin:kotlin-daemon-client": { - "1.7.21": { - "kotlin-daemon-client-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.7.21/kotlin-daemon-client-1.7.21.jar" - ], - "hash": "sha256-tyPlHq8syE/a+sqHJnk/7I1SFyUNiAv0eDA/JE3UGoU=" - }, - "kotlin-daemon-client-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.7.21/kotlin-daemon-client-1.7.21.pom" - ], - "hash": "sha256-Be4Gj7v3IvWRSlqiWO6KKLZChF9B1/+bVGhtXKJbvxk=" - } + "org.jetbrains.kotlin:kotlin-daemon-client:1.7.21": { + "kotlin-daemon-client-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.7.21/kotlin-daemon-client-1.7.21.jar" + ], + "hash": "sha256-tyPlHq8syE/a+sqHJnk/7I1SFyUNiAv0eDA/JE3UGoU=" + }, + "kotlin-daemon-client-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.7.21/kotlin-daemon-client-1.7.21.pom" + ], + "hash": "sha256-Be4Gj7v3IvWRSlqiWO6KKLZChF9B1/+bVGhtXKJbvxk=" } }, - "org.jetbrains.kotlin:kotlin-daemon-embeddable": { - "1.7.21": { - "kotlin-daemon-embeddable-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.jar" - ], - "hash": "sha256-A+bwJUNSJIlOSe5e2EfLCwtKh540z6uQ1wzakmKnV00=" - }, - "kotlin-daemon-embeddable-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.pom" - ], - "hash": "sha256-vB3pwgh7ouTlQQF6i66PQF7IAKGK5MJH6R8rVedh5kk=" - } + "org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.21": { + "kotlin-daemon-embeddable-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.jar" + ], + "hash": "sha256-A+bwJUNSJIlOSe5e2EfLCwtKh540z6uQ1wzakmKnV00=" + }, + "kotlin-daemon-embeddable-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.pom" + ], + "hash": "sha256-vB3pwgh7ouTlQQF6i66PQF7IAKGK5MJH6R8rVedh5kk=" } }, - "org.jetbrains.kotlin:kotlin-gradle-plugin": { - "1.7.21": { - "kotlin-gradle-plugin-1.7.21-gradle71.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21-gradle71.jar" - ], - "hash": "sha256-P12cqfSxiGOZjcVpNIk9m1ICRRzucJ+uuXbI+rI2cyI=" - }, - "kotlin-gradle-plugin-1.7.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21.module" - ], - "hash": "sha256-j6I2KYtJBynes0XjG8ZPKSj3wbXxwjH8ZtvINlnBZ+E=" - }, - "kotlin-gradle-plugin-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21.pom" - ], - "hash": "sha256-0gTXpKcf6Scv44M9x0IAkan/EJaky6JfcnihlUI1BGk=" - } + "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.21": { + "kotlin-gradle-plugin-1.7.21-gradle71.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21-gradle71.jar" + ], + "hash": "sha256-P12cqfSxiGOZjcVpNIk9m1ICRRzucJ+uuXbI+rI2cyI=" + }, + "kotlin-gradle-plugin-1.7.21.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21.module" + ], + "hash": "sha256-j6I2KYtJBynes0XjG8ZPKSj3wbXxwjH8ZtvINlnBZ+E=" + }, + "kotlin-gradle-plugin-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21.pom" + ], + "hash": "sha256-0gTXpKcf6Scv44M9x0IAkan/EJaky6JfcnihlUI1BGk=" } }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-api": { - "1.7.21": { - "kotlin-gradle-plugin-api-1.7.21-gradle71.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21-gradle71.jar" - ], - "hash": "sha256-rflytT2LY7s2jZA88y6bB+pTZW6PnaXxDfuv03gxviE=" - }, - "kotlin-gradle-plugin-api-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.jar" - ], - "hash": "sha256-rflytT2LY7s2jZA88y6bB+pTZW6PnaXxDfuv03gxviE=" - }, - "kotlin-gradle-plugin-api-1.7.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.module" - ], - "hash": "sha256-zGXnGhweng0JaG9cpJGORShIY1q7VCl15HwYlnw6A10=" - }, - "kotlin-gradle-plugin-api-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.pom" - ], - "hash": "sha256-89unBFqYcdah5QnkF+tjQa3bmHFaL409ZnJlAdq0s0Y=" - } + "org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.7.21": { + "kotlin-gradle-plugin-api-1.7.21-gradle71.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21-gradle71.jar" + ], + "hash": "sha256-rflytT2LY7s2jZA88y6bB+pTZW6PnaXxDfuv03gxviE=" + }, + "kotlin-gradle-plugin-api-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.jar" + ], + "hash": "sha256-rflytT2LY7s2jZA88y6bB+pTZW6PnaXxDfuv03gxviE=" + }, + "kotlin-gradle-plugin-api-1.7.21.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.module" + ], + "hash": "sha256-zGXnGhweng0JaG9cpJGORShIY1q7VCl15HwYlnw6A10=" + }, + "kotlin-gradle-plugin-api-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.pom" + ], + "hash": "sha256-89unBFqYcdah5QnkF+tjQa3bmHFaL409ZnJlAdq0s0Y=" } }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-idea": { - "1.7.21": { - "kotlin-gradle-plugin-idea-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.jar" - ], - "hash": "sha256-C1dqyzeBqctWEKphxbev3zKQ/C2digzUv+FTe4dcReY=" - }, - "kotlin-gradle-plugin-idea-1.7.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.module" - ], - "hash": "sha256-ygHy2JJMcpaXMax+oVbwi7GP60LDEAClIj2dwW1ZuTg=" - }, - "kotlin-gradle-plugin-idea-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.pom" - ], - "hash": "sha256-Flz/idoRsXIpiJPHg0sNQadm1/PdIPoIvfiJxlXD5zc=" - } + "org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.7.21": { + "kotlin-gradle-plugin-idea-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.jar" + ], + "hash": "sha256-C1dqyzeBqctWEKphxbev3zKQ/C2digzUv+FTe4dcReY=" + }, + "kotlin-gradle-plugin-idea-1.7.21.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.module" + ], + "hash": "sha256-ygHy2JJMcpaXMax+oVbwi7GP60LDEAClIj2dwW1ZuTg=" + }, + "kotlin-gradle-plugin-idea-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.pom" + ], + "hash": "sha256-Flz/idoRsXIpiJPHg0sNQadm1/PdIPoIvfiJxlXD5zc=" } }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto": { - "1.7.21": { - "kotlin-gradle-plugin-idea-proto-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.7.21/kotlin-gradle-plugin-idea-proto-1.7.21.jar" - ], - "hash": "sha256-NZhwZybLzo0oE05oiZw9WAv3LH6/kJcUHY28rtgnmHg=" - }, - "kotlin-gradle-plugin-idea-proto-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.7.21/kotlin-gradle-plugin-idea-proto-1.7.21.pom" - ], - "hash": "sha256-PRwDYK9odF8qAyoMAYR//Pnriq1wa/ZZydhAoYTsXyM=" - } + "org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.7.21": { + "kotlin-gradle-plugin-idea-proto-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.7.21/kotlin-gradle-plugin-idea-proto-1.7.21.jar" + ], + "hash": "sha256-NZhwZybLzo0oE05oiZw9WAv3LH6/kJcUHY28rtgnmHg=" + }, + "kotlin-gradle-plugin-idea-proto-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.7.21/kotlin-gradle-plugin-idea-proto-1.7.21.pom" + ], + "hash": "sha256-PRwDYK9odF8qAyoMAYR//Pnriq1wa/ZZydhAoYTsXyM=" } }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-model": { - "1.7.21": { - "kotlin-gradle-plugin-model-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.jar" - ], - "hash": "sha256-FNP/F7o8tMi+uK3297QFB4gTS4kbsTyr5yPIwQ0dDhg=" - }, - "kotlin-gradle-plugin-model-1.7.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.module" - ], - "hash": "sha256-kCJoZCp1guVF4xgQnjdIw3WxOLCKFVuBX2yAi7vuR7U=" - }, - "kotlin-gradle-plugin-model-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.pom" - ], - "hash": "sha256-y2vKOdHhBWBXcMCj3ubUXw58XtPFNGiZ9ycQsf//HaY=" - } + "org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.7.21": { + "kotlin-gradle-plugin-model-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.jar" + ], + "hash": "sha256-FNP/F7o8tMi+uK3297QFB4gTS4kbsTyr5yPIwQ0dDhg=" + }, + "kotlin-gradle-plugin-model-1.7.21.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.module" + ], + "hash": "sha256-kCJoZCp1guVF4xgQnjdIw3WxOLCKFVuBX2yAi7vuR7U=" + }, + "kotlin-gradle-plugin-model-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.pom" + ], + "hash": "sha256-y2vKOdHhBWBXcMCj3ubUXw58XtPFNGiZ9ycQsf//HaY=" } }, - "org.jetbrains.kotlin:kotlin-klib-commonizer-api": { - "1.7.21": { - "kotlin-klib-commonizer-api-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.7.21/kotlin-klib-commonizer-api-1.7.21.jar" - ], - "hash": "sha256-MOGWrbAAH9F7ZgNe2QcNPw5Hui0ycTt1wwPGt7e3FeI=" - }, - "kotlin-klib-commonizer-api-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.7.21/kotlin-klib-commonizer-api-1.7.21.pom" - ], - "hash": "sha256-so6g3vy5lNH7U6e7olh9J0DG0mAXk2UglP1ox0Ul0CA=" - } + "org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.7.21": { + "kotlin-klib-commonizer-api-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.7.21/kotlin-klib-commonizer-api-1.7.21.jar" + ], + "hash": "sha256-MOGWrbAAH9F7ZgNe2QcNPw5Hui0ycTt1wwPGt7e3FeI=" + }, + "kotlin-klib-commonizer-api-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.7.21/kotlin-klib-commonizer-api-1.7.21.pom" + ], + "hash": "sha256-so6g3vy5lNH7U6e7olh9J0DG0mAXk2UglP1ox0Ul0CA=" } }, - "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable": { - "1.7.21": { - "kotlin-klib-commonizer-embeddable-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.21/kotlin-klib-commonizer-embeddable-1.7.21.jar" - ], - "hash": "sha256-nTpktCC+2+20HV5tsJ28h2FKffCBR5PACQqDYJBp+1Y=" - }, - "kotlin-klib-commonizer-embeddable-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.21/kotlin-klib-commonizer-embeddable-1.7.21.pom" - ], - "hash": "sha256-bOmRoyzYOdq3wbf88+1xbr6XgbRgg3ViDC9fH8RwjrA=" - } + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.7.21": { + "kotlin-klib-commonizer-embeddable-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.21/kotlin-klib-commonizer-embeddable-1.7.21.jar" + ], + "hash": "sha256-nTpktCC+2+20HV5tsJ28h2FKffCBR5PACQqDYJBp+1Y=" + }, + "kotlin-klib-commonizer-embeddable-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.21/kotlin-klib-commonizer-embeddable-1.7.21.pom" + ], + "hash": "sha256-bOmRoyzYOdq3wbf88+1xbr6XgbRgg3ViDC9fH8RwjrA=" } }, - "org.jetbrains.kotlin:kotlin-native-utils": { - "1.7.21": { - "kotlin-native-utils-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.7.21/kotlin-native-utils-1.7.21.jar" - ], - "hash": "sha256-k1KYF/2Nj9hlItZqqtyr0UKhcueMz+uUnNKJ40xw+Qs=" - }, - "kotlin-native-utils-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.7.21/kotlin-native-utils-1.7.21.pom" - ], - "hash": "sha256-CEYFdUhagoAZC0g8H3fyCk063IegIXTzDuxVdNm65FY=" - } + "org.jetbrains.kotlin:kotlin-native-utils:1.7.21": { + "kotlin-native-utils-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.7.21/kotlin-native-utils-1.7.21.jar" + ], + "hash": "sha256-k1KYF/2Nj9hlItZqqtyr0UKhcueMz+uUnNKJ40xw+Qs=" + }, + "kotlin-native-utils-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.7.21/kotlin-native-utils-1.7.21.pom" + ], + "hash": "sha256-CEYFdUhagoAZC0g8H3fyCk063IegIXTzDuxVdNm65FY=" } }, - "org.jetbrains.kotlin:kotlin-project-model": { - "1.7.21": { - "kotlin-project-model-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.7.21/kotlin-project-model-1.7.21.jar" - ], - "hash": "sha256-4htTvrj3SxM6Y4mClPSlfcSiKJvoVfZrD5rosVYjFT8=" - }, - "kotlin-project-model-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.7.21/kotlin-project-model-1.7.21.pom" - ], - "hash": "sha256-JQfT7SKoHyssNSxMUOY1MivHEQClFQJN0NtQRifJ8Bs=" - } + "org.jetbrains.kotlin:kotlin-project-model:1.7.21": { + "kotlin-project-model-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.7.21/kotlin-project-model-1.7.21.jar" + ], + "hash": "sha256-4htTvrj3SxM6Y4mClPSlfcSiKJvoVfZrD5rosVYjFT8=" + }, + "kotlin-project-model-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.7.21/kotlin-project-model-1.7.21.pom" + ], + "hash": "sha256-JQfT7SKoHyssNSxMUOY1MivHEQClFQJN0NtQRifJ8Bs=" } }, - "org.jetbrains.kotlin:kotlin-reflect": { - "1.7.21": { - "kotlin-reflect-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.21/kotlin-reflect-1.7.21.jar" - ], - "hash": "sha256-wbF65MSTF+7Sb3ecM8lpBEbFZp6zx+Jsibbg1s8sogQ=" - }, - "kotlin-reflect-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.21/kotlin-reflect-1.7.21.pom" - ], - "hash": "sha256-Xn69/iAG9vHksPORwbqBhTmKj2NF2xpStYTx40Cz8EM=" - } + "org.jetbrains.kotlin:kotlin-reflect:1.7.21": { + "kotlin-reflect-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.21/kotlin-reflect-1.7.21.jar" + ], + "hash": "sha256-wbF65MSTF+7Sb3ecM8lpBEbFZp6zx+Jsibbg1s8sogQ=" + }, + "kotlin-reflect-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.21/kotlin-reflect-1.7.21.pom" + ], + "hash": "sha256-Xn69/iAG9vHksPORwbqBhTmKj2NF2xpStYTx40Cz8EM=" } }, - "org.jetbrains.kotlin:kotlin-script-runtime": { - "1.7.21": { - "kotlin-script-runtime-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.21/kotlin-script-runtime-1.7.21.jar" - ], - "hash": "sha256-LEmLbZiWTK3dS1hLe0mPmxCPaf8akVOrxlt02uQJJ/Y=" - }, - "kotlin-script-runtime-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.21/kotlin-script-runtime-1.7.21.pom" - ], - "hash": "sha256-LuSdd/3Dw6l0akiYCbfGQ3fh2NnEXCDZI+MXI5sicwQ=" - } + "org.jetbrains.kotlin:kotlin-script-runtime:1.7.21": { + "kotlin-script-runtime-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.21/kotlin-script-runtime-1.7.21.jar" + ], + "hash": "sha256-LEmLbZiWTK3dS1hLe0mPmxCPaf8akVOrxlt02uQJJ/Y=" + }, + "kotlin-script-runtime-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.21/kotlin-script-runtime-1.7.21.pom" + ], + "hash": "sha256-LuSdd/3Dw6l0akiYCbfGQ3fh2NnEXCDZI+MXI5sicwQ=" } }, - "org.jetbrains.kotlin:kotlin-scripting-common": { - "1.7.21": { - "kotlin-scripting-common-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.jar" - ], - "hash": "sha256-0ZLMLNlDFecijrkTZqNpdmpoIrPOvKwUwR1MSXM2y6Q=" - }, - "kotlin-scripting-common-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.pom" - ], - "hash": "sha256-2xzYRWGPDLQXOK3H72jZ+NIjZ1sFg+NbsMCEA30AWe4=" - } + "org.jetbrains.kotlin:kotlin-scripting-common:1.7.21": { + "kotlin-scripting-common-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.jar" + ], + "hash": "sha256-0ZLMLNlDFecijrkTZqNpdmpoIrPOvKwUwR1MSXM2y6Q=" + }, + "kotlin-scripting-common-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.pom" + ], + "hash": "sha256-2xzYRWGPDLQXOK3H72jZ+NIjZ1sFg+NbsMCEA30AWe4=" } }, - "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { - "1.7.21": { - "kotlin-scripting-compiler-embeddable-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.jar" - ], - "hash": "sha256-qu9jHwICEl2ZHZgjRxn4ZK1anW40m/DtRGsTd9gXGKE=" - }, - "kotlin-scripting-compiler-embeddable-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.pom" - ], - "hash": "sha256-xHXL2+0BepcMD9y46qu1UNc9E6T+a4e3efxM9S148JM=" - } + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.21": { + "kotlin-scripting-compiler-embeddable-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.jar" + ], + "hash": "sha256-qu9jHwICEl2ZHZgjRxn4ZK1anW40m/DtRGsTd9gXGKE=" + }, + "kotlin-scripting-compiler-embeddable-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.pom" + ], + "hash": "sha256-xHXL2+0BepcMD9y46qu1UNc9E6T+a4e3efxM9S148JM=" } }, - "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { - "1.7.21": { - "kotlin-scripting-compiler-impl-embeddable-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.jar" - ], - "hash": "sha256-ZOK9uuvzgJSzwh5nCX5Qe4NoTaQTi6h6CwmhMgOXVCg=" - }, - "kotlin-scripting-compiler-impl-embeddable-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.pom" - ], - "hash": "sha256-5c0+HEj+qhC1YVqidOFh5/dcFijcJhZ1ALZ0b4gfweM=" - } + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.21": { + "kotlin-scripting-compiler-impl-embeddable-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.jar" + ], + "hash": "sha256-ZOK9uuvzgJSzwh5nCX5Qe4NoTaQTi6h6CwmhMgOXVCg=" + }, + "kotlin-scripting-compiler-impl-embeddable-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.pom" + ], + "hash": "sha256-5c0+HEj+qhC1YVqidOFh5/dcFijcJhZ1ALZ0b4gfweM=" } }, - "org.jetbrains.kotlin:kotlin-scripting-jvm": { - "1.7.21": { - "kotlin-scripting-jvm-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.jar" - ], - "hash": "sha256-Uz441a1oFCoFE0HyK8cO113IUGSxk3rPBRN1XMPwSF4=" - }, - "kotlin-scripting-jvm-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.pom" - ], - "hash": "sha256-cnwtOnluoiOWPu7P7kHvKygsVbZ+V8O0mgFwpMSbfGE=" - } + "org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.21": { + "kotlin-scripting-jvm-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.jar" + ], + "hash": "sha256-Uz441a1oFCoFE0HyK8cO113IUGSxk3rPBRN1XMPwSF4=" + }, + "kotlin-scripting-jvm-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.pom" + ], + "hash": "sha256-cnwtOnluoiOWPu7P7kHvKygsVbZ+V8O0mgFwpMSbfGE=" } }, - "org.jetbrains.kotlin:kotlin-stdlib": { - "1.7.21": { - "kotlin-stdlib-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.21/kotlin-stdlib-1.7.21.jar" - ], - "hash": "sha256-1Gqddz/7ne5P8adIrIRdyOUABcWJMClRdgorUYe93Rk=" - }, - "kotlin-stdlib-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.21/kotlin-stdlib-1.7.21.pom" - ], - "hash": "sha256-mzkq1D4vQhJp9jxiBz+ulCN9LjHe7o9msZzBkbTaBqw=" - } + "org.jetbrains.kotlin:kotlin-stdlib:1.7.21": { + "kotlin-stdlib-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.21/kotlin-stdlib-1.7.21.jar" + ], + "hash": "sha256-1Gqddz/7ne5P8adIrIRdyOUABcWJMClRdgorUYe93Rk=" + }, + "kotlin-stdlib-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.21/kotlin-stdlib-1.7.21.pom" + ], + "hash": "sha256-mzkq1D4vQhJp9jxiBz+ulCN9LjHe7o9msZzBkbTaBqw=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-common": { - "1.7.21": { - "kotlin-stdlib-common-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.21/kotlin-stdlib-common-1.7.21.jar" - ], - "hash": "sha256-5iv+yiNhA6EBciS4oiqEHbXcTbSdgKOb1E27IkaEpmo=" - }, - "kotlin-stdlib-common-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.21/kotlin-stdlib-common-1.7.21.pom" - ], - "hash": "sha256-LuberkeOGLGvushzHFvxoUe1dWiT1Z7b+nEWBcNDX4Q=" - } + "org.jetbrains.kotlin:kotlin-stdlib-common:1.7.21": { + "kotlin-stdlib-common-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.21/kotlin-stdlib-common-1.7.21.jar" + ], + "hash": "sha256-5iv+yiNhA6EBciS4oiqEHbXcTbSdgKOb1E27IkaEpmo=" + }, + "kotlin-stdlib-common-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.21/kotlin-stdlib-common-1.7.21.pom" + ], + "hash": "sha256-LuberkeOGLGvushzHFvxoUe1dWiT1Z7b+nEWBcNDX4Q=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { - "1.7.21": { - "kotlin-stdlib-jdk7-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.21/kotlin-stdlib-jdk7-1.7.21.jar" - ], - "hash": "sha256-uMqg+XFaIYf0+pmQba5Xy6EM7vmn+Ajb7o6vNjWVWKU=" - }, - "kotlin-stdlib-jdk7-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.21/kotlin-stdlib-jdk7-1.7.21.pom" - ], - "hash": "sha256-vy6yU9onofKT0RRpMpRBeF26xRceWB8v7Z1aKm2YaZw=" - } + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.21": { + "kotlin-stdlib-jdk7-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.21/kotlin-stdlib-jdk7-1.7.21.jar" + ], + "hash": "sha256-uMqg+XFaIYf0+pmQba5Xy6EM7vmn+Ajb7o6vNjWVWKU=" + }, + "kotlin-stdlib-jdk7-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.21/kotlin-stdlib-jdk7-1.7.21.pom" + ], + "hash": "sha256-vy6yU9onofKT0RRpMpRBeF26xRceWB8v7Z1aKm2YaZw=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { - "1.7.21": { - "kotlin-stdlib-jdk8-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.7.21/kotlin-stdlib-jdk8-1.7.21.jar" - ], - "hash": "sha256-sy5K5+uwVycz/kOThb8DT1+u6LbFhdQW/s+TPpSR044=" - }, - "kotlin-stdlib-jdk8-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.7.21/kotlin-stdlib-jdk8-1.7.21.pom" - ], - "hash": "sha256-bzuTQ8QS1q5ApMePuKcJhklkUKlSjNusdimojhqlg4k=" - } + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.21": { + "kotlin-stdlib-jdk8-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.7.21/kotlin-stdlib-jdk8-1.7.21.jar" + ], + "hash": "sha256-sy5K5+uwVycz/kOThb8DT1+u6LbFhdQW/s+TPpSR044=" + }, + "kotlin-stdlib-jdk8-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.7.21/kotlin-stdlib-jdk8-1.7.21.pom" + ], + "hash": "sha256-bzuTQ8QS1q5ApMePuKcJhklkUKlSjNusdimojhqlg4k=" } }, - "org.jetbrains.kotlin:kotlin-tooling-core": { - "1.7.21": { - "kotlin-tooling-core-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.7.21/kotlin-tooling-core-1.7.21.jar" - ], - "hash": "sha256-N5fxg1NC+8EuycHU+YMyugKCkaMyUakHySJ9j9lK7kg=" - }, - "kotlin-tooling-core-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.7.21/kotlin-tooling-core-1.7.21.pom" - ], - "hash": "sha256-tw2g1Eorhw7Lz85ZcMMOOOLs3htfQqHdRC0TA5gSKUY=" - } + "org.jetbrains.kotlin:kotlin-tooling-core:1.7.21": { + "kotlin-tooling-core-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.7.21/kotlin-tooling-core-1.7.21.jar" + ], + "hash": "sha256-N5fxg1NC+8EuycHU+YMyugKCkaMyUakHySJ9j9lK7kg=" + }, + "kotlin-tooling-core-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.7.21/kotlin-tooling-core-1.7.21.pom" + ], + "hash": "sha256-tw2g1Eorhw7Lz85ZcMMOOOLs3htfQqHdRC0TA5gSKUY=" } }, - "org.jetbrains.kotlin:kotlin-util-io": { - "1.7.21": { - "kotlin-util-io-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.7.21/kotlin-util-io-1.7.21.jar" - ], - "hash": "sha256-7MKI4AQqAUdgOeILbOXgaRj+8fic+J9V39KO8Xwm800=" - }, - "kotlin-util-io-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.7.21/kotlin-util-io-1.7.21.pom" - ], - "hash": "sha256-ziTM1kPWW+8Cey9uINCnkhdq29ug2eVVmS5CR6Y3Ne8=" - } + "org.jetbrains.kotlin:kotlin-util-io:1.7.21": { + "kotlin-util-io-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.7.21/kotlin-util-io-1.7.21.jar" + ], + "hash": "sha256-7MKI4AQqAUdgOeILbOXgaRj+8fic+J9V39KO8Xwm800=" + }, + "kotlin-util-io-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.7.21/kotlin-util-io-1.7.21.pom" + ], + "hash": "sha256-ziTM1kPWW+8Cey9uINCnkhdq29ug2eVVmS5CR6Y3Ne8=" } }, - "org.jetbrains.kotlin:kotlin-util-klib": { - "1.7.21": { - "kotlin-util-klib-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.7.21/kotlin-util-klib-1.7.21.jar" - ], - "hash": "sha256-UgkkU0RkIN+7h4BN6s6yGfVI53fm3xK35wRKOmaHEgs=" - }, - "kotlin-util-klib-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.7.21/kotlin-util-klib-1.7.21.pom" - ], - "hash": "sha256-D8d7J3Rc+kzuX+AA5tEpmtSUT3rMB4A7u8ws0rAT3oU=" - } + "org.jetbrains.kotlin:kotlin-util-klib:1.7.21": { + "kotlin-util-klib-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.7.21/kotlin-util-klib-1.7.21.jar" + ], + "hash": "sha256-UgkkU0RkIN+7h4BN6s6yGfVI53fm3xK35wRKOmaHEgs=" + }, + "kotlin-util-klib-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.7.21/kotlin-util-klib-1.7.21.pom" + ], + "hash": "sha256-D8d7J3Rc+kzuX+AA5tEpmtSUT3rMB4A7u8ws0rAT3oU=" } }, - "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { - "1.5.0": { - "kotlinx-coroutines-core-jvm-1.5.0.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar" - ], - "hash": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=" - }, - "kotlinx-coroutines-core-jvm-1.5.0.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module" - ], - "hash": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=" - }, - "kotlinx-coroutines-core-jvm-1.5.0.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom" - ], - "hash": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" - } + "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.7.21": { + "org.jetbrains.kotlin.jvm.gradle.plugin-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.7.21/org.jetbrains.kotlin.jvm.gradle.plugin-1.7.21.pom" + ], + "hash": "sha256-18S+c5nTziimR77ivh3nCwUdpLqoz9X4KYNDJ2UKD30=" } }, - "org.jetbrains:annotations": { - "13.0": { - "annotations-13.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" - ], - "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" - }, - "annotations-13.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" - ], - "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" - } + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0": { + "kotlinx-coroutines-core-jvm-1.5.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar" + ], + "hash": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module" + ], + "hash": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom" + ], + "hash": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" } } } \ No newline at end of file diff --git a/fixtures/golden/plugin/resolves-from-default-repo.kotlin.json b/fixtures/golden/plugin/resolves-from-default-repo.kotlin.json index 039ae71..595b40e 100644 --- a/fixtures/golden/plugin/resolves-from-default-repo.kotlin.json +++ b/fixtures/golden/plugin/resolves-from-default-repo.kotlin.json @@ -1,592 +1,524 @@ { - "net.java.dev.jna:jna": { - "5.6.0": { - "jna-5.6.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar", - "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar" - ], - "hash": "sha256-VVfiNaiqL5dm1dxgnWeUjyqIMsLXls6p7x1svgs7fq8=" - }, - "jna-5.6.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom", - "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom" - ], - "hash": "sha256-X+gbAlWXjyRhbTexBgi3lJil8wc+HZsgONhzaoMfJgg=" - } + "net.java.dev.jna:jna:5.6.0": { + "jna-5.6.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar", + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar" + ], + "hash": "sha256-VVfiNaiqL5dm1dxgnWeUjyqIMsLXls6p7x1svgs7fq8=" + }, + "jna-5.6.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom", + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom" + ], + "hash": "sha256-X+gbAlWXjyRhbTexBgi3lJil8wc+HZsgONhzaoMfJgg=" } }, - "org.jetbrains.intellij.deps:trove4j": { - "1.0.20200330": { - "trove4j-1.0.20200330.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar", - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" - ], - "hash": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=" - }, - "trove4j-1.0.20200330.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom", - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom" - ], - "hash": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" - } + "org.jetbrains:annotations:13.0": { + "annotations-13.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + ], + "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" + }, + "annotations-13.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" + ], + "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" } }, - "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin": { - "1.7.21": { - "org.jetbrains.kotlin.jvm.gradle.plugin-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.7.21/org.jetbrains.kotlin.jvm.gradle.plugin-1.7.21.pom" - ], - "hash": "sha256-18S+c5nTziimR77ivh3nCwUdpLqoz9X4KYNDJ2UKD30=" - } + "org.jetbrains.intellij.deps:trove4j:1.0.20200330": { + "trove4j-1.0.20200330.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" + ], + "hash": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=" + }, + "trove4j-1.0.20200330.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom" + ], + "hash": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" } }, - "org.jetbrains.kotlin:kotlin-android-extensions": { - "1.7.21": { - "kotlin-android-extensions-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.7.21/kotlin-android-extensions-1.7.21.jar" - ], - "hash": "sha256-JVeliP7QxmbRVq1uDfXjFOqz1p5m6aJyJ5uaRiQ0xq8=" - }, - "kotlin-android-extensions-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.7.21/kotlin-android-extensions-1.7.21.pom" - ], - "hash": "sha256-8pic3UN0A8hyZc/K8GHSFOaGlVyX40ntFWa6FqouDI0=" - } + "org.jetbrains.kotlin:kotlin-android-extensions:1.7.21": { + "kotlin-android-extensions-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.7.21/kotlin-android-extensions-1.7.21.jar" + ], + "hash": "sha256-JVeliP7QxmbRVq1uDfXjFOqz1p5m6aJyJ5uaRiQ0xq8=" + }, + "kotlin-android-extensions-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.7.21/kotlin-android-extensions-1.7.21.pom" + ], + "hash": "sha256-8pic3UN0A8hyZc/K8GHSFOaGlVyX40ntFWa6FqouDI0=" } }, - "org.jetbrains.kotlin:kotlin-annotation-processing-gradle": { - "1.7.21": { - "kotlin-annotation-processing-gradle-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.7.21/kotlin-annotation-processing-gradle-1.7.21.jar" - ], - "hash": "sha256-RhyKdFvNVeRyXykBIVnUdOEor/G4KlPR80UkYFK5cwk=" - }, - "kotlin-annotation-processing-gradle-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.7.21/kotlin-annotation-processing-gradle-1.7.21.pom" - ], - "hash": "sha256-r2JZxfjfTezw8FXmZcTLaP8TtK9c1HfuHTO/7gAaFr4=" - } + "org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.7.21": { + "kotlin-annotation-processing-gradle-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.7.21/kotlin-annotation-processing-gradle-1.7.21.jar" + ], + "hash": "sha256-RhyKdFvNVeRyXykBIVnUdOEor/G4KlPR80UkYFK5cwk=" + }, + "kotlin-annotation-processing-gradle-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.7.21/kotlin-annotation-processing-gradle-1.7.21.pom" + ], + "hash": "sha256-r2JZxfjfTezw8FXmZcTLaP8TtK9c1HfuHTO/7gAaFr4=" } }, - "org.jetbrains.kotlin:kotlin-build-common": { - "1.7.21": { - "kotlin-build-common-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.7.21/kotlin-build-common-1.7.21.jar" - ], - "hash": "sha256-Y3O9HhUPfcsnL1KvvBWZBkCSqddbKM7WvroA/qy6u/8=" - }, - "kotlin-build-common-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.7.21/kotlin-build-common-1.7.21.pom" - ], - "hash": "sha256-msmBVHbIUfFKH3QeG46CJRxyepVGgMdXT4owUn2z718=" - } + "org.jetbrains.kotlin:kotlin-build-common:1.7.21": { + "kotlin-build-common-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.7.21/kotlin-build-common-1.7.21.jar" + ], + "hash": "sha256-Y3O9HhUPfcsnL1KvvBWZBkCSqddbKM7WvroA/qy6u/8=" + }, + "kotlin-build-common-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.7.21/kotlin-build-common-1.7.21.pom" + ], + "hash": "sha256-msmBVHbIUfFKH3QeG46CJRxyepVGgMdXT4owUn2z718=" } }, - "org.jetbrains.kotlin:kotlin-compiler-embeddable": { - "1.7.21": { - "kotlin-compiler-embeddable-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.jar" - ], - "hash": "sha256-Ty5JK8x5XgaA4/h67qGtrp8wbK9SBAuUpvoPiP2skvk=" - }, - "kotlin-compiler-embeddable-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.pom" - ], - "hash": "sha256-CwIzMip2MO/eEzUmjkYSPw1tNjg5gg/TfE7Lbv+njjs=" - } + "org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.21": { + "kotlin-compiler-embeddable-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.jar" + ], + "hash": "sha256-Ty5JK8x5XgaA4/h67qGtrp8wbK9SBAuUpvoPiP2skvk=" + }, + "kotlin-compiler-embeddable-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.21/kotlin-compiler-embeddable-1.7.21.pom" + ], + "hash": "sha256-CwIzMip2MO/eEzUmjkYSPw1tNjg5gg/TfE7Lbv+njjs=" } }, - "org.jetbrains.kotlin:kotlin-compiler-runner": { - "1.7.21": { - "kotlin-compiler-runner-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.7.21/kotlin-compiler-runner-1.7.21.jar" - ], - "hash": "sha256-LdVae/7udr97ASbFtx0FuJmBK6a0Cjc1n50T+uIC8yc=" - }, - "kotlin-compiler-runner-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.7.21/kotlin-compiler-runner-1.7.21.pom" - ], - "hash": "sha256-+JDieVykDuyu+jpdjkOND3C7YCo5SUe7rOp2Quqy+Tw=" - } + "org.jetbrains.kotlin:kotlin-compiler-runner:1.7.21": { + "kotlin-compiler-runner-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.7.21/kotlin-compiler-runner-1.7.21.jar" + ], + "hash": "sha256-LdVae/7udr97ASbFtx0FuJmBK6a0Cjc1n50T+uIC8yc=" + }, + "kotlin-compiler-runner-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.7.21/kotlin-compiler-runner-1.7.21.pom" + ], + "hash": "sha256-+JDieVykDuyu+jpdjkOND3C7YCo5SUe7rOp2Quqy+Tw=" } }, - "org.jetbrains.kotlin:kotlin-daemon-client": { - "1.7.21": { - "kotlin-daemon-client-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.7.21/kotlin-daemon-client-1.7.21.jar" - ], - "hash": "sha256-tyPlHq8syE/a+sqHJnk/7I1SFyUNiAv0eDA/JE3UGoU=" - }, - "kotlin-daemon-client-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.7.21/kotlin-daemon-client-1.7.21.pom" - ], - "hash": "sha256-Be4Gj7v3IvWRSlqiWO6KKLZChF9B1/+bVGhtXKJbvxk=" - } + "org.jetbrains.kotlin:kotlin-daemon-client:1.7.21": { + "kotlin-daemon-client-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.7.21/kotlin-daemon-client-1.7.21.jar" + ], + "hash": "sha256-tyPlHq8syE/a+sqHJnk/7I1SFyUNiAv0eDA/JE3UGoU=" + }, + "kotlin-daemon-client-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.7.21/kotlin-daemon-client-1.7.21.pom" + ], + "hash": "sha256-Be4Gj7v3IvWRSlqiWO6KKLZChF9B1/+bVGhtXKJbvxk=" } }, - "org.jetbrains.kotlin:kotlin-daemon-embeddable": { - "1.7.21": { - "kotlin-daemon-embeddable-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.jar" - ], - "hash": "sha256-A+bwJUNSJIlOSe5e2EfLCwtKh540z6uQ1wzakmKnV00=" - }, - "kotlin-daemon-embeddable-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.pom" - ], - "hash": "sha256-vB3pwgh7ouTlQQF6i66PQF7IAKGK5MJH6R8rVedh5kk=" - } + "org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.21": { + "kotlin-daemon-embeddable-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.jar" + ], + "hash": "sha256-A+bwJUNSJIlOSe5e2EfLCwtKh540z6uQ1wzakmKnV00=" + }, + "kotlin-daemon-embeddable-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.21/kotlin-daemon-embeddable-1.7.21.pom" + ], + "hash": "sha256-vB3pwgh7ouTlQQF6i66PQF7IAKGK5MJH6R8rVedh5kk=" } }, - "org.jetbrains.kotlin:kotlin-gradle-plugin": { - "1.7.21": { - "kotlin-gradle-plugin-1.7.21-gradle71.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21-gradle71.jar" - ], - "hash": "sha256-P12cqfSxiGOZjcVpNIk9m1ICRRzucJ+uuXbI+rI2cyI=" - }, - "kotlin-gradle-plugin-1.7.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21.module" - ], - "hash": "sha256-j6I2KYtJBynes0XjG8ZPKSj3wbXxwjH8ZtvINlnBZ+E=" - }, - "kotlin-gradle-plugin-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21.pom" - ], - "hash": "sha256-0gTXpKcf6Scv44M9x0IAkan/EJaky6JfcnihlUI1BGk=" - } + "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.21": { + "kotlin-gradle-plugin-1.7.21-gradle71.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21-gradle71.jar" + ], + "hash": "sha256-P12cqfSxiGOZjcVpNIk9m1ICRRzucJ+uuXbI+rI2cyI=" + }, + "kotlin-gradle-plugin-1.7.21.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21.module" + ], + "hash": "sha256-j6I2KYtJBynes0XjG8ZPKSj3wbXxwjH8ZtvINlnBZ+E=" + }, + "kotlin-gradle-plugin-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.21/kotlin-gradle-plugin-1.7.21.pom" + ], + "hash": "sha256-0gTXpKcf6Scv44M9x0IAkan/EJaky6JfcnihlUI1BGk=" } }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-api": { - "1.7.21": { - "kotlin-gradle-plugin-api-1.7.21-gradle71.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21-gradle71.jar" - ], - "hash": "sha256-rflytT2LY7s2jZA88y6bB+pTZW6PnaXxDfuv03gxviE=" - }, - "kotlin-gradle-plugin-api-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.jar" - ], - "hash": "sha256-rflytT2LY7s2jZA88y6bB+pTZW6PnaXxDfuv03gxviE=" - }, - "kotlin-gradle-plugin-api-1.7.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.module" - ], - "hash": "sha256-zGXnGhweng0JaG9cpJGORShIY1q7VCl15HwYlnw6A10=" - }, - "kotlin-gradle-plugin-api-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.pom" - ], - "hash": "sha256-89unBFqYcdah5QnkF+tjQa3bmHFaL409ZnJlAdq0s0Y=" - } + "org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.7.21": { + "kotlin-gradle-plugin-api-1.7.21-gradle71.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21-gradle71.jar" + ], + "hash": "sha256-rflytT2LY7s2jZA88y6bB+pTZW6PnaXxDfuv03gxviE=" + }, + "kotlin-gradle-plugin-api-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.jar" + ], + "hash": "sha256-rflytT2LY7s2jZA88y6bB+pTZW6PnaXxDfuv03gxviE=" + }, + "kotlin-gradle-plugin-api-1.7.21.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.module" + ], + "hash": "sha256-zGXnGhweng0JaG9cpJGORShIY1q7VCl15HwYlnw6A10=" + }, + "kotlin-gradle-plugin-api-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.21/kotlin-gradle-plugin-api-1.7.21.pom" + ], + "hash": "sha256-89unBFqYcdah5QnkF+tjQa3bmHFaL409ZnJlAdq0s0Y=" } }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-idea": { - "1.7.21": { - "kotlin-gradle-plugin-idea-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.jar" - ], - "hash": "sha256-C1dqyzeBqctWEKphxbev3zKQ/C2digzUv+FTe4dcReY=" - }, - "kotlin-gradle-plugin-idea-1.7.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.module" - ], - "hash": "sha256-ygHy2JJMcpaXMax+oVbwi7GP60LDEAClIj2dwW1ZuTg=" - }, - "kotlin-gradle-plugin-idea-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.pom" - ], - "hash": "sha256-Flz/idoRsXIpiJPHg0sNQadm1/PdIPoIvfiJxlXD5zc=" - } + "org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.7.21": { + "kotlin-gradle-plugin-idea-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.jar" + ], + "hash": "sha256-C1dqyzeBqctWEKphxbev3zKQ/C2digzUv+FTe4dcReY=" + }, + "kotlin-gradle-plugin-idea-1.7.21.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.module" + ], + "hash": "sha256-ygHy2JJMcpaXMax+oVbwi7GP60LDEAClIj2dwW1ZuTg=" + }, + "kotlin-gradle-plugin-idea-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.21/kotlin-gradle-plugin-idea-1.7.21.pom" + ], + "hash": "sha256-Flz/idoRsXIpiJPHg0sNQadm1/PdIPoIvfiJxlXD5zc=" } }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto": { - "1.7.21": { - "kotlin-gradle-plugin-idea-proto-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.7.21/kotlin-gradle-plugin-idea-proto-1.7.21.jar" - ], - "hash": "sha256-NZhwZybLzo0oE05oiZw9WAv3LH6/kJcUHY28rtgnmHg=" - }, - "kotlin-gradle-plugin-idea-proto-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.7.21/kotlin-gradle-plugin-idea-proto-1.7.21.pom" - ], - "hash": "sha256-PRwDYK9odF8qAyoMAYR//Pnriq1wa/ZZydhAoYTsXyM=" - } + "org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.7.21": { + "kotlin-gradle-plugin-idea-proto-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.7.21/kotlin-gradle-plugin-idea-proto-1.7.21.jar" + ], + "hash": "sha256-NZhwZybLzo0oE05oiZw9WAv3LH6/kJcUHY28rtgnmHg=" + }, + "kotlin-gradle-plugin-idea-proto-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.7.21/kotlin-gradle-plugin-idea-proto-1.7.21.pom" + ], + "hash": "sha256-PRwDYK9odF8qAyoMAYR//Pnriq1wa/ZZydhAoYTsXyM=" } }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-model": { - "1.7.21": { - "kotlin-gradle-plugin-model-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.jar" - ], - "hash": "sha256-FNP/F7o8tMi+uK3297QFB4gTS4kbsTyr5yPIwQ0dDhg=" - }, - "kotlin-gradle-plugin-model-1.7.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.module" - ], - "hash": "sha256-kCJoZCp1guVF4xgQnjdIw3WxOLCKFVuBX2yAi7vuR7U=" - }, - "kotlin-gradle-plugin-model-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.pom" - ], - "hash": "sha256-y2vKOdHhBWBXcMCj3ubUXw58XtPFNGiZ9ycQsf//HaY=" - } + "org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.7.21": { + "kotlin-gradle-plugin-model-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.jar" + ], + "hash": "sha256-FNP/F7o8tMi+uK3297QFB4gTS4kbsTyr5yPIwQ0dDhg=" + }, + "kotlin-gradle-plugin-model-1.7.21.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.module" + ], + "hash": "sha256-kCJoZCp1guVF4xgQnjdIw3WxOLCKFVuBX2yAi7vuR7U=" + }, + "kotlin-gradle-plugin-model-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.21/kotlin-gradle-plugin-model-1.7.21.pom" + ], + "hash": "sha256-y2vKOdHhBWBXcMCj3ubUXw58XtPFNGiZ9ycQsf//HaY=" } }, - "org.jetbrains.kotlin:kotlin-klib-commonizer-api": { - "1.7.21": { - "kotlin-klib-commonizer-api-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.7.21/kotlin-klib-commonizer-api-1.7.21.jar" - ], - "hash": "sha256-MOGWrbAAH9F7ZgNe2QcNPw5Hui0ycTt1wwPGt7e3FeI=" - }, - "kotlin-klib-commonizer-api-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.7.21/kotlin-klib-commonizer-api-1.7.21.pom" - ], - "hash": "sha256-so6g3vy5lNH7U6e7olh9J0DG0mAXk2UglP1ox0Ul0CA=" - } + "org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.7.21": { + "kotlin-klib-commonizer-api-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.7.21/kotlin-klib-commonizer-api-1.7.21.jar" + ], + "hash": "sha256-MOGWrbAAH9F7ZgNe2QcNPw5Hui0ycTt1wwPGt7e3FeI=" + }, + "kotlin-klib-commonizer-api-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.7.21/kotlin-klib-commonizer-api-1.7.21.pom" + ], + "hash": "sha256-so6g3vy5lNH7U6e7olh9J0DG0mAXk2UglP1ox0Ul0CA=" } }, - "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable": { - "1.7.21": { - "kotlin-klib-commonizer-embeddable-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.21/kotlin-klib-commonizer-embeddable-1.7.21.jar" - ], - "hash": "sha256-nTpktCC+2+20HV5tsJ28h2FKffCBR5PACQqDYJBp+1Y=" - }, - "kotlin-klib-commonizer-embeddable-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.21/kotlin-klib-commonizer-embeddable-1.7.21.pom" - ], - "hash": "sha256-bOmRoyzYOdq3wbf88+1xbr6XgbRgg3ViDC9fH8RwjrA=" - } + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.7.21": { + "kotlin-klib-commonizer-embeddable-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.21/kotlin-klib-commonizer-embeddable-1.7.21.jar" + ], + "hash": "sha256-nTpktCC+2+20HV5tsJ28h2FKffCBR5PACQqDYJBp+1Y=" + }, + "kotlin-klib-commonizer-embeddable-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.21/kotlin-klib-commonizer-embeddable-1.7.21.pom" + ], + "hash": "sha256-bOmRoyzYOdq3wbf88+1xbr6XgbRgg3ViDC9fH8RwjrA=" } }, - "org.jetbrains.kotlin:kotlin-native-utils": { - "1.7.21": { - "kotlin-native-utils-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.7.21/kotlin-native-utils-1.7.21.jar" - ], - "hash": "sha256-k1KYF/2Nj9hlItZqqtyr0UKhcueMz+uUnNKJ40xw+Qs=" - }, - "kotlin-native-utils-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.7.21/kotlin-native-utils-1.7.21.pom" - ], - "hash": "sha256-CEYFdUhagoAZC0g8H3fyCk063IegIXTzDuxVdNm65FY=" - } + "org.jetbrains.kotlin:kotlin-native-utils:1.7.21": { + "kotlin-native-utils-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.7.21/kotlin-native-utils-1.7.21.jar" + ], + "hash": "sha256-k1KYF/2Nj9hlItZqqtyr0UKhcueMz+uUnNKJ40xw+Qs=" + }, + "kotlin-native-utils-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.7.21/kotlin-native-utils-1.7.21.pom" + ], + "hash": "sha256-CEYFdUhagoAZC0g8H3fyCk063IegIXTzDuxVdNm65FY=" } }, - "org.jetbrains.kotlin:kotlin-project-model": { - "1.7.21": { - "kotlin-project-model-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.7.21/kotlin-project-model-1.7.21.jar" - ], - "hash": "sha256-4htTvrj3SxM6Y4mClPSlfcSiKJvoVfZrD5rosVYjFT8=" - }, - "kotlin-project-model-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.7.21/kotlin-project-model-1.7.21.pom" - ], - "hash": "sha256-JQfT7SKoHyssNSxMUOY1MivHEQClFQJN0NtQRifJ8Bs=" - } + "org.jetbrains.kotlin:kotlin-project-model:1.7.21": { + "kotlin-project-model-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.7.21/kotlin-project-model-1.7.21.jar" + ], + "hash": "sha256-4htTvrj3SxM6Y4mClPSlfcSiKJvoVfZrD5rosVYjFT8=" + }, + "kotlin-project-model-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.7.21/kotlin-project-model-1.7.21.pom" + ], + "hash": "sha256-JQfT7SKoHyssNSxMUOY1MivHEQClFQJN0NtQRifJ8Bs=" } }, - "org.jetbrains.kotlin:kotlin-reflect": { - "1.7.21": { - "kotlin-reflect-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.21/kotlin-reflect-1.7.21.jar" - ], - "hash": "sha256-wbF65MSTF+7Sb3ecM8lpBEbFZp6zx+Jsibbg1s8sogQ=" - }, - "kotlin-reflect-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.21/kotlin-reflect-1.7.21.pom" - ], - "hash": "sha256-Xn69/iAG9vHksPORwbqBhTmKj2NF2xpStYTx40Cz8EM=" - } + "org.jetbrains.kotlin:kotlin-reflect:1.7.21": { + "kotlin-reflect-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.21/kotlin-reflect-1.7.21.jar" + ], + "hash": "sha256-wbF65MSTF+7Sb3ecM8lpBEbFZp6zx+Jsibbg1s8sogQ=" + }, + "kotlin-reflect-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.21/kotlin-reflect-1.7.21.pom" + ], + "hash": "sha256-Xn69/iAG9vHksPORwbqBhTmKj2NF2xpStYTx40Cz8EM=" } }, - "org.jetbrains.kotlin:kotlin-script-runtime": { - "1.7.21": { - "kotlin-script-runtime-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.21/kotlin-script-runtime-1.7.21.jar" - ], - "hash": "sha256-LEmLbZiWTK3dS1hLe0mPmxCPaf8akVOrxlt02uQJJ/Y=" - }, - "kotlin-script-runtime-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.21/kotlin-script-runtime-1.7.21.pom" - ], - "hash": "sha256-LuSdd/3Dw6l0akiYCbfGQ3fh2NnEXCDZI+MXI5sicwQ=" - } + "org.jetbrains.kotlin:kotlin-script-runtime:1.7.21": { + "kotlin-script-runtime-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.21/kotlin-script-runtime-1.7.21.jar" + ], + "hash": "sha256-LEmLbZiWTK3dS1hLe0mPmxCPaf8akVOrxlt02uQJJ/Y=" + }, + "kotlin-script-runtime-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.21/kotlin-script-runtime-1.7.21.pom" + ], + "hash": "sha256-LuSdd/3Dw6l0akiYCbfGQ3fh2NnEXCDZI+MXI5sicwQ=" } }, - "org.jetbrains.kotlin:kotlin-scripting-common": { - "1.7.21": { - "kotlin-scripting-common-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.jar" - ], - "hash": "sha256-0ZLMLNlDFecijrkTZqNpdmpoIrPOvKwUwR1MSXM2y6Q=" - }, - "kotlin-scripting-common-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.pom" - ], - "hash": "sha256-2xzYRWGPDLQXOK3H72jZ+NIjZ1sFg+NbsMCEA30AWe4=" - } + "org.jetbrains.kotlin:kotlin-scripting-common:1.7.21": { + "kotlin-scripting-common-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.jar" + ], + "hash": "sha256-0ZLMLNlDFecijrkTZqNpdmpoIrPOvKwUwR1MSXM2y6Q=" + }, + "kotlin-scripting-common-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.21/kotlin-scripting-common-1.7.21.pom" + ], + "hash": "sha256-2xzYRWGPDLQXOK3H72jZ+NIjZ1sFg+NbsMCEA30AWe4=" } }, - "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { - "1.7.21": { - "kotlin-scripting-compiler-embeddable-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.jar" - ], - "hash": "sha256-qu9jHwICEl2ZHZgjRxn4ZK1anW40m/DtRGsTd9gXGKE=" - }, - "kotlin-scripting-compiler-embeddable-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.pom" - ], - "hash": "sha256-xHXL2+0BepcMD9y46qu1UNc9E6T+a4e3efxM9S148JM=" - } + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.21": { + "kotlin-scripting-compiler-embeddable-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.jar" + ], + "hash": "sha256-qu9jHwICEl2ZHZgjRxn4ZK1anW40m/DtRGsTd9gXGKE=" + }, + "kotlin-scripting-compiler-embeddable-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.21/kotlin-scripting-compiler-embeddable-1.7.21.pom" + ], + "hash": "sha256-xHXL2+0BepcMD9y46qu1UNc9E6T+a4e3efxM9S148JM=" } }, - "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { - "1.7.21": { - "kotlin-scripting-compiler-impl-embeddable-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.jar" - ], - "hash": "sha256-ZOK9uuvzgJSzwh5nCX5Qe4NoTaQTi6h6CwmhMgOXVCg=" - }, - "kotlin-scripting-compiler-impl-embeddable-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.pom" - ], - "hash": "sha256-5c0+HEj+qhC1YVqidOFh5/dcFijcJhZ1ALZ0b4gfweM=" - } + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.21": { + "kotlin-scripting-compiler-impl-embeddable-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.jar" + ], + "hash": "sha256-ZOK9uuvzgJSzwh5nCX5Qe4NoTaQTi6h6CwmhMgOXVCg=" + }, + "kotlin-scripting-compiler-impl-embeddable-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.21/kotlin-scripting-compiler-impl-embeddable-1.7.21.pom" + ], + "hash": "sha256-5c0+HEj+qhC1YVqidOFh5/dcFijcJhZ1ALZ0b4gfweM=" } }, - "org.jetbrains.kotlin:kotlin-scripting-jvm": { - "1.7.21": { - "kotlin-scripting-jvm-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.jar" - ], - "hash": "sha256-Uz441a1oFCoFE0HyK8cO113IUGSxk3rPBRN1XMPwSF4=" - }, - "kotlin-scripting-jvm-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.pom" - ], - "hash": "sha256-cnwtOnluoiOWPu7P7kHvKygsVbZ+V8O0mgFwpMSbfGE=" - } + "org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.21": { + "kotlin-scripting-jvm-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.jar" + ], + "hash": "sha256-Uz441a1oFCoFE0HyK8cO113IUGSxk3rPBRN1XMPwSF4=" + }, + "kotlin-scripting-jvm-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.21/kotlin-scripting-jvm-1.7.21.pom" + ], + "hash": "sha256-cnwtOnluoiOWPu7P7kHvKygsVbZ+V8O0mgFwpMSbfGE=" } }, - "org.jetbrains.kotlin:kotlin-stdlib": { - "1.7.21": { - "kotlin-stdlib-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.21/kotlin-stdlib-1.7.21.jar" - ], - "hash": "sha256-1Gqddz/7ne5P8adIrIRdyOUABcWJMClRdgorUYe93Rk=" - }, - "kotlin-stdlib-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.21/kotlin-stdlib-1.7.21.pom" - ], - "hash": "sha256-mzkq1D4vQhJp9jxiBz+ulCN9LjHe7o9msZzBkbTaBqw=" - } + "org.jetbrains.kotlin:kotlin-stdlib:1.7.21": { + "kotlin-stdlib-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.21/kotlin-stdlib-1.7.21.jar" + ], + "hash": "sha256-1Gqddz/7ne5P8adIrIRdyOUABcWJMClRdgorUYe93Rk=" + }, + "kotlin-stdlib-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.21/kotlin-stdlib-1.7.21.pom" + ], + "hash": "sha256-mzkq1D4vQhJp9jxiBz+ulCN9LjHe7o9msZzBkbTaBqw=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-common": { - "1.7.21": { - "kotlin-stdlib-common-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.21/kotlin-stdlib-common-1.7.21.jar" - ], - "hash": "sha256-5iv+yiNhA6EBciS4oiqEHbXcTbSdgKOb1E27IkaEpmo=" - }, - "kotlin-stdlib-common-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.21/kotlin-stdlib-common-1.7.21.pom" - ], - "hash": "sha256-LuberkeOGLGvushzHFvxoUe1dWiT1Z7b+nEWBcNDX4Q=" - } + "org.jetbrains.kotlin:kotlin-stdlib-common:1.7.21": { + "kotlin-stdlib-common-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.21/kotlin-stdlib-common-1.7.21.jar" + ], + "hash": "sha256-5iv+yiNhA6EBciS4oiqEHbXcTbSdgKOb1E27IkaEpmo=" + }, + "kotlin-stdlib-common-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.21/kotlin-stdlib-common-1.7.21.pom" + ], + "hash": "sha256-LuberkeOGLGvushzHFvxoUe1dWiT1Z7b+nEWBcNDX4Q=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { - "1.7.21": { - "kotlin-stdlib-jdk7-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.21/kotlin-stdlib-jdk7-1.7.21.jar" - ], - "hash": "sha256-uMqg+XFaIYf0+pmQba5Xy6EM7vmn+Ajb7o6vNjWVWKU=" - }, - "kotlin-stdlib-jdk7-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.21/kotlin-stdlib-jdk7-1.7.21.pom" - ], - "hash": "sha256-vy6yU9onofKT0RRpMpRBeF26xRceWB8v7Z1aKm2YaZw=" - } + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.21": { + "kotlin-stdlib-jdk7-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.21/kotlin-stdlib-jdk7-1.7.21.jar" + ], + "hash": "sha256-uMqg+XFaIYf0+pmQba5Xy6EM7vmn+Ajb7o6vNjWVWKU=" + }, + "kotlin-stdlib-jdk7-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.21/kotlin-stdlib-jdk7-1.7.21.pom" + ], + "hash": "sha256-vy6yU9onofKT0RRpMpRBeF26xRceWB8v7Z1aKm2YaZw=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { - "1.7.21": { - "kotlin-stdlib-jdk8-1.7.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.7.21/kotlin-stdlib-jdk8-1.7.21.jar" - ], - "hash": "sha256-sy5K5+uwVycz/kOThb8DT1+u6LbFhdQW/s+TPpSR044=" - }, - "kotlin-stdlib-jdk8-1.7.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.7.21/kotlin-stdlib-jdk8-1.7.21.pom" - ], - "hash": "sha256-bzuTQ8QS1q5ApMePuKcJhklkUKlSjNusdimojhqlg4k=" - } + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.21": { + "kotlin-stdlib-jdk8-1.7.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.7.21/kotlin-stdlib-jdk8-1.7.21.jar" + ], + "hash": "sha256-sy5K5+uwVycz/kOThb8DT1+u6LbFhdQW/s+TPpSR044=" + }, + "kotlin-stdlib-jdk8-1.7.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.7.21/kotlin-stdlib-jdk8-1.7.21.pom" + ], + "hash": "sha256-bzuTQ8QS1q5ApMePuKcJhklkUKlSjNusdimojhqlg4k=" } }, - "org.jetbrains.kotlin:kotlin-tooling-core": { - "1.7.21": { - "kotlin-tooling-core-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.7.21/kotlin-tooling-core-1.7.21.jar" - ], - "hash": "sha256-N5fxg1NC+8EuycHU+YMyugKCkaMyUakHySJ9j9lK7kg=" - }, - "kotlin-tooling-core-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.7.21/kotlin-tooling-core-1.7.21.pom" - ], - "hash": "sha256-tw2g1Eorhw7Lz85ZcMMOOOLs3htfQqHdRC0TA5gSKUY=" - } + "org.jetbrains.kotlin:kotlin-tooling-core:1.7.21": { + "kotlin-tooling-core-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.7.21/kotlin-tooling-core-1.7.21.jar" + ], + "hash": "sha256-N5fxg1NC+8EuycHU+YMyugKCkaMyUakHySJ9j9lK7kg=" + }, + "kotlin-tooling-core-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.7.21/kotlin-tooling-core-1.7.21.pom" + ], + "hash": "sha256-tw2g1Eorhw7Lz85ZcMMOOOLs3htfQqHdRC0TA5gSKUY=" } }, - "org.jetbrains.kotlin:kotlin-util-io": { - "1.7.21": { - "kotlin-util-io-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.7.21/kotlin-util-io-1.7.21.jar" - ], - "hash": "sha256-7MKI4AQqAUdgOeILbOXgaRj+8fic+J9V39KO8Xwm800=" - }, - "kotlin-util-io-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.7.21/kotlin-util-io-1.7.21.pom" - ], - "hash": "sha256-ziTM1kPWW+8Cey9uINCnkhdq29ug2eVVmS5CR6Y3Ne8=" - } + "org.jetbrains.kotlin:kotlin-util-io:1.7.21": { + "kotlin-util-io-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.7.21/kotlin-util-io-1.7.21.jar" + ], + "hash": "sha256-7MKI4AQqAUdgOeILbOXgaRj+8fic+J9V39KO8Xwm800=" + }, + "kotlin-util-io-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.7.21/kotlin-util-io-1.7.21.pom" + ], + "hash": "sha256-ziTM1kPWW+8Cey9uINCnkhdq29ug2eVVmS5CR6Y3Ne8=" } }, - "org.jetbrains.kotlin:kotlin-util-klib": { - "1.7.21": { - "kotlin-util-klib-1.7.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.7.21/kotlin-util-klib-1.7.21.jar" - ], - "hash": "sha256-UgkkU0RkIN+7h4BN6s6yGfVI53fm3xK35wRKOmaHEgs=" - }, - "kotlin-util-klib-1.7.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.7.21/kotlin-util-klib-1.7.21.pom" - ], - "hash": "sha256-D8d7J3Rc+kzuX+AA5tEpmtSUT3rMB4A7u8ws0rAT3oU=" - } + "org.jetbrains.kotlin:kotlin-util-klib:1.7.21": { + "kotlin-util-klib-1.7.21.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.7.21/kotlin-util-klib-1.7.21.jar" + ], + "hash": "sha256-UgkkU0RkIN+7h4BN6s6yGfVI53fm3xK35wRKOmaHEgs=" + }, + "kotlin-util-klib-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.7.21/kotlin-util-klib-1.7.21.pom" + ], + "hash": "sha256-D8d7J3Rc+kzuX+AA5tEpmtSUT3rMB4A7u8ws0rAT3oU=" } }, - "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { - "1.5.0": { - "kotlinx-coroutines-core-jvm-1.5.0.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar" - ], - "hash": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=" - }, - "kotlinx-coroutines-core-jvm-1.5.0.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module" - ], - "hash": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=" - }, - "kotlinx-coroutines-core-jvm-1.5.0.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom" - ], - "hash": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" - } + "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.7.21": { + "org.jetbrains.kotlin.jvm.gradle.plugin-1.7.21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.7.21/org.jetbrains.kotlin.jvm.gradle.plugin-1.7.21.pom" + ], + "hash": "sha256-18S+c5nTziimR77ivh3nCwUdpLqoz9X4KYNDJ2UKD30=" } }, - "org.jetbrains:annotations": { - "13.0": { - "annotations-13.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" - ], - "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" - }, - "annotations-13.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" - ], - "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" - } + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0": { + "kotlinx-coroutines-core-jvm-1.5.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar" + ], + "hash": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module" + ], + "hash": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom" + ], + "hash": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" } } } \ No newline at end of file diff --git a/fixtures/golden/settings/buildscript.groovy.json b/fixtures/golden/settings/buildscript.groovy.json index 8865774..d4c2a74 100644 --- a/fixtures/golden/settings/buildscript.groovy.json +++ b/fixtures/golden/settings/buildscript.groovy.json @@ -1,18 +1,16 @@ { - "org.apache:test": { - "1.0.0": { - "test-1.0.0.jar": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.jar" - ], - "hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8=" - }, - "test-1.0.0.pom": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.pom" - ], - "hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To=" - } + "org.apache:test:1.0.0": { + "test-1.0.0.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.jar" + ], + "hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8=" + }, + "test-1.0.0.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.pom" + ], + "hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To=" } } } \ No newline at end of file diff --git a/fixtures/golden/settings/dependency-resolution-management.kotlin.json b/fixtures/golden/settings/dependency-resolution-management.kotlin.json index 8865774..d4c2a74 100644 --- a/fixtures/golden/settings/dependency-resolution-management.kotlin.json +++ b/fixtures/golden/settings/dependency-resolution-management.kotlin.json @@ -1,18 +1,16 @@ { - "org.apache:test": { - "1.0.0": { - "test-1.0.0.jar": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.jar" - ], - "hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8=" - }, - "test-1.0.0.pom": { - "urls": [ - "file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.pom" - ], - "hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To=" - } + "org.apache:test:1.0.0": { + "test-1.0.0.jar": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.jar" + ], + "hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8=" + }, + "test-1.0.0.pom": { + "urls": [ + "http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.pom" + ], + "hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To=" } } } \ No newline at end of file diff --git a/fixtures/golden/subprojects/multi-module.groovy.json b/fixtures/golden/subprojects/multi-module.groovy.json index d9ca950..eff775d 100644 --- a/fixtures/golden/subprojects/multi-module.groovy.json +++ b/fixtures/golden/subprojects/multi-module.groovy.json @@ -1,128 +1,146 @@ { - "com.squareup.moshi:moshi": { - "1.8.0": { - "moshi-1.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar" - ], - "hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo=" - }, - "moshi-1.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom" - ], - "hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8=" - } - } - }, - "com.squareup.okio:okio": { - "2.2.2": { - "okio-2.2.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar" - ], - "hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs=" - }, - "okio-2.2.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom" - ], - "hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs=" - } + "com.squareup.moshi:moshi:1.8.0": { + "moshi-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar" + ], + "hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo=" }, - "1.16.0": { - "okio-1.16.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.jar" - ], - "hash": "sha256-7ASE/xkDZA44RcKxCruZ7/LTIwj/40WeX5IwmkUbnH4=" - }, - "okio-1.16.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.pom" - ], - "hash": "sha256-HSUhYhwIdRI6qRMRsv6O3v0O2T9mvm3+oYzGG8XJnjY=" - } + "moshi-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom" + ], + "hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8=" } }, - "junit:junit": { - "4.12": { - "junit-4.12.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.jar" - ], - "hash": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=" - }, - "junit-4.12.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.pom" - ], - "hash": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ=" - } + "com.squareup.moshi:moshi-parent:1.8.0": { + "moshi-parent-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi-parent/1.8.0/moshi-parent-1.8.0.pom" + ], + "hash": "sha256-2t8UzX/uSexrgqkORdccwax1imVTFwGtlNy+98xgP7c=" } }, - "org.hamcrest:hamcrest-core": { - "1.3": { - "hamcrest-core-1.3.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar" - ], - "hash": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=" - }, - "hamcrest-core-1.3.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom" - ], - "hash": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" - } + "com.squareup.okio:okio:2.2.2": { + "okio-2.2.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar" + ], + "hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs=" + }, + "okio-2.2.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom" + ], + "hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs=" } }, - "org.jetbrains.kotlin:kotlin-stdlib": { - "1.2.60": { - "kotlin-stdlib-1.2.60.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar" - ], - "hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE=" - }, - "kotlin-stdlib-1.2.60.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom" - ], - "hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg=" - } + "com.squareup.okio:okio:1.16.0": { + "okio-1.16.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.jar" + ], + "hash": "sha256-7ASE/xkDZA44RcKxCruZ7/LTIwj/40WeX5IwmkUbnH4=" + }, + "okio-1.16.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.pom" + ], + "hash": "sha256-HSUhYhwIdRI6qRMRsv6O3v0O2T9mvm3+oYzGG8XJnjY=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-common": { - "1.2.60": { - "kotlin-stdlib-common-1.2.60.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar" - ], - "hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E=" - }, - "kotlin-stdlib-common-1.2.60.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom" - ], - "hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE=" - } + "com.squareup.okio:okio-parent:1.16.0": { + "okio-parent-1.16.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.16.0/okio-parent-1.16.0.pom" + ], + "hash": "sha256-C3Qkw/qrO7UzMJbjmVf4j41QzgyYv7pxo/z6oKrwVSw=" } }, - "org.jetbrains:annotations": { - "13.0": { - "annotations-13.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" - ], - "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" - }, - "annotations-13.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" - ], - "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" - } + "junit:junit:4.12": { + "junit-4.12.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.jar" + ], + "hash": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=" + }, + "junit-4.12.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.pom" + ], + "hash": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ=" + } + }, + "org.hamcrest:hamcrest-core:1.3": { + "hamcrest-core-1.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar" + ], + "hash": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=" + }, + "hamcrest-core-1.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom" + ], + "hash": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" + } + }, + "org.hamcrest:hamcrest-parent:1.3": { + "hamcrest-parent-1.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom" + ], + "hash": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" + } + }, + "org.jetbrains:annotations:13.0": { + "annotations-13.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + ], + "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" + }, + "annotations-13.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" + ], + "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60": { + "kotlin-stdlib-1.2.60.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar" + ], + "hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE=" + }, + "kotlin-stdlib-1.2.60.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom" + ], + "hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60": { + "kotlin-stdlib-common-1.2.60.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar" + ], + "hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E=" + }, + "kotlin-stdlib-common-1.2.60.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom" + ], + "hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE=" + } + }, + "org.sonatype.oss:oss-parent:7": { + "oss-parent-7.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom" + ], + "hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" } } } \ No newline at end of file diff --git a/fixtures/golden/subprojects/multi-module.kotlin.json b/fixtures/golden/subprojects/multi-module.kotlin.json index d9ca950..eff775d 100644 --- a/fixtures/golden/subprojects/multi-module.kotlin.json +++ b/fixtures/golden/subprojects/multi-module.kotlin.json @@ -1,128 +1,146 @@ { - "com.squareup.moshi:moshi": { - "1.8.0": { - "moshi-1.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar" - ], - "hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo=" - }, - "moshi-1.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom" - ], - "hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8=" - } - } - }, - "com.squareup.okio:okio": { - "2.2.2": { - "okio-2.2.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar" - ], - "hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs=" - }, - "okio-2.2.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom" - ], - "hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs=" - } + "com.squareup.moshi:moshi:1.8.0": { + "moshi-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar" + ], + "hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo=" }, - "1.16.0": { - "okio-1.16.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.jar" - ], - "hash": "sha256-7ASE/xkDZA44RcKxCruZ7/LTIwj/40WeX5IwmkUbnH4=" - }, - "okio-1.16.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.pom" - ], - "hash": "sha256-HSUhYhwIdRI6qRMRsv6O3v0O2T9mvm3+oYzGG8XJnjY=" - } + "moshi-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom" + ], + "hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8=" } }, - "junit:junit": { - "4.12": { - "junit-4.12.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.jar" - ], - "hash": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=" - }, - "junit-4.12.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.pom" - ], - "hash": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ=" - } + "com.squareup.moshi:moshi-parent:1.8.0": { + "moshi-parent-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi-parent/1.8.0/moshi-parent-1.8.0.pom" + ], + "hash": "sha256-2t8UzX/uSexrgqkORdccwax1imVTFwGtlNy+98xgP7c=" } }, - "org.hamcrest:hamcrest-core": { - "1.3": { - "hamcrest-core-1.3.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar" - ], - "hash": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=" - }, - "hamcrest-core-1.3.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom" - ], - "hash": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" - } + "com.squareup.okio:okio:2.2.2": { + "okio-2.2.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar" + ], + "hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs=" + }, + "okio-2.2.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom" + ], + "hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs=" } }, - "org.jetbrains.kotlin:kotlin-stdlib": { - "1.2.60": { - "kotlin-stdlib-1.2.60.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar" - ], - "hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE=" - }, - "kotlin-stdlib-1.2.60.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom" - ], - "hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg=" - } + "com.squareup.okio:okio:1.16.0": { + "okio-1.16.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.jar" + ], + "hash": "sha256-7ASE/xkDZA44RcKxCruZ7/LTIwj/40WeX5IwmkUbnH4=" + }, + "okio-1.16.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.pom" + ], + "hash": "sha256-HSUhYhwIdRI6qRMRsv6O3v0O2T9mvm3+oYzGG8XJnjY=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-common": { - "1.2.60": { - "kotlin-stdlib-common-1.2.60.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar" - ], - "hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E=" - }, - "kotlin-stdlib-common-1.2.60.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom" - ], - "hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE=" - } + "com.squareup.okio:okio-parent:1.16.0": { + "okio-parent-1.16.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.16.0/okio-parent-1.16.0.pom" + ], + "hash": "sha256-C3Qkw/qrO7UzMJbjmVf4j41QzgyYv7pxo/z6oKrwVSw=" } }, - "org.jetbrains:annotations": { - "13.0": { - "annotations-13.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" - ], - "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" - }, - "annotations-13.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" - ], - "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" - } + "junit:junit:4.12": { + "junit-4.12.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.jar" + ], + "hash": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=" + }, + "junit-4.12.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.pom" + ], + "hash": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ=" + } + }, + "org.hamcrest:hamcrest-core:1.3": { + "hamcrest-core-1.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar" + ], + "hash": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=" + }, + "hamcrest-core-1.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom" + ], + "hash": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" + } + }, + "org.hamcrest:hamcrest-parent:1.3": { + "hamcrest-parent-1.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom" + ], + "hash": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" + } + }, + "org.jetbrains:annotations:13.0": { + "annotations-13.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + ], + "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" + }, + "annotations-13.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" + ], + "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60": { + "kotlin-stdlib-1.2.60.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar" + ], + "hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE=" + }, + "kotlin-stdlib-1.2.60.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom" + ], + "hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60": { + "kotlin-stdlib-common-1.2.60.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar" + ], + "hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E=" + }, + "kotlin-stdlib-common-1.2.60.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom" + ], + "hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE=" + } + }, + "org.sonatype.oss:oss-parent:7": { + "oss-parent-7.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom" + ], + "hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" } } } \ No newline at end of file diff --git a/fixtures/basic/basic-java-project/groovy/build.gradle b/fixtures/projects/basic/basic-java-project/groovy/build.gradle similarity index 100% rename from fixtures/basic/basic-java-project/groovy/build.gradle rename to fixtures/projects/basic/basic-java-project/groovy/build.gradle diff --git a/fixtures/basic/basic-java-project/groovy/settings.gradle b/fixtures/projects/basic/basic-java-project/groovy/settings.gradle similarity index 100% rename from fixtures/basic/basic-java-project/groovy/settings.gradle rename to fixtures/projects/basic/basic-java-project/groovy/settings.gradle diff --git a/fixtures/basic/basic-java-project/kotlin/build.gradle.kts b/fixtures/projects/basic/basic-java-project/kotlin/build.gradle.kts similarity index 100% rename from fixtures/basic/basic-java-project/kotlin/build.gradle.kts rename to fixtures/projects/basic/basic-java-project/kotlin/build.gradle.kts diff --git a/fixtures/basic/basic-java-project/kotlin/settings.gradle.kts b/fixtures/projects/basic/basic-java-project/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/basic/basic-java-project/kotlin/settings.gradle.kts rename to fixtures/projects/basic/basic-java-project/kotlin/settings.gradle.kts diff --git a/fixtures/basic/basic-kotlin-project/kotlin/build.gradle.kts b/fixtures/projects/basic/basic-kotlin-project/kotlin/build.gradle.kts similarity index 82% rename from fixtures/basic/basic-kotlin-project/kotlin/build.gradle.kts rename to fixtures/projects/basic/basic-kotlin-project/kotlin/build.gradle.kts index d47e7c4..11d5648 100644 --- a/fixtures/basic/basic-kotlin-project/kotlin/build.gradle.kts +++ b/fixtures/projects/basic/basic-kotlin-project/kotlin/build.gradle.kts @@ -11,10 +11,10 @@ dependencies { implementation("com.natpryce:konfig:1.6.10.0") implementation("com.github.pengrad:java-telegram-bot-api:4.6.0") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3") - implementation("org.jetbrains.exposed:exposed-core:0.21.1") - implementation("org.jetbrains.exposed", "exposed-dao", "0.21.1") - implementation("org.jetbrains.exposed", "exposed-jdbc", "0.21.1") - implementation("org.jetbrains.exposed", "exposed-jodatime", "0.21.1") + implementation("org.jetbrains.exposed:exposed-core:0.50.1") + implementation("org.jetbrains.exposed", "exposed-dao", "0.50.1") + implementation("org.jetbrains.exposed", "exposed-jdbc", "0.50.1") + implementation("org.jetbrains.exposed", "exposed-jodatime", "0.50.1") implementation("io.javalin:javalin:3.7.0") implementation("org.slf4j:slf4j-simple:1.8.0-beta4") implementation(group = "org.xerial", name = "sqlite-jdbc", version = "3.30.1") diff --git a/fixtures/basic/basic-kotlin-project/kotlin/settings.gradle.kts b/fixtures/projects/basic/basic-kotlin-project/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/basic/basic-kotlin-project/kotlin/settings.gradle.kts rename to fixtures/projects/basic/basic-kotlin-project/kotlin/settings.gradle.kts diff --git a/fixtures/buildsrc/plugin-in-buildsrc/kotlin/build.gradle.kts b/fixtures/projects/buildsrc/plugin-in-buildsrc/kotlin/build.gradle.kts similarity index 100% rename from fixtures/buildsrc/plugin-in-buildsrc/kotlin/build.gradle.kts rename to fixtures/projects/buildsrc/plugin-in-buildsrc/kotlin/build.gradle.kts diff --git a/fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/build.gradle.kts b/fixtures/projects/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/build.gradle.kts similarity index 100% rename from fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/build.gradle.kts rename to fixtures/projects/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/build.gradle.kts diff --git a/fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/settings.gradle.kts b/fixtures/projects/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/settings.gradle.kts similarity index 100% rename from fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/settings.gradle.kts rename to fixtures/projects/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/settings.gradle.kts diff --git a/fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/src/main/kotlin/com/example/ApplyPluginPublishPlugin.kt b/fixtures/projects/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/src/main/kotlin/com/example/ApplyPluginPublishPlugin.kt similarity index 100% rename from fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/src/main/kotlin/com/example/ApplyPluginPublishPlugin.kt rename to fixtures/projects/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/src/main/kotlin/com/example/ApplyPluginPublishPlugin.kt diff --git a/fixtures/buildsrc/plugin-in-buildsrc/kotlin/settings.gradle.kts b/fixtures/projects/buildsrc/plugin-in-buildsrc/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/buildsrc/plugin-in-buildsrc/kotlin/settings.gradle.kts rename to fixtures/projects/buildsrc/plugin-in-buildsrc/kotlin/settings.gradle.kts diff --git a/fixtures/dependency/classifier/groovy/build.gradle b/fixtures/projects/dependency/classifier/groovy/build.gradle similarity index 100% rename from fixtures/dependency/classifier/groovy/build.gradle rename to fixtures/projects/dependency/classifier/groovy/build.gradle diff --git a/fixtures/dependency/classifier/groovy/settings.gradle b/fixtures/projects/dependency/classifier/groovy/settings.gradle similarity index 100% rename from fixtures/dependency/classifier/groovy/settings.gradle rename to fixtures/projects/dependency/classifier/groovy/settings.gradle diff --git a/fixtures/dependency/classifier/kotlin/build.gradle.kts b/fixtures/projects/dependency/classifier/kotlin/build.gradle.kts similarity index 100% rename from fixtures/dependency/classifier/kotlin/build.gradle.kts rename to fixtures/projects/dependency/classifier/kotlin/build.gradle.kts diff --git a/fixtures/dependency/classifier/kotlin/settings.gradle.kts b/fixtures/projects/dependency/classifier/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/dependency/classifier/kotlin/settings.gradle.kts rename to fixtures/projects/dependency/classifier/kotlin/settings.gradle.kts diff --git a/fixtures/projects/dependency/maven-bom/kotlin/build.gradle.kts b/fixtures/projects/dependency/maven-bom/kotlin/build.gradle.kts new file mode 100644 index 0000000..a026061 --- /dev/null +++ b/fixtures/projects/dependency/maven-bom/kotlin/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + java +} + +repositories { + maven { + url = uri(System.getProperty("org.nixos.gradle2nix.m2")) + println(uri(System.getProperty("org.nixos.gradle2nix.m2"))) + isAllowInsecureProtocol = true + } +} + +dependencies { + implementation(platform("io.micrometer:micrometer-bom:1.5.1")) + implementation("io.micrometer:micrometer-core") +} diff --git a/fixtures/dependency/maven-bom/kotlin/settings.gradle.kts b/fixtures/projects/dependency/maven-bom/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/dependency/maven-bom/kotlin/settings.gradle.kts rename to fixtures/projects/dependency/maven-bom/kotlin/settings.gradle.kts diff --git a/fixtures/dependency/snapshot-dynamic/groovy/build.gradle b/fixtures/projects/dependency/snapshot-dynamic/groovy/build.gradle similarity index 50% rename from fixtures/dependency/snapshot-dynamic/groovy/build.gradle rename to fixtures/projects/dependency/snapshot-dynamic/groovy/build.gradle index 83d134f..604d299 100644 --- a/fixtures/dependency/snapshot-dynamic/groovy/build.gradle +++ b/fixtures/projects/dependency/snapshot-dynamic/groovy/build.gradle @@ -3,7 +3,10 @@ plugins { } repositories { - maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) } + maven { + url = uri(System.getProperty("org.nixos.gradle2nix.m2")) + allowInsecureProtocol = true + } } dependencies { diff --git a/fixtures/dependency/snapshot-dynamic/groovy/settings.gradle b/fixtures/projects/dependency/snapshot-dynamic/groovy/settings.gradle similarity index 100% rename from fixtures/dependency/snapshot-dynamic/groovy/settings.gradle rename to fixtures/projects/dependency/snapshot-dynamic/groovy/settings.gradle diff --git a/fixtures/dependency/snapshot-dynamic/kotlin/build.gradle.kts b/fixtures/projects/dependency/snapshot-dynamic/kotlin/build.gradle.kts similarity index 50% rename from fixtures/dependency/snapshot-dynamic/kotlin/build.gradle.kts rename to fixtures/projects/dependency/snapshot-dynamic/kotlin/build.gradle.kts index 695191a..7dc4aca 100644 --- a/fixtures/dependency/snapshot-dynamic/kotlin/build.gradle.kts +++ b/fixtures/projects/dependency/snapshot-dynamic/kotlin/build.gradle.kts @@ -4,7 +4,10 @@ plugins { } repositories { - maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) } + maven { + url = uri(System.getProperty("org.nixos.gradle2nix.m2")) + isAllowInsecureProtocol = true + } } dependencies { diff --git a/fixtures/dependency/snapshot-dynamic/kotlin/settings.gradle.kts b/fixtures/projects/dependency/snapshot-dynamic/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/dependency/snapshot-dynamic/kotlin/settings.gradle.kts rename to fixtures/projects/dependency/snapshot-dynamic/kotlin/settings.gradle.kts diff --git a/fixtures/dependency/snapshot-redirect/groovy/build.gradle b/fixtures/projects/dependency/snapshot-redirect/groovy/build.gradle similarity index 89% rename from fixtures/dependency/snapshot-redirect/groovy/build.gradle rename to fixtures/projects/dependency/snapshot-redirect/groovy/build.gradle index 70cfd52..53e9e56 100644 --- a/fixtures/dependency/snapshot-redirect/groovy/build.gradle +++ b/fixtures/projects/dependency/snapshot-redirect/groovy/build.gradle @@ -3,6 +3,7 @@ plugins { } repositories { + mavenCentral() maven { url 'https://jitpack.io' } } diff --git a/fixtures/dependency/snapshot-redirect/groovy/settings.gradle b/fixtures/projects/dependency/snapshot-redirect/groovy/settings.gradle similarity index 100% rename from fixtures/dependency/snapshot-redirect/groovy/settings.gradle rename to fixtures/projects/dependency/snapshot-redirect/groovy/settings.gradle diff --git a/fixtures/dependency/snapshot/groovy/build.gradle b/fixtures/projects/dependency/snapshot/groovy/build.gradle similarity index 50% rename from fixtures/dependency/snapshot/groovy/build.gradle rename to fixtures/projects/dependency/snapshot/groovy/build.gradle index e7c8a38..70c8a6f 100644 --- a/fixtures/dependency/snapshot/groovy/build.gradle +++ b/fixtures/projects/dependency/snapshot/groovy/build.gradle @@ -3,7 +3,10 @@ plugins { } repositories { - maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) } + maven { + url = uri(System.getProperty("org.nixos.gradle2nix.m2")) + allowInsecureProtocol = true + } } dependencies { diff --git a/fixtures/dependency/snapshot/groovy/settings.gradle b/fixtures/projects/dependency/snapshot/groovy/settings.gradle similarity index 100% rename from fixtures/dependency/snapshot/groovy/settings.gradle rename to fixtures/projects/dependency/snapshot/groovy/settings.gradle diff --git a/fixtures/dependency/snapshot/kotlin/build.gradle.kts b/fixtures/projects/dependency/snapshot/kotlin/build.gradle.kts similarity index 50% rename from fixtures/dependency/snapshot/kotlin/build.gradle.kts rename to fixtures/projects/dependency/snapshot/kotlin/build.gradle.kts index 5fdce81..75f07e5 100644 --- a/fixtures/dependency/snapshot/kotlin/build.gradle.kts +++ b/fixtures/projects/dependency/snapshot/kotlin/build.gradle.kts @@ -4,7 +4,10 @@ plugins { } repositories { - maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) } + maven { + url = uri(System.getProperty("org.nixos.gradle2nix.m2")) + isAllowInsecureProtocol = true + } } dependencies { diff --git a/fixtures/dependency/snapshot/kotlin/settings.gradle.kts b/fixtures/projects/dependency/snapshot/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/dependency/snapshot/kotlin/settings.gradle.kts rename to fixtures/projects/dependency/snapshot/kotlin/settings.gradle.kts diff --git a/fixtures/included-build/groovy/build.gradle b/fixtures/projects/included-build/groovy/build.gradle similarity index 56% rename from fixtures/included-build/groovy/build.gradle rename to fixtures/projects/included-build/groovy/build.gradle index 72a75a9..913d5f9 100644 --- a/fixtures/included-build/groovy/build.gradle +++ b/fixtures/projects/included-build/groovy/build.gradle @@ -1,7 +1,10 @@ apply plugin: 'java' repositories { - maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) } + maven { + url = uri(System.getProperty("org.nixos.gradle2nix.m2")) + allowInsecureProtocol true + } } dependencies { diff --git a/fixtures/included-build/groovy/included-child/build.gradle b/fixtures/projects/included-build/groovy/included-child/build.gradle similarity index 56% rename from fixtures/included-build/groovy/included-child/build.gradle rename to fixtures/projects/included-build/groovy/included-child/build.gradle index 5a964cf..f2d8c7d 100644 --- a/fixtures/included-build/groovy/included-child/build.gradle +++ b/fixtures/projects/included-build/groovy/included-child/build.gradle @@ -3,7 +3,10 @@ group = 'org.test.included' version = '1.0' repositories { - maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) } + maven { + url = uri(System.getProperty("org.nixos.gradle2nix.m2")) + allowInsecureProtocol true + } } dependencies { diff --git a/fixtures/included-build/groovy/included-child/settings.gradle b/fixtures/projects/included-build/groovy/included-child/settings.gradle similarity index 51% rename from fixtures/included-build/groovy/included-child/settings.gradle rename to fixtures/projects/included-build/groovy/included-child/settings.gradle index a622c5b..a26b9b8 100644 --- a/fixtures/included-build/groovy/included-child/settings.gradle +++ b/fixtures/projects/included-build/groovy/included-child/settings.gradle @@ -1,6 +1,9 @@ buildscript { repositories { - maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) } + maven { + url = uri(System.getProperty("org.nixos.gradle2nix.m2")) + allowInsecureProtocol true + } } dependencies { classpath 'org.apache:foo:2.0.0' diff --git a/fixtures/included-build/groovy/settings.gradle b/fixtures/projects/included-build/groovy/settings.gradle similarity index 100% rename from fixtures/included-build/groovy/settings.gradle rename to fixtures/projects/included-build/groovy/settings.gradle diff --git a/fixtures/integration/settings-buildscript/groovy/build.gradle b/fixtures/projects/integration/settings-buildscript/groovy/build.gradle similarity index 100% rename from fixtures/integration/settings-buildscript/groovy/build.gradle rename to fixtures/projects/integration/settings-buildscript/groovy/build.gradle diff --git a/fixtures/integration/settings-buildscript/groovy/default.nix b/fixtures/projects/integration/settings-buildscript/groovy/default.nix similarity index 100% rename from fixtures/integration/settings-buildscript/groovy/default.nix rename to fixtures/projects/integration/settings-buildscript/groovy/default.nix diff --git a/fixtures/integration/settings-buildscript/groovy/gradle-env.json b/fixtures/projects/integration/settings-buildscript/groovy/gradle-env.json similarity index 100% rename from fixtures/integration/settings-buildscript/groovy/gradle-env.json rename to fixtures/projects/integration/settings-buildscript/groovy/gradle-env.json diff --git a/fixtures/integration/settings-buildscript/groovy/gradle-env.nix b/fixtures/projects/integration/settings-buildscript/groovy/gradle-env.nix similarity index 100% rename from fixtures/integration/settings-buildscript/groovy/gradle-env.nix rename to fixtures/projects/integration/settings-buildscript/groovy/gradle-env.nix diff --git a/fixtures/integration/settings-buildscript/groovy/semantic-build-versioning.gradle b/fixtures/projects/integration/settings-buildscript/groovy/semantic-build-versioning.gradle similarity index 100% rename from fixtures/integration/settings-buildscript/groovy/semantic-build-versioning.gradle rename to fixtures/projects/integration/settings-buildscript/groovy/semantic-build-versioning.gradle diff --git a/fixtures/integration/settings-buildscript/groovy/settings.gradle b/fixtures/projects/integration/settings-buildscript/groovy/settings.gradle similarity index 100% rename from fixtures/integration/settings-buildscript/groovy/settings.gradle rename to fixtures/projects/integration/settings-buildscript/groovy/settings.gradle diff --git a/fixtures/ivy/basic/kotlin/build.gradle.kts b/fixtures/projects/ivy/basic/kotlin/build.gradle.kts similarity index 100% rename from fixtures/ivy/basic/kotlin/build.gradle.kts rename to fixtures/projects/ivy/basic/kotlin/build.gradle.kts diff --git a/fixtures/ivy/basic/kotlin/settings.gradle.kts b/fixtures/projects/ivy/basic/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/ivy/basic/kotlin/settings.gradle.kts rename to fixtures/projects/ivy/basic/kotlin/settings.gradle.kts diff --git a/fixtures/plugin/resolves-from-default-repo/groovy/build.gradle b/fixtures/projects/plugin/resolves-from-default-repo/groovy/build.gradle similarity index 100% rename from fixtures/plugin/resolves-from-default-repo/groovy/build.gradle rename to fixtures/projects/plugin/resolves-from-default-repo/groovy/build.gradle diff --git a/fixtures/plugin/resolves-from-default-repo/groovy/settings.gradle b/fixtures/projects/plugin/resolves-from-default-repo/groovy/settings.gradle similarity index 100% rename from fixtures/plugin/resolves-from-default-repo/groovy/settings.gradle rename to fixtures/projects/plugin/resolves-from-default-repo/groovy/settings.gradle diff --git a/fixtures/plugin/resolves-from-default-repo/kotlin/build.gradle.kts b/fixtures/projects/plugin/resolves-from-default-repo/kotlin/build.gradle.kts similarity index 100% rename from fixtures/plugin/resolves-from-default-repo/kotlin/build.gradle.kts rename to fixtures/projects/plugin/resolves-from-default-repo/kotlin/build.gradle.kts diff --git a/fixtures/plugin/resolves-from-default-repo/kotlin/settings.gradle.kts b/fixtures/projects/plugin/resolves-from-default-repo/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/plugin/resolves-from-default-repo/kotlin/settings.gradle.kts rename to fixtures/projects/plugin/resolves-from-default-repo/kotlin/settings.gradle.kts diff --git a/fixtures/s3/maven-snapshot/groovy/build.gradle b/fixtures/projects/s3/maven-snapshot/groovy/build.gradle similarity index 100% rename from fixtures/s3/maven-snapshot/groovy/build.gradle rename to fixtures/projects/s3/maven-snapshot/groovy/build.gradle diff --git a/fixtures/s3/maven-snapshot/groovy/settings.gradle b/fixtures/projects/s3/maven-snapshot/groovy/settings.gradle similarity index 100% rename from fixtures/s3/maven-snapshot/groovy/settings.gradle rename to fixtures/projects/s3/maven-snapshot/groovy/settings.gradle diff --git a/fixtures/s3/maven-snapshot/kotlin/build.gradle.kts b/fixtures/projects/s3/maven-snapshot/kotlin/build.gradle.kts similarity index 100% rename from fixtures/s3/maven-snapshot/kotlin/build.gradle.kts rename to fixtures/projects/s3/maven-snapshot/kotlin/build.gradle.kts diff --git a/fixtures/s3/maven-snapshot/kotlin/settings.gradle.kts b/fixtures/projects/s3/maven-snapshot/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/s3/maven-snapshot/kotlin/settings.gradle.kts rename to fixtures/projects/s3/maven-snapshot/kotlin/settings.gradle.kts diff --git a/fixtures/s3/maven/groovy/build.gradle b/fixtures/projects/s3/maven/groovy/build.gradle similarity index 87% rename from fixtures/s3/maven/groovy/build.gradle rename to fixtures/projects/s3/maven/groovy/build.gradle index 787737b..fb85bfb 100644 --- a/fixtures/s3/maven/groovy/build.gradle +++ b/fixtures/projects/s3/maven/groovy/build.gradle @@ -1,3 +1,5 @@ +package projects.s3.maven.groovy + plugins { id('java') } @@ -14,4 +16,4 @@ repositories { dependencies { implementation("org.apache:test:1.0.0") -} \ No newline at end of file +} diff --git a/fixtures/projects/s3/maven/groovy/settings.gradle b/fixtures/projects/s3/maven/groovy/settings.gradle new file mode 100644 index 0000000..0e4ec7e --- /dev/null +++ b/fixtures/projects/s3/maven/groovy/settings.gradle @@ -0,0 +1 @@ +package projects.s3.maven.groovy diff --git a/fixtures/s3/maven/kotlin/build.gradle.kts b/fixtures/projects/s3/maven/kotlin/build.gradle.kts similarity index 100% rename from fixtures/s3/maven/kotlin/build.gradle.kts rename to fixtures/projects/s3/maven/kotlin/build.gradle.kts diff --git a/fixtures/s3/maven/kotlin/settings.gradle.kts b/fixtures/projects/s3/maven/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/s3/maven/kotlin/settings.gradle.kts rename to fixtures/projects/s3/maven/kotlin/settings.gradle.kts diff --git a/fixtures/settings/buildscript/groovy/settings.gradle b/fixtures/projects/settings/buildscript/groovy/settings.gradle similarity index 83% rename from fixtures/settings/buildscript/groovy/settings.gradle rename to fixtures/projects/settings/buildscript/groovy/settings.gradle index e4b1866..5c0419a 100644 --- a/fixtures/settings/buildscript/groovy/settings.gradle +++ b/fixtures/projects/settings/buildscript/groovy/settings.gradle @@ -2,6 +2,7 @@ buildscript { repositories { maven { url System.getProperty("org.nixos.gradle2nix.m2") + allowInsecureProtocol true } } dependencies { diff --git a/fixtures/settings/dependency-resolution-management/kotlin/build.gradle.kts b/fixtures/projects/settings/dependency-resolution-management/kotlin/build.gradle.kts similarity index 100% rename from fixtures/settings/dependency-resolution-management/kotlin/build.gradle.kts rename to fixtures/projects/settings/dependency-resolution-management/kotlin/build.gradle.kts diff --git a/fixtures/projects/settings/dependency-resolution-management/kotlin/settings.gradle.kts b/fixtures/projects/settings/dependency-resolution-management/kotlin/settings.gradle.kts new file mode 100644 index 0000000..fec1505 --- /dev/null +++ b/fixtures/projects/settings/dependency-resolution-management/kotlin/settings.gradle.kts @@ -0,0 +1,9 @@ +dependencyResolutionManagement { + repositories { + maven { + url = uri(System.getProperty("org.nixos.gradle2nix.m2")) + isAllowInsecureProtocol = true + } + } + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) +} diff --git a/fixtures/subprojects/multi-module/groovy/build.gradle b/fixtures/projects/subprojects/multi-module/groovy/build.gradle similarity index 100% rename from fixtures/subprojects/multi-module/groovy/build.gradle rename to fixtures/projects/subprojects/multi-module/groovy/build.gradle diff --git a/fixtures/subprojects/multi-module/groovy/child-a/build.gradle b/fixtures/projects/subprojects/multi-module/groovy/child-a/build.gradle similarity index 100% rename from fixtures/subprojects/multi-module/groovy/child-a/build.gradle rename to fixtures/projects/subprojects/multi-module/groovy/child-a/build.gradle diff --git a/fixtures/subprojects/multi-module/groovy/child-b/build.gradle b/fixtures/projects/subprojects/multi-module/groovy/child-b/build.gradle similarity index 100% rename from fixtures/subprojects/multi-module/groovy/child-b/build.gradle rename to fixtures/projects/subprojects/multi-module/groovy/child-b/build.gradle diff --git a/fixtures/subprojects/multi-module/groovy/settings.gradle b/fixtures/projects/subprojects/multi-module/groovy/settings.gradle similarity index 100% rename from fixtures/subprojects/multi-module/groovy/settings.gradle rename to fixtures/projects/subprojects/multi-module/groovy/settings.gradle diff --git a/fixtures/subprojects/multi-module/kotlin/build.gradle.kts b/fixtures/projects/subprojects/multi-module/kotlin/build.gradle.kts similarity index 100% rename from fixtures/subprojects/multi-module/kotlin/build.gradle.kts rename to fixtures/projects/subprojects/multi-module/kotlin/build.gradle.kts diff --git a/fixtures/subprojects/multi-module/kotlin/child-a/build.gradle.kts b/fixtures/projects/subprojects/multi-module/kotlin/child-a/build.gradle.kts similarity index 100% rename from fixtures/subprojects/multi-module/kotlin/child-a/build.gradle.kts rename to fixtures/projects/subprojects/multi-module/kotlin/child-a/build.gradle.kts diff --git a/fixtures/subprojects/multi-module/kotlin/child-b/build.gradle.kts b/fixtures/projects/subprojects/multi-module/kotlin/child-b/build.gradle.kts similarity index 100% rename from fixtures/subprojects/multi-module/kotlin/child-b/build.gradle.kts rename to fixtures/projects/subprojects/multi-module/kotlin/child-b/build.gradle.kts diff --git a/fixtures/subprojects/multi-module/kotlin/settings.gradle.kts b/fixtures/projects/subprojects/multi-module/kotlin/settings.gradle.kts similarity index 100% rename from fixtures/subprojects/multi-module/kotlin/settings.gradle.kts rename to fixtures/projects/subprojects/multi-module/kotlin/settings.gradle.kts diff --git a/fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom b/fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom new file mode 100644 index 0000000..3963952 --- /dev/null +++ b/fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom @@ -0,0 +1,155 @@ + + + + 4.0.0 + + org.sonatype.oss + oss-parent + 7 + pom + + Sonatype OSS Parent + http://nexus.sonatype.org/oss-repository-hosting.html + Sonatype helps open source projects to set up Maven repositories on https://oss.sonatype.org/ + + + scm:svn:http://svn.sonatype.org/spice/tags/oss-parent-7 + scm:svn:https://svn.sonatype.org/spice/tags/oss-parent-7 + http://svn.sonatype.org/spice/tags/oss-parent-7 + + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + ${sonatypeOssDistMgmtSnapshotsUrl} + + + sonatype-nexus-staging + Nexus Release Repository + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + 1.0 + + + enforce-maven + + enforce + + + + + (,2.1.0),(2.1.0,2.2.0),(2.2.0,) + Maven 2.1.0 and 2.2.0 produce incorrect GPG signatures and checksums respectively. + + + + + + + + + + + org.apache.maven.plugins + maven-release-plugin + 2.1 + + forked-path + false + -Psonatype-oss-release + + + + + + + + UTF-8 + https://oss.sonatype.org/content/repositories/snapshots/ + + + + + sonatype-oss-release + + + + org.apache.maven.plugins + maven-source-plugin + 2.1.2 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.7 + + + attach-javadocs + + jar + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.1 + + + sign-artifacts + verify + + sign + + + + + + + + + + diff --git a/fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom.md5 b/fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom.md5 new file mode 100644 index 0000000..2b5bdaf --- /dev/null +++ b/fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom.md5 @@ -0,0 +1 @@ +3e418cf7f2607bf359e6c514a992cb38 \ No newline at end of file diff --git a/fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1 b/fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1 new file mode 100644 index 0000000..800e284 --- /dev/null +++ b/fixtures/repositories/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1 @@ -0,0 +1 @@ +46b8a785b60a2767095b8611613b58577e96d4c9 \ No newline at end of file diff --git a/fixtures/repositories/m2/org/sonatype/oss/oss-parent/maven-metadata.xml b/fixtures/repositories/m2/org/sonatype/oss/oss-parent/maven-metadata.xml new file mode 100644 index 0000000..4495a6d --- /dev/null +++ b/fixtures/repositories/m2/org/sonatype/oss/oss-parent/maven-metadata.xml @@ -0,0 +1,19 @@ + + + org.sonatype.oss + oss-parent + + 7 + 7 + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + 20110307124442 + + \ No newline at end of file diff --git a/fixtures/s3/maven/groovy/settings.gradle b/fixtures/s3/maven/groovy/settings.gradle deleted file mode 100644 index e69de29..0000000 diff --git a/fixtures/settings/dependency-resolution-management/kotlin/settings.gradle.kts b/fixtures/settings/dependency-resolution-management/kotlin/settings.gradle.kts deleted file mode 100644 index 8292657..0000000 --- a/fixtures/settings/dependency-resolution-management/kotlin/settings.gradle.kts +++ /dev/null @@ -1,6 +0,0 @@ -dependencyResolutionManagement { - repositories { - maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) } - } - repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) -} diff --git a/gradle-env.json b/gradle-env.json index ca7b7e0..3aad6d2 100644 --- a/gradle-env.json +++ b/gradle-env.json @@ -1,2189 +1,3162 @@ { - "com.github.ajalt:clikt": { - "2.8.0": { - "clikt-2.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt/2.8.0/clikt-2.8.0.module" - ], - "hash": "sha256-63VRQs7Uww/5lU+IH4piAUsdy/SKuciarYjFwpH95Gk=" - }, - "clikt-2.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt/2.8.0/clikt-2.8.0.pom" - ], - "hash": "sha256-6njJ/q8ULg4AGtO8Ey95KJKSb7wmYPpu78Mg8Vzw/Hw=" - }, - "clikt-jvm-2.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt/2.8.0/clikt-2.8.0.jar" - ], - "hash": "sha256-MefokL7AOvKCKKG1akSyvB7Cu57wWMkoiAAW0ZmUhpw=" - } - } - }, - "com.github.ajalt:clikt-metadata": { - "2.8.0": { - "clikt-metadata-2.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt-metadata/2.8.0/clikt-metadata-2.8.0.jar" - ], - "hash": "sha256-Nxf/mOths+cC3HT1D4chzIFtNdzpwv/1g+NNUw0/I08=" - }, - "clikt-metadata-2.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt-metadata/2.8.0/clikt-metadata-2.8.0.module" - ], - "hash": "sha256-y43UaWNHeqTaxq77g8LBGJqqqJxaV0TPJGGovTAvSmY=" - }, - "clikt-metadata-2.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt-metadata/2.8.0/clikt-metadata-2.8.0.pom" - ], - "hash": "sha256-NtfT5a+1S3UWuJ0btkiAKNr/RrcufE4aXf9GNbtoDc8=" - } - } - }, - "com.github.ajalt:colormath": { - "1.2.0": { - "colormath-1.2.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/ajalt/colormath/1.2.0/colormath-1.2.0.jar" - ], - "hash": "sha256-hqUffbsyq+QQ1UMx7GGsBoSlQ7JO6Xlnu6wKTmcp8DE=" - }, - "colormath-1.2.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/ajalt/colormath/1.2.0/colormath-1.2.0.pom" - ], - "hash": "sha256-a3EKjQoQu+PgV5Xvf03ux3j9eQBbDBvA5cF4Ae5r3Z0=" - } - } - }, - "com.github.ajalt:mordant": { - "1.2.1": { - "mordant-1.2.1.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/ajalt/mordant/1.2.1/mordant-1.2.1.jar" - ], - "hash": "sha256-enFOuNJbTZun8lalTHVZzKh9heyQ1pQ98ZE8rUPbldY=" - }, - "mordant-1.2.1.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/github/ajalt/mordant/1.2.1/mordant-1.2.1.pom" - ], - "hash": "sha256-8DLcV/gHnB9WJvvF8PZfz14SNA3ictgpsLVOkpeacro=" - } - } - }, - "com.github.johnrengelman.shadow:com.github.johnrengelman.shadow.gradle.plugin": { - "8.1.1": { - "com.github.johnrengelman.shadow.gradle.plugin-8.1.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/com.github.johnrengelman.shadow.gradle.plugin/8.1.1/com.github.johnrengelman.shadow.gradle.plugin-8.1.1.pom" - ], - "hash": "sha256-PLOIa5ffbgZvEIwxayGfJiyXw8st9tp4kn5kXetkPLA=" - } - } - }, - "com.github.johnrengelman:shadow": { - "8.1.1": { - "shadow-8.1.1.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/8.1.1/shadow-8.1.1.jar" - ], - "hash": "sha256-CEGXVVWQpTuyG1lQijMwVZ9TbdtEjq/R7GdfVGIDb88=" - }, - "shadow-8.1.1.module": { - "urls": [ - "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/8.1.1/shadow-8.1.1.module" - ], - "hash": "sha256-nQ87SqpniYcj6vbF6c0nOHj5V03azWSqNwJDYgzgLko=" - }, - "shadow-8.1.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/8.1.1/shadow-8.1.1.pom" - ], - "hash": "sha256-Mu55f8hDI3xM5cSeX0FSxYoIlK/OCg6SY25qLU/JjDU=" - } - } - }, - "com.gradle.plugin-publish:com.gradle.plugin-publish.gradle.plugin": { - "1.2.1": { - "com.gradle.plugin-publish.gradle.plugin-1.2.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/gradle/plugin-publish/com.gradle.plugin-publish.gradle.plugin/1.2.1/com.gradle.plugin-publish.gradle.plugin-1.2.1.pom" - ], - "hash": "sha256-60lBRA8TGZbmT6SCDc264js95UhBi6ke9MY0pqcfVMs=" - } - } - }, - "com.gradle.publish:plugin-publish-plugin": { - "1.2.1": { - "plugin-publish-plugin-1.2.1.jar": { - "urls": [ - "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.jar" - ], - "hash": "sha256-KY8MLpeVMhcaBaQWAyY3M7ZfiRE9ToCczQ4mmQFJ3hg=" - }, - "plugin-publish-plugin-1.2.1.module": { - "urls": [ - "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.module" - ], - "hash": "sha256-w98uuag1ZdO2MVDYa0344o9mG1XOzdRJJ+RpMxA2yxk=" - }, - "plugin-publish-plugin-1.2.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.pom" - ], - "hash": "sha256-E6X+iu2+Rs/b6hLp/NcJemKygqpqtMkIZWuWzpoqX6M=" - } - } - }, - "com.squareup.okio:okio": { - "3.7.0": { - "okio-3.7.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.7.0/okio-3.7.0.module" - ], - "hash": "sha256-88rgCfC2yEL7vFLOd1QsGdGdVu6ZpeVVZH8Lr8nVDPo=" - }, - "okio-3.7.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.7.0/okio-3.7.0.pom" - ], - "hash": "sha256-H2KMRSg726uM4DwHps+3akeLjdrhgL2PNKusJz5Id24=" - }, - "okio-metadata-3.7.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.7.0/okio-3.7.0.jar" - ], - "hash": "sha256-bvOnJZNuIlJB1K0SavmnyWgOS0r8G8Xtnn3TXwaJpNw=" - } - } - }, - "com.squareup.okio:okio-jvm": { - "3.7.0": { - "okio-jvm-3.7.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-jvm/3.7.0/okio-jvm-3.7.0.jar" - ], - "hash": "sha256-2LNa3Ch2j0OuWv5qfRqiqHi6UeC5ak8wiBHzsfWxPlU=" - }, - "okio-jvm-3.7.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-jvm/3.7.0/okio-jvm-3.7.0.module" - ], - "hash": "sha256-b64CAbCuSKGWBt4Ab/6YQtjQ/CoeQ04Hhc7Ni3Wr5HQ=" - }, - "okio-jvm-3.7.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-jvm/3.7.0/okio-jvm-3.7.0.pom" - ], - "hash": "sha256-d07LnSsHlLT7J+eeCHYMpWC39U+qlRm5GDxn/rRfLJc=" - } - } - }, - "commons-io:commons-io": { - "2.11.0": { - "commons-io-2.11.0.jar": { - "urls": [ - "https://plugins.gradle.org/m2/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar" - ], - "hash": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=" - }, - "commons-io-2.11.0.pom": { - "urls": [ - "https://plugins.gradle.org/m2/commons-io/commons-io/2.11.0/commons-io-2.11.0.pom" - ], - "hash": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k=" - } - } - }, - "io.github.classgraph:classgraph": { - "4.8.162": { - "classgraph-4.8.162.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/classgraph/classgraph/4.8.162/classgraph-4.8.162.jar" - ], - "hash": "sha256-6jCy1eKeidUnBrzs96auO0RoLUoVZqXyK5RT+b4qlww=" - }, - "classgraph-4.8.162.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/classgraph/classgraph/4.8.162/classgraph-4.8.162.pom" - ], - "hash": "sha256-SSxpkIw7aCpjXYyp2Qm5tCyCRaNOt7nnt9xnFSHZswc=" - } - } - }, - "io.github.java-diff-utils:java-diff-utils": { - "4.12": { - "java-diff-utils-4.12.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.jar" - ], - "hash": "sha256-mZCiA5d49rTMlHkBQcKGiGTqzuBiDGxFlFESGpAc1bU=" - }, - "java-diff-utils-4.12.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.pom" - ], - "hash": "sha256-wm4JftyOxoBdExmBfSPU5JbMEBXMVdxSAhEtj2qRZfw=" - } - } - }, - "io.github.pdvrieze.xmlutil:core": { - "0.86.3": { - "core-0.86.3.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core/0.86.3/core-0.86.3.module" - ], - "hash": "sha256-MzlXsdCR2LrPqwYCCGgi+a2S9hMCy3Ru8g4Z9nprTbk=" - }, - "core-0.86.3.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core/0.86.3/core-0.86.3.pom" - ], - "hash": "sha256-ngeyUCJI+U7AYn9Wsn3wiBySBCrfzoCg35oa6sQWg4M=" - }, - "xmlutil-metadata-0.86.3.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core/0.86.3/core-0.86.3.jar" - ], - "hash": "sha256-ikZHG7Y7PHhzlsu6WqL2TU4zOgOSAiRBrhIRHn5yjJE=" - } - } - }, - "io.github.pdvrieze.xmlutil:core-jvm": { - "0.86.3": { - "core-jvm-0.86.3.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core-jvm/0.86.3/core-jvm-0.86.3.module" - ], - "hash": "sha256-FgIJExZWo2dDGWXYAYk7J3fuguD3ZmaD+nXE+Wck/wc=" - }, - "core-jvm-0.86.3.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core-jvm/0.86.3/core-jvm-0.86.3.pom" - ], - "hash": "sha256-oBGIoPlVW1s7nZLlQz242AJ6vjleD/cIBRU+8v6qf4U=" - }, - "xmlutil-jvm-0.86.3.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core-jvm/0.86.3/core-jvm-0.86.3.jar" - ], - "hash": "sha256-kVJ9hv6gS9YYPRQKCfENqy3qcnrxLSfZFl7jQuo9Dt4=" - } - } - }, - "io.github.pdvrieze.xmlutil:serialization-jvm": { - "0.86.3": { - "serialization-jvm-0.86.3.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/serialization-jvm/0.86.3/serialization-jvm-0.86.3.module" - ], - "hash": "sha256-3ppDm3mA++bMPDS8rZyEqIMVmdyHZNceD2c93Ho91Jo=" - }, - "serialization-jvm-0.86.3.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/serialization-jvm/0.86.3/serialization-jvm-0.86.3.pom" - ], - "hash": "sha256-OX1XqPVTaUEf7HRETH1NTLaeyYANUkSTrGHekJIl4wc=" - }, - "xmlutil-serialization-jvm-0.86.3.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/serialization-jvm/0.86.3/serialization-jvm-0.86.3.jar" - ], - "hash": "sha256-nOJz3LhguSpb8uw2rR4qEbQa7YnGyYTKc+h+/17aG9A=" - } - } - }, - "io.kotest:kotest-assertions-api": { - "5.8.0": { - "kotest-assertions-api-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api/5.8.0/kotest-assertions-api-5.8.0.module" - ], - "hash": "sha256-op9oyadjm/8YjxR8vvhnHrjwtY/luuGAtkVdt335cos=" - }, - "kotest-assertions-api-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api/5.8.0/kotest-assertions-api-5.8.0.pom" - ], - "hash": "sha256-W/4I+NxUjL6HymCVFTeJlwWT4r/8saI8QokZueJw8uk=" - }, - "kotest-assertions-api-metadata-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api/5.8.0/kotest-assertions-api-5.8.0.jar" - ], - "hash": "sha256-Xwt0yykue3MauS9SV+38yg2QJUGZiHHgk1S//uk5G/E=" - } - } - }, - "io.kotest:kotest-assertions-api-jvm": { - "5.8.0": { - "kotest-assertions-api-jvm-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api-jvm/5.8.0/kotest-assertions-api-jvm-5.8.0.jar" - ], - "hash": "sha256-JOVCn43plAVhR/TkGY8DvBs3MDsuTiutgaXDiPX+jSE=" - }, - "kotest-assertions-api-jvm-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api-jvm/5.8.0/kotest-assertions-api-jvm-5.8.0.module" - ], - "hash": "sha256-DrzGB+6bMiarXBYvwbwl3JKNe+S5iJB3wI51Mme7jBo=" - }, - "kotest-assertions-api-jvm-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api-jvm/5.8.0/kotest-assertions-api-jvm-5.8.0.pom" - ], - "hash": "sha256-vR5t7uMQRjCJ+PGodJu5SiUfs9tLqtiAL0RlBqgjFBU=" - } - } - }, - "io.kotest:kotest-assertions-core": { - "5.8.0": { - "kotest-assertions-core-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core/5.8.0/kotest-assertions-core-5.8.0.module" - ], - "hash": "sha256-3PQWe35nsJADn6AJtSYKRxDl1NVnhZXyz163PMNfjKs=" - }, - "kotest-assertions-core-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core/5.8.0/kotest-assertions-core-5.8.0.pom" - ], - "hash": "sha256-bGOKC/WWEJpFN2gugdokFnbyEftPunlX/JqPuGaOfxc=" - }, - "kotest-assertions-core-metadata-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core/5.8.0/kotest-assertions-core-5.8.0.jar" - ], - "hash": "sha256-ni4GBzpTKdKZm0xgBJZ+Op78OcwgMQi5XHwrUs66On0=" - } - } - }, - "io.kotest:kotest-assertions-core-jvm": { - "5.8.0": { - "kotest-assertions-core-jvm-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core-jvm/5.8.0/kotest-assertions-core-jvm-5.8.0.jar" - ], - "hash": "sha256-wslFR/sVIaSCDQ4uF+qkuQPDaO3qeP4uH/rRQ6us9hw=" - }, - "kotest-assertions-core-jvm-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core-jvm/5.8.0/kotest-assertions-core-jvm-5.8.0.module" - ], - "hash": "sha256-5fP2fh/Aj+YAimMd938ygU7MC2uf3MtzZWr0rBFkyR8=" - }, - "kotest-assertions-core-jvm-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core-jvm/5.8.0/kotest-assertions-core-jvm-5.8.0.pom" - ], - "hash": "sha256-ei5OsYLX8cp9UwBUWHXup3HsnZMW6rkmne6kg/Pskh8=" - } - } - }, - "io.kotest:kotest-assertions-shared": { - "5.8.0": { - "kotest-assertions-shared-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared/5.8.0/kotest-assertions-shared-5.8.0.module" - ], - "hash": "sha256-ByvTJ2aEyatnMmjjXlRiVSMfWT5U5ho1DZfAyZYXcfI=" - }, - "kotest-assertions-shared-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared/5.8.0/kotest-assertions-shared-5.8.0.pom" - ], - "hash": "sha256-wuvLdl0jnvtdCdSRasmjSdeNJ6aw9oaCwMUsm0fBIUo=" - }, - "kotest-assertions-shared-metadata-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared/5.8.0/kotest-assertions-shared-5.8.0.jar" - ], - "hash": "sha256-QyX8AR427KpkyNzRVo6XhBqCfBqFvyjcMPdgb+LqiXQ=" - } - } - }, - "io.kotest:kotest-assertions-shared-jvm": { - "5.8.0": { - "kotest-assertions-shared-jvm-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared-jvm/5.8.0/kotest-assertions-shared-jvm-5.8.0.jar" - ], - "hash": "sha256-+Vn/1y2Kc5xU8uCQF/gAPSX0Ro3oU6UsIP+ykw1TVME=" - }, - "kotest-assertions-shared-jvm-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared-jvm/5.8.0/kotest-assertions-shared-jvm-5.8.0.module" - ], - "hash": "sha256-dK4YER9DUkwXTsrWxKz95KMERoXf/ryJh4MnXZEftm0=" - }, - "kotest-assertions-shared-jvm-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared-jvm/5.8.0/kotest-assertions-shared-jvm-5.8.0.pom" - ], - "hash": "sha256-/DfYXG6KToMR8TuPXaTnXHuhb06Y5/fnY2ZZOkR3wEc=" - } - } - }, - "io.kotest:kotest-common": { - "5.8.0": { - "kotest-common-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-common/5.8.0/kotest-common-5.8.0.module" - ], - "hash": "sha256-BwwJRxNLNejNY9FmpGKe0KELkrNx5XYS7A4/k/TGQ3Q=" - }, - "kotest-common-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-common/5.8.0/kotest-common-5.8.0.pom" - ], - "hash": "sha256-0ZUWcDSMMt/rYzdJUGRB3Go8rpKqLsAaNzOmnMyXcfY=" - }, - "kotest-common-metadata-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-common/5.8.0/kotest-common-5.8.0.jar" - ], - "hash": "sha256-a9QgLtuJ5Z61Q1J0W9Dh+8lcVNXTMFuY+SEyQE8HrkI=" - } - } - }, - "io.kotest:kotest-common-jvm": { - "5.8.0": { - "kotest-common-jvm-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-common-jvm/5.8.0/kotest-common-jvm-5.8.0.jar" - ], - "hash": "sha256-9+cTu6Il+6WHl0FmWjthk/pSi8J75UdSp3Y4CKTylRM=" - }, - "kotest-common-jvm-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-common-jvm/5.8.0/kotest-common-jvm-5.8.0.module" - ], - "hash": "sha256-F6m2cHe8dlDvr2nfTC2Z5pdmlY7JYWC5EizmxhC6x/w=" - }, - "kotest-common-jvm-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-common-jvm/5.8.0/kotest-common-jvm-5.8.0.pom" - ], - "hash": "sha256-jCn9r/OEviBX3ggq4Bud4Qt4pRwn07qa/u0ws9U1B/8=" - } - } - }, - "io.kotest:kotest-extensions": { - "5.8.0": { - "kotest-extensions-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions/5.8.0/kotest-extensions-5.8.0.module" - ], - "hash": "sha256-wRJ9NhChPntlMthHZbshHPPyHJAa7H7PoYG6wg7cF6g=" - }, - "kotest-extensions-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions/5.8.0/kotest-extensions-5.8.0.pom" - ], - "hash": "sha256-ptATHw06VngbFwStxpeP17mJ1FtPCoUtbY2HqmFoHOs=" - } - } - }, - "io.kotest:kotest-extensions-jvm": { - "5.8.0": { - "kotest-extensions-jvm-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions-jvm/5.8.0/kotest-extensions-jvm-5.8.0.jar" - ], - "hash": "sha256-t7ZJsBqwtQx/hVchsc2Qzrk7fseQyeDUVOrNifGCLDE=" - }, - "kotest-extensions-jvm-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions-jvm/5.8.0/kotest-extensions-jvm-5.8.0.module" - ], - "hash": "sha256-wpV8QNsDBwTDwcRQRjRQ/UIfUV2eTf1wFYrglTx7s5I=" - }, - "kotest-extensions-jvm-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions-jvm/5.8.0/kotest-extensions-jvm-5.8.0.pom" - ], - "hash": "sha256-Re6YilN1wfy+2zW/KNZcr9vWZlrU7QZiFJn1gaCqeRg=" - } - } - }, - "io.kotest:kotest-framework-api": { - "5.8.0": { - "kotest-framework-api-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api/5.8.0/kotest-framework-api-5.8.0.module" - ], - "hash": "sha256-TU+42fMZlcETUTiSP3OQdtKMbIunjobst56SVTNlm8s=" - }, - "kotest-framework-api-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api/5.8.0/kotest-framework-api-5.8.0.pom" - ], - "hash": "sha256-+KD+31um/dqQJFYdz5/c0bc7KyRU8SgqREdxhtGwJds=" - } - } - }, - "io.kotest:kotest-framework-api-jvm": { - "5.8.0": { - "kotest-framework-api-jvm-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api-jvm/5.8.0/kotest-framework-api-jvm-5.8.0.jar" - ], - "hash": "sha256-qzKySHZ6j83ulqOn3rwdS8oVtBB9A6jw7LQ/ChKmYHg=" - }, - "kotest-framework-api-jvm-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api-jvm/5.8.0/kotest-framework-api-jvm-5.8.0.module" - ], - "hash": "sha256-+8ACQea/pPB2Y+1k+ZWRcEas3d0oc8pdpZtMuMGmcx8=" - }, - "kotest-framework-api-jvm-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api-jvm/5.8.0/kotest-framework-api-jvm-5.8.0.pom" - ], - "hash": "sha256-J1kzQZs8fz9Dd/I4dO2/K2WZKV5+eSRozE2LZkKRnwc=" - } - } - }, - "io.kotest:kotest-framework-concurrency": { - "5.8.0": { - "kotest-framework-concurrency-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency/5.8.0/kotest-framework-concurrency-5.8.0.module" - ], - "hash": "sha256-Apm7rJ+dstNEfQ3B0jD6eduHpEQdgVju876i5DyGU4o=" - }, - "kotest-framework-concurrency-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency/5.8.0/kotest-framework-concurrency-5.8.0.pom" - ], - "hash": "sha256-lVQJ/wP4A216X/ZoVWJ6SDJdZP1ad/zxvjKC9nK4Y9w=" - } - } - }, - "io.kotest:kotest-framework-concurrency-jvm": { - "5.8.0": { - "kotest-framework-concurrency-jvm-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency-jvm/5.8.0/kotest-framework-concurrency-jvm-5.8.0.jar" - ], - "hash": "sha256-+jViubehfRCIbZVZFZgFBmg+bUJT/aLZphDHB7ahxTQ=" - }, - "kotest-framework-concurrency-jvm-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency-jvm/5.8.0/kotest-framework-concurrency-jvm-5.8.0.module" - ], - "hash": "sha256-EEdRl3IU7bRbbQ5QX1cx8PLESBZE2tSdZAk17mjT6sA=" - }, - "kotest-framework-concurrency-jvm-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency-jvm/5.8.0/kotest-framework-concurrency-jvm-5.8.0.pom" - ], - "hash": "sha256-7v7jZcABVNdstQ1A/st6vmJ0VT9/W6oXUuwLa4N7xfc=" - } - } - }, - "io.kotest:kotest-framework-discovery": { - "5.8.0": { - "kotest-framework-discovery-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery/5.8.0/kotest-framework-discovery-5.8.0.module" - ], - "hash": "sha256-VoSDmnX88MjoK7N71Bp/RBct6MW00Ne6UXvrKm+QLOg=" - }, - "kotest-framework-discovery-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery/5.8.0/kotest-framework-discovery-5.8.0.pom" - ], - "hash": "sha256-tMavvBR1+21pVxy6TT5wppDaUpwR7sNtLtd/5x/cuxs=" - } - } - }, - "io.kotest:kotest-framework-discovery-jvm": { - "5.8.0": { - "kotest-framework-discovery-jvm-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery-jvm/5.8.0/kotest-framework-discovery-jvm-5.8.0.jar" - ], - "hash": "sha256-lgXMffCmeKx2AWgVHR4MHK5KYLXH4aufDIP90k0Y1Qg=" - }, - "kotest-framework-discovery-jvm-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery-jvm/5.8.0/kotest-framework-discovery-jvm-5.8.0.module" - ], - "hash": "sha256-zsbAAen4kumwoVk7VTKweeEZjP7rwX4D7Bh60M4eR7c=" - }, - "kotest-framework-discovery-jvm-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery-jvm/5.8.0/kotest-framework-discovery-jvm-5.8.0.pom" - ], - "hash": "sha256-OwQzrfH2hV8edikiq8i9Tw5S+uXEYsi/tI5+fEEe6iQ=" - } - } - }, - "io.kotest:kotest-framework-engine": { - "5.8.0": { - "kotest-framework-engine-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine/5.8.0/kotest-framework-engine-5.8.0.module" - ], - "hash": "sha256-SwIApEo9C8FVvORZmt8/TMeGt8HcqvNN1FkgZ1u95K4=" - }, - "kotest-framework-engine-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine/5.8.0/kotest-framework-engine-5.8.0.pom" - ], - "hash": "sha256-aVRjdWId02iWcTeQVwUA1A3XGWLYjmm3Y9fri84MIf8=" - } - } - }, - "io.kotest:kotest-framework-engine-jvm": { - "5.8.0": { - "kotest-framework-engine-jvm-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine-jvm/5.8.0/kotest-framework-engine-jvm-5.8.0.jar" - ], - "hash": "sha256-tO9fOo7j0vcrmnCDW8eLvWM2K1e9Sccpz9yZuILIIp8=" - }, - "kotest-framework-engine-jvm-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine-jvm/5.8.0/kotest-framework-engine-jvm-5.8.0.module" - ], - "hash": "sha256-pGoQsAqZT1z+77nV0QNDCXSZ0FsScHbVZjC5LD3R12w=" - }, - "kotest-framework-engine-jvm-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine-jvm/5.8.0/kotest-framework-engine-jvm-5.8.0.pom" - ], - "hash": "sha256-jBBwZ6e2xJH/r9wcFw9ny7vwD5kgqfzOB8hMunEc/u8=" - } - } - }, - "io.kotest:kotest-runner-junit5": { - "5.8.0": { - "kotest-runner-junit5-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5/5.8.0/kotest-runner-junit5-5.8.0.module" - ], - "hash": "sha256-y4wLecykG/GoIxOlnv5+EOwDY6xnlXOBdGwPuHl3oTk=" - }, - "kotest-runner-junit5-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5/5.8.0/kotest-runner-junit5-5.8.0.pom" - ], - "hash": "sha256-rlCoYpxGJZocWHMicr7irCRXCMuZYucqI5IhisVYeXQ=" - }, - "kotest-runner-junit5-metadata-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5/5.8.0/kotest-runner-junit5-5.8.0.jar" - ], - "hash": "sha256-GYlbE71A2UxWtFP6A4ZSA6gHc5hxjhGLTC3sVEV//14=" - } - } - }, - "io.kotest:kotest-runner-junit5-jvm": { - "5.8.0": { - "kotest-runner-junit5-jvm-5.8.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5-jvm/5.8.0/kotest-runner-junit5-jvm-5.8.0.jar" - ], - "hash": "sha256-sSz+ck1ROQpTy6yOogFGeAmE79vceaa9Cl1zncSq5/k=" - }, - "kotest-runner-junit5-jvm-5.8.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5-jvm/5.8.0/kotest-runner-junit5-jvm-5.8.0.module" - ], - "hash": "sha256-41YAWlqTPI5YBYxB+3w6MNfc88/oo+pvcseYKR52tf8=" - }, - "kotest-runner-junit5-jvm-5.8.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5-jvm/5.8.0/kotest-runner-junit5-jvm-5.8.0.pom" - ], - "hash": "sha256-PT+RCcm8xoqFPKuUeYqbvjMM4qexQtc6vGiY352Rj68=" - } - } - }, - "net.bytebuddy:byte-buddy": { - "1.10.9": { - "byte-buddy-1.10.9.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.10.9/byte-buddy-1.10.9.jar" - ], - "hash": "sha256-B7nKbi+XDLA/SyVlHfHy/OJx1JG0TgQJgniHeG9pLU0=" - }, - "byte-buddy-1.10.9.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.10.9/byte-buddy-1.10.9.pom" - ], - "hash": "sha256-QIgdSUiocRWTRicPNpRbwpAlV3xstX9qXdDHwiIGnaw=" - } - } - }, - "net.bytebuddy:byte-buddy-agent": { - "1.10.9": { - "byte-buddy-agent-1.10.9.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.10.9/byte-buddy-agent-1.10.9.jar" - ], - "hash": "sha256-+9BS0tTNFvcHVHxGhiHGt/uELH7Ihm0BLsvGF43h85Q=" - }, - "byte-buddy-agent-1.10.9.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.10.9/byte-buddy-agent-1.10.9.pom" - ], - "hash": "sha256-GZB0lfvBwjFsjrrXbwe5bRAf6xp+PAm/4VJv0/xu7J0=" - } - } - }, - "net.java.dev.jna:jna": { - "5.9.0": { - "jna-5.9.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0.jar" - ], - "hash": "sha256-6vzHgLRFQ008Wuf6L7ZmXeGnVg1TfSxAio6AzRTScWE=" - }, - "jna-5.9.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0.pom" - ], - "hash": "sha256-a8i4RZFQtZ6VmPPa2a0kWh7yFQ0IJYEBcYTrFj5ZKCk=" - } - } - }, - "net.java.dev.jna:jna-platform": { - "5.9.0": { - "jna-platform-5.9.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna-platform/5.9.0/jna-platform-5.9.0.jar" - ], - "hash": "sha256-GQO8bYfzq5ICOVe5H0WpyOs1FbrQMDVs6XcgHlFBtyQ=" - }, - "jna-platform-5.9.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna-platform/5.9.0/jna-platform-5.9.0.pom" - ], - "hash": "sha256-C9pdmOS+kmHwnN+u5vokWYh5CDTX/K3I4v3ZPH1kGCU=" - } - } - }, - "org.apache.ant:ant": { - "1.10.13": { - "ant-1.10.13.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/ant/ant/1.10.13/ant-1.10.13.jar" - ], - "hash": "sha256-vvv8eedE6Yks+n25bfO26C3BfSVxr0KqQnl2/CIpmDg=" - }, - "ant-1.10.13.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/ant/ant/1.10.13/ant-1.10.13.pom" - ], - "hash": "sha256-J5NR7tkLj3QbtIyVvmHD7CRU48ipr7Q7zB0LrB3aE3o=" - } - } - }, - "org.apache.ant:ant-launcher": { - "1.10.13": { - "ant-launcher-1.10.13.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/ant/ant-launcher/1.10.13/ant-launcher-1.10.13.jar" - ], - "hash": "sha256-zXaVs7+2lkq3G2oLMdrWAAWud/5QITI2Rnmqzwj3eXA=" - }, - "ant-launcher-1.10.13.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/ant/ant-launcher/1.10.13/ant-launcher-1.10.13.pom" - ], - "hash": "sha256-ApkvvDgFU1bzyU0B6qJJmcsCoJuqnB/fXqx2t8MVY8o=" - } - } - }, - "org.apache.logging.log4j:log4j-api": { - "2.20.0": { - "log4j-api-2.20.0.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-api/2.20.0/log4j-api-2.20.0.jar" - ], - "hash": "sha256-L0PupnnqZvFMoPE/7CqGAKwST1pSMdy034OT7dy5dVA=" - }, - "log4j-api-2.20.0.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-api/2.20.0/log4j-api-2.20.0.pom" - ], - "hash": "sha256-zUWDKj1s0hlENcDWPKAV8ZSWjy++pPKRVTv3r7hOFjc=" - } - } - }, - "org.apache.logging.log4j:log4j-core": { - "2.20.0": { - "log4j-core-2.20.0.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-core/2.20.0/log4j-core-2.20.0.jar" - ], - "hash": "sha256-YTffhIza7Z9NUHb3VRPGyF2oC5U/TnrMo4CYt3B2P1U=" - }, - "log4j-core-2.20.0.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-core/2.20.0/log4j-core-2.20.0.pom" - ], - "hash": "sha256-3nGsEAVR9KB3rsrQd70VPnHfeqacMELXZRbMXM4Ice4=" - } - } - }, - "org.apache.maven:maven-model": { - "3.6.3": { - "maven-model-3.6.3.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/maven/maven-model/3.6.3/maven-model-3.6.3.jar" - ], - "hash": "sha256-F87x9Y4UbvDX2elrO5LZih1v19KzKIulOOj/Hg2RYM8=" - }, - "maven-model-3.6.3.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/apache/maven/maven-model/3.6.3/maven-model-3.6.3.pom" - ], - "hash": "sha256-fHIOjLA9KFxxzW4zTZyeWWBivdMQ7grRX1xHmpkxVPA=" - } - } - }, - "org.apiguardian:apiguardian-api": { - "1.1.2": { - "apiguardian-api-1.1.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar" - ], - "hash": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=" - }, - "apiguardian-api-1.1.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.module" - ], - "hash": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=" - }, - "apiguardian-api-1.1.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.pom" - ], - "hash": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA=" - } - } - }, - "org.codehaus.plexus:plexus-utils": { - "3.5.1": { - "plexus-utils-3.5.1.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.jar" - ], - "hash": "sha256-huAlXUyHnGG0gz7X8TEk6LtnnfR967EnMm59t91JoHs=" - }, - "plexus-utils-3.5.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.pom" - ], - "hash": "sha256-lP9o7etIIE0SyZGJx2cWTTqfd4oTctHc4RpBRi5iNvI=" - } - } - }, - "org.gradle:gradle-tooling-api": { - "8.5": { - "gradle-tooling-api-8.5.jar": { - "urls": [ - "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/8.5/gradle-tooling-api-8.5.jar" - ], - "hash": "sha256-Oj8ZrejGJCdtb64e9iYJmyVb+GDi0fNFwVAiuNf18B0=" - }, - "gradle-tooling-api-8.5.module": { - "urls": [ - "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/8.5/gradle-tooling-api-8.5.module" - ], - "hash": "sha256-g/38Gz8vXYtdbkc9J+jUTOVqamjDv14AGVE5pkUk644=" - }, - "gradle-tooling-api-8.5.pom": { - "urls": [ - "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/8.5/gradle-tooling-api-8.5.pom" - ], - "hash": "sha256-W+ZN0cMxohnX1D+uLii9JoDUkeCoKJ73kNaQCLLTJsE=" - } - } - }, - "org.jdom:jdom2": { - "2.0.6.1": { - "jdom2-2.0.6.1.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jdom/jdom2/2.0.6.1/jdom2-2.0.6.1.jar" - ], - "hash": "sha256-CyD0XjoP2PDRLNxTFrBndukCsTZdsAEYh2+RdcYPMCw=" - }, - "jdom2-2.0.6.1.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jdom/jdom2/2.0.6.1/jdom2-2.0.6.1.pom" - ], - "hash": "sha256-VXleEBi4rmR7k3lnz4EKmbCFgsI3TnhzwShzTIyRS/M=" - } - } - }, - "org.jetbrains.intellij.deps:trove4j": { - "1.0.20200330": { - "trove4j-1.0.20200330.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar", - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" - ], - "hash": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=" - }, - "trove4j-1.0.20200330.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom", - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom" - ], - "hash": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" - } - } - }, - "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin": { - "1.9.21": { - "org.jetbrains.kotlin.jvm.gradle.plugin-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.9.21/org.jetbrains.kotlin.jvm.gradle.plugin-1.9.21.pom" - ], - "hash": "sha256-wCQ0YBrQ0+FDMzNe3airmdpJvj8luRUMfcYKKLNOiG0=" - } - } - }, - "org.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin": { - "1.9.21": { - "org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/plugin/serialization/org.jetbrains.kotlin.plugin.serialization.gradle.plugin/1.9.21/org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.9.21.pom" - ], - "hash": "sha256-X2YbnEx5RUOAoIAaMrsk4CEUhmO8XgbqROPpGcENWtQ=" - } - } - }, - "org.jetbrains.kotlin:kotlin-android-extensions": { - "1.9.21": { - "kotlin-android-extensions-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.9.21/kotlin-android-extensions-1.9.21.jar" - ], - "hash": "sha256-mAuTI5ni2OX5clLdOx1VZdLZ18TFhMJn+pJE1rTdZrM=" - }, - "kotlin-android-extensions-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.9.21/kotlin-android-extensions-1.9.21.pom" - ], - "hash": "sha256-4Vb9esK/Oh1ruM9uYn8omYYceWa2WYlOz1rOMsH6uPU=" - } - } - }, - "org.jetbrains.kotlin:kotlin-build-common": { - "1.9.21": { - "kotlin-build-common-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-common/1.9.21/kotlin-build-common-1.9.21.jar" - ], - "hash": "sha256-3bFTJKHCCDYiOyqzGZTzBal/aMC5rex4AthEs8XlN+M=" - }, - "kotlin-build-common-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-common/1.9.21/kotlin-build-common-1.9.21.pom" - ], - "hash": "sha256-usTddaENNRq42KO/gx0yFHCxAhn4rqR7d3SuzVp9Rrc=" - } - } - }, - "org.jetbrains.kotlin:kotlin-build-tools-api": { - "1.9.21": { - "kotlin-build-tools-api-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.21/kotlin-build-tools-api-1.9.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.21/kotlin-build-tools-api-1.9.21.jar" - ], - "hash": "sha256-1iQupx+j2qCwarmTYi7lP7+gBIOxmGAoUmq2BhlDJ4k=" - }, - "kotlin-build-tools-api-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.21/kotlin-build-tools-api-1.9.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.21/kotlin-build-tools-api-1.9.21.pom" - ], - "hash": "sha256-k8DEhPZHtVSzkLcdrUXuWMNbvQ9bgy90DlCm7PFB7Fc=" - } - } - }, - "org.jetbrains.kotlin:kotlin-build-tools-impl": { - "1.9.21": { - "kotlin-build-tools-impl-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-impl/1.9.21/kotlin-build-tools-impl-1.9.21.jar" - ], - "hash": "sha256-xQnfuD5Wp+AjYPLY4llbuMxyehKWjXOUJ9WoiK/5QiU=" - }, - "kotlin-build-tools-impl-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-impl/1.9.21/kotlin-build-tools-impl-1.9.21.pom" - ], - "hash": "sha256-0fSzorImBj63RyPMeYi1b4OZFOw8z4+PzysU+z7Tl04=" - } - } - }, - "org.jetbrains.kotlin:kotlin-compiler-embeddable": { - "1.9.21": { - "kotlin-compiler-embeddable-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.21/kotlin-compiler-embeddable-1.9.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.21/kotlin-compiler-embeddable-1.9.21.jar" - ], - "hash": "sha256-RpBLPT9RZWCkjg2T2ce/xjZQsi2faPejfqteXF8/eFo=" - }, - "kotlin-compiler-embeddable-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.21/kotlin-compiler-embeddable-1.9.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.21/kotlin-compiler-embeddable-1.9.21.pom" - ], - "hash": "sha256-+Q3IdvTzQph+WpujD6aArmTt1IiKYkPMXOTYS9vwscM=" - } - } - }, - "org.jetbrains.kotlin:kotlin-compiler-runner": { - "1.9.21": { - "kotlin-compiler-runner-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.21/kotlin-compiler-runner-1.9.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.21/kotlin-compiler-runner-1.9.21.jar" - ], - "hash": "sha256-15SPoqyM9iSj+6p2jxsDu7MQ1dkMV+Bb501rh566Vh8=" - }, - "kotlin-compiler-runner-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.21/kotlin-compiler-runner-1.9.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.21/kotlin-compiler-runner-1.9.21.pom" - ], - "hash": "sha256-yWxA/82dEWVcw6RgXKQpGB5S7zMF412QHXvdS9/yzCM=" - } - } - }, - "org.jetbrains.kotlin:kotlin-daemon-client": { - "1.9.21": { - "kotlin-daemon-client-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.21/kotlin-daemon-client-1.9.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.21/kotlin-daemon-client-1.9.21.jar" - ], - "hash": "sha256-JFdJdm1qh9F+tCbJFXwj5XLI8FI9pnpq+kICvOOrAYw=" - }, - "kotlin-daemon-client-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.21/kotlin-daemon-client-1.9.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.21/kotlin-daemon-client-1.9.21.pom" - ], - "hash": "sha256-Q2I9u3rJy8mtOBbldbM7Jb5IOmzHe9yO0dQo2uuZ5w8=" - } - } - }, - "org.jetbrains.kotlin:kotlin-daemon-embeddable": { - "1.9.21": { - "kotlin-daemon-embeddable-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.21/kotlin-daemon-embeddable-1.9.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.21/kotlin-daemon-embeddable-1.9.21.jar" - ], - "hash": "sha256-ARUv+0GwdunFUIPFE+HvBfMDzVqVzt/8uJ4STjQN8R4=" - }, - "kotlin-daemon-embeddable-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.21/kotlin-daemon-embeddable-1.9.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.21/kotlin-daemon-embeddable-1.9.21.pom" - ], - "hash": "sha256-LYnUjseQqQc7s237HnvvV1nuoHMGT4ZWuISvRtEZnXY=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin": { - "1.9.21": { - "kotlin-gradle-plugin-1.9.21-gradle82.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.21/kotlin-gradle-plugin-1.9.21-gradle82.jar" - ], - "hash": "sha256-Rk6rvg8TEh+6R9Ddd9t44EzHEUGO8fo44Fn7rXQBdNU=" - }, - "kotlin-gradle-plugin-1.9.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.21/kotlin-gradle-plugin-1.9.21.module" - ], - "hash": "sha256-IRGsVcoYTydpeFyYlxBNjrSahDeSJi8UdZGyObh8s2I=" - }, - "kotlin-gradle-plugin-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.21/kotlin-gradle-plugin-1.9.21.pom" - ], - "hash": "sha256-xbqNH/3ANOBTfWFCFlYr+oKDgZuXpQe1TEfWr92/9Pc=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-annotations": { - "1.9.21": { - "kotlin-gradle-plugin-annotations-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.21/kotlin-gradle-plugin-annotations-1.9.21.jar" - ], - "hash": "sha256-vHHk5IEnHPKtQVDZ9lE087UPqu0ftSCFIXwjLXp6DbQ=" - }, - "kotlin-gradle-plugin-annotations-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.21/kotlin-gradle-plugin-annotations-1.9.21.pom" - ], - "hash": "sha256-WIjmVsteuQ2k6P/ue6kTq070qP/LK06352bEDApIcNE=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-api": { - "1.9.21": { - "kotlin-gradle-plugin-api-1.9.21-gradle82.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.21/kotlin-gradle-plugin-api-1.9.21-gradle82.jar" - ], - "hash": "sha256-8fA4+yuHImPe8G1gqoP0TbfYuHusJJEJ9jvhMvDDB/8=" - }, - "kotlin-gradle-plugin-api-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.21/kotlin-gradle-plugin-api-1.9.21.jar" - ], - "hash": "sha256-8fA4+yuHImPe8G1gqoP0TbfYuHusJJEJ9jvhMvDDB/8=" - }, - "kotlin-gradle-plugin-api-1.9.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.21/kotlin-gradle-plugin-api-1.9.21.module" - ], - "hash": "sha256-3Q/w/LjdD2iqQDhkHUfx0ID82EWokNaPd62IZmg5X8g=" - }, - "kotlin-gradle-plugin-api-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.21/kotlin-gradle-plugin-api-1.9.21.pom" - ], - "hash": "sha256-EHDGnUDsQQjYdMvnwX31G5MVQ/vMFxSL8KFq9BF6j0o=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-idea": { - "1.9.21": { - "kotlin-gradle-plugin-idea-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.21/kotlin-gradle-plugin-idea-1.9.21.jar" - ], - "hash": "sha256-jRr4djLZUUjxIqn6CuKQPBnub6t9AeAX924NLJoCLCA=" - }, - "kotlin-gradle-plugin-idea-1.9.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.21/kotlin-gradle-plugin-idea-1.9.21.module" - ], - "hash": "sha256-9wJ2o8nNkyDTXQEyKIguZwwmqOV77yduEgXWLSfIzEg=" - }, - "kotlin-gradle-plugin-idea-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.21/kotlin-gradle-plugin-idea-1.9.21.pom" - ], - "hash": "sha256-i9zuHeTCbdShLcq4+X2zlsp21st9B4xXpeZEkRdEKXo=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto": { - "1.9.21": { - "kotlin-gradle-plugin-idea-proto-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.21/kotlin-gradle-plugin-idea-proto-1.9.21.jar" - ], - "hash": "sha256-65eVj7I1SmwOzcKMNDyWKqQlZOa70GmY22jeWJt6MHM=" - }, - "kotlin-gradle-plugin-idea-proto-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.21/kotlin-gradle-plugin-idea-proto-1.9.21.pom" - ], - "hash": "sha256-4cQb9uDuTO6Ez7LYgFckQzIFgI3mlBhM9LgJHpoEG5o=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugin-model": { - "1.9.21": { - "kotlin-gradle-plugin-model-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.21/kotlin-gradle-plugin-model-1.9.21.jar" - ], - "hash": "sha256-7i/6CkmrvaLh44yCVFGN//DkcYB0gWQOJ59crJMRpC8=" - }, - "kotlin-gradle-plugin-model-1.9.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.21/kotlin-gradle-plugin-model-1.9.21.module" - ], - "hash": "sha256-mM2kiy7nukL7s32FSeA8D7EgVnMAT9qfgWGcmImcbBg=" - }, - "kotlin-gradle-plugin-model-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.21/kotlin-gradle-plugin-model-1.9.21.pom" - ], - "hash": "sha256-Dgzua65viYZz3OIlWweO21YEBrk8w4HhVF1KFQ5pyFM=" - } - } - }, - "org.jetbrains.kotlin:kotlin-gradle-plugins-bom": { - "1.9.21": { - "kotlin-gradle-plugins-bom-1.9.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.21/kotlin-gradle-plugins-bom-1.9.21.module" - ], - "hash": "sha256-EHBCRob+7+LpTs1eicV775AAcGnUXR9g78Dw2O4pOtA=" - }, - "kotlin-gradle-plugins-bom-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.21/kotlin-gradle-plugins-bom-1.9.21.pom" - ], - "hash": "sha256-IGoqxYRN9eR9HIhz6DAbs7Ro8c2g4eZP+jqo6cCrTQo=" - } - } - }, - "org.jetbrains.kotlin:kotlin-klib-commonizer-api": { - "1.9.21": { - "kotlin-klib-commonizer-api-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.21/kotlin-klib-commonizer-api-1.9.21.jar" - ], - "hash": "sha256-7rGVGEW/Tu9Jr7UPv4Ss67+rTW0ksP2nAQzk/9xaKVc=" - }, - "kotlin-klib-commonizer-api-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.21/kotlin-klib-commonizer-api-1.9.21.pom" - ], - "hash": "sha256-eBHA/x1mByiNMPvNmUWVDLWsnVZAe1k5UKnXMCm041g=" - } - } - }, - "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable": { - "1.9.21": { - "kotlin-klib-commonizer-embeddable-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.9.21/kotlin-klib-commonizer-embeddable-1.9.21.jar" - ], - "hash": "sha256-SLSET083NrXr8Htn8G51fxlvFvMC9Ey4NUfYy39JI6k=" - }, - "kotlin-klib-commonizer-embeddable-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.9.21/kotlin-klib-commonizer-embeddable-1.9.21.pom" - ], - "hash": "sha256-BlDErTWOgCawbhPNOGGNF8gHgyS+OXqRTKqVdkp8qcU=" - } - } - }, - "org.jetbrains.kotlin:kotlin-native-utils": { - "1.9.21": { - "kotlin-native-utils-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.9.21/kotlin-native-utils-1.9.21.jar" - ], - "hash": "sha256-YBFPSr2hsnAvaSVu3ITQzx0CaOb07CzHpKAvYGsLgHE=" - }, - "kotlin-native-utils-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.9.21/kotlin-native-utils-1.9.21.pom" - ], - "hash": "sha256-y1E5uiwJSuU8nsR8yR8iKv0ERoDvwcC+S0ontWU6fZY=" - } - } - }, - "org.jetbrains.kotlin:kotlin-project-model": { - "1.9.21": { - "kotlin-project-model-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.9.21/kotlin-project-model-1.9.21.jar" - ], - "hash": "sha256-NFOCtgvaQ7whRE+Cj8aD3h86qceKBNV/JhbWJ8XQeCE=" - }, - "kotlin-project-model-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.9.21/kotlin-project-model-1.9.21.pom" - ], - "hash": "sha256-3QhzM2jeyhQDAFAdjBtFqQScEOESOIJnz+RPrDGqSek=" - } - } - }, - "org.jetbrains.kotlin:kotlin-reflect": { - "1.9.21": { - "kotlin-reflect-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.21/kotlin-reflect-1.9.21.jar" - ], - "hash": "sha256-oTPgSfCk4kllFYJCjhZt5N+slUat9Da2FyEZJV7eUQ8=" - }, - "kotlin-reflect-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.21/kotlin-reflect-1.9.21.pom" - ], - "hash": "sha256-wu93WbdrxNn29SnS8/vBwxpFl8wVhuc6fXqxbRvbtKk=" - } + "com.fasterxml:oss-parent:48": { + "oss-parent-48.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/fasterxml/oss-parent/48/oss-parent-48.pom" + ], + "hash": "sha256-EbuiLYYxgW4JtiOiAHR0U9ZJGmbqyPXAicc9ordJAU8=" + } + }, + "com.fasterxml.jackson:jackson-bom:2.14.1": { + "jackson-bom-2.14.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/fasterxml/jackson/jackson-bom/2.14.1/jackson-bom-2.14.1.pom" + ], + "hash": "sha256-eP35nlBQ/EhfQRfauMzL+2+mxoOF6184oJtlU3HUpsw=" + } + }, + "com.fasterxml.jackson:jackson-parent:2.14": { + "jackson-parent-2.14.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/fasterxml/jackson/jackson-parent/2.14/jackson-parent-2.14.pom" + ], + "hash": "sha256-CQat2FWuOfkjV9Y/SFiJsI/KTEOl/kM1ItdTROB1exk=" + } + }, + "com.github.ajalt:clikt:2.8.0": { + "clikt-2.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt/2.8.0/clikt-2.8.0.jar" + ], + "hash": "sha256-MefokL7AOvKCKKG1akSyvB7Cu57wWMkoiAAW0ZmUhpw=" }, - "1.6.10": { - "kotlin-reflect-1.6.10.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.jar" - ], - "hash": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=" - }, - "kotlin-reflect-1.6.10.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.pom" - ], - "hash": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak=" - } - } - }, - "org.jetbrains.kotlin:kotlin-script-runtime": { - "1.9.21": { - "kotlin-script-runtime-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.21/kotlin-script-runtime-1.9.21.jar" - ], - "hash": "sha256-Gxx01Hb/pBmFsLldvnjqUFIGGIn4EG8a5ste4X8yPxk=" - }, - "kotlin-script-runtime-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.21/kotlin-script-runtime-1.9.21.pom" - ], - "hash": "sha256-NA85f5c+0AryWBJV3b865C28zEkvaD8k7cLxKnNQWTM=" - } - } - }, - "org.jetbrains.kotlin:kotlin-scripting-common": { - "1.9.21": { - "kotlin-scripting-common-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.21/kotlin-scripting-common-1.9.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.21/kotlin-scripting-common-1.9.21.jar" - ], - "hash": "sha256-gDldjWWHmRi7YAHHqXbjwKVKMSqEyaHXNXujnypwUCE=" - }, - "kotlin-scripting-common-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.21/kotlin-scripting-common-1.9.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.21/kotlin-scripting-common-1.9.21.pom" - ], - "hash": "sha256-s/MyBbIae59WBKWGbulYI2XSC0IhCqqHQEw/ChLxvjw=" - } - } - }, - "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { - "1.9.21": { - "kotlin-scripting-compiler-embeddable-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.21/kotlin-scripting-compiler-embeddable-1.9.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.21/kotlin-scripting-compiler-embeddable-1.9.21.jar" - ], - "hash": "sha256-CJmtaTYqavXX4woaxmYmzIn1d1twsHU3bEBBd0HEQII=" - }, - "kotlin-scripting-compiler-embeddable-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.21/kotlin-scripting-compiler-embeddable-1.9.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.21/kotlin-scripting-compiler-embeddable-1.9.21.pom" - ], - "hash": "sha256-bjDfDrR1x9tRL+zAwiQOKWIOkHrlEmDx9Jw3x3401PY=" - } - } - }, - "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { - "1.9.21": { - "kotlin-scripting-compiler-impl-embeddable-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.21/kotlin-scripting-compiler-impl-embeddable-1.9.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.21/kotlin-scripting-compiler-impl-embeddable-1.9.21.jar" - ], - "hash": "sha256-i2XQNYWjCcUjpsBfL5nQtLwm/m8Pjtx34704kivwlUs=" - }, - "kotlin-scripting-compiler-impl-embeddable-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.21/kotlin-scripting-compiler-impl-embeddable-1.9.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.21/kotlin-scripting-compiler-impl-embeddable-1.9.21.pom" - ], - "hash": "sha256-0lJ2Bg5AJ0YL/rgx3/aSD+W5OirfGyxhPGcSW0o1Ql4=" - } - } - }, - "org.jetbrains.kotlin:kotlin-scripting-jvm": { - "1.9.21": { - "kotlin-scripting-jvm-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.21/kotlin-scripting-jvm-1.9.21.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.21/kotlin-scripting-jvm-1.9.21.jar" - ], - "hash": "sha256-CRjinugVRB1ZQ7mo5RpI/H/wjxerqlJEOrccDI6rDac=" - }, - "kotlin-scripting-jvm-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.21/kotlin-scripting-jvm-1.9.21.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.21/kotlin-scripting-jvm-1.9.21.pom" - ], - "hash": "sha256-BougkNsQwD6f8ZeEWthqqgfrBcrgWoDSfiCfdI7iSus=" - } - } - }, - "org.jetbrains.kotlin:kotlin-serialization": { - "1.9.21": { - "kotlin-serialization-1.9.21-gradle82.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-serialization/1.9.21/kotlin-serialization-1.9.21-gradle82.jar" - ], - "hash": "sha256-6KCkwaNRR6IxkeNLgvJ/3sMi18A4+c+kKRI7r5sNDto=" - }, - "kotlin-serialization-1.9.21.module": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-serialization/1.9.21/kotlin-serialization-1.9.21.module" - ], - "hash": "sha256-Wmilrdv5YrnGVmZkI/l4CV5Sle59Z945WFXa0r5n39w=" - }, - "kotlin-serialization-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-serialization/1.9.21/kotlin-serialization-1.9.21.pom" - ], - "hash": "sha256-OZ8CA5hkxdQfrYYicN7R+xLQUcvP8aR5i5scsHpda0U=" - } - } - }, - "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin-embeddable": { - "1.9.21": { - "kotlin-serialization-compiler-plugin-embeddable-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-serialization-compiler-plugin-embeddable/1.9.21/kotlin-serialization-compiler-plugin-embeddable-1.9.21.jar" - ], - "hash": "sha256-umkg/m2FBJ08WGSR2xXfBCR5nW2cDOmH/hGIJHacNCs=" - }, - "kotlin-serialization-compiler-plugin-embeddable-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-serialization-compiler-plugin-embeddable/1.9.21/kotlin-serialization-compiler-plugin-embeddable-1.9.21.pom" - ], - "hash": "sha256-6J5ayDc4vF+V53pDaNfnweRrDb4hf0h3lcOvuQ1F3Oc=" - } - } - }, - "org.jetbrains.kotlin:kotlin-stdlib": { - "1.9.21": { - "kotlin-stdlib-1.9.21-all.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21-all.jar" - ], - "hash": "sha256-zsOLwzAucqiq+c3kNrWpBx7gMx4q0F6E2LuJczTX6dQ=" - }, - "kotlin-stdlib-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21.jar" - ], - "hash": "sha256-O0eTE6tsrqTl4l097oyoDDAsibpz4a9Nr6oQD275KWo=" - }, - "kotlin-stdlib-1.9.21.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21.module" - ], - "hash": "sha256-0wGffw1xkkzkcpjJzEavAkX3UhlxmzXFkV+8x+emk5U=" - }, - "kotlin-stdlib-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21.pom" - ], - "hash": "sha256-yAfZL3xqobZcBs+HIyNjUE5pD8o/PB4nIGYwoTIv1+A=" - } - } - }, - "org.jetbrains.kotlin:kotlin-stdlib-common": { - "1.9.21": { - "kotlin-stdlib-common-1.9.21.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.21/kotlin-stdlib-common-1.9.21.module" - ], - "hash": "sha256-aNyOhKoF9SeMFlBSR9cTRtNRK57a3UH2E9ZXyUxZmTs=" - }, - "kotlin-stdlib-common-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.21/kotlin-stdlib-common-1.9.21.pom" - ], - "hash": "sha256-d4C4Z7/lc/y7D9H5Jx3aVAEhfG1or5OTV0zYYglX+K4=" - } - } - }, - "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { - "1.9.21": { - "kotlin-stdlib-jdk7-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.21/kotlin-stdlib-jdk7-1.9.21.jar" - ], - "hash": "sha256-v+IfQkbIvKNQsYQEBv+803awXto36ypksBHeGMLKeBg=" - }, - "kotlin-stdlib-jdk7-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.21/kotlin-stdlib-jdk7-1.9.21.pom" - ], - "hash": "sha256-AVFiDhh0XvJ2ECNw/GdHBPcN821kgsxBmh5S263Cg2I=" - } + "clikt-2.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt/2.8.0/clikt-2.8.0.module" + ], + "hash": "sha256-63VRQs7Uww/5lU+IH4piAUsdy/SKuciarYjFwpH95Gk=" }, - "1.8.20": { - "kotlin-stdlib-jdk7-1.8.20.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.20/kotlin-stdlib-jdk7-1.8.20.jar" - ], - "hash": "sha256-rx7EDDuVGv3MDCoBc8e4F2PFKBwtW6+/CoVEokxdzAw=" - }, - "kotlin-stdlib-jdk7-1.8.20.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.20/kotlin-stdlib-jdk7-1.8.20.pom" - ], - "hash": "sha256-NiLRBleM3cwKnsIPjOgV9/Sf9UL2QCKNIUH8r4BhawY=" - } + "clikt-2.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt/2.8.0/clikt-2.8.0.pom" + ], + "hash": "sha256-6njJ/q8ULg4AGtO8Ey95KJKSb7wmYPpu78Mg8Vzw/Hw=" } }, - "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { - "1.9.21": { - "kotlin-stdlib-jdk8-1.9.21.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.21/kotlin-stdlib-jdk8-1.9.21.jar" - ], - "hash": "sha256-BwLWS6qpDlxW5GdzeCTJvjreHlFWJHPBQ60DWByVUSc=" - }, - "kotlin-stdlib-jdk8-1.9.21.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.21/kotlin-stdlib-jdk8-1.9.21.pom" - ], - "hash": "sha256-J79Q6ETwZc0emFT8m8K9pRIrh4ZOoDBL1pW7En0AMvQ=" - } + "com.github.ajalt:clikt-metadata:2.8.0": { + "clikt-metadata-2.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt-metadata/2.8.0/clikt-metadata-2.8.0.jar" + ], + "hash": "sha256-Nxf/mOths+cC3HT1D4chzIFtNdzpwv/1g+NNUw0/I08=" }, - "1.8.20": { - "kotlin-stdlib-jdk8-1.8.20.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.20/kotlin-stdlib-jdk8-1.8.20.jar" - ], - "hash": "sha256-45i2eXdiJxi/GP+ZtznH2doGDzP7RYouJSAyIcFq8BA=" - }, - "kotlin-stdlib-jdk8-1.8.20.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.20/kotlin-stdlib-jdk8-1.8.20.pom" - ], - "hash": "sha256-OkYiFKM26ZVod2lTGx43sMgdjhDJlJzV6nrh14A6AjI=" - } - } - }, - "org.jetbrains.kotlin:kotlin-tooling-core": { - "1.9.21": { - "kotlin-tooling-core-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.21/kotlin-tooling-core-1.9.21.jar" - ], - "hash": "sha256-iTjrl+NjINqj5vsqYP0qBbIy/0pVcXPFAZ8EW4gy2fQ=" - }, - "kotlin-tooling-core-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.21/kotlin-tooling-core-1.9.21.pom" - ], - "hash": "sha256-hKHzMgdZYwgLteu9lKs9gQVZu99nDRLS3XnjSaGEI4M=" - } - } - }, - "org.jetbrains.kotlin:kotlin-util-io": { - "1.9.21": { - "kotlin-util-io-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.9.21/kotlin-util-io-1.9.21.jar" - ], - "hash": "sha256-P8EzMyn3iN4N7hwaKb04c9IlgYDjHdpjWiBGAjC34Q4=" - }, - "kotlin-util-io-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.9.21/kotlin-util-io-1.9.21.pom" - ], - "hash": "sha256-rK9/vvUF5Ey8nmeZO8KqrZ93ymxOkEnZaer72OwjUnc=" - } - } - }, - "org.jetbrains.kotlin:kotlin-util-klib": { - "1.9.21": { - "kotlin-util-klib-1.9.21.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.9.21/kotlin-util-klib-1.9.21.jar" - ], - "hash": "sha256-7PQPbGslXcZeg2GD9YrXqhXMBdcxSz5Zov5Y1jF7BIM=" - }, - "kotlin-util-klib-1.9.21.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.9.21/kotlin-util-klib-1.9.21.pom" - ], - "hash": "sha256-3KeXVmp/RB/79nQgblWaaVboImcnzdBQfnGBFgW3Nyk=" - } - } - }, - "org.jetbrains.kotlinx:atomicfu": { - "0.20.2": { - "atomicfu-0.20.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.20.2/atomicfu-0.20.2.module" - ], - "hash": "sha256-LJleDoPFg+ElcG+6P+hRcAINF6iPidYpSlPNi9fEw4Q=" - }, - "atomicfu-0.20.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.20.2/atomicfu-0.20.2.pom" - ], - "hash": "sha256-fZSYii/6cay7jKEEhQ/sG+Je8YCeOlEPAOvUo8C1vPc=" - }, - "atomicfu-metadata-0.20.2-all.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.20.2/atomicfu-0.20.2-all.jar" - ], - "hash": "sha256-KpHxC4JtP+vEfCtmTiaGFXV8MREUI5eH9dw3SB/exEE=" - } - } - }, - "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { - "1.7.0": { - "kotlinx-coroutines-bom-1.7.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.7.0/kotlinx-coroutines-bom-1.7.0.pom" - ], - "hash": "sha256-WY3X2oxgqkQgy+8+s6xwUKuji6Ynq5xdTu+ksMgQr8w=" - } - } - }, - "org.jetbrains.kotlinx:kotlinx-coroutines-core": { - "1.7.0": { - "kotlinx-coroutines-core-1.7.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.7.0/kotlinx-coroutines-core-1.7.0.module" - ], - "hash": "sha256-n21XLOrFbkV4s4h/3hLAHOKYibXNpSPsNIqSXc2+qZI=" - }, - "kotlinx-coroutines-core-1.7.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.7.0/kotlinx-coroutines-core-1.7.0.pom" - ], - "hash": "sha256-E1iv5pE8h9Un+jQ+Ad3kIDiZ4gE13jj33zwtDeAJ7OI=" - }, - "kotlinx-coroutines-core-metadata-1.7.0-all.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.7.0/kotlinx-coroutines-core-1.7.0-all.jar" - ], - "hash": "sha256-SzP+4RJApy09ahrYdoe4nFqg36fCf0hq/a+CLlFebgI=" - } - } - }, - "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { - "1.7.0": { - "kotlinx-coroutines-core-jvm-1.7.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.7.0/kotlinx-coroutines-core-jvm-1.7.0.jar" - ], - "hash": "sha256-mjLFuoq9+mNhd43BLttW/XqTlyDuXnP1sYs7SrIRf2g=" - }, - "kotlinx-coroutines-core-jvm-1.7.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.7.0/kotlinx-coroutines-core-jvm-1.7.0.module" - ], - "hash": "sha256-NFJm0ScvnG9xgF4ubUVe5czFaNeDJ1orJGRDmkYCc8Y=" - }, - "kotlinx-coroutines-core-jvm-1.7.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.7.0/kotlinx-coroutines-core-jvm-1.7.0.pom" - ], - "hash": "sha256-oqv7p/IwThNAmiXGNPLrXvc9B1L9IhXpAEVrm9ld6so=" - } + "clikt-metadata-2.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt-metadata/2.8.0/clikt-metadata-2.8.0.module" + ], + "hash": "sha256-y43UaWNHeqTaxq77g8LBGJqqqJxaV0TPJGGovTAvSmY=" }, - "1.5.0": { - "kotlinx-coroutines-core-jvm-1.5.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar", - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar" - ], - "hash": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=" - }, - "kotlinx-coroutines-core-jvm-1.5.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module", - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module" - ], - "hash": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=" - }, - "kotlinx-coroutines-core-jvm-1.5.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom", - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom" - ], - "hash": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" - } + "clikt-metadata-2.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt-metadata/2.8.0/clikt-metadata-2.8.0.pom" + ], + "hash": "sha256-NtfT5a+1S3UWuJ0btkiAKNr/RrcufE4aXf9GNbtoDc8=" } }, - "org.jetbrains.kotlinx:kotlinx-coroutines-debug": { - "1.7.0": { - "kotlinx-coroutines-debug-1.7.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.7.0/kotlinx-coroutines-debug-1.7.0.jar" - ], - "hash": "sha256-WM/H+2DJJtIIePpyVyjF6AM6HWVOXH7qRT8sT0L6jJ4=" - }, - "kotlinx-coroutines-debug-1.7.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.7.0/kotlinx-coroutines-debug-1.7.0.module" - ], - "hash": "sha256-1hdAUkSV1JJCpOl8rtJPbCR2u9nbmT7kviY3uwJBzNY=" - }, - "kotlinx-coroutines-debug-1.7.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.7.0/kotlinx-coroutines-debug-1.7.0.pom" - ], - "hash": "sha256-j9+CQuYPKx2144mjjZWFuseH6i7+T7sZ+k0BnhGz+Ig=" - } - } - }, - "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8": { - "1.7.0": { - "kotlinx-coroutines-jdk8-1.7.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.7.0/kotlinx-coroutines-jdk8-1.7.0.jar" - ], - "hash": "sha256-25ZqpOtiwHdgb2p18zGYqq2aVFPPNnZbUBA1V+pmc3Y=" - }, - "kotlinx-coroutines-jdk8-1.7.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.7.0/kotlinx-coroutines-jdk8-1.7.0.module" - ], - "hash": "sha256-85ejgGeodi5Gr9CmOfnfb1g/K4VdKV8zEuf3HdXB5Hg=" - }, - "kotlinx-coroutines-jdk8-1.7.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.7.0/kotlinx-coroutines-jdk8-1.7.0.pom" - ], - "hash": "sha256-lMLrex8gLrkdM0ZpG3AZXgoKbMEmV0Zhgavi8U/Tp2E=" - } - } - }, - "org.jetbrains.kotlinx:kotlinx-coroutines-test": { - "1.7.0": { - "kotlinx-coroutines-test-1.7.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test/1.7.0/kotlinx-coroutines-test-1.7.0.module" - ], - "hash": "sha256-y4+jJ/bglXNPwfip89e7GTV1CbUhqA1evGJARGphMR0=" - }, - "kotlinx-coroutines-test-1.7.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test/1.7.0/kotlinx-coroutines-test-1.7.0.pom" - ], - "hash": "sha256-SEbzdW1rgJqopbdHQFyNXM1d6BOvSaHHc3brlGBp7MY=" - } - } - }, - "org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm": { - "1.7.0": { - "kotlinx-coroutines-test-jvm-1.7.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.7.0/kotlinx-coroutines-test-jvm-1.7.0.jar" - ], - "hash": "sha256-D9ufoLwCroMc0qQeS48HADuHtE2p9Kevs/Y9sGFsFn8=" - }, - "kotlinx-coroutines-test-jvm-1.7.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.7.0/kotlinx-coroutines-test-jvm-1.7.0.module" - ], - "hash": "sha256-vUvlmdpi7lcbe52ZODCaJ85kRwIvt66dyu57DyPV8Ls=" - }, - "kotlinx-coroutines-test-jvm-1.7.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.7.0/kotlinx-coroutines-test-jvm-1.7.0.pom" - ], - "hash": "sha256-ueAq33wWqg6C2qPNoRP+ynruT5GAkDgBWQ1qr4y3S7I=" - } - } - }, - "org.jetbrains.kotlinx:kotlinx-serialization-bom": { - "1.6.2": { - "kotlinx-serialization-bom-1.6.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-bom/1.6.2/kotlinx-serialization-bom-1.6.2.pom" - ], - "hash": "sha256-ew4dde6GIUmc+VQwyhL9qjL0p/kg1cMBv+lfoYfyczc=" - } - } - }, - "org.jetbrains.kotlinx:kotlinx-serialization-core": { - "1.6.2": { - "kotlinx-serialization-core-1.6.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.2/kotlinx-serialization-core-1.6.2.module" - ], - "hash": "sha256-arz0gTrJTfA3AS4xZzaKNEUHD9+OqyHQjYhtTtnC+2c=" - }, - "kotlinx-serialization-core-1.6.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.2/kotlinx-serialization-core-1.6.2.pom" - ], - "hash": "sha256-BibddZLIUwKToOPoHgiBltNRh3o422hHaTY3S6ZJ+S8=" - }, - "kotlinx-serialization-core-metadata-1.6.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.2/kotlinx-serialization-core-1.6.2.jar" - ], - "hash": "sha256-LlMCArumM8WrMeRvn/nNrZufTNTAchYLIDX+y/+AMxc=" - } - } - }, - "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm": { - "1.6.2": { - "kotlinx-serialization-core-jvm-1.6.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core-jvm/1.6.2/kotlinx-serialization-core-jvm-1.6.2.jar" - ], - "hash": "sha256-jm/AThou/SrLvFUDodydmIFm+Z5PH1Hva5HDpSB3vbE=" - }, - "kotlinx-serialization-core-jvm-1.6.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core-jvm/1.6.2/kotlinx-serialization-core-jvm-1.6.2.module" - ], - "hash": "sha256-oRSjT2SjAnNkMqWOCOY8qehpWy6CtycO+ltm4Bpm4DI=" - }, - "kotlinx-serialization-core-jvm-1.6.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core-jvm/1.6.2/kotlinx-serialization-core-jvm-1.6.2.pom" - ], - "hash": "sha256-aPgoyUU6M3xuhNv+f9BDZxrGWpRBfRShKMfRIG+q+v0=" - } - } - }, - "org.jetbrains.kotlinx:kotlinx-serialization-json": { - "1.6.2": { - "kotlinx-serialization-json-1.6.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json/1.6.2/kotlinx-serialization-json-1.6.2.module" - ], - "hash": "sha256-3bDwQzG0A0QOP8lYxGG/HuS46Ox5heeIXjG5/aR4AWw=" - }, - "kotlinx-serialization-json-1.6.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json/1.6.2/kotlinx-serialization-json-1.6.2.pom" - ], - "hash": "sha256-I+ukBlWEzmzf1oQzgWOSADm1DcTaH/HNRYFLanatyik=" - }, - "kotlinx-serialization-json-metadata-1.6.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json/1.6.2/kotlinx-serialization-json-1.6.2.jar" - ], - "hash": "sha256-5aPp/LlGmtxOJULWiHSMZg/ucPlG+lZP3eJTPcRk4Gs=" - } - } - }, - "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm": { - "1.6.2": { - "kotlinx-serialization-json-jvm-1.6.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json-jvm/1.6.2/kotlinx-serialization-json-jvm-1.6.2.jar" - ], - "hash": "sha256-jScYuwQugwsSt/sQrybQ+6Q94fH5/+CmsTHU0lGqwsw=" - }, - "kotlinx-serialization-json-jvm-1.6.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json-jvm/1.6.2/kotlinx-serialization-json-jvm-1.6.2.module" - ], - "hash": "sha256-EPn2v5KQC0WH3hV5eknGnx/dX311ctOANX/UbwzcSPo=" - }, - "kotlinx-serialization-json-jvm-1.6.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json-jvm/1.6.2/kotlinx-serialization-json-jvm-1.6.2.pom" - ], - "hash": "sha256-E2cHdYMiLPDCDYiqFMAFBjYA0WDnXdvJGa4+g6AsPmo=" - } - } - }, - "org.jetbrains:annotations": { - "23.0.0": { - "annotations-23.0.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/23.0.0/annotations-23.0.0.jar" - ], - "hash": "sha256-ew8ZckCCy/y8ZuWr6iubySzwih6hHhkZM+1DgB6zzQU=" - }, - "annotations-23.0.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/23.0.0/annotations-23.0.0.pom" - ], - "hash": "sha256-yUkPZVEyMo3yz7z990P1P8ORbWwdEENxdabKbjpndxw=" - } + "com.github.ajalt:colormath:1.2.0": { + "colormath-1.2.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/colormath/1.2.0/colormath-1.2.0.jar" + ], + "hash": "sha256-hqUffbsyq+QQ1UMx7GGsBoSlQ7JO6Xlnu6wKTmcp8DE=" }, - "13.0": { - "annotations-13.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" - ], - "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" - }, - "annotations-13.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" - ], - "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" - } + "colormath-1.2.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/colormath/1.2.0/colormath-1.2.0.pom" + ], + "hash": "sha256-a3EKjQoQu+PgV5Xvf03ux3j9eQBbDBvA5cF4Ae5r3Z0=" } }, - "org.junit.jupiter:junit-jupiter-api": { - "5.8.2": { - "junit-jupiter-api-5.8.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar" - ], - "hash": "sha256-GAjuh+D3GM1uJfO3WvwXlWrIo+3EjH6bq58Z+aeeOAE=" - }, - "junit-jupiter-api-5.8.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.module" - ], - "hash": "sha256-fpr03/9iZ6zd0VfZ4Rug1dyRszL6dLxMZZOeRReht3A=" - }, - "junit-jupiter-api-5.8.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.pom" - ], - "hash": "sha256-yb3jYieVswp3NTHoXFgy+NyKp37N0xPu4jXJg8v9Anc=" - } - } - }, - "org.junit.platform:junit-platform-commons": { - "1.8.2": { - "junit-platform-commons-1.8.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar" - ], - "hash": "sha256-0uAV/KcTDnmvL0YI3FRBXksQtZLXczPey0saJ0wYUFA=" - }, - "junit-platform-commons-1.8.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.module" - ], - "hash": "sha256-NChH0wRv6kNVlWkttPBdXwOeDh0eIE9NV1WQJVcIJiY=" - }, - "junit-platform-commons-1.8.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.pom" - ], - "hash": "sha256-zoUuNMahhKpsgO6N8EcXE6dAgTQTTwjjwcPdh8a1mrc=" - } - } - }, - "org.junit.platform:junit-platform-engine": { - "1.8.2": { - "junit-platform-engine-1.8.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.jar" - ], - "hash": "sha256-C30AD4w+jl99a4GWSZNue5k4MU6HyPmDgFIY6ldWflk=" - }, - "junit-platform-engine-1.8.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.module" - ], - "hash": "sha256-66d7Nu/fdaZ/RkODM4JfnkSPVQ1SHnJJ2VA1hYDuY2s=" - }, - "junit-platform-engine-1.8.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.pom" - ], - "hash": "sha256-AWhkMmYGDtko71qBgjAD7PrnmpqMC7/Xb0IBxsnXccU=" - } - } - }, - "org.junit.platform:junit-platform-launcher": { - "1.8.2": { - "junit-platform-launcher-1.8.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.jar" - ], - "hash": "sha256-giFWQJ/YPmguTFGZs0YAVCmbU4oFjCxtD1ybalvbdZQ=" - }, - "junit-platform-launcher-1.8.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.module" - ], - "hash": "sha256-4XQA7HvnYIwfiI1yG0MAHpc2wVDUD5jIoLzalWPYyus=" - }, - "junit-platform-launcher-1.8.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.pom" - ], - "hash": "sha256-tfancaautzyJpud/Vtcp9LqOta/dDxD0TbRNaq25UJU=" - } - } - }, - "org.junit.platform:junit-platform-suite-api": { - "1.8.2": { - "junit-platform-suite-api-1.8.2.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-suite-api/1.8.2/junit-platform-suite-api-1.8.2.jar" - ], - "hash": "sha256-lO80OwW4dbsuTvlKfMYuYQ4bnNeCR+Ky7EPtYYoe0Kc=" - }, - "junit-platform-suite-api-1.8.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-suite-api/1.8.2/junit-platform-suite-api-1.8.2.module" - ], - "hash": "sha256-kwagU4n8QNetnQsSigFEMOXRyldKGErujXhns+iRC3o=" - }, - "junit-platform-suite-api-1.8.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-suite-api/1.8.2/junit-platform-suite-api-1.8.2.pom" - ], - "hash": "sha256-QB/ZdNa5RmRSS+y3z4B8TUfXxXSy+vGxMeukiUn+mJg=" - } - } - }, - "org.junit:junit-bom": { - "5.8.2": { - "junit-bom-5.8.2.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.8.2/junit-bom-5.8.2.module" - ], - "hash": "sha256-QM+tmT+nDs3yr3TQxW2hSE7iIJZL6Pkyz+YyvponM/o=" - }, - "junit-bom-5.8.2.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.8.2/junit-bom-5.8.2.pom" - ], - "hash": "sha256-g2Bpyp6O48VuSDdiItopEmPxN70/0W2E/dR+/MPyhuI=" - } - } - }, - "org.opentest4j:opentest4j": { - "1.3.0": { - "opentest4j-1.3.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar" - ], - "hash": "sha256-SOLfY2yrZWPO1k3N/4q7I1VifLI27wvzdZhoLd90Lxs=" - }, - "opentest4j-1.3.0.module": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.module" - ], - "hash": "sha256-SL8dbItdyU90ZSvReQD2VN63FDUCSM9ej8onuQkMjg0=" - }, - "opentest4j-1.3.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.pom" - ], - "hash": "sha256-m/fP/EEPPoNywlIleN+cpW2dQ72TfjCUhwbCMqlDs1U=" - } + "com.github.ajalt:mordant:1.2.1": { + "mordant-1.2.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/mordant/1.2.1/mordant-1.2.1.jar" + ], + "hash": "sha256-enFOuNJbTZun8lalTHVZzKh9heyQ1pQ98ZE8rUPbldY=" }, - "1.2.0": { - "opentest4j-1.2.0.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar" - ], - "hash": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=" - }, - "opentest4j-1.2.0.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.pom" - ], - "hash": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" - } + "mordant-1.2.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/mordant/1.2.1/mordant-1.2.1.pom" + ], + "hash": "sha256-8DLcV/gHnB9WJvvF8PZfz14SNA3ictgpsLVOkpeacro=" } }, - "org.ow2.asm:asm": { - "9.4": { - "asm-9.4.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm/9.4/asm-9.4.jar" - ], - "hash": "sha256-OdDis9xFr2Wgmwl5RXUKlKEm4FLhJPk0aEQ6HQ4V84E=" - }, - "asm-9.4.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm/9.4/asm-9.4.pom" - ], - "hash": "sha256-SDdR5I+y0fQ8Ya06sA/6Rm7cAzPY/C/bWibpXTKYI5Q=" - } + "com.github.johnrengelman:shadow:8.1.1": { + "shadow-8.1.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/8.1.1/shadow-8.1.1.jar" + ], + "hash": "sha256-CEGXVVWQpTuyG1lQijMwVZ9TbdtEjq/R7GdfVGIDb88=" + }, + "shadow-8.1.1.module": { + "urls": [ + "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/8.1.1/shadow-8.1.1.module" + ], + "hash": "sha256-nQ87SqpniYcj6vbF6c0nOHj5V03azWSqNwJDYgzgLko=" + }, + "shadow-8.1.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/8.1.1/shadow-8.1.1.pom" + ], + "hash": "sha256-Mu55f8hDI3xM5cSeX0FSxYoIlK/OCg6SY25qLU/JjDU=" } }, - "org.ow2.asm:asm-commons": { - "9.4": { - "asm-commons-9.4.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/9.4/asm-commons-9.4.jar" - ], - "hash": "sha256-DBKKnsPzPJiVknL20WzxQke1CPWJUVdLzb0rVtYyY2Q=" - }, - "asm-commons-9.4.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/9.4/asm-commons-9.4.pom" - ], - "hash": "sha256-tCyiq8+IEXdqXdwCkPIQbX8xP4LHiw3czVzOTGOjUXk=" - } + "com.github.johnrengelman.shadow:com.github.johnrengelman.shadow.gradle.plugin:8.1.1": { + "com.github.johnrengelman.shadow.gradle.plugin-8.1.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/com.github.johnrengelman.shadow.gradle.plugin/8.1.1/com.github.johnrengelman.shadow.gradle.plugin-8.1.1.pom" + ], + "hash": "sha256-PLOIa5ffbgZvEIwxayGfJiyXw8st9tp4kn5kXetkPLA=" } }, - "org.ow2.asm:asm-tree": { - "9.4": { - "asm-tree-9.4.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/9.4/asm-tree-9.4.jar" - ], - "hash": "sha256-xC1HnPJFZqIesgr37q7vToa9tKiGMGz3L0g7ZedbKs8=" - }, - "asm-tree-9.4.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/9.4/asm-tree-9.4.pom" - ], - "hash": "sha256-x+nvk73YqzYwMs5TgvzGTQAtbFicF1IzI2zSmOUaPBY=" - } + "com.gradle.plugin-publish:com.gradle.plugin-publish.gradle.plugin:1.2.1": { + "com.gradle.plugin-publish.gradle.plugin-1.2.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/gradle/plugin-publish/com.gradle.plugin-publish.gradle.plugin/1.2.1/com.gradle.plugin-publish.gradle.plugin-1.2.1.pom" + ], + "hash": "sha256-60lBRA8TGZbmT6SCDc264js95UhBi6ke9MY0pqcfVMs=" } }, - "org.slf4j:slf4j-api": { - "2.0.9": { - "slf4j-api-2.0.9.jar": { - "urls": [ - "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar", - "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar" - ], - "hash": "sha256-CBiTDcjX3rtAMgRhFpHaWOSdQsULb/z9zgLa23w8K2w=" - }, - "slf4j-api-2.0.9.pom": { - "urls": [ - "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.pom", - "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.pom" - ], - "hash": "sha256-nDplT50KoaNLMXjr5TqJx2eS4dgfwelznL6bFhBSM4U=" - } + "com.gradle.publish:plugin-publish-plugin:1.2.1": { + "plugin-publish-plugin-1.2.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.jar" + ], + "hash": "sha256-KY8MLpeVMhcaBaQWAyY3M7ZfiRE9ToCczQ4mmQFJ3hg=" + }, + "plugin-publish-plugin-1.2.1.module": { + "urls": [ + "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.module" + ], + "hash": "sha256-w98uuag1ZdO2MVDYa0344o9mG1XOzdRJJ+RpMxA2yxk=" + }, + "plugin-publish-plugin-1.2.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.pom" + ], + "hash": "sha256-E6X+iu2+Rs/b6hLp/NcJemKygqpqtMkIZWuWzpoqX6M=" } }, - "org.slf4j:slf4j-simple": { - "2.0.9": { - "slf4j-simple-2.0.9.jar": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/2.0.9/slf4j-simple-2.0.9.jar" - ], - "hash": "sha256-cfnG3m267C0QyqMD+vCMXnSb5TskKJbGTJa3xrttYtw=" - }, - "slf4j-simple-2.0.9.pom": { - "urls": [ - "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/2.0.9/slf4j-simple-2.0.9.pom" - ], - "hash": "sha256-/SkP5smizRkdrWl7hUhysL9/1L6/EUTtQi4rVnhgnqc=" - } + "com.squareup.okio:okio:3.9.0": { + "okio-3.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.9.0/okio-3.9.0.jar" + ], + "hash": "sha256-5RilmFYnOh/OGKx9E938aQ3vphItflzQDK4Zti0DR9k=" + }, + "okio-3.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.9.0/okio-3.9.0.module" + ], + "hash": "sha256-aNHIef9liTHQKzrb6vu1EuFjwgqQyt8H2QyNvqfnYhA=" + }, + "okio-3.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.9.0/okio-3.9.0.pom" + ], + "hash": "sha256-FPNR2puXtDaeP26PaWsK1ANtFNIbD9l6pcjG7BW+fZA=" } }, - "org.vafer:jdependency": { - "2.8.0": { - "jdependency-2.8.0.jar": { - "urls": [ - "https://plugins.gradle.org/m2/org/vafer/jdependency/2.8.0/jdependency-2.8.0.jar" - ], - "hash": "sha256-v9LMfhv8eKqDtEwKVL8s3jikOC7CRyivaD2Y3GvngZI=" - }, - "jdependency-2.8.0.pom": { - "urls": [ - "https://plugins.gradle.org/m2/org/vafer/jdependency/2.8.0/jdependency-2.8.0.pom" - ], - "hash": "sha256-EBhn8/npJlei74mjELYE1D0JDJuQqj4LBS3NFqO78y0=" - } + "com.squareup.okio:okio-jvm:3.9.0": { + "okio-jvm-3.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-jvm/3.9.0/okio-jvm-3.9.0.jar" + ], + "hash": "sha256-3cOG/xS9JdXJNBZxlur0WxjeTyjhxVpNs3rllMv9N+Q=" + }, + "okio-jvm-3.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-jvm/3.9.0/okio-jvm-3.9.0.module" + ], + "hash": "sha256-z5coTsYbtR5t/Lx/K22VVsm3s+PLIswOLU8O7782GVs=" + }, + "okio-jvm-3.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-jvm/3.9.0/okio-jvm-3.9.0.pom" + ], + "hash": "sha256-VEiNRUqsyvaPcZnz3l3Ns4CBblfUYJBJF06FZSAROH4=" + } + }, + "com.typesafe:config:1.4.3": { + "config-1.4.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/typesafe/config/1.4.3/config-1.4.3.jar" + ], + "hash": "sha256-itpMGFznJBZxLWPgta/cXwCcDN9AXl8m7+zfFWql37Y=" + }, + "config-1.4.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/typesafe/config/1.4.3/config-1.4.3.pom" + ], + "hash": "sha256-tn6vqd0iD/h9ANumiACDpSlqXgxsAxA/XUuOHaEDD/M=" + } + }, + "commons-io:commons-io:2.11.0": { + "commons-io-2.11.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar" + ], + "hash": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=" + }, + "commons-io-2.11.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/commons-io/commons-io/2.11.0/commons-io-2.11.0.pom" + ], + "hash": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k=" + } + }, + "io.fabric8:kubernetes-client-bom:5.12.2": { + "kubernetes-client-bom-5.12.2.pom": { + "urls": [ + "https://plugins.gradle.org/m2/io/fabric8/kubernetes-client-bom/5.12.2/kubernetes-client-bom-5.12.2.pom" + ], + "hash": "sha256-6qA8FpVlaNVKa6Q31J1Ay/DdjpOXf5hDGCQldrZQvDs=" + } + }, + "io.github.classgraph:classgraph:4.8.172": { + "classgraph-4.8.172.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/classgraph/classgraph/4.8.172/classgraph-4.8.172.jar" + ], + "hash": "sha256-wWseIxpziZL3KVC1Jc774FSkCP9kLsy7IcrdVHCgXyI=" + }, + "classgraph-4.8.172.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/classgraph/classgraph/4.8.172/classgraph-4.8.172.pom" + ], + "hash": "sha256-gD2mlHTiB6oi/xnshXE3MGrU4ahz4V98Xv0sqer9W74=" + } + }, + "io.github.java-diff-utils:java-diff-utils:4.12": { + "java-diff-utils-4.12.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.jar" + ], + "hash": "sha256-mZCiA5d49rTMlHkBQcKGiGTqzuBiDGxFlFESGpAc1bU=" + }, + "java-diff-utils-4.12.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.pom" + ], + "hash": "sha256-wm4JftyOxoBdExmBfSPU5JbMEBXMVdxSAhEtj2qRZfw=" + } + }, + "io.github.java-diff-utils:java-diff-utils-parent:4.12": { + "java-diff-utils-parent-4.12.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/java-diff-utils/java-diff-utils-parent/4.12/java-diff-utils-parent-4.12.pom" + ], + "hash": "sha256-2BHPnxGMwsrRMMlCetVcF01MCm8aAKwa4cm8vsXESxk=" + } + }, + "io.github.pdvrieze.xmlutil:core:0.86.3": { + "core-0.86.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core/0.86.3/core-0.86.3.jar" + ], + "hash": "sha256-ikZHG7Y7PHhzlsu6WqL2TU4zOgOSAiRBrhIRHn5yjJE=" + }, + "core-0.86.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core/0.86.3/core-0.86.3.module" + ], + "hash": "sha256-MzlXsdCR2LrPqwYCCGgi+a2S9hMCy3Ru8g4Z9nprTbk=" + }, + "core-0.86.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core/0.86.3/core-0.86.3.pom" + ], + "hash": "sha256-ngeyUCJI+U7AYn9Wsn3wiBySBCrfzoCg35oa6sQWg4M=" + } + }, + "io.github.pdvrieze.xmlutil:core-jvm:0.86.3": { + "core-jvm-0.86.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core-jvm/0.86.3/core-jvm-0.86.3.jar" + ], + "hash": "sha256-kVJ9hv6gS9YYPRQKCfENqy3qcnrxLSfZFl7jQuo9Dt4=" + }, + "core-jvm-0.86.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core-jvm/0.86.3/core-jvm-0.86.3.module" + ], + "hash": "sha256-FgIJExZWo2dDGWXYAYk7J3fuguD3ZmaD+nXE+Wck/wc=" + }, + "core-jvm-0.86.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core-jvm/0.86.3/core-jvm-0.86.3.pom" + ], + "hash": "sha256-oBGIoPlVW1s7nZLlQz242AJ6vjleD/cIBRU+8v6qf4U=" + } + }, + "io.github.pdvrieze.xmlutil:serialization-jvm:0.86.3": { + "serialization-jvm-0.86.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/serialization-jvm/0.86.3/serialization-jvm-0.86.3.jar" + ], + "hash": "sha256-nOJz3LhguSpb8uw2rR4qEbQa7YnGyYTKc+h+/17aG9A=" + }, + "serialization-jvm-0.86.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/serialization-jvm/0.86.3/serialization-jvm-0.86.3.module" + ], + "hash": "sha256-3ppDm3mA++bMPDS8rZyEqIMVmdyHZNceD2c93Ho91Jo=" + }, + "serialization-jvm-0.86.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/serialization-jvm/0.86.3/serialization-jvm-0.86.3.pom" + ], + "hash": "sha256-OX1XqPVTaUEf7HRETH1NTLaeyYANUkSTrGHekJIl4wc=" + } + }, + "io.kotest:kotest-assertions-api:5.9.0": { + "kotest-assertions-api-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api/5.9.0/kotest-assertions-api-5.9.0.jar" + ], + "hash": "sha256-JmNIEcOE+VRVVMJUBfLZCMEaeupal1mZM/gsAIRsVAg=" + }, + "kotest-assertions-api-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api/5.9.0/kotest-assertions-api-5.9.0.module" + ], + "hash": "sha256-qFQu4m/P0+8yxm5e3mjeuvjql90heZH0HSAje7UpT4U=" + }, + "kotest-assertions-api-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api/5.9.0/kotest-assertions-api-5.9.0.pom" + ], + "hash": "sha256-GjEMzEBJd0cpFIPrOwUMbIle7KTONzPwHdkkZ6ZV8sw=" + } + }, + "io.kotest:kotest-assertions-api-jvm:5.9.0": { + "kotest-assertions-api-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api-jvm/5.9.0/kotest-assertions-api-jvm-5.9.0.jar" + ], + "hash": "sha256-Sv9MqD6SBssjiDJd+HKXb1GekloGlJSr7CkuwxFMDQk=" + }, + "kotest-assertions-api-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api-jvm/5.9.0/kotest-assertions-api-jvm-5.9.0.module" + ], + "hash": "sha256-XITlW45flkCcy1pCoS3ElCbl1ucWSnMy3wy4wrK21L4=" + }, + "kotest-assertions-api-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api-jvm/5.9.0/kotest-assertions-api-jvm-5.9.0.pom" + ], + "hash": "sha256-1g6ynf1tj7NSGYTX+sJaE0AHFHa7ceksV1X70VpaZzY=" + } + }, + "io.kotest:kotest-assertions-core:5.9.0": { + "kotest-assertions-core-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core/5.9.0/kotest-assertions-core-5.9.0.jar" + ], + "hash": "sha256-+uWJ9I5hs7uiaHvvMbbneu2Ji6dswFU3rdFQ7pSsmkY=" + }, + "kotest-assertions-core-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core/5.9.0/kotest-assertions-core-5.9.0.module" + ], + "hash": "sha256-p3KZqaKYbphakO0KsWd0pzMPeu/CUnOT3E1HeNPI4sM=" + }, + "kotest-assertions-core-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core/5.9.0/kotest-assertions-core-5.9.0.pom" + ], + "hash": "sha256-qvu+DMIo9BTt2Va2lHINRZLna47v+MiK211RRQRhu7o=" + } + }, + "io.kotest:kotest-assertions-core-jvm:5.9.0": { + "kotest-assertions-core-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core-jvm/5.9.0/kotest-assertions-core-jvm-5.9.0.jar" + ], + "hash": "sha256-TIngmms4JoES/eJqC1LvVLsXhDtBv9IV958s9M3QJ4w=" + }, + "kotest-assertions-core-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core-jvm/5.9.0/kotest-assertions-core-jvm-5.9.0.module" + ], + "hash": "sha256-OinQMJG5EyNIVgv1DKJKzEvBzIq+MGE8y/5alzt/F48=" + }, + "kotest-assertions-core-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core-jvm/5.9.0/kotest-assertions-core-jvm-5.9.0.pom" + ], + "hash": "sha256-pmgjeAvzFo5CAqPmg6PWZ1K5yg4aaqx4FL/mng155NU=" + } + }, + "io.kotest:kotest-assertions-shared:5.9.0": { + "kotest-assertions-shared-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared/5.9.0/kotest-assertions-shared-5.9.0.jar" + ], + "hash": "sha256-EoSglpgVz7PTk/TOTF2tW1Dc1wvxN4h78MA0yqIVYeE=" + }, + "kotest-assertions-shared-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared/5.9.0/kotest-assertions-shared-5.9.0.module" + ], + "hash": "sha256-KK3K96Q94fICNFI+4csorIc7ztp2VESW8cU1NF2gCJM=" + }, + "kotest-assertions-shared-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared/5.9.0/kotest-assertions-shared-5.9.0.pom" + ], + "hash": "sha256-IGd1Qmuhf36c1WjpZMWGMMNCt2c67pNPIiFVLNDwBww=" + } + }, + "io.kotest:kotest-assertions-shared-jvm:5.9.0": { + "kotest-assertions-shared-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared-jvm/5.9.0/kotest-assertions-shared-jvm-5.9.0.jar" + ], + "hash": "sha256-b9wtfMr8N1c/rhZ/hOMditN/2DHArXclPzDbuyedJlY=" + }, + "kotest-assertions-shared-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared-jvm/5.9.0/kotest-assertions-shared-jvm-5.9.0.module" + ], + "hash": "sha256-VGmhRQo07HywKyDjaY3dkHYsEVH6tba/RlWXlrl4OAs=" + }, + "kotest-assertions-shared-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared-jvm/5.9.0/kotest-assertions-shared-jvm-5.9.0.pom" + ], + "hash": "sha256-VQxkW4k0LR9iU/CXo+CzdyLsOTFxctB+E02E7A8IxKY=" + } + }, + "io.kotest:kotest-common:5.9.0": { + "kotest-common-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common/5.9.0/kotest-common-5.9.0.jar" + ], + "hash": "sha256-DGXHvQS/2EX3Lt6hmNrNtLWyBebrIbnsgzSvYMZNpfU=" + }, + "kotest-common-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common/5.9.0/kotest-common-5.9.0.module" + ], + "hash": "sha256-lqW8WbrWuITytzfvAR+ytKiZW+NO9eTnDSw99nKoh4M=" + }, + "kotest-common-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common/5.9.0/kotest-common-5.9.0.pom" + ], + "hash": "sha256-LGnqBsbRBz1dH/ruD2wS3Lv6W8qOYXgbi8QNi2t+BzY=" + } + }, + "io.kotest:kotest-common-jvm:5.9.0": { + "kotest-common-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common-jvm/5.9.0/kotest-common-jvm-5.9.0.jar" + ], + "hash": "sha256-yLAfI5/3kmxV/2oDYRqXpWSdWS6a0GqhBPM9RJR2uIg=" + }, + "kotest-common-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common-jvm/5.9.0/kotest-common-jvm-5.9.0.module" + ], + "hash": "sha256-uWwklcyvr/yACGF+Sk7NRBmR/tU8QyGhECjxxIspgLE=" + }, + "kotest-common-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common-jvm/5.9.0/kotest-common-jvm-5.9.0.pom" + ], + "hash": "sha256-DJw4J3/CngNTIDXkXDgi3C4B4yC9lPysTGsxMUIJAhM=" + } + }, + "io.kotest:kotest-extensions:5.9.0": { + "kotest-extensions-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions/5.9.0/kotest-extensions-5.9.0.module" + ], + "hash": "sha256-mr4zuEi4bBoBg3YOreTLxF1OEvxEySCz+Dnn6A146rs=" + }, + "kotest-extensions-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions/5.9.0/kotest-extensions-5.9.0.pom" + ], + "hash": "sha256-r36/K79pkmBmSLcdzJdHqDG43LML6A/hCfMDgOf1veU=" + } + }, + "io.kotest:kotest-extensions-jvm:5.9.0": { + "kotest-extensions-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions-jvm/5.9.0/kotest-extensions-jvm-5.9.0.jar" + ], + "hash": "sha256-Mb5rCyZdL3cS0KdeaOQv6wuOYV+r8BkInn+/5Zc04dA=" + }, + "kotest-extensions-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions-jvm/5.9.0/kotest-extensions-jvm-5.9.0.module" + ], + "hash": "sha256-BOtQGGme33ZRDZkDA3UZf1+XLUhkfrBNVr4B2EgdTkU=" + }, + "kotest-extensions-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions-jvm/5.9.0/kotest-extensions-jvm-5.9.0.pom" + ], + "hash": "sha256-6eDaRU1z0/8r4unJOC2QiGFdpHmLjeu6d71tQ0bOa9I=" + } + }, + "io.kotest:kotest-framework-api:5.9.0": { + "kotest-framework-api-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api/5.9.0/kotest-framework-api-5.9.0.module" + ], + "hash": "sha256-aGM5P0GVr+lxcVUTl0jDYdWU7KIlL+zs2qZQFg2moXI=" + }, + "kotest-framework-api-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api/5.9.0/kotest-framework-api-5.9.0.pom" + ], + "hash": "sha256-DR9H1blAce2rfDWIUeqSozNx5xpjl2AZiLf9cZEZCAs=" + } + }, + "io.kotest:kotest-framework-api-jvm:5.9.0": { + "kotest-framework-api-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api-jvm/5.9.0/kotest-framework-api-jvm-5.9.0.jar" + ], + "hash": "sha256-2SRLxofIOCISZyWzynZ25FZEemBRIQ4lF1z4qyDAtCM=" + }, + "kotest-framework-api-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api-jvm/5.9.0/kotest-framework-api-jvm-5.9.0.module" + ], + "hash": "sha256-losVlXIzbDC3+cKX/PvrfRyPgg6u1lx8d6TLMznY7WI=" + }, + "kotest-framework-api-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api-jvm/5.9.0/kotest-framework-api-jvm-5.9.0.pom" + ], + "hash": "sha256-+M0upKNYQEr5M+QjsDDRT5bGVfO+fqryE9H9cywekwg=" + } + }, + "io.kotest:kotest-framework-concurrency:5.9.0": { + "kotest-framework-concurrency-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency/5.9.0/kotest-framework-concurrency-5.9.0.module" + ], + "hash": "sha256-3X24UL0kQmjOFPnvo70y25AKgbmAW5TYJCSnWJIDxB0=" + }, + "kotest-framework-concurrency-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency/5.9.0/kotest-framework-concurrency-5.9.0.pom" + ], + "hash": "sha256-ML0NEgw6Tr0BJp5gw3CrNhStctHDX3/qq+/lDSlVC7I=" + } + }, + "io.kotest:kotest-framework-concurrency-jvm:5.9.0": { + "kotest-framework-concurrency-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency-jvm/5.9.0/kotest-framework-concurrency-jvm-5.9.0.jar" + ], + "hash": "sha256-B5txinLAdedCmHOz+VGoVROoA2xeOnbd3ocWEPKbd7U=" + }, + "kotest-framework-concurrency-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency-jvm/5.9.0/kotest-framework-concurrency-jvm-5.9.0.module" + ], + "hash": "sha256-p8YMX+xNYGBE50UAR+JfoGITADC4xYDfDikqYBWzTbQ=" + }, + "kotest-framework-concurrency-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency-jvm/5.9.0/kotest-framework-concurrency-jvm-5.9.0.pom" + ], + "hash": "sha256-xoO5KKNSADRo0j5ZQOnEJEjpknBpfEu8pHOavXSLDbc=" + } + }, + "io.kotest:kotest-framework-discovery:5.9.0": { + "kotest-framework-discovery-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery/5.9.0/kotest-framework-discovery-5.9.0.module" + ], + "hash": "sha256-L+Hiv5t/+eBNzZXjEI7jtfFURkTgZAP7lLkHZIOVCUA=" + }, + "kotest-framework-discovery-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery/5.9.0/kotest-framework-discovery-5.9.0.pom" + ], + "hash": "sha256-ts05NMKO1qZRr4RysuNqOuQMRWldI7As5JE7IULEgnE=" + } + }, + "io.kotest:kotest-framework-discovery-jvm:5.9.0": { + "kotest-framework-discovery-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery-jvm/5.9.0/kotest-framework-discovery-jvm-5.9.0.jar" + ], + "hash": "sha256-miiiFNkV20R5bwZcHP+7s8I2uJtqazg5UFjYCrg+ggM=" + }, + "kotest-framework-discovery-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery-jvm/5.9.0/kotest-framework-discovery-jvm-5.9.0.module" + ], + "hash": "sha256-7Xaj5/OnkkcbTUm+u+5pKPGEU0gLopHp5yBJlgAASCE=" + }, + "kotest-framework-discovery-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery-jvm/5.9.0/kotest-framework-discovery-jvm-5.9.0.pom" + ], + "hash": "sha256-sGGEOZMEvWc0UeszHyP3aqPtPf1dpMeb8dbiIb2MjFs=" + } + }, + "io.kotest:kotest-framework-engine:5.9.0": { + "kotest-framework-engine-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine/5.9.0/kotest-framework-engine-5.9.0.module" + ], + "hash": "sha256-gZN/CF6jy3S1hxETTtC7VsDymc/DFz27IUVCrMyVJxc=" + }, + "kotest-framework-engine-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine/5.9.0/kotest-framework-engine-5.9.0.pom" + ], + "hash": "sha256-xBA8Jfhv52zZKiA1irX1jbAUMtcKuBphBChd2MW998U=" + } + }, + "io.kotest:kotest-framework-engine-jvm:5.9.0": { + "kotest-framework-engine-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine-jvm/5.9.0/kotest-framework-engine-jvm-5.9.0.jar" + ], + "hash": "sha256-h6Dxzb4o39OyLp5GgSEzCx1zPdoFwkTvhs/ZHaoWYlU=" + }, + "kotest-framework-engine-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine-jvm/5.9.0/kotest-framework-engine-jvm-5.9.0.module" + ], + "hash": "sha256-ESmBvZzHXpTgQAm6W7dkWm8AeVEwU79W72QiUnSoBDs=" + }, + "kotest-framework-engine-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine-jvm/5.9.0/kotest-framework-engine-jvm-5.9.0.pom" + ], + "hash": "sha256-v8ljQokqqX+yqFM+r+m1elKQlQdCH6sw2K71m5QpGpI=" + } + }, + "io.kotest:kotest-runner-junit5:5.9.0": { + "kotest-runner-junit5-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5/5.9.0/kotest-runner-junit5-5.9.0.jar" + ], + "hash": "sha256-CJ4kQXv59sNO7Fcg7rssvMguooVezvkBM+sX4QedWGg=" + }, + "kotest-runner-junit5-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5/5.9.0/kotest-runner-junit5-5.9.0.module" + ], + "hash": "sha256-AfB70s+KHo+Z+dDmSpQ7X6cxE//szocwqMQ08nZSgvc=" + }, + "kotest-runner-junit5-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5/5.9.0/kotest-runner-junit5-5.9.0.pom" + ], + "hash": "sha256-xeE4b8vdz+kKt18wWVnzltXRxu7l2y/549Ik8QVsmpM=" + } + }, + "io.kotest:kotest-runner-junit5-jvm:5.9.0": { + "kotest-runner-junit5-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5-jvm/5.9.0/kotest-runner-junit5-jvm-5.9.0.jar" + ], + "hash": "sha256-dpV0ADmfVaJBZFgUGfKj0H9yfEiwPcOXLiV24YdH6iI=" + }, + "kotest-runner-junit5-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5-jvm/5.9.0/kotest-runner-junit5-jvm-5.9.0.module" + ], + "hash": "sha256-v6MTM0BhaveK/YqdH3bwAQ02Wx6GE2DWpzMqowrKy4s=" + }, + "kotest-runner-junit5-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5-jvm/5.9.0/kotest-runner-junit5-jvm-5.9.0.pom" + ], + "hash": "sha256-wuOpHya7dfndAfMnW8E5OL6Lp3KEIBwbov4DODC2xKo=" + } + }, + "io.ktor:ktor-events:2.3.11": { + "ktor-events-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events/2.3.11/ktor-events-2.3.11.jar" + ], + "hash": "sha256-qfTivW7ALrt5prOcEEr++k281IA7ufrV2e1XCTRX8G0=" + }, + "ktor-events-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events/2.3.11/ktor-events-2.3.11.module" + ], + "hash": "sha256-YScMYk6JE8UBLw87YF0ThAlwNl+5JOw8fuO0hLxTWXY=" + }, + "ktor-events-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events/2.3.11/ktor-events-2.3.11.pom" + ], + "hash": "sha256-hcFsb/+tI+3auG+gJU68tB7hhOh9M3Va41ITctMZ8ug=" + } + }, + "io.ktor:ktor-events-jvm:2.3.11": { + "ktor-events-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events-jvm/2.3.11/ktor-events-jvm-2.3.11.jar" + ], + "hash": "sha256-92Dmk7tpaq9srFhEXFI2hY0QzXwVCErCDHp1Ba50kac=" + }, + "ktor-events-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events-jvm/2.3.11/ktor-events-jvm-2.3.11.module" + ], + "hash": "sha256-HW+ysABOvT9w8g0YdMXRR9zcSn4pjM1ogdM/msx9tkE=" + }, + "ktor-events-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events-jvm/2.3.11/ktor-events-jvm-2.3.11.pom" + ], + "hash": "sha256-nssYQanQ3FgvP+/Yl7vKKpqntHd69GbL65epV0IHdAY=" + } + }, + "io.ktor:ktor-http:2.3.11": { + "ktor-http-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http/2.3.11/ktor-http-2.3.11.jar" + ], + "hash": "sha256-9PADOhT6whJBqLu+HFzxkzvRA+3I6eJ37j7gwcvTRkI=" + }, + "ktor-http-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http/2.3.11/ktor-http-2.3.11.module" + ], + "hash": "sha256-UBgBa5qlACv5oFBoGsFuBRp/uICUhPFWnvdqFpxKKiU=" + }, + "ktor-http-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http/2.3.11/ktor-http-2.3.11.pom" + ], + "hash": "sha256-tw7Nks9eqraVRQQDQ19SvqCDJe1VtNKDM1FN0diI0Dc=" + } + }, + "io.ktor:ktor-http-cio:2.3.11": { + "ktor-http-cio-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-cio/2.3.11/ktor-http-cio-2.3.11.module" + ], + "hash": "sha256-/lHSv+0gYTxLvcY4yT1X1ZmldFlXloNtjO7Zybep+n8=" + }, + "ktor-http-cio-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-cio/2.3.11/ktor-http-cio-2.3.11.pom" + ], + "hash": "sha256-p4wT0HqIQfw3MAGgGVPYKT2YDL972n81+FR3+1Ya+RA=" + } + }, + "io.ktor:ktor-http-cio-jvm:2.3.11": { + "ktor-http-cio-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-cio-jvm/2.3.11/ktor-http-cio-jvm-2.3.11.jar" + ], + "hash": "sha256-bIKoW5GMwAsSSn2w9HTtOH8FFIpCKWgQWG7lkTRNDn8=" + }, + "ktor-http-cio-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-cio-jvm/2.3.11/ktor-http-cio-jvm-2.3.11.module" + ], + "hash": "sha256-HzV2/lizf5nFj9TuJFmgRmiEoeWTw9Qb5/2/wQ5STtU=" + }, + "ktor-http-cio-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-cio-jvm/2.3.11/ktor-http-cio-jvm-2.3.11.pom" + ], + "hash": "sha256-vy9Vnf0Mx1NzkCGv7nlbr8U3U8ajWIiGa2J0Fg3stdY=" + } + }, + "io.ktor:ktor-http-jvm:2.3.11": { + "ktor-http-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-jvm/2.3.11/ktor-http-jvm-2.3.11.jar" + ], + "hash": "sha256-BQMz4biz/zBwvjIW4fPuePqdZQrI0hEEHQW/SCWbTfY=" + }, + "ktor-http-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-jvm/2.3.11/ktor-http-jvm-2.3.11.module" + ], + "hash": "sha256-BIraZkNbJkbTFrDOjX+aXfau8yuP1KEQ6vaPiqI8zII=" + }, + "ktor-http-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-jvm/2.3.11/ktor-http-jvm-2.3.11.pom" + ], + "hash": "sha256-CI9yJI9u5cZPW8Wa4i6MzE5ZqDVZ7U89ZGy9vtUDqIU=" + } + }, + "io.ktor:ktor-io:2.3.11": { + "ktor-io-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io/2.3.11/ktor-io-2.3.11.jar" + ], + "hash": "sha256-skZKEoTyY57muhpCVDIsxUsFMmWHpG+AFUy9tXAYC7I=" + }, + "ktor-io-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io/2.3.11/ktor-io-2.3.11.module" + ], + "hash": "sha256-RvrHp728UxfkD6bGYZpMUr7X02JaNP2kWRjDyq04r2A=" + }, + "ktor-io-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io/2.3.11/ktor-io-2.3.11.pom" + ], + "hash": "sha256-lFDUN7vjB58G5wAePQmaH2l7Fc7UWO8BorXFd1cVrPI=" + } + }, + "io.ktor:ktor-io-jvm:2.3.11": { + "ktor-io-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io-jvm/2.3.11/ktor-io-jvm-2.3.11.jar" + ], + "hash": "sha256-nJt0vx7xFuSybVyUUJoFd7yhQPgwqAzz9S0kVM0BEhs=" + }, + "ktor-io-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io-jvm/2.3.11/ktor-io-jvm-2.3.11.module" + ], + "hash": "sha256-EIlmqdlJzZRN/9MqUTc0pPKJyCRGt4nACmopTWM7ER8=" + }, + "ktor-io-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io-jvm/2.3.11/ktor-io-jvm-2.3.11.pom" + ], + "hash": "sha256-mbL5+MkKES6IVeY55AE+jXlYxCD8UVGq1iha3NdD0Ak=" + } + }, + "io.ktor:ktor-network:2.3.11": { + "ktor-network-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-network/2.3.11/ktor-network-2.3.11.module" + ], + "hash": "sha256-SlUAXFfLaTqLMK+eWk302ojX/kU93TRlvWsJEAkmbCw=" + }, + "ktor-network-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-network/2.3.11/ktor-network-2.3.11.pom" + ], + "hash": "sha256-eV7oO+aNHBYV/JibHkjPGNbeNvWK9vBb/7QjtOnsC18=" + } + }, + "io.ktor:ktor-network-jvm:2.3.11": { + "ktor-network-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-network-jvm/2.3.11/ktor-network-jvm-2.3.11.jar" + ], + "hash": "sha256-9njugGQUgEV28XM5R2Lg4busruMHOaBI1Oy0g4fe5GY=" + }, + "ktor-network-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-network-jvm/2.3.11/ktor-network-jvm-2.3.11.module" + ], + "hash": "sha256-jrPuxh+wtawI9Xvqfr83Q/Bcim9DImLUcuVu7JsuGZU=" + }, + "ktor-network-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-network-jvm/2.3.11/ktor-network-jvm-2.3.11.pom" + ], + "hash": "sha256-MdRLyv4uXbBWgn3XwoxljAHVxY5NC2IsHJ0m63SpqwM=" + } + }, + "io.ktor:ktor-serialization:2.3.11": { + "ktor-serialization-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization/2.3.11/ktor-serialization-2.3.11.jar" + ], + "hash": "sha256-I/oFsvofdMi+5JsvpNCmzRaXdvXLw7e00I5nfmr7n14=" + }, + "ktor-serialization-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization/2.3.11/ktor-serialization-2.3.11.module" + ], + "hash": "sha256-RY1rJzbNfObY9IMGdTEbJiZbM5tYoX0nLc0RFXI8lHI=" + }, + "ktor-serialization-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization/2.3.11/ktor-serialization-2.3.11.pom" + ], + "hash": "sha256-Cr072jnh1FQGF7zPRAO3J56g7KkUSo1q/+F/OPc8PGU=" + } + }, + "io.ktor:ktor-serialization-jvm:2.3.11": { + "ktor-serialization-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization-jvm/2.3.11/ktor-serialization-jvm-2.3.11.jar" + ], + "hash": "sha256-TC80IiaKlf63dwx10dJ+CdAJ3Wl8m0vyb9kxczLbUD4=" + }, + "ktor-serialization-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization-jvm/2.3.11/ktor-serialization-jvm-2.3.11.module" + ], + "hash": "sha256-9ys7vY/D7I5DSDSPQt3OUq8+Y/Cens9C5M2WkG2R1Tg=" + }, + "ktor-serialization-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization-jvm/2.3.11/ktor-serialization-jvm-2.3.11.pom" + ], + "hash": "sha256-nVGClI7BadSZPzuAFmETNuh/2PrjgidwH1imzh/Enp8=" + } + }, + "io.ktor:ktor-server-core:2.3.11": { + "ktor-server-core-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core/2.3.11/ktor-server-core-2.3.11.jar" + ], + "hash": "sha256-PztUA1uh8KXfyq3LoJd62JDVDEUa7iLVPvTVa1Om/O4=" + }, + "ktor-server-core-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core/2.3.11/ktor-server-core-2.3.11.module" + ], + "hash": "sha256-9KlYTH9QBmFcpCiXTk3Tz6Rr9fgq9AgjV51bPBTHYhQ=" + }, + "ktor-server-core-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core/2.3.11/ktor-server-core-2.3.11.pom" + ], + "hash": "sha256-111k/+joPoOX6n+cgCufGnnAjtYXzbHpj1hAzqNEVZo=" + } + }, + "io.ktor:ktor-server-core-jvm:2.3.11": { + "ktor-server-core-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core-jvm/2.3.11/ktor-server-core-jvm-2.3.11.jar" + ], + "hash": "sha256-6mi102OoWntBxzISf3BLDpj+OqwSJSl2PYrnAEf788o=" + }, + "ktor-server-core-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core-jvm/2.3.11/ktor-server-core-jvm-2.3.11.module" + ], + "hash": "sha256-FMtHfiKcHfwZgmJjHqajyNXVabXFm0zExQ7fM++s0DE=" + }, + "ktor-server-core-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core-jvm/2.3.11/ktor-server-core-jvm-2.3.11.pom" + ], + "hash": "sha256-maADHI6bP1m7Bkt2pdkoD4tx19nGLtwl2hfC1E+CeeE=" + } + }, + "io.ktor:ktor-server-host-common:2.3.11": { + "ktor-server-host-common-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-host-common/2.3.11/ktor-server-host-common-2.3.11.module" + ], + "hash": "sha256-cg0+sO8u7FRrD4iq4pL0uILk+Pze6GY7D6KyiEXHt04=" + }, + "ktor-server-host-common-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-host-common/2.3.11/ktor-server-host-common-2.3.11.pom" + ], + "hash": "sha256-B8Z/z3Xv1x18tmbpWfd/dSwCj1iywfoiUHLzYhGYVqw=" + } + }, + "io.ktor:ktor-server-host-common-jvm:2.3.11": { + "ktor-server-host-common-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-host-common-jvm/2.3.11/ktor-server-host-common-jvm-2.3.11.jar" + ], + "hash": "sha256-HjvNeLHpjsoQjZJ7u1QdDZtyP7IYcm1h6Fucpq4cjis=" + }, + "ktor-server-host-common-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-host-common-jvm/2.3.11/ktor-server-host-common-jvm-2.3.11.module" + ], + "hash": "sha256-xwLIGRtpP1d1ZpHRRkZ4u6mOhtCEXQKDdiGZS+uRlTI=" + }, + "ktor-server-host-common-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-host-common-jvm/2.3.11/ktor-server-host-common-jvm-2.3.11.pom" + ], + "hash": "sha256-Gr877I0aFWryXIDK700+sC3wxIGN1CghIW2+SCeZXfQ=" + } + }, + "io.ktor:ktor-server-netty:2.3.11": { + "ktor-server-netty-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty/2.3.11/ktor-server-netty-2.3.11.jar" + ], + "hash": "sha256-Wkb9vED9LXglmIPEzG6vO14pDdB9HEbqiO6j1I9QV3I=" + }, + "ktor-server-netty-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty/2.3.11/ktor-server-netty-2.3.11.module" + ], + "hash": "sha256-LUtE8EMgnpzg9IDdZmgoSbkyOfKIIBo1UqglQd1rE30=" + }, + "ktor-server-netty-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty/2.3.11/ktor-server-netty-2.3.11.pom" + ], + "hash": "sha256-qxGxtuLNQMM816OjnKeeSZlw/rFhIoI3ClZfEn0kXSM=" + } + }, + "io.ktor:ktor-server-netty-jvm:2.3.11": { + "ktor-server-netty-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty-jvm/2.3.11/ktor-server-netty-jvm-2.3.11.jar" + ], + "hash": "sha256-+YxIUr325irKzWu54yreP13lsmM+UY7F7B2tmD1XX5E=" + }, + "ktor-server-netty-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty-jvm/2.3.11/ktor-server-netty-jvm-2.3.11.module" + ], + "hash": "sha256-NYOIDN8BaY3r8qB3UPuenAvD369DZCLiRZw+f31Arig=" + }, + "ktor-server-netty-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty-jvm/2.3.11/ktor-server-netty-jvm-2.3.11.pom" + ], + "hash": "sha256-J+fP+sEa+ugSVjyPhVozJlMEIYLAGp6UfEg/Rzme35A=" + } + }, + "io.ktor:ktor-utils:2.3.11": { + "ktor-utils-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils/2.3.11/ktor-utils-2.3.11.jar" + ], + "hash": "sha256-SJeUj4AL85YHGPuaWv9QErcht7iWZjhZWCbGstp8TiU=" + }, + "ktor-utils-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils/2.3.11/ktor-utils-2.3.11.module" + ], + "hash": "sha256-wFGiUpPmUdQIGWPVFfMxsnPBevWpKYBs88mYdisk9is=" + }, + "ktor-utils-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils/2.3.11/ktor-utils-2.3.11.pom" + ], + "hash": "sha256-pP/0keaxdRMn261KJ+UR/U4xNpR/NyD32ovBtl2Ny6M=" + } + }, + "io.ktor:ktor-utils-jvm:2.3.11": { + "ktor-utils-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils-jvm/2.3.11/ktor-utils-jvm-2.3.11.jar" + ], + "hash": "sha256-1QjohTKUyKcuVhoSkBJ97q+SdC4tgQNqa5tzyCsx7WE=" + }, + "ktor-utils-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils-jvm/2.3.11/ktor-utils-jvm-2.3.11.module" + ], + "hash": "sha256-41aI1T/NEKfizORi3PjCB81MGkOD8ZU46xU/9wogbp4=" + }, + "ktor-utils-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils-jvm/2.3.11/ktor-utils-jvm-2.3.11.pom" + ], + "hash": "sha256-H412FDKI60HeKk4U/pf7CtRtMdfUpXwHo7voHSTOTKA=" + } + }, + "io.ktor:ktor-websockets:2.3.11": { + "ktor-websockets-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets/2.3.11/ktor-websockets-2.3.11.jar" + ], + "hash": "sha256-XdKULp+AhVyqGFXiShT3DxqHWcg3tFTplRdqPMl3QVg=" + }, + "ktor-websockets-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets/2.3.11/ktor-websockets-2.3.11.module" + ], + "hash": "sha256-t4zNNnaq5vyJ3WfnvqhKG8Dy1Wj2dS+njB8umGelDY4=" + }, + "ktor-websockets-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets/2.3.11/ktor-websockets-2.3.11.pom" + ], + "hash": "sha256-j87iI7x63u3+9R+IaRZJrsf3edm+JowIJ7tuiow0Nmw=" + } + }, + "io.ktor:ktor-websockets-jvm:2.3.11": { + "ktor-websockets-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets-jvm/2.3.11/ktor-websockets-jvm-2.3.11.jar" + ], + "hash": "sha256-0DB7Dv/GNJYymcO1L1E/eM+1xWY67t6dxCS4VZtT66o=" + }, + "ktor-websockets-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets-jvm/2.3.11/ktor-websockets-jvm-2.3.11.module" + ], + "hash": "sha256-NHCtWpjcwUnywUXqTgiQ1wY6UMd8JsXOk/fhySJqKQY=" + }, + "ktor-websockets-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets-jvm/2.3.11/ktor-websockets-jvm-2.3.11.pom" + ], + "hash": "sha256-y26TtzMFAIabQ+RBnTzdYMa7FoD493PwfLGLAZ2S7V8=" + } + }, + "io.netty:netty-bom:4.1.86.Final": { + "netty-bom-4.1.86.Final.pom": { + "urls": [ + "https://plugins.gradle.org/m2/io/netty/netty-bom/4.1.86.Final/netty-bom-4.1.86.Final.pom" + ], + "hash": "sha256-EnFsH+ZM9b2qcETTfROq46iIIbkdR5hCDEanR2kXiv0=" + } + }, + "io.netty:netty-buffer:4.1.106.Final": { + "netty-buffer-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-buffer/4.1.106.Final/netty-buffer-4.1.106.Final.jar" + ], + "hash": "sha256-1QZ72+R21jy0MpOCKDKnSafDijjBxRYQfHPSV8Ob7SE=" + }, + "netty-buffer-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-buffer/4.1.106.Final/netty-buffer-4.1.106.Final.pom" + ], + "hash": "sha256-2gY34YJ9Uw2h2PQwsObNaT7Ee32qBnQrKKw02xy1RqY=" + } + }, + "io.netty:netty-codec:4.1.106.Final": { + "netty-codec-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec/4.1.106.Final/netty-codec-4.1.106.Final.jar" + ], + "hash": "sha256-k4Y9/WkPes58JuTICP3CR4CtrUZbPNy3zj/HPEIt928=" + }, + "netty-codec-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec/4.1.106.Final/netty-codec-4.1.106.Final.pom" + ], + "hash": "sha256-NA+IHwoS9itNCY+bcQo0fASTjV/z38wvw8pw1X7a70s=" + } + }, + "io.netty:netty-codec-http:4.1.106.Final": { + "netty-codec-http-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec-http/4.1.106.Final/netty-codec-http-4.1.106.Final.jar" + ], + "hash": "sha256-uhd6A63Fh/pj6W8duunEb/JfWTl+o02WC0XgXQKWAm4=" + }, + "netty-codec-http-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec-http/4.1.106.Final/netty-codec-http-4.1.106.Final.pom" + ], + "hash": "sha256-DE+4Y7F3o8Z9NhZistW8Gx43Vgubamtxfbc+lnlW2Ro=" + } + }, + "io.netty:netty-codec-http2:4.1.106.Final": { + "netty-codec-http2-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec-http2/4.1.106.Final/netty-codec-http2-4.1.106.Final.jar" + ], + "hash": "sha256-wrgh1XpzPNZx6iqwZCACsX4KK4kATKAmxuro9Tgc+B4=" + }, + "netty-codec-http2-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec-http2/4.1.106.Final/netty-codec-http2-4.1.106.Final.pom" + ], + "hash": "sha256-JZlznLzUACvwLSkABPTYxyvdhZ2VOyGAR7HvdW55jEY=" + } + }, + "io.netty:netty-common:4.1.106.Final": { + "netty-common-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-common/4.1.106.Final/netty-common-4.1.106.Final.jar" + ], + "hash": "sha256-X/vgG9hFYXqRbeNhMBDV/aV8XraUFH040E95Hpg01cM=" + }, + "netty-common-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-common/4.1.106.Final/netty-common-4.1.106.Final.pom" + ], + "hash": "sha256-4ayZMJpA1e76IEs6GBXHIcuS5K5t1UHsIoRQ2cnUgA0=" + } + }, + "io.netty:netty-handler:4.1.106.Final": { + "netty-handler-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-handler/4.1.106.Final/netty-handler-4.1.106.Final.jar" + ], + "hash": "sha256-WpGa2Ittnp8IwwaZgLxlamKSagDmui2lhZqg7k4gLkQ=" + }, + "netty-handler-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-handler/4.1.106.Final/netty-handler-4.1.106.Final.pom" + ], + "hash": "sha256-lhoCD6DBskT1io9MYS+egEEokLlgO/WTzmiUKaRlC0Y=" + } + }, + "io.netty:netty-parent:4.1.106.Final": { + "netty-parent-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-parent/4.1.106.Final/netty-parent-4.1.106.Final.pom" + ], + "hash": "sha256-eV8c7NBEHGSvry5vEN+yHCRtRI9sQ1cFHt6mjpw+s2U=" + } + }, + "io.netty:netty-resolver:4.1.106.Final": { + "netty-resolver-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-resolver/4.1.106.Final/netty-resolver-4.1.106.Final.jar" + ], + "hash": "sha256-QElYuPBZDuUmAT0BHNI1Tat4rbqtdD19RE2zOj+eq6w=" + }, + "netty-resolver-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-resolver/4.1.106.Final/netty-resolver-4.1.106.Final.pom" + ], + "hash": "sha256-phbG6XmPmDwsK0BiFDvaWM8tD2mGnZ00yMJiPdZMXXc=" + } + }, + "io.netty:netty-transport:4.1.106.Final": { + "netty-transport-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport/4.1.106.Final/netty-transport-4.1.106.Final.jar" + ], + "hash": "sha256-I+qaOQCbQenQqhUVswc6+e5NpOFsLoabWqiqnxCdQlE=" + }, + "netty-transport-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport/4.1.106.Final/netty-transport-4.1.106.Final.pom" + ], + "hash": "sha256-qyxCFnnBmSuuT3UyvpdpbK5L9g5pbwskf/vPunrynM4=" + } + }, + "io.netty:netty-transport-classes-epoll:4.1.106.Final": { + "netty-transport-classes-epoll-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-classes-epoll/4.1.106.Final/netty-transport-classes-epoll-4.1.106.Final.jar" + ], + "hash": "sha256-676g9nii85R+sgC+Az7X/lUwZ+Octd9Ldp0bn8aimHI=" + }, + "netty-transport-classes-epoll-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-classes-epoll/4.1.106.Final/netty-transport-classes-epoll-4.1.106.Final.pom" + ], + "hash": "sha256-kancuAlsq6lJCbohCze/4/M7qjAuZXAap/4nnWlRzGc=" + } + }, + "io.netty:netty-transport-classes-kqueue:4.1.106.Final": { + "netty-transport-classes-kqueue-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.106.Final/netty-transport-classes-kqueue-4.1.106.Final.jar" + ], + "hash": "sha256-9o7UQlABZcajhz4HMeG2IIS0L4QtD0dmdHSA7x/Jdj4=" + }, + "netty-transport-classes-kqueue-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.106.Final/netty-transport-classes-kqueue-4.1.106.Final.pom" + ], + "hash": "sha256-5VnP7dwvVFIUCbLypQY8gXefTgvpcG/+2QR0B3xBHU4=" + } + }, + "io.netty:netty-transport-native-epoll:4.1.106.Final": { + "netty-transport-native-epoll-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-epoll/4.1.106.Final/netty-transport-native-epoll-4.1.106.Final.jar" + ], + "hash": "sha256-ZgOaFRY1MCriM9/Rh9kcfddzoRrM0Sc1wWU7gndOd/A=" + }, + "netty-transport-native-epoll-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-epoll/4.1.106.Final/netty-transport-native-epoll-4.1.106.Final.pom" + ], + "hash": "sha256-U51mdWvcdwISzdMD7mJMrY2xbu9KgZiyqOKEg+ljb04=" + } + }, + "io.netty:netty-transport-native-kqueue:4.1.106.Final": { + "netty-transport-native-kqueue-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-kqueue/4.1.106.Final/netty-transport-native-kqueue-4.1.106.Final.jar" + ], + "hash": "sha256-FC/1C6Wcdbv2c6bBQ53Prjy3RprbgQXcP7ZqpAVRpK4=" + }, + "netty-transport-native-kqueue-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-kqueue/4.1.106.Final/netty-transport-native-kqueue-4.1.106.Final.pom" + ], + "hash": "sha256-BuxVaGByijbJpVnBVpIl5kzOGvQPqZ7T3GdZgmHMlOs=" + } + }, + "io.netty:netty-transport-native-unix-common:4.1.106.Final": { + "netty-transport-native-unix-common-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-unix-common/4.1.106.Final/netty-transport-native-unix-common-4.1.106.Final.jar" + ], + "hash": "sha256-9S1LOMVxBmv6rpZKeGf6k38OVPtf9GfFdstlCiCoVOg=" + }, + "netty-transport-native-unix-common-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-unix-common/4.1.106.Final/netty-transport-native-unix-common-4.1.106.Final.pom" + ], + "hash": "sha256-h19sn7JG3Vygm8Lc/LF4wpsBxx6lE/M3jm/Osp1KCjo=" + } + }, + "jakarta.platform:jakarta.jakartaee-bom:9.0.0": { + "jakarta.jakartaee-bom-9.0.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/jakarta/platform/jakarta.jakartaee-bom/9.0.0/jakarta.jakartaee-bom-9.0.0.pom" + ], + "hash": "sha256-kZA9Ddh23sZ/i5I/EzK6cr8pWwa9OX0Y868ZMHzhos4=" + } + }, + "jakarta.platform:jakartaee-api-parent:9.0.0": { + "jakartaee-api-parent-9.0.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/jakarta/platform/jakartaee-api-parent/9.0.0/jakartaee-api-parent-9.0.0.pom" + ], + "hash": "sha256-9l3PFLbh2RSOGYo5D6/hVfrKCTJT3ekAMH8+DqgsrTs=" + } + }, + "net.bytebuddy:byte-buddy:1.10.9": { + "byte-buddy-1.10.9.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.10.9/byte-buddy-1.10.9.jar" + ], + "hash": "sha256-B7nKbi+XDLA/SyVlHfHy/OJx1JG0TgQJgniHeG9pLU0=" + }, + "byte-buddy-1.10.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.10.9/byte-buddy-1.10.9.pom" + ], + "hash": "sha256-QIgdSUiocRWTRicPNpRbwpAlV3xstX9qXdDHwiIGnaw=" + } + }, + "net.bytebuddy:byte-buddy-agent:1.10.9": { + "byte-buddy-agent-1.10.9.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.10.9/byte-buddy-agent-1.10.9.jar" + ], + "hash": "sha256-+9BS0tTNFvcHVHxGhiHGt/uELH7Ihm0BLsvGF43h85Q=" + }, + "byte-buddy-agent-1.10.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.10.9/byte-buddy-agent-1.10.9.pom" + ], + "hash": "sha256-GZB0lfvBwjFsjrrXbwe5bRAf6xp+PAm/4VJv0/xu7J0=" + } + }, + "net.bytebuddy:byte-buddy-parent:1.10.9": { + "byte-buddy-parent-1.10.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.10.9/byte-buddy-parent-1.10.9.pom" + ], + "hash": "sha256-k9nTgHec0XaMUrS87oLL+u3vmkow3oeuBrRB4WNP04w=" + } + }, + "net.java.dev.jna:jna:5.9.0": { + "jna-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0.jar" + ], + "hash": "sha256-6vzHgLRFQ008Wuf6L7ZmXeGnVg1TfSxAio6AzRTScWE=" + }, + "jna-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0.pom" + ], + "hash": "sha256-a8i4RZFQtZ6VmPPa2a0kWh7yFQ0IJYEBcYTrFj5ZKCk=" + } + }, + "net.java.dev.jna:jna-platform:5.9.0": { + "jna-platform-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna-platform/5.9.0/jna-platform-5.9.0.jar" + ], + "hash": "sha256-GQO8bYfzq5ICOVe5H0WpyOs1FbrQMDVs6XcgHlFBtyQ=" + }, + "jna-platform-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna-platform/5.9.0/jna-platform-5.9.0.pom" + ], + "hash": "sha256-C9pdmOS+kmHwnN+u5vokWYh5CDTX/K3I4v3ZPH1kGCU=" + } + }, + "org.apache:apache:27": { + "apache-27.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/apache/27/apache-27.pom" + ], + "hash": "sha256-srD8aeIqZQw4kvHDZtdwdvKVdcZzjfTHpwpEhESEzfk=" + } + }, + "org.apache:apache:23": { + "apache-23.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/apache/23/apache-23.pom" + ], + "hash": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw=" + } + }, + "org.apache:apache:21": { + "apache-21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/apache/21/apache-21.pom" + ], + "hash": "sha256-rxDBCNoBTxfK+se1KytLWjocGCZfoq+XoyXZFDU3s4A=" + } + }, + "org.apache.ant:ant:1.10.13": { + "ant-1.10.13.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant/1.10.13/ant-1.10.13.jar" + ], + "hash": "sha256-vvv8eedE6Yks+n25bfO26C3BfSVxr0KqQnl2/CIpmDg=" + }, + "ant-1.10.13.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant/1.10.13/ant-1.10.13.pom" + ], + "hash": "sha256-J5NR7tkLj3QbtIyVvmHD7CRU48ipr7Q7zB0LrB3aE3o=" + } + }, + "org.apache.ant:ant-launcher:1.10.13": { + "ant-launcher-1.10.13.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant-launcher/1.10.13/ant-launcher-1.10.13.jar" + ], + "hash": "sha256-zXaVs7+2lkq3G2oLMdrWAAWud/5QITI2Rnmqzwj3eXA=" + }, + "ant-launcher-1.10.13.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant-launcher/1.10.13/ant-launcher-1.10.13.pom" + ], + "hash": "sha256-ApkvvDgFU1bzyU0B6qJJmcsCoJuqnB/fXqx2t8MVY8o=" + } + }, + "org.apache.ant:ant-parent:1.10.13": { + "ant-parent-1.10.13.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant-parent/1.10.13/ant-parent-1.10.13.pom" + ], + "hash": "sha256-blv8hwgiFD8f+7LG8I7EiHctsxSlKDMC9IFLEms0aTk=" + } + }, + "org.apache.commons:commons-parent:52": { + "commons-parent-52.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/commons/commons-parent/52/commons-parent-52.pom" + ], + "hash": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4=" + } + }, + "org.apache.logging:logging-parent:7": { + "logging-parent-7.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/logging-parent/7/logging-parent-7.pom" + ], + "hash": "sha256-5YkR3J/GsXOhDlqp7bk8eZStBmAnBd0Gftz8bh6eFys=" + } + }, + "org.apache.logging.log4j:log4j:2.20.0": { + "log4j-2.20.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j/2.20.0/log4j-2.20.0.pom" + ], + "hash": "sha256-mje0qPZ+jUG8JHNxejAhYz1qPD8xBXnbmtC+PyRlnGk=" + } + }, + "org.apache.logging.log4j:log4j-api:2.20.0": { + "log4j-api-2.20.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-api/2.20.0/log4j-api-2.20.0.jar" + ], + "hash": "sha256-L0PupnnqZvFMoPE/7CqGAKwST1pSMdy034OT7dy5dVA=" + }, + "log4j-api-2.20.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-api/2.20.0/log4j-api-2.20.0.pom" + ], + "hash": "sha256-zUWDKj1s0hlENcDWPKAV8ZSWjy++pPKRVTv3r7hOFjc=" + } + }, + "org.apache.logging.log4j:log4j-bom:2.20.0": { + "log4j-bom-2.20.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-bom/2.20.0/log4j-bom-2.20.0.pom" + ], + "hash": "sha256-+LtpLpWmt72mAehxAJWOg9AGG38SMlC2gSiUOhlenaE=" + } + }, + "org.apache.logging.log4j:log4j-core:2.20.0": { + "log4j-core-2.20.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-core/2.20.0/log4j-core-2.20.0.jar" + ], + "hash": "sha256-YTffhIza7Z9NUHb3VRPGyF2oC5U/TnrMo4CYt3B2P1U=" + }, + "log4j-core-2.20.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-core/2.20.0/log4j-core-2.20.0.pom" + ], + "hash": "sha256-3nGsEAVR9KB3rsrQd70VPnHfeqacMELXZRbMXM4Ice4=" + } + }, + "org.apache.maven:maven:3.6.3": { + "maven-3.6.3.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven/3.6.3/maven-3.6.3.pom" + ], + "hash": "sha256-0thiRepmFJvBTS3XK7uWH5ZN1li4CaBXMlLAZTHu7BY=" + } + }, + "org.apache.maven:maven-model:3.6.3": { + "maven-model-3.6.3.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven-model/3.6.3/maven-model-3.6.3.jar" + ], + "hash": "sha256-F87x9Y4UbvDX2elrO5LZih1v19KzKIulOOj/Hg2RYM8=" + }, + "maven-model-3.6.3.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven-model/3.6.3/maven-model-3.6.3.pom" + ], + "hash": "sha256-fHIOjLA9KFxxzW4zTZyeWWBivdMQ7grRX1xHmpkxVPA=" + } + }, + "org.apache.maven:maven-parent:33": { + "maven-parent-33.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven-parent/33/maven-parent-33.pom" + ], + "hash": "sha256-OFbj/NFpUC1fEv4kUmBOv2x8Al8VZWv6VY6pntKdc+o=" + } + }, + "org.apiguardian:apiguardian-api:1.1.2": { + "apiguardian-api-1.1.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar" + ], + "hash": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=" + }, + "apiguardian-api-1.1.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.module" + ], + "hash": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=" + }, + "apiguardian-api-1.1.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.pom" + ], + "hash": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA=" + } + }, + "org.codehaus.groovy:groovy-bom:3.0.14": { + "groovy-bom-3.0.14.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/codehaus/groovy/groovy-bom/3.0.14/groovy-bom-3.0.14.pom" + ], + "hash": "sha256-JODptzjecRjennNWD/0GA0u1zwfKE6fgNFnoi6nRric=" + } + }, + "org.codehaus.plexus:plexus:10": { + "plexus-10.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus/10/plexus-10.pom" + ], + "hash": "sha256-u6nFIQZLnKEyzpfMHMfrSvwtvjK8iMuHLIjpn2FiMB8=" + } + }, + "org.codehaus.plexus:plexus-utils:3.5.1": { + "plexus-utils-3.5.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.jar" + ], + "hash": "sha256-huAlXUyHnGG0gz7X8TEk6LtnnfR967EnMm59t91JoHs=" + }, + "plexus-utils-3.5.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.pom" + ], + "hash": "sha256-lP9o7etIIE0SyZGJx2cWTTqfd4oTctHc4RpBRi5iNvI=" + } + }, + "org.eclipse.ee4j:project:1.0.6": { + "project-1.0.6.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/eclipse/ee4j/project/1.0.6/project-1.0.6.pom" + ], + "hash": "sha256-Tn2DKdjafc8wd52CQkG+FF8nEIky9aWiTrkHZ3vI1y0=" + } + }, + "org.eclipse.jetty:jetty-bom:9.4.50.v20221201": { + "jetty-bom-9.4.50.v20221201.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/eclipse/jetty/jetty-bom/9.4.50.v20221201/jetty-bom-9.4.50.v20221201.pom" + ], + "hash": "sha256-TN5uUz1gHq+LZazulWt3BsGBkvJ1XQI9fo0Zu31bOUM=" + } + }, + "org.eclipse.jetty:jetty-parent:21": { + "jetty-parent-21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-parent/21/jetty-parent-21.pom" + ], + "hash": "sha256-eXLp7G84UqjuHuXU0Q3Mnc1gd7El+TWqlrNnpsgjN/U=" + } + }, + "org.eclipse.jetty.alpn:alpn-api:1.1.3.v20160715": { + "alpn-api-1.1.3.v20160715.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/alpn/alpn-api/1.1.3.v20160715/alpn-api-1.1.3.v20160715.jar" + ], + "hash": "sha256-B76ZdYtpnhlPcPuXhNlCAtxsmCEod4KePXKwIPJmBXY=" + }, + "alpn-api-1.1.3.v20160715.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/alpn/alpn-api/1.1.3.v20160715/alpn-api-1.1.3.v20160715.pom" + ], + "hash": "sha256-FrRveqUg7VDUR4oM9ndjje3AFDtCNMJ48WDLS9JUgq8=" + } + }, + "org.fusesource:fusesource-pom:1.12": { + "fusesource-pom-1.12.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/fusesource/fusesource-pom/1.12/fusesource-pom-1.12.pom" + ], + "hash": "sha256-xA2WDarc73sBwbHGZXr7rE//teUxaPj8sLKLhOb9zKE=" + } + }, + "org.fusesource.jansi:jansi:2.4.1": { + "jansi-2.4.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/fusesource/jansi/jansi/2.4.1/jansi-2.4.1.jar" + ], + "hash": "sha256-Ll53Wp3Fj/prvWqm8JnWL4ti3N60w8O7vlzyMBvC3ME=" + }, + "jansi-2.4.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/fusesource/jansi/jansi/2.4.1/jansi-2.4.1.pom" + ], + "hash": "sha256-P5jZeaTTVZ+HefuwBLNK51Fq+t9RDhHffMPNBz6xuzs=" + } + }, + "org.gradle:gradle-tooling-api:8.7": { + "gradle-tooling-api-8.7.jar": { + "urls": [ + "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/8.7/gradle-tooling-api-8.7.jar" + ], + "hash": "sha256-UjAREw062qfdwR14e/363TmgBDIAzGd7cJtPrATLhrM=" + }, + "gradle-tooling-api-8.7.module": { + "urls": [ + "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/8.7/gradle-tooling-api-8.7.module" + ], + "hash": "sha256-c08g/Bo2leG74FuBK7m7un/wNzQ8lCp5THbpiBdpNCg=" + }, + "gradle-tooling-api-8.7.pom": { + "urls": [ + "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/8.7/gradle-tooling-api-8.7.pom", + "https://repo.maven.apache.org/maven2/org/gradle/gradle-tooling-api/8.7/gradle-tooling-api-8.7.pom" + ], + "hash": "sha256-Js9ia+mlUYCUZg1Vkot+NEGrQxuSkHTHc7+fL3V28/s=" + } + }, + "org.jdom:jdom2:2.0.6.1": { + "jdom2-2.0.6.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jdom/jdom2/2.0.6.1/jdom2-2.0.6.1.jar" + ], + "hash": "sha256-CyD0XjoP2PDRLNxTFrBndukCsTZdsAEYh2+RdcYPMCw=" + }, + "jdom2-2.0.6.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jdom/jdom2/2.0.6.1/jdom2-2.0.6.1.pom" + ], + "hash": "sha256-VXleEBi4rmR7k3lnz4EKmbCFgsI3TnhzwShzTIyRS/M=" + } + }, + "org.jetbrains:annotations:23.0.0": { + "annotations-23.0.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/23.0.0/annotations-23.0.0.jar" + ], + "hash": "sha256-ew8ZckCCy/y8ZuWr6iubySzwih6hHhkZM+1DgB6zzQU=" + }, + "annotations-23.0.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/23.0.0/annotations-23.0.0.pom" + ], + "hash": "sha256-yUkPZVEyMo3yz7z990P1P8ORbWwdEENxdabKbjpndxw=" + } + }, + "org.jetbrains:annotations:13.0": { + "annotations-13.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + ], + "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" + }, + "annotations-13.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" + ], + "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" + } + }, + "org.jetbrains.intellij.deps:trove4j:1.0.20200330": { + "trove4j-1.0.20200330.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" + ], + "hash": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=" + }, + "trove4j-1.0.20200330.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom" + ], + "hash": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" + } + }, + "org.jetbrains.kotlin:kotlin-android-extensions:1.9.22": { + "kotlin-android-extensions-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.9.22/kotlin-android-extensions-1.9.22.jar" + ], + "hash": "sha256-Hl6IFkKpnduPbRPmmVoIwZK8OEGHOWZj2ER8CB2H4k8=" + }, + "kotlin-android-extensions-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.9.22/kotlin-android-extensions-1.9.22.pom" + ], + "hash": "sha256-lEt8+zPgpvtoRVkEjwKMuWMmyTKiRdXLAhQ7zSwDEVk=" + } + }, + "org.jetbrains.kotlin:kotlin-build-common:1.9.22": { + "kotlin-build-common-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-common/1.9.22/kotlin-build-common-1.9.22.jar" + ], + "hash": "sha256-U8PcxTA/WQPmJgrqc+zMaTD5o276KhHNO9On5V32OWY=" + }, + "kotlin-build-common-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-common/1.9.22/kotlin-build-common-1.9.22.pom" + ], + "hash": "sha256-KXxfSYoHdIPvic06cQzSt/LlrjgPOjrt+5xBvGI7E0A=" + } + }, + "org.jetbrains.kotlin:kotlin-build-tools-api:1.9.22": { + "kotlin-build-tools-api-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.22/kotlin-build-tools-api-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.22/kotlin-build-tools-api-1.9.22.jar" + ], + "hash": "sha256-3UnLfij08zgvUlDPsFyGT9XwqW0yZbspPHezCtzJP/Y=" + }, + "kotlin-build-tools-api-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.22/kotlin-build-tools-api-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.22/kotlin-build-tools-api-1.9.22.pom" + ], + "hash": "sha256-DFZLu4fcXs32Q005buob886Xar8IgYCN0Wb6SbBGSfs=" + } + }, + "org.jetbrains.kotlin:kotlin-build-tools-impl:1.9.22": { + "kotlin-build-tools-impl-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-impl/1.9.22/kotlin-build-tools-impl-1.9.22.jar" + ], + "hash": "sha256-G0jW3gQqUl9jtVdROuEmbWmTSCJbAT+UDjLGPeJolCg=" + }, + "kotlin-build-tools-impl-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-impl/1.9.22/kotlin-build-tools-impl-1.9.22.pom" + ], + "hash": "sha256-tWM/E0m+lcdHRuHimiqm51LoneGrmmUjSS85j6aVWN0=" + } + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.22": { + "kotlin-compiler-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.22/kotlin-compiler-embeddable-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.22/kotlin-compiler-embeddable-1.9.22.jar" + ], + "hash": "sha256-K/6t7lmrGYjDNtvW5l2ZH3Zq4d2Gg/Km3tX6oCefDKA=" + }, + "kotlin-compiler-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.22/kotlin-compiler-embeddable-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.22/kotlin-compiler-embeddable-1.9.22.pom" + ], + "hash": "sha256-s9o0u29ClqzzoPRDRm8FBsbJnaXNliTW4LdFsiKHhOs=" + } + }, + "org.jetbrains.kotlin:kotlin-compiler-runner:1.9.22": { + "kotlin-compiler-runner-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.22/kotlin-compiler-runner-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.22/kotlin-compiler-runner-1.9.22.jar" + ], + "hash": "sha256-c+x1u5nr/6iySiSjuFPz9mCWvEapNRrw2sk967acFes=" + }, + "kotlin-compiler-runner-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.22/kotlin-compiler-runner-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.22/kotlin-compiler-runner-1.9.22.pom" + ], + "hash": "sha256-pO6KZ8HW8lODjAAnKAvLgFCsDc3MrZdIlhOKaaAX6wE=" + } + }, + "org.jetbrains.kotlin:kotlin-daemon-client:1.9.22": { + "kotlin-daemon-client-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.22/kotlin-daemon-client-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.22/kotlin-daemon-client-1.9.22.jar" + ], + "hash": "sha256-XXPhgVsRZ+Sv4gjwCyp1wIC8WoEHhsqtuOFHh1k6k7k=" + }, + "kotlin-daemon-client-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.22/kotlin-daemon-client-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.22/kotlin-daemon-client-1.9.22.pom" + ], + "hash": "sha256-YsRKZZ2lXbb7El4pKbmNUEow4fSvgU4I5JIUJqpST4o=" + } + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.22": { + "kotlin-daemon-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.22/kotlin-daemon-embeddable-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.22/kotlin-daemon-embeddable-1.9.22.jar" + ], + "hash": "sha256-kqV4ExcUR9U0Rh+hP+N9yM07f4bYPpsfe7GwvjBUH4s=" + }, + "kotlin-daemon-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.22/kotlin-daemon-embeddable-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.22/kotlin-daemon-embeddable-1.9.22.pom" + ], + "hash": "sha256-9uo9z2v7Og0GmER8SKa88I2Oqs+D/JX+nUGBpeXjwrE=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22": { + "kotlin-gradle-plugin-1.9.22-gradle82.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.22/kotlin-gradle-plugin-1.9.22-gradle82.jar" + ], + "hash": "sha256-1OcY3V8wxrqTLZPM/FswFendPkQUOgUrh3Ao8frlQtw=" + }, + "kotlin-gradle-plugin-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.22/kotlin-gradle-plugin-1.9.22.module" + ], + "hash": "sha256-pPRqwMq9jVzbaJ0tN9GdWFhPcIv59k/+TpgKL/dTS7U=" + }, + "kotlin-gradle-plugin-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.22/kotlin-gradle-plugin-1.9.22.pom" + ], + "hash": "sha256-A3750tSupA9JKdglE1g+STwOBRVuDaix1/Ujurhobyc=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-annotations:1.9.22": { + "kotlin-gradle-plugin-annotations-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.22/kotlin-gradle-plugin-annotations-1.9.22.jar" + ], + "hash": "sha256-lnaDy5jZkQFFYH+/W0VilbQ/Cq+Tsbunv2mS5zHLJOw=" + }, + "kotlin-gradle-plugin-annotations-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.22/kotlin-gradle-plugin-annotations-1.9.22.pom" + ], + "hash": "sha256-Y7por+B4/3D3CPnpecaTxFv+iQQfeWQbC4H2tKEm7rs=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.9.22": { + "kotlin-gradle-plugin-api-1.9.22-gradle82.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22-gradle82.jar" + ], + "hash": "sha256-7P9nVGBlxg4JX7k7P4i5uS7R7cN+P+u8b57TVCL6QSs=" + }, + "kotlin-gradle-plugin-api-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22.jar" + ], + "hash": "sha256-7P9nVGBlxg4JX7k7P4i5uS7R7cN+P+u8b57TVCL6QSs=" + }, + "kotlin-gradle-plugin-api-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22.module" + ], + "hash": "sha256-H0SJxTBPmlEqVof/zAqvCTCvydcgUdOpBfrAcANi+3s=" + }, + "kotlin-gradle-plugin-api-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22.pom" + ], + "hash": "sha256-ZAFewaGutVCqGCjCQuIoODDFD2g2TkCDH+FYj9wEEfU=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.9.22": { + "kotlin-gradle-plugin-idea-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.22/kotlin-gradle-plugin-idea-1.9.22.jar" + ], + "hash": "sha256-jRr4djLZUUjxIqn6CuKQPBnub6t9AeAX924NLJoCLCA=" + }, + "kotlin-gradle-plugin-idea-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.22/kotlin-gradle-plugin-idea-1.9.22.module" + ], + "hash": "sha256-z+LCbjMPaAMsAD+lJMAx5aYPzo2Jn/8uQjFBKL60QCs=" + }, + "kotlin-gradle-plugin-idea-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.22/kotlin-gradle-plugin-idea-1.9.22.pom" + ], + "hash": "sha256-3BSjKHVDun5QRs1OCVAtJ4hMqYfshwb1+xid54luOsw=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.9.22": { + "kotlin-gradle-plugin-idea-proto-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.22/kotlin-gradle-plugin-idea-proto-1.9.22.jar" + ], + "hash": "sha256-9dgu5hlmotmK364Z8k1hcwIsFUBIls3yNjQANe5owPU=" + }, + "kotlin-gradle-plugin-idea-proto-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.22/kotlin-gradle-plugin-idea-proto-1.9.22.pom" + ], + "hash": "sha256-huMsqCkn2ogKHPNDpA7MIJgHXm/XInOzTVDfpUTzRjs=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.9.22": { + "kotlin-gradle-plugin-model-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.22/kotlin-gradle-plugin-model-1.9.22.jar" + ], + "hash": "sha256-UQj61b4UmCXs46ABA8PCHPGv6VS7ZLhweJVyk511OMs=" + }, + "kotlin-gradle-plugin-model-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.22/kotlin-gradle-plugin-model-1.9.22.module" + ], + "hash": "sha256-L/MBPfK6epteiwBOhIF1DI0PqVOtAHoZbYXSY2cdvq4=" + }, + "kotlin-gradle-plugin-model-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.22/kotlin-gradle-plugin-model-1.9.22.pom" + ], + "hash": "sha256-gfUmlHml2X7oeSpITIMr495DgggSZxlhUAHKyI5C9qg=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugins-bom:1.9.22": { + "kotlin-gradle-plugins-bom-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.22/kotlin-gradle-plugins-bom-1.9.22.module" + ], + "hash": "sha256-Qj401h0iCxoN3BgUCGqM6rTa2ed5ArDOjLRyG789xu0=" + }, + "kotlin-gradle-plugins-bom-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.22/kotlin-gradle-plugins-bom-1.9.22.pom" + ], + "hash": "sha256-da2/XHjOJHwiuvNijQs/8c9+19N9YB66cwTXerdb3Z8=" + } + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.9.22": { + "kotlin-klib-commonizer-api-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.22/kotlin-klib-commonizer-api-1.9.22.jar" + ], + "hash": "sha256-jC9lQpwYLi5KLgnLkQ5iuW227tKFWUuPga+CO35ZROI=" + }, + "kotlin-klib-commonizer-api-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.22/kotlin-klib-commonizer-api-1.9.22.pom" + ], + "hash": "sha256-EMrJcNMAo0icM/CzBBVv8DLZWVm+WqrDuIAoKtWGIv4=" + } + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.9.22": { + "kotlin-klib-commonizer-embeddable-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.9.22/kotlin-klib-commonizer-embeddable-1.9.22.jar" + ], + "hash": "sha256-c/50PnTSEoPTg9C6voX9CMRCr8GnvYgIL42gUQ0FPUs=" + }, + "kotlin-klib-commonizer-embeddable-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.9.22/kotlin-klib-commonizer-embeddable-1.9.22.pom" + ], + "hash": "sha256-dxghItppe2YqSRPX3Z/mu68ATOhH/YZ9oj6v8MTIJEs=" + } + }, + "org.jetbrains.kotlin:kotlin-native-utils:1.9.22": { + "kotlin-native-utils-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.9.22/kotlin-native-utils-1.9.22.jar" + ], + "hash": "sha256-eGwSfdVTXbLDmuWXzQsMrZ6RS4PiNvHbAlEjXMnGUqw=" + }, + "kotlin-native-utils-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.9.22/kotlin-native-utils-1.9.22.pom" + ], + "hash": "sha256-EcUUwF7qOuno4Wq0l5bxEd9DxzSCMeNfr0xCjMT3Q+o=" + } + }, + "org.jetbrains.kotlin:kotlin-project-model:1.9.22": { + "kotlin-project-model-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.9.22/kotlin-project-model-1.9.22.jar" + ], + "hash": "sha256-zBHVwLGQnFsKCP0l7w51T/0r9Wyu9mX7eFEiI15UKhg=" + }, + "kotlin-project-model-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.9.22/kotlin-project-model-1.9.22.pom" + ], + "hash": "sha256-659KFngb/ADM7IAw++XuIo5vKydxxQwmezIY/rAGW0A=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.9.23": { + "kotlin-reflect-1.9.23.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.23/kotlin-reflect-1.9.23.jar" + ], + "hash": "sha256-dHwpJ6Yjtuu3NLRl1qJoYukg3dGCjvQ3Foh8CEmjEx8=" + }, + "kotlin-reflect-1.9.23.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.23/kotlin-reflect-1.9.23.pom" + ], + "hash": "sha256-WXD72CdKWAyk6I/nhkeMR8i5ufo3TFsK3ekyhFYiX2o=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.9.22": { + "kotlin-reflect-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.22/kotlin-reflect-1.9.22.jar" + ], + "hash": "sha256-d/MRyhOEgR1Rn9o4n8sSaL2qBY1gUEbg7edsA7DfPpc=" + }, + "kotlin-reflect-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.22/kotlin-reflect-1.9.22.pom" + ], + "hash": "sha256-xxLjWN97kxi2j1RjlxsIhnODf8DKQoXRw4LIEC7da18=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.8.22": { + "kotlin-reflect-1.8.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.8.22/kotlin-reflect-1.8.22.jar" + ], + "hash": "sha256-ZVgl+mURIg/tDK5arU3+oqv5j9EPCud+uNr2q/zQ8Cc=" + }, + "kotlin-reflect-1.8.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.8.22/kotlin-reflect-1.8.22.pom" + ], + "hash": "sha256-KeHqCKPTq0gtH9/UH76TRZEt9Gbbr6+0sS0YN8cr4yg=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.6.10": { + "kotlin-reflect-1.6.10.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.jar" + ], + "hash": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=" + }, + "kotlin-reflect-1.6.10.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.pom" + ], + "hash": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak=" + } + }, + "org.jetbrains.kotlin:kotlin-script-runtime:1.9.22": { + "kotlin-script-runtime-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.22/kotlin-script-runtime-1.9.22.jar" + ], + "hash": "sha256-uAZwV59/ktRz2NWDTwsST3dVxFmP6UskQYOwKDSDRXQ=" + }, + "kotlin-script-runtime-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.22/kotlin-script-runtime-1.9.22.pom" + ], + "hash": "sha256-/ra0ns9pEG1MEoXnH5ob2noSfO9oMC4+n9yCmKTjR5U=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-common:1.9.22": { + "kotlin-scripting-common-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.22/kotlin-scripting-common-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.22/kotlin-scripting-common-1.9.22.jar" + ], + "hash": "sha256-+lAMvwNJQ++BJvPT3GWvCf+Z3//kTFCZtPwu1b8vXcc=" + }, + "kotlin-scripting-common-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.22/kotlin-scripting-common-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.22/kotlin-scripting-common-1.9.22.pom" + ], + "hash": "sha256-ROURI7DCfm/ZM/wma00Nrw8GhKYq7Z/mhC6Noz8qKz8=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.9.22": { + "kotlin-scripting-compiler-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.22/kotlin-scripting-compiler-embeddable-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.22/kotlin-scripting-compiler-embeddable-1.9.22.jar" + ], + "hash": "sha256-Ij/shIMCNEmc1MeiPqHJLroSfEGzXZux1LYdJBVa6zU=" + }, + "kotlin-scripting-compiler-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.22/kotlin-scripting-compiler-embeddable-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.22/kotlin-scripting-compiler-embeddable-1.9.22.pom" + ], + "hash": "sha256-wWCPP7yyqfdSPq0zWZwurc5MgSFhqeBmufSwBa97Qxw=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.9.22": { + "kotlin-scripting-compiler-impl-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.22/kotlin-scripting-compiler-impl-embeddable-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.22/kotlin-scripting-compiler-impl-embeddable-1.9.22.jar" + ], + "hash": "sha256-OJkYFqKH/3YkHxp35/ERZIHU6To9tjJZplfd4g5tD2U=" + }, + "kotlin-scripting-compiler-impl-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.22/kotlin-scripting-compiler-impl-embeddable-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.22/kotlin-scripting-compiler-impl-embeddable-1.9.22.pom" + ], + "hash": "sha256-gmccM6lXsuKoINZqaSwvzmPjvwR/HLJeb7A5HF3c8uc=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.22": { + "kotlin-scripting-jvm-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.22/kotlin-scripting-jvm-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.22/kotlin-scripting-jvm-1.9.22.jar" + ], + "hash": "sha256-jRJ9dvz6BRfDbB6g4ijs4D1aRoJkKgH2R5prvccxKik=" + }, + "kotlin-scripting-jvm-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.22/kotlin-scripting-jvm-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.22/kotlin-scripting-jvm-1.9.22.pom" + ], + "hash": "sha256-cBJS6huo/4f8M0dqYePVxtnS3aQbqpiZTdaYDuE/vG0=" + } + }, + "org.jetbrains.kotlin:kotlin-serialization:1.9.22": { + "kotlin-serialization-1.9.22-gradle82.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-serialization/1.9.22/kotlin-serialization-1.9.22-gradle82.jar" + ], + "hash": "sha256-AcrgEEPdT3sLAttWbZPHVoiwlsNAkJ9o0OSVcqvF6VQ=" + }, + "kotlin-serialization-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-serialization/1.9.22/kotlin-serialization-1.9.22.module" + ], + "hash": "sha256-s3cuUZFg/is2t9G6MkGQYU27lLFZzmBk9M1z+RhhWiI=" + }, + "kotlin-serialization-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-serialization/1.9.22/kotlin-serialization-1.9.22.pom" + ], + "hash": "sha256-D9yUsPEx2Ct3RpAEB0r0f/yntGfVeIn762oVSWg+rL0=" + } + }, + "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin-embeddable:1.9.22": { + "kotlin-serialization-compiler-plugin-embeddable-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-serialization-compiler-plugin-embeddable/1.9.22/kotlin-serialization-compiler-plugin-embeddable-1.9.22.jar" + ], + "hash": "sha256-OFR9AAsWYbFLkkZxz7F6tSAL64NOOj2kJ37gkGLppQA=" + }, + "kotlin-serialization-compiler-plugin-embeddable-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-serialization-compiler-plugin-embeddable/1.9.22/kotlin-serialization-compiler-plugin-embeddable-1.9.22.pom" + ], + "hash": "sha256-i8LheiTLbQ4CMzLkjKq5e3P+MyuSdVWhGjAsb1xcPGQ=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib:1.9.23": { + "kotlin-stdlib-1.9.23-all.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.23/kotlin-stdlib-1.9.23-all.jar" + ], + "hash": "sha256-zsOLwzAucqiq+c3kNrWpBx7gMx4q0F6E2LuJczTX6dQ=" + }, + "kotlin-stdlib-1.9.23.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.23/kotlin-stdlib-1.9.23.jar" + ], + "hash": "sha256-iRDMI4gH2G71UMsfCxDdXtQLNaTsGlJSX3YK7ehOrTc=" + }, + "kotlin-stdlib-1.9.23.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.23/kotlin-stdlib-1.9.23.module" + ], + "hash": "sha256-UZUZOzfc2touHAqw1RLEIrKtdq81V4Q6G5w0gPTnHQ4=" + }, + "kotlin-stdlib-1.9.23.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.23/kotlin-stdlib-1.9.23.pom" + ], + "hash": "sha256-wm0n8mcQrUDiPu2f/gpkuFkejBPSI8ypDFk+5j87KKs=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib:1.9.22": { + "kotlin-stdlib-1.9.22-all.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22-all.jar" + ], + "hash": "sha256-zsOLwzAucqiq+c3kNrWpBx7gMx4q0F6E2LuJczTX6dQ=" + }, + "kotlin-stdlib-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22.jar" + ], + "hash": "sha256-ar4UbCeGQTi4dMzM/l9TTj65I8maG3tdRUlO5WlPPgo=" + }, + "kotlin-stdlib-1.9.22.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22.module" + ], + "hash": "sha256-9IIxS1B5wUVfb7DUJXp0XRAcYSTOlhUiuob53JCQHkc=" + }, + "kotlin-stdlib-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22.pom" + ], + "hash": "sha256-zOLxUoXsgHijd0a1cwigVAQt1cwlQgxD9zt4V8JGjwM=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.9.23": { + "kotlin-stdlib-common-1.9.23.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.23/kotlin-stdlib-common-1.9.23.module" + ], + "hash": "sha256-hjnwBfqZd67wjDL8jnonedoi7iYkZNcnMpiq/Ug3Fc0=" + }, + "kotlin-stdlib-common-1.9.23.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.23/kotlin-stdlib-common-1.9.23.pom" + ], + "hash": "sha256-OuBxRYdw47aGCafTGet5emeJ9fBAyqQUQJgJmGhb5PY=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22": { + "kotlin-stdlib-common-1.9.22.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.22/kotlin-stdlib-common-1.9.22.module" + ], + "hash": "sha256-+Tyemr+NUtjo/Y6FGqgC7OxVEyFhxK7ufTzZJL95QkY=" + }, + "kotlin-stdlib-common-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.22/kotlin-stdlib-common-1.9.22.pom" + ], + "hash": "sha256-10k21oh1ZK63EOhCmLVCB/U+m88jpSrSv6IsIIZ3V2c=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.22": { + "kotlin-stdlib-jdk7-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.22/kotlin-stdlib-jdk7-1.9.22.jar" + ], + "hash": "sha256-+R8kz606dWaIo1Ep5fM1SA0OtAjxVooX9wfCifh2m90=" + }, + "kotlin-stdlib-jdk7-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.22/kotlin-stdlib-jdk7-1.9.22.pom" + ], + "hash": "sha256-SHnKgQKDPIraP0bHep/6+uGXDK/AvGIfUSAbatl0zp0=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.21": { + "kotlin-stdlib-jdk7-1.9.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.21/kotlin-stdlib-jdk7-1.9.21.jar" + ], + "hash": "sha256-v+IfQkbIvKNQsYQEBv+803awXto36ypksBHeGMLKeBg=" + }, + "kotlin-stdlib-jdk7-1.9.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.21/kotlin-stdlib-jdk7-1.9.21.pom" + ], + "hash": "sha256-AVFiDhh0XvJ2ECNw/GdHBPcN821kgsxBmh5S263Cg2I=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22": { + "kotlin-stdlib-jdk7-1.8.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.22/kotlin-stdlib-jdk7-1.8.22.jar" + ], + "hash": "sha256-BV9cskKH+hBhAJlae0erkhJrgegy6HX1+izwvVVpPQs=" + }, + "kotlin-stdlib-jdk7-1.8.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.22/kotlin-stdlib-jdk7-1.8.22.pom" + ], + "hash": "sha256-T5WKqZPVmE+PXr7UFGVipfOp9pW2BJyfKHOBN5ytqzM=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.22": { + "kotlin-stdlib-jdk8-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.22/kotlin-stdlib-jdk8-1.9.22.jar" + ], + "hash": "sha256-RwRsPtwy/g2xo2v+PTgilYu1vkQRxbqA866JWj7CcpE=" + }, + "kotlin-stdlib-jdk8-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.22/kotlin-stdlib-jdk8-1.9.22.pom" + ], + "hash": "sha256-yUBIJZxtAAdXi6r+tx74/3ut6wjy1ZQ3/DllHg+396s=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.21": { + "kotlin-stdlib-jdk8-1.9.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.21/kotlin-stdlib-jdk8-1.9.21.jar" + ], + "hash": "sha256-BwLWS6qpDlxW5GdzeCTJvjreHlFWJHPBQ60DWByVUSc=" + }, + "kotlin-stdlib-jdk8-1.9.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.21/kotlin-stdlib-jdk8-1.9.21.pom" + ], + "hash": "sha256-J79Q6ETwZc0emFT8m8K9pRIrh4ZOoDBL1pW7En0AMvQ=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22": { + "kotlin-stdlib-jdk8-1.8.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.22/kotlin-stdlib-jdk8-1.8.22.jar" + ], + "hash": "sha256-QZiw6vCQpPJbb35aWVgfQxS6jJ9s0dE+6dNI5l7Y9wc=" + }, + "kotlin-stdlib-jdk8-1.8.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.22/kotlin-stdlib-jdk8-1.8.22.pom" + ], + "hash": "sha256-ko8hhyF0djE8uBbUgHC8dlSqO5pa6B0/xfjCecyPjZ4=" + } + }, + "org.jetbrains.kotlin:kotlin-tooling-core:1.9.22": { + "kotlin-tooling-core-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.22/kotlin-tooling-core-1.9.22.jar" + ], + "hash": "sha256-iTjrl+NjINqj5vsqYP0qBbIy/0pVcXPFAZ8EW4gy2fQ=" + }, + "kotlin-tooling-core-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.22/kotlin-tooling-core-1.9.22.pom" + ], + "hash": "sha256-FPx/NcY15fzRvqU3q0+kQxLoQyUtUzNRnjaxJeoImyE=" + } + }, + "org.jetbrains.kotlin:kotlin-util-io:1.9.22": { + "kotlin-util-io-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.9.22/kotlin-util-io-1.9.22.jar" + ], + "hash": "sha256-9telhJGjeLCDrRvq1IikheEdFgsx52wYwa1SDx0o9Gs=" + }, + "kotlin-util-io-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.9.22/kotlin-util-io-1.9.22.pom" + ], + "hash": "sha256-ZP1qINbsBAE7ttdWJ/ZYC7c2QdlIkJ1cFmTi53MQbe4=" + } + }, + "org.jetbrains.kotlin:kotlin-util-klib:1.9.22": { + "kotlin-util-klib-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.9.22/kotlin-util-klib-1.9.22.jar" + ], + "hash": "sha256-pnnuL1EPOrkmkYGN5etbCQLobYjJdnTn20TcTyJSxfk=" + }, + "kotlin-util-klib-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.9.22/kotlin-util-klib-1.9.22.pom" + ], + "hash": "sha256-Dep9//Cit0CIrJlwQ8vCQINdK/9Zs5/MiwysbqPrNpc=" + } + }, + "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.9.22": { + "org.jetbrains.kotlin.jvm.gradle.plugin-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.9.22/org.jetbrains.kotlin.jvm.gradle.plugin-1.9.22.pom" + ], + "hash": "sha256-HLTsuTPJGbL7/XZe/KX+SQeghxLoyZQsM6IIsrFpsYw=" + } + }, + "org.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin:1.9.22": { + "org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/plugin/serialization/org.jetbrains.kotlin.plugin.serialization.gradle.plugin/1.9.22/org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.9.22.pom" + ], + "hash": "sha256-+9WDi7OolDJys/EfhJrIlDeJL9MJstA012QjjEVPoyI=" + } + }, + "org.jetbrains.kotlinx:atomicfu:0.23.1": { + "atomicfu-0.23.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.23.1/atomicfu-0.23.1.jar" + ], + "hash": "sha256-fbhmDr5LkbtHjts2FsTjpQulnAfcpRfR4ShMA/6GrFc=" + }, + "atomicfu-0.23.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.23.1/atomicfu-0.23.1.module" + ], + "hash": "sha256-Pokf5ja1UQgZIQD884saObzRwlM+I8Ri/AdkTur8sg8=" + }, + "atomicfu-0.23.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.23.1/atomicfu-0.23.1.pom" + ], + "hash": "sha256-aIt5ABn0F87APmldZWexc7o7skGJVBZi8U/2ZEG1Pas=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1": { + "kotlinx-coroutines-bom-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.8.1/kotlinx-coroutines-bom-1.8.1.pom" + ], + "hash": "sha256-Vj5Kop+o/gmm4XRtCltRMI98fe3EaNxaDKgQpIWHcDA=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.0": { + "kotlinx-coroutines-bom-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.8.0/kotlinx-coroutines-bom-1.8.0.pom" + ], + "hash": "sha256-Ejnp2+E5fNWXE0KVayURvDrOe2QYQuQ3KgiNz6i5rVU=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.1": { + "kotlinx-coroutines-bom-1.7.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.7.1/kotlinx-coroutines-bom-1.7.1.pom" + ], + "hash": "sha256-uSWqmIxApceqDHeyE3P+sYw5QUkmvVHHbvRENPW66cI=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1": { + "kotlinx-coroutines-core-1.8.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.1/kotlinx-coroutines-core-1.8.1.jar" + ], + "hash": "sha256-2vUPHJQEsiSh1t1Shvjo7n1j/oB/eOqY9xeVwYO2Al8=" + }, + "kotlinx-coroutines-core-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.1/kotlinx-coroutines-core-1.8.1.module" + ], + "hash": "sha256-CMuvMyW1Tg+O+NqF5OtZb32Ub4Q+XRYAOFRj8yaKTvA=" + }, + "kotlinx-coroutines-core-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.1/kotlinx-coroutines-core-1.8.1.pom" + ], + "hash": "sha256-+IkY2/qHh8TRcasCVToUrR3viqmwxcLCDMmUVdMkHiI=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0": { + "kotlinx-coroutines-core-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.0/kotlinx-coroutines-core-1.8.0.jar" + ], + "hash": "sha256-IKpDS2qTDqZtLmGwDe764J/qPTL5ZA0uDCcTEogOCt0=" + }, + "kotlinx-coroutines-core-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.0/kotlinx-coroutines-core-1.8.0.module" + ], + "hash": "sha256-FE7s1TZd4+MNe0YibAWAUeOZVbXBieMfpMfP+5nWILo=" + }, + "kotlinx-coroutines-core-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.0/kotlinx-coroutines-core-1.8.0.pom" + ], + "hash": "sha256-yglaS/iLR0+trOgzLBCXC3nLgBu/XfBHo5Ov4Ql28yE=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1": { + "kotlinx-coroutines-core-jvm-1.8.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.1/kotlinx-coroutines-core-jvm-1.8.1.jar" + ], + "hash": "sha256-89T13hw5G7zCDzs0Ncy6wBNSHna2kC19WWNewVwfeX4=" + }, + "kotlinx-coroutines-core-jvm-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.1/kotlinx-coroutines-core-jvm-1.8.1.module" + ], + "hash": "sha256-CbgcnRHC3uvxM62HtweSfB8ECZy2Ee8AjHcls+swgyk=" + }, + "kotlinx-coroutines-core-jvm-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.1/kotlinx-coroutines-core-jvm-1.8.1.pom" + ], + "hash": "sha256-R8alCxQVHo+vfzUKlSNcN9EqvDi/sFW2aJdCkxctryw=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0": { + "kotlinx-coroutines-core-jvm-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.0/kotlinx-coroutines-core-jvm-1.8.0.jar" + ], + "hash": "sha256-mGCQahk3SQv187BtLw4Q70UeZblbJp8i2vaKPR9QZcU=" + }, + "kotlinx-coroutines-core-jvm-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.0/kotlinx-coroutines-core-jvm-1.8.0.module" + ], + "hash": "sha256-/2oi2kAECTh1HbCuIRd+dlF9vxJqdnlvVCZye/dsEig=" + }, + "kotlinx-coroutines-core-jvm-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.0/kotlinx-coroutines-core-jvm-1.8.0.pom" + ], + "hash": "sha256-pWM6vVNGfOuRYi2B8umCCAh3FF4LduG3V4hxVDSIXQs=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0": { + "kotlinx-coroutines-core-jvm-1.5.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar" + ], + "hash": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module" + ], + "hash": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom" + ], + "hash": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-debug:1.8.1": { + "kotlinx-coroutines-debug-1.8.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.1/kotlinx-coroutines-debug-1.8.1.jar" + ], + "hash": "sha256-JFUwMZoX18m8ShFSb0LpV1Dkqz/IZMlA2evo9UjqGHA=" + }, + "kotlinx-coroutines-debug-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.1/kotlinx-coroutines-debug-1.8.1.module" + ], + "hash": "sha256-CA+LzOocTvqCk+0p/5z3xKfR0s3ekBzIZKz3Ly6AdXI=" + }, + "kotlinx-coroutines-debug-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.1/kotlinx-coroutines-debug-1.8.1.pom" + ], + "hash": "sha256-x9+Ci/O0+ofumYH7ATaN1NwHmV0XzLqPpmEhcTwF69Q=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-debug:1.8.0": { + "kotlinx-coroutines-debug-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.0/kotlinx-coroutines-debug-1.8.0.jar" + ], + "hash": "sha256-Zy1UU0UXCoyrgoeygZRL55DWdUWXK+vdVKor9MhsxT8=" + }, + "kotlinx-coroutines-debug-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.0/kotlinx-coroutines-debug-1.8.0.module" + ], + "hash": "sha256-piquUrrd+ncw5Wey6kHzYOoQqbN8FiJDqNIaWnySHGI=" + }, + "kotlinx-coroutines-debug-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.0/kotlinx-coroutines-debug-1.8.0.pom" + ], + "hash": "sha256-EZPR60nUsUgNqlrGIBctfcmZFidM2Ra+NpQVLA5vb3w=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.1": { + "kotlinx-coroutines-jdk8-1.8.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.1/kotlinx-coroutines-jdk8-1.8.1.jar" + ], + "hash": "sha256-2M+0w2PJHHczU7EVvUprWgRgjnkW/iNdOp2H78uZbAE=" + }, + "kotlinx-coroutines-jdk8-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.1/kotlinx-coroutines-jdk8-1.8.1.module" + ], + "hash": "sha256-Ifl7EL6TJkGBfTULclRP+LoyQYf/uREMbo2IESdv2TM=" + }, + "kotlinx-coroutines-jdk8-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.1/kotlinx-coroutines-jdk8-1.8.1.pom" + ], + "hash": "sha256-3uCuamO2M1ETIAqW2eHHgJ32DQ1CS7/xy7tTsxQWWvk=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.0": { + "kotlinx-coroutines-jdk8-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.0/kotlinx-coroutines-jdk8-1.8.0.jar" + ], + "hash": "sha256-2EGf2zy6quxAfmKrFL5WQ20edrW/MyRMV2VWH8E/0Gs=" + }, + "kotlinx-coroutines-jdk8-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.0/kotlinx-coroutines-jdk8-1.8.0.module" + ], + "hash": "sha256-HKyxz+5adTBFR1rzCF+4DcnMzjA3VKnVIApB3/W+AOk=" + }, + "kotlinx-coroutines-jdk8-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.0/kotlinx-coroutines-jdk8-1.8.0.pom" + ], + "hash": "sha256-4ZIahLHW5/k6SUgCfRhUHXWjDi6KZNem5DEAMZVR8r0=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1": { + "kotlinx-coroutines-jdk8-1.7.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.7.1/kotlinx-coroutines-jdk8-1.7.1.module" + ], + "hash": "sha256-sJV+aTzxwefUrWJGqm4weV2/S/t1jB5LMv25wkQJuXM=" + }, + "kotlinx-coroutines-jdk8-1.7.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.7.1/kotlinx-coroutines-jdk8-1.7.1.pom" + ], + "hash": "sha256-x3kWU2lOpaVLnN1HCAgtv7i9apeKX0IYSxFBz7SjDnU=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.1": { + "kotlinx-coroutines-test-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test/1.8.1/kotlinx-coroutines-test-1.8.1.module" + ], + "hash": "sha256-oc7i2rKWwTt47BwGDhj+QDNKRAyKB36QzKbeclJ9jN4=" + }, + "kotlinx-coroutines-test-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test/1.8.1/kotlinx-coroutines-test-1.8.1.pom" + ], + "hash": "sha256-TyiEIOjObP+RUgyfq9bK9o0C2GtkCp8hKPh6TkZtwlg=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.0": { + "kotlinx-coroutines-test-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test/1.8.0/kotlinx-coroutines-test-1.8.0.module" + ], + "hash": "sha256-DsPHX/2ZpqLfto8wfy8vcxQckz5Yt3sQTxyMrDr9U5Q=" + }, + "kotlinx-coroutines-test-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test/1.8.0/kotlinx-coroutines-test-1.8.0.pom" + ], + "hash": "sha256-NV8/pvBjDl6ZuHxywcQ4YgKin0lpFeOHWaOK3gsGkAQ=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.8.1": { + "kotlinx-coroutines-test-jvm-1.8.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.1/kotlinx-coroutines-test-jvm-1.8.1.jar" + ], + "hash": "sha256-xO8d6zG+P4HtguzyNyIMyViGhop+xSekGFmd//FZ3ts=" + }, + "kotlinx-coroutines-test-jvm-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.1/kotlinx-coroutines-test-jvm-1.8.1.module" + ], + "hash": "sha256-+wj8JXyQBDPS35l71sKeBJzZ979UHAt3YYDgmYJB9XY=" + }, + "kotlinx-coroutines-test-jvm-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.1/kotlinx-coroutines-test-jvm-1.8.1.pom" + ], + "hash": "sha256-4qht+xaCAWeYuVoPAGy0tdAQRsVaAS6hs2vSAjLcVXQ=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.8.0": { + "kotlinx-coroutines-test-jvm-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.0/kotlinx-coroutines-test-jvm-1.8.0.jar" + ], + "hash": "sha256-FTXMH0MjXYVm+NW8bRwR8HBBF+TlY/Ls5+aqPmhpXyA=" + }, + "kotlinx-coroutines-test-jvm-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.0/kotlinx-coroutines-test-jvm-1.8.0.module" + ], + "hash": "sha256-HS0Zc6L0GowMEmPmCyXneS9ji4xV18ocbQZztkvlfac=" + }, + "kotlinx-coroutines-test-jvm-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.0/kotlinx-coroutines-test-jvm-1.8.0.pom" + ], + "hash": "sha256-BtHlPqNm5to7FxkwV1+RYnzxnkUqTnqfDeMNLwQdZFE=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.3": { + "kotlinx-serialization-bom-1.6.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-bom/1.6.3/kotlinx-serialization-bom-1.6.3.pom" + ], + "hash": "sha256-KdaYQrt9RJviqkreakp85qpVgn0KsT0Wh0X+bZVzkzI=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.2": { + "kotlinx-serialization-bom-1.6.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-bom/1.6.2/kotlinx-serialization-bom-1.6.2.pom" + ], + "hash": "sha256-ew4dde6GIUmc+VQwyhL9qjL0p/kg1cMBv+lfoYfyczc=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3": { + "kotlinx-serialization-core-1.6.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.3/kotlinx-serialization-core-1.6.3.jar" + ], + "hash": "sha256-L6Ba/w8zpw2oc8CaD/ZrXVTM3BXjnnykuCYz5wx5LzQ=" + }, + "kotlinx-serialization-core-1.6.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.3/kotlinx-serialization-core-1.6.3.module" + ], + "hash": "sha256-Nh6eMetylhdLdAhaxJ7dhKTzkAupQxpOQM0cI952oyg=" + }, + "kotlinx-serialization-core-1.6.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.3/kotlinx-serialization-core-1.6.3.pom" + ], + "hash": "sha256-0tv2/BU2TIlp1qq24+zMdROZU/LMBXtzDjUmdGWztX4=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.2": { + "kotlinx-serialization-core-1.6.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.2/kotlinx-serialization-core-1.6.2.module" + ], + "hash": "sha256-arz0gTrJTfA3AS4xZzaKNEUHD9+OqyHQjYhtTtnC+2c=" + }, + "kotlinx-serialization-core-1.6.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.2/kotlinx-serialization-core-1.6.2.pom" + ], + "hash": "sha256-BibddZLIUwKToOPoHgiBltNRh3o422hHaTY3S6ZJ+S8=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.6.3": { + "kotlinx-serialization-core-jvm-1.6.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core-jvm/1.6.3/kotlinx-serialization-core-jvm-1.6.3.jar" + ], + "hash": "sha256-KcghqNTiXL/k8s6WzdRSb2H49OaaE1+WEqNKgdk7ZfE=" + }, + "kotlinx-serialization-core-jvm-1.6.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core-jvm/1.6.3/kotlinx-serialization-core-jvm-1.6.3.module" + ], + "hash": "sha256-MpEE29NOS96QVhHUJ8dYTlPD+MQRg2+59pmsnbpbqmw=" + }, + "kotlinx-serialization-core-jvm-1.6.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core-jvm/1.6.3/kotlinx-serialization-core-jvm-1.6.3.pom" + ], + "hash": "sha256-K0qolJn8AbMNHBB1lmmOCvQ0BBLVQBnFAdm6ayk7oro=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3": { + "kotlinx-serialization-json-1.6.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json/1.6.3/kotlinx-serialization-json-1.6.3.jar" + ], + "hash": "sha256-jAAWiQp5q1mA3VIKWrGmc4AjwpqjtkN8SC4OX9wG2rE=" + }, + "kotlinx-serialization-json-1.6.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json/1.6.3/kotlinx-serialization-json-1.6.3.module" + ], + "hash": "sha256-gNHYf6CmO/+Dleo5EL2oDQnw9YNQTd6o7QB7x6hrTNQ=" + }, + "kotlinx-serialization-json-1.6.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json/1.6.3/kotlinx-serialization-json-1.6.3.pom" + ], + "hash": "sha256-KcIhdhjlMdfYMsyICupu0aj0B3PkN/WkHXC9FUaNPOM=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.3": { + "kotlinx-serialization-json-jvm-1.6.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json-jvm/1.6.3/kotlinx-serialization-json-jvm-1.6.3.jar" + ], + "hash": "sha256-0yNBebz/GIbVPWfBHspH9/PPe2PDSdFpZfbbUbfz3Zo=" + }, + "kotlinx-serialization-json-jvm-1.6.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json-jvm/1.6.3/kotlinx-serialization-json-jvm-1.6.3.module" + ], + "hash": "sha256-InoqmtOMAQsQe8gFjNYVF32lqqhts399WNSdnJt/l9A=" + }, + "kotlinx-serialization-json-jvm-1.6.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json-jvm/1.6.3/kotlinx-serialization-json-jvm-1.6.3.pom" + ], + "hash": "sha256-eN9n0GTTuq8a9Ohi6YFGl3YpfGyHi7e/G0Ljky9vr48=" + } + }, + "org.junit:junit-bom:5.9.1": { + "junit-bom-5.9.1.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/junit/junit-bom/5.9.1/junit-bom-5.9.1.module" + ], + "hash": "sha256-kCbBZWaQ+hRa117Og2dCEaoSrYkwqRsQfC9c3s4vGxw=" + }, + "junit-bom-5.9.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/junit/junit-bom/5.9.1/junit-bom-5.9.1.pom" + ], + "hash": "sha256-sWPBz8j8H9WLRXoA1YbATEbphtdZBOnKVMA6l9ZbSWw=" + } + }, + "org.junit:junit-bom:5.8.2": { + "junit-bom-5.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.8.2/junit-bom-5.8.2.module" + ], + "hash": "sha256-QM+tmT+nDs3yr3TQxW2hSE7iIJZL6Pkyz+YyvponM/o=" + }, + "junit-bom-5.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.8.2/junit-bom-5.8.2.pom" + ], + "hash": "sha256-g2Bpyp6O48VuSDdiItopEmPxN70/0W2E/dR+/MPyhuI=" + } + }, + "org.junit:junit-bom:5.7.2": { + "junit-bom-5.7.2.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/junit/junit-bom/5.7.2/junit-bom-5.7.2.module" + ], + "hash": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=" + }, + "junit-bom-5.7.2.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/junit/junit-bom/5.7.2/junit-bom-5.7.2.pom" + ], + "hash": "sha256-zRSqqGmZH4ICHFhdVw0x/zQry6WLtEIztwGTdxuWSHs=" + } + }, + "org.junit.jupiter:junit-jupiter-api:5.8.2": { + "junit-jupiter-api-5.8.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar" + ], + "hash": "sha256-GAjuh+D3GM1uJfO3WvwXlWrIo+3EjH6bq58Z+aeeOAE=" + }, + "junit-jupiter-api-5.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.module" + ], + "hash": "sha256-fpr03/9iZ6zd0VfZ4Rug1dyRszL6dLxMZZOeRReht3A=" + }, + "junit-jupiter-api-5.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.pom" + ], + "hash": "sha256-yb3jYieVswp3NTHoXFgy+NyKp37N0xPu4jXJg8v9Anc=" + } + }, + "org.junit.platform:junit-platform-commons:1.8.2": { + "junit-platform-commons-1.8.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar" + ], + "hash": "sha256-0uAV/KcTDnmvL0YI3FRBXksQtZLXczPey0saJ0wYUFA=" + }, + "junit-platform-commons-1.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.module" + ], + "hash": "sha256-NChH0wRv6kNVlWkttPBdXwOeDh0eIE9NV1WQJVcIJiY=" + }, + "junit-platform-commons-1.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.pom" + ], + "hash": "sha256-zoUuNMahhKpsgO6N8EcXE6dAgTQTTwjjwcPdh8a1mrc=" + } + }, + "org.junit.platform:junit-platform-engine:1.8.2": { + "junit-platform-engine-1.8.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.jar" + ], + "hash": "sha256-C30AD4w+jl99a4GWSZNue5k4MU6HyPmDgFIY6ldWflk=" + }, + "junit-platform-engine-1.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.module" + ], + "hash": "sha256-66d7Nu/fdaZ/RkODM4JfnkSPVQ1SHnJJ2VA1hYDuY2s=" + }, + "junit-platform-engine-1.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.pom" + ], + "hash": "sha256-AWhkMmYGDtko71qBgjAD7PrnmpqMC7/Xb0IBxsnXccU=" + } + }, + "org.junit.platform:junit-platform-launcher:1.8.2": { + "junit-platform-launcher-1.8.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.jar" + ], + "hash": "sha256-giFWQJ/YPmguTFGZs0YAVCmbU4oFjCxtD1ybalvbdZQ=" + }, + "junit-platform-launcher-1.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.module" + ], + "hash": "sha256-4XQA7HvnYIwfiI1yG0MAHpc2wVDUD5jIoLzalWPYyus=" + }, + "junit-platform-launcher-1.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.pom" + ], + "hash": "sha256-tfancaautzyJpud/Vtcp9LqOta/dDxD0TbRNaq25UJU=" + } + }, + "org.junit.platform:junit-platform-suite-api:1.8.2": { + "junit-platform-suite-api-1.8.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-suite-api/1.8.2/junit-platform-suite-api-1.8.2.jar" + ], + "hash": "sha256-lO80OwW4dbsuTvlKfMYuYQ4bnNeCR+Ky7EPtYYoe0Kc=" + }, + "junit-platform-suite-api-1.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-suite-api/1.8.2/junit-platform-suite-api-1.8.2.module" + ], + "hash": "sha256-kwagU4n8QNetnQsSigFEMOXRyldKGErujXhns+iRC3o=" + }, + "junit-platform-suite-api-1.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-suite-api/1.8.2/junit-platform-suite-api-1.8.2.pom" + ], + "hash": "sha256-QB/ZdNa5RmRSS+y3z4B8TUfXxXSy+vGxMeukiUn+mJg=" + } + }, + "org.opentest4j:opentest4j:1.3.0": { + "opentest4j-1.3.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar" + ], + "hash": "sha256-SOLfY2yrZWPO1k3N/4q7I1VifLI27wvzdZhoLd90Lxs=" + }, + "opentest4j-1.3.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.module" + ], + "hash": "sha256-SL8dbItdyU90ZSvReQD2VN63FDUCSM9ej8onuQkMjg0=" + }, + "opentest4j-1.3.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.pom" + ], + "hash": "sha256-m/fP/EEPPoNywlIleN+cpW2dQ72TfjCUhwbCMqlDs1U=" + } + }, + "org.opentest4j:opentest4j:1.2.0": { + "opentest4j-1.2.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar" + ], + "hash": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=" + }, + "opentest4j-1.2.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.pom" + ], + "hash": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" + } + }, + "org.ow2:ow2:1.5.1": { + "ow2-1.5.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/ow2/1.5.1/ow2-1.5.1.pom" + ], + "hash": "sha256-Mh3bt+5v5PU96mtM1tt0FU1r+kI5HB92OzYbn0hazwU=" + } + }, + "org.ow2.asm:asm:9.4": { + "asm-9.4.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm/9.4/asm-9.4.jar" + ], + "hash": "sha256-OdDis9xFr2Wgmwl5RXUKlKEm4FLhJPk0aEQ6HQ4V84E=" + }, + "asm-9.4.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm/9.4/asm-9.4.pom" + ], + "hash": "sha256-SDdR5I+y0fQ8Ya06sA/6Rm7cAzPY/C/bWibpXTKYI5Q=" + } + }, + "org.ow2.asm:asm-commons:9.4": { + "asm-commons-9.4.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/9.4/asm-commons-9.4.jar" + ], + "hash": "sha256-DBKKnsPzPJiVknL20WzxQke1CPWJUVdLzb0rVtYyY2Q=" + }, + "asm-commons-9.4.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/9.4/asm-commons-9.4.pom" + ], + "hash": "sha256-tCyiq8+IEXdqXdwCkPIQbX8xP4LHiw3czVzOTGOjUXk=" + } + }, + "org.ow2.asm:asm-tree:9.4": { + "asm-tree-9.4.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/9.4/asm-tree-9.4.jar" + ], + "hash": "sha256-xC1HnPJFZqIesgr37q7vToa9tKiGMGz3L0g7ZedbKs8=" + }, + "asm-tree-9.4.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/9.4/asm-tree-9.4.pom" + ], + "hash": "sha256-x+nvk73YqzYwMs5TgvzGTQAtbFicF1IzI2zSmOUaPBY=" + } + }, + "org.slf4j:slf4j-api:2.1.0-alpha1": { + "slf4j-api-2.1.0-alpha1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.1.0-alpha1/slf4j-api-2.1.0-alpha1.jar" + ], + "hash": "sha256-mrf/pkYgK0mdBZlaPsgvMbzLelA0XBUU2MtC7IzOo1M=" + }, + "slf4j-api-2.1.0-alpha1.pom": { + "urls": [ + "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-api/2.1.0-alpha1/slf4j-api-2.1.0-alpha1.pom", + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.1.0-alpha1/slf4j-api-2.1.0-alpha1.pom" + ], + "hash": "sha256-QirqW+u6gwWzxhT6Zo7SKePJYQkw7PQvhzOO4F4minU=" + } + }, + "org.slf4j:slf4j-bom:2.1.0-alpha1": { + "slf4j-bom-2.1.0-alpha1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-bom/2.1.0-alpha1/slf4j-bom-2.1.0-alpha1.pom" + ], + "hash": "sha256-qOgTiZePRAcJJBuYPTHvp4cRO+EbgYwsa82e0wlv1IU=" + } + }, + "org.slf4j:slf4j-parent:2.1.0-alpha1": { + "slf4j-parent-2.1.0-alpha1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/2.1.0-alpha1/slf4j-parent-2.1.0-alpha1.pom" + ], + "hash": "sha256-zkc1sfnIId4Lkrjb5AsHHG6jIHMuWTVZxupt+WX4c48=" + } + }, + "org.slf4j:slf4j-simple:2.1.0-alpha1": { + "slf4j-simple-2.1.0-alpha1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/2.1.0-alpha1/slf4j-simple-2.1.0-alpha1.jar" + ], + "hash": "sha256-AU/trHoyKI7W+PcqEAfn+zKuxb/tsnFGfkluCVNIL3U=" + }, + "slf4j-simple-2.1.0-alpha1.pom": { + "urls": [ + "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-simple/2.1.0-alpha1/slf4j-simple-2.1.0-alpha1.pom", + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/2.1.0-alpha1/slf4j-simple-2.1.0-alpha1.pom" + ], + "hash": "sha256-RgReG+EA94JLUITh83eCxoBJcEeKRXPejEmgfQOpSGM=" + } + }, + "org.sonatype.oss:oss-parent:9": { + "oss-parent-9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/9/oss-parent-9.pom" + ], + "hash": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + }, + "org.sonatype.oss:oss-parent:7": { + "oss-parent-7.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom" + ], + "hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + } + }, + "org.springframework:spring-framework-bom:5.3.24": { + "spring-framework-bom-5.3.24.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/springframework/spring-framework-bom/5.3.24/spring-framework-bom-5.3.24.module" + ], + "hash": "sha256-GZbh9hfLA/p26hGFD+Kh4gsOMKEEa6bV2zvbv0QRP84=" + }, + "spring-framework-bom-5.3.24.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/springframework/spring-framework-bom/5.3.24/spring-framework-bom-5.3.24.pom" + ], + "hash": "sha256-U1ITVmu77+Jjag1OjdGnOt5hLiQwyP/TENzCo7O5ukE=" + } + }, + "org.vafer:jdependency:2.8.0": { + "jdependency-2.8.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/vafer/jdependency/2.8.0/jdependency-2.8.0.jar" + ], + "hash": "sha256-v9LMfhv8eKqDtEwKVL8s3jikOC7CRyivaD2Y3GvngZI=" + }, + "jdependency-2.8.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/vafer/jdependency/2.8.0/jdependency-2.8.0.pom" + ], + "hash": "sha256-EBhn8/npJlei74mjELYE1D0JDJuQqj4LBS3NFqO78y0=" } } } \ No newline at end of file diff --git a/gradle-env.nix b/gradle-env.nix index 23e5185..9aa69c6 100644 --- a/gradle-env.nix +++ b/gradle-env.nix @@ -25,6 +25,7 @@ , fetchs3 , fetchurl , gradleGen +, maven , runCommandLocal , symlinkJoin , writeText @@ -32,7 +33,7 @@ }: { -# Path to the environment spec generated by gradle2nix (e.g. gradle-env.json). + # Path to the environment spec generated by gradle2nix (e.g. gradle-env.json). envSpec , pname ? "project" , version ? null @@ -70,12 +71,12 @@ let inherit (builtins) - attrValues concatStringsSep elemAt filter fromJSON getAttr head match + attrValues concatStringsSep elemAt filter fromJSON getAttr hasAttr head length match replaceStrings sort; inherit (lib) - assertMsg concatMapStringsSep groupBy' hasSuffix hasPrefix last mapAttrs - mapAttrsToList optionalString readFile removeSuffix unique versionAtLeast + assertMsg concatMapStringsSep foldl' groupBy' hasSuffix hasPrefix last mapAttrs + mapAttrsToList optionalAttrs optionalString readFile removeSuffix unique versionAtLeast versionOlder; inherit (lib.strings) sanitizeDerivationName; @@ -88,6 +89,31 @@ let module = elemAt coords 2; }; + parseVersion = version: + let + parts = builtins.split ":" version; + base = elemAt parts 0; + in + { + inherit base; + exact = base; + } + // optionalAttrs (length parts >= 2) ( + let + snapshot = elemAt parts 2; + exact = replaceStrings [ "-SNAPSHOT" ] [ "-${snapshot}" ] base; + parts = builtins.split "-" timestamp; + timestamp = findFirst (match "[0-9]{8}\.[0-9]{6}") parts; + buildNumber = let lastPart = last parts; in if match "[0-9]+" lastPart then lastPart else null; + in + { inherit snapshot exact timestamp buildNumber; } + ); + + snapshotVersion = { revision, snapshot ? null, ... }: + if snapshot == null + then revision + else replaceStrings ["SNAPSHOT"] [snapshot] revision; + fetchers' = { http = fetchurl; https = fetchurl; @@ -105,14 +131,63 @@ let in fetch' { urls = urls'; inherit hash; }; - mkDep = id: version: artifacts: + mkModuleMetadata = deps: let - coords = toCoordinates id; - modulePath = "${replaceStrings ["."] ["/"] coords.group}/${coords.module}/${version}"; + metadata = group: module: versions: + let + latest = foldl' + (l: v: if l == null || versionOlder l v then v else l) + null + versions; + + release = foldl' + (l: v: if !(hasSuffix "-SNAPSHOT" v) && (l == null || versionOlder l v) then v else l) + null + versions; + + path = "${replaceStrings ["."] ["/"] group}/${module}/maven-metadata.xml"; + + in + writeTextDir path '' + + + ${group} + ${module} + + ${optionalString (latest != null) "${latest}"} + ${optionalString (release != null) "${release}"} + + ${concatMapStringsSep "\n " (v: "${v}") versions} + + + + ''; + + groupedModules = groupBy + ({ organisation, module, ... }: "${organisation}:${module}") + (mapAttrsToList (_: dep: dep.attrs) deps); + + in + map + + + # mkSnapshotMetadata = { group, module }: version: artifacts: + # let + # versions' = filter (hasAttr "timestamp") versions; + + + # in + # map ({ base, exact, snapshot, timestamp, buildNumber }: + + # ) versions'; + + mkModule = { attrs, artifacts }: + let + modulePath = "${replaceStrings ["."] ["/"] attrs.orgPath}/${attrs.module}/${attrs.revision}"; in stdenv.mkDerivation { - pname = "${coords.group}-${coords.module}"; - version = version; + pname = "${attrs.group}-${attrs.module}"; + version = snapshotVersion attrs.revision; srcs = mapAttrsToList fetch artifacts; @@ -136,55 +211,8 @@ let allowSubstitutes = false; }; - mkModule = id: versions: - mapAttrsToList (version: artifacts: mkDep id version artifacts) versions; - - mkModuleMetadata = id: versions: - let - - modules = groupBy' - (meta: id: - let - isNewer = versionOlder meta.latest id.version; - isNewerRelease = - !(hasSuffix "-SNAPSHOT" id.version) && - versionOlder meta.release id.version; - in { - groupId = id.group; - artifactId = id.name; - latest = if isNewer then id.version else meta.latest; - release = if isNewerRelease then id.version else meta.release; - versions = meta.versions ++ [id.version]; - } - ) - { - latest = ""; - release = ""; - versions = []; - } - (id: "${replaceStrings ["."] ["/"] id.group}/${id.name}/maven-metadata.xml") - ids; - - in - attrValues (mapAttrs (path: meta: - let - versions' = sort versionOlder (unique meta.versions); - in - with meta; writeTextDir path '' - - - ${groupId} - ${artifactId} - - ${optionalString (latest != "") "${latest}"} - ${optionalString (release != "") "${release}"} - - ${concatMapStringsSep "\n " (v: "${v}") versions'} - - - - '' - ) modules); + mkModules = deps: + mapAttrsToList (_: m: mkModule m) deps; # mkSnapshotMetadata = deps: # let @@ -254,9 +282,8 @@ let # ) modules); mkRepo = name: deps: symlinkJoin { - name = "${name}-gradle-env"; - # paths = map mkDep deps ++ mkModuleMetadata deps ++ mkSnapshotMetadata deps; - paths = mapAttrsToList mkModule deps; + name = "${name}-gradle-repo"; + paths = mkModules deps ++ mkModuleMetadata deps ++ mkSnapshotMetadata deps; }; mkInitScript = projectSpec: gradle: @@ -396,31 +423,31 @@ let buildRootProject = buildProject projectEnv gradleFlags; -# in stdenv.mkDerivation (args // { + # in stdenv.mkDerivation (args // { -# inherit pname version; + # inherit pname version; -# nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ projectEnv.gradle ]; + # nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ projectEnv.gradle ]; -# buildPhase = args.buildPhase or '' -# runHook preBuild + # buildPhase = args.buildPhase or '' + # runHook preBuild -# ( -# set -eux + # ( + # set -eux -# # Work around https://github.com/gradle/gradle/issues/1055 -# TMPHOME="$(mktemp -d)" -# mkdir -p "$TMPHOME/init.d" -# export GRADLE_USER_HOME="$TMPHOME" + # # Work around https://github.com/gradle/gradle/issues/1055 + # TMPHOME="$(mktemp -d)" + # mkdir -p "$TMPHOME/init.d" + # export GRADLE_USER_HOME="$TMPHOME" -# ${buildIncludedProjects} -# ${buildRootProject} -# ) + # ${buildIncludedProjects} + # ${buildRootProject} + # ) -# runHook postBuild -# ''; + # runHook postBuild + # ''; -# dontStrip = true; -# }) + # dontStrip = true; + # }) in mkRepo pname (fromJSON (readFile envSpec)) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c95b0a0..35f2d24 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,7 @@ [versions] -gradle = "8.5" -kotlin = "1.9.21" +gradle = "8.7" +kotlin = "1.9.22" +ktor = "2.3.11" [libraries] clikt = "com.github.ajalt:clikt:+" @@ -11,8 +12,11 @@ junit-jupiter-params = "org.junit.jupiter:junit-jupiter-params:+" junit-platformLauncher = "org.junit.platform:junit-platform-launcher:+" kotest-runner = "io.kotest:kotest-runner-junit5:+" kotest-assertions = "io.kotest:kotest-assertions-core:+" +kotlinx-coroutines-core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:+" +ktor-server-core = { module = "io.ktor:ktor-server-core", version.ref = "ktor" } +ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" } okio = "com.squareup.okio:okio:+" -serialization-json = "org.jetbrains.kotlinx:kotlinx-serialization-json:+" +serialization-json = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3" slf4j-api = "org.slf4j:slf4j-api:+" slf4j-simple = "org.slf4j:slf4j-simple:+" xmlutil = "io.github.pdvrieze.xmlutil:serialization-jvm:+" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7f93135c49b765f8051ef9d0a6055ff8e46073d8..e6441136f3d4ba8a0da8d277868979cfbc8ad796 100644 GIT binary patch literal 43453 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 Vo0ScuU6DbNL5P=uVd@+Z4*=P9Hgf;~ literal 63721 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"gpYvgVMVsULOY3=lDL#2r|Jj~bidD9% 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 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/model/build.gradle.kts b/model/build.gradle.kts index 8946155..7317d66 100644 --- a/model/build.gradle.kts +++ b/model/build.gradle.kts @@ -2,11 +2,6 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.kotlin.plugin.serialization") -} - -dependencies { - implementation(libs.serialization.json) } java { diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/DependencyCoordinates.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/DependencyCoordinates.kt index b5bc83f..25f0cc1 100644 --- a/model/src/main/kotlin/org/nixos/gradle2nix/model/DependencyCoordinates.kt +++ b/model/src/main/kotlin/org/nixos/gradle2nix/model/DependencyCoordinates.kt @@ -1,62 +1,33 @@ package org.nixos.gradle2nix.model -import kotlinx.serialization.KSerializer -import kotlinx.serialization.Serializable -import kotlinx.serialization.descriptors.PrimitiveKind -import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder +import java.io.Serializable -@Serializable(DependencyCoordinates.Serializer::class) -data class DependencyCoordinates( - val group: String, - val module: String, - val version: String, - val timestamp: String? = null -) : Comparable { +interface DependencyCoordinates : Serializable { + val group: String + val artifact: String - override fun toString(): String = if (timestamp != null) { - "$group:$module:$version:$timestamp" + /** + * For normal dependencies, the dependency version (e.g. "2.0.2"). + * + * For Maven snapshot dependencies, the snapshot version (e.g. "2.0.2-SNAPSHOT"). + */ + val version: String + + /** + * For Maven snapshot dependencies, the snapshot timestamp (e.g. "20070310.18163-3"). + * + * For normal dependencies, this is null. + */ + val timestamp: String? + + val id: String get() = if (timestamp != null) { + "$group:$artifact:$version:$timestamp" } else { - "$group:$module:$version" + "$group:$artifact:$version" } - val artifactVersion: String get() = - timestamp?.let { version.replace("SNAPSHOT", it) } ?: version + val timestampedCoordinates: DependencyCoordinates - override fun compareTo(other: DependencyCoordinates): Int = comparator.compare(this, other) - - object Serializer : KSerializer { - override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor( - DependencyCoordinates::class.qualifiedName!!, - PrimitiveKind.STRING - ) - - override fun deserialize(decoder: Decoder): DependencyCoordinates { - val encoded = decoder.decodeString() - return parse(encoded) - } - - override fun serialize(encoder: Encoder, value: DependencyCoordinates) { - encoder.encodeString(value.toString()) - } - } - - companion object { - val comparator = compareBy { it.group } - .thenBy { it.module } - .thenByDescending { it.artifactVersion } - - fun parse(id: String): DependencyCoordinates { - val parts = id.split(":") - return when (parts.size) { - 3 -> DependencyCoordinates(parts[0], parts[1], parts[2]) - 4 -> DependencyCoordinates(parts[0], parts[1], parts[2], parts[3]) - else -> throw IllegalStateException( - "couldn't parse dependency coordinates: '$id'" - ) - } - } - } + val timestampedVersion: String get() = + timestamp?.let { version.replace("-SNAPSHOT", "-$it") } ?: version } diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/DependencySet.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/DependencySet.kt new file mode 100644 index 0000000..4688ea5 --- /dev/null +++ b/model/src/main/kotlin/org/nixos/gradle2nix/model/DependencySet.kt @@ -0,0 +1,8 @@ +package org.nixos.gradle2nix.model + +import java.io.Serializable +import org.nixos.gradle2nix.model.impl.DefaultRepository + +interface DependencySet : Serializable { + val dependencies: List +} diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/DependencySource.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/DependencySource.kt deleted file mode 100644 index 5ec991e..0000000 --- a/model/src/main/kotlin/org/nixos/gradle2nix/model/DependencySource.kt +++ /dev/null @@ -1,26 +0,0 @@ -package org.nixos.gradle2nix.model - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -/** - * The source of a dependency declaration, representing where the direct dependency is declared, - * or where the parent dependency is declared for transitive dependencies. - * In most cases, this will be the project component that declares the dependency, - * but may also be a Version Catalog or the build as a whole. - * We attempt to map this to an actual source file location when building a dependency report. - */ -@Serializable -data class DependencySource( - val targetType: ConfigurationTarget, - val targetPath: String, - val buildPath: String, -) - -@Serializable -enum class ConfigurationTarget { - @SerialName("gradle") GRADLE, - @SerialName("settings") SETTINGS, - @SerialName("buildscript") BUILDSCRIPT, - @SerialName("project") PROJECT, -} diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/PluginParameters.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/PluginParameters.kt index 94fea89..51f6157 100644 --- a/model/src/main/kotlin/org/nixos/gradle2nix/model/PluginParameters.kt +++ b/model/src/main/kotlin/org/nixos/gradle2nix/model/PluginParameters.kt @@ -1,7 +1,4 @@ package org.nixos.gradle2nix.model -const val PARAM_INCLUDE_PROJECTS = "NIX_INCLUDE_PROJECTS" -const val PARAM_INCLUDE_CONFIGURATIONS = "NIX_INCLUDE_CONFIGURATIONS" -const val PARAM_REPORT_DIR = "NIX_REPORT_DIR" const val RESOLVE_PROJECT_TASK = "resolveProjectDependencies" const val RESOLVE_ALL_TASK = "resolveAllDependencies" diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/Repository.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/Repository.kt index da622cc..c994e69 100644 --- a/model/src/main/kotlin/org/nixos/gradle2nix/model/Repository.kt +++ b/model/src/main/kotlin/org/nixos/gradle2nix/model/Repository.kt @@ -1,20 +1,16 @@ package org.nixos.gradle2nix.model -import kotlinx.serialization.Serializable +import java.io.Serializable + +interface Repository : Serializable { + val id: String + val type: Type + val metadataSources: List + val metadataResources: List + val artifactResources: List -@Serializable -data class Repository( - val id: String, - val type: Type, - val name: String, - val m2Compatible: Boolean, - val metadataSources: List, - val metadataResources: List, - val artifactResources: List, -) { enum class Type { MAVEN, IVY, - FLAT_DIR } } diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedArtifact.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedArtifact.kt index d023082..d75e381 100644 --- a/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedArtifact.kt +++ b/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedArtifact.kt @@ -1,16 +1,9 @@ package org.nixos.gradle2nix.model -import kotlinx.serialization.Serializable +import java.io.Serializable -@Serializable -data class ResolvedArtifact( - val type: Type?, - val file: String, -) { - enum class Type { - SOURCES, - JAVADOC, - IVY_DESCRIPTOR, - MAVEN_POM, - } +interface ResolvedArtifact : Serializable { + val name: String + val filename: String + val urls: List } diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedConfiguration.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedConfiguration.kt deleted file mode 100644 index 72ec576..0000000 --- a/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedConfiguration.kt +++ /dev/null @@ -1,19 +0,0 @@ -package org.nixos.gradle2nix.model - -import kotlinx.serialization.Serializable - -@Serializable -data class ResolvedConfiguration( - val rootSource: DependencySource, - val configurationName: String, - val repositories: List = emptyList(), - val allDependencies: MutableList = mutableListOf() -) { - fun addDependency(component: ResolvedDependency) { - allDependencies.add(component) - } - - fun hasDependency(componentId: DependencyCoordinates): Boolean { - return allDependencies.any { it.id == componentId } - } -} diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedDependency.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedDependency.kt index f219359..46a2881 100644 --- a/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedDependency.kt +++ b/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedDependency.kt @@ -1,12 +1,8 @@ package org.nixos.gradle2nix.model -import kotlinx.serialization.Serializable +import java.io.Serializable -@Serializable -data class ResolvedDependency( - val id: DependencyCoordinates, - val source: DependencySource, - val direct: Boolean, - val repository: String?, - val dependencies: List = emptyList(), -) +interface ResolvedDependency : Serializable { + val coordinates: DependencyCoordinates + val artifacts: List +} diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedMetadata.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedMetadata.kt deleted file mode 100644 index 52b9c1f..0000000 --- a/model/src/main/kotlin/org/nixos/gradle2nix/model/ResolvedMetadata.kt +++ /dev/null @@ -1,9 +0,0 @@ -package org.nixos.gradle2nix.model - -import kotlinx.serialization.Serializable - -@Serializable -data class ResolvedMetadata( - val moduleId: String, - val uri: String -) diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultDependencyCoordinates.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultDependencyCoordinates.kt new file mode 100644 index 0000000..98bc0c9 --- /dev/null +++ b/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultDependencyCoordinates.kt @@ -0,0 +1,29 @@ +package org.nixos.gradle2nix.model.impl + +import org.nixos.gradle2nix.model.DependencyCoordinates + +data class DefaultDependencyCoordinates( + override val group: String, + override val artifact: String, + override val version: String, + override val timestamp: String? = null +) : DependencyCoordinates { + + override val timestampedCoordinates: DependencyCoordinates + get() = DefaultDependencyCoordinates(group, artifact, timestampedVersion) + + override fun toString(): String = id + + companion object { + fun parse(id: String): DependencyCoordinates { + val parts = id.split(":") + return when (parts.size) { + 3 -> DefaultDependencyCoordinates(parts[0], parts[1], parts[2]) + 4 -> DefaultDependencyCoordinates(parts[0], parts[1], parts[2], parts[3]) + else -> throw IllegalStateException( + "couldn't parse dependency coordinates: '$id'" + ) + } + } + } +} diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultDependencySet.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultDependencySet.kt new file mode 100644 index 0000000..1606888 --- /dev/null +++ b/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultDependencySet.kt @@ -0,0 +1,8 @@ +package org.nixos.gradle2nix.model.impl + +import org.nixos.gradle2nix.model.DependencySet +import org.nixos.gradle2nix.model.ResolvedDependency + +data class DefaultDependencySet( + override val dependencies: List +) : DependencySet diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultRepository.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultRepository.kt new file mode 100644 index 0000000..2cbd508 --- /dev/null +++ b/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultRepository.kt @@ -0,0 +1,11 @@ +package org.nixos.gradle2nix.model.impl + +import org.nixos.gradle2nix.model.Repository + +data class DefaultRepository( + override val id: String, + override val type: Repository.Type, + override val metadataSources: List, + override val metadataResources: List, + override val artifactResources: List, +) : Repository diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultResolvedArtifact.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultResolvedArtifact.kt new file mode 100644 index 0000000..7d659b0 --- /dev/null +++ b/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultResolvedArtifact.kt @@ -0,0 +1,9 @@ +package org.nixos.gradle2nix.model.impl + +import org.nixos.gradle2nix.model.ResolvedArtifact + +data class DefaultResolvedArtifact( + override val name: String, + override val filename: String, + override val urls: List +) : ResolvedArtifact diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultResolvedDependency.kt b/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultResolvedDependency.kt new file mode 100644 index 0000000..96fee8d --- /dev/null +++ b/model/src/main/kotlin/org/nixos/gradle2nix/model/impl/DefaultResolvedDependency.kt @@ -0,0 +1,10 @@ +package org.nixos.gradle2nix.model.impl + +import org.nixos.gradle2nix.model.DependencyCoordinates +import org.nixos.gradle2nix.model.ResolvedArtifact +import org.nixos.gradle2nix.model.ResolvedDependency + +data class DefaultResolvedDependency( + override val coordinates: DependencyCoordinates, + override val artifacts: List, +) : ResolvedDependency diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index 726e2de..c153d98 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -7,10 +7,11 @@ plugins { } dependencies { - compileOnly(kotlin("stdlib-jdk8")) - compileOnly(kotlin("reflect")) + shadow(kotlin("stdlib-jdk8")) + shadow(kotlin("reflect")) implementation(project(":model")) - implementation(libs.serialization.json) + testImplementation(libs.kotest.assertions) + testImplementation(libs.kotest.runner) } java { @@ -47,8 +48,6 @@ tasks { shadowJar { archiveClassifier.set("") relocate("kotlin", "${project.group}.shadow.kotlin") - relocate("kotlinx.serialization", "${project.group}.shadow.serialization") - relocate("net.swiftzer.semver", "${project.group}.shadow.semver") relocate("org.intellij", "${project.group}.shadow.intellij") relocate("org.jetbrains", "${project.group}.shadow.jetbrains") } @@ -56,4 +55,11 @@ tasks { validatePlugins { enableStricterValidation.set(true) } + + withType { + useJUnitPlatform() + testLogging { + events("passed", "skipped", "failed") + } + } } diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/Gradle2NixPlugin.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/Gradle2NixPlugin.kt index 1fe170c..fbf4158 100644 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/Gradle2NixPlugin.kt +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/Gradle2NixPlugin.kt @@ -2,23 +2,48 @@ package org.nixos.gradle2nix +import javax.inject.Inject import org.gradle.api.Plugin +import org.gradle.api.Project import org.gradle.api.invocation.Gradle -import org.nixos.gradle2nix.dependencygraph.AbstractDependencyExtractorPlugin +import org.gradle.tooling.provider.model.ToolingModelBuilder +import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry +import org.nixos.gradle2nix.dependencygraph.DependencyExtractor import org.nixos.gradle2nix.forceresolve.ForceDependencyResolutionPlugin +import org.nixos.gradle2nix.model.DependencySet +import org.nixos.gradle2nix.util.buildOperationAncestryTracker +import org.nixos.gradle2nix.util.buildOperationListenerManager +import org.nixos.gradle2nix.util.service -@Suppress("unused") -class Gradle2NixPlugin : Plugin { +abstract class Gradle2NixPlugin @Inject constructor( + private val toolingModelBuilderRegistry: ToolingModelBuilderRegistry +): Plugin { override fun apply(gradle: Gradle) { - // Only apply the dependency extractor to the root build - if (gradle.parent == null) { - gradle.pluginManager.apply(NixDependencyExtractorPlugin::class.java) + val dependencyExtractor = DependencyExtractor( + gradle.buildOperationAncestryTracker, + ) + toolingModelBuilderRegistry.register(DependencySetModelBuilder(dependencyExtractor)) + + gradle.buildOperationListenerManager.addListener(dependencyExtractor) + + // Configuration caching is not enabled with dependency verification so this is fine for now. + // Gradle 9.x might remove this though. + @Suppress("DEPRECATION") + gradle.buildFinished { + gradle.buildOperationListenerManager.removeListener(dependencyExtractor) } + gradle.pluginManager.apply(ForceDependencyResolutionPlugin::class.java) } +} - class NixDependencyExtractorPlugin : AbstractDependencyExtractorPlugin() { - override fun getRendererClassName(): String = - NixDependencyGraphRenderer::class.java.name +internal class DependencySetModelBuilder( + private val dependencyExtractor: DependencyExtractor, +) : ToolingModelBuilder { + + override fun canBuild(modelName: String): Boolean = modelName == DependencySet::class.qualifiedName + + override fun buildAll(modelName: String, project: Project): DependencySet { + return dependencyExtractor.buildDependencySet() } } diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/NixDependencyGraphRenderer.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/NixDependencyGraphRenderer.kt deleted file mode 100644 index 153b756..0000000 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/NixDependencyGraphRenderer.kt +++ /dev/null @@ -1,27 +0,0 @@ -package org.nixos.gradle2nix - -import java.io.File -import kotlinx.serialization.ExperimentalSerializationApi -import kotlinx.serialization.json.Json -import kotlinx.serialization.json.encodeToStream -import org.nixos.gradle2nix.dependencygraph.DependencyGraphRenderer -import org.nixos.gradle2nix.model.ResolvedConfiguration - -@OptIn(ExperimentalSerializationApi::class) -private val json = Json { - prettyPrint = true - prettyPrintIndent = " " -} - -class NixDependencyGraphRenderer : DependencyGraphRenderer { - @OptIn(ExperimentalSerializationApi::class) - override fun outputDependencyGraph( - resolvedConfigurations: List, - outputDirectory: File - ) { - val graphOutputFile = File(outputDirectory, "dependency-graph.json") - graphOutputFile.outputStream().buffered().use { output -> - json.encodeToStream(resolvedConfigurations, output) - } - } -} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/AbstractDependencyExtractorPlugin.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/AbstractDependencyExtractorPlugin.kt deleted file mode 100644 index 35921eb..0000000 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/AbstractDependencyExtractorPlugin.kt +++ /dev/null @@ -1,148 +0,0 @@ -package org.nixos.gradle2nix.dependencygraph - -import org.gradle.api.Plugin -import org.gradle.api.internal.GradleInternal -import org.gradle.api.internal.project.DefaultProjectRegistry -import org.gradle.api.internal.project.ProjectInternal -import org.gradle.api.internal.project.ProjectRegistry -import org.gradle.api.invocation.Gradle -import org.gradle.api.logging.Logging -import org.gradle.api.provider.Provider -import org.gradle.api.services.internal.RegisteredBuildServiceProvider -import org.gradle.internal.build.BuildProjectRegistry -import org.gradle.internal.build.event.BuildEventListenerRegistryInternal -import org.gradle.internal.composite.IncludedBuildInternal -import org.gradle.internal.operations.BuildOperationAncestryTracker -import org.gradle.internal.operations.BuildOperationListenerManager -import org.gradle.util.GradleVersion -import org.nixos.gradle2nix.dependencygraph.extractor.DependencyExtractor -import org.nixos.gradle2nix.dependencygraph.extractor.DependencyExtractorBuildService -import org.nixos.gradle2nix.dependencygraph.extractor.LegacyDependencyExtractor -import org.nixos.gradle2nix.dependencygraph.util.buildDirCompat -import org.nixos.gradle2nix.dependencygraph.util.service -import org.nixos.gradle2nix.model.ConfigurationTarget - -abstract class AbstractDependencyExtractorPlugin : Plugin { - // Register extension functions on `Gradle` type - private companion object : org.nixos.gradle2nix.dependencygraph.util.GradleExtensions() - - /** - * The name of an accessible class that implements `org.gradle.dependencygraph.DependencyGraphRenderer`. - */ - abstract fun getRendererClassName(): String - - internal lateinit var dependencyExtractorProvider: Provider - - override fun apply(gradle: Gradle) { - val gradleVersion = GradleVersion.current() - // Create the adapter based upon the version of Gradle - val applicatorStrategy = when { - gradleVersion < GradleVersion.version("8.0") -> PluginApplicatorStrategy.LegacyPluginApplicatorStrategy - else -> PluginApplicatorStrategy.DefaultPluginApplicatorStrategy - } - - // Create the service - dependencyExtractorProvider = applicatorStrategy.createExtractorService(gradle, getRendererClassName()) - - gradle.rootProject { project -> - dependencyExtractorProvider - .get() - .rootProjectBuildDirectory = project.buildDirCompat - } - - val logger = Logging.getLogger(AbstractDependencyExtractorPlugin::class.java.name) - - gradle.projectsLoaded { - (gradle as GradleInternal).let { g -> - logger.lifecycle("all projects: ${g.owner.projects.allProjects}") - logger.lifecycle("included projects: ${g.includedBuilds().flatMap { it.target.projects.allProjects }.joinToString { it.identityPath.path }}") - } - } - - // Register the service to listen for Build Events - applicatorStrategy.registerExtractorListener(gradle, dependencyExtractorProvider) - - // Register the shutdown hook that should execute at the completion of the Gradle build. - applicatorStrategy.registerExtractorServiceShutdown(gradle, dependencyExtractorProvider) - } - - /** - * Adapters for creating the [DependencyExtractor] and installing it into [Gradle] based upon the Gradle version. - */ - private interface PluginApplicatorStrategy { - - fun createExtractorService( - gradle: Gradle, - rendererClassName: String - ): Provider - - fun registerExtractorListener( - gradle: Gradle, - extractorServiceProvider: Provider - ) - - fun registerExtractorServiceShutdown( - gradle: Gradle, - extractorServiceProvider: Provider - ) - - @Suppress("DEPRECATION") - object LegacyPluginApplicatorStrategy : PluginApplicatorStrategy { - - override fun createExtractorService( - gradle: Gradle, - rendererClassName: String - ): Provider { - val dependencyExtractor = LegacyDependencyExtractor(rendererClassName) - return gradle.providerFactory.provider { dependencyExtractor } - } - - override fun registerExtractorListener( - gradle: Gradle, - extractorServiceProvider: Provider - ) { - gradle.buildOperationListenerManager - .addListener(extractorServiceProvider.get()) - } - - override fun registerExtractorServiceShutdown( - gradle: Gradle, - extractorServiceProvider: Provider - ) { - gradle.buildFinished { - extractorServiceProvider.get().close() - gradle.buildOperationListenerManager - .removeListener(extractorServiceProvider.get()) - } - } - } - - object DefaultPluginApplicatorStrategy : PluginApplicatorStrategy { - private const val SERVICE_NAME = "dependencyExtractorService" - - override fun createExtractorService( - gradle: Gradle, - rendererClassName: String - ): Provider { - return gradle.sharedServices.registerIfAbsent( - SERVICE_NAME, - DependencyExtractorBuildService::class.java - ) { it.parameters.rendererClassName.set(rendererClassName) } - } - - override fun registerExtractorListener( - gradle: Gradle, - extractorServiceProvider: Provider - ) { - gradle.service() - .onOperationCompletion(extractorServiceProvider) - } - - override fun registerExtractorServiceShutdown( - gradle: Gradle, - extractorServiceProvider: Provider - ) { - } - } - } -} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyExtractor.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyExtractor.kt new file mode 100644 index 0000000..d7f4e17 --- /dev/null +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyExtractor.kt @@ -0,0 +1,252 @@ +package org.nixos.gradle2nix.dependencygraph + +import java.net.URI +import java.util.Collections +import java.util.concurrent.ConcurrentHashMap +import kotlin.jvm.optionals.getOrNull +import org.gradle.api.internal.artifacts.DownloadArtifactBuildOperationType +import org.gradle.api.internal.artifacts.configurations.ResolveConfigurationDependenciesBuildOperationType +import org.gradle.api.logging.Logging +import org.gradle.internal.operations.BuildOperationAncestryTracker +import org.gradle.internal.operations.BuildOperationDescriptor +import org.gradle.internal.operations.BuildOperationListener +import org.gradle.internal.operations.OperationFinishEvent +import org.gradle.internal.operations.OperationIdentifier +import org.gradle.internal.operations.OperationProgressEvent +import org.gradle.internal.operations.OperationStartEvent +import org.gradle.internal.resource.ExternalResourceReadMetadataBuildOperationType +import org.nixos.gradle2nix.model.DependencyCoordinates +import org.nixos.gradle2nix.model.DependencySet +import org.nixos.gradle2nix.model.Repository +import org.nixos.gradle2nix.model.impl.DefaultDependencyCoordinates +import org.nixos.gradle2nix.model.impl.DefaultDependencySet +import org.nixos.gradle2nix.model.impl.DefaultRepository +import org.nixos.gradle2nix.model.impl.DefaultResolvedArtifact +import org.nixos.gradle2nix.model.impl.DefaultResolvedDependency + +class DependencyExtractor( + private val ancestryTracker: BuildOperationAncestryTracker, +) : BuildOperationListener { + + // Repositories by ID + private val repositories: MutableMap = ConcurrentHashMap() + + private val thrownExceptions = Collections.synchronizedList(mutableListOf()) + + private val artifacts: MutableMap< + OperationIdentifier, + DownloadArtifactBuildOperationType.Details + > = ConcurrentHashMap() + + private val files: MutableMap< + OperationIdentifier, + ExternalResourceReadMetadataBuildOperationType.Details + > = ConcurrentHashMap() + + private val fileArtifacts: MutableMap = ConcurrentHashMap() + + fun buildDependencySet(): DependencySet { + println("DependencyExtractor: buildDependencySet (wtf)") + + val repoList = repositories.values.toList() + + val dependencies = buildMap>>>> { + for ((fileId, file) in files) { + val filename = file.location.substringAfterLast("/").substringBefore('#').substringBefore('?') + if (filename == "maven-metadata.xml") { + // Skip Maven metadata, we don't need it for the local repository + continue + } + + val artifactOperationId = fileArtifacts[fileId] + val artifact = artifactOperationId?.let { artifacts[it] } + val artifactIdentifier = artifact?.artifactIdentifier?.let(::parseArtifactIdentifier) + var coords = artifactIdentifier?.first + var name = artifactIdentifier?.second + + if (coords == null || name == null) { + val parsed = parseComponent(repoList, file.location) + if (parsed == null) { + LOGGER.info("Couldn't parse location for ${artifactIdentifier?.first?.toString() ?: name}: ${file.location}") + continue + } + coords = coords ?: parsed.first + name = name ?: parseArtifact(parsed.second, coords, file.location) + } + + getOrPut(coords) { mutableMapOf() } + .getOrPut(name) { mutableSetOf() } + .run { + val existing = find { it.first == filename } + if (existing != null) { + existing.second.add(file.location) + } else { + add(filename to mutableSetOf(file.location)) + } + } + } + } + + return DefaultDependencySet( + dependencies = dependencies.map { (coords, artifacts) -> + DefaultResolvedDependency( + coords, + artifacts.flatMap { (name, files) -> + files.map { (filename, urls) -> + DefaultResolvedArtifact(name, filename, urls.toList()) + } + } + ) + } + ) + } + + override fun started(buildOperation: BuildOperationDescriptor, startEvent: OperationStartEvent) { + val id = buildOperation.id ?: return + + when (val details = buildOperation.details) { + is ResolveConfigurationDependenciesBuildOperationType.Details -> { + for (repository in details.repositories.orEmpty()) { + addRepository(repository) + } + } + + is DownloadArtifactBuildOperationType.Details -> { + artifacts[id] = details + } + + is ExternalResourceReadMetadataBuildOperationType.Details -> { + files[id] = details + + ancestryTracker.findClosestMatchingAncestor(id) { it in artifacts }.getOrNull()?.let { + fileArtifacts[id] = it + } + } + } + } + + override fun progress(operationIdentifier: OperationIdentifier, progressEvent: OperationProgressEvent) {} + + override fun finished(buildOperation: BuildOperationDescriptor, finishEvent: OperationFinishEvent) {} + + private fun addRepository( + repository: ResolveConfigurationDependenciesBuildOperationType.Repository + ): DefaultRepository { + @Suppress("UNCHECKED_CAST") + val candidate = DefaultRepository( + id = repository.id, + type = enumValueOf(repository.type), + metadataSources = (repository.properties["METADATA_SOURCES"] as? List) ?: emptyList(), + metadataResources = metadataResources(repository), + artifactResources = artifactResources(repository), + ) + + // Repository IDs are not unique across the entire build, unfortunately. + val existing = repositories.values.find { + it.type == candidate.type && + it.metadataSources == candidate.metadataSources && + it.metadataResources == candidate.metadataResources && + it.artifactResources == candidate.artifactResources + } + + if (existing != null) return existing + var inc = 0 + fun incId() = if (inc > 0) "${candidate.id}[$inc]" else candidate.id + while (incId() in repositories) inc++ + + val added = if (inc > 0) candidate else candidate.copy(id = incId()) + repositories[added.id] = added + return added + } + + companion object { + private val LOGGER = Logging.getLogger(DependencyExtractor::class.java) + + internal const val M2_PATTERN = + "[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" + + private const val IVY_ARTIFACT_PATTERN = "[organisation]/[module]/[revision]/[type]s/[artifact](.[ext])"; + + private fun resources(urls: List, patterns: List): List { + if (urls.isEmpty()) { + return patterns + } + if (patterns.isEmpty()) { + return urls.map { it.toString() } + } + return mutableListOf().apply { + for (pattern in patterns) { + for (url in urls) { + add( + url.toString() + .removeSuffix("/") + .plus("/") + .plus(pattern.removePrefix("/")) + ) + } + } + } + } + + private fun metadataResources( + repository: ResolveConfigurationDependenciesBuildOperationType.Repository + ): List { + return when (repository.type) { + Repository.Type.MAVEN.name -> { + resources( + listOfNotNull(repository.properties["URL"] as? URI), + listOf(M2_PATTERN) + ) + } + Repository.Type.IVY.name -> { + @Suppress("UNCHECKED_CAST") + val patterns = repository.properties["IVY_PATTERNS"] as? List + ?: listOf(IVY_ARTIFACT_PATTERN) + + resources( + listOfNotNull(repository.properties["URL"] as? URI), + patterns + ) + } + else -> emptyList() + } + } + + private fun artifactResources( + repository: ResolveConfigurationDependenciesBuildOperationType.Repository + ): List { + return when (repository.type) { + Repository.Type.MAVEN.name -> { + @Suppress("UNCHECKED_CAST") + (resources( + listOfNotNull(repository.properties["URL"] as? URI) + .plus(repository.properties["ARTIFACT_URLS"] as? List ?: emptyList()), + listOf(M2_PATTERN) + )) + } + Repository.Type.IVY.name -> { + @Suppress("UNCHECKED_CAST") + val patterns = repository.properties["ARTIFACT_PATTERNS"] as? List + ?: listOf(IVY_ARTIFACT_PATTERN) + + resources( + listOfNotNull(repository.properties["URL"] as? URI), + patterns + ) + } + else -> emptyList() + } + } + + private val artifactRegex = Regex("(?\\S+) \\((?\\S+)\\)") + + private fun parseArtifactIdentifier(input: String): Pair? { + val groups = artifactRegex.matchEntire(input)?.groups ?: return null.also { + LOGGER.warn("artifact regex didn't match $input") + } + val coords = groups["coordinates"]?.value?.let(DefaultDependencyCoordinates::parse) ?: return null + val name = groups["name"]?.value ?: return null + return coords to name + } + } +} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyGraphRenderer.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyGraphRenderer.kt deleted file mode 100644 index 7b6252a..0000000 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyGraphRenderer.kt +++ /dev/null @@ -1,11 +0,0 @@ -package org.nixos.gradle2nix.dependencygraph - -import java.io.File -import org.nixos.gradle2nix.model.ResolvedConfiguration - -interface DependencyGraphRenderer { - fun outputDependencyGraph( - resolvedConfigurations: List, - outputDirectory: File - ) -} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyUrlParser.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyUrlParser.kt new file mode 100644 index 0000000..1f137b2 --- /dev/null +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyUrlParser.kt @@ -0,0 +1,158 @@ +package org.nixos.gradle2nix.dependencygraph + +import java.util.concurrent.ConcurrentHashMap +import org.nixos.gradle2nix.model.DependencyCoordinates +import org.nixos.gradle2nix.model.Repository +import org.nixos.gradle2nix.model.impl.DefaultDependencyCoordinates + + +private val partRegex = Regex("\\[(?[^]]+)]|\\((?([^)]+))\\)") + +private fun StringBuilder.appendPattern( + input: String, + seen: MutableList, +) { + var literalStart = 0 + partRegex.findAll(input).forEach { match -> + val literal = input.substring(literalStart, match.range.first) + if (literal.isNotEmpty()) { + append(Regex.escape(literal)) + } + literalStart = match.range.last + 1 + + val optionalValue = match.groups["optional"]?.value + val attrValue = match.groups["attr"]?.value + if (optionalValue != null) { + append("(") + appendPattern(optionalValue, seen) + append(")?") + } else if (attrValue != null) { + if (attrValue !in seen) { + seen.add(attrValue) + append("(?<$attrValue>[^/]+)") + } else { + append("\\k<$attrValue>") + } + } + } + val tail = input.substring(literalStart) + if (tail.isNotEmpty()) { + append(Regex.escape(input.substring(literalStart))) + } +} + +private fun String.replaceAttrs( + attrs: Map +): String { + return partRegex.replace(this) { match -> + val optionalValue = match.groups["optional"]?.value + val attrValue = match.groups["attr"]?.value + if (optionalValue != null) { + val replaced = optionalValue.replaceAttrs(attrs) + if (replaced != optionalValue) replaced else match.value + } else if (attrValue != null) { + attrs[attrValue] ?: match.value + } else { + match.value + } + } +} + + +private fun interface ArtifactMatcher { + fun match(url: String): Map? +} + +private fun regexMatcher(regex: Regex, attrs: List): ArtifactMatcher { + return ArtifactMatcher { url -> + regex.matchEntire(url)?.groups?.let { groups -> + buildMap { + for (attr in attrs) { + groups[attr]?.let { put(attr, it.value) } + } + } + } + } +} + +private fun patternMatcher(pattern: String): ArtifactMatcher { + val attrs = mutableListOf() + val exp = buildString { appendPattern(pattern, attrs) }.toRegex() + return regexMatcher(exp, attrs) +} + +private fun mavenMatcher(pattern: String): ArtifactMatcher { + val attrs = mutableListOf() + val exp = buildString { appendPattern(pattern.replaceAfterLast("/", ""), attrs) } + .replace("[^/]+", ".+") + .plus("[^/]+") + .toRegex() + return regexMatcher(exp, attrs) +} + +private val matcherCache: MutableMap = ConcurrentHashMap() + +private fun matcher( + pattern: String, +): ArtifactMatcher = matcherCache.getOrPut(pattern) { + if (pattern.endsWith(DependencyExtractor.M2_PATTERN)) mavenMatcher(pattern) else patternMatcher(pattern) +} + +fun parseComponent( + repositories: List, + url: String, +): Pair? { + for (repository in repositories) { + for (pattern in (repository.metadataResources + repository.artifactResources).distinct()) { + val matcher = matcher(pattern) + val attrs = matcher.match(url) + if (attrs != null) { + val group = attrs["organisation"]?.replace('/', '.') ?: continue + val artifact = attrs["module"] ?: continue + val revision = attrs["revision"] ?: continue + return DefaultDependencyCoordinates(group, artifact, revision) to pattern.replaceAttrs(attrs) + } + } + } + return null +} + +fun parseArtifact( + resource: String, + component: DependencyCoordinates, + url: String +): String { + val attrs = mutableListOf() + var pattern = buildString { appendPattern(resource, attrs) } + if (component.version.endsWith("-SNAPSHOT")) { + val base = component.version.substringBeforeLast("-SNAPSHOT", "") + pattern = pattern.replace("\\Q-${component.version}\\E", "\\Q-$base-\\E(?:.+)") + } + + val values = regexMatcher(pattern.toRegex(), attrs).match(url) + val artifact = values?.get("artifact") + val classifier = values?.get("classifier") + val ext = values?.get("ext") + + if (artifact == null) return artifactFromFilename( + url.substringAfterLast('/').substringBefore('#').substringBefore('?'), + component.version, + classifier + ) + + return buildString { + append("$artifact-${component.version}") + if (classifier != null) append("-$classifier") + if (ext != null) append(".$ext") + } +} + +private fun artifactFromFilename(filename: String, version: String, classifier: String?): String { + val name = filename.substringBeforeLast('.') + val extension = filename.substringAfterLast('.', "") + return buildString { + append("$name-$version") + if (classifier != null) append("-$classifier") + if (extension.isNotEmpty()) append(".$extension") + } +} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/DependencyExtractor.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/DependencyExtractor.kt deleted file mode 100644 index c9ddea7..0000000 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/DependencyExtractor.kt +++ /dev/null @@ -1,428 +0,0 @@ -package org.nixos.gradle2nix.dependencygraph.extractor - -import java.io.File -import java.net.URI -import java.util.Collections -import java.util.concurrent.ConcurrentHashMap -import org.gradle.api.GradleException -import org.gradle.api.artifacts.DependencyResolutionListener -import org.gradle.api.artifacts.ResolvableDependencies -import org.gradle.api.artifacts.component.BuildIdentifier -import org.gradle.api.artifacts.component.ModuleComponentIdentifier -import org.gradle.api.artifacts.query.ArtifactResolutionQuery -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.artifacts.result.ResolvedComponentResult -import org.gradle.api.artifacts.result.ResolvedDependencyResult -import org.gradle.api.component.Artifact -import org.gradle.api.internal.artifacts.DefaultModuleVersionIdentifier -import org.gradle.api.internal.artifacts.DefaultProjectComponentIdentifier -import org.gradle.api.internal.artifacts.configurations.ResolveConfigurationDependenciesBuildOperationType -import org.gradle.api.internal.artifacts.repositories.resolver.MavenUniqueSnapshotComponentIdentifier -import org.gradle.api.logging.Logging -import org.gradle.configuration.ApplyScriptPluginBuildOperationType -import org.gradle.configuration.ConfigurationTargetIdentifier -import org.gradle.initialization.LoadBuildBuildOperationType -import org.gradle.internal.component.external.model.DefaultModuleComponentIdentifier -import org.gradle.internal.component.external.model.ModuleComponentArtifactIdentifier -import org.gradle.internal.exceptions.DefaultMultiCauseException -import org.gradle.internal.operations.BuildOperationDescriptor -import org.gradle.internal.operations.BuildOperationListener -import org.gradle.internal.operations.OperationFinishEvent -import org.gradle.internal.operations.OperationIdentifier -import org.gradle.internal.operations.OperationProgressEvent -import org.gradle.internal.operations.OperationStartEvent -import org.gradle.ivy.IvyDescriptorArtifact -import org.gradle.jvm.JvmLibrary -import org.gradle.language.base.artifact.SourcesArtifact -import org.gradle.language.java.artifact.JavadocArtifact -import org.gradle.maven.MavenPomArtifact -import org.gradle.util.GradleVersion -import org.nixos.gradle2nix.dependencygraph.DependencyGraphRenderer -import org.nixos.gradle2nix.dependencygraph.util.BuildOperationTracker -import org.nixos.gradle2nix.dependencygraph.util.loadOptionalParam -import org.nixos.gradle2nix.model.ConfigurationTarget -import org.nixos.gradle2nix.model.DependencyCoordinates -import org.nixos.gradle2nix.model.DependencySource -import org.nixos.gradle2nix.model.PARAM_INCLUDE_CONFIGURATIONS -import org.nixos.gradle2nix.model.PARAM_INCLUDE_PROJECTS -import org.nixos.gradle2nix.model.PARAM_REPORT_DIR -import org.nixos.gradle2nix.model.Repository -import org.nixos.gradle2nix.model.ResolvedArtifact -import org.nixos.gradle2nix.model.ResolvedConfiguration -import org.nixos.gradle2nix.model.ResolvedDependency - -abstract class DependencyExtractor : - BuildOperationListener, - AutoCloseable { - - private val configurations = - ConcurrentHashMap< - OperationIdentifier, - Pair>() - - private val resolvedConfigurations = Collections.synchronizedList(mutableListOf()) - - private val thrownExceptions = Collections.synchronizedList(mutableListOf()) - - var rootProjectBuildDirectory: File? = null - - private val operationTracker = BuildOperationTracker() - - // Properties are lazily initialized so that System Properties are initialized by the time - // the values are used. This is required due to a bug in older Gradle versions. (https://github.com/gradle/gradle/issues/6825) - private val configurationFilter by lazy { - ResolvedConfigurationFilter( - loadOptionalParam(PARAM_INCLUDE_PROJECTS), - loadOptionalParam(PARAM_INCLUDE_CONFIGURATIONS) - ) - } - - private val dependencyGraphReportDir by lazy { - loadOptionalParam(PARAM_REPORT_DIR) - } - - abstract fun getRendererClassName(): String - - override fun started(buildOperation: BuildOperationDescriptor, startEvent: OperationStartEvent) {} - - override fun progress(operationIdentifier: OperationIdentifier, progressEvent: OperationProgressEvent) {} - - override fun finished(buildOperation: BuildOperationDescriptor, finishEvent: OperationFinishEvent) { - operationTracker.finished(buildOperation, finishEvent) - - handleFinishBuildOperationType< - ResolveConfigurationDependenciesBuildOperationType.Details, - ResolveConfigurationDependenciesBuildOperationType.Result - >(buildOperation, finishEvent) { details, result -> - buildOperation.id?.let { operationId -> - configurations[operationId] = details to result - } - } - } - - private inline fun handleFinishBuildOperationType( - buildOperation: BuildOperationDescriptor, - finishEvent: OperationFinishEvent, - handler: (details: D, result: R) -> Unit - ) { - try { - handleFinishBuildOperationTypeRaw(buildOperation, finishEvent, handler) - } catch (e: Throwable) { - thrownExceptions.add(e) - throw e - } - } - - private inline fun handleFinishBuildOperationTypeRaw( - buildOperation: BuildOperationDescriptor, - finishEvent: OperationFinishEvent, - handler: (details: D, result: R) -> Unit - ) { - val details: D? = buildOperation.details.let { - if (it is D) it else null - } - val result: R? = finishEvent.result.let { - if (it is R) it else null - } - if (details == null && result == null) { - return - } else if (details == null || result == null) { - throw IllegalStateException("buildOperation.details & finishedEvent.result were unexpected types") - } - handler(details, result) - } - - // This returns null for the root build, because the build operation won't complete until after close() is called. - private fun findBuildDetails(buildOperationId: OperationIdentifier?): LoadBuildBuildOperationType.Details? { - return operationTracker.findParent(buildOperationId) { - it.details as? LoadBuildBuildOperationType.Details - } - } - - private fun processConfigurations() { - for ((operationId, data) in configurations) { - val (details, result) = data - extractConfigurationDependencies(operationId, details, result) - } - } - - private fun extractConfigurationDependencies( - operationId: OperationIdentifier, - details: ResolveConfigurationDependenciesBuildOperationType.Details, - result: ResolveConfigurationDependenciesBuildOperationType.Result - ) { - val repositories = details.repositories?.mapNotNull { - @Suppress("UNCHECKED_CAST") - (Repository( - id = it.id, - type = enumValueOf(it.type), - name = it.name, - m2Compatible = it.type == "MAVEN" || (it.properties["M2_COMPATIBLE"] as? Boolean) ?: false, - metadataSources = (it.properties["METADATA_SOURCES"] as? List) ?: emptyList(), - metadataResources = metadataResources(it), - artifactResources = artifactResources(it), - )) - } ?: emptyList() - - if (repositories.isEmpty()) { - return - } - - val rootComponent = result.rootComponent - - if (rootComponent.dependencies.isEmpty()) { - // No dependencies to extract: can safely ignore - return - } - - val source: DependencySource = when { - details.isScriptConfiguration -> { - val parent = operationTracker.findParent(operationId) { - it.details as? ApplyScriptPluginBuildOperationType.Details - } ?: throw IllegalStateException("Couldn't find parent script operation for ${details.configurationName}") - DependencySource( - targetType = when (parent.targetType) { - ConfigurationTargetIdentifier.Type.GRADLE.label -> ConfigurationTarget.GRADLE - ConfigurationTargetIdentifier.Type.SETTINGS.label -> ConfigurationTarget.SETTINGS - ConfigurationTargetIdentifier.Type.PROJECT.label -> ConfigurationTarget.BUILDSCRIPT - else -> throw IllegalStateException("Unknown configuration target type: ${parent.targetType}") - }, - targetPath = parent.targetPath ?: ":", - buildPath = parent.buildPath!! - ) - } - else -> { - DependencySource( - targetType = ConfigurationTarget.PROJECT, - targetPath = details.projectPath!!, - buildPath = details.buildPath - ) - } - } - - - val resolvedConfiguration = ResolvedConfiguration(source, details.configurationName, repositories) - - for (directDependency in getResolvedDependencies(rootComponent)) { - val coordinates = (directDependency.id as? ModuleComponentIdentifier)?.let(::coordinates) - if (coordinates != null) { - val directDep = createComponentNode( - coordinates, - source, - true, - directDependency, - result.getRepositoryId(directDependency) - ) - resolvedConfiguration.addDependency(directDep) - - walkComponentDependencies(result, directDependency, directDep.source, resolvedConfiguration) - } - } - - resolvedConfigurations.add(resolvedConfiguration) - } - - private fun walkComponentDependencies( - result: ResolveConfigurationDependenciesBuildOperationType.Result, - component: ResolvedComponentResult, - parentSource: DependencySource, - resolvedConfiguration: ResolvedConfiguration - ) { - val componentSource = getSource(component, parentSource) - val direct = componentSource != parentSource - - val dependencyComponents = getResolvedDependencies(component) - for (dependencyComponent in dependencyComponents) { - val coordinates = (dependencyComponent.id as? ModuleComponentIdentifier)?.let(::coordinates) - ?: continue - if (!resolvedConfiguration.hasDependency(coordinates)) { - val dependencyNode = createComponentNode( - coordinates, - componentSource, - direct, - dependencyComponent, - result.getRepositoryId(component) - ) - resolvedConfiguration.addDependency(dependencyNode) - walkComponentDependencies(result, dependencyComponent, componentSource, resolvedConfiguration) - } - } - } - - private fun getSource(component: ResolvedComponentResult, source: DependencySource): DependencySource { - val componentId = component.id - if (componentId is DefaultProjectComponentIdentifier) { - return DependencySource( - ConfigurationTarget.PROJECT, - componentId.projectPath, - componentId.build.buildPathCompat - ) - } - return source - } - - private val BuildIdentifier.buildPathCompat: String - @Suppress("DEPRECATION") - get() = if (GradleVersion.current() < GradleVersion.version("8.2")) name else buildPath - - private fun getResolvedDependencies(component: ResolvedComponentResult): List { - return component.dependencies.filterIsInstance().map { it.selected }.filter { it != component } - } - - private fun createComponentNode( - coordinates: DependencyCoordinates, - source: DependencySource, - direct: Boolean, - component: ResolvedComponentResult, - repositoryId: String? - ): ResolvedDependency { - val componentDependencies = - component.dependencies.filterIsInstance().map { componentId(it.selected) } - return ResolvedDependency( - coordinates, - source, - direct, - repositoryId, - componentDependencies, - ) - } - - private fun componentId(component: ResolvedComponentResult): String { - return component.id.displayName - } - - private fun coordinates(componentId: ModuleComponentIdentifier): DependencyCoordinates { - return DependencyCoordinates( - componentId.group, - componentId.module, - componentId.version, - (componentId as? MavenUniqueSnapshotComponentIdentifier)?.timestamp - ) - } - - private fun writeDependencyGraph() { - val outputDirectory = getOutputDir() - outputDirectory.mkdirs() - createRenderer().outputDependencyGraph(resolvedConfigurations, outputDirectory) - LOGGER.info("Wrote dependency graph to ${getOutputDir()}") - } - - private fun createRenderer(): DependencyGraphRenderer { - LOGGER.info("Constructing renderer: ${getRendererClassName()}") - return Class.forName(getRendererClassName()).getDeclaredConstructor().newInstance() as DependencyGraphRenderer - } - - private fun getOutputDir(): File { - if (dependencyGraphReportDir != null) { - return File(dependencyGraphReportDir!!) - } - - if (rootProjectBuildDirectory == null) { - throw RuntimeException("Cannot determine report file location") - } - return File( - rootProjectBuildDirectory, - "reports/nix-dependency-graph" - ) - } - - override fun close() { - LOGGER.lifecycle("DependencyExtractor: CLOSE") - - if (thrownExceptions.isNotEmpty()) { - throw DefaultMultiCauseException( - "The Gradle2Nix plugin encountered errors while extracting dependencies. " + - "Please report this issue at: https://github.com/tadfisher/gradle2nix/issues", - thrownExceptions - ) - } - try { - processConfigurations() - - LOGGER.lifecycle("Resolved ${resolvedConfigurations.size} configurations.") - - writeDependencyGraph() - } catch (e: RuntimeException) { - throw GradleException( - "The Gradle2Nix plugin encountered errors while writing the dependency snapshot json file. " + - "Please report this issue at: https://github.com/tadfisher/gradle2nix/issues", - e - ) - } - } - - companion object { - private val LOGGER = Logging.getLogger(DependencyExtractor::class.java) - - private const val M2_PATTERN = - "[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier])(.[ext])" - - private const val IVY_ARTIFACT_PATTERN = "[organisation]/[module]/[revision]/[type]s/[artifact](.[ext])"; - - private fun resources(urls: List, patterns: List): List { - if (urls.isEmpty()) { - return patterns - } - if (patterns.isEmpty()) { - return urls.map { it.toString() } - } - return mutableListOf().apply { - for (pattern in patterns) { - for (url in urls) { - add( - url.toString() - .removeSuffix("/") - .plus("/") - .plus(pattern.removePrefix("/")) - ) - } - } - } - } - - private fun metadataResources( - repository: ResolveConfigurationDependenciesBuildOperationType.Repository - ): List { - return when (repository.type) { - Repository.Type.MAVEN.name -> { - resources( - listOfNotNull(repository.properties["URL"] as? URI), - listOf(M2_PATTERN) - ) - } - Repository.Type.IVY.name -> { - @Suppress("UNCHECKED_CAST") - resources( - listOfNotNull(repository.properties["URL"] as? URI), - repository.properties["IVY_PATTERNS"] as? List ?: listOf(IVY_ARTIFACT_PATTERN) - ) - } - else -> emptyList() - } - } - - private fun artifactResources( - repository: ResolveConfigurationDependenciesBuildOperationType.Repository - ): List { - return when (repository.type) { - Repository.Type.MAVEN.name -> { - @Suppress("UNCHECKED_CAST") - resources( - listOfNotNull(repository.properties["URL"] as? URI) - .plus(repository.properties["ARTIFACT_URLS"] as? List ?: emptyList()), - listOf(M2_PATTERN) - ) - } - Repository.Type.IVY.name -> { - @Suppress("UNCHECKED_CAST") - resources( - listOfNotNull(repository.properties["URL"] as? URI), - repository.properties["ARTIFACT_PATTERNS"] as? List ?: listOf(IVY_ARTIFACT_PATTERN) - ) - } - else -> emptyList() - } - } - } -} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/DependencyExtractorBuildService.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/DependencyExtractorBuildService.kt deleted file mode 100644 index 8f49dbd..0000000 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/DependencyExtractorBuildService.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.nixos.gradle2nix.dependencygraph.extractor - -import org.gradle.api.provider.Property -import org.gradle.api.services.BuildService -import org.gradle.api.services.BuildServiceParameters - -abstract class DependencyExtractorBuildService : - DependencyExtractor(), - BuildService -{ - internal interface Params : BuildServiceParameters { - val rendererClassName: Property - } - - override fun getRendererClassName(): String { - return parameters.rendererClassName.get() - } -} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/LegacyDependencyExtractor.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/LegacyDependencyExtractor.kt deleted file mode 100644 index 92dd5ea..0000000 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/LegacyDependencyExtractor.kt +++ /dev/null @@ -1,10 +0,0 @@ -package org.nixos.gradle2nix.dependencygraph.extractor - -open class LegacyDependencyExtractor( - private val rendererClassName: String -) : DependencyExtractor() { - - override fun getRendererClassName(): String { - return rendererClassName - } -} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/ResolvedConfigurationFilter.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/ResolvedConfigurationFilter.kt deleted file mode 100644 index 5cbd4af..0000000 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/extractor/ResolvedConfigurationFilter.kt +++ /dev/null @@ -1,16 +0,0 @@ -package org.nixos.gradle2nix.dependencygraph.extractor - -class ResolvedConfigurationFilter(projectFilter: String?, configurationFilter: String?) { - val projectRegex = projectFilter?.toRegex() - val configurationRegex = configurationFilter?.toRegex() - - fun include(projectPath: String, configurationName: String): Boolean { - if (projectRegex != null && !projectRegex.matches(projectPath)) { - return false - } - if (configurationRegex != null && !configurationRegex.matches(configurationName)) { - return false - } - return true - } -} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/BuildOperationTracker.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/BuildOperationTracker.kt deleted file mode 100644 index 2a833e0..0000000 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/BuildOperationTracker.kt +++ /dev/null @@ -1,64 +0,0 @@ -package org.nixos.gradle2nix.dependencygraph.util - -import java.util.concurrent.ConcurrentHashMap -import org.gradle.api.logging.Logging -import org.gradle.internal.operations.BuildOperation -import org.gradle.internal.operations.BuildOperationDescriptor -import org.gradle.internal.operations.BuildOperationListener -import org.gradle.internal.operations.OperationFinishEvent -import org.gradle.internal.operations.OperationIdentifier -import org.gradle.internal.operations.OperationProgressEvent -import org.gradle.internal.operations.OperationStartEvent - -class BuildOperationTracker : BuildOperationListener { - private val _parents: MutableMap = ConcurrentHashMap() - private val _operations: MutableMap = ConcurrentHashMap() - private val _results: MutableMap = ConcurrentHashMap() - - val parents: Map get() = _parents - val operations: Map get() = _operations - val results: Map get() = _results - - override fun started(buildOperation: BuildOperationDescriptor, startEvent: OperationStartEvent) { - } - - override fun progress(operationIdentifier: OperationIdentifier, progressEvent: OperationProgressEvent) { - } - - override fun finished(buildOperation: BuildOperationDescriptor, finishEvent: OperationFinishEvent) { - val id = buildOperation.id ?: return - _parents[id] = buildOperation.parentId - _operations[id] = buildOperation - } - - tailrec fun findParent(id: OperationIdentifier?, block: (BuildOperationDescriptor) -> T?): T? { - if (id == null) return null - val operation = _operations[id] ?: return null.also { - LOGGER.lifecycle("no operation for $id") - } - return block(operation) ?: findParent(operation.parentId, block) - } - - fun findChild(id: OperationIdentifier?, block: (BuildOperationDescriptor) -> T?): T? { - if (id == null) return null - val operation = operations[id] ?: return null - block(operation)?.let { return it } - return children(id).firstNotNullOfOrNull { findChild(it, block) } - } - - fun children(id: OperationIdentifier): Set { - return parents.filterValues { it == id }.keys - } - - inline fun getDetails(id: OperationIdentifier): T? { - return operations[id]?.details as? T - } - - inline fun getResult(id: OperationIdentifier): T? { - return results[id] as? T - } - - companion object { - private val LOGGER = Logging.getLogger(BuildOperationTracker::class.qualifiedName!!) - } -} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/GradleExtensions.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/GradleExtensions.kt deleted file mode 100644 index c9d65ef..0000000 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/GradleExtensions.kt +++ /dev/null @@ -1,30 +0,0 @@ -package org.nixos.gradle2nix.dependencygraph.util - -import java.io.File -import org.gradle.api.Project -import org.gradle.api.internal.GradleInternal -import org.gradle.api.invocation.Gradle -import org.gradle.api.model.ObjectFactory -import org.gradle.api.provider.ProviderFactory -import org.gradle.internal.operations.BuildOperationListenerManager -import org.gradle.util.GradleVersion - -internal abstract class GradleExtensions { - - inline val Gradle.providerFactory: ProviderFactory - get() = service() - - inline val Gradle.buildOperationListenerManager: BuildOperationListenerManager - get() = service() -} - -internal inline fun Gradle.service(): T = - (this as GradleInternal).services.get(T::class.java) - -internal val Project.buildDirCompat: File - get() = if (GradleVersion.current() < GradleVersion.version("8.3")) { - @Suppress("DEPRECATION") - buildDir - } else { - layout.buildDirectory.asFile.get() - } diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/PluginParameters.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/PluginParameters.kt deleted file mode 100644 index a889f56..0000000 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/dependencygraph/util/PluginParameters.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.nixos.gradle2nix.dependencygraph.util - -internal fun loadOptionalParam(envName: String): String? { - return System.getProperty(envName) - ?: System.getenv()[envName] -} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/AbstractResolveProjectDependenciesTask.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/AbstractResolveProjectDependenciesTask.kt new file mode 100644 index 0000000..9e05333 --- /dev/null +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/AbstractResolveProjectDependenciesTask.kt @@ -0,0 +1,15 @@ +package org.nixos.gradle2nix.forceresolve + +import org.gradle.api.DefaultTask +import org.gradle.api.artifacts.Configuration +import org.gradle.api.tasks.Internal +import org.gradle.work.DisableCachingByDefault +import org.nixos.gradle2nix.util.canSafelyBeResolved + +@DisableCachingByDefault(because = "Not worth caching") +abstract class AbstractResolveProjectDependenciesTask : DefaultTask() { + @Internal + protected fun getReportableConfigurations(): List { + return project.configurations.filter { it.canSafelyBeResolved() } + } +} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/ForceDependencyResolutionPlugin.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/ForceDependencyResolutionPlugin.kt index 2c11c1b..73f358f 100644 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/ForceDependencyResolutionPlugin.kt +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/ForceDependencyResolutionPlugin.kt @@ -23,9 +23,7 @@ class ForceDependencyResolutionPlugin : Plugin { gradle.allprojects { project -> val projectTaskFactory = getResolveProjectDependenciesTaskFactory() val resolveProjectDeps = projectTaskFactory.create(project) - resolveAllDeps.configure { - it.dependsOn(resolveProjectDeps) - } + resolveAllDeps.configure { it.dependsOn(resolveProjectDeps) } } // Depend on all 'resolveBuildDependencies' task in each included build @@ -51,7 +49,7 @@ class ForceDependencyResolutionPlugin : Plugin { fun create(project: Project): TaskProvider data object Current : ResolveProjectDependenciesTaskFactory { - override fun create(project: Project): TaskProvider { + override fun create(project: Project): TaskProvider { return project.tasks.register(RESOLVE_PROJECT_TASK, ResolveProjectDependenciesTask::class.java) } } diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/LegacyResolveProjectDependenciesTask.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/LegacyResolveProjectDependenciesTask.kt index cae57d0..598f342 100644 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/LegacyResolveProjectDependenciesTask.kt +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/LegacyResolveProjectDependenciesTask.kt @@ -6,11 +6,7 @@ import org.gradle.api.tasks.TaskAction import org.gradle.work.DisableCachingByDefault @DisableCachingByDefault(because = "Not worth caching") -abstract class LegacyResolveProjectDependenciesTask: DefaultTask() { - private fun getReportableConfigurations(): List { - return project.configurations.filter { it.isCanBeResolved } - } - +abstract class LegacyResolveProjectDependenciesTask : AbstractResolveProjectDependenciesTask() { @TaskAction fun action() { for (configuration in getReportableConfigurations()) { diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/ResolveProjectDependenciesTask.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/ResolveProjectDependenciesTask.kt index 5747b21..f35af26 100644 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/ResolveProjectDependenciesTask.kt +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/forceresolve/ResolveProjectDependenciesTask.kt @@ -1,31 +1,31 @@ package org.nixos.gradle2nix.forceresolve -import org.gradle.api.DefaultTask -import org.gradle.api.artifacts.Configuration -import org.gradle.api.artifacts.result.ResolvedComponentResult -import org.gradle.api.provider.Provider +import javax.inject.Inject +import org.gradle.api.artifacts.component.ModuleComponentIdentifier +import org.gradle.api.file.FileCollection +import org.gradle.api.model.ObjectFactory import org.gradle.api.tasks.TaskAction import org.gradle.internal.serialization.Cached import org.gradle.work.DisableCachingByDefault @DisableCachingByDefault(because = "Not worth caching") -abstract class ResolveProjectDependenciesTask: DefaultTask() { - private val configurationResolvers = Cached.of { createConfigurationResolvers() } +abstract class ResolveProjectDependenciesTask @Inject constructor( + private val objects: ObjectFactory +): AbstractResolveProjectDependenciesTask() { + private val artifactFiles = Cached.of { artifactFiles() } - private fun createConfigurationResolvers(): List> { - return getReportableConfigurations().map { - it.incoming.resolutionResult.rootComponent - } - } - - private fun getReportableConfigurations(): List { - return project.configurations.filter { it.isCanBeResolved } + private fun artifactFiles(): FileCollection { + return objects.fileCollection().from( + getReportableConfigurations().map { configuration -> + configuration.incoming.artifactView { viewConfiguration -> + viewConfiguration.componentFilter { it is ModuleComponentIdentifier } + }.files + } + ) } @TaskAction fun action() { - for (configuration in configurationResolvers.get()) { - configuration.get() - } + artifactFiles.get().count() } } diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/util/GradleExtensions.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/util/GradleExtensions.kt new file mode 100644 index 0000000..32b2503 --- /dev/null +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/util/GradleExtensions.kt @@ -0,0 +1,27 @@ +package org.nixos.gradle2nix.util + +import java.lang.reflect.Method +import org.gradle.api.artifacts.Configuration +import org.gradle.api.internal.GradleInternal +import org.gradle.api.invocation.Gradle +import org.gradle.internal.operations.BuildOperationAncestryTracker +import org.gradle.internal.operations.BuildOperationListenerManager + +internal inline val Gradle.buildOperationAncestryTracker: BuildOperationAncestryTracker + get() = service() + +internal inline val Gradle.buildOperationListenerManager: BuildOperationListenerManager + get() = service() + +internal inline fun Gradle.service(): T = + (this as GradleInternal).services.get(T::class.java) + +private val canSafelyBeResolvedMethod: Method? = try { + val dc = Class.forName("org.gradle.internal.deprecation.DeprecatableConfiguration") + dc.getMethod("canSafelyBeResolved") +} catch (e: ReflectiveOperationException) { + null +} + +internal fun Configuration.canSafelyBeResolved(): Boolean = + canSafelyBeResolvedMethod?.invoke(this) as? Boolean ?: isCanBeResolved diff --git a/plugin/src/test/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyUrlParserTest.kt b/plugin/src/test/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyUrlParserTest.kt new file mode 100644 index 0000000..f4ebe8e --- /dev/null +++ b/plugin/src/test/kotlin/org/nixos/gradle2nix/dependencygraph/DependencyUrlParserTest.kt @@ -0,0 +1,58 @@ +package org.nixos.gradle2nix.dependencygraph + +import io.kotest.core.spec.style.FunSpec +import io.kotest.matchers.nulls.shouldNotBeNull +import io.kotest.matchers.shouldBe +import org.nixos.gradle2nix.model.Repository +import org.nixos.gradle2nix.model.impl.DefaultDependencyCoordinates +import org.nixos.gradle2nix.model.impl.DefaultRepository + +class DependencyUrlParserTest : FunSpec({ + val mavenCentral = DefaultRepository( + "MavenRepo", + Repository.Type.MAVEN, + metadataSources = listOf("mavenPom"), + metadataResources = listOf("https://repo.maven.apache.org/maven2/${DependencyExtractor.M2_PATTERN}"), + artifactResources = listOf("https://repo.maven.apache.org/maven2/${DependencyExtractor.M2_PATTERN}") + ) + + test("parses maven url") { + val url = "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt-metadata/2.8.0/clikt-metadata-2.8.0.jar" + val (coords, pattern) = parseComponent(listOf(mavenCentral), url).shouldNotBeNull() + coords shouldBe DefaultDependencyCoordinates("com.github.ajalt", "clikt-metadata", "2.8.0") + parseArtifact(pattern, coords, url) shouldBe "clikt-metadata-2.8.0.jar" + } + + test("parses maven snapshot url") { + val url = "https://repo.maven.apache.org/maven2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.jar" + val (coords, pattern) = parseComponent(listOf(mavenCentral), url).shouldNotBeNull() + coords shouldBe DefaultDependencyCoordinates("org.apache", "test-SNAPSHOT2", "2.0.2-SNAPSHOT") + parseArtifact(pattern, coords, url) shouldBe "test-SNAPSHOT2-2.0.2-SNAPSHOT.jar" + } + + test("parses maven timestamped snapshot url") { + val url = "https://repo.maven.apache.org/maven2/org/apache/test-SNAPSHOT1/2.0.2-SNAPSHOT/test-SNAPSHOT1-2.0.2-20070310.181613-3.jar" + val (coords, pattern) = parseComponent(listOf(mavenCentral), url).shouldNotBeNull() + coords shouldBe DefaultDependencyCoordinates("org.apache", "test-SNAPSHOT1", "2.0.2-SNAPSHOT") + parseArtifact(pattern, coords, url) shouldBe "test-SNAPSHOT1-2.0.2-SNAPSHOT.jar" + } + + test("parses ivy descriptor url") { + val url = "https://asset.opendof.org/ivy2/org.opendof.core-java/dof-cipher-sms4/1.0/ivy.xml" + val (coords, pattern) = parseComponent( + listOf( + DefaultRepository( + "ivy", + Repository.Type.IVY, + metadataSources = listOf("ivyDescriptor"), + metadataResources = listOf("https://asset.opendof.org/ivy2/[organisation]/[module]/[revision]/ivy(.[platform]).xml"), + artifactResources = listOf("https://asset.opendof.org/artifact/[organisation]/[module]/[revision](/[platform])(/[type]s)/[artifact]-[revision](-[classifier]).[ext]") + ) + ), + url + ).shouldNotBeNull() + + coords shouldBe DefaultDependencyCoordinates("org.opendof.core-java", "dof-cipher-sms4", "1.0") + parseArtifact(pattern, coords, url) shouldBe "ivy-1.0.xml" + } +}) diff --git a/settings.gradle.kts b/settings.gradle.kts index dd7323f..ff2556c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,7 +3,6 @@ dependencyResolutionManagement { repositories { mavenCentral() - gradlePluginPortal() maven { url = uri("https://repo.gradle.org/gradle/libs-releases") } } repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)