diff --git a/MODULE.bazel b/MODULE.bazel index 79a0038fb..5d236a7a2 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -764,12 +764,17 @@ dev_maven.install( "androidx.annotation:annotation:1.6.0", # https://github.com/bazel-contrib/rules_jvm_external/issues/1409 "com.squareup.okhttp3:okhttp:4.12.0", + # Versioned snapshot pinning support: https://github.com/bazel-contrib/rules_jvm_external/pull/1412 + "com.google.guava:guava:999.0.0-HEAD-jre-SNAPSHOT", + # Non-versioned snapshot pinning support: https://github.com/bazel-contrib/rules_jvm_external/pull/1412 + "org.seleniumhq.selenium:selenium-java:4.35.0-SNAPSHOT", ], generate_compat_repositories = True, lock_file = "//tests/custom_maven_install:regression_testing_gradle_install.json", repositories = [ "https://repo1.maven.org/maven2", "https://maven.google.com", + "https://central.sonatype.com/repository/maven-snapshots", ], resolver = "gradle", ) diff --git a/WORKSPACE b/WORKSPACE index ceb93f97c..ad9afd04d 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -388,6 +388,10 @@ maven_install( "androidx.annotation:annotation:1.6.0", # https://github.com/bazel-contrib/rules_jvm_external/issues/1409 "com.squareup.okhttp3:okhttp:4.12.0", + # Versioned snapshot pinning support: https://github.com/bazel-contrib/rules_jvm_external/pull/1412 + "com.google.guava:guava:999.0.0-HEAD-jre-SNAPSHOT", + # Non-versioned snapshot pinning support: https://github.com/bazel-contrib/rules_jvm_external/pull/1412 + "org.seleniumhq.selenium:selenium-java:4.35.0-SNAPSHOT", ], generate_compat_repositories = True, maven_install_json = "//tests/custom_maven_install:regression_testing_gradle_install.json", @@ -395,6 +399,7 @@ maven_install( repositories = [ "https://repo1.maven.org/maven2", "https://maven.google.com", + "https://central.sonatype.com/repository/maven-snapshots", ], resolver = "gradle", ) diff --git a/private/extensions/download_pinned_deps.bzl b/private/extensions/download_pinned_deps.bzl index a64f321b0..f6951f234 100644 --- a/private/extensions/download_pinned_deps.bzl +++ b/private/extensions/download_pinned_deps.bzl @@ -37,7 +37,9 @@ def download_pinned_deps(mctx, artifacts, http_files, has_m2local): http_file( name = http_file_repository_name, - sha256 = artifact["sha256"], + # sha256 is optional: non-versioned snapshots may not have it + # See: https://github.com/bazel-contrib/rules_jvm_external/pull/1412 + sha256 = artifact.get("sha256"), urls = urls, # https://github.com/bazelbuild/rules_jvm_external/issues/1028 downloaded_file_path = "v1/%s" % artifact["file"] if artifact["file"] else artifact["file"], diff --git a/private/rules/coursier.bzl b/private/rules/coursier.bzl index 169df0751..3190d36f7 100644 --- a/private/rules/coursier.bzl +++ b/private/rules/coursier.bzl @@ -599,7 +599,9 @@ def _pinned_coursier_fetch_impl(repository_ctx): http_files.extend([ " http_file(", " name = \"%s\"," % http_file_repository_name, - " sha256 = \"%s\"," % artifact["sha256"], + # sha256 is optional: non-versioned snapshots may not have it + # See: https://github.com/bazel-contrib/rules_jvm_external/pull/1412 + " sha256 = %s," % repr(artifact.get("sha256", None)), # repository_ctx should point to external/$repository_ctx.name # The http_file should point to external/$http_file_repository_name # File-path is relative defined from http_file traveling to repository_ctx. diff --git a/private/rules/v2_lock_file.bzl b/private/rules/v2_lock_file.bzl index 5e5eaa0cf..b775486d9 100644 --- a/private/rules/v2_lock_file.bzl +++ b/private/rules/v2_lock_file.bzl @@ -48,10 +48,11 @@ def _compute_lock_file_hash(lock_file_contents): return hash(repr(to_hash)) def _to_m2_path(unpacked): - path = "{group}/{artifact}/{version}/{artifact}-{version}".format( + path = "{group}/{artifact}/{version}/{artifact}-{version_revision}".format( artifact = unpacked["artifact"], group = unpacked["group"].replace(".", "/"), version = unpacked["version"], + version_revision = unpacked.get("version_revision") or unpacked["version"] ) classifier = unpacked.get("classifier", "jar") @@ -138,6 +139,7 @@ def _get_artifacts(lock_file_contents): "group": parts[0], "artifact": parts[1], "version": data["version"], + "version_revision": data.get("version_revision"), } if len(parts) > 2: root_unpacked["packaging"] = parts[2] diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/Coordinates.java b/private/tools/java/com/github/bazelbuild/rules_jvm_external/Coordinates.java index c1f6ff5ce..42eb4485d 100644 --- a/private/tools/java/com/github/bazelbuild/rules_jvm_external/Coordinates.java +++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/Coordinates.java @@ -24,6 +24,7 @@ public class Coordinates implements Comparable { private final String groupId; private final String artifactId; private final String version; + private final String versionRevision; private final String classifier; private final String extension; @@ -59,16 +60,23 @@ public Coordinates(String coordinates) { classifier = "jar".equals(parts[3]) ? "" : parts[3]; version = parts[4]; } + this.versionRevision = null; } public Coordinates( String groupId, String artifactId, String extension, String classifier, String version) { + this(groupId, artifactId, extension, classifier, version, null); + } + + public Coordinates( + String groupId, String artifactId, String extension, String classifier, String version, String versionRevision) { this.groupId = Objects.requireNonNull(groupId, "Group ID"); this.artifactId = Objects.requireNonNull(artifactId, "Artifact ID"); this.extension = extension == null || extension.isEmpty() ? "jar" : extension; this.classifier = classifier == null || classifier.isEmpty() || "jar".equals(classifier) ? "" : classifier; this.version = version == null || version.isEmpty() ? "" : version; + this.versionRevision = versionRevision; } public String getGroupId() { @@ -88,21 +96,29 @@ public String getClassifier() { } public Coordinates setClassifier(String classifier) { - return new Coordinates(getGroupId(), getArtifactId(), getExtension(), classifier, getVersion()); + return new Coordinates(getGroupId(), getArtifactId(), getExtension(), classifier, getVersion(), getVersionRevision()); } public Coordinates setExtension(String extension) { - return new Coordinates(getGroupId(), getArtifactId(), extension, getClassifier(), getVersion()); + return new Coordinates(getGroupId(), getArtifactId(), extension, getClassifier(), getVersion(), getVersionRevision()); } public Coordinates setVersion(String version) { - return new Coordinates(getGroupId(), getArtifactId(), getExtension(), getClassifier(), version); + return new Coordinates(getGroupId(), getArtifactId(), getExtension(), getClassifier(), version, getVersionRevision()); + } + + public Coordinates setVersionRevision(String versionRevision) { + return new Coordinates(getGroupId(), getArtifactId(), getExtension(), getClassifier(), getVersion(), versionRevision); } public String getExtension() { return extension; } + public String getVersionRevision() { + return versionRevision; + } + public String asKey() { StringBuilder coords = new StringBuilder(); coords.append(groupId).append(":").append(artifactId); @@ -133,7 +149,7 @@ public String toRepoPath() { .append("/") .append(getArtifactId()) .append("-") - .append(getVersion()); + .append(isNullOrEmpty(getVersionRevision()) ? getVersion() : getVersionRevision()); String classifier = getClassifier(); @@ -178,6 +194,7 @@ public boolean equals(Object o) { return getGroupId().equals(that.getGroupId()) && getArtifactId().equals(that.getArtifactId()) && Objects.equals(getVersion(), that.getVersion()) + && Objects.equals(getVersionRevision(), that.getVersionRevision()) && Objects.equals(getClassifier(), that.getClassifier()) && Objects.equals(getExtension(), that.getExtension()); } @@ -185,7 +202,7 @@ && getArtifactId().equals(that.getArtifactId()) @Override public int hashCode() { return Objects.hash( - getGroupId(), getArtifactId(), getVersion(), getClassifier(), getExtension()); + getGroupId(), getArtifactId(), getVersion(), getVersionRevision(), getClassifier(), getExtension()); } private boolean isNullOrEmpty(String value) { diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java index 2417ae350..6e7ae5dbc 100644 --- a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java +++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java @@ -181,7 +181,8 @@ private ResolutionResult parseDependencies( gradleCoordinates.getArtifactId(), extension, classifier, - gradleCoordinates.getVersion()); + gradleCoordinates.getVersion(), + dependency.getVersionRevision()); addDependency(graph, coordinates, dependency, conflicts, requestedDeps, visited); // if there's a conflict and the conflicting version isn't one that's actually requested // then it's an actual conflict we want to report @@ -275,7 +276,8 @@ private void addDependency( childCoordinates.getArtifactId(), extension, childCoordinates.getClassifier(), - childCoordinates.getVersion()); + childCoordinates.getVersion(), + childInfo.getVersionRevision()); graph.addNode(child); graph.putEdge(parent, child); // if there's a conflict and the conflicting version isn't one that's actually requested diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/models/GradleResolvedDependency.java b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/models/GradleResolvedDependency.java index ca537d5b5..91ecd48c5 100644 --- a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/models/GradleResolvedDependency.java +++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/models/GradleResolvedDependency.java @@ -34,6 +34,10 @@ public interface GradleResolvedDependency { void setVersion(String version); + String getVersionRevision(); + + void setVersionRevision(String versionRevision); + Set getRequestedVersions(); void addRequestedVersion(String requestedVersion); diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/models/GradleResolvedDependencyImpl.java b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/models/GradleResolvedDependencyImpl.java index 95442856a..0764efe52 100644 --- a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/models/GradleResolvedDependencyImpl.java +++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/models/GradleResolvedDependencyImpl.java @@ -25,6 +25,7 @@ public class GradleResolvedDependencyImpl implements Serializable, GradleResolve private String group; private String name; private String version; + private String versionRevision; private Set requestedVersions; private boolean conflict; private List children; @@ -61,6 +62,14 @@ public void setVersion(String version) { this.version = version; } + public String getVersionRevision() { + return versionRevision; + } + + public void setVersionRevision(String versionRevision) { + this.versionRevision = versionRevision; + } + public Set getRequestedVersions() { return requestedVersions; } diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/GradleDependencyModelBuilder.java b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/GradleDependencyModelBuilder.java index 10cda7cc7..1f54d7c8f 100644 --- a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/GradleDependencyModelBuilder.java +++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/GradleDependencyModelBuilder.java @@ -269,6 +269,12 @@ private GradleResolvedDependency walkResolvedComponent( info.setGroup(component.getModuleVersion().getGroup()); info.setName(component.getModuleVersion().getName()); info.setVersion(component.getModuleVersion().getVersion()); + + // For versioned snapshot dependencies, extract the timestamped version + if (GradleSnapshotUtil.isVersionedSnapshot(component)) { + String snapshotId = GradleSnapshotUtil.extractSnapshotId(component); + info.setVersionRevision(snapshotId); + } } info.addRequestedVersion(info.getVersion()); // add a new version that may have been requested diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/GradleSnapshotUtil.java b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/GradleSnapshotUtil.java new file mode 100644 index 000000000..d567adc66 --- /dev/null +++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/GradleSnapshotUtil.java @@ -0,0 +1,58 @@ +// Copyright 2025 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.github.bazelbuild.rules_jvm_external.resolver.gradle.plugin; + +import java.util.regex.Pattern; +import org.gradle.api.artifacts.result.ResolvedComponentResult; + +/** Utility class for SNAPSHOT version detection in gradle dependencies. + * + * This class is inspired by the implementation details in the maven resolver + * See: https://github.com/apache/maven-resolver/blob/c9ee9e113f424ac41339ea25313ecceff946960b/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/AbstractArtifact.java#L45 + */ +final class GradleSnapshotUtil { + /* A regex to identify when a gradle ModuleComponentidentifer is a versioned snapshot (with timestamp) + * + * See: https://github.com/gradle/gradle/blob/1c1143f9b850f11cb6fef8f7b28405cb5ede45dc/platforms/software/dependency-management/src/main/java/org/gradle/api/internal/artifacts/repositories/resolver/MavenUniqueSnapshotComponentIdentifier.java#L55 + */ + private static final Pattern GRADLE_SNAPSHOT_WITH_TIMESTAMP = Pattern.compile("^.*SNAPSHOT:([0-9]{8}\\.[0-9]{6}-[0-9]+)$"); + + private GradleSnapshotUtil() { + // Utility class - prevent instantiation + } + + /** + * Determines if a component represents a versioned SNAPSHOT dependency + * that follows the gradle identifier convention. + * Example: com.google.guava:guava:999.0.0-HEAD-jre-SNAPSHOT:20250623.150948-114 + */ + static boolean isVersionedSnapshot(ResolvedComponentResult component) { + return GRADLE_SNAPSHOT_WITH_TIMESTAMP.matcher(component.getId().toString()).matches(); + } + + /** + * Extracts the timestamped version from a gradle versioned snapshot component. + * Example: for a component with version "999.0.0-HEAD-jre-SNAPSHOT" and identifier + * "com.google.guava:guava:999.0.0-HEAD-jre-SNAPSHOT:20250623.150948-114" + * returns "999.0.0-HEAD-jre-20250623.150948-114" + * See: https://github.com/gradle/gradle/blob/1c1143f9b850f11cb6fef8f7b28405cb5ede45dc/platforms/software/dependency-management/src/main/java/org/gradle/api/internal/artifacts/repositories/resolver/MavenUniqueSnapshotComponentIdentifier.java#L55 + */ + static String extractSnapshotId(ResolvedComponentResult component) { + String version = component.getModuleVersion().getVersion(); + String baseVersion = version.substring(0, version.indexOf("-SNAPSHOT")); + String timestamp = component.getId().toString().split(":")[3]; + return baseVersion + "-" + timestamp; + } +} diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/lockfile/V2LockFile.java b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/lockfile/V2LockFile.java index a85d9b7be..97e114b66 100644 --- a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/lockfile/V2LockFile.java +++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/lockfile/V2LockFile.java @@ -216,6 +216,11 @@ public Map render() { Map artifactValue = artifacts.computeIfAbsent(shortKey, k -> new TreeMap<>()); artifactValue.put("version", coords.getVersion()); + + // Add version_revision for reproducible builds when available + if (coords.getVersionRevision() != null && !coords.getVersionRevision().isEmpty()) { + artifactValue.put("version_revision", coords.getVersionRevision()); + } String classifier; if (coords.getClassifier() == null || coords.getClassifier().isEmpty()) { @@ -226,7 +231,15 @@ public Map render() { @SuppressWarnings("unchecked") Map shasums = (Map) artifactValue.computeIfAbsent("shasums", k -> new TreeMap<>()); - info.getSha256().ifPresent(sha -> shasums.put(classifier, sha)); + + // For non-versioned snapshots, their content can change any moment, so we need to avoid storing the SHA256 + boolean isNonVersionedSnapshot = coords.getVersion().endsWith("-SNAPSHOT") && coords.getVersionRevision() == null; + if (isNonVersionedSnapshot) { + // Classifier indicates the files associated to the dependency: store it even if the sha is not present + shasums.put(classifier, null); + } else { + info.getSha256().ifPresent(sha -> shasums.put(classifier, sha)); + } info.getRepositories() .forEach( diff --git a/tests/bazel_run_tests.sh b/tests/bazel_run_tests.sh index 200c8ece2..770848d3b 100755 --- a/tests/bazel_run_tests.sh +++ b/tests/bazel_run_tests.sh @@ -312,31 +312,43 @@ function test_when_both_pom_and_jar_artifact_are_dependencies_jar_artifact_is_pr function test_gradle_metadata_is_resolved_correctly_for_aar_artifact { # This artifact in maven_install only has gradle metadata, but it should then automatically resolve to the right aar artifact # and make it available - bazel query @regression_testing_gradle//:androidx_compose_foundation_foundation_layout_android >> "$TEST_LOG" 2>&1 + bazel query --output=label_kind @regression_testing_gradle//:androidx_compose_foundation_foundation_layout_android >> "$TEST_LOG" 2>&1 - expect_log "@regression_testing_gradle//:androidx_compose_foundation_foundation_layout_android" + expect_log "aar_import rule @regression_testing_gradle//:androidx_compose_foundation_foundation_layout_android" } function test_gradle_metadata_is_resolved_correctly_for_jvm_artifact { # This artifact in maven_install only has gradle metadata, but it should then automatically resolve to the right jvm artifact # and make it available - bazel query @regression_testing_gradle//:androidx_annotation_annotation_jvm >> "$TEST_LOG" 2>&1 + bazel query --output=label_kind @regression_testing_gradle//:androidx_annotation_annotation_jvm >> "$TEST_LOG" 2>&1 - expect_log "@regression_testing_gradle//:androidx_annotation_annotation_jvm" + expect_log "jvm_import rule @regression_testing_gradle//:androidx_annotation_annotation_jvm" # This is KMP artifact which is a transitive dependency # and the JAR for this coordinate will just be a dummy jar/placeholder (in some cases a klib file) # as gradle will use metadata to resolve the right one. # Regardless we'll want to pull this in because the actual artifacts will be its children # in the resolved graph with gradle - bazel query @regression_testing_gradle//:com_squareup_okio_okio >> "$TEST_LOG" 2>&1 + bazel query --output=label_kind @regression_testing_gradle//:com_squareup_okio_okio >> "$TEST_LOG" 2>&1 - expect_log "@regression_testing_gradle//:com_squareup_okio_okio" + expect_log "jvm_import rule @regression_testing_gradle//:com_squareup_okio_okio" # This is the actual JVM artifact which will have the jar for the KMP artifact - bazel query @regression_testing_gradle//:com_squareup_okio_okio_jvm >> "$TEST_LOG" 2>&1 + bazel query --output=label_kind @regression_testing_gradle//:com_squareup_okio_okio_jvm >> "$TEST_LOG" 2>&1 - expect_log "@regression_testing_gradle//:com_squareup_okio_okio_jvm" + expect_log "jvm_import rule @regression_testing_gradle//:com_squareup_okio_okio_jvm" +} + +function test_gradle_resolves_correctly_a_versioned_snapshot { + bazel query --output=label_kind @regression_testing_gradle//:com_google_guava_guava >> "$TEST_LOG" 2>&1 + + expect_log "jvm_import rule @regression_testing_gradle//:com_google_guava_guava" +} + +function test_gradle_resolves_correctly_a_non_versioned_snapshot { + bazel query --output=label_kind @regression_testing_gradle//:org_seleniumhq_selenium_selenium_java >> "$TEST_LOG" 2>&1 + + expect_log "jvm_import rule @regression_testing_gradle//:org_seleniumhq_selenium_selenium_java" } function test_gradle_versions_catalog { @@ -367,8 +379,10 @@ TESTS=( "test_transitive_dependency_with_type_of_pom" "test_when_both_pom_and_jar_artifact_are_available_jar_artifact_is_present" "test_when_both_pom_and_jar_artifact_are_dependencies_jar_artifact_is_present" - # "test_gradle_metadata_is_resolved_correctly_for_aar_artifact" + "test_gradle_metadata_is_resolved_correctly_for_aar_artifact" "test_gradle_metadata_is_resolved_correctly_for_jvm_artifact" + "test_gradle_resolves_correctly_a_versioned_snapshot" + "test_gradle_resolves_correctly_a_non_versioned_snapshot" "test_gradle_versions_catalog" ) diff --git a/tests/custom_maven_install/regression_testing_gradle_install.json b/tests/custom_maven_install/regression_testing_gradle_install.json index 44abf4a8e..58f12e931 100644 --- a/tests/custom_maven_install/regression_testing_gradle_install.json +++ b/tests/custom_maven_install/regression_testing_gradle_install.json @@ -1,7 +1,7 @@ { "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", - "__INPUT_ARTIFACTS_HASH": -1648244252, - "__RESOLVED_ARTIFACTS_HASH": -1940227237, + "__INPUT_ARTIFACTS_HASH": -1306669055, + "__RESOLVED_ARTIFACTS_HASH": -1732170593, "artifacts": { "androidx.activity:activity-ktx:aar": { "shasums": { @@ -345,11 +345,42 @@ }, "version": "1.1.1" }, + "com.google.auto.service:auto-service-annotations": { + "shasums": { + "jar": "16a76dd00a2650568447f5d6e3a9e2c809d9a42367d56b45215cfb89731f4d24" + }, + "version": "1.1.1" + }, + "com.google.errorprone:error_prone_annotations": { + "shasums": { + "jar": "f282a6488838986b8033bd51888928cff6a59c1050426476553ed2622b89e510" + }, + "version": "2.42.0" + }, + "com.google.guava:failureaccess": { + "shasums": { + "jar": "cbfc3906b19b8f55dd7cfd6dfe0aa4532e834250d7f080bd8d211a3e246b59cb" + }, + "version": "1.0.3" + }, + "com.google.guava:guava": { + "shasums": { + "jar": "0115de682b8433abe23813bc4784ee9af69fcc4b29bbc2fa36f6a5d222a05b75" + }, + "version": "999.0.0-HEAD-jre-SNAPSHOT", + "version_revision": "999.0.0-HEAD-jre-20250930.222312-91" + }, "com.google.guava:listenablefuture": { "shasums": { - "jar": "e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069" + "jar": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99" + }, + "version": "9999.0-empty-to-avoid-conflict-with-guava" + }, + "com.google.j2objc:j2objc-annotations": { + "shasums": { + "jar": "84d3a150518485f8140ea99b8a985656749629f6433c92b80c75b36aba3b099b" }, - "version": "1.0" + "version": "3.1" }, "com.squareup.okhttp3:okhttp": { "shasums": { @@ -369,6 +400,84 @@ }, "version": "3.6.0" }, + "io.opentelemetry:opentelemetry-api": { + "shasums": { + "jar": "9aec8dffc7abb12fc3c6157cbc32d489a27872b51784d88164ff33c750f42c3f" + }, + "version": "1.52.0" + }, + "io.opentelemetry:opentelemetry-common": { + "shasums": { + "jar": "e1d57f66a1b47496f3259390e746ecfa5d59bece36d0b050d3df40af7c9d828c" + }, + "version": "1.52.0" + }, + "io.opentelemetry:opentelemetry-context": { + "shasums": { + "jar": "8331dbbbaad12a9d8204e62fc1ca8088a0a55e2c4ee2e2a3569b2c12f9d157f1" + }, + "version": "1.52.0" + }, + "io.opentelemetry:opentelemetry-exporter-logging": { + "shasums": { + "jar": "95f63f01ac89a7f4283200f954cde0cd07fc76c3ad09e013d85e7447ef0dec1f" + }, + "version": "1.52.0" + }, + "io.opentelemetry:opentelemetry-sdk": { + "shasums": { + "jar": "0d46744a1819dab3497b8aa6f547747961d4da090c0f9656976cc5bb5439f868" + }, + "version": "1.52.0" + }, + "io.opentelemetry:opentelemetry-sdk-common": { + "shasums": { + "jar": "1688bbe9d1a3ac8df114b4d7664fc0958d2a744d850f7a8d524fc3a158614756" + }, + "version": "1.52.0" + }, + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure": { + "shasums": { + "jar": "63b6b0b5be43346ffc11af2f34be420e4ce8256ece281b933a7021acedb9ed88" + }, + "version": "1.52.0" + }, + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi": { + "shasums": { + "jar": "43f31566973ac92958cdc44e8f875e5bc2c0af4f40fb450a4e1bb27178ab2cf7" + }, + "version": "1.52.0" + }, + "io.opentelemetry:opentelemetry-sdk-logs": { + "shasums": { + "jar": "8f537c60bb068d7b8fe0e4abdd6ccbd2802c4fdde9f338f8db6f35c1970a5d23" + }, + "version": "1.52.0" + }, + "io.opentelemetry:opentelemetry-sdk-metrics": { + "shasums": { + "jar": "e702509ae1c741afb3e120471eaa019f8f89fbe28b077a43f7cc44e9de226142" + }, + "version": "1.52.0" + }, + "io.opentelemetry:opentelemetry-sdk-trace": { + "shasums": { + "jar": "10e634cc864b26926b89313b0afa5083f7477b5e00fd21e97ee5443c17fe7fed" + }, + "version": "1.52.0" + }, + "net.bytebuddy:byte-buddy": { + "shasums": { + "jar": "d26382a839cb26d5c62a0b0f04715bcef55a531f96ac6ce40de452a1c0539e70" + }, + "version": "1.17.6" + }, + "org.apache.commons:commons-exec": { + "shasums": { + "jar": "d52d35801747902527826cca30734034e65baa7f36836cc0facf67131025f703" + }, + "version": "1.5.0" + }, "org.jetbrains.kotlin:kotlin-stdlib": { "shasums": { "jar": "55e989c512b80907799f854309f3bc7782c5b3d13932442d0379d5c472711504" @@ -422,6 +531,114 @@ "jar": "ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478" }, "version": "13.0" + }, + "org.jspecify:jspecify": { + "shasums": { + "jar": "1fad6e6be7557781e4d33729d49ae1cdc8fdda6fe477bb0cc68ce351eafdfbab" + }, + "version": "1.0.0" + }, + "org.seleniumhq.selenium:selenium-api": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-chrome-driver": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-chromium-driver": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-devtools-v136": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-devtools-v137": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-devtools-v138": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-edge-driver": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-firefox-driver": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-http": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-ie-driver": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-java": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-json": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-manager": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-os": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-remote-driver": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-safari-driver": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" + }, + "org.seleniumhq.selenium:selenium-support": { + "shasums": { + "jar": null + }, + "version": "4.35.0-SNAPSHOT" } }, "conflict_resolution": { @@ -668,8 +885,7 @@ "org.jetbrains.kotlinx:kotlinx-coroutines-core" ], "androidx.concurrent:concurrent-futures": [ - "androidx.annotation:annotation", - "com.google.guava:listenablefuture" + "androidx.annotation:annotation" ], "androidx.core:core-ktx:aar": [ "androidx.annotation:annotation", @@ -820,8 +1036,7 @@ "androidx.profileinstaller:profileinstaller:aar": [ "androidx.annotation:annotation", "androidx.concurrent:concurrent-futures", - "androidx.startup:startup-runtime:aar", - "com.google.guava:listenablefuture" + "androidx.startup:startup-runtime:aar" ], "androidx.savedstate:savedstate-ktx:aar": [ "androidx.savedstate:savedstate:aar", @@ -845,6 +1060,13 @@ "androidx.annotation:annotation", "androidx.collection:collection" ], + "com.google.guava:guava": [ + "com.google.errorprone:error_prone_annotations", + "com.google.guava:failureaccess", + "com.google.guava:listenablefuture", + "com.google.j2objc:j2objc-annotations", + "org.jspecify:jspecify" + ], "com.squareup.okhttp3:okhttp": [ "com.squareup.okio:okio", "org.jetbrains.kotlin:kotlin-stdlib-jdk8" @@ -856,6 +1078,45 @@ "org.jetbrains.kotlin:kotlin-stdlib-common", "org.jetbrains.kotlin:kotlin-stdlib-jdk8" ], + "io.opentelemetry:opentelemetry-api": [ + "io.opentelemetry:opentelemetry-context" + ], + "io.opentelemetry:opentelemetry-context": [ + "io.opentelemetry:opentelemetry-common" + ], + "io.opentelemetry:opentelemetry-exporter-logging": [ + "io.opentelemetry:opentelemetry-sdk", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi" + ], + "io.opentelemetry:opentelemetry-sdk": [ + "io.opentelemetry:opentelemetry-api", + "io.opentelemetry:opentelemetry-sdk-common", + "io.opentelemetry:opentelemetry-sdk-logs", + "io.opentelemetry:opentelemetry-sdk-metrics", + "io.opentelemetry:opentelemetry-sdk-trace" + ], + "io.opentelemetry:opentelemetry-sdk-common": [ + "io.opentelemetry:opentelemetry-api" + ], + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure": [ + "io.opentelemetry:opentelemetry-sdk", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi" + ], + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi": [ + "io.opentelemetry:opentelemetry-sdk" + ], + "io.opentelemetry:opentelemetry-sdk-logs": [ + "io.opentelemetry:opentelemetry-api", + "io.opentelemetry:opentelemetry-sdk-common" + ], + "io.opentelemetry:opentelemetry-sdk-metrics": [ + "io.opentelemetry:opentelemetry-api", + "io.opentelemetry:opentelemetry-sdk-common" + ], + "io.opentelemetry:opentelemetry-sdk-trace": [ + "io.opentelemetry:opentelemetry-api", + "io.opentelemetry:opentelemetry-sdk-common" + ], "org.jetbrains.kotlin:kotlin-stdlib": [ "org.jetbrains.kotlin:kotlin-stdlib-common", "org.jetbrains:annotations" @@ -882,6 +1143,129 @@ "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": [ "org.jetbrains.kotlin:kotlin-stdlib-common", "org.jetbrains.kotlinx:kotlinx-coroutines-bom" + ], + "org.seleniumhq.selenium:selenium-api": [ + "org.jspecify:jspecify" + ], + "org.seleniumhq.selenium:selenium-chrome-driver": [ + "com.google.auto.service:auto-service-annotations", + "org.jspecify:jspecify", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-chromium-driver", + "org.seleniumhq.selenium:selenium-json", + "org.seleniumhq.selenium:selenium-manager", + "org.seleniumhq.selenium:selenium-remote-driver" + ], + "org.seleniumhq.selenium:selenium-chromium-driver": [ + "com.google.auto.service:auto-service-annotations", + "org.seleniumhq.selenium:selenium-json", + "org.seleniumhq.selenium:selenium-remote-driver" + ], + "org.seleniumhq.selenium:selenium-devtools-v136": [ + "com.google.auto.service:auto-service-annotations", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-json", + "org.seleniumhq.selenium:selenium-remote-driver" + ], + "org.seleniumhq.selenium:selenium-devtools-v137": [ + "com.google.auto.service:auto-service-annotations", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-json", + "org.seleniumhq.selenium:selenium-remote-driver" + ], + "org.seleniumhq.selenium:selenium-devtools-v138": [ + "com.google.auto.service:auto-service-annotations", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-json", + "org.seleniumhq.selenium:selenium-remote-driver" + ], + "org.seleniumhq.selenium:selenium-edge-driver": [ + "com.google.auto.service:auto-service-annotations", + "org.jspecify:jspecify", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-chromium-driver", + "org.seleniumhq.selenium:selenium-manager", + "org.seleniumhq.selenium:selenium-remote-driver" + ], + "org.seleniumhq.selenium:selenium-firefox-driver": [ + "com.google.auto.service:auto-service-annotations", + "org.jspecify:jspecify", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-http", + "org.seleniumhq.selenium:selenium-json", + "org.seleniumhq.selenium:selenium-manager", + "org.seleniumhq.selenium:selenium-remote-driver" + ], + "org.seleniumhq.selenium:selenium-http": [ + "com.google.auto.service:auto-service-annotations", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-json" + ], + "org.seleniumhq.selenium:selenium-ie-driver": [ + "com.google.auto.service:auto-service-annotations", + "org.jspecify:jspecify", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-manager", + "org.seleniumhq.selenium:selenium-remote-driver" + ], + "org.seleniumhq.selenium:selenium-java": [ + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-chrome-driver", + "org.seleniumhq.selenium:selenium-devtools-v136", + "org.seleniumhq.selenium:selenium-devtools-v137", + "org.seleniumhq.selenium:selenium-devtools-v138", + "org.seleniumhq.selenium:selenium-edge-driver", + "org.seleniumhq.selenium:selenium-firefox-driver", + "org.seleniumhq.selenium:selenium-ie-driver", + "org.seleniumhq.selenium:selenium-remote-driver", + "org.seleniumhq.selenium:selenium-safari-driver", + "org.seleniumhq.selenium:selenium-support" + ], + "org.seleniumhq.selenium:selenium-json": [ + "org.seleniumhq.selenium:selenium-api" + ], + "org.seleniumhq.selenium:selenium-manager": [ + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-json", + "org.seleniumhq.selenium:selenium-os" + ], + "org.seleniumhq.selenium:selenium-os": [ + "org.apache.commons:commons-exec", + "org.seleniumhq.selenium:selenium-api" + ], + "org.seleniumhq.selenium:selenium-remote-driver": [ + "com.google.auto.service:auto-service-annotations", + "com.google.guava:guava", + "io.opentelemetry:opentelemetry-api", + "io.opentelemetry:opentelemetry-context", + "io.opentelemetry:opentelemetry-exporter-logging", + "io.opentelemetry:opentelemetry-sdk", + "io.opentelemetry:opentelemetry-sdk-common", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi", + "io.opentelemetry:opentelemetry-sdk-trace", + "net.bytebuddy:byte-buddy", + "org.jspecify:jspecify", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-http", + "org.seleniumhq.selenium:selenium-json", + "org.seleniumhq.selenium:selenium-manager", + "org.seleniumhq.selenium:selenium-os" + ], + "org.seleniumhq.selenium:selenium-safari-driver": [ + "com.google.auto.service:auto-service-annotations", + "org.jspecify:jspecify", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-remote-driver" + ], + "org.seleniumhq.selenium:selenium-support": [ + "com.google.auto.service:auto-service-annotations", + "com.google.guava:guava", + "net.bytebuddy:byte-buddy", + "org.jspecify:jspecify", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-json", + "org.seleniumhq.selenium:selenium-remote-driver" ] }, "packages": { @@ -901,8 +1285,38 @@ "androidx.lifecycle:lifecycle-common": [ "androidx.lifecycle" ], - "com.google.guava:listenablefuture": [ - "com.google.common.util.concurrent" + "com.google.auto.service:auto-service-annotations": [ + "com.google.auto.service" + ], + "com.google.errorprone:error_prone_annotations": [ + "com.google.errorprone.annotations", + "com.google.errorprone.annotations.concurrent" + ], + "com.google.guava:failureaccess": [ + "com.google.common.util.concurrent.internal" + ], + "com.google.guava:guava": [ + "com.google.common.annotations", + "com.google.common.base", + "com.google.common.base.internal", + "com.google.common.cache", + "com.google.common.collect", + "com.google.common.escape", + "com.google.common.eventbus", + "com.google.common.graph", + "com.google.common.hash", + "com.google.common.html", + "com.google.common.io", + "com.google.common.math", + "com.google.common.net", + "com.google.common.primitives", + "com.google.common.reflect", + "com.google.common.util.concurrent", + "com.google.common.xml", + "com.google.thirdparty.publicsuffix" + ], + "com.google.j2objc:j2objc-annotations": [ + "com.google.j2objc.annotations" ], "com.squareup.okhttp3:okhttp": [ "okhttp3", @@ -927,6 +1341,135 @@ "okio", "okio.internal" ], + "io.opentelemetry:opentelemetry-api": [ + "io.opentelemetry.api", + "io.opentelemetry.api.baggage", + "io.opentelemetry.api.baggage.propagation", + "io.opentelemetry.api.common", + "io.opentelemetry.api.internal", + "io.opentelemetry.api.logs", + "io.opentelemetry.api.metrics", + "io.opentelemetry.api.trace", + "io.opentelemetry.api.trace.propagation", + "io.opentelemetry.api.trace.propagation.internal" + ], + "io.opentelemetry:opentelemetry-common": [ + "io.opentelemetry.common" + ], + "io.opentelemetry:opentelemetry-context": [ + "io.opentelemetry.context", + "io.opentelemetry.context.internal.shaded", + "io.opentelemetry.context.propagation", + "io.opentelemetry.context.propagation.internal" + ], + "io.opentelemetry:opentelemetry-exporter-logging": [ + "io.opentelemetry.exporter.logging", + "io.opentelemetry.exporter.logging.internal" + ], + "io.opentelemetry:opentelemetry-sdk": [ + "io.opentelemetry.sdk" + ], + "io.opentelemetry:opentelemetry-sdk-common": [ + "io.opentelemetry.sdk.common", + "io.opentelemetry.sdk.common.export", + "io.opentelemetry.sdk.common.internal", + "io.opentelemetry.sdk.internal", + "io.opentelemetry.sdk.resources" + ], + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure": [ + "io.opentelemetry.sdk.autoconfigure", + "io.opentelemetry.sdk.autoconfigure.internal" + ], + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi": [ + "io.opentelemetry.sdk.autoconfigure.spi", + "io.opentelemetry.sdk.autoconfigure.spi.internal", + "io.opentelemetry.sdk.autoconfigure.spi.logs", + "io.opentelemetry.sdk.autoconfigure.spi.metrics", + "io.opentelemetry.sdk.autoconfigure.spi.traces" + ], + "io.opentelemetry:opentelemetry-sdk-logs": [ + "io.opentelemetry.sdk.logs", + "io.opentelemetry.sdk.logs.data", + "io.opentelemetry.sdk.logs.data.internal", + "io.opentelemetry.sdk.logs.export", + "io.opentelemetry.sdk.logs.internal" + ], + "io.opentelemetry:opentelemetry-sdk-metrics": [ + "io.opentelemetry.sdk.metrics", + "io.opentelemetry.sdk.metrics.data", + "io.opentelemetry.sdk.metrics.export", + "io.opentelemetry.sdk.metrics.internal", + "io.opentelemetry.sdk.metrics.internal.aggregator", + "io.opentelemetry.sdk.metrics.internal.concurrent", + "io.opentelemetry.sdk.metrics.internal.data", + "io.opentelemetry.sdk.metrics.internal.debug", + "io.opentelemetry.sdk.metrics.internal.descriptor", + "io.opentelemetry.sdk.metrics.internal.exemplar", + "io.opentelemetry.sdk.metrics.internal.export", + "io.opentelemetry.sdk.metrics.internal.state", + "io.opentelemetry.sdk.metrics.internal.view" + ], + "io.opentelemetry:opentelemetry-sdk-trace": [ + "io.opentelemetry.internal.shaded.jctools.counters", + "io.opentelemetry.internal.shaded.jctools.maps", + "io.opentelemetry.internal.shaded.jctools.queues", + "io.opentelemetry.internal.shaded.jctools.queues.atomic", + "io.opentelemetry.internal.shaded.jctools.queues.atomic.unpadded", + "io.opentelemetry.internal.shaded.jctools.queues.unpadded", + "io.opentelemetry.internal.shaded.jctools.util", + "io.opentelemetry.sdk.trace", + "io.opentelemetry.sdk.trace.data", + "io.opentelemetry.sdk.trace.export", + "io.opentelemetry.sdk.trace.internal", + "io.opentelemetry.sdk.trace.samplers" + ], + "net.bytebuddy:byte-buddy": [ + "net.bytebuddy", + "net.bytebuddy.agent.builder", + "net.bytebuddy.asm", + "net.bytebuddy.build", + "net.bytebuddy.description", + "net.bytebuddy.description.annotation", + "net.bytebuddy.description.enumeration", + "net.bytebuddy.description.field", + "net.bytebuddy.description.method", + "net.bytebuddy.description.modifier", + "net.bytebuddy.description.type", + "net.bytebuddy.dynamic", + "net.bytebuddy.dynamic.loading", + "net.bytebuddy.dynamic.scaffold", + "net.bytebuddy.dynamic.scaffold.inline", + "net.bytebuddy.dynamic.scaffold.subclass", + "net.bytebuddy.implementation", + "net.bytebuddy.implementation.attribute", + "net.bytebuddy.implementation.auxiliary", + "net.bytebuddy.implementation.bind", + "net.bytebuddy.implementation.bind.annotation", + "net.bytebuddy.implementation.bytecode", + "net.bytebuddy.implementation.bytecode.assign", + "net.bytebuddy.implementation.bytecode.assign.primitive", + "net.bytebuddy.implementation.bytecode.assign.reference", + "net.bytebuddy.implementation.bytecode.collection", + "net.bytebuddy.implementation.bytecode.constant", + "net.bytebuddy.implementation.bytecode.member", + "net.bytebuddy.jar.asm", + "net.bytebuddy.jar.asm.commons", + "net.bytebuddy.jar.asm.signature", + "net.bytebuddy.jar.asmjdkbridge", + "net.bytebuddy.matcher", + "net.bytebuddy.pool", + "net.bytebuddy.utility", + "net.bytebuddy.utility.dispatcher", + "net.bytebuddy.utility.nullability", + "net.bytebuddy.utility.privilege", + "net.bytebuddy.utility.visitor" + ], + "org.apache.commons:commons-exec": [ + "org.apache.commons.exec", + "org.apache.commons.exec.environment", + "org.apache.commons.exec.launcher", + "org.apache.commons.exec.util" + ], "org.jetbrains.kotlin:kotlin-stdlib": [ "kotlin", "kotlin.annotation", @@ -991,9 +1534,447 @@ "org.jetbrains:annotations": [ "org.intellij.lang.annotations", "org.jetbrains.annotations" + ], + "org.jspecify:jspecify": [ + "org.jspecify.annotations" + ], + "org.seleniumhq.selenium:selenium-api": [ + "org.openqa.selenium", + "org.openqa.selenium.federatedcredentialmanagement", + "org.openqa.selenium.interactions", + "org.openqa.selenium.internal", + "org.openqa.selenium.logging", + "org.openqa.selenium.logging.profiler", + "org.openqa.selenium.net", + "org.openqa.selenium.print", + "org.openqa.selenium.virtualauthenticator" + ], + "org.seleniumhq.selenium:selenium-chrome-driver": [ + "org.openqa.selenium.chrome" + ], + "org.seleniumhq.selenium:selenium-chromium-driver": [ + "org.openqa.selenium.chromium" + ], + "org.seleniumhq.selenium:selenium-devtools-v136": [ + "org.openqa.selenium.devtools.v136", + "org.openqa.selenium.devtools.v136.accessibility", + "org.openqa.selenium.devtools.v136.accessibility.model", + "org.openqa.selenium.devtools.v136.animation", + "org.openqa.selenium.devtools.v136.animation.model", + "org.openqa.selenium.devtools.v136.audits", + "org.openqa.selenium.devtools.v136.audits.model", + "org.openqa.selenium.devtools.v136.autofill", + "org.openqa.selenium.devtools.v136.autofill.model", + "org.openqa.selenium.devtools.v136.backgroundservice", + "org.openqa.selenium.devtools.v136.backgroundservice.model", + "org.openqa.selenium.devtools.v136.bluetoothemulation", + "org.openqa.selenium.devtools.v136.bluetoothemulation.model", + "org.openqa.selenium.devtools.v136.browser", + "org.openqa.selenium.devtools.v136.browser.model", + "org.openqa.selenium.devtools.v136.cachestorage", + "org.openqa.selenium.devtools.v136.cachestorage.model", + "org.openqa.selenium.devtools.v136.cast", + "org.openqa.selenium.devtools.v136.cast.model", + "org.openqa.selenium.devtools.v136.console", + "org.openqa.selenium.devtools.v136.console.model", + "org.openqa.selenium.devtools.v136.css", + "org.openqa.selenium.devtools.v136.css.model", + "org.openqa.selenium.devtools.v136.debugger", + "org.openqa.selenium.devtools.v136.debugger.model", + "org.openqa.selenium.devtools.v136.deviceaccess", + "org.openqa.selenium.devtools.v136.deviceaccess.model", + "org.openqa.selenium.devtools.v136.deviceorientation", + "org.openqa.selenium.devtools.v136.dom", + "org.openqa.selenium.devtools.v136.dom.model", + "org.openqa.selenium.devtools.v136.domdebugger", + "org.openqa.selenium.devtools.v136.domdebugger.model", + "org.openqa.selenium.devtools.v136.domsnapshot", + "org.openqa.selenium.devtools.v136.domsnapshot.model", + "org.openqa.selenium.devtools.v136.domstorage", + "org.openqa.selenium.devtools.v136.domstorage.model", + "org.openqa.selenium.devtools.v136.emulation", + "org.openqa.selenium.devtools.v136.emulation.model", + "org.openqa.selenium.devtools.v136.eventbreakpoints", + "org.openqa.selenium.devtools.v136.extensions", + "org.openqa.selenium.devtools.v136.extensions.model", + "org.openqa.selenium.devtools.v136.fedcm", + "org.openqa.selenium.devtools.v136.fedcm.model", + "org.openqa.selenium.devtools.v136.fetch", + "org.openqa.selenium.devtools.v136.fetch.model", + "org.openqa.selenium.devtools.v136.filesystem", + "org.openqa.selenium.devtools.v136.filesystem.model", + "org.openqa.selenium.devtools.v136.headlessexperimental", + "org.openqa.selenium.devtools.v136.headlessexperimental.model", + "org.openqa.selenium.devtools.v136.heapprofiler", + "org.openqa.selenium.devtools.v136.heapprofiler.model", + "org.openqa.selenium.devtools.v136.indexeddb", + "org.openqa.selenium.devtools.v136.indexeddb.model", + "org.openqa.selenium.devtools.v136.input", + "org.openqa.selenium.devtools.v136.input.model", + "org.openqa.selenium.devtools.v136.inspector", + "org.openqa.selenium.devtools.v136.io", + "org.openqa.selenium.devtools.v136.io.model", + "org.openqa.selenium.devtools.v136.layertree", + "org.openqa.selenium.devtools.v136.layertree.model", + "org.openqa.selenium.devtools.v136.log", + "org.openqa.selenium.devtools.v136.log.model", + "org.openqa.selenium.devtools.v136.media", + "org.openqa.selenium.devtools.v136.media.model", + "org.openqa.selenium.devtools.v136.memory", + "org.openqa.selenium.devtools.v136.memory.model", + "org.openqa.selenium.devtools.v136.network", + "org.openqa.selenium.devtools.v136.network.model", + "org.openqa.selenium.devtools.v136.overlay", + "org.openqa.selenium.devtools.v136.overlay.model", + "org.openqa.selenium.devtools.v136.page", + "org.openqa.selenium.devtools.v136.page.model", + "org.openqa.selenium.devtools.v136.performance", + "org.openqa.selenium.devtools.v136.performance.model", + "org.openqa.selenium.devtools.v136.performancetimeline", + "org.openqa.selenium.devtools.v136.performancetimeline.model", + "org.openqa.selenium.devtools.v136.preload", + "org.openqa.selenium.devtools.v136.preload.model", + "org.openqa.selenium.devtools.v136.profiler", + "org.openqa.selenium.devtools.v136.profiler.model", + "org.openqa.selenium.devtools.v136.pwa", + "org.openqa.selenium.devtools.v136.pwa.model", + "org.openqa.selenium.devtools.v136.runtime", + "org.openqa.selenium.devtools.v136.runtime.model", + "org.openqa.selenium.devtools.v136.schema", + "org.openqa.selenium.devtools.v136.schema.model", + "org.openqa.selenium.devtools.v136.security", + "org.openqa.selenium.devtools.v136.security.model", + "org.openqa.selenium.devtools.v136.serviceworker", + "org.openqa.selenium.devtools.v136.serviceworker.model", + "org.openqa.selenium.devtools.v136.storage", + "org.openqa.selenium.devtools.v136.storage.model", + "org.openqa.selenium.devtools.v136.systeminfo", + "org.openqa.selenium.devtools.v136.systeminfo.model", + "org.openqa.selenium.devtools.v136.target", + "org.openqa.selenium.devtools.v136.target.model", + "org.openqa.selenium.devtools.v136.tethering", + "org.openqa.selenium.devtools.v136.tethering.model", + "org.openqa.selenium.devtools.v136.tracing", + "org.openqa.selenium.devtools.v136.tracing.model", + "org.openqa.selenium.devtools.v136.webaudio", + "org.openqa.selenium.devtools.v136.webaudio.model", + "org.openqa.selenium.devtools.v136.webauthn", + "org.openqa.selenium.devtools.v136.webauthn.model" + ], + "org.seleniumhq.selenium:selenium-devtools-v137": [ + "org.openqa.selenium.devtools.v137", + "org.openqa.selenium.devtools.v137.accessibility", + "org.openqa.selenium.devtools.v137.accessibility.model", + "org.openqa.selenium.devtools.v137.animation", + "org.openqa.selenium.devtools.v137.animation.model", + "org.openqa.selenium.devtools.v137.audits", + "org.openqa.selenium.devtools.v137.audits.model", + "org.openqa.selenium.devtools.v137.autofill", + "org.openqa.selenium.devtools.v137.autofill.model", + "org.openqa.selenium.devtools.v137.backgroundservice", + "org.openqa.selenium.devtools.v137.backgroundservice.model", + "org.openqa.selenium.devtools.v137.bluetoothemulation", + "org.openqa.selenium.devtools.v137.bluetoothemulation.model", + "org.openqa.selenium.devtools.v137.browser", + "org.openqa.selenium.devtools.v137.browser.model", + "org.openqa.selenium.devtools.v137.cachestorage", + "org.openqa.selenium.devtools.v137.cachestorage.model", + "org.openqa.selenium.devtools.v137.cast", + "org.openqa.selenium.devtools.v137.cast.model", + "org.openqa.selenium.devtools.v137.console", + "org.openqa.selenium.devtools.v137.console.model", + "org.openqa.selenium.devtools.v137.css", + "org.openqa.selenium.devtools.v137.css.model", + "org.openqa.selenium.devtools.v137.debugger", + "org.openqa.selenium.devtools.v137.debugger.model", + "org.openqa.selenium.devtools.v137.deviceaccess", + "org.openqa.selenium.devtools.v137.deviceaccess.model", + "org.openqa.selenium.devtools.v137.deviceorientation", + "org.openqa.selenium.devtools.v137.dom", + "org.openqa.selenium.devtools.v137.dom.model", + "org.openqa.selenium.devtools.v137.domdebugger", + "org.openqa.selenium.devtools.v137.domdebugger.model", + "org.openqa.selenium.devtools.v137.domsnapshot", + "org.openqa.selenium.devtools.v137.domsnapshot.model", + "org.openqa.selenium.devtools.v137.domstorage", + "org.openqa.selenium.devtools.v137.domstorage.model", + "org.openqa.selenium.devtools.v137.emulation", + "org.openqa.selenium.devtools.v137.emulation.model", + "org.openqa.selenium.devtools.v137.eventbreakpoints", + "org.openqa.selenium.devtools.v137.extensions", + "org.openqa.selenium.devtools.v137.extensions.model", + "org.openqa.selenium.devtools.v137.fedcm", + "org.openqa.selenium.devtools.v137.fedcm.model", + "org.openqa.selenium.devtools.v137.fetch", + "org.openqa.selenium.devtools.v137.fetch.model", + "org.openqa.selenium.devtools.v137.filesystem", + "org.openqa.selenium.devtools.v137.filesystem.model", + "org.openqa.selenium.devtools.v137.headlessexperimental", + "org.openqa.selenium.devtools.v137.headlessexperimental.model", + "org.openqa.selenium.devtools.v137.heapprofiler", + "org.openqa.selenium.devtools.v137.heapprofiler.model", + "org.openqa.selenium.devtools.v137.indexeddb", + "org.openqa.selenium.devtools.v137.indexeddb.model", + "org.openqa.selenium.devtools.v137.input", + "org.openqa.selenium.devtools.v137.input.model", + "org.openqa.selenium.devtools.v137.inspector", + "org.openqa.selenium.devtools.v137.io", + "org.openqa.selenium.devtools.v137.io.model", + "org.openqa.selenium.devtools.v137.layertree", + "org.openqa.selenium.devtools.v137.layertree.model", + "org.openqa.selenium.devtools.v137.log", + "org.openqa.selenium.devtools.v137.log.model", + "org.openqa.selenium.devtools.v137.media", + "org.openqa.selenium.devtools.v137.media.model", + "org.openqa.selenium.devtools.v137.memory", + "org.openqa.selenium.devtools.v137.memory.model", + "org.openqa.selenium.devtools.v137.network", + "org.openqa.selenium.devtools.v137.network.model", + "org.openqa.selenium.devtools.v137.overlay", + "org.openqa.selenium.devtools.v137.overlay.model", + "org.openqa.selenium.devtools.v137.page", + "org.openqa.selenium.devtools.v137.page.model", + "org.openqa.selenium.devtools.v137.performance", + "org.openqa.selenium.devtools.v137.performance.model", + "org.openqa.selenium.devtools.v137.performancetimeline", + "org.openqa.selenium.devtools.v137.performancetimeline.model", + "org.openqa.selenium.devtools.v137.preload", + "org.openqa.selenium.devtools.v137.preload.model", + "org.openqa.selenium.devtools.v137.profiler", + "org.openqa.selenium.devtools.v137.profiler.model", + "org.openqa.selenium.devtools.v137.pwa", + "org.openqa.selenium.devtools.v137.pwa.model", + "org.openqa.selenium.devtools.v137.runtime", + "org.openqa.selenium.devtools.v137.runtime.model", + "org.openqa.selenium.devtools.v137.schema", + "org.openqa.selenium.devtools.v137.schema.model", + "org.openqa.selenium.devtools.v137.security", + "org.openqa.selenium.devtools.v137.security.model", + "org.openqa.selenium.devtools.v137.serviceworker", + "org.openqa.selenium.devtools.v137.serviceworker.model", + "org.openqa.selenium.devtools.v137.storage", + "org.openqa.selenium.devtools.v137.storage.model", + "org.openqa.selenium.devtools.v137.systeminfo", + "org.openqa.selenium.devtools.v137.systeminfo.model", + "org.openqa.selenium.devtools.v137.target", + "org.openqa.selenium.devtools.v137.target.model", + "org.openqa.selenium.devtools.v137.tethering", + "org.openqa.selenium.devtools.v137.tethering.model", + "org.openqa.selenium.devtools.v137.tracing", + "org.openqa.selenium.devtools.v137.tracing.model", + "org.openqa.selenium.devtools.v137.webaudio", + "org.openqa.selenium.devtools.v137.webaudio.model", + "org.openqa.selenium.devtools.v137.webauthn", + "org.openqa.selenium.devtools.v137.webauthn.model" + ], + "org.seleniumhq.selenium:selenium-devtools-v138": [ + "org.openqa.selenium.devtools.v138", + "org.openqa.selenium.devtools.v138.accessibility", + "org.openqa.selenium.devtools.v138.accessibility.model", + "org.openqa.selenium.devtools.v138.animation", + "org.openqa.selenium.devtools.v138.animation.model", + "org.openqa.selenium.devtools.v138.audits", + "org.openqa.selenium.devtools.v138.audits.model", + "org.openqa.selenium.devtools.v138.autofill", + "org.openqa.selenium.devtools.v138.autofill.model", + "org.openqa.selenium.devtools.v138.backgroundservice", + "org.openqa.selenium.devtools.v138.backgroundservice.model", + "org.openqa.selenium.devtools.v138.bluetoothemulation", + "org.openqa.selenium.devtools.v138.bluetoothemulation.model", + "org.openqa.selenium.devtools.v138.browser", + "org.openqa.selenium.devtools.v138.browser.model", + "org.openqa.selenium.devtools.v138.cachestorage", + "org.openqa.selenium.devtools.v138.cachestorage.model", + "org.openqa.selenium.devtools.v138.cast", + "org.openqa.selenium.devtools.v138.cast.model", + "org.openqa.selenium.devtools.v138.console", + "org.openqa.selenium.devtools.v138.console.model", + "org.openqa.selenium.devtools.v138.css", + "org.openqa.selenium.devtools.v138.css.model", + "org.openqa.selenium.devtools.v138.debugger", + "org.openqa.selenium.devtools.v138.debugger.model", + "org.openqa.selenium.devtools.v138.deviceaccess", + "org.openqa.selenium.devtools.v138.deviceaccess.model", + "org.openqa.selenium.devtools.v138.deviceorientation", + "org.openqa.selenium.devtools.v138.dom", + "org.openqa.selenium.devtools.v138.dom.model", + "org.openqa.selenium.devtools.v138.domdebugger", + "org.openqa.selenium.devtools.v138.domdebugger.model", + "org.openqa.selenium.devtools.v138.domsnapshot", + "org.openqa.selenium.devtools.v138.domsnapshot.model", + "org.openqa.selenium.devtools.v138.domstorage", + "org.openqa.selenium.devtools.v138.domstorage.model", + "org.openqa.selenium.devtools.v138.emulation", + "org.openqa.selenium.devtools.v138.emulation.model", + "org.openqa.selenium.devtools.v138.eventbreakpoints", + "org.openqa.selenium.devtools.v138.extensions", + "org.openqa.selenium.devtools.v138.extensions.model", + "org.openqa.selenium.devtools.v138.fedcm", + "org.openqa.selenium.devtools.v138.fedcm.model", + "org.openqa.selenium.devtools.v138.fetch", + "org.openqa.selenium.devtools.v138.fetch.model", + "org.openqa.selenium.devtools.v138.filesystem", + "org.openqa.selenium.devtools.v138.filesystem.model", + "org.openqa.selenium.devtools.v138.headlessexperimental", + "org.openqa.selenium.devtools.v138.headlessexperimental.model", + "org.openqa.selenium.devtools.v138.heapprofiler", + "org.openqa.selenium.devtools.v138.heapprofiler.model", + "org.openqa.selenium.devtools.v138.indexeddb", + "org.openqa.selenium.devtools.v138.indexeddb.model", + "org.openqa.selenium.devtools.v138.input", + "org.openqa.selenium.devtools.v138.input.model", + "org.openqa.selenium.devtools.v138.inspector", + "org.openqa.selenium.devtools.v138.io", + "org.openqa.selenium.devtools.v138.io.model", + "org.openqa.selenium.devtools.v138.layertree", + "org.openqa.selenium.devtools.v138.layertree.model", + "org.openqa.selenium.devtools.v138.log", + "org.openqa.selenium.devtools.v138.log.model", + "org.openqa.selenium.devtools.v138.media", + "org.openqa.selenium.devtools.v138.media.model", + "org.openqa.selenium.devtools.v138.memory", + "org.openqa.selenium.devtools.v138.memory.model", + "org.openqa.selenium.devtools.v138.network", + "org.openqa.selenium.devtools.v138.network.model", + "org.openqa.selenium.devtools.v138.overlay", + "org.openqa.selenium.devtools.v138.overlay.model", + "org.openqa.selenium.devtools.v138.page", + "org.openqa.selenium.devtools.v138.page.model", + "org.openqa.selenium.devtools.v138.performance", + "org.openqa.selenium.devtools.v138.performance.model", + "org.openqa.selenium.devtools.v138.performancetimeline", + "org.openqa.selenium.devtools.v138.performancetimeline.model", + "org.openqa.selenium.devtools.v138.preload", + "org.openqa.selenium.devtools.v138.preload.model", + "org.openqa.selenium.devtools.v138.profiler", + "org.openqa.selenium.devtools.v138.profiler.model", + "org.openqa.selenium.devtools.v138.pwa", + "org.openqa.selenium.devtools.v138.pwa.model", + "org.openqa.selenium.devtools.v138.runtime", + "org.openqa.selenium.devtools.v138.runtime.model", + "org.openqa.selenium.devtools.v138.schema", + "org.openqa.selenium.devtools.v138.schema.model", + "org.openqa.selenium.devtools.v138.security", + "org.openqa.selenium.devtools.v138.security.model", + "org.openqa.selenium.devtools.v138.serviceworker", + "org.openqa.selenium.devtools.v138.serviceworker.model", + "org.openqa.selenium.devtools.v138.storage", + "org.openqa.selenium.devtools.v138.storage.model", + "org.openqa.selenium.devtools.v138.systeminfo", + "org.openqa.selenium.devtools.v138.systeminfo.model", + "org.openqa.selenium.devtools.v138.target", + "org.openqa.selenium.devtools.v138.target.model", + "org.openqa.selenium.devtools.v138.tethering", + "org.openqa.selenium.devtools.v138.tethering.model", + "org.openqa.selenium.devtools.v138.tracing", + "org.openqa.selenium.devtools.v138.tracing.model", + "org.openqa.selenium.devtools.v138.webaudio", + "org.openqa.selenium.devtools.v138.webaudio.model", + "org.openqa.selenium.devtools.v138.webauthn", + "org.openqa.selenium.devtools.v138.webauthn.model" + ], + "org.seleniumhq.selenium:selenium-edge-driver": [ + "org.openqa.selenium.edge" + ], + "org.seleniumhq.selenium:selenium-firefox-driver": [ + "org.openqa.selenium.firefox" + ], + "org.seleniumhq.selenium:selenium-http": [ + "org.openqa.selenium.remote.http", + "org.openqa.selenium.remote.http.jdk" + ], + "org.seleniumhq.selenium:selenium-ie-driver": [ + "org.openqa.selenium.ie" + ], + "org.seleniumhq.selenium:selenium-json": [ + "org.openqa.selenium.json" + ], + "org.seleniumhq.selenium:selenium-manager": [ + "org.openqa.selenium.manager" + ], + "org.seleniumhq.selenium:selenium-os": [ + "org.openqa.selenium.io", + "org.openqa.selenium.os" + ], + "org.seleniumhq.selenium:selenium-remote-driver": [ + "org.openqa.selenium.bidi", + "org.openqa.selenium.bidi.browser", + "org.openqa.selenium.bidi.browsingcontext", + "org.openqa.selenium.bidi.emulation", + "org.openqa.selenium.bidi.log", + "org.openqa.selenium.bidi.module", + "org.openqa.selenium.bidi.network", + "org.openqa.selenium.bidi.permissions", + "org.openqa.selenium.bidi.script", + "org.openqa.selenium.bidi.storage", + "org.openqa.selenium.bidi.webextension", + "org.openqa.selenium.concurrent", + "org.openqa.selenium.devtools", + "org.openqa.selenium.devtools.events", + "org.openqa.selenium.devtools.idealized", + "org.openqa.selenium.devtools.idealized.browser.model", + "org.openqa.selenium.devtools.idealized.log", + "org.openqa.selenium.devtools.idealized.log.model", + "org.openqa.selenium.devtools.idealized.runtime.model", + "org.openqa.selenium.devtools.idealized.target", + "org.openqa.selenium.devtools.idealized.target.model", + "org.openqa.selenium.devtools.noop", + "org.openqa.selenium.remote", + "org.openqa.selenium.remote.codec", + "org.openqa.selenium.remote.codec.w3c", + "org.openqa.selenium.remote.locators", + "org.openqa.selenium.remote.service", + "org.openqa.selenium.remote.tracing", + "org.openqa.selenium.remote.tracing.empty", + "org.openqa.selenium.remote.tracing.opentelemetry", + "org.openqa.selenium.support.decorators" + ], + "org.seleniumhq.selenium:selenium-safari-driver": [ + "org.openqa.selenium.safari" + ], + "org.seleniumhq.selenium:selenium-support": [ + "org.openqa.selenium.support", + "org.openqa.selenium.support.events", + "org.openqa.selenium.support.locators", + "org.openqa.selenium.support.pagefactory", + "org.openqa.selenium.support.pagefactory.internal", + "org.openqa.selenium.support.ui" ] }, "repositories": { + "https://repo1.maven.org/maven2/": [ + "com.google.auto.service:auto-service-annotations", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:failureaccess", + "com.google.guava:listenablefuture", + "com.google.j2objc:j2objc-annotations", + "com.squareup.okhttp3:okhttp", + "com.squareup.okio:okio", + "com.squareup.okio:okio-jvm", + "io.opentelemetry:opentelemetry-api", + "io.opentelemetry:opentelemetry-common", + "io.opentelemetry:opentelemetry-context", + "io.opentelemetry:opentelemetry-exporter-logging", + "io.opentelemetry:opentelemetry-sdk", + "io.opentelemetry:opentelemetry-sdk-common", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi", + "io.opentelemetry:opentelemetry-sdk-logs", + "io.opentelemetry:opentelemetry-sdk-metrics", + "io.opentelemetry:opentelemetry-sdk-trace", + "net.bytebuddy:byte-buddy", + "org.apache.commons:commons-exec", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.jetbrains.kotlinx:kotlinx-coroutines-android", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains:annotations", + "org.jspecify:jspecify" + ], "https://maven.google.com/": [ "androidx.activity:activity-ktx:aar", "androidx.activity:activity:aar", @@ -1053,23 +2034,52 @@ "androidx.tracing:tracing:aar", "androidx.versionedparcelable:versionedparcelable:aar" ], - "https://repo1.maven.org/maven2/": [ - "com.google.guava:listenablefuture", - "com.squareup.okhttp3:okhttp", - "com.squareup.okio:okio", - "com.squareup.okio:okio-jvm", - "org.jetbrains.kotlin:kotlin-stdlib", - "org.jetbrains.kotlin:kotlin-stdlib-common", - "org.jetbrains.kotlin:kotlin-stdlib-jdk7", - "org.jetbrains.kotlin:kotlin-stdlib-jdk8", - "org.jetbrains.kotlinx:kotlinx-coroutines-android", - "org.jetbrains.kotlinx:kotlinx-coroutines-bom", - "org.jetbrains.kotlinx:kotlinx-coroutines-core", - "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", - "org.jetbrains:annotations" + "https://central.sonatype.com/repository/maven-snapshots/": [ + "com.google.guava:guava", + "org.seleniumhq.selenium:selenium-api", + "org.seleniumhq.selenium:selenium-chrome-driver", + "org.seleniumhq.selenium:selenium-chromium-driver", + "org.seleniumhq.selenium:selenium-devtools-v136", + "org.seleniumhq.selenium:selenium-devtools-v137", + "org.seleniumhq.selenium:selenium-devtools-v138", + "org.seleniumhq.selenium:selenium-edge-driver", + "org.seleniumhq.selenium:selenium-firefox-driver", + "org.seleniumhq.selenium:selenium-http", + "org.seleniumhq.selenium:selenium-ie-driver", + "org.seleniumhq.selenium:selenium-java", + "org.seleniumhq.selenium:selenium-json", + "org.seleniumhq.selenium:selenium-manager", + "org.seleniumhq.selenium:selenium-os", + "org.seleniumhq.selenium:selenium-remote-driver", + "org.seleniumhq.selenium:selenium-safari-driver", + "org.seleniumhq.selenium:selenium-support" ] }, "services": { + "io.opentelemetry:opentelemetry-exporter-logging": { + "io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider": [ + "io.opentelemetry.exporter.logging.internal.ConsoleLogRecordExporterComponentProvider", + "io.opentelemetry.exporter.logging.internal.ConsoleMetricExporterComponentProvider", + "io.opentelemetry.exporter.logging.internal.ConsoleSpanExporterComponentProvider" + ], + "io.opentelemetry.sdk.autoconfigure.spi.logs.ConfigurableLogRecordExporterProvider": [ + "io.opentelemetry.exporter.logging.internal.ConsoleLogRecordExporterProvider", + "io.opentelemetry.exporter.logging.internal.LoggingLogRecordExporterProvider" + ], + "io.opentelemetry.sdk.autoconfigure.spi.metrics.ConfigurableMetricExporterProvider": [ + "io.opentelemetry.exporter.logging.internal.ConsoleMetricExporterProvider", + "io.opentelemetry.exporter.logging.internal.LoggingMetricExporterProvider" + ], + "io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSpanExporterProvider": [ + "io.opentelemetry.exporter.logging.internal.ConsoleSpanExporterProvider", + "io.opentelemetry.exporter.logging.internal.LoggingSpanExporterProvider" + ] + }, + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure": { + "io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider": [ + "io.opentelemetry.sdk.autoconfigure.EnvironmentResourceProvider" + ] + }, "org.jetbrains.kotlinx:kotlinx-coroutines-android": { "kotlinx.coroutines.CoroutineExceptionHandler": [ "kotlinx.coroutines.android.AndroidExceptionPreHandler" @@ -1077,6 +2087,125 @@ "kotlinx.coroutines.internal.MainDispatcherFactory": [ "kotlinx.coroutines.android.AndroidDispatcherFactory" ] + }, + "org.seleniumhq.selenium:selenium-chrome-driver": { + "org.openqa.selenium.WebDriverInfo": [ + "org.openqa.selenium.chrome.ChromeDriverInfo" + ], + "org.openqa.selenium.remote.AdditionalHttpCommands": [ + "org.openqa.selenium.chrome.AddHasCasting", + "org.openqa.selenium.chrome.AddHasCdp" + ], + "org.openqa.selenium.remote.AugmenterProvider": [ + "org.openqa.selenium.chrome.AddHasCasting", + "org.openqa.selenium.chrome.AddHasCdp" + ], + "org.openqa.selenium.remote.service.DriverService$Builder": [ + "org.openqa.selenium.chrome.ChromeDriverService$Builder" + ] + }, + "org.seleniumhq.selenium:selenium-chromium-driver": { + "org.openqa.selenium.remote.AdditionalHttpCommands": [ + "org.openqa.selenium.chromium.AddHasLaunchApp", + "org.openqa.selenium.chromium.AddHasNetworkConditions", + "org.openqa.selenium.chromium.AddHasPermissions" + ], + "org.openqa.selenium.remote.AugmenterProvider": [ + "org.openqa.selenium.chromium.AddHasLaunchApp", + "org.openqa.selenium.chromium.AddHasNetworkConditions", + "org.openqa.selenium.chromium.AddHasPermissions" + ] + }, + "org.seleniumhq.selenium:selenium-devtools-v136": { + "org.openqa.selenium.devtools.CdpInfo": [ + "org.openqa.selenium.devtools.v136.v136CdpInfo" + ] + }, + "org.seleniumhq.selenium:selenium-devtools-v137": { + "org.openqa.selenium.devtools.CdpInfo": [ + "org.openqa.selenium.devtools.v137.v137CdpInfo" + ] + }, + "org.seleniumhq.selenium:selenium-devtools-v138": { + "org.openqa.selenium.devtools.CdpInfo": [ + "org.openqa.selenium.devtools.v138.v138CdpInfo" + ] + }, + "org.seleniumhq.selenium:selenium-edge-driver": { + "org.openqa.selenium.WebDriverInfo": [ + "org.openqa.selenium.edge.EdgeDriverInfo" + ], + "org.openqa.selenium.remote.AdditionalHttpCommands": [ + "org.openqa.selenium.edge.AddHasCasting", + "org.openqa.selenium.edge.AddHasCdp" + ], + "org.openqa.selenium.remote.AugmenterProvider": [ + "org.openqa.selenium.edge.AddHasCasting", + "org.openqa.selenium.edge.AddHasCdp" + ], + "org.openqa.selenium.remote.service.DriverService$Builder": [ + "org.openqa.selenium.edge.EdgeDriverService$Builder" + ] + }, + "org.seleniumhq.selenium:selenium-firefox-driver": { + "org.openqa.selenium.WebDriverInfo": [ + "org.openqa.selenium.firefox.GeckoDriverInfo" + ], + "org.openqa.selenium.remote.AdditionalHttpCommands": [ + "org.openqa.selenium.firefox.AddHasContext", + "org.openqa.selenium.firefox.AddHasExtensions", + "org.openqa.selenium.firefox.AddHasFullPageScreenshot" + ], + "org.openqa.selenium.remote.AugmenterProvider": [ + "org.openqa.selenium.firefox.AddHasContext", + "org.openqa.selenium.firefox.AddHasExtensions", + "org.openqa.selenium.firefox.AddHasFullPageScreenshot" + ], + "org.openqa.selenium.remote.service.DriverService$Builder": [ + "org.openqa.selenium.firefox.GeckoDriverService$Builder" + ] + }, + "org.seleniumhq.selenium:selenium-http": { + "org.openqa.selenium.remote.http.HttpClient$Factory": [ + "org.openqa.selenium.remote.http.jdk.JdkHttpClient$Factory" + ] + }, + "org.seleniumhq.selenium:selenium-ie-driver": { + "org.openqa.selenium.WebDriverInfo": [ + "org.openqa.selenium.ie.InternetExplorerDriverInfo" + ], + "org.openqa.selenium.remote.service.DriverService$Builder": [ + "org.openqa.selenium.ie.InternetExplorerDriverService$Builder" + ] + }, + "org.seleniumhq.selenium:selenium-remote-driver": { + "org.openqa.selenium.remote.AugmenterProvider": [ + "org.openqa.selenium.bidi.BiDiProvider", + "org.openqa.selenium.devtools.DevToolsProvider" + ] + }, + "org.seleniumhq.selenium:selenium-safari-driver": { + "org.openqa.selenium.WebDriverInfo": [ + "org.openqa.selenium.safari.SafariDriverInfo", + "org.openqa.selenium.safari.SafariTechPreviewDriverInfo" + ], + "org.openqa.selenium.remote.AdditionalHttpCommands": [ + "org.openqa.selenium.safari.AddHasDebugger", + "org.openqa.selenium.safari.AddHasPermissions" + ], + "org.openqa.selenium.remote.AugmenterProvider": [ + "org.openqa.selenium.safari.AddHasDebugger", + "org.openqa.selenium.safari.AddHasPermissions" + ], + "org.openqa.selenium.remote.service.DriverService$Builder": [ + "org.openqa.selenium.safari.SafariDriverService$Builder", + "org.openqa.selenium.safari.SafariTechPreviewDriverService$Builder" + ] + }, + "org.seleniumhq.selenium:selenium-support": { + "org.openqa.selenium.remote.locators.CustomLocator": [ + "org.openqa.selenium.support.locators.RelativeLocatorServerSide" + ] } }, "skipped": [