diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c789d6aa86426..571d0930d2258 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,7 +40,7 @@ jobs: id: check-targets run: ./scripts/github-actions/check-bazel-targets.sh env: - COMMIT_RANGE: ${{ github.event.before }}..${{ github.event.after }} + COMMIT_RANGE: ${{ github.event.pull_request.base.sha || github.event.before }}..${{ github.sha }} dotnet: name: .NET diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index 4e09d67324918..8d7bd8cb2d4b6 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -14,7 +14,7 @@ jobs: action: runs-on: ubuntu-latest steps: - - uses: dessant/lock-threads@v2 + - uses: dessant/lock-threads@v4 with: process-only: 'issues' issue-lock-inactive-days: '30' diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 555bc3b15a467..e17e4e52b6ca3 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -15,7 +15,7 @@ jobs: pull-requests: write # for actions/stale to close stale PRs runs-on: ubuntu-latest steps: - - uses: actions/stale@v4 + - uses: actions/stale@v7 with: stale-issue-message: 'This issue is stale because it has been open 280 days with no activity. Remove stale label or comment or this will be closed in 14 days.' close-issue-message: 'This issue was closed because it has been stalled for 14 days with no activity.' diff --git a/README.md b/README.md index d5694b3687eee..9b335da310d16 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Selenium -[![CI](https://github.com/SeleniumHQ/selenium/actions/workflows/ci.yml/badge.svg?branch=trunk)](https://github.com/SeleniumHQ/selenium/actions/workflows/ci.yml) +[![CI](https://github.com/SeleniumHQ/selenium/actions/workflows/ci.yml/badge.svg?branch=trunk&event=schedule)](https://github.com/SeleniumHQ/selenium/actions/workflows/ci.yml) Selenium @@ -39,12 +39,10 @@ before submitting your pull requests. * [Bazelisk](https://github.com/bazelbuild/bazelisk), a Bazel wrapper that automatically downloads the version of Bazel specified in `.bazelversion` file and transparently passes through all command-line arguments to the real Bazel binary. -* The latest version of the [Java 11 OpenJDK](https://openjdk.java.net/) +* Java JDK version 11 or greater (e.g., [Java 11 OpenJDK](https://openjdk.java.net/)) * `java` and `jar` on the `$PATH` (make sure you use `java` executable from JDK but not JRE). * To test this, try running the command `javac`. This command won't exist if you only have the JRE installed. If you're met with a list of command-line options, you're referencing the JDK properly. -* [Python 3.7+](https://www.python.org/downloads/) and `python` on the `PATH` -* [The tox automation project](http://tox.readthedocs.org/) for Python: `pip install tox` * macOS users: * Install the latest version of Xcode including the command-line tools. This command should work `xcode-select --install` * Apple Silicon Macs should add `build --host_platform=//:rosetta` to their `.bazelrc.local` file. We are working @@ -66,7 +64,7 @@ If you plan to compile the [IE driver](https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver), you also need: -* [Visual Studio 2008](https://www.visualstudio.com/) +* [Visual Studio 2022](https://www.visualstudio.com/) * 32 and 64-bit cross compilers The build will work on any platform, but the tests for IE will be diff --git a/Rakefile b/Rakefile index 35b213face0d7..c526e61db4ceb 100644 --- a/Rakefile +++ b/Rakefile @@ -51,11 +51,11 @@ $DEBUG = true if ENV['debug'] == 'true' verbose($DEBUG) def release_version - '4.7' + '4.8' end def version - "#{release_version}.2" + "#{release_version}.0" end # The build system used by webdriver is layered on top of rake, and we call it diff --git a/WORKSPACE b/WORKSPACE index 0f6ad82a166d6..f205efadda63c 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -229,12 +229,6 @@ rules_closure_toolchains() http_archive( name = "rules_pkg", - patch_args = [ - "-p1", - ], - patches = [ - "//py:rules_pkg_tree.patch", - ], sha256 = "eea0f59c28a9241156a47d7a8e32db9122f3d50b505fae0f33de6ce4d9b61834", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.8.0/rules_pkg-0.8.0.tar.gz", diff --git a/cpp/iedriver/IEDriver.rc b/cpp/iedriver/IEDriver.rc index 6cc969a593b53..0f8df4b3a7913 100644 --- a/cpp/iedriver/IEDriver.rc +++ b/cpp/iedriver/IEDriver.rc @@ -50,8 +50,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 4,7,0,0 - PRODUCTVERSION 4,7,0,0 + FILEVERSION 4,8,0,0 + PRODUCTVERSION 4,8,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -68,12 +68,12 @@ BEGIN BEGIN VALUE "CompanyName", "Software Freedom Conservancy" VALUE "FileDescription", "Driver library for the IE driver" - VALUE "FileVersion", "4.7.0.0" + VALUE "FileVersion", "4.8.0.0" VALUE "InternalName", "IEDriver.dll" VALUE "LegalCopyright", "Copyright (C) 2022" VALUE "OriginalFilename", "IEDriver.dll" VALUE "ProductName", "Selenium WebDriver" - VALUE "ProductVersion", "4.7.0.0" + VALUE "ProductVersion", "4.8.0.0" END END BLOCK "VarFileInfo" diff --git a/cpp/iedriverserver/CHANGELOG b/cpp/iedriverserver/CHANGELOG index 7f98065c7004f..eeacb647c6478 100644 --- a/cpp/iedriverserver/CHANGELOG +++ b/cpp/iedriverserver/CHANGELOG @@ -9,6 +9,10 @@ available via the project downloads page. Changes in "revision" field indicate private releases checked into the prebuilts directory of the source tree, but not made generally available on the downloads page. +v4.8.0.0 +======== +* Remove unnecessary executable permission bit from several files (#11502) + v4.7.0.0 ======== * Ignore Zoom Level for Edge IE Mode (#11055) diff --git a/cpp/iedriverserver/IEDriverServer.rc b/cpp/iedriverserver/IEDriverServer.rc index 37827066c4e8e..53bbd4a16a794 100644 --- a/cpp/iedriverserver/IEDriverServer.rc +++ b/cpp/iedriverserver/IEDriverServer.rc @@ -50,8 +50,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 4,7,0,0 - PRODUCTVERSION 4,7,0,0 + FILEVERSION 4,8,0,0 + PRODUCTVERSION 4,8,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -68,12 +68,12 @@ BEGIN BEGIN VALUE "CompanyName", "Software Freedom Conservancy" VALUE "FileDescription", "Command line server for the IE driver" - VALUE "FileVersion", "4.7.0.0" + VALUE "FileVersion", "4.8.0.0" VALUE "InternalName", "IEDriverServer.exe" VALUE "LegalCopyright", "Copyright (C) 2022" VALUE "OriginalFilename", "IEDriverServer.exe" VALUE "ProductName", "Selenium WebDriver" - VALUE "ProductVersion", "4.7.0.0" + VALUE "ProductVersion", "4.8.0.0" END END BLOCK "VarFileInfo" diff --git a/dotnet/CHANGELOG b/dotnet/CHANGELOG index 67ee302444632..c3b7d80907939 100644 --- a/dotnet/CHANGELOG +++ b/dotnet/CHANGELOG @@ -1,3 +1,9 @@ +v4.8.0 +====== +* Add CDP files for v109 and remove v106 +* Add comment with name of large JS executions (#11038) +* Extend invalid selenium manager process exit codes (#11361) + v4.7.0 ====== * Adding CDP files for v108 and removing v105 diff --git a/dotnet/selenium-dotnet-version.bzl b/dotnet/selenium-dotnet-version.bzl index db135584b6aee..8f9a82bd8ae4c 100644 --- a/dotnet/selenium-dotnet-version.bzl +++ b/dotnet/selenium-dotnet-version.bzl @@ -1,6 +1,6 @@ # BUILD FILE SYNTAX: STARLARK -SE_VERSION = "4.7.0" +SE_VERSION = "4.8.0" ASSEMBLY_VERSION = "4.0.0.0" SUPPORTED_NET_FRAMEWORKS = ["net45", "net46", "net47", "net48"] SUPPORTED_NET_STANDARD_VERSIONS = ["netstandard2.0", "netstandard2.1", "net5.0", "net6.0"] diff --git a/java/CHANGELOG b/java/CHANGELOG index 3d0d5ffb6c360..ac0b6f279f79d 100644 --- a/java/CHANGELOG +++ b/java/CHANGELOG @@ -1,16 +1,40 @@ +v4.8.0 +====== +* Supported CDP versions: 85, 107, 108, 109 +* Implement Edge and Chrome Driver Services using log level with ChromiumDriverLogLevel enum +* Deprecate Edge Driver Service using log level with String +* Deprecate Chrome Driver Service using log level with ChromeDriverLogLevel enum +* Deprecate setting Chrome Driver Service logging values in Chrome Options +* Close BiDi session on closing the last top-level browsing context +* Add withAllowedListIps() to ChromeDriverService +* Add comment with name of large JS executions (#11038) +* Allow Pointer and Wheel methods to accept Point object (#11477) +* Fix bug where options are not properly merged into capabilities (#11396) +* JDKHttpClient: Fix null pointer bug when responseBody is null (#11450) +* CDP: Ensure child session is created under browser session (#11475) +* Deprecate setHeadless for Chrome and Firefox Options (#11467) +* Grid: Remove translations of non-w3c locators (#11470) +* JDKHttpClient: Handle RQST with no Body [POST/PUT] (#11445) +* Fix bug with decorated webdriver not calling the listeners (#11438) +* BiDi: Add filter parameter to LogInspector methods +* BiDi: Rename 'onConsoleLog' to 'onConsoleEntry' +* CDP: Fix bug with console events returning modified args (#11435) +* Grid: Accommodate ability to specify sub-paths (#11271) +* Grid: fix bug with pulling image using zero content-length (#11342) + v4.7.2 ====== * Grid: Support file downloads on the node (#11277) * Change chromium service names from whitelisted to allowed (#11409) * Avoid closing CDP connection in browser implementation since that logic now sits in RemoteWebDriver (Fixes #11401) -* Fix bug where failing Selenium Manager method results in wrong error +* Fix bug where failing Selenium Manager method results in wrong error * Allow changing chromium driver log timestamp formatting * Allow ignoring chromedriver build checks using service builders * Add support for appendLog to msedgedriver service * Fix msedgedriver log level logic * Allow setting chromedriver log level from system properties * Fix chromedriver log level logic -* Remove deprecated Firefox capabilities +* Remove deprecated Firefox capabilities * Removing a few bits more of the magic that moves JWP to W3C * Removing deprecated SUPPORTS_ALERTS and SUPPORTS_SQL_DATABASE caps * Removing deprecated OVERLAPPING_CHECK_DISABLED cap diff --git a/java/maven_deps.bzl b/java/maven_deps.bzl index 35323306227d1..85d43e648378f 100644 --- a/java/maven_deps.bzl +++ b/java/maven_deps.bzl @@ -2,15 +2,15 @@ load("@rules_jvm_external//:defs.bzl", "maven_install") load("@rules_jvm_external//:specs.bzl", "maven") def selenium_java_deps(): - netty_version = "4.1.86.Final" - opentelemetry_version = "1.21.0" - junit_jupiter_version = "5.9.1" - junit_platform_version = "1.9.1" + netty_version = "4.1.87.Final" + opentelemetry_version = "1.22.0" + junit_jupiter_version = "5.9.2" + junit_platform_version = "1.9.2" maven_install( artifacts = [ "com.beust:jcommander:1.82", - "com.github.javaparser:javaparser-core:3.24.9", + "com.github.javaparser:javaparser-core:3.24.10", maven.artifact( group = "com.github.spotbugs", artifact = "spotbugs", @@ -19,14 +19,14 @@ def selenium_java_deps(): "org.slf4j:slf4j-api", ], ), - "com.google.code.gson:gson:2.10", + "com.google.code.gson:gson:2.10.1", "com.google.guava:guava:31.1-jre", "com.google.auto:auto-common:1.2.1", "com.google.auto.service:auto-service:1.0.1", "com.google.auto.service:auto-service-annotations:1.0.1", "com.graphql-java:graphql-java:20.0", "com.graphql-java:java-dataloader:3.2.0", - "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-context:1.52.1", "io.lettuce:lettuce-core:6.2.2.RELEASE", "io.netty:netty-buffer:%s" % netty_version, "io.netty:netty-codec-haproxy:%s" % netty_version, @@ -78,11 +78,11 @@ def selenium_java_deps(): "org.junit.platform:junit-platform-engine:%s" % junit_platform_version, "org.junit.platform:junit-platform-suite-engine:%s" % junit_platform_version, "org.junit.platform:junit-platform-suite-api:%s" % junit_platform_version, - "net.bytebuddy:byte-buddy:1.12.20", + "net.bytebuddy:byte-buddy:1.12.22", "dev.failsafe:failsafe:3.3.0", - "net.sourceforge.htmlunit:htmlunit-core-js:2.67.0", + "net.sourceforge.htmlunit:htmlunit-core-js:2.69.0", "org.apache.commons:commons-exec:1.3", - "org.assertj:assertj-core:3.23.1", + "org.assertj:assertj-core:3.24.2", maven.artifact( group = "org.asynchttpclient", artifact = "async-http-client", @@ -95,14 +95,14 @@ def selenium_java_deps(): "org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5", "org.hamcrest:hamcrest:2.2", "org.hsqldb:hsqldb:2.7.1", - "org.mockito:mockito-core:4.10.0", + "org.mockito:mockito-core:4.11.0", "org.slf4j:slf4j-api:2.0.6", "org.slf4j:slf4j-jdk14:2.0.6", - "org.testng:testng:7.7.0", + "org.testng:testng:7.7.1", "org.zeromq:jeromq:0.5.3", "xyz.rogfam:littleproxy:2.0.15", "org.seleniumhq.selenium:htmlunit-driver:4.7.2", - "org.redisson:redisson:3.19.0", + "org.redisson:redisson:3.19.1", "com.github.stephenc.jcip:jcip-annotations:1.0-1", ], excluded_artifacts = [ diff --git a/java/maven_install.json b/java/maven_install.json index 9e27ab23be85d..bff5d64bc9daa 100644 --- a/java/maven_install.json +++ b/java/maven_install.json @@ -1,8 +1,8 @@ { "dependency_tree": { "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", - "__INPUT_ARTIFACTS_HASH": 486868694, - "__RESOLVED_ARTIFACTS_HASH": 1228585321, + "__INPUT_ARTIFACTS_HASH": -679261542, + "__RESOLVED_ARTIFACTS_HASH": 1389120916, "conflict_resolution": {}, "dependencies": [ { @@ -94,7 +94,7 @@ "url": "https://repo1.maven.org/maven2/com/beust/jcommander/1.82/jcommander-1.82-sources.jar" }, { - "coord": "com.esotericsoftware:kryo:5.3.0", + "coord": "com.esotericsoftware:kryo:5.4.0", "dependencies": [ "com.esotericsoftware:minlog:1.3.1", "com.esotericsoftware:reflectasm:1.11.9", @@ -110,10 +110,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/com/esotericsoftware/kryo/5.3.0/kryo-5.3.0.jar", + "file": "v1/https/repo1.maven.org/maven2/com/esotericsoftware/kryo/5.4.0/kryo-5.4.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/com/esotericsoftware/kryo/5.3.0/kryo-5.3.0.jar", - "https://maven.google.com/com/esotericsoftware/kryo/5.3.0/kryo-5.3.0.jar" + "https://repo1.maven.org/maven2/com/esotericsoftware/kryo/5.4.0/kryo-5.4.0.jar", + "https://maven.google.com/com/esotericsoftware/kryo/5.4.0/kryo-5.4.0.jar" ], "packages": [ "com.esotericsoftware.kryo", @@ -122,11 +122,11 @@ "com.esotericsoftware.kryo.unsafe", "com.esotericsoftware.kryo.util" ], - "sha256": "29e3e8066329ca5550e7103d2e7e9aad047e63d2ae5f7bece68858dd1264f44e", - "url": "https://repo1.maven.org/maven2/com/esotericsoftware/kryo/5.3.0/kryo-5.3.0.jar" + "sha256": "0977fd9a3fe45b54f351de152e6a454a7dc0304e128080ef11c2d052d4c9edb5", + "url": "https://repo1.maven.org/maven2/com/esotericsoftware/kryo/5.4.0/kryo-5.4.0.jar" }, { - "coord": "com.esotericsoftware:kryo:jar:sources:5.3.0", + "coord": "com.esotericsoftware:kryo:jar:sources:5.4.0", "dependencies": [ "com.esotericsoftware:minlog:jar:sources:1.3.1", "com.esotericsoftware:reflectasm:jar:sources:1.11.9", @@ -142,14 +142,14 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/com/esotericsoftware/kryo/5.3.0/kryo-5.3.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/com/esotericsoftware/kryo/5.4.0/kryo-5.4.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/com/esotericsoftware/kryo/5.3.0/kryo-5.3.0-sources.jar", - "https://maven.google.com/com/esotericsoftware/kryo/5.3.0/kryo-5.3.0-sources.jar" + "https://repo1.maven.org/maven2/com/esotericsoftware/kryo/5.4.0/kryo-5.4.0-sources.jar", + "https://maven.google.com/com/esotericsoftware/kryo/5.4.0/kryo-5.4.0-sources.jar" ], "packages": [], - "sha256": "2051c96d86539fd0db8046f67fb9ad593c69bf308f64b3f0c7d888a5e3c8cac8", - "url": "https://repo1.maven.org/maven2/com/esotericsoftware/kryo/5.3.0/kryo-5.3.0-sources.jar" + "sha256": "29adf2a8acbfaa7b1d6d0604e96b985dbf6cb2e2f89fbfad8fb0eeb27c59a1c6", + "url": "https://repo1.maven.org/maven2/com/esotericsoftware/kryo/5.4.0/kryo-5.4.0-sources.jar" }, { "coord": "com.esotericsoftware:minlog:1.3.1", @@ -448,7 +448,7 @@ "url": "https://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.14.1/jackson-dataformat-yaml-2.14.1-sources.jar" }, { - "coord": "com.github.javaparser:javaparser-core:3.24.9", + "coord": "com.github.javaparser:javaparser-core:3.24.10", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -456,10 +456,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.9/javaparser-core-3.24.9.jar", + "file": "v1/https/repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.10/javaparser-core-3.24.10.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.9/javaparser-core-3.24.9.jar", - "https://maven.google.com/com/github/javaparser/javaparser-core/3.24.9/javaparser-core-3.24.9.jar" + "https://repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.10/javaparser-core-3.24.10.jar", + "https://maven.google.com/com/github/javaparser/javaparser-core/3.24.10/javaparser-core-3.24.10.jar" ], "packages": [ "com.github.javaparser", @@ -484,6 +484,7 @@ "com.github.javaparser.printer", "com.github.javaparser.printer.concretesyntaxmodel", "com.github.javaparser.printer.configuration", + "com.github.javaparser.printer.configuration.imports", "com.github.javaparser.printer.lexicalpreservation", "com.github.javaparser.printer.lexicalpreservation.changes", "com.github.javaparser.quality", @@ -497,11 +498,11 @@ "com.github.javaparser.resolution.types.parametrization", "com.github.javaparser.utils" ], - "sha256": "d3f0be846643e1e48907df4576f9cb6b60f9e7c98799f681b5f1690b99499f4a", - "url": "https://repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.9/javaparser-core-3.24.9.jar" + "sha256": "e9d872c97d483f1f19ad46f7913b416cb52d40634f8eacb34430b22a7c373f89", + "url": "https://repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.10/javaparser-core-3.24.10.jar" }, { - "coord": "com.github.javaparser:javaparser-core:jar:sources:3.24.9", + "coord": "com.github.javaparser:javaparser-core:jar:sources:3.24.10", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -509,14 +510,14 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.9/javaparser-core-3.24.9-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.10/javaparser-core-3.24.10-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.9/javaparser-core-3.24.9-sources.jar", - "https://maven.google.com/com/github/javaparser/javaparser-core/3.24.9/javaparser-core-3.24.9-sources.jar" + "https://repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.10/javaparser-core-3.24.10-sources.jar", + "https://maven.google.com/com/github/javaparser/javaparser-core/3.24.10/javaparser-core-3.24.10-sources.jar" ], "packages": [], - "sha256": "0e3700455fb2944dd6cefef95f167d79b2b56a4472aae4aca647b88300715ae9", - "url": "https://repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.9/javaparser-core-3.24.9-sources.jar" + "sha256": "17760cddfdd2cc961c758feaaba455704415ef9c257f19e15977de594a459fc8", + "url": "https://repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.24.10/javaparser-core-3.24.10-sources.jar" }, { "coord": "com.github.spotbugs:spotbugs-annotations:4.7.3", @@ -571,7 +572,7 @@ "dependencies": [ "com.github.spotbugs:spotbugs-annotations:4.7.3", "com.google.code.findbugs:jsr305:3.0.2", - "com.google.code.gson:gson:2.10", + "com.google.code.gson:gson:2.10.1", "commons-codec:commons-codec:1.15", "jaxen:jaxen:1.2.0", "net.jcip:jcip-annotations:1.0", @@ -596,7 +597,7 @@ ], "directDependencies": [ "com.github.spotbugs:spotbugs-annotations:4.7.3", - "com.google.code.gson:gson:2.10", + "com.google.code.gson:gson:2.10.1", "jaxen:jaxen:1.2.0", "net.jcip:jcip-annotations:1.0", "net.sf.saxon:Saxon-HE:11.4", @@ -680,7 +681,7 @@ "dependencies": [ "com.github.spotbugs:spotbugs-annotations:jar:sources:4.7.3", "com.google.code.findbugs:jsr305:jar:sources:3.0.2", - "com.google.code.gson:gson:jar:sources:2.10", + "com.google.code.gson:gson:jar:sources:2.10.1", "commons-codec:commons-codec:jar:sources:1.15", "jaxen:jaxen:jar:sources:1.2.0", "net.jcip:jcip-annotations:jar:sources:1.0", @@ -704,7 +705,7 @@ ], "directDependencies": [ "com.github.spotbugs:spotbugs-annotations:jar:sources:4.7.3", - "com.google.code.gson:gson:jar:sources:2.10", + "com.google.code.gson:gson:jar:sources:2.10.1", "jaxen:jaxen:jar:sources:1.2.0", "net.jcip:jcip-annotations:jar:sources:1.0", "net.sf.saxon:Saxon-HE:jar:sources:11.4", @@ -951,7 +952,7 @@ "url": "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-sources.jar" }, { - "coord": "com.google.code.gson:gson:2.10", + "coord": "com.google.code.gson:gson:2.10.1", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -959,10 +960,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.10/gson-2.10.jar", + "file": "v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10/gson-2.10.jar", - "https://maven.google.com/com/google/code/gson/gson/2.10/gson-2.10.jar" + "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar", + "https://maven.google.com/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar" ], "packages": [ "com.google.gson", @@ -975,11 +976,11 @@ "com.google.gson.reflect", "com.google.gson.stream" ], - "sha256": "0cdd163ce3598a20fc04eee71b140b24f6f2a3b35f0a499dbbdd9852e83fbfaf", - "url": "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10/gson-2.10.jar" + "sha256": "4241c14a7727c34feea6507ec801318a3d4a90f070e4525681079fb94ee4c593", + "url": "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar" }, { - "coord": "com.google.code.gson:gson:jar:sources:2.10", + "coord": "com.google.code.gson:gson:jar:sources:2.10.1", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -987,14 +988,14 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.10/gson-2.10-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10/gson-2.10-sources.jar", - "https://maven.google.com/com/google/code/gson/gson/2.10/gson-2.10-sources.jar" + "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1-sources.jar", + "https://maven.google.com/com/google/code/gson/gson/2.10.1/gson-2.10.1-sources.jar" ], "packages": [], - "sha256": "984c3636c3911185469a2df991da1bb325de391b9215088ce6c26476bdd61f99", - "url": "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10/gson-2.10-sources.jar" + "sha256": "eee1cc5c1f4267ee194cc245777e68084738ef390acd763354ce0ff6bfb7bcc1", + "url": "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1-sources.jar" }, { "coord": "com.google.errorprone:error_prone_annotations:2.11.0", @@ -1470,11 +1471,11 @@ { "coord": "com.typesafe.netty:netty-reactive-streams:2.0.4", "dependencies": [ - "io.netty:netty-handler:4.1.86.Final", + "io.netty:netty-handler:4.1.87.Final", "org.reactivestreams:reactive-streams:1.0.4" ], "directDependencies": [ - "io.netty:netty-handler:4.1.86.Final", + "io.netty:netty-handler:4.1.87.Final", "org.reactivestreams:reactive-streams:1.0.4" ], "exclusions": [ @@ -1498,11 +1499,11 @@ { "coord": "com.typesafe.netty:netty-reactive-streams:jar:sources:2.0.4", "dependencies": [ - "io.netty:netty-handler:jar:sources:4.1.86.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", "org.reactivestreams:reactive-streams:jar:sources:1.0.4" ], "directDependencies": [ - "io.netty:netty-handler:jar:sources:4.1.86.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", "org.reactivestreams:reactive-streams:jar:sources:1.0.4" ], "exclusions": [ @@ -1792,7 +1793,7 @@ "url": "https://repo1.maven.org/maven2/eu/neilalexander/jnacl/1.0.0/jnacl-1.0.0-sources.jar" }, { - "coord": "io.grpc:grpc-context:1.51.1", + "coord": "io.grpc:grpc-context:1.52.1", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -1800,19 +1801,19 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1.jar", + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-context/1.52.1/grpc-context-1.52.1.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1.jar", - "https://maven.google.com/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1.jar" + "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.52.1/grpc-context-1.52.1.jar", + "https://maven.google.com/io/grpc/grpc-context/1.52.1/grpc-context-1.52.1.jar" ], "packages": [ "io.grpc" ], - "sha256": "d37d0c69abbb151884259dc113d50a93aa1f0870c4d7c808a033c5be2b735b0b", - "url": "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1.jar" + "sha256": "461abbaea6ff26ca5225d1a9c592a3bbe2a67248b2062eaf9f50d31a0fe88bab", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.52.1/grpc-context-1.52.1.jar" }, { - "coord": "io.grpc:grpc-context:jar:sources:1.51.1", + "coord": "io.grpc:grpc-context:jar:sources:1.52.1", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -1820,28 +1821,28 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-context/1.52.1/grpc-context-1.52.1-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1-sources.jar", - "https://maven.google.com/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1-sources.jar" + "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.52.1/grpc-context-1.52.1-sources.jar", + "https://maven.google.com/io/grpc/grpc-context/1.52.1/grpc-context-1.52.1-sources.jar" ], "packages": [], - "sha256": "bf85d637d9bd38746a9bbb37ed9db950b6f3143e2ee696e74de72b7951d1cc04", - "url": "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1-sources.jar" + "sha256": "68fbf0ddb334bbe3f83d94050b0f76e1c1d3462d0f6f1894f28ccbf0f87bccc1", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.52.1/grpc-context-1.52.1-sources.jar" }, { "coord": "io.lettuce:lettuce-core:6.2.2.RELEASE", "dependencies": [ - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final", "io.projectreactor:reactor-core:3.4.25", "org.reactivestreams:reactive-streams:1.0.4" ], "directDependencies": [ - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final", "io.projectreactor:reactor-core:3.4.25" ], "exclusions": [ @@ -1924,16 +1925,16 @@ { "coord": "io.lettuce:lettuce-core:jar:sources:6.2.2.RELEASE", "dependencies": [ - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final", "io.projectreactor:reactor-core:jar:sources:3.4.25", "org.reactivestreams:reactive-streams:jar:sources:1.0.4" ], "directDependencies": [ - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final", "io.projectreactor:reactor-core:jar:sources:3.4.25" ], "exclusions": [ @@ -1951,66 +1952,65 @@ "url": "https://repo1.maven.org/maven2/io/lettuce/lettuce-core/6.2.2.RELEASE/lettuce-core-6.2.2.RELEASE-sources.jar" }, { - "coord": "io.netty:netty-buffer:4.1.86.Final", + "coord": "io.netty:netty-buffer:4.1.87.Final", "dependencies": [ - "io.netty:netty-common:4.1.86.Final" + "io.netty:netty-common:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-common:4.1.86.Final" + "io.netty:netty-common:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.87.Final/netty-buffer-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.87.Final/netty-buffer-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-buffer/4.1.87.Final/netty-buffer-4.1.87.Final.jar" ], "packages": [ "io.netty.buffer", "io.netty.buffer.search" ], - "sha256": "e42e15f47c865266b1faa6e038ebfd7ddadcf9f4ae9e6617edd4881dbd4abe88", - "url": "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final.jar" + "sha256": "4e3abdf4ddb8810f5fb4a2b57c9144407873b359faa1894007673ed1465dd3e8", + "url": "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.87.Final/netty-buffer-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-buffer:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-buffer:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-common:jar:sources:4.1.86.Final" + "io.netty:netty-common:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-common:jar:sources:4.1.86.Final" + "io.netty:netty-common:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.87.Final/netty-buffer-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.87.Final/netty-buffer-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-buffer/4.1.87.Final/netty-buffer-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "5d666162ac0a7712900f070e780d12994c989b65ed173508d7d8a8fbd8930dc5", - "url": "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.86.Final/netty-buffer-4.1.86.Final-sources.jar" + "sha256": "9b7e313923c37d2467726a9fcf247bc128535cc2c5533c6ec4026d662c746945", + "url": "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.87.Final/netty-buffer-4.1.87.Final-sources.jar" }, { "coord": "io.netty:netty-codec-dns:4.1.86.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", @@ -2031,17 +2031,16 @@ { "coord": "io.netty:netty-codec-dns:jar:sources:4.1.86.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", @@ -2058,160 +2057,160 @@ "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-dns/4.1.86.Final/netty-codec-dns-4.1.86.Final-sources.jar" }, { - "coord": "io.netty:netty-codec-haproxy:4.1.86.Final", + "coord": "io.netty:netty-codec-haproxy:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.86.Final/netty-codec-haproxy-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.87.Final/netty-codec-haproxy-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.86.Final/netty-codec-haproxy-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-codec-haproxy/4.1.86.Final/netty-codec-haproxy-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.87.Final/netty-codec-haproxy-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-codec-haproxy/4.1.87.Final/netty-codec-haproxy-4.1.87.Final.jar" ], "packages": [ "io.netty.handler.codec.haproxy" ], - "sha256": "52ec5934c4e47efcbab08c391d32c4cba8e34c41d63c2b558ed9bb09c1d119b9", - "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.86.Final/netty-codec-haproxy-4.1.86.Final.jar" + "sha256": "a684a7b46703cdf1f08cbca334766309712f93b5efd52d5353024f6d42192d7a", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.87.Final/netty-codec-haproxy-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-codec-haproxy:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-codec-haproxy:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.86.Final/netty-codec-haproxy-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.87.Final/netty-codec-haproxy-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.86.Final/netty-codec-haproxy-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-codec-haproxy/4.1.86.Final/netty-codec-haproxy-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.87.Final/netty-codec-haproxy-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-codec-haproxy/4.1.87.Final/netty-codec-haproxy-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "4ea60e1960b549e1d798167d68853f607b8cf4f4f081f67b42c37775c624ebec", - "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.86.Final/netty-codec-haproxy-4.1.86.Final-sources.jar" + "sha256": "3614e587adbf9ddaa6c18d6b190414c13cf4871e78e461d0ce707998552944bf", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-haproxy/4.1.87.Final/netty-codec-haproxy-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-codec-http2:4.1.86.Final", + "coord": "io.netty:netty-codec-http2:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec-http:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec-http:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec-http:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec-http:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.86.Final/netty-codec-http2-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.87.Final/netty-codec-http2-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.86.Final/netty-codec-http2-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-codec-http2/4.1.86.Final/netty-codec-http2-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.87.Final/netty-codec-http2-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-codec-http2/4.1.87.Final/netty-codec-http2-4.1.87.Final.jar" ], "packages": [ "io.netty.handler.codec.http2" ], - "sha256": "e8e8e28e6ab6bb989aed904778922045f388cfb420bc1eb37abf4df8801db167", - "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.86.Final/netty-codec-http2-4.1.86.Final.jar" + "sha256": "e5d01b8db385b23103de67d3666c6fa9fa144d42217a3c8266b2a5efe425f093", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.87.Final/netty-codec-http2-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-codec-http2:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-codec-http2:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec-http:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec-http:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec-http:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec-http:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.86.Final/netty-codec-http2-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.87.Final/netty-codec-http2-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.86.Final/netty-codec-http2-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-codec-http2/4.1.86.Final/netty-codec-http2-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.87.Final/netty-codec-http2-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-codec-http2/4.1.87.Final/netty-codec-http2-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "682dfcd6d4ff1f4b50a16ee6dcb099f743ec64827399c27f5ef5d6749de562c3", - "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.86.Final/netty-codec-http2-4.1.86.Final-sources.jar" + "sha256": "e4454eaed6d09569885b9f8bac0561c0db1896eaa32e5ccd60afea490569591a", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.87.Final/netty-codec-http2-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-codec-http:4.1.86.Final", + "coord": "io.netty:netty-codec-http:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.86.Final/netty-codec-http-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.87.Final/netty-codec-http-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.86.Final/netty-codec-http-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-codec-http/4.1.86.Final/netty-codec-http-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.87.Final/netty-codec-http-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-codec-http/4.1.87.Final/netty-codec-http-4.1.87.Final.jar" ], "packages": [ "io.netty.handler.codec.http", @@ -2224,65 +2223,65 @@ "io.netty.handler.codec.rtsp", "io.netty.handler.codec.spdy" ], - "sha256": "3f6ceb3112cfcf7b70545eb5111220ce57db54d593f23f64c38333bb22c40b84", - "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.86.Final/netty-codec-http-4.1.86.Final.jar" + "sha256": "39368c15595b791dbe26e7639cf2e71b6647bab8838fa5781cf7a80762eac927", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.87.Final/netty-codec-http-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-codec-http:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-codec-http:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.86.Final/netty-codec-http-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.87.Final/netty-codec-http-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.86.Final/netty-codec-http-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-codec-http/4.1.86.Final/netty-codec-http-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.87.Final/netty-codec-http-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-codec-http/4.1.87.Final/netty-codec-http-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "c68687c89531a5f3ed8c7ecc549d50257efe49c750e74d25fd0ca1f4d88ae95e", - "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.86.Final/netty-codec-http-4.1.86.Final-sources.jar" + "sha256": "f8cd7ba87346f5e70cf4cfc1c018ad682f7a7c099f802dac805dcb0614c67f19", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.87.Final/netty-codec-http-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-codec-socks:4.1.86.Final", + "coord": "io.netty:netty-codec-socks:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.86.Final/netty-codec-socks-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.87.Final/netty-codec-socks-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.86.Final/netty-codec-socks-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-codec-socks/4.1.86.Final/netty-codec-socks-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.87.Final/netty-codec-socks-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-codec-socks/4.1.87.Final/netty-codec-socks-4.1.87.Final.jar" ], "packages": [ "io.netty.handler.codec.socks", @@ -2290,60 +2289,60 @@ "io.netty.handler.codec.socksx.v4", "io.netty.handler.codec.socksx.v5" ], - "sha256": "838a2f46678e84abb7ed766247d038cb85dfafc480ff8c2c5e42d91d99c5ff4d", - "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.86.Final/netty-codec-socks-4.1.86.Final.jar" + "sha256": "41a76a64514f8f8f50ab8527254073521394138e8a96191905e8c143368b2006", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.87.Final/netty-codec-socks-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-codec-socks:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-codec-socks:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.86.Final/netty-codec-socks-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.87.Final/netty-codec-socks-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.86.Final/netty-codec-socks-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-codec-socks/4.1.86.Final/netty-codec-socks-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.87.Final/netty-codec-socks-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-codec-socks/4.1.87.Final/netty-codec-socks-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "599ae569ceddb3ff42962d25f48289dd7d274246b03638b6838a1ae2e031ebc5", - "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.86.Final/netty-codec-socks-4.1.86.Final-sources.jar" + "sha256": "bc90f881572fafc3abdf38c6905e848173cedb5d54f0920380b52a4bb03fa4a9", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.87.Final/netty-codec-socks-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-codec:4.1.86.Final", + "coord": "io.netty:netty-codec:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.87.Final/netty-codec-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.87.Final/netty-codec-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-codec/4.1.87.Final/netty-codec-4.1.87.Final.jar" ], "packages": [ "io.netty.handler.codec", @@ -2357,38 +2356,38 @@ "io.netty.handler.codec.string", "io.netty.handler.codec.xml" ], - "sha256": "0456840b5c851dad6cab881cd1a9ad5d916db65d81048145df1d9a6d03325bea", - "url": "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final.jar" + "sha256": "c643fe8318b7c7405acec13ed98e8f634f917960b20486295efbc5a690bac694", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.87.Final/netty-codec-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-codec:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-codec:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.87.Final/netty-codec-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.87.Final/netty-codec-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-codec/4.1.87.Final/netty-codec-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "bc0eb9dcfa59c29a0deec5f867761a1acf6286715c6e94a4a157b2f40e8d91e3", - "url": "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.86.Final/netty-codec-4.1.86.Final-sources.jar" + "sha256": "39a397c6636288eadaf1366e0f0da3e53a9e15bf35df252bbc36532ccf415547", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.87.Final/netty-codec-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-common:4.1.86.Final", + "coord": "io.netty:netty-common:4.1.87.Final", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -2396,10 +2395,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.87.Final/netty-common-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.87.Final/netty-common-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-common/4.1.87.Final/netty-common-4.1.87.Final.jar" ], "packages": [ "io.netty.util", @@ -2412,11 +2411,11 @@ "io.netty.util.internal.shaded.org.jctools.util", "io.netty.util.internal.svm" ], - "sha256": "a35a3f16e7cd45c5d8529aa3e7702d4ef3b36213ea332db59744ea348fc2ae99", - "url": "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final.jar" + "sha256": "811443fc1411a9ef7c1f7b02a750e2a6688f1eec0ae7361ed07812a85d982c86", + "url": "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.87.Final/netty-common-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-common:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-common:jar:sources:4.1.87.Final", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -2424,114 +2423,114 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.87.Final/netty-common-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.87.Final/netty-common-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-common/4.1.87.Final/netty-common-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "b52bdd1c4425757e5456f0f2104d76810cd42af733c36316abfd733106ff8ee2", - "url": "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.86.Final/netty-common-4.1.86.Final-sources.jar" + "sha256": "679c23349089a12edeb0dbd6a4b05e1c7f527db69e33be8b98fb482c8c24db64", + "url": "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.87.Final/netty-common-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-handler-proxy:4.1.86.Final", + "coord": "io.netty:netty-handler-proxy:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec-http:4.1.86.Final", - "io.netty:netty-codec-socks:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec-http:4.1.87.Final", + "io.netty:netty-codec-socks:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec-http:4.1.86.Final", - "io.netty:netty-codec-socks:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec-http:4.1.87.Final", + "io.netty:netty-codec-socks:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.86.Final/netty-handler-proxy-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.87.Final/netty-handler-proxy-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.86.Final/netty-handler-proxy-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-handler-proxy/4.1.86.Final/netty-handler-proxy-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.87.Final/netty-handler-proxy-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-handler-proxy/4.1.87.Final/netty-handler-proxy-4.1.87.Final.jar" ], "packages": [ "io.netty.handler.proxy" ], - "sha256": "b812fe7d72c84fbc84e53b4f26764d82f76b06a65f331f0fbd9543aa73e18f91", - "url": "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.86.Final/netty-handler-proxy-4.1.86.Final.jar" + "sha256": "65276b2ab687b1b7c1ceabcc941d6e2cce1038f35b581218d7dbf46b16c5b4ac", + "url": "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.87.Final/netty-handler-proxy-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-handler-proxy:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-handler-proxy:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec-http:jar:sources:4.1.86.Final", - "io.netty:netty-codec-socks:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec-http:jar:sources:4.1.87.Final", + "io.netty:netty-codec-socks:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec-http:jar:sources:4.1.86.Final", - "io.netty:netty-codec-socks:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec-http:jar:sources:4.1.87.Final", + "io.netty:netty-codec-socks:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.86.Final/netty-handler-proxy-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.87.Final/netty-handler-proxy-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.86.Final/netty-handler-proxy-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-handler-proxy/4.1.86.Final/netty-handler-proxy-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.87.Final/netty-handler-proxy-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-handler-proxy/4.1.87.Final/netty-handler-proxy-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "6528ca52eff4225791c0f7f6eb51d01190ee2c3a2f4d6d99a2119ca0d9ac00fa", - "url": "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.86.Final/netty-handler-proxy-4.1.86.Final-sources.jar" + "sha256": "b6c10bc43044cb3b53c601a9ffc75ffb3d6af7b9c218e6bff72f5beb22993947", + "url": "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.87.Final/netty-handler-proxy-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-handler:4.1.86.Final", + "coord": "io.netty:netty-handler:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.87.Final/netty-handler-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.87.Final/netty-handler-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-handler/4.1.87.Final/netty-handler-4.1.87.Final.jar" ], "packages": [ "io.netty.handler.address", @@ -2547,61 +2546,60 @@ "io.netty.handler.timeout", "io.netty.handler.traffic" ], - "sha256": "e69b42292929b278dc522e25177ddf7c54025484b55879f8227349adfbe1c04d", - "url": "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final.jar" + "sha256": "31a20e1de13b06a677a4719fd5aa95635982114a32c1d034739a48cceada2383", + "url": "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.87.Final/netty-handler-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-handler:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-handler:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.87.Final/netty-handler-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.87.Final/netty-handler-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-handler/4.1.87.Final/netty-handler-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "b06ca49a3614028615765b0347dc24bf1816a6e299d322513218349b77e8fe70", - "url": "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.86.Final/netty-handler-4.1.86.Final-sources.jar" + "sha256": "e07bc5906414d522eb10cee0ce9162ab6382d05a71bf14ecb53630e3ebff5067", + "url": "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.87.Final/netty-handler-4.1.87.Final-sources.jar" }, { "coord": "io.netty:netty-resolver-dns:4.1.86.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", + "io.netty:netty-buffer:4.1.87.Final", "io.netty:netty-codec-dns:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", + "io.netty:netty-buffer:4.1.87.Final", "io.netty:netty-codec-dns:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", @@ -2622,23 +2620,22 @@ { "coord": "io.netty:netty-resolver-dns:jar:sources:4.1.86.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", + "io.netty:netty-buffer:jar:sources:4.1.87.Final", "io.netty:netty-codec-dns:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", + "io.netty:netty-buffer:jar:sources:4.1.87.Final", "io.netty:netty-codec-dns:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", @@ -2655,465 +2652,465 @@ "url": "https://repo1.maven.org/maven2/io/netty/netty-resolver-dns/4.1.86.Final/netty-resolver-dns-4.1.86.Final-sources.jar" }, { - "coord": "io.netty:netty-resolver:4.1.86.Final", + "coord": "io.netty:netty-resolver:4.1.87.Final", "dependencies": [ - "io.netty:netty-common:4.1.86.Final" + "io.netty:netty-common:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-common:4.1.86.Final" + "io.netty:netty-common:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.87.Final/netty-resolver-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.87.Final/netty-resolver-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-resolver/4.1.87.Final/netty-resolver-4.1.87.Final.jar" ], "packages": [ "io.netty.resolver" ], - "sha256": "7628a1309d7f2443dc41d8923a7f269e2981b9616f80a999eb7264ae6bcbfdba", - "url": "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final.jar" + "sha256": "ee11d22d240b4b125edaed23ec7cc35ad9241b1b8fdd50630de20411ec345fc7", + "url": "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.87.Final/netty-resolver-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-resolver:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-resolver:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-common:jar:sources:4.1.86.Final" + "io.netty:netty-common:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-common:jar:sources:4.1.86.Final" + "io.netty:netty-common:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.87.Final/netty-resolver-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.87.Final/netty-resolver-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-resolver/4.1.87.Final/netty-resolver-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "0324e788d697e6178a749f16984d076b5d3d7ddc41ba678b4caf612eec4eade5", - "url": "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.86.Final/netty-resolver-4.1.86.Final-sources.jar" + "sha256": "5c2ee5e9e26e10e1d94faaf7ee12fd021f967144eb630ef779aa81dd4d72da3e", + "url": "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.87.Final/netty-resolver-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-transport-classes-epoll:4.1.86.Final", + "coord": "io.netty:netty-transport-classes-epoll:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.86.Final/netty-transport-classes-epoll-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.87.Final/netty-transport-classes-epoll-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.86.Final/netty-transport-classes-epoll-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-transport-classes-epoll/4.1.86.Final/netty-transport-classes-epoll-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.87.Final/netty-transport-classes-epoll-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-transport-classes-epoll/4.1.87.Final/netty-transport-classes-epoll-4.1.87.Final.jar" ], "packages": [ "io.netty.channel.epoll" ], - "sha256": "3cc7eb87d85d6b4bf3d596a172a92df09f8d746c2b283c85543c95795b51edda", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.86.Final/netty-transport-classes-epoll-4.1.86.Final.jar" + "sha256": "0b50ae7e1cb32f89c3a8b38a29605cfe6bd797693b3374fbf2577fbc03719297", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.87.Final/netty-transport-classes-epoll-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-transport-classes-epoll:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-transport-classes-epoll:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.86.Final/netty-transport-classes-epoll-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.87.Final/netty-transport-classes-epoll-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.86.Final/netty-transport-classes-epoll-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-transport-classes-epoll/4.1.86.Final/netty-transport-classes-epoll-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.87.Final/netty-transport-classes-epoll-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-transport-classes-epoll/4.1.87.Final/netty-transport-classes-epoll-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "4293da99c7eb25bb3e35db61937db138e6c5fb8e48d0ed03d965e6f0ca87b730", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.86.Final/netty-transport-classes-epoll-4.1.86.Final-sources.jar" + "sha256": "b34f037cb1d1134cf5d99f5da7d73dad6a33ebb1c21274e7e226d92548b99eb9", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.87.Final/netty-transport-classes-epoll-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-transport-classes-kqueue:4.1.86.Final", + "coord": "io.netty:netty-transport-classes-kqueue:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.86.Final/netty-transport-classes-kqueue-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.87.Final/netty-transport-classes-kqueue-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.86.Final/netty-transport-classes-kqueue-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-transport-classes-kqueue/4.1.86.Final/netty-transport-classes-kqueue-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.87.Final/netty-transport-classes-kqueue-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-transport-classes-kqueue/4.1.87.Final/netty-transport-classes-kqueue-4.1.87.Final.jar" ], "packages": [ "io.netty.channel.kqueue" ], - "sha256": "8059837d5304e5d0cab6afa010d4c319dfe8444ca936df28031d2ed636b2ebab", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.86.Final/netty-transport-classes-kqueue-4.1.86.Final.jar" + "sha256": "94abb9234691ce082bbc0d1d533e186cfd1a312d7515a47647896945e7fdbf87", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.87.Final/netty-transport-classes-kqueue-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.86.Final/netty-transport-classes-kqueue-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.87.Final/netty-transport-classes-kqueue-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.86.Final/netty-transport-classes-kqueue-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-transport-classes-kqueue/4.1.86.Final/netty-transport-classes-kqueue-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.87.Final/netty-transport-classes-kqueue-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-transport-classes-kqueue/4.1.87.Final/netty-transport-classes-kqueue-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "e7dd58f27d8327b984f2e193b0744678e86cc6d863fb1ee6b282d1fa2bff8d9c", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.86.Final/netty-transport-classes-kqueue-4.1.86.Final-sources.jar" + "sha256": "86a8f8b7d8518c8198e441794cd6a37742d99dd7b1c9ccdac5c156472f4be246", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.87.Final/netty-transport-classes-kqueue-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-transport-native-epoll:4.1.86.Final", + "coord": "io.netty:netty-transport-native-epoll:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final.jar" ], "packages": [], - "sha256": "bbbd9d367cb7371a34b39f75f4422d0a09667c72007dfb861e6cdd4b5b4a35cf", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final.jar" + "sha256": "620ce433675ce47085b43ba364fee7250625c2109bc1a3cb3dc740ed110454ef", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.86.Final", + "coord": "io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final-linux-x86_64.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final-linux-x86_64.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final-linux-x86_64.jar", - "https://maven.google.com/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final-linux-x86_64.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final-linux-x86_64.jar", + "https://maven.google.com/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final-linux-x86_64.jar" ], "packages": [], - "sha256": "e1a5dd2e02e6d05b0d91409732a54f8cc827ff4b7042a7ffaf7464b1460ef858", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final-linux-x86_64.jar" + "sha256": "bb3752881a027efa99388bef21f3287a6553299930f4226a6ea683da21c957f2", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final-linux-x86_64.jar" }, { - "coord": "io.netty:netty-transport-native-epoll:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-transport-native-epoll:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "adafe24f3a88d3a4d9b63aa34d3724ee5269491740256f0f8e907ebe7c4380f4", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.86.Final/netty-transport-native-epoll-4.1.86.Final-sources.jar" + "sha256": "ca421381ba027e6cc90091b9fac013df025fd7a83f72982fb43ae5e440f49f0c", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.87.Final/netty-transport-native-epoll-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-transport-native-kqueue:4.1.86.Final", + "coord": "io.netty:netty-transport-native-kqueue:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final.jar" ], "packages": [], - "sha256": "28ca127aa734d71f472483253e4de77e215bc6eaf12480c8268c8ff7d6bcaba5", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final.jar" + "sha256": "a5cd5ff73984a04be29c3f2c86e3f7c6db816cd26fd2ab70f2fb55f7c3235a8e", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-transport-native-kqueue:jar:osx-aarch_64:4.1.86.Final", + "coord": "io.netty:netty-transport-native-kqueue:jar:osx-aarch_64:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-osx-aarch_64.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-osx-aarch_64.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-osx-aarch_64.jar", - "https://maven.google.com/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-osx-aarch_64.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-osx-aarch_64.jar", + "https://maven.google.com/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-osx-aarch_64.jar" ], "packages": [], - "sha256": "c20b00d84283500d74831e1186cfb316f3ed7a45fcc39c1f8710036c268a346e", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-osx-aarch_64.jar" + "sha256": "27e5bd891a4b8b70db2bf1a4c419fc666714a385d98194fbe3c856cac99610bd", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-osx-aarch_64.jar" }, { - "coord": "io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.86.Final", + "coord": "io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-osx-x86_64.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-osx-x86_64.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-osx-x86_64.jar", - "https://maven.google.com/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-osx-x86_64.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-osx-x86_64.jar", + "https://maven.google.com/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-osx-x86_64.jar" ], "packages": [], - "sha256": "1a683858286cc300134b65c51dfcb3ba6f1848eb7e977c3ac1d161f064697b56", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-osx-x86_64.jar" + "sha256": "dba5794dabbbfa7d97f659b135a14f37544b20cf4438165f4b0ff65bbe525f51", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-osx-x86_64.jar" }, { - "coord": "io.netty:netty-transport-native-kqueue:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-transport-native-kqueue:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "2abdc7fd922333e417d750d69a01117a3a9ae938583e5a788a9c9b45cae48427", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-sources.jar" + "sha256": "3a3da5d92c6fbe12b4abea51b72c393588e11f2e270fba892be4887043b34c83", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.87.Final/netty-transport-native-kqueue-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-transport-native-unix-common:4.1.86.Final", + "coord": "io.netty:netty-transport-native-unix-common:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.87.Final/netty-transport-native-unix-common-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.87.Final/netty-transport-native-unix-common-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-transport-native-unix-common/4.1.87.Final/netty-transport-native-unix-common-4.1.87.Final.jar" ], "packages": [ "io.netty.channel.unix" ], - "sha256": "ec26d03a06565791d57e997f793677ee4d3fc47b290b7951898c2ecd0232f115", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final.jar" + "sha256": "cc2d013c933c206605da01be39f4c2c1f4586a1b9103a665bd724bdd46d9cd0c", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.87.Final/netty-transport-native-unix-common-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.87.Final/netty-transport-native-unix-common-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.87.Final/netty-transport-native-unix-common-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-transport-native-unix-common/4.1.87.Final/netty-transport-native-unix-common-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "9ce830061bdf75a28c359eadf2b8541c4f2b3cc177311bd23a4d36105573f2e3", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.86.Final/netty-transport-native-unix-common-4.1.86.Final-sources.jar" + "sha256": "4a9b81c8dc1497038d1a6b4c01ba9fb8a86aa538dd2b8c6f47dc360ec09f6c94", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.87.Final/netty-transport-native-unix-common-4.1.87.Final-sources.jar" }, { - "coord": "io.netty:netty-transport:4.1.86.Final", + "coord": "io.netty:netty-transport:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final" + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-resolver:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.87.Final/netty-transport-4.1.87.Final.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final.jar", - "https://maven.google.com/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.87.Final/netty-transport-4.1.87.Final.jar", + "https://maven.google.com/io/netty/netty-transport/4.1.87.Final/netty-transport-4.1.87.Final.jar" ], "packages": [ "io.netty.bootstrap", @@ -3129,100 +3126,100 @@ "io.netty.channel.socket.nio", "io.netty.channel.socket.oio" ], - "sha256": "f6726dcd54e4922b46b3b4f4467b443a70a30eb08a62620c8fe502d8cb802c9f", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final.jar" + "sha256": "17ed465cf5b1579b72379e47be3ba7fccb09dda8d95d47c8d668118483b08f43", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.87.Final/netty-transport-4.1.87.Final.jar" }, { - "coord": "io.netty:netty-transport:jar:sources:4.1.86.Final", + "coord": "io.netty:netty-transport:jar:sources:4.1.87.Final", "dependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final" ], "directDependencies": [ - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final" + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.87.Final/netty-transport-4.1.87.Final-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final-sources.jar", - "https://maven.google.com/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final-sources.jar" + "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.87.Final/netty-transport-4.1.87.Final-sources.jar", + "https://maven.google.com/io/netty/netty-transport/4.1.87.Final/netty-transport-4.1.87.Final-sources.jar" ], "packages": [], - "sha256": "86b3bfd0d7ee8461e185f27ae34d564ab57a0746ea3629a09b3426f3f82f8f51", - "url": "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.86.Final/netty-transport-4.1.86.Final-sources.jar" + "sha256": "f0f3423820aa0bf83dcef001a8343c742c69b0bd0041e2228a2c8d67ce0cacd8", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.87.Final/netty-transport-4.1.87.Final-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-api-logs:1.21.0-alpha", + "coord": "io.opentelemetry:opentelemetry-api-logs:1.22.0-alpha", "dependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0" + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0" + "io.opentelemetry:opentelemetry-api:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.21.0-alpha/opentelemetry-api-logs-1.21.0-alpha.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.22.0-alpha/opentelemetry-api-logs-1.22.0-alpha.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.21.0-alpha/opentelemetry-api-logs-1.21.0-alpha.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-api-logs/1.21.0-alpha/opentelemetry-api-logs-1.21.0-alpha.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.22.0-alpha/opentelemetry-api-logs-1.22.0-alpha.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-api-logs/1.22.0-alpha/opentelemetry-api-logs-1.22.0-alpha.jar" ], "packages": [ "io.opentelemetry.api.logs" ], - "sha256": "3ebaf71a553a8e0de092fa6332f504788c19e9ff986b95784f5248dd90b531cc", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.21.0-alpha/opentelemetry-api-logs-1.21.0-alpha.jar" + "sha256": "812177628764be64aaf9656711d2d133906ebf3ea15746ae5bad2f3b0368a30e", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.22.0-alpha/opentelemetry-api-logs-1.22.0-alpha.jar" }, { - "coord": "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.21.0-alpha", + "coord": "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.22.0-alpha", "dependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.21.0-alpha/opentelemetry-api-logs-1.21.0-alpha-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.22.0-alpha/opentelemetry-api-logs-1.22.0-alpha-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.21.0-alpha/opentelemetry-api-logs-1.21.0-alpha-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-api-logs/1.21.0-alpha/opentelemetry-api-logs-1.21.0-alpha-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.22.0-alpha/opentelemetry-api-logs-1.22.0-alpha-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-api-logs/1.22.0-alpha/opentelemetry-api-logs-1.22.0-alpha-sources.jar" ], "packages": [], - "sha256": "e49913c8bbde940a683542ce0dc73a18d0ac073971de0edcb03aa9eb8478a36d", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.21.0-alpha/opentelemetry-api-logs-1.21.0-alpha-sources.jar" + "sha256": "70253aa53a5ead166c58f051ee36740fd24ee1bded0cffee4659cbde48782e1e", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-logs/1.22.0-alpha/opentelemetry-api-logs-1.22.0-alpha-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-api:1.21.0", + "coord": "io.opentelemetry:opentelemetry-api:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-context:1.21.0" + "io.opentelemetry:opentelemetry-context:1.22.0" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-context:1.21.0" + "io.opentelemetry:opentelemetry-context:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.21.0/opentelemetry-api-1.21.0.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.22.0/opentelemetry-api-1.22.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.21.0/opentelemetry-api-1.21.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-api/1.21.0/opentelemetry-api-1.21.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.22.0/opentelemetry-api-1.22.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-api/1.22.0/opentelemetry-api-1.22.0.jar" ], "packages": [ "io.opentelemetry.api", @@ -3235,33 +3232,33 @@ "io.opentelemetry.api.trace.propagation", "io.opentelemetry.api.trace.propagation.internal" ], - "sha256": "81711d93f9bc487695641028cc2421737d7e781d3b6a68197d39c37a13630378", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.21.0/opentelemetry-api-1.21.0.jar" + "sha256": "79192584022c83109b645530060a270899c4227a687a2d2ce587b19dcd30fa05", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.22.0/opentelemetry-api-1.22.0.jar" }, { - "coord": "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", + "coord": "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0" + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0" + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.21.0/opentelemetry-api-1.21.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.22.0/opentelemetry-api-1.22.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.21.0/opentelemetry-api-1.21.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-api/1.21.0/opentelemetry-api-1.21.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.22.0/opentelemetry-api-1.22.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-api/1.22.0/opentelemetry-api-1.22.0-sources.jar" ], "packages": [], - "sha256": "997785bbd1af34e68b3f91d0cdf72e782f81bbc6e3f3e13c8a758ae4dffa7c22", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.21.0/opentelemetry-api-1.21.0-sources.jar" + "sha256": "6224337d3d740d07b78033eb614acae804152f2c9e15cf167c207d4e65d97483", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.22.0/opentelemetry-api-1.22.0-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-context:1.21.0", + "coord": "io.opentelemetry:opentelemetry-context:1.22.0", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -3269,21 +3266,21 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.21.0/opentelemetry-context-1.21.0.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.22.0/opentelemetry-context-1.22.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.21.0/opentelemetry-context-1.21.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-context/1.21.0/opentelemetry-context-1.21.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.22.0/opentelemetry-context-1.22.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-context/1.22.0/opentelemetry-context-1.22.0.jar" ], "packages": [ "io.opentelemetry.context", "io.opentelemetry.context.internal.shaded", "io.opentelemetry.context.propagation" ], - "sha256": "47e67fa50175096a48381801ae7041c1e2706d177aec467fa9c6d96f3dc50fe6", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.21.0/opentelemetry-context-1.21.0.jar" + "sha256": "9d1ca9fb9590c4ae146dcc2e74e563fc9561892d183880c655e2377023bae0f4", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.22.0/opentelemetry-context-1.22.0.jar" }, { - "coord": "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", + "coord": "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -3291,159 +3288,106 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.21.0/opentelemetry-context-1.21.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.22.0/opentelemetry-context-1.22.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.21.0/opentelemetry-context-1.21.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-context/1.21.0/opentelemetry-context-1.21.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.22.0/opentelemetry-context-1.22.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-context/1.22.0/opentelemetry-context-1.22.0-sources.jar" ], "packages": [], - "sha256": "e7f638c0a49e750b269f4d150eed4e0c8715b121613498b9a6511fb22dbff25a", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.21.0/opentelemetry-context-1.21.0-sources.jar" + "sha256": "a95bf0f523195c3a951da2c9624bf56e56e32cb343ace24a34da4636ad8c1d70", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.22.0/opentelemetry-context-1.22.0-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-exporter-common:1.21.0", + "coord": "io.opentelemetry:opentelemetry-exporter-logging:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0" + "io.opentelemetry:opentelemetry-api-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0" + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-common/1.21.0/opentelemetry-exporter-common-1.21.0.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.22.0/opentelemetry-exporter-logging-1.22.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-common/1.21.0/opentelemetry-exporter-common-1.21.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-exporter-common/1.21.0/opentelemetry-exporter-common-1.21.0.jar" - ], - "packages": [ - "io.opentelemetry.exporter.internal", - "io.opentelemetry.exporter.internal.auth", - "io.opentelemetry.exporter.internal.grpc", - "io.opentelemetry.exporter.internal.marshal", - "io.opentelemetry.exporter.internal.okhttp", - "io.opentelemetry.exporter.internal.retry" - ], - "sha256": "ac64f64844397976ab7d9ac8bc8ddc2eb57a7b86c08437b9b32c04c3329be3aa", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-common/1.21.0/opentelemetry-exporter-common-1.21.0.jar" - }, - { - "coord": "io.opentelemetry:opentelemetry-exporter-common:jar:sources:1.21.0", - "dependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0" - ], - "directDependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0" - ], - "exclusions": [ - "org.hamcrest:hamcrest-all", - "org.hamcrest:hamcrest-core", - "io.netty:netty-all" - ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-common/1.21.0/opentelemetry-exporter-common-1.21.0-sources.jar", - "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-common/1.21.0/opentelemetry-exporter-common-1.21.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-exporter-common/1.21.0/opentelemetry-exporter-common-1.21.0-sources.jar" - ], - "packages": [], - "sha256": "fdce25d2dfce914261136c07661251c60cae7c0aa32f7f5c1feae16cc3982f77", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-common/1.21.0/opentelemetry-exporter-common-1.21.0-sources.jar" - }, - { - "coord": "io.opentelemetry:opentelemetry-exporter-logging:1.21.0", - "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" - ], - "directDependencies": [ - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0" - ], - "exclusions": [ - "org.hamcrest:hamcrest-all", - "org.hamcrest:hamcrest-core", - "io.netty:netty-all" - ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.21.0/opentelemetry-exporter-logging-1.21.0.jar", - "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.21.0/opentelemetry-exporter-logging-1.21.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-exporter-logging/1.21.0/opentelemetry-exporter-logging-1.21.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.22.0/opentelemetry-exporter-logging-1.22.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-exporter-logging/1.22.0/opentelemetry-exporter-logging-1.22.0.jar" ], "packages": [ "io.opentelemetry.exporter.logging", "io.opentelemetry.exporter.logging.internal" ], - "sha256": "0e5b6a482bc94b50b0fadbacf0f5943e37dc953a19db7996b94e91f2e3f9b543", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.21.0/opentelemetry-exporter-logging-1.21.0.jar" + "sha256": "592706f0c5678b1ee83287d36dc58d0fc2b14fcd761bcd132d7e1366e69fb79f", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.22.0/opentelemetry-exporter-logging-1.22.0.jar" }, { - "coord": "io.opentelemetry:opentelemetry-exporter-logging:jar:sources:1.21.0", + "coord": "io.opentelemetry:opentelemetry-exporter-logging:jar:sources:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0" + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.21.0/opentelemetry-exporter-logging-1.21.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.22.0/opentelemetry-exporter-logging-1.22.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.21.0/opentelemetry-exporter-logging-1.21.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-exporter-logging/1.21.0/opentelemetry-exporter-logging-1.21.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.22.0/opentelemetry-exporter-logging-1.22.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-exporter-logging/1.22.0/opentelemetry-exporter-logging-1.22.0-sources.jar" ], "packages": [], - "sha256": "d34e97cdb96f5412aa41d767677e861be3f52537ec69f2ae3c137d330ecbc4c0", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.21.0/opentelemetry-exporter-logging-1.21.0-sources.jar" + "sha256": "6b4e2aba22593625975abfcaf048ab43275411685eb3eb67942715f7c27beb7b", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-logging/1.22.0/opentelemetry-exporter-logging-1.22.0-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-common:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk-common:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.21.0/opentelemetry-sdk-common-1.21.0.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.22.0/opentelemetry-sdk-common-1.22.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.21.0/opentelemetry-sdk-common-1.21.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-common/1.21.0/opentelemetry-sdk-common-1.21.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.22.0/opentelemetry-sdk-common-1.22.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-common/1.22.0/opentelemetry-sdk-common-1.22.0.jar" ], "packages": [ "io.opentelemetry.sdk.common", @@ -3451,63 +3395,63 @@ "io.opentelemetry.sdk.internal", "io.opentelemetry.sdk.resources" ], - "sha256": "6f790402983eb8a0f0622bf6f0334e4fbd86d27f3b6cc48a7ce9e2d0090e0a2e", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.21.0/opentelemetry-sdk-common-1.21.0.jar" + "sha256": "c6341a76582f490599fce1f4ebed54e651c57b8a891646adf38b19a66f47605e", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.22.0/opentelemetry-sdk-common-1.22.0.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.21.0/opentelemetry-sdk-common-1.21.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.22.0/opentelemetry-sdk-common-1.22.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.21.0/opentelemetry-sdk-common-1.21.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-common/1.21.0/opentelemetry-sdk-common-1.21.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.22.0/opentelemetry-sdk-common-1.22.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-common/1.22.0/opentelemetry-sdk-common-1.22.0-sources.jar" ], "packages": [ "io.opentelemetry.sdk.internal" ], - "sha256": "4bbb24ccd46cffa28e7e186b5af29108ba5f7f6092569bbe579087a9fe484c03", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.21.0/opentelemetry-sdk-common-1.21.0-sources.jar" + "sha256": "d0c0306f41603adc4e1ba3cece93344bb9a0e8b9df9a35ef5b0b4ff9ad7762f4", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/1.22.0/opentelemetry-sdk-common-1.22.0-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-sdk-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0" + "io.opentelemetry:opentelemetry-sdk-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.21.0/opentelemetry-sdk-extension-autoconfigure-spi-1.21.0.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.22.0/opentelemetry-sdk-extension-autoconfigure-spi-1.22.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.21.0/opentelemetry-sdk-extension-autoconfigure-spi-1.21.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.21.0/opentelemetry-sdk-extension-autoconfigure-spi-1.21.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.22.0/opentelemetry-sdk-extension-autoconfigure-spi-1.22.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.22.0/opentelemetry-sdk-extension-autoconfigure-spi-1.22.0.jar" ], "packages": [ "io.opentelemetry.sdk.autoconfigure.spi", @@ -3516,196 +3460,192 @@ "io.opentelemetry.sdk.autoconfigure.spi.metrics", "io.opentelemetry.sdk.autoconfigure.spi.traces" ], - "sha256": "81ffe826a81d930cd2ce77875bd9e03d60d7ba3f45baa992d0c418f7deb19e7c", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.21.0/opentelemetry-sdk-extension-autoconfigure-spi-1.21.0.jar" + "sha256": "3c53ae3523a7516fcfdab146a75a05c825cdfde3cebea52fcebe028801f32e46", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.22.0/opentelemetry-sdk-extension-autoconfigure-spi-1.22.0.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0" + "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.21.0/opentelemetry-sdk-extension-autoconfigure-spi-1.21.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.22.0/opentelemetry-sdk-extension-autoconfigure-spi-1.22.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.21.0/opentelemetry-sdk-extension-autoconfigure-spi-1.21.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.21.0/opentelemetry-sdk-extension-autoconfigure-spi-1.21.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.22.0/opentelemetry-sdk-extension-autoconfigure-spi-1.22.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.22.0/opentelemetry-sdk-extension-autoconfigure-spi-1.22.0-sources.jar" ], "packages": [], - "sha256": "78ace897d07d7b2e2958768ada8b06baa2db2690ebc5ebe1550f648276576473", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.21.0/opentelemetry-sdk-extension-autoconfigure-spi-1.21.0-sources.jar" + "sha256": "fe1acb1f2fd2c1104f1cb3384a9e0fcfe4a419da0469ae9fc263b7b5a28befee", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.22.0/opentelemetry-sdk-extension-autoconfigure-spi-1.22.0-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.21.0-alpha", + "coord": "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.22.0-alpha", "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-exporter-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-exporter-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.21.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.21.0-alpha.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.22.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.22.0-alpha.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.21.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.21.0-alpha.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.21.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.21.0-alpha.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.22.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.22.0-alpha.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.22.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.22.0-alpha.jar" ], "packages": [ "io.opentelemetry.sdk.autoconfigure" ], - "sha256": "62d18db08827b6abd896c41cc33d094cf2e0cd12f5afa213257bac888acbda90", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.21.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.21.0-alpha.jar" + "sha256": "2ab7e335ed0fa7cf7740dec5b98f644630416aae138c38353ac8395ea2cf8c46", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.22.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.22.0-alpha.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:jar:sources:1.21.0-alpha", + "coord": "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:jar:sources:1.22.0-alpha", "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-exporter-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-exporter-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.21.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.21.0-alpha-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.22.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.22.0-alpha-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.21.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.21.0-alpha-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.21.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.21.0-alpha-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.22.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.22.0-alpha-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.22.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.22.0-alpha-sources.jar" ], "packages": [], - "sha256": "fdba43267109fde9c3c619bec8f4c34aaf43cedaf29abbfe96d34754b8a805c1", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.21.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.21.0-alpha-sources.jar" + "sha256": "964cc8ee3ccf8a048d131e373a8eb88cc7928a075116635bb54f613c00b014f1", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.22.0-alpha/opentelemetry-sdk-extension-autoconfigure-1.22.0-alpha-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-logs:1.21.0-alpha", + "coord": "io.opentelemetry:opentelemetry-sdk-logs:1.22.0-alpha", "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0" + "io.opentelemetry:opentelemetry-api-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.21.0-alpha/opentelemetry-sdk-logs-1.21.0-alpha.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.22.0-alpha/opentelemetry-sdk-logs-1.22.0-alpha.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.21.0-alpha/opentelemetry-sdk-logs-1.21.0-alpha.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-logs/1.21.0-alpha/opentelemetry-sdk-logs-1.21.0-alpha.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.22.0-alpha/opentelemetry-sdk-logs-1.22.0-alpha.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-logs/1.22.0-alpha/opentelemetry-sdk-logs-1.22.0-alpha.jar" ], "packages": [ "io.opentelemetry.sdk.logs", "io.opentelemetry.sdk.logs.data", "io.opentelemetry.sdk.logs.export" ], - "sha256": "dfe34703b3019f9bc795e98f10b5eca060162ab4b80a2351691333b59a22c56e", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.21.0-alpha/opentelemetry-sdk-logs-1.21.0-alpha.jar" + "sha256": "aa625e0c30683e380e88695f22f58fa292cc0e1a43ed0a07569750b81775d9e7", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.22.0-alpha/opentelemetry-sdk-logs-1.22.0-alpha.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.21.0-alpha", + "coord": "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.22.0-alpha", "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0" + "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.21.0-alpha/opentelemetry-sdk-logs-1.21.0-alpha-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.22.0-alpha/opentelemetry-sdk-logs-1.22.0-alpha-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.21.0-alpha/opentelemetry-sdk-logs-1.21.0-alpha-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-logs/1.21.0-alpha/opentelemetry-sdk-logs-1.21.0-alpha-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.22.0-alpha/opentelemetry-sdk-logs-1.22.0-alpha-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-logs/1.22.0-alpha/opentelemetry-sdk-logs-1.22.0-alpha-sources.jar" ], "packages": [], - "sha256": "c1db75833418f87ede7b53a9802adcee66489381f3544f805c71261167c9f09a", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.21.0-alpha/opentelemetry-sdk-logs-1.21.0-alpha-sources.jar" + "sha256": "6299e1a3db5a0846b4be51b6e8127cb3c4675de2e0289f9657e4373763048f4b", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/1.22.0-alpha/opentelemetry-sdk-logs-1.22.0-alpha-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-metrics:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk-metrics:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0" + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.21.0/opentelemetry-sdk-metrics-1.21.0.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.22.0/opentelemetry-sdk-metrics-1.22.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.21.0/opentelemetry-sdk-metrics-1.21.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-metrics/1.21.0/opentelemetry-sdk-metrics-1.21.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.22.0/opentelemetry-sdk-metrics-1.22.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-metrics/1.22.0/opentelemetry-sdk-metrics-1.22.0.jar" ], "packages": [ "io.opentelemetry.sdk.metrics", @@ -3724,62 +3664,62 @@ "io.opentelemetry.sdk.metrics.internal.state", "io.opentelemetry.sdk.metrics.internal.view" ], - "sha256": "887be9b3bbe17fbe3373642249ab85f0dc18549a034221e06ecedf1ab309a0f4", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.21.0/opentelemetry-sdk-metrics-1.21.0.jar" + "sha256": "d9e26a71571014a386cba0cf2bed95b3751db70d0d6f8999f8d475d840a59203", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.22.0/opentelemetry-sdk-metrics-1.22.0.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.21.0/opentelemetry-sdk-metrics-1.21.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.22.0/opentelemetry-sdk-metrics-1.22.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.21.0/opentelemetry-sdk-metrics-1.21.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-metrics/1.21.0/opentelemetry-sdk-metrics-1.21.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.22.0/opentelemetry-sdk-metrics-1.22.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-metrics/1.22.0/opentelemetry-sdk-metrics-1.22.0-sources.jar" ], "packages": [], - "sha256": "34cf60c869bc5ebaaafbc76e5d63738bd00126ee735c54bcd4371791654f8c6f", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.21.0/opentelemetry-sdk-metrics-1.21.0-sources.jar" + "sha256": "85745a4e47572f6bc5413f199ac86e0f6afef91188b69063d414b9545ff93816", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/1.22.0/opentelemetry-sdk-metrics-1.22.0-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-testing:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk-testing:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.21.0/opentelemetry-sdk-testing-1.21.0.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.22.0/opentelemetry-sdk-testing-1.22.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.21.0/opentelemetry-sdk-testing-1.21.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-testing/1.21.0/opentelemetry-sdk-testing-1.21.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.22.0/opentelemetry-sdk-testing-1.22.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-testing/1.22.0/opentelemetry-sdk-testing-1.22.0.jar" ], "packages": [ "io.opentelemetry.sdk.testing.assertj", @@ -3790,63 +3730,63 @@ "io.opentelemetry.sdk.testing.time", "io.opentelemetry.sdk.testing.trace" ], - "sha256": "2a570fc08fcd283eb1ee9476240142fda93563af211df3e06ebe8dd919b34ea5", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.21.0/opentelemetry-sdk-testing-1.21.0.jar" + "sha256": "20b16c6b53433dd9fc4fd606c70282fd3019550a6748083d0da6ef23bc48803d", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.22.0/opentelemetry-sdk-testing-1.22.0.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-testing:jar:sources:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk-testing:jar:sources:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.21.0/opentelemetry-sdk-testing-1.21.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.22.0/opentelemetry-sdk-testing-1.22.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.21.0/opentelemetry-sdk-testing-1.21.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-testing/1.21.0/opentelemetry-sdk-testing-1.21.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.22.0/opentelemetry-sdk-testing-1.22.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-testing/1.22.0/opentelemetry-sdk-testing-1.22.0-sources.jar" ], "packages": [], - "sha256": "09bf133499a49cf85a065e2e3fff9ab8da1c197a2a72e3163d782a7cea8f9596", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.21.0/opentelemetry-sdk-testing-1.21.0-sources.jar" + "sha256": "50ff05961232b9b3ea044e9fdb1a07a3d7e7e24c1c24e15010e53d8016ed6c3b", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-testing/1.22.0/opentelemetry-sdk-testing-1.22.0-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-trace:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk-trace:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.21.0/opentelemetry-sdk-trace-1.21.0.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.22.0/opentelemetry-sdk-trace-1.22.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.21.0/opentelemetry-sdk-trace-1.21.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-trace/1.21.0/opentelemetry-sdk-trace-1.21.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.22.0/opentelemetry-sdk-trace-1.22.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-trace/1.22.0/opentelemetry-sdk-trace-1.22.0.jar" ], "packages": [ "io.opentelemetry.internal.shaded.jctools.queues", @@ -3858,152 +3798,152 @@ "io.opentelemetry.sdk.trace.internal.data", "io.opentelemetry.sdk.trace.samplers" ], - "sha256": "73fe14afdc20dc46d631ed1c9144cf5284a30222f66eda24c0ffae56132912b7", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.21.0/opentelemetry-sdk-trace-1.21.0.jar" + "sha256": "cf2da87580ff5bfa5c7b061597abd8b9d5af0c89d1af2b98071ead1a93c41015", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.22.0/opentelemetry-sdk-trace-1.22.0.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.21.0/opentelemetry-sdk-trace-1.21.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.22.0/opentelemetry-sdk-trace-1.22.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.21.0/opentelemetry-sdk-trace-1.21.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-trace/1.21.0/opentelemetry-sdk-trace-1.21.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.22.0/opentelemetry-sdk-trace-1.22.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk-trace/1.22.0/opentelemetry-sdk-trace-1.22.0-sources.jar" ], "packages": [], - "sha256": "bec649efa8fabb6e75ce155b2f73acf22a2b603eefbf7622ee3ac11bf0fb6085", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.21.0/opentelemetry-sdk-trace-1.21.0-sources.jar" + "sha256": "fb0da17f1e8790e369369326b10f8b78878d9663f962efa0bb9671e9eb909ff6", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/1.22.0/opentelemetry-sdk-trace-1.22.0-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:1.21.0" + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.21.0/opentelemetry-sdk-1.21.0.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.22.0/opentelemetry-sdk-1.22.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.21.0/opentelemetry-sdk-1.21.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk/1.21.0/opentelemetry-sdk-1.21.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.22.0/opentelemetry-sdk-1.22.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk/1.22.0/opentelemetry-sdk-1.22.0.jar" ], "packages": [ "io.opentelemetry.sdk" ], - "sha256": "48b20e41a42d244aac5d0da5409903f44b320db18ebc22e28a1a7f7982cd9a8c", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.21.0/opentelemetry-sdk-1.21.0.jar" + "sha256": "517f5ce4a2df678d2ea9dd0a253af86a02b7366de15a3e2420b904fe026600e6", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.22.0/opentelemetry-sdk-1.22.0.jar" }, { - "coord": "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0", + "coord": "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0", "dependencies": [ - "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha" + "io.opentelemetry:opentelemetry-api-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.21.0" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-logs:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-metrics:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.21.0/opentelemetry-sdk-1.21.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.22.0/opentelemetry-sdk-1.22.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.21.0/opentelemetry-sdk-1.21.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk/1.21.0/opentelemetry-sdk-1.21.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.22.0/opentelemetry-sdk-1.22.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk/1.22.0/opentelemetry-sdk-1.22.0-sources.jar" ], "packages": [], - "sha256": "42a0cbd4f264cec26b4ed862f5b212c2ac526c949e0cf70ec81d01b7dee592ed", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.21.0/opentelemetry-sdk-1.21.0-sources.jar" + "sha256": "1237d62a5d8a31620cd8f622a55524a6ba18a5ab759eac9c34f0e08d570be8f5", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/1.22.0/opentelemetry-sdk-1.22.0-sources.jar" }, { - "coord": "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha", + "coord": "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha", "dependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0" + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:1.21.0" + "io.opentelemetry:opentelemetry-api:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.21.0-alpha/opentelemetry-semconv-1.21.0-alpha.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.22.0-alpha/opentelemetry-semconv-1.22.0-alpha.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.21.0-alpha/opentelemetry-semconv-1.21.0-alpha.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-semconv/1.21.0-alpha/opentelemetry-semconv-1.21.0-alpha.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.22.0-alpha/opentelemetry-semconv-1.22.0-alpha.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-semconv/1.22.0-alpha/opentelemetry-semconv-1.22.0-alpha.jar" ], "packages": [ "io.opentelemetry.semconv.resource.attributes", "io.opentelemetry.semconv.trace.attributes" ], - "sha256": "4a8f41b93eec51e85fa6b48e43de6785b742316fdd9c9baf595adbce6d5de6af", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.21.0-alpha/opentelemetry-semconv-1.21.0-alpha.jar" + "sha256": "44a566f1bcbeca8a84821f6369880727e90b1f92061304081ef9587b4d2fb446", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.22.0-alpha/opentelemetry-semconv-1.22.0-alpha.jar" }, { - "coord": "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha", + "coord": "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha", "dependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0" ], "directDependencies": [ - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0" + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.21.0-alpha/opentelemetry-semconv-1.21.0-alpha-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.22.0-alpha/opentelemetry-semconv-1.22.0-alpha-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.21.0-alpha/opentelemetry-semconv-1.21.0-alpha-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-semconv/1.21.0-alpha/opentelemetry-semconv-1.21.0-alpha-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.22.0-alpha/opentelemetry-semconv-1.22.0-alpha-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-semconv/1.22.0-alpha/opentelemetry-semconv-1.22.0-alpha-sources.jar" ], "packages": [], - "sha256": "411cf66202ee390de3563ecf79c800c91899ecf7153a08e3ca24b07642402b39", - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.21.0-alpha/opentelemetry-semconv-1.21.0-alpha-sources.jar" + "sha256": "21ad0878b16a26a1c6571b3f79dbd9ac7413129ff7e884d2fbb77848abeab934", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-semconv/1.22.0-alpha/opentelemetry-semconv-1.22.0-alpha-sources.jar" }, { "coord": "io.ous:jtoml:2.0.0", @@ -4492,7 +4432,7 @@ "url": "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.19/byte-buddy-agent-1.12.19-sources.jar" }, { - "coord": "net.bytebuddy:byte-buddy:1.12.20", + "coord": "net.bytebuddy:byte-buddy:1.12.22", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -4500,10 +4440,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.20/byte-buddy-1.12.20.jar", + "file": "v1/https/repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.22/byte-buddy-1.12.22.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.20/byte-buddy-1.12.20.jar", - "https://maven.google.com/net/bytebuddy/byte-buddy/1.12.20/byte-buddy-1.12.20.jar" + "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.22/byte-buddy-1.12.22.jar", + "https://maven.google.com/net/bytebuddy/byte-buddy/1.12.22/byte-buddy-1.12.22.jar" ], "packages": [ "net.bytebuddy", @@ -4545,11 +4485,11 @@ "net.bytebuddy.utility.privilege", "net.bytebuddy.utility.visitor" ], - "sha256": "0a9b2795e0e2391117062f0fc7f6ae98fa3c2a7c927847ff1e01bb7cffcd9167", - "url": "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.20/byte-buddy-1.12.20.jar" + "sha256": "c866ff077d0f00f97ae91a07efcf9a3d7a815db4a91d15a8e857359dfd12b03c", + "url": "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.22/byte-buddy-1.12.22.jar" }, { - "coord": "net.bytebuddy:byte-buddy:jar:sources:1.12.20", + "coord": "net.bytebuddy:byte-buddy:jar:sources:1.12.22", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -4557,16 +4497,16 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.20/byte-buddy-1.12.20-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.22/byte-buddy-1.12.22-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.20/byte-buddy-1.12.20-sources.jar", - "https://maven.google.com/net/bytebuddy/byte-buddy/1.12.20/byte-buddy-1.12.20-sources.jar" + "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.22/byte-buddy-1.12.22-sources.jar", + "https://maven.google.com/net/bytebuddy/byte-buddy/1.12.22/byte-buddy-1.12.22-sources.jar" ], "packages": [ "net.bytebuddy.build" ], - "sha256": "f038f39541be164aaaa9f4240124da4c3b26085d1a834ccd1475f80fe1165e27", - "url": "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.20/byte-buddy-1.12.20-sources.jar" + "sha256": "21c91c54149c12f726edb7cad5ae12030aa39259ef19322666b8329c8dc03e25", + "url": "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.12.22/byte-buddy-1.12.22-sources.jar" }, { "coord": "net.jcip:jcip-annotations:1.0", @@ -4726,7 +4666,7 @@ "url": "https://repo1.maven.org/maven2/net/sf/saxon/Saxon-HE/11.4/Saxon-HE-11.4-sources.jar" }, { - "coord": "net.sourceforge.htmlunit:htmlunit-core-js:2.67.0", + "coord": "net.sourceforge.htmlunit:htmlunit-core-js:2.69.0", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -4734,10 +4674,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.67.0/htmlunit-core-js-2.67.0.jar", + "file": "v1/https/repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.69.0/htmlunit-core-js-2.69.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.67.0/htmlunit-core-js-2.67.0.jar", - "https://maven.google.com/net/sourceforge/htmlunit/htmlunit-core-js/2.67.0/htmlunit-core-js-2.67.0.jar" + "https://repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.69.0/htmlunit-core-js-2.69.0.jar", + "https://maven.google.com/net/sourceforge/htmlunit/htmlunit-core-js/2.69.0/htmlunit-core-js-2.69.0.jar" ], "packages": [ "net.sourceforge.htmlunit.corejs.classfile", @@ -4761,11 +4701,11 @@ "net.sourceforge.htmlunit.corejs.javascript.v8dtoa", "net.sourceforge.htmlunit.corejs.javascript.xml" ], - "sha256": "04359a69ac6b655dc7c33f0b0ad3ea1cf475861eae84728f6420d18448ffac7f", - "url": "https://repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.67.0/htmlunit-core-js-2.67.0.jar" + "sha256": "38909b94a8a004f9684a7e7a40dcae0c157bf9d72e8a9ddd4c0d2ffd7f899c56", + "url": "https://repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.69.0/htmlunit-core-js-2.69.0.jar" }, { - "coord": "net.sourceforge.htmlunit:htmlunit-core-js:jar:sources:2.67.0", + "coord": "net.sourceforge.htmlunit:htmlunit-core-js:jar:sources:2.69.0", "dependencies": [], "directDependencies": [], "exclusions": [ @@ -4773,14 +4713,14 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.67.0/htmlunit-core-js-2.67.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.69.0/htmlunit-core-js-2.69.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.67.0/htmlunit-core-js-2.67.0-sources.jar", - "https://maven.google.com/net/sourceforge/htmlunit/htmlunit-core-js/2.67.0/htmlunit-core-js-2.67.0-sources.jar" + "https://repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.69.0/htmlunit-core-js-2.69.0-sources.jar", + "https://maven.google.com/net/sourceforge/htmlunit/htmlunit-core-js/2.69.0/htmlunit-core-js-2.69.0-sources.jar" ], "packages": [], - "sha256": "c895caec7d3ef991a8d8531e909a942ceae09e32581f98f553fffc17c2e6838d", - "url": "https://repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.67.0/htmlunit-core-js-2.67.0-sources.jar" + "sha256": "9b7b4ca09675da7cfadb03a544a82a3023f2f4043f305eb93d113a335d36d683", + "url": "https://repo1.maven.org/maven2/net/sourceforge/htmlunit/htmlunit-core-js/2.69.0/htmlunit-core-js-2.69.0-sources.jar" }, { "coord": "net.sourceforge.htmlunit:htmlunit-cssparser:1.12.0", @@ -4883,7 +4823,7 @@ "commons-io:commons-io:2.10.0", "commons-logging:commons-logging:1.2", "commons-net:commons-net:3.8.0", - "net.sourceforge.htmlunit:htmlunit-core-js:2.67.0", + "net.sourceforge.htmlunit:htmlunit-core-js:2.69.0", "net.sourceforge.htmlunit:htmlunit-cssparser:1.12.0", "net.sourceforge.htmlunit:htmlunit-xpath:2.67.0", "net.sourceforge.htmlunit:neko-htmlunit:2.67.0", @@ -4909,7 +4849,7 @@ "commons-io:commons-io:2.10.0", "commons-logging:commons-logging:1.2", "commons-net:commons-net:3.8.0", - "net.sourceforge.htmlunit:htmlunit-core-js:2.67.0", + "net.sourceforge.htmlunit:htmlunit-core-js:2.69.0", "net.sourceforge.htmlunit:htmlunit-cssparser:1.12.0", "net.sourceforge.htmlunit:htmlunit-xpath:2.67.0", "net.sourceforge.htmlunit:neko-htmlunit:2.67.0", @@ -5000,7 +4940,7 @@ "commons-io:commons-io:jar:sources:2.10.0", "commons-logging:commons-logging:jar:sources:1.2", "commons-net:commons-net:jar:sources:3.8.0", - "net.sourceforge.htmlunit:htmlunit-core-js:jar:sources:2.67.0", + "net.sourceforge.htmlunit:htmlunit-core-js:jar:sources:2.69.0", "net.sourceforge.htmlunit:htmlunit-cssparser:jar:sources:1.12.0", "net.sourceforge.htmlunit:htmlunit-xpath:jar:sources:2.67.0", "net.sourceforge.htmlunit:neko-htmlunit:jar:sources:2.67.0", @@ -5026,7 +4966,7 @@ "commons-io:commons-io:jar:sources:2.10.0", "commons-logging:commons-logging:jar:sources:1.2", "commons-net:commons-net:jar:sources:3.8.0", - "net.sourceforge.htmlunit:htmlunit-core-js:jar:sources:2.67.0", + "net.sourceforge.htmlunit:htmlunit-core-js:jar:sources:2.69.0", "net.sourceforge.htmlunit:htmlunit-cssparser:jar:sources:1.12.0", "net.sourceforge.htmlunit:htmlunit-xpath:jar:sources:2.67.0", "net.sourceforge.htmlunit:neko-htmlunit:jar:sources:2.67.0", @@ -5875,22 +5815,22 @@ "url": "https://repo1.maven.org/maven2/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2-sources.jar" }, { - "coord": "org.assertj:assertj-core:3.23.1", + "coord": "org.assertj:assertj-core:3.24.2", "dependencies": [ - "net.bytebuddy:byte-buddy:1.12.20" + "net.bytebuddy:byte-buddy:1.12.22" ], "directDependencies": [ - "net.bytebuddy:byte-buddy:1.12.20" + "net.bytebuddy:byte-buddy:1.12.22" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/assertj/assertj-core/3.23.1/assertj-core-3.23.1.jar", + "file": "v1/https/repo1.maven.org/maven2/org/assertj/assertj-core/3.24.2/assertj-core-3.24.2.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/assertj/assertj-core/3.23.1/assertj-core-3.23.1.jar", - "https://maven.google.com/org/assertj/assertj-core/3.23.1/assertj-core-3.23.1.jar" + "https://repo1.maven.org/maven2/org/assertj/assertj-core/3.24.2/assertj-core-3.24.2.jar", + "https://maven.google.com/org/assertj/assertj-core/3.24.2/assertj-core-3.24.2.jar" ], "packages": [ "org.assertj.core.annotations", @@ -5899,6 +5839,8 @@ "org.assertj.core.api.filter", "org.assertj.core.api.iterable", "org.assertj.core.api.junit.jupiter", + "org.assertj.core.api.recursive", + "org.assertj.core.api.recursive.assertion", "org.assertj.core.api.recursive.comparison", "org.assertj.core.condition", "org.assertj.core.configuration", @@ -5919,41 +5861,41 @@ "org.assertj.core.util.introspection", "org.assertj.core.util.xml" ], - "sha256": "36af798af9fc20537669e02618bd39f2c797f4813824ef222108cb686fa4c88e", - "url": "https://repo1.maven.org/maven2/org/assertj/assertj-core/3.23.1/assertj-core-3.23.1.jar" + "sha256": "df3d0b348f1fe806bdddcb10fa4ae63c6679e9888d4bc7055f09848517976aa3", + "url": "https://repo1.maven.org/maven2/org/assertj/assertj-core/3.24.2/assertj-core-3.24.2.jar" }, { - "coord": "org.assertj:assertj-core:jar:sources:3.23.1", + "coord": "org.assertj:assertj-core:jar:sources:3.24.2", "dependencies": [ - "net.bytebuddy:byte-buddy:jar:sources:1.12.20" + "net.bytebuddy:byte-buddy:jar:sources:1.12.22" ], "directDependencies": [ - "net.bytebuddy:byte-buddy:jar:sources:1.12.20" + "net.bytebuddy:byte-buddy:jar:sources:1.12.22" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/assertj/assertj-core/3.23.1/assertj-core-3.23.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/assertj/assertj-core/3.24.2/assertj-core-3.24.2-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/assertj/assertj-core/3.23.1/assertj-core-3.23.1-sources.jar", - "https://maven.google.com/org/assertj/assertj-core/3.23.1/assertj-core-3.23.1-sources.jar" + "https://repo1.maven.org/maven2/org/assertj/assertj-core/3.24.2/assertj-core-3.24.2-sources.jar", + "https://maven.google.com/org/assertj/assertj-core/3.24.2/assertj-core-3.24.2-sources.jar" ], "packages": [], - "sha256": "985cb9f6be2851c381fe2836b196393d7df04cb29683ba2a11692c577a929525", - "url": "https://repo1.maven.org/maven2/org/assertj/assertj-core/3.23.1/assertj-core-3.23.1-sources.jar" + "sha256": "67cbf29f82539b16e985a073937b19373443af000983986d05a5962ff9108fa7", + "url": "https://repo1.maven.org/maven2/org/assertj/assertj-core/3.24.2/assertj-core-3.24.2-sources.jar" }, { "coord": "org.asynchttpclient:async-http-client-netty-utils:2.12.3", "dependencies": [ "com.sun.activation:jakarta.activation:1.2.2", - "io.netty:netty-buffer:4.1.86.Final", + "io.netty:netty-buffer:4.1.87.Final", "org.slf4j:slf4j-api:2.0.6" ], "directDependencies": [ "com.sun.activation:jakarta.activation:1.2.2", - "io.netty:netty-buffer:4.1.86.Final", + "io.netty:netty-buffer:4.1.87.Final", "org.slf4j:slf4j-api:2.0.6" ], "exclusions": [ @@ -5976,12 +5918,12 @@ "coord": "org.asynchttpclient:async-http-client-netty-utils:jar:sources:2.12.3", "dependencies": [ "com.sun.activation:jakarta.activation:jar:sources:1.2.2", - "io.netty:netty-buffer:jar:sources:4.1.86.Final", + "io.netty:netty-buffer:jar:sources:4.1.87.Final", "org.slf4j:slf4j-api:jar:sources:2.0.6" ], "directDependencies": [ "com.sun.activation:jakarta.activation:jar:sources:1.2.2", - "io.netty:netty-buffer:jar:sources:4.1.86.Final", + "io.netty:netty-buffer:jar:sources:4.1.87.Final", "org.slf4j:slf4j-api:jar:sources:2.0.6" ], "exclusions": [ @@ -6003,11 +5945,11 @@ "dependencies": [ "com.sun.activation:jakarta.activation:1.2.2", "com.typesafe.netty:netty-reactive-streams:2.0.4", - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec-http:4.1.86.Final", - "io.netty:netty-codec-socks:4.1.86.Final", - "io.netty:netty-handler-proxy:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec-http:4.1.87.Final", + "io.netty:netty-codec-socks:4.1.87.Final", + "io.netty:netty-handler-proxy:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", "org.asynchttpclient:async-http-client-netty-utils:2.12.3", "org.reactivestreams:reactive-streams:1.0.4", "org.slf4j:slf4j-api:2.0.6" @@ -6015,10 +5957,10 @@ "directDependencies": [ "com.sun.activation:jakarta.activation:1.2.2", "com.typesafe.netty:netty-reactive-streams:2.0.4", - "io.netty:netty-codec-http:4.1.86.Final", - "io.netty:netty-codec-socks:4.1.86.Final", - "io.netty:netty-handler-proxy:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", + "io.netty:netty-codec-http:4.1.87.Final", + "io.netty:netty-codec-socks:4.1.87.Final", + "io.netty:netty-handler-proxy:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", "org.asynchttpclient:async-http-client-netty-utils:2.12.3", "org.reactivestreams:reactive-streams:1.0.4", "org.slf4j:slf4j-api:2.0.6" @@ -6076,11 +6018,11 @@ "dependencies": [ "com.sun.activation:jakarta.activation:jar:sources:1.2.2", "com.typesafe.netty:netty-reactive-streams:jar:sources:2.0.4", - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec-http:jar:sources:4.1.86.Final", - "io.netty:netty-codec-socks:jar:sources:4.1.86.Final", - "io.netty:netty-handler-proxy:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec-http:jar:sources:4.1.87.Final", + "io.netty:netty-codec-socks:jar:sources:4.1.87.Final", + "io.netty:netty-handler-proxy:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", "org.asynchttpclient:async-http-client-netty-utils:jar:sources:2.12.3", "org.reactivestreams:reactive-streams:jar:sources:1.0.4", "org.slf4j:slf4j-api:jar:sources:2.0.6" @@ -6088,10 +6030,10 @@ "directDependencies": [ "com.sun.activation:jakarta.activation:jar:sources:1.2.2", "com.typesafe.netty:netty-reactive-streams:jar:sources:2.0.4", - "io.netty:netty-codec-http:jar:sources:4.1.86.Final", - "io.netty:netty-codec-socks:jar:sources:4.1.86.Final", - "io.netty:netty-handler-proxy:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", + "io.netty:netty-codec-http:jar:sources:4.1.87.Final", + "io.netty:netty-codec-socks:jar:sources:4.1.87.Final", + "io.netty:netty-handler-proxy:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", "org.asynchttpclient:async-http-client-netty-utils:jar:sources:2.12.3", "org.reactivestreams:reactive-streams:jar:sources:1.0.4", "org.slf4j:slf4j-api:jar:sources:2.0.6" @@ -6658,10 +6600,10 @@ { "coord": "org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5", "dependencies": [ - "com.google.code.gson:gson:2.10" + "com.google.code.gson:gson:2.10.1" ], "directDependencies": [ - "com.google.code.gson:gson:2.10" + "com.google.code.gson:gson:2.10.1" ], "exclusions": [ "org.hamcrest:hamcrest-all", @@ -6686,10 +6628,10 @@ { "coord": "org.eclipse.mylyn.github:org.eclipse.egit.github.core:jar:sources:2.1.5", "dependencies": [ - "com.google.code.gson:gson:jar:sources:2.10" + "com.google.code.gson:gson:jar:sources:2.10.1" ], "directDependencies": [ - "com.google.code.gson:gson:jar:sources:2.10" + "com.google.code.gson:gson:jar:sources:2.10.1" ], "exclusions": [ "org.hamcrest:hamcrest-all", @@ -7010,15 +6952,15 @@ "url": "https://repo1.maven.org/maven2/org/jodd/jodd-core/5.1.6/jodd-core-5.1.6-sources.jar" }, { - "coord": "org.junit.jupiter:junit-jupiter-api:5.9.1", + "coord": "org.junit.jupiter:junit-jupiter-api:5.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-commons:1.9.1", + "org.junit.platform:junit-platform-commons:1.9.2", "org.opentest4j:opentest4j:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-commons:1.9.1", + "org.junit.platform:junit-platform-commons:1.9.2", "org.opentest4j:opentest4j:1.2.0" ], "exclusions": [ @@ -7026,10 +6968,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.1/junit-jupiter-api-5.9.1.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.2/junit-jupiter-api-5.9.2.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.1/junit-jupiter-api-5.9.1.jar", - "https://maven.google.com/org/junit/jupiter/junit-jupiter-api/5.9.1/junit-jupiter-api-5.9.1.jar" + "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.2/junit-jupiter-api-5.9.2.jar", + "https://maven.google.com/org/junit/jupiter/junit-jupiter-api/5.9.2/junit-jupiter-api-5.9.2.jar" ], "packages": [ "org.junit.jupiter.api", @@ -7040,19 +6982,19 @@ "org.junit.jupiter.api.io", "org.junit.jupiter.api.parallel" ], - "sha256": "5d2fe4d719dffb25a95d77e9c7a34893cbbb1b4cc6c86f2726af7e0fb7035b2f", - "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.1/junit-jupiter-api-5.9.1.jar" + "sha256": "f767a170f97127b0ad3582bf3358eabbbbe981d9f96411853e629d9276926fd5", + "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.2/junit-jupiter-api-5.9.2.jar" }, { - "coord": "org.junit.jupiter:junit-jupiter-api:jar:sources:5.9.1", + "coord": "org.junit.jupiter:junit-jupiter-api:jar:sources:5.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1", + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2", "org.opentest4j:opentest4j:jar:sources:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1", + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2", "org.opentest4j:opentest4j:jar:sources:1.2.0" ], "exclusions": [ @@ -7060,38 +7002,38 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.1/junit-jupiter-api-5.9.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.2/junit-jupiter-api-5.9.2-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.1/junit-jupiter-api-5.9.1-sources.jar", - "https://maven.google.com/org/junit/jupiter/junit-jupiter-api/5.9.1/junit-jupiter-api-5.9.1-sources.jar" + "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.2/junit-jupiter-api-5.9.2-sources.jar", + "https://maven.google.com/org/junit/jupiter/junit-jupiter-api/5.9.2/junit-jupiter-api-5.9.2-sources.jar" ], "packages": [], - "sha256": "de2acca1273731093e74eec6d267c36b80c34cfdd7b0e7c7708163604c17770e", - "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.1/junit-jupiter-api-5.9.1-sources.jar" + "sha256": "2b04279c000da27679100d5854d3045a09c2a9a4cda942777f0b0519bb9f295d", + "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.2/junit-jupiter-api-5.9.2-sources.jar" }, { - "coord": "org.junit.jupiter:junit-jupiter-engine:5.9.1", + "coord": "org.junit.jupiter:junit-jupiter-engine:5.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.jupiter:junit-jupiter-api:5.9.1", - "org.junit.platform:junit-platform-commons:1.9.1", - "org.junit.platform:junit-platform-engine:1.9.1", + "org.junit.jupiter:junit-jupiter-api:5.9.2", + "org.junit.platform:junit-platform-commons:1.9.2", + "org.junit.platform:junit-platform-engine:1.9.2", "org.opentest4j:opentest4j:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.jupiter:junit-jupiter-api:5.9.1", - "org.junit.platform:junit-platform-engine:1.9.1" + "org.junit.jupiter:junit-jupiter-api:5.9.2", + "org.junit.platform:junit-platform-engine:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.1/junit-jupiter-engine-5.9.1.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.2/junit-jupiter-engine-5.9.2.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.1/junit-jupiter-engine-5.9.1.jar", - "https://maven.google.com/org/junit/jupiter/junit-jupiter-engine/5.9.1/junit-jupiter-engine-5.9.1.jar" + "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.2/junit-jupiter-engine-5.9.2.jar", + "https://maven.google.com/org/junit/jupiter/junit-jupiter-engine/5.9.2/junit-jupiter-engine-5.9.2.jar" ], "packages": [ "org.junit.jupiter.engine", @@ -7103,58 +7045,58 @@ "org.junit.jupiter.engine.extension", "org.junit.jupiter.engine.support" ], - "sha256": "8bbc506b4f603ede1f6bafd8eee69a9cc43de0c26a0ee8d40d583d3feeedc2e9", - "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.1/junit-jupiter-engine-5.9.1.jar" + "sha256": "74cfc49388f760413ff348ca2c9ab39527484b57deecd157f2275a5f8a5fe971", + "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.2/junit-jupiter-engine-5.9.2.jar" }, { - "coord": "org.junit.jupiter:junit-jupiter-engine:jar:sources:5.9.1", + "coord": "org.junit.jupiter:junit-jupiter-engine:jar:sources:5.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.jupiter:junit-jupiter-api:jar:sources:5.9.1", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1", - "org.junit.platform:junit-platform-engine:jar:sources:1.9.1", + "org.junit.jupiter:junit-jupiter-api:jar:sources:5.9.2", + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2", + "org.junit.platform:junit-platform-engine:jar:sources:1.9.2", "org.opentest4j:opentest4j:jar:sources:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.jupiter:junit-jupiter-api:jar:sources:5.9.1", - "org.junit.platform:junit-platform-engine:jar:sources:1.9.1" + "org.junit.jupiter:junit-jupiter-api:jar:sources:5.9.2", + "org.junit.platform:junit-platform-engine:jar:sources:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.1/junit-jupiter-engine-5.9.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.2/junit-jupiter-engine-5.9.2-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.1/junit-jupiter-engine-5.9.1-sources.jar", - "https://maven.google.com/org/junit/jupiter/junit-jupiter-engine/5.9.1/junit-jupiter-engine-5.9.1-sources.jar" + "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.2/junit-jupiter-engine-5.9.2-sources.jar", + "https://maven.google.com/org/junit/jupiter/junit-jupiter-engine/5.9.2/junit-jupiter-engine-5.9.2-sources.jar" ], "packages": [], - "sha256": "4f4fea40fbb51f08e381fed9fe5934488933dc239d64632b26cd228960159bba", - "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.1/junit-jupiter-engine-5.9.1-sources.jar" + "sha256": "69f50584372938e22cd7ceea5913a0c9bb4a0c9047be0ed6aa4f3045684e9fd2", + "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.9.2/junit-jupiter-engine-5.9.2-sources.jar" }, { - "coord": "org.junit.jupiter:junit-jupiter-params:5.9.1", + "coord": "org.junit.jupiter:junit-jupiter-params:5.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.jupiter:junit-jupiter-api:5.9.1", - "org.junit.platform:junit-platform-commons:1.9.1", + "org.junit.jupiter:junit-jupiter-api:5.9.2", + "org.junit.platform:junit-platform-commons:1.9.2", "org.opentest4j:opentest4j:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.jupiter:junit-jupiter-api:5.9.1" + "org.junit.jupiter:junit-jupiter-api:5.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.1/junit-jupiter-params-5.9.1.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.2/junit-jupiter-params-5.9.2.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.1/junit-jupiter-params-5.9.1.jar", - "https://maven.google.com/org/junit/jupiter/junit-jupiter-params/5.9.1/junit-jupiter-params-5.9.1.jar" + "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.2/junit-jupiter-params-5.9.2.jar", + "https://maven.google.com/org/junit/jupiter/junit-jupiter-params/5.9.2/junit-jupiter-params-5.9.2.jar" ], "packages": [ "org.junit.jupiter.params", @@ -7179,37 +7121,37 @@ "org.junit.jupiter.params.shadow.com.univocity.parsers.tsv", "org.junit.jupiter.params.support" ], - "sha256": "30157f26d857ba4f84c0d84d156f55f056e80dc09b4281affa8b1ed4d3205c08", - "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.1/junit-jupiter-params-5.9.1.jar" + "sha256": "bde91900a5ce5d6663bb44bc708494b35daefcd73e1bb7afa61a4affe38ea97d", + "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.2/junit-jupiter-params-5.9.2.jar" }, { - "coord": "org.junit.jupiter:junit-jupiter-params:jar:sources:5.9.1", + "coord": "org.junit.jupiter:junit-jupiter-params:jar:sources:5.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.jupiter:junit-jupiter-api:jar:sources:5.9.1", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1", + "org.junit.jupiter:junit-jupiter-api:jar:sources:5.9.2", + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2", "org.opentest4j:opentest4j:jar:sources:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.jupiter:junit-jupiter-api:jar:sources:5.9.1" + "org.junit.jupiter:junit-jupiter-api:jar:sources:5.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.1/junit-jupiter-params-5.9.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.2/junit-jupiter-params-5.9.2-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.1/junit-jupiter-params-5.9.1-sources.jar", - "https://maven.google.com/org/junit/jupiter/junit-jupiter-params/5.9.1/junit-jupiter-params-5.9.1-sources.jar" + "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.2/junit-jupiter-params-5.9.2-sources.jar", + "https://maven.google.com/org/junit/jupiter/junit-jupiter-params/5.9.2/junit-jupiter-params-5.9.2-sources.jar" ], "packages": [], - "sha256": "d4ace3aef7493f42297749785b42522572ed1a6510e5c0f117a7b8738bfb372f", - "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.1/junit-jupiter-params-5.9.1-sources.jar" + "sha256": "b679bb967510ad4e26b78297148b0e16a3cee9e83cab1ac794f13dc4fd7c5e3e", + "url": "https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.9.2/junit-jupiter-params-5.9.2-sources.jar" }, { - "coord": "org.junit.platform:junit-platform-commons:1.9.1", + "coord": "org.junit.platform:junit-platform-commons:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:1.1.2" ], @@ -7221,10 +7163,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.1/junit-platform-commons-1.9.1.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.2/junit-platform-commons-1.9.2.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.1/junit-platform-commons-1.9.1.jar", - "https://maven.google.com/org/junit/platform/junit-platform-commons/1.9.1/junit-platform-commons-1.9.1.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.2/junit-platform-commons-1.9.2.jar", + "https://maven.google.com/org/junit/platform/junit-platform-commons/1.9.2/junit-platform-commons-1.9.2.jar" ], "packages": [ "org.junit.platform.commons", @@ -7234,11 +7176,11 @@ "org.junit.platform.commons.support", "org.junit.platform.commons.util" ], - "sha256": "a8e82d510bbbce5fe1777b2ecf7bc68401e9ae8327009e029b2db5798403d25e", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.1/junit-platform-commons-1.9.1.jar" + "sha256": "624a3d745ef1d28e955a6a67af8edba0fdfc5c9bad680a73f67a70bb950a683d", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.2/junit-platform-commons-1.9.2.jar" }, { - "coord": "org.junit.platform:junit-platform-commons:jar:sources:1.9.1", + "coord": "org.junit.platform:junit-platform-commons:jar:sources:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2" ], @@ -7250,25 +7192,25 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.1/junit-platform-commons-1.9.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.2/junit-platform-commons-1.9.2-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.1/junit-platform-commons-1.9.1-sources.jar", - "https://maven.google.com/org/junit/platform/junit-platform-commons/1.9.1/junit-platform-commons-1.9.1-sources.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.2/junit-platform-commons-1.9.2-sources.jar", + "https://maven.google.com/org/junit/platform/junit-platform-commons/1.9.2/junit-platform-commons-1.9.2-sources.jar" ], "packages": [], - "sha256": "fcfdc6414619e323031ebeb2ecca00e230b3817019be08a588c6492ece5aa204", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.1/junit-platform-commons-1.9.1-sources.jar" + "sha256": "35ad4740fd4388406044d288dac4059f01c484f30e2b2a931703aae9dbca08c3", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.9.2/junit-platform-commons-1.9.2-sources.jar" }, { - "coord": "org.junit.platform:junit-platform-engine:1.9.1", + "coord": "org.junit.platform:junit-platform-engine:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-commons:1.9.1", + "org.junit.platform:junit-platform-commons:1.9.2", "org.opentest4j:opentest4j:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-commons:1.9.1", + "org.junit.platform:junit-platform-commons:1.9.2", "org.opentest4j:opentest4j:1.2.0" ], "exclusions": [ @@ -7276,10 +7218,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.1/junit-platform-engine-1.9.1.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.2/junit-platform-engine-1.9.2.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.1/junit-platform-engine-1.9.1.jar", - "https://maven.google.com/org/junit/platform/junit-platform-engine/1.9.1/junit-platform-engine-1.9.1.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.2/junit-platform-engine-1.9.2.jar", + "https://maven.google.com/org/junit/platform/junit-platform-engine/1.9.2/junit-platform-engine-1.9.2.jar" ], "packages": [ "org.junit.platform.engine", @@ -7291,19 +7233,19 @@ "org.junit.platform.engine.support.filter", "org.junit.platform.engine.support.hierarchical" ], - "sha256": "f59c3a67087f2b9bbb17a9c06dd416697989b2c53b38843874ebbbbcb0afc23f", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.1/junit-platform-engine-1.9.1.jar" + "sha256": "25f23dc535a091e9dc80c008faf29dcb92be902e6911f77a736fbaf019908367", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.2/junit-platform-engine-1.9.2.jar" }, { - "coord": "org.junit.platform:junit-platform-engine:jar:sources:1.9.1", + "coord": "org.junit.platform:junit-platform-engine:jar:sources:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1", + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2", "org.opentest4j:opentest4j:jar:sources:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1", + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2", "org.opentest4j:opentest4j:jar:sources:1.2.0" ], "exclusions": [ @@ -7311,36 +7253,36 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.1/junit-platform-engine-1.9.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.2/junit-platform-engine-1.9.2-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.1/junit-platform-engine-1.9.1-sources.jar", - "https://maven.google.com/org/junit/platform/junit-platform-engine/1.9.1/junit-platform-engine-1.9.1-sources.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.2/junit-platform-engine-1.9.2-sources.jar", + "https://maven.google.com/org/junit/platform/junit-platform-engine/1.9.2/junit-platform-engine-1.9.2-sources.jar" ], "packages": [], - "sha256": "1e6b32b1c01edbe23ce929f778b304296a698618bd53f04d9039167c0a63f8fb", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.1/junit-platform-engine-1.9.1-sources.jar" + "sha256": "31906715fb92e10b96da6cdcd1c75066bd275e961949fcd0ab61b7501c867eb9", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-engine/1.9.2/junit-platform-engine-1.9.2-sources.jar" }, { - "coord": "org.junit.platform:junit-platform-launcher:1.9.1", + "coord": "org.junit.platform:junit-platform-launcher:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-commons:1.9.1", - "org.junit.platform:junit-platform-engine:1.9.1", + "org.junit.platform:junit-platform-commons:1.9.2", + "org.junit.platform:junit-platform-engine:1.9.2", "org.opentest4j:opentest4j:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-engine:1.9.1" + "org.junit.platform:junit-platform-engine:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.1/junit-platform-launcher-1.9.1.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.2/junit-platform-launcher-1.9.2.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.1/junit-platform-launcher-1.9.1.jar", - "https://maven.google.com/org/junit/platform/junit-platform-launcher/1.9.1/junit-platform-launcher-1.9.1.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.2/junit-platform-launcher-1.9.2.jar", + "https://maven.google.com/org/junit/platform/junit-platform-launcher/1.9.2/junit-platform-launcher-1.9.2.jar" ], "packages": [ "org.junit.platform.launcher", @@ -7350,57 +7292,57 @@ "org.junit.platform.launcher.listeners.session", "org.junit.platform.launcher.tagexpression" ], - "sha256": "5fb50ef56168358892e1bd0a080e2e5bb74dc882b2ecc2a9bad0eadb5a6a449e", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.1/junit-platform-launcher-1.9.1.jar" + "sha256": "eef139eb09c98e9cdd358b6ce4c6cdd59b30c6a88096e369c33ba96e67edf0e4", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.2/junit-platform-launcher-1.9.2.jar" }, { - "coord": "org.junit.platform:junit-platform-launcher:jar:sources:1.9.1", + "coord": "org.junit.platform:junit-platform-launcher:jar:sources:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1", - "org.junit.platform:junit-platform-engine:jar:sources:1.9.1", + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2", + "org.junit.platform:junit-platform-engine:jar:sources:1.9.2", "org.opentest4j:opentest4j:jar:sources:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-engine:jar:sources:1.9.1" + "org.junit.platform:junit-platform-engine:jar:sources:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.1/junit-platform-launcher-1.9.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.2/junit-platform-launcher-1.9.2-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.1/junit-platform-launcher-1.9.1-sources.jar", - "https://maven.google.com/org/junit/platform/junit-platform-launcher/1.9.1/junit-platform-launcher-1.9.1-sources.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.2/junit-platform-launcher-1.9.2-sources.jar", + "https://maven.google.com/org/junit/platform/junit-platform-launcher/1.9.2/junit-platform-launcher-1.9.2-sources.jar" ], "packages": [], - "sha256": "4c43f3e6507841c13bc105f0c2c4af146a33ddaa691f3973536e6bfaa424eed2", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.1/junit-platform-launcher-1.9.1-sources.jar" + "sha256": "3cf6e39c88b59e63851ac1981ce567a24ab89f89f7eb738145ad72dcba105b4a", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-launcher/1.9.2/junit-platform-launcher-1.9.2-sources.jar" }, { - "coord": "org.junit.platform:junit-platform-reporting:1.9.1", + "coord": "org.junit.platform:junit-platform-reporting:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-commons:1.9.1", - "org.junit.platform:junit-platform-engine:1.9.1", - "org.junit.platform:junit-platform-launcher:1.9.1", + "org.junit.platform:junit-platform-commons:1.9.2", + "org.junit.platform:junit-platform-engine:1.9.2", + "org.junit.platform:junit-platform-launcher:1.9.2", "org.opentest4j:opentest4j:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-launcher:1.9.1" + "org.junit.platform:junit-platform-launcher:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.1/junit-platform-reporting-1.9.1.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.2/junit-platform-reporting-1.9.2.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.1/junit-platform-reporting-1.9.1.jar", - "https://maven.google.com/org/junit/platform/junit-platform-reporting/1.9.1/junit-platform-reporting-1.9.1.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.2/junit-platform-reporting-1.9.2.jar", + "https://maven.google.com/org/junit/platform/junit-platform-reporting/1.9.2/junit-platform-reporting-1.9.2.jar" ], "packages": [ "org.junit.platform.reporting.legacy", @@ -7412,222 +7354,222 @@ "org.junit.platform.reporting.shadow.org.opentest4j.reporting.events.root", "org.junit.platform.reporting.shadow.org.opentest4j.reporting.schema" ], - "sha256": "b2b4139e1422512e62acea5d6a094eb38358854a37817c1827220b04e86bd476", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.1/junit-platform-reporting-1.9.1.jar" + "sha256": "d6788db1c941c1247e07d8104f57c3f06175cadfd43060a792493fe9195671db", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.2/junit-platform-reporting-1.9.2.jar" }, { - "coord": "org.junit.platform:junit-platform-reporting:jar:sources:1.9.1", + "coord": "org.junit.platform:junit-platform-reporting:jar:sources:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1", - "org.junit.platform:junit-platform-engine:jar:sources:1.9.1", - "org.junit.platform:junit-platform-launcher:jar:sources:1.9.1", + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2", + "org.junit.platform:junit-platform-engine:jar:sources:1.9.2", + "org.junit.platform:junit-platform-launcher:jar:sources:1.9.2", "org.opentest4j:opentest4j:jar:sources:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-launcher:jar:sources:1.9.1" + "org.junit.platform:junit-platform-launcher:jar:sources:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.1/junit-platform-reporting-1.9.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.2/junit-platform-reporting-1.9.2-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.1/junit-platform-reporting-1.9.1-sources.jar", - "https://maven.google.com/org/junit/platform/junit-platform-reporting/1.9.1/junit-platform-reporting-1.9.1-sources.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.2/junit-platform-reporting-1.9.2-sources.jar", + "https://maven.google.com/org/junit/platform/junit-platform-reporting/1.9.2/junit-platform-reporting-1.9.2-sources.jar" ], "packages": [], - "sha256": "1151f26d87b17dd180b97fe40e0c8be79db5309211cb5fa064bd1eab3745f054", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.1/junit-platform-reporting-1.9.1-sources.jar" + "sha256": "dbb606dc99a8a59a000bc37b06dbe97e7b62a1c6eee3ba0b27864decf1cc41c2", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-reporting/1.9.2/junit-platform-reporting-1.9.2-sources.jar" }, { - "coord": "org.junit.platform:junit-platform-suite-api:1.9.1", + "coord": "org.junit.platform:junit-platform-suite-api:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-commons:1.9.1" + "org.junit.platform:junit-platform-commons:1.9.2" ], "directDependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-commons:1.9.1" + "org.junit.platform:junit-platform-commons:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.1/junit-platform-suite-api-1.9.1.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.2/junit-platform-suite-api-1.9.2.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.1/junit-platform-suite-api-1.9.1.jar", - "https://maven.google.com/org/junit/platform/junit-platform-suite-api/1.9.1/junit-platform-suite-api-1.9.1.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.2/junit-platform-suite-api-1.9.2.jar", + "https://maven.google.com/org/junit/platform/junit-platform-suite-api/1.9.2/junit-platform-suite-api-1.9.2.jar" ], "packages": [ "org.junit.platform.suite.api" ], - "sha256": "f49e2a8983a52e2e5566a16828d634a02592ab8bf51d23c5c091214bc15e57b4", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.1/junit-platform-suite-api-1.9.1.jar" + "sha256": "25858bb298a002a2ad45a89786b7662b2f87e724e7a6142ad15d3737ffd89ef5", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.2/junit-platform-suite-api-1.9.2.jar" }, { - "coord": "org.junit.platform:junit-platform-suite-api:jar:sources:1.9.1", + "coord": "org.junit.platform:junit-platform-suite-api:jar:sources:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1" + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2" ], "directDependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1" + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.1/junit-platform-suite-api-1.9.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.2/junit-platform-suite-api-1.9.2-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.1/junit-platform-suite-api-1.9.1-sources.jar", - "https://maven.google.com/org/junit/platform/junit-platform-suite-api/1.9.1/junit-platform-suite-api-1.9.1-sources.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.2/junit-platform-suite-api-1.9.2-sources.jar", + "https://maven.google.com/org/junit/platform/junit-platform-suite-api/1.9.2/junit-platform-suite-api-1.9.2-sources.jar" ], "packages": [], - "sha256": "20d749d6257496257670a00b70a9239cbb7f805bb6a9e3796e62c8dd0752ff3c", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.1/junit-platform-suite-api-1.9.1-sources.jar" + "sha256": "5d216f5308b1ce91d4d3d98211842e00ecba66a46b3a3eef3008019ee69ea206", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-api/1.9.2/junit-platform-suite-api-1.9.2-sources.jar" }, { - "coord": "org.junit.platform:junit-platform-suite-commons:1.9.1", + "coord": "org.junit.platform:junit-platform-suite-commons:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-commons:1.9.1", - "org.junit.platform:junit-platform-engine:1.9.1", - "org.junit.platform:junit-platform-launcher:1.9.1", - "org.junit.platform:junit-platform-suite-api:1.9.1", + "org.junit.platform:junit-platform-commons:1.9.2", + "org.junit.platform:junit-platform-engine:1.9.2", + "org.junit.platform:junit-platform-launcher:1.9.2", + "org.junit.platform:junit-platform-suite-api:1.9.2", "org.opentest4j:opentest4j:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-engine:1.9.1", - "org.junit.platform:junit-platform-launcher:1.9.1", - "org.junit.platform:junit-platform-suite-api:1.9.1" + "org.junit.platform:junit-platform-engine:1.9.2", + "org.junit.platform:junit-platform-launcher:1.9.2", + "org.junit.platform:junit-platform-suite-api:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.1/junit-platform-suite-commons-1.9.1.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.2/junit-platform-suite-commons-1.9.2.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.1/junit-platform-suite-commons-1.9.1.jar", - "https://maven.google.com/org/junit/platform/junit-platform-suite-commons/1.9.1/junit-platform-suite-commons-1.9.1.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.2/junit-platform-suite-commons-1.9.2.jar", + "https://maven.google.com/org/junit/platform/junit-platform-suite-commons/1.9.2/junit-platform-suite-commons-1.9.2.jar" ], "packages": [ "org.junit.platform.suite.commons" ], - "sha256": "8279775f6a9b075e394a888b8ab1226307c86fb925b4414270be9518cf07377c", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.1/junit-platform-suite-commons-1.9.1.jar" + "sha256": "3f941564d283bf9716b7ddac7836defe288d90b030c730dedaa38f7c7fb032a5", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.2/junit-platform-suite-commons-1.9.2.jar" }, { - "coord": "org.junit.platform:junit-platform-suite-commons:jar:sources:1.9.1", + "coord": "org.junit.platform:junit-platform-suite-commons:jar:sources:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1", - "org.junit.platform:junit-platform-engine:jar:sources:1.9.1", - "org.junit.platform:junit-platform-launcher:jar:sources:1.9.1", - "org.junit.platform:junit-platform-suite-api:jar:sources:1.9.1", + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2", + "org.junit.platform:junit-platform-engine:jar:sources:1.9.2", + "org.junit.platform:junit-platform-launcher:jar:sources:1.9.2", + "org.junit.platform:junit-platform-suite-api:jar:sources:1.9.2", "org.opentest4j:opentest4j:jar:sources:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-engine:jar:sources:1.9.1", - "org.junit.platform:junit-platform-launcher:jar:sources:1.9.1", - "org.junit.platform:junit-platform-suite-api:jar:sources:1.9.1" + "org.junit.platform:junit-platform-engine:jar:sources:1.9.2", + "org.junit.platform:junit-platform-launcher:jar:sources:1.9.2", + "org.junit.platform:junit-platform-suite-api:jar:sources:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.1/junit-platform-suite-commons-1.9.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.2/junit-platform-suite-commons-1.9.2-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.1/junit-platform-suite-commons-1.9.1-sources.jar", - "https://maven.google.com/org/junit/platform/junit-platform-suite-commons/1.9.1/junit-platform-suite-commons-1.9.1-sources.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.2/junit-platform-suite-commons-1.9.2-sources.jar", + "https://maven.google.com/org/junit/platform/junit-platform-suite-commons/1.9.2/junit-platform-suite-commons-1.9.2-sources.jar" ], "packages": [], - "sha256": "f04a7dcc7802ce1c967177ba1c0cfcea849f7344fd350d8a6cd90c4e5f7cd1b3", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.1/junit-platform-suite-commons-1.9.1-sources.jar" + "sha256": "0c274158bffef277587e835777cf087ebe09dbd3ec39913998024fe48b071de8", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-commons/1.9.2/junit-platform-suite-commons-1.9.2-sources.jar" }, { - "coord": "org.junit.platform:junit-platform-suite-engine:1.9.1", + "coord": "org.junit.platform:junit-platform-suite-engine:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-commons:1.9.1", - "org.junit.platform:junit-platform-engine:1.9.1", - "org.junit.platform:junit-platform-launcher:1.9.1", - "org.junit.platform:junit-platform-suite-api:1.9.1", - "org.junit.platform:junit-platform-suite-commons:1.9.1", + "org.junit.platform:junit-platform-commons:1.9.2", + "org.junit.platform:junit-platform-engine:1.9.2", + "org.junit.platform:junit-platform-launcher:1.9.2", + "org.junit.platform:junit-platform-suite-api:1.9.2", + "org.junit.platform:junit-platform-suite-commons:1.9.2", "org.opentest4j:opentest4j:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:1.1.2", - "org.junit.platform:junit-platform-engine:1.9.1", - "org.junit.platform:junit-platform-suite-api:1.9.1", - "org.junit.platform:junit-platform-suite-commons:1.9.1" + "org.junit.platform:junit-platform-engine:1.9.2", + "org.junit.platform:junit-platform-suite-api:1.9.2", + "org.junit.platform:junit-platform-suite-commons:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.1/junit-platform-suite-engine-1.9.1.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.2/junit-platform-suite-engine-1.9.2.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.1/junit-platform-suite-engine-1.9.1.jar", - "https://maven.google.com/org/junit/platform/junit-platform-suite-engine/1.9.1/junit-platform-suite-engine-1.9.1.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.2/junit-platform-suite-engine-1.9.2.jar", + "https://maven.google.com/org/junit/platform/junit-platform-suite-engine/1.9.2/junit-platform-suite-engine-1.9.2.jar" ], "packages": [ "org.junit.platform.suite.engine" ], - "sha256": "e7b7ee49332764acaa64f88cfe4c624e4d69b15d04cacbf98103ed91d027e06c", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.1/junit-platform-suite-engine-1.9.1.jar" + "sha256": "201503a37a3090baabbbe9ceee169678e76da8aaf6279d8d63d577744abadb97", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.2/junit-platform-suite-engine-1.9.2.jar" }, { - "coord": "org.junit.platform:junit-platform-suite-engine:jar:sources:1.9.1", + "coord": "org.junit.platform:junit-platform-suite-engine:jar:sources:1.9.2", "dependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-commons:jar:sources:1.9.1", - "org.junit.platform:junit-platform-engine:jar:sources:1.9.1", - "org.junit.platform:junit-platform-launcher:jar:sources:1.9.1", - "org.junit.platform:junit-platform-suite-api:jar:sources:1.9.1", - "org.junit.platform:junit-platform-suite-commons:jar:sources:1.9.1", + "org.junit.platform:junit-platform-commons:jar:sources:1.9.2", + "org.junit.platform:junit-platform-engine:jar:sources:1.9.2", + "org.junit.platform:junit-platform-launcher:jar:sources:1.9.2", + "org.junit.platform:junit-platform-suite-api:jar:sources:1.9.2", + "org.junit.platform:junit-platform-suite-commons:jar:sources:1.9.2", "org.opentest4j:opentest4j:jar:sources:1.2.0" ], "directDependencies": [ "org.apiguardian:apiguardian-api:jar:sources:1.1.2", - "org.junit.platform:junit-platform-engine:jar:sources:1.9.1", - "org.junit.platform:junit-platform-suite-api:jar:sources:1.9.1", - "org.junit.platform:junit-platform-suite-commons:jar:sources:1.9.1" + "org.junit.platform:junit-platform-engine:jar:sources:1.9.2", + "org.junit.platform:junit-platform-suite-api:jar:sources:1.9.2", + "org.junit.platform:junit-platform-suite-commons:jar:sources:1.9.2" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.1/junit-platform-suite-engine-1.9.1-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.2/junit-platform-suite-engine-1.9.2-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.1/junit-platform-suite-engine-1.9.1-sources.jar", - "https://maven.google.com/org/junit/platform/junit-platform-suite-engine/1.9.1/junit-platform-suite-engine-1.9.1-sources.jar" + "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.2/junit-platform-suite-engine-1.9.2-sources.jar", + "https://maven.google.com/org/junit/platform/junit-platform-suite-engine/1.9.2/junit-platform-suite-engine-1.9.2-sources.jar" ], "packages": [], - "sha256": "590986bb0741f8c118598305d3886ab356cd19882abc314cc68957f372811e2a", - "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.1/junit-platform-suite-engine-1.9.1-sources.jar" + "sha256": "1e98c4bfed54fa992db942377b4d99cc1a156fdb3bcc4091f48cb09c05dfe5db", + "url": "https://repo1.maven.org/maven2/org/junit/platform/junit-platform-suite-engine/1.9.2/junit-platform-suite-engine-1.9.2-sources.jar" }, { - "coord": "org.mockito:mockito-core:4.10.0", + "coord": "org.mockito:mockito-core:4.11.0", "dependencies": [ "net.bytebuddy:byte-buddy-agent:1.12.19", - "net.bytebuddy:byte-buddy:1.12.20", + "net.bytebuddy:byte-buddy:1.12.22", "org.objenesis:objenesis:3.3" ], "directDependencies": [ "net.bytebuddy:byte-buddy-agent:1.12.19", - "net.bytebuddy:byte-buddy:1.12.20", + "net.bytebuddy:byte-buddy:1.12.22", "org.objenesis:objenesis:3.3" ], "exclusions": [ @@ -7635,10 +7577,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/mockito/mockito-core/4.10.0/mockito-core-4.10.0.jar", + "file": "v1/https/repo1.maven.org/maven2/org/mockito/mockito-core/4.11.0/mockito-core-4.11.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/mockito/mockito-core/4.10.0/mockito-core-4.10.0.jar", - "https://maven.google.com/org/mockito/mockito-core/4.10.0/mockito-core-4.10.0.jar" + "https://repo1.maven.org/maven2/org/mockito/mockito-core/4.11.0/mockito-core-4.11.0.jar", + "https://maven.google.com/org/mockito/mockito-core/4.11.0/mockito-core-4.11.0.jar" ], "packages": [ "org.mockito", @@ -7706,19 +7648,19 @@ "org.mockito.stubbing", "org.mockito.verification" ], - "sha256": "bc149a7d74a65827faad56fdcd37f2f53f436ee39c29f088276fa1b384bf837a", - "url": "https://repo1.maven.org/maven2/org/mockito/mockito-core/4.10.0/mockito-core-4.10.0.jar" + "sha256": "4b909690cab288c761eb94c0bf0e814496cf3921d8affac84cd87774530351e5", + "url": "https://repo1.maven.org/maven2/org/mockito/mockito-core/4.11.0/mockito-core-4.11.0.jar" }, { - "coord": "org.mockito:mockito-core:jar:sources:4.10.0", + "coord": "org.mockito:mockito-core:jar:sources:4.11.0", "dependencies": [ "net.bytebuddy:byte-buddy-agent:jar:sources:1.12.19", - "net.bytebuddy:byte-buddy:jar:sources:1.12.20", + "net.bytebuddy:byte-buddy:jar:sources:1.12.22", "org.objenesis:objenesis:jar:sources:3.3" ], "directDependencies": [ "net.bytebuddy:byte-buddy-agent:jar:sources:1.12.19", - "net.bytebuddy:byte-buddy:jar:sources:1.12.20", + "net.bytebuddy:byte-buddy:jar:sources:1.12.22", "org.objenesis:objenesis:jar:sources:3.3" ], "exclusions": [ @@ -7726,14 +7668,14 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/mockito/mockito-core/4.10.0/mockito-core-4.10.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/mockito/mockito-core/4.11.0/mockito-core-4.11.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/mockito/mockito-core/4.10.0/mockito-core-4.10.0-sources.jar", - "https://maven.google.com/org/mockito/mockito-core/4.10.0/mockito-core-4.10.0-sources.jar" + "https://repo1.maven.org/maven2/org/mockito/mockito-core/4.11.0/mockito-core-4.11.0-sources.jar", + "https://maven.google.com/org/mockito/mockito-core/4.11.0/mockito-core-4.11.0-sources.jar" ], "packages": [], - "sha256": "48cadfdd3e8b9106fa30aee8b616e32b2abbddad80888b7820c32365a2b60991", - "url": "https://repo1.maven.org/maven2/org/mockito/mockito-core/4.10.0/mockito-core-4.10.0-sources.jar" + "sha256": "34741d9f2cceb187358f5a3195de179467ca876c9a0540ad0ef3d14e3a7c78bf", + "url": "https://repo1.maven.org/maven2/org/mockito/mockito-core/4.11.0/mockito-core-4.11.0-sources.jar" }, { "coord": "org.objenesis:objenesis:3.3", @@ -8106,28 +8048,27 @@ "url": "https://repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4-sources.jar" }, { - "coord": "org.redisson:redisson:3.19.0", + "coord": "org.redisson:redisson:3.19.1", "dependencies": [ - "com.esotericsoftware:kryo:5.3.0", + "com.esotericsoftware:kryo:5.4.0", "com.esotericsoftware:minlog:1.3.1", "com.esotericsoftware:reflectasm:1.11.9", "com.fasterxml.jackson.core:jackson-annotations:2.14.1", "com.fasterxml.jackson.core:jackson-core:2.14.1", "com.fasterxml.jackson.core:jackson-databind:2.14.1", "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.14.1", - "io.netty:netty-buffer:4.1.86.Final", + "io.netty:netty-buffer:4.1.87.Final", "io.netty:netty-codec-dns:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", "io.netty:netty-resolver-dns:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final", "io.projectreactor:reactor-core:3.4.25", "io.reactivex.rxjava3:rxjava:3.1.5", "javax.cache:cache-api:1.1.1", - "net.bytebuddy:byte-buddy:1.12.20", + "net.bytebuddy:byte-buddy:1.12.22", "org.jboss.marshalling:jboss-marshalling-river:2.0.11.Final", "org.jboss.marshalling:jboss-marshalling:2.0.11.Final", "org.jodd:jodd-bean:5.1.6", @@ -8138,22 +8079,22 @@ "org.yaml:snakeyaml:1.33" ], "directDependencies": [ - "com.esotericsoftware:kryo:5.3.0", + "com.esotericsoftware:kryo:5.4.0", "com.fasterxml.jackson.core:jackson-annotations:2.14.1", "com.fasterxml.jackson.core:jackson-core:2.14.1", "com.fasterxml.jackson.core:jackson-databind:2.14.1", "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.14.1", - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", "io.netty:netty-resolver-dns:4.1.86.Final", - "io.netty:netty-resolver:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final", + "io.netty:netty-resolver:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final", "io.projectreactor:reactor-core:3.4.25", "io.reactivex.rxjava3:rxjava:3.1.5", "javax.cache:cache-api:1.1.1", - "net.bytebuddy:byte-buddy:1.12.20", + "net.bytebuddy:byte-buddy:1.12.22", "org.jboss.marshalling:jboss-marshalling-river:2.0.11.Final", "org.jboss.marshalling:jboss-marshalling:2.0.11.Final", "org.jodd:jodd-bean:5.1.6", @@ -8166,10 +8107,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/redisson/redisson/3.19.0/redisson-3.19.0.jar", + "file": "v1/https/repo1.maven.org/maven2/org/redisson/redisson/3.19.1/redisson-3.19.1.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/redisson/redisson/3.19.0/redisson-3.19.0.jar", - "https://maven.google.com/org/redisson/redisson/3.19.0/redisson-3.19.0.jar" + "https://repo1.maven.org/maven2/org/redisson/redisson/3.19.1/redisson-3.19.1.jar", + "https://maven.google.com/org/redisson/redisson/3.19.1/redisson-3.19.1.jar" ], "packages": [ "org.redisson", @@ -8232,32 +8173,31 @@ "org.redisson.transaction.operation.map", "org.redisson.transaction.operation.set" ], - "sha256": "f597d965e9d356f5564567c224b579694f28d53a97debfe94975eb24eddf0833", - "url": "https://repo1.maven.org/maven2/org/redisson/redisson/3.19.0/redisson-3.19.0.jar" + "sha256": "bc7757cba4694a5483b4c38627e533a71caa6aaf2049ee6851dddf3d04cf960c", + "url": "https://repo1.maven.org/maven2/org/redisson/redisson/3.19.1/redisson-3.19.1.jar" }, { - "coord": "org.redisson:redisson:jar:sources:3.19.0", + "coord": "org.redisson:redisson:jar:sources:3.19.1", "dependencies": [ - "com.esotericsoftware:kryo:jar:sources:5.3.0", + "com.esotericsoftware:kryo:jar:sources:5.4.0", "com.esotericsoftware:minlog:jar:sources:1.3.1", "com.esotericsoftware:reflectasm:jar:sources:1.11.9", "com.fasterxml.jackson.core:jackson-annotations:jar:sources:2.14.1", "com.fasterxml.jackson.core:jackson-core:jar:sources:2.14.1", "com.fasterxml.jackson.core:jackson-databind:jar:sources:2.14.1", "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:sources:2.14.1", - "io.netty:netty-buffer:jar:sources:4.1.86.Final", + "io.netty:netty-buffer:jar:sources:4.1.87.Final", "io.netty:netty-codec-dns:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", "io.netty:netty-resolver-dns:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final", "io.projectreactor:reactor-core:jar:sources:3.4.25", "io.reactivex.rxjava3:rxjava:jar:sources:3.1.5", "javax.cache:cache-api:jar:sources:1.1.1", - "net.bytebuddy:byte-buddy:jar:sources:1.12.20", + "net.bytebuddy:byte-buddy:jar:sources:1.12.22", "org.jboss.marshalling:jboss-marshalling-river:jar:sources:2.0.11.Final", "org.jboss.marshalling:jboss-marshalling:jar:sources:2.0.11.Final", "org.jodd:jodd-bean:jar:sources:5.1.6", @@ -8268,22 +8208,22 @@ "org.yaml:snakeyaml:jar:sources:1.33" ], "directDependencies": [ - "com.esotericsoftware:kryo:jar:sources:5.3.0", + "com.esotericsoftware:kryo:jar:sources:5.4.0", "com.fasterxml.jackson.core:jackson-annotations:jar:sources:2.14.1", "com.fasterxml.jackson.core:jackson-core:jar:sources:2.14.1", "com.fasterxml.jackson.core:jackson-databind:jar:sources:2.14.1", "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:sources:2.14.1", - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", "io.netty:netty-resolver-dns:jar:sources:4.1.86.Final", - "io.netty:netty-resolver:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final", + "io.netty:netty-resolver:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final", "io.projectreactor:reactor-core:jar:sources:3.4.25", "io.reactivex.rxjava3:rxjava:jar:sources:3.1.5", "javax.cache:cache-api:jar:sources:1.1.1", - "net.bytebuddy:byte-buddy:jar:sources:1.12.20", + "net.bytebuddy:byte-buddy:jar:sources:1.12.22", "org.jboss.marshalling:jboss-marshalling-river:jar:sources:2.0.11.Final", "org.jboss.marshalling:jboss-marshalling:jar:sources:2.0.11.Final", "org.jodd:jodd-bean:jar:sources:5.1.6", @@ -8296,14 +8236,14 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/redisson/redisson/3.19.0/redisson-3.19.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/redisson/redisson/3.19.1/redisson-3.19.1-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/redisson/redisson/3.19.0/redisson-3.19.0-sources.jar", - "https://maven.google.com/org/redisson/redisson/3.19.0/redisson-3.19.0-sources.jar" + "https://repo1.maven.org/maven2/org/redisson/redisson/3.19.1/redisson-3.19.1-sources.jar", + "https://maven.google.com/org/redisson/redisson/3.19.1/redisson-3.19.1-sources.jar" ], "packages": [], - "sha256": "521cd2ddc3c9bc401c2ed68d4f8f52c59755043c44b2d4f66a62f9772d752f84", - "url": "https://repo1.maven.org/maven2/org/redisson/redisson/3.19.0/redisson-3.19.0-sources.jar" + "sha256": "accac9b828fc260932a26b597f3317417827d9dfd4ddbd0fc1582101f8c2e59d", + "url": "https://repo1.maven.org/maven2/org/redisson/redisson/3.19.1/redisson-3.19.1-sources.jar" }, { "coord": "org.seleniumhq.selenium:htmlunit-driver:4.7.2", @@ -8326,30 +8266,30 @@ "commons-logging:commons-logging:1.2", "commons-net:commons-net:3.8.0", "dev.failsafe:failsafe:3.3.0", - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec-http:4.1.86.Final", - "io.netty:netty-codec-socks:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler-proxy:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-epoll:4.1.86.Final", - "io.netty:netty-transport-native-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final", - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-exporter-logging:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-trace:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha", + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec-http:4.1.87.Final", + "io.netty:netty-codec-socks:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler-proxy:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-epoll:4.1.87.Final", + "io.netty:netty-transport-native-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final", + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-exporter-logging:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-trace:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha", "io.ous:jtoml:2.0.0", - "net.bytebuddy:byte-buddy:1.12.20", - "net.sourceforge.htmlunit:htmlunit-core-js:2.67.0", + "net.bytebuddy:byte-buddy:1.12.22", + "net.sourceforge.htmlunit:htmlunit-core-js:2.69.0", "net.sourceforge.htmlunit:htmlunit-cssparser:1.12.0", "net.sourceforge.htmlunit:htmlunit-xpath:2.67.0", "net.sourceforge.htmlunit:htmlunit:2.67.0", @@ -8426,30 +8366,30 @@ "commons-logging:commons-logging:jar:sources:1.2", "commons-net:commons-net:jar:sources:3.8.0", "dev.failsafe:failsafe:jar:sources:3.3.0", - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec-http:jar:sources:4.1.86.Final", - "io.netty:netty-codec-socks:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler-proxy:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-epoll:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-kqueue:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final", - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-exporter-logging:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha", + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec-http:jar:sources:4.1.87.Final", + "io.netty:netty-codec-socks:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler-proxy:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-epoll:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-kqueue:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final", + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-exporter-logging:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha", "io.ous:jtoml:jar:sources:2.0.0", - "net.bytebuddy:byte-buddy:jar:sources:1.12.20", - "net.sourceforge.htmlunit:htmlunit-core-js:jar:sources:2.67.0", + "net.bytebuddy:byte-buddy:jar:sources:1.12.22", + "net.sourceforge.htmlunit:htmlunit-core-js:jar:sources:2.69.0", "net.sourceforge.htmlunit:htmlunit-cssparser:jar:sources:1.12.0", "net.sourceforge.htmlunit:htmlunit-xpath:jar:sources:2.67.0", "net.sourceforge.htmlunit:htmlunit:jar:sources:2.67.0", @@ -8742,29 +8682,29 @@ "com.sun.activation:jakarta.activation:1.2.2", "com.typesafe.netty:netty-reactive-streams:2.0.4", "dev.failsafe:failsafe:3.3.0", - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec-http:4.1.86.Final", - "io.netty:netty-codec-socks:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler-proxy:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-epoll:4.1.86.Final", - "io.netty:netty-transport-native-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final", - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-exporter-logging:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-trace:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha", + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec-http:4.1.87.Final", + "io.netty:netty-codec-socks:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler-proxy:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-epoll:4.1.87.Final", + "io.netty:netty-transport-native-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final", + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-exporter-logging:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-trace:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha", "io.ous:jtoml:2.0.0", - "net.bytebuddy:byte-buddy:1.12.20", + "net.bytebuddy:byte-buddy:1.12.22", "org.apache.commons:commons-exec:1.3", "org.asynchttpclient:async-http-client-netty-utils:2.12.3", "org.asynchttpclient:async-http-client:2.12.3", @@ -8781,26 +8721,26 @@ "com.google.auto.service:auto-service-annotations:1.0.1", "com.google.auto.service:auto-service:1.0.1", "com.google.guava:guava:31.1-jre", - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec-http:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-epoll:4.1.86.Final", - "io.netty:netty-transport-native-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final", - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-exporter-logging:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-trace:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha", + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec-http:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-epoll:4.1.87.Final", + "io.netty:netty-transport-native-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final", + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-exporter-logging:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-trace:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha", "io.ous:jtoml:2.0.0", - "net.bytebuddy:byte-buddy:1.12.20", + "net.bytebuddy:byte-buddy:1.12.22", "org.apache.commons:commons-exec:1.3", "org.asynchttpclient:async-http-client:2.12.3", "org.seleniumhq.selenium:selenium-api:4.7.2", @@ -8870,29 +8810,29 @@ "com.sun.activation:jakarta.activation:jar:sources:1.2.2", "com.typesafe.netty:netty-reactive-streams:jar:sources:2.0.4", "dev.failsafe:failsafe:jar:sources:3.3.0", - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec-http:jar:sources:4.1.86.Final", - "io.netty:netty-codec-socks:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler-proxy:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-epoll:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-kqueue:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final", - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-exporter-logging:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha", + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec-http:jar:sources:4.1.87.Final", + "io.netty:netty-codec-socks:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler-proxy:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-epoll:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-kqueue:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final", + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-exporter-logging:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha", "io.ous:jtoml:jar:sources:2.0.0", - "net.bytebuddy:byte-buddy:jar:sources:1.12.20", + "net.bytebuddy:byte-buddy:jar:sources:1.12.22", "org.apache.commons:commons-exec:jar:sources:1.3", "org.asynchttpclient:async-http-client-netty-utils:jar:sources:2.12.3", "org.asynchttpclient:async-http-client:jar:sources:2.12.3", @@ -8909,26 +8849,26 @@ "com.google.auto.service:auto-service-annotations:jar:sources:1.0.1", "com.google.auto.service:auto-service:jar:sources:1.0.1", "com.google.guava:guava:jar:sources:31.1-jre", - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec-http:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-epoll:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-kqueue:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final", - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-exporter-logging:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha", + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec-http:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-epoll:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-kqueue:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final", + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-exporter-logging:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha", "io.ous:jtoml:jar:sources:2.0.0", - "net.bytebuddy:byte-buddy:jar:sources:1.12.20", + "net.bytebuddy:byte-buddy:jar:sources:1.12.22", "org.apache.commons:commons-exec:jar:sources:1.3", "org.asynchttpclient:async-http-client:jar:sources:2.12.3", "org.seleniumhq.selenium:selenium-api:jar:sources:4.7.2", @@ -8966,29 +8906,29 @@ "com.sun.activation:jakarta.activation:1.2.2", "com.typesafe.netty:netty-reactive-streams:2.0.4", "dev.failsafe:failsafe:3.3.0", - "io.netty:netty-buffer:4.1.86.Final", - "io.netty:netty-codec-http:4.1.86.Final", - "io.netty:netty-codec-socks:4.1.86.Final", - "io.netty:netty-common:4.1.86.Final", - "io.netty:netty-handler-proxy:4.1.86.Final", - "io.netty:netty-handler:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-epoll:4.1.86.Final", - "io.netty:netty-transport-native-kqueue:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:4.1.86.Final", - "io.netty:netty-transport:4.1.86.Final", - "io.opentelemetry:opentelemetry-api:1.21.0", - "io.opentelemetry:opentelemetry-context:1.21.0", - "io.opentelemetry:opentelemetry-exporter-logging:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-trace:1.21.0", - "io.opentelemetry:opentelemetry-sdk:1.21.0", - "io.opentelemetry:opentelemetry-semconv:1.21.0-alpha", + "io.netty:netty-buffer:4.1.87.Final", + "io.netty:netty-codec-http:4.1.87.Final", + "io.netty:netty-codec-socks:4.1.87.Final", + "io.netty:netty-common:4.1.87.Final", + "io.netty:netty-handler-proxy:4.1.87.Final", + "io.netty:netty-handler:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-epoll:4.1.87.Final", + "io.netty:netty-transport-native-kqueue:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:4.1.87.Final", + "io.netty:netty-transport:4.1.87.Final", + "io.opentelemetry:opentelemetry-api:1.22.0", + "io.opentelemetry:opentelemetry-context:1.22.0", + "io.opentelemetry:opentelemetry-exporter-logging:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-trace:1.22.0", + "io.opentelemetry:opentelemetry-sdk:1.22.0", + "io.opentelemetry:opentelemetry-semconv:1.22.0-alpha", "io.ous:jtoml:2.0.0", - "net.bytebuddy:byte-buddy:1.12.20", + "net.bytebuddy:byte-buddy:1.12.22", "org.apache.commons:commons-exec:1.3", "org.asynchttpclient:async-http-client-netty-utils:2.12.3", "org.asynchttpclient:async-http-client:2.12.3", @@ -9005,7 +8945,7 @@ "com.google.auto.service:auto-service-annotations:1.0.1", "com.google.auto.service:auto-service:1.0.1", "com.google.guava:guava:31.1-jre", - "net.bytebuddy:byte-buddy:1.12.20", + "net.bytebuddy:byte-buddy:1.12.22", "org.seleniumhq.selenium:selenium-api:4.7.2", "org.seleniumhq.selenium:selenium-json:4.7.2", "org.seleniumhq.selenium:selenium-remote-driver:4.7.2" @@ -9048,29 +8988,29 @@ "com.sun.activation:jakarta.activation:jar:sources:1.2.2", "com.typesafe.netty:netty-reactive-streams:jar:sources:2.0.4", "dev.failsafe:failsafe:jar:sources:3.3.0", - "io.netty:netty-buffer:jar:sources:4.1.86.Final", - "io.netty:netty-codec-http:jar:sources:4.1.86.Final", - "io.netty:netty-codec-socks:jar:sources:4.1.86.Final", - "io.netty:netty-common:jar:sources:4.1.86.Final", - "io.netty:netty-handler-proxy:jar:sources:4.1.86.Final", - "io.netty:netty-handler:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-epoll:jar:sources:4.1.86.Final", - "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-epoll:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-kqueue:jar:sources:4.1.86.Final", - "io.netty:netty-transport-native-unix-common:jar:sources:4.1.86.Final", - "io.netty:netty-transport:jar:sources:4.1.86.Final", - "io.opentelemetry:opentelemetry-api:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-context:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-exporter-logging:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:jar:sources:1.21.0-alpha", - "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-sdk:jar:sources:1.21.0", - "io.opentelemetry:opentelemetry-semconv:jar:sources:1.21.0-alpha", + "io.netty:netty-buffer:jar:sources:4.1.87.Final", + "io.netty:netty-codec-http:jar:sources:4.1.87.Final", + "io.netty:netty-codec-socks:jar:sources:4.1.87.Final", + "io.netty:netty-common:jar:sources:4.1.87.Final", + "io.netty:netty-handler-proxy:jar:sources:4.1.87.Final", + "io.netty:netty-handler:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-epoll:jar:sources:4.1.87.Final", + "io.netty:netty-transport-classes-kqueue:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-epoll:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-kqueue:jar:sources:4.1.87.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.87.Final", + "io.netty:netty-transport:jar:sources:4.1.87.Final", + "io.opentelemetry:opentelemetry-api:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-context:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-exporter-logging:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-common:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:jar:sources:1.22.0-alpha", + "io.opentelemetry:opentelemetry-sdk-trace:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:1.22.0", + "io.opentelemetry:opentelemetry-semconv:jar:sources:1.22.0-alpha", "io.ous:jtoml:jar:sources:2.0.0", - "net.bytebuddy:byte-buddy:jar:sources:1.12.20", + "net.bytebuddy:byte-buddy:jar:sources:1.12.22", "org.apache.commons:commons-exec:jar:sources:1.3", "org.asynchttpclient:async-http-client-netty-utils:jar:sources:2.12.3", "org.asynchttpclient:async-http-client:jar:sources:2.12.3", @@ -9087,7 +9027,7 @@ "com.google.auto.service:auto-service-annotations:jar:sources:1.0.1", "com.google.auto.service:auto-service:jar:sources:1.0.1", "com.google.guava:guava:jar:sources:31.1-jre", - "net.bytebuddy:byte-buddy:jar:sources:1.12.20", + "net.bytebuddy:byte-buddy:jar:sources:1.12.22", "org.seleniumhq.selenium:selenium-api:jar:sources:4.7.2", "org.seleniumhq.selenium:selenium-json:jar:sources:4.7.2", "org.seleniumhq.selenium:selenium-remote-driver:jar:sources:4.7.2" @@ -9240,7 +9180,7 @@ "url": "https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/1.7.21/slf4j-simple-1.7.21-sources.jar" }, { - "coord": "org.testng:testng:7.7.0", + "coord": "org.testng:testng:7.7.1", "dependencies": [ "com.beust:jcommander:1.82", "org.slf4j:slf4j-api:2.0.6", @@ -9256,10 +9196,10 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/testng/testng/7.7.0/testng-7.7.0.jar", + "file": "v1/https/repo1.maven.org/maven2/org/testng/testng/7.7.1/testng-7.7.1.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/testng/testng/7.7.0/testng-7.7.0.jar", - "https://maven.google.com/org/testng/testng/7.7.0/testng-7.7.0.jar" + "https://repo1.maven.org/maven2/org/testng/testng/7.7.1/testng-7.7.1.jar", + "https://maven.google.com/org/testng/testng/7.7.1/testng-7.7.1.jar" ], "packages": [ "org.testng", @@ -9290,11 +9230,11 @@ "org.testng.xml", "org.testng.xml.internal" ], - "sha256": "7c686ba8696f8206473b1b78e7e4947191b2aa4891c57b184b44ad4e052d2c08", - "url": "https://repo1.maven.org/maven2/org/testng/testng/7.7.0/testng-7.7.0.jar" + "sha256": "9f6901a112a692efd05654a8b924927aeaf35c7f1a7b2f18955a2f5160064cae", + "url": "https://repo1.maven.org/maven2/org/testng/testng/7.7.1/testng-7.7.1.jar" }, { - "coord": "org.testng:testng:jar:sources:7.7.0", + "coord": "org.testng:testng:jar:sources:7.7.1", "dependencies": [ "com.beust:jcommander:jar:sources:1.82", "org.slf4j:slf4j-api:jar:sources:2.0.6", @@ -9310,14 +9250,14 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "file": "v1/https/repo1.maven.org/maven2/org/testng/testng/7.7.0/testng-7.7.0-sources.jar", + "file": "v1/https/repo1.maven.org/maven2/org/testng/testng/7.7.1/testng-7.7.1-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/org/testng/testng/7.7.0/testng-7.7.0-sources.jar", - "https://maven.google.com/org/testng/testng/7.7.0/testng-7.7.0-sources.jar" + "https://repo1.maven.org/maven2/org/testng/testng/7.7.1/testng-7.7.1-sources.jar", + "https://maven.google.com/org/testng/testng/7.7.1/testng-7.7.1-sources.jar" ], "packages": [], - "sha256": "28122c6c6acc444843185246602e4270b7400884cfcce748839a42d10acd50d3", - "url": "https://repo1.maven.org/maven2/org/testng/testng/7.7.0/testng-7.7.0-sources.jar" + "sha256": "5a5bb052e09d802ae781a677bc9266c8101e42765867af82330642d11a77bc60", + "url": "https://repo1.maven.org/maven2/org/testng/testng/7.7.1/testng-7.7.1-sources.jar" }, { "coord": "org.webjars:jquery:3.6.1", diff --git a/java/src/org/openqa/selenium/devtools/idealized/Javascript.java b/java/src/org/openqa/selenium/devtools/idealized/Javascript.java index 061978e69c4b0..53babced82c30 100644 --- a/java/src/org/openqa/selenium/devtools/idealized/Javascript.java +++ b/java/src/org/openqa/selenium/devtools/idealized/Javascript.java @@ -20,6 +20,7 @@ import org.openqa.selenium.devtools.Command; import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.Event; +import org.openqa.selenium.devtools.idealized.target.model.SessionID; import org.openqa.selenium.internal.Require; import java.util.HashMap; @@ -31,7 +32,7 @@ public abstract class Javascript { private final DevTools devtools; - private final Map pinnedScripts = new HashMap<>(); + private final Map> pinnedScripts = new HashMap<>(); private final Set bindings = new HashSet<>(); public Javascript(DevTools devtools) { @@ -42,7 +43,8 @@ public void disable() { devtools.send(disableRuntime()); devtools.send(disablePage()); - pinnedScripts.values().forEach(id -> removeScriptToEvaluateOnNewDocument(id.getActualId())); + pinnedScripts.forEach((sessionID, scriptIdMap) -> scriptIdMap.values() + .forEach(id -> removeScriptToEvaluateOnNewDocument(id.getActualId()))); pinnedScripts.clear(); } @@ -55,8 +57,11 @@ public ScriptId pin(String exposeScriptAs, String script) { Require.nonNull("Script name", exposeScriptAs); Require.nonNull("Script", script); - if (pinnedScripts.containsKey(script)) { - return pinnedScripts.get(script); + if (pinnedScripts.containsKey(devtools.getCdpSession())) { + Map scripts = pinnedScripts.get(devtools.getCdpSession()); + if (scripts.containsKey(script)) { + return scripts.get(script); + } } devtools.send(enableRuntime()); @@ -68,7 +73,9 @@ public ScriptId pin(String exposeScriptAs, String script) { SCRIPTID id = devtools.send(addScriptToEvaluateOnNewDocument(script)); ScriptId scriptId = new ScriptId(id); - pinnedScripts.put(script, scriptId); + Map scripts = pinnedScripts.getOrDefault(devtools.getCdpSession(), new HashMap<>()); + scripts.put(script, scriptId); + pinnedScripts.put(devtools.getCdpSession(), scripts); return scriptId; } diff --git a/java/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java b/java/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java index 00f7ed1fe5a2f..fc4df8ea77288 100644 --- a/java/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java +++ b/java/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java @@ -122,7 +122,7 @@ @ManagedService(objectName = "org.seleniumhq.grid:type=Distributor,name=LocalDistributor", description = "Grid 4 node distributor") -public class LocalDistributor extends Distributor implements Closeable { +public class LocalDistributor extends Distributor implements AutoCloseable { private static final Logger LOG = Logger.getLogger(LocalDistributor.class.getName()); diff --git a/java/src/org/openqa/selenium/grid/node/config/SessionCapabilitiesMutator.java b/java/src/org/openqa/selenium/grid/node/config/SessionCapabilitiesMutator.java index 476ea85f81955..e542f3b89c7ee 100644 --- a/java/src/org/openqa/selenium/grid/node/config/SessionCapabilitiesMutator.java +++ b/java/src/org/openqa/selenium/grid/node/config/SessionCapabilitiesMutator.java @@ -22,8 +22,9 @@ import org.openqa.selenium.Capabilities; import org.openqa.selenium.ImmutableCapabilities; import org.openqa.selenium.PersistentCapabilities; - +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.function.Function; @@ -56,33 +57,125 @@ public Capabilities apply(Capabilities capabilities) { } String browserName = capabilities.getBrowserName().toLowerCase(); - if (!BROWSER_OPTIONS.containsKey(browserName)) { - return capabilities; - } - String options = BROWSER_OPTIONS.get(browserName); - if (!slotStereotype.asMap().containsKey(options)) { - return capabilities; + if (slotStereotype.asMap().containsKey(options) && capabilities.asMap().containsKey(options)) { + + @SuppressWarnings("unchecked") + Map + stereotypeOptions = + (Map) slotStereotype.asMap().get(options); + + @SuppressWarnings("unchecked") + Map capsOptions = (Map) capabilities.asMap().get(options); + + // Merge top level capabilities, excluding browser specific options. + // This will overwrite the browser options too, but it does not matter since we tackle it separately just after this. + Map toReturn = new HashMap<>(slotStereotype.merge(capabilities).asMap()); + + // Merge browser specific stereotype and capabilities options + switch (browserName.toLowerCase()) { + case "chrome": + case "microsoftedge": + case "msedge": + toReturn.put(options, mergeChromiumOptions(stereotypeOptions, capsOptions)); + break; + case "firefox": + toReturn.put(options, mergeFirefoxOptions(stereotypeOptions, capsOptions)); + break; + default: + break; + } + + return new ImmutableCapabilities(toReturn); } - @SuppressWarnings("unchecked") - Map stereotypeOptions = (Map) slotStereotype.asMap().get(options); + return slotStereotype.merge(capabilities); + } - Map toReturn = new HashMap<>(capabilities.asMap()); + private Map mergeChromiumOptions(Map stereotypeOptions, + Map capsOptions) { + Map toReturn = new HashMap<>(stereotypeOptions); + + for (Map.Entry entry : capsOptions.entrySet()) { + String name = entry.getKey(); + Object value = entry.getValue(); + if (name.equals("args")) { + List arguments = (List) value; + + List stereotypeArguments = + (List) (stereotypeOptions.getOrDefault(("args"), new ArrayList<>())); + + arguments.forEach(arg -> { + if (!stereotypeArguments.contains(arg)) { + stereotypeArguments.add(arg); + } + }); + toReturn.put("args", stereotypeArguments); + } - if (!toReturn.containsKey(options)) { - toReturn.put(options, stereotypeOptions); - return new ImmutableCapabilities(toReturn); + if (name.equals("extensions")) { + List extensionList = (List) value; + + List stereotypeExtensions = + (List) (stereotypeOptions.getOrDefault(("extensions"), new ArrayList<>())); + + extensionList.forEach(extension -> { + if (!stereotypeExtensions.contains(extension)) { + stereotypeExtensions.add(extension); + } + }); + + toReturn.put("extensions", stereotypeExtensions); + } + + if (!name.equals("binary") && !name.equals("extensions") && !name.equals("args")) { + toReturn.put(name, value); + } } - @SuppressWarnings("unchecked") - Map capsOptions = (Map) toReturn.get(options); - stereotypeOptions.forEach((key, value) -> { - if (!capsOptions.containsKey(key)) { - capsOptions.put(key, value); + return toReturn; + } + + private Map mergeFirefoxOptions(Map stereotypeOptions, + Map capsOptions) { + Map toReturn = new HashMap<>(stereotypeOptions); + + for (Map.Entry entry : capsOptions.entrySet()) { + String name = entry.getKey(); + Object value = entry.getValue(); + if (name.equals("args")) { + List arguments = (List) value; + List stereotypeArguments = + (List) (stereotypeOptions.getOrDefault(("args"), new ArrayList<>())); + arguments.forEach(arg -> { + if (!stereotypeArguments.contains(arg)) { + stereotypeArguments.add(arg); + } + }); + toReturn.put("args", stereotypeArguments); + } + + if (name.equals("prefs")) { + Map prefs = (Map) value; + + Map stereotypePrefs = + (Map) (stereotypeOptions.getOrDefault(("prefs"), new HashMap<>())); + + stereotypePrefs.putAll(prefs); + toReturn.put("prefs", stereotypePrefs); + } + + if (name.equals("profile")) { + String rawProfile = (String) value; + toReturn.put("profile", rawProfile); } - }); - return new ImmutableCapabilities(toReturn); + if (name.equals("log")) { + Map logLevelMap = (Map) value; + toReturn.put("log", logLevelMap); + } + } + + return toReturn; } } diff --git a/java/test/org/openqa/selenium/events/ZeroMqEventBusTest.java b/java/test/org/openqa/selenium/events/ZeroMqEventBusTest.java index 812e2b5239101..0b08ed5081ab1 100644 --- a/java/test/org/openqa/selenium/events/ZeroMqEventBusTest.java +++ b/java/test/org/openqa/selenium/events/ZeroMqEventBusTest.java @@ -33,31 +33,37 @@ class ZeroMqEventBusTest { @Test - void shouldEnsureMessagesRequireSecret() throws InterruptedException, ExecutionException, TimeoutException { + void shouldEnsureMessagesRequireSecret() + throws InterruptedException, ExecutionException, TimeoutException { String publish = "inproc://zmqebt-publish"; String subscribe = "inproc://zmqebt-subscribe"; ZContext context = new ZContext(); - EventBus good = ZeroMqEventBus.create(context, publish, subscribe, true, new Secret("cheese")); - EventBus alsoGood = ZeroMqEventBus.create(context, publish, subscribe, false, new Secret("cheese")); - EventBus bad = ZeroMqEventBus.create(context, publish, subscribe, false, new Secret("peas")); + try ( + EventBus good = ZeroMqEventBus.create(context, publish, subscribe, true, new Secret("cheese")); + EventBus alsoGood = ZeroMqEventBus.create(context, publish, subscribe, false, new Secret("cheese")); + EventBus bad = ZeroMqEventBus.create(context, publish, subscribe, false, new Secret("peas"))) { - RuntimeException errorException = new RuntimeException("oh noes!"); - EventName eventName = new EventName("evt"); - CompletableFuture future = new CompletableFuture<>(); - good.addListener(new EventListener<>(eventName, String.class, future::complete)); - good.addListener(ZeroMqEventBus.onRejectedEvent(evt -> future.completeExceptionally(errorException))); + RuntimeException errorException = new RuntimeException("oh noes!"); + EventName eventName = new EventName("evt"); + CompletableFuture future = new CompletableFuture<>(); + good.addListener(new EventListener<>(eventName, String.class, future::complete)); + good.addListener( + ZeroMqEventBus.onRejectedEvent(evt -> future.completeExceptionally(errorException))); - alsoGood.fire(new Event(eventName, "tasty")); + alsoGood.fire(new Event(eventName, "tasty")); - String value = future.get(5, SECONDS); - assertThat(value).isEqualTo("tasty"); + String value = future.get(5, SECONDS); + assertThat(value).isEqualTo("tasty"); - CompletableFuture badFuture = new CompletableFuture<>(); - good.addListener(new EventListener<>(eventName, String.class, badFuture::complete)); - good.addListener(ZeroMqEventBus.onRejectedEvent(evt -> badFuture.completeExceptionally(errorException))); - bad.fire(new Event(eventName, "not tasty")); + CompletableFuture badFuture = new CompletableFuture<>(); + good.addListener(new EventListener<>(eventName, String.class, badFuture::complete)); + good.addListener( + ZeroMqEventBus.onRejectedEvent(evt -> badFuture.completeExceptionally(errorException))); + bad.fire(new Event(eventName, "not tasty")); - Assertions.assertThatThrownBy(() -> badFuture.get(5, SECONDS)).getCause().isSameAs(errorException); + Assertions.assertThatThrownBy(() -> badFuture.get(5, SECONDS)).getCause() + .isSameAs(errorException); + } } } diff --git a/java/test/org/openqa/selenium/grid/distributor/AddingNodesTest.java b/java/test/org/openqa/selenium/grid/distributor/AddingNodesTest.java index 66b8674da3dfc..5d6cb34f27198 100644 --- a/java/test/org/openqa/selenium/grid/distributor/AddingNodesTest.java +++ b/java/test/org/openqa/selenium/grid/distributor/AddingNodesTest.java @@ -163,7 +163,7 @@ void shouldBeAbleToRegisterACustomNode() throws URISyntaxException { c -> new Session( new SessionId(UUID.randomUUID()), sessionUri, stereotype, c, Instant.now())); - Distributor local = new LocalDistributor( + try (LocalDistributor local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -174,16 +174,19 @@ void shouldBeAbleToRegisterACustomNode() throws URISyntaxException { Duration.ofMinutes(5), false, Duration.ofSeconds(5), - newSessionThreadPoolSize); + newSessionThreadPoolSize)) { - distributor = new RemoteDistributor(tracer, new PassthroughHttpClient.Factory(local), externalUrl, registrationSecret); + distributor = + new RemoteDistributor(tracer, new PassthroughHttpClient.Factory(local), externalUrl, + registrationSecret); - distributor.add(node); + distributor.add(node); - wait.until(obj -> distributor.getStatus().hasCapacity()); + wait.until(obj -> distributor.getStatus().hasCapacity()); - NodeStatus status = getOnlyElement(distributor.getStatus().getNodes()); - assertEquals(1, getStereotypes(status).get(CAPS).intValue()); + NodeStatus status = getOnlyElement(distributor.getStatus().getNodes()); + assertEquals(1, getStereotypes(status).get(CAPS).intValue()); + } } @Test @@ -197,7 +200,7 @@ void shouldBeAbleToRegisterNodesByListeningForEvents() throws URISyntaxException (id, caps) -> new Session(id, sessionUri, stereotype, caps, Instant.now()))) .build(); - Distributor local = new LocalDistributor( + try (LocalDistributor local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -208,16 +211,19 @@ void shouldBeAbleToRegisterNodesByListeningForEvents() throws URISyntaxException Duration.ofMinutes(5), false, Duration.ofSeconds(5), - newSessionThreadPoolSize); + newSessionThreadPoolSize)) { - distributor = new RemoteDistributor(tracer, new PassthroughHttpClient.Factory(local), externalUrl, registrationSecret); + distributor = + new RemoteDistributor(tracer, new PassthroughHttpClient.Factory(local), externalUrl, + registrationSecret); - bus.fire(new NodeStatusEvent(node.getStatus())); + bus.fire(new NodeStatusEvent(node.getStatus())); - wait.until(obj -> distributor.getStatus().hasCapacity()); + wait.until(obj -> distributor.getStatus().hasCapacity()); - NodeStatus status = getOnlyElement(distributor.getStatus().getNodes()); - assertEquals(1, getStereotypes(status).get(CAPS).intValue()); + NodeStatus status = getOnlyElement(distributor.getStatus().getNodes()); + assertEquals(1, getStereotypes(status).get(CAPS).intValue()); + } } @Test @@ -241,7 +247,7 @@ void shouldKeepOnlyOneNodeWhenTwoRegistrationsHaveTheSameUriByListeningForEvents handler.addHandler(firstNode); handler.addHandler(secondNode); - Distributor local = new LocalDistributor( + try (LocalDistributor local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(handler), @@ -252,18 +258,21 @@ void shouldKeepOnlyOneNodeWhenTwoRegistrationsHaveTheSameUriByListeningForEvents Duration.ofMinutes(5), false, Duration.ofSeconds(5), - newSessionThreadPoolSize); + newSessionThreadPoolSize)) { - distributor = new RemoteDistributor(tracer, new PassthroughHttpClient.Factory(local), externalUrl, registrationSecret); + distributor = + new RemoteDistributor(tracer, new PassthroughHttpClient.Factory(local), externalUrl, + registrationSecret); - bus.fire(new NodeStatusEvent(firstNode.getStatus())); - bus.fire(new NodeStatusEvent(secondNode.getStatus())); + bus.fire(new NodeStatusEvent(firstNode.getStatus())); + bus.fire(new NodeStatusEvent(secondNode.getStatus())); - wait.until(obj -> distributor.getStatus()); + wait.until(obj -> distributor.getStatus()); - Set nodes = distributor.getStatus().getNodes(); + Set nodes = distributor.getStatus().getNodes(); - assertEquals(1, nodes.size()); + assertEquals(1, nodes.size()); + } } @Test @@ -278,7 +287,7 @@ void distributorShouldUpdateStateOfExistingNodeWhenNodePublishesStateChange() (id, caps) -> new Session(id, sessionUri, stereotype, caps, Instant.now()))) .build(); - Distributor local = new LocalDistributor( + try (LocalDistributor local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -289,40 +298,43 @@ void distributorShouldUpdateStateOfExistingNodeWhenNodePublishesStateChange() Duration.ofMinutes(5), false, Duration.ofSeconds(5), - newSessionThreadPoolSize); + newSessionThreadPoolSize)) { - distributor = new RemoteDistributor(tracer, new PassthroughHttpClient.Factory(local), externalUrl, registrationSecret); + distributor = + new RemoteDistributor(tracer, new PassthroughHttpClient.Factory(local), externalUrl, + registrationSecret); - bus.fire(new NodeStatusEvent(node.getStatus())); + bus.fire(new NodeStatusEvent(node.getStatus())); - // Start empty - wait.until(obj -> distributor.getStatus().hasCapacity()); + // Start empty + wait.until(obj -> distributor.getStatus().hasCapacity()); - NodeStatus nodeStatus = getOnlyElement(distributor.getStatus().getNodes()); - assertEquals(1, getStereotypes(nodeStatus).get(CAPS).intValue()); - - // Craft a status that makes it look like the node is busy, and post it on the bus. - NodeStatus status = node.getStatus(); - NodeStatus crafted = new NodeStatus( - status.getNodeId(), - status.getExternalUri(), - status.getMaxSessionCount(), - ImmutableSet.of( - new Slot( - new SlotId(status.getNodeId(), UUID.randomUUID()), - CAPS, - Instant.now(), - new Session( - new SessionId(UUID.randomUUID()), sessionUri, CAPS, CAPS, Instant.now()))), - UP, - Duration.ofSeconds(10), - status.getVersion(), - status.getOsInfo()); - - bus.fire(new NodeStatusEvent(crafted)); - - // We claimed the only slot is filled. Life is good. - wait.until(obj -> !distributor.getStatus().hasCapacity()); + NodeStatus nodeStatus = getOnlyElement(distributor.getStatus().getNodes()); + assertEquals(1, getStereotypes(nodeStatus).get(CAPS).intValue()); + + // Craft a status that makes it look like the node is busy, and post it on the bus. + NodeStatus status = node.getStatus(); + NodeStatus crafted = new NodeStatus( + status.getNodeId(), + status.getExternalUri(), + status.getMaxSessionCount(), + ImmutableSet.of( + new Slot( + new SlotId(status.getNodeId(), UUID.randomUUID()), + CAPS, + Instant.now(), + new Session( + new SessionId(UUID.randomUUID()), sessionUri, CAPS, CAPS, Instant.now()))), + UP, + Duration.ofSeconds(10), + status.getVersion(), + status.getOsInfo()); + + bus.fire(new NodeStatusEvent(crafted)); + + // We claimed the only slot is filled. Life is good. + wait.until(obj -> !distributor.getStatus().hasCapacity()); + } } private Map getStereotypes(NodeStatus status) { diff --git a/java/test/org/openqa/selenium/grid/distributor/DistributorTest.java b/java/test/org/openqa/selenium/grid/distributor/DistributorTest.java index 65d7251fae087..ff8de65e48fbb 100644 --- a/java/test/org/openqa/selenium/grid/distributor/DistributorTest.java +++ b/java/test/org/openqa/selenium/grid/distributor/DistributorTest.java @@ -107,7 +107,7 @@ class DistributorTest { private final Wait wait = new FluentWait<>(new Object()).withTimeout(Duration.ofSeconds(5)); private Tracer tracer; private EventBus bus; - private Distributor local; + private LocalDistributor local; private Capabilities stereotype; private Capabilities caps; private URI nodeUri; @@ -147,6 +147,9 @@ public void setUp() throws URISyntaxException { @AfterEach public void cleanUp() { bus.close(); + if (local !=null) { + local.close(); + } } @Test @@ -215,7 +218,7 @@ void shouldBeAbleToAddANodeAndCreateASession() { new TestSessionFactory((id, c) -> new Session(id, nodeUri, stereotype, c, Instant.now()))) .build(); - Distributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -227,14 +230,14 @@ void shouldBeAbleToAddANodeAndCreateASession() { false, Duration.ofSeconds(5), newSessionThreadPoolSize); - distributor.add(node); - waitToHaveCapacity(distributor); + local.add(node); + waitToHaveCapacity(local); MutableCapabilities sessionCaps = new MutableCapabilities(caps); sessionCaps.setCapability("sausages", "gravy"); Either result = - distributor.newSession(createRequest(sessionCaps)); + local.newSession(createRequest(sessionCaps)); assertThatEither(result).isRight(); Session session = result.right().getSession(); assertThat(session.getCapabilities().getCapability("sausages")) @@ -259,7 +262,7 @@ void creatingASessionAddsItToTheSessionMap() { new TestSessionFactory((id, c) -> new Session(id, nodeUri, stereotype, c, Instant.now()))) .build(); - LocalDistributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -271,14 +274,14 @@ void creatingASessionAddsItToTheSessionMap() { false, Duration.ofSeconds(5), newSessionThreadPoolSize); - distributor.add(node); - waitToHaveCapacity(distributor); + local.add(node); + waitToHaveCapacity(local); MutableCapabilities sessionCaps = new MutableCapabilities(caps); sessionCaps.setCapability("sausages", "gravy"); Either result = - distributor.newSession(createRequest(sessionCaps)); + local.newSession(createRequest(sessionCaps)); assertThatEither(result).isRight(); Session returned = result.right().getSession(); Session session = sessions.get(returned.getId()); @@ -304,7 +307,7 @@ void shouldBeAbleToRemoveANode() throws MalformedURLException { new TestSessionFactory((id, c) -> new Session(id, nodeUri, stereotype, c, Instant.now()))) .build(); - Distributor local = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -345,7 +348,7 @@ void testDrainingNodeDoesNotAcceptNewSessions() { new TestSessionFactory((id, c) -> new Session(id, nodeUri, stereotype, c, Instant.now()))) .build(); - Distributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -357,12 +360,12 @@ void testDrainingNodeDoesNotAcceptNewSessions() { false, Duration.ofSeconds(5), newSessionThreadPoolSize); - distributor.add(node); - distributor.drain(node.getId()); + local.add(node); + local.drain(node.getId()); assertTrue(node.isDraining()); - Either result = distributor.newSession(createRequest(caps)); + Either result = local.newSession(createRequest(caps)); assertThatEither(result).isLeft(); } @@ -385,7 +388,7 @@ void testDrainedNodeShutsDownOnceEmpty() throws InterruptedException { CountDownLatch latch = new CountDownLatch(1); bus.addListener(NodeDrainComplete.listener(ignored -> latch.countDown())); - Distributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -397,19 +400,19 @@ void testDrainedNodeShutsDownOnceEmpty() throws InterruptedException { false, Duration.ofSeconds(5), newSessionThreadPoolSize); - distributor.add(node); - waitToHaveCapacity(distributor); + local.add(node); + waitToHaveCapacity(local); - distributor.drain(node.getId()); + local.drain(node.getId()); latch.await(5, TimeUnit.SECONDS); assertThat(latch.getCount()).isZero(); - assertThat(distributor.getStatus().getNodes()).isEmpty(); + assertThat(local.getStatus().getNodes()).isEmpty(); Either result = - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); assertThatEither(result).isLeft(); } @@ -432,7 +435,7 @@ void drainedNodeDoesNotShutDownIfNotEmpty() throws InterruptedException { CountDownLatch latch = new CountDownLatch(1); bus.addListener(NodeDrainComplete.listener(ignored -> latch.countDown())); - Distributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -444,20 +447,20 @@ void drainedNodeDoesNotShutDownIfNotEmpty() throws InterruptedException { false, Duration.ofSeconds(5), newSessionThreadPoolSize); - distributor.add(node); - waitToHaveCapacity(distributor); + local.add(node); + waitToHaveCapacity(local); Either session = - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); assertThatEither(session).isRight(); - distributor.drain(node.getId()); + local.drain(node.getId()); latch.await(5, TimeUnit.SECONDS); assertThat(latch.getCount()).isEqualTo(1); - assertThat(distributor.getStatus().getNodes().size()).isEqualTo(1); + assertThat(local.getStatus().getNodes().size()).isEqualTo(1); } @Test @@ -482,7 +485,7 @@ void drainedNodeShutsDownAfterSessionsFinish() throws InterruptedException { CountDownLatch latch = new CountDownLatch(1); bus.addListener(NodeDrainComplete.listener(ignored -> latch.countDown())); - Distributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -494,28 +497,28 @@ void drainedNodeShutsDownAfterSessionsFinish() throws InterruptedException { false, Duration.ofSeconds(5), newSessionThreadPoolSize); - distributor.add(node); - waitToHaveCapacity(distributor); + local.add(node); + waitToHaveCapacity(local); Either firstResponse = - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); Either secondResponse = - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); - distributor.drain(node.getId()); + local.drain(node.getId()); - assertThat(distributor.getStatus().getNodes().size()).isEqualTo(1); + assertThat(local.getStatus().getNodes().size()).isEqualTo(1); node.stop(firstResponse.right().getSession().getId()); node.stop(secondResponse.right().getSession().getId()); latch.await(5, TimeUnit.SECONDS); - waitTillNodesAreRemoved(distributor); + waitTillNodesAreRemoved(local); assertThat(latch.getCount()).isZero(); - assertThat(distributor.getStatus().getNodes()).isEmpty(); + assertThat(local.getStatus().getNodes()).isEmpty(); } @Test @@ -572,7 +575,7 @@ void theMostLightlyLoadedNodeIsSelectedFirst() { handler.addHandler(medium); handler.addHandler(heavy); handler.addHandler(massive); - Distributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(handler), @@ -589,13 +592,13 @@ void theMostLightlyLoadedNodeIsSelectedFirst() { .add(lightest) .add(massive); - wait.until(obj -> distributor.getStatus().getNodes().size() == 4); - wait.until(ignored -> distributor.getStatus().getNodes().stream() + wait.until(obj -> local.getStatus().getNodes().size() == 4); + wait.until(ignored -> local.getStatus().getNodes().stream() .allMatch(node -> node.getAvailability() == UP && node.hasCapacity())); - wait.until(obj -> distributor.getStatus().hasCapacity()); + wait.until(obj -> local.getStatus().hasCapacity()); Either result = - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); assertThatEither(result).isRight(); Session session = result.right().getSession(); assertThat(session.getUri()).isEqualTo(lightest.getStatus().getExternalUri()); @@ -617,7 +620,7 @@ void shouldUseLastSessionCreatedTimeAsTieBreaker() { handler.addHandler(sessions); handler.addHandler(leastRecent); - Distributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(handler), @@ -630,17 +633,17 @@ void shouldUseLastSessionCreatedTimeAsTieBreaker() { Duration.ofSeconds(5), newSessionThreadPoolSize) .add(leastRecent); - waitToHaveCapacity(distributor); + waitToHaveCapacity(local); - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); Node middle = createNode(caps, 5, 0); handler.addHandler(middle); - distributor.add(middle); - waitForAllNodesToHaveCapacity(distributor, 2); + local.add(middle); + waitForAllNodesToHaveCapacity(local, 2); Either result = - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); assertThatEither(result).isRight(); Session session = result.right().getSession(); // Least lightly loaded is middle @@ -648,10 +651,10 @@ void shouldUseLastSessionCreatedTimeAsTieBreaker() { Node mostRecent = createNode(caps, 5, 0); handler.addHandler(mostRecent); - distributor.add(mostRecent); - waitForAllNodesToHaveCapacity(distributor, 3); + local.add(mostRecent); + waitForAllNodesToHaveCapacity(local, 3); - result = distributor.newSession(createRequest(caps)); + result = local.newSession(createRequest(caps)); assertThatEither(result).isRight(); session = result.right().getSession(); // Least lightly loaded is most recent @@ -663,7 +666,7 @@ void shouldUseLastSessionCreatedTimeAsTieBreaker() { assertThat(getFreeStereotypeCounts(middle.getStatus())).isEqualTo(expected); // All nodes are now equally loaded. We should be going in time order now - result = distributor.newSession(createRequest(caps)); + result = local.newSession(createRequest(caps)); assertThatEither(result).isRight(); session = result.right().getSession(); assertThat(session.getUri()).isEqualTo(leastRecent.getStatus().getExternalUri()); @@ -703,7 +706,7 @@ void shouldIncludeHostsThatAreUpInHostList() { .build(); handler.addHandler(alwaysDown); - LocalDistributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(handler), @@ -715,13 +718,13 @@ void shouldIncludeHostsThatAreUpInHostList() { false, Duration.ofSeconds(5), newSessionThreadPoolSize); - handler.addHandler(distributor); - distributor.add(alwaysDown); - waitForAllNodesToMeetCondition(distributor, 1, DOWN); + handler.addHandler(local); + local.add(alwaysDown); + waitForAllNodesToMeetCondition(local, 1, DOWN); // Should be unable to create a session because the node is down. Either result = - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); assertThatEither(result).isLeft(); Node alwaysUp = LocalNode.builder(tracer, bus, uri, uri, registrationSecret) @@ -733,10 +736,10 @@ void shouldIncludeHostsThatAreUpInHostList() { .build(); handler.addHandler(alwaysUp); - distributor.add(alwaysUp); - waitToHaveCapacity(distributor); + local.add(alwaysUp); + waitToHaveCapacity(local); - result = distributor.newSession(createRequest(caps)); + result = local.newSession(createRequest(caps)); assertThatEither(result).isRight(); } @@ -755,7 +758,7 @@ void shouldNotScheduleAJobIfAllSlotsAreBeingUsed() { .add(caps, new TestSessionFactory((id, c) -> new Session( id, nodeUri, stereotype, c, Instant.now()))) .build(); - Distributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -768,16 +771,16 @@ void shouldNotScheduleAJobIfAllSlotsAreBeingUsed() { Duration.ofSeconds(5), newSessionThreadPoolSize); - distributor.add(node); - waitToHaveCapacity(distributor); + local.add(node); + waitToHaveCapacity(local); // Use up the one slot available Either result = - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); assertThatEither(result).isRight(); // Now try and create a session. - result = distributor.newSession(createRequest(caps)); + result = local.newSession(createRequest(caps)); assertThatEither(result).isLeft(); } @@ -797,7 +800,7 @@ void shouldReleaseSlotOnceSessionEnds() { id, nodeUri, stereotype, c, Instant.now()))) .build(); - Distributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -809,12 +812,12 @@ void shouldReleaseSlotOnceSessionEnds() { false, Duration.ofSeconds(5), newSessionThreadPoolSize); - distributor.add(node); - waitToHaveCapacity(distributor); + local.add(node); + waitToHaveCapacity(local); // Use up the one slot available Session session; - Either result = distributor.newSession(createRequest(caps)); + Either result = local.newSession(createRequest(caps)); assertThatEither(result).isRight(); session = result.right().getSession(); // Make sure the session map has the session @@ -833,10 +836,10 @@ void shouldReleaseSlotOnceSessionEnds() { } }); - waitToHaveCapacity(distributor); + waitToHaveCapacity(local); // And we should now be able to create another session. - result = distributor.newSession(createRequest(caps)); + result = local.newSession(createRequest(caps)); assertThatEither(result).isRight(); } @@ -896,7 +899,7 @@ void attemptingToStartASessionWhichFailsMarksAsTheSlotAsAvailable() { })) .build(); - Distributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(node), @@ -908,14 +911,14 @@ void attemptingToStartASessionWhichFailsMarksAsTheSlotAsAvailable() { false, Duration.ofSeconds(5), newSessionThreadPoolSize); - distributor.add(node); - waitToHaveCapacity(distributor); + local.add(node); + waitToHaveCapacity(local); Either result = - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); assertThatEither(result).isLeft(); - assertThat(distributor.getStatus().hasCapacity()).isTrue(); + assertThat(local.getStatus().hasCapacity()).isTrue(); } @Test @@ -943,7 +946,7 @@ void shouldReturnNodesThatWereDownToPoolOfNodesOnceTheyMarkTheirHealthCheckPasse .build(); handler.addHandler(node); - LocalDistributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(handler), @@ -955,22 +958,22 @@ void shouldReturnNodesThatWereDownToPoolOfNodesOnceTheyMarkTheirHealthCheckPasse false, Duration.ofSeconds(5), newSessionThreadPoolSize); - handler.addHandler(distributor); - distributor.add(node); - waitForAllNodesToMeetCondition(distributor, 1, DOWN); + handler.addHandler(local); + local.add(node); + waitForAllNodesToMeetCondition(local, 1, DOWN); // Should be unable to create a session because the node is down. Either result = - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); assertThatEither(result).isLeft(); // Mark the node as being up isUp.set(UP); // Kick the machinery to ensure that everything is fine. - distributor.refresh(); + local.refresh(); // Because the node is now up and running, we should now be able to create a session - result = distributor.newSession(createRequest(caps)); + result = local.newSession(createRequest(caps)); assertThatEither(result).isRight(); } @@ -1009,7 +1012,7 @@ void shouldNotRemoveNodeWhoseHealthCheckPassesBeforeThreshold() .build(); handler.addHandler(node); - LocalDistributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(handler), @@ -1021,15 +1024,15 @@ void shouldNotRemoveNodeWhoseHealthCheckPassesBeforeThreshold() false, Duration.ofSeconds(5), newSessionThreadPoolSize); - handler.addHandler(distributor); - distributor.add(node); + handler.addHandler(local); + local.add(node); latch.await(60, TimeUnit.SECONDS); - waitToHaveCapacity(distributor); + waitToHaveCapacity(local); Either result = - distributor.newSession(createRequest(caps)); + local.newSession(createRequest(caps)); assertThatEither(result).isRight(); } @@ -1070,7 +1073,7 @@ void shouldPrioritizeHostsWithTheMostSlotsAvailableForASessionType() { registrationSecret, 5); - LocalDistributor distributor = new LocalDistributor( + local = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(handler), @@ -1089,23 +1092,23 @@ void shouldPrioritizeHostsWithTheMostSlotsAvailableForASessionType() { Capabilities chrome = new ImmutableCapabilities("browserName", "chrome"); //Store our "expected results" sets for the various browser-specific nodes - Set edgeNodes = createNodeSet(handler, distributor, 3, edge, chrome, firefox); + Set edgeNodes = createNodeSet(handler, local, 3, edge, chrome, firefox); //chromeNodes is all these new nodes PLUS all the Edge nodes from before - Set chromeNodes = createNodeSet(handler, distributor, 5, chrome, firefox); + Set chromeNodes = createNodeSet(handler, local, 5, chrome, firefox); chromeNodes.addAll(edgeNodes); //all nodes support firefox, so add them to the firefoxNodes set - Set firefoxNodes = createNodeSet(handler, distributor, 3, firefox); + Set firefoxNodes = createNodeSet(handler, local, 3, firefox); firefoxNodes.addAll(edgeNodes); firefoxNodes.addAll(chromeNodes); - waitForAllNodesToHaveCapacity(distributor, 11); + waitForAllNodesToHaveCapacity(local, 11); //Assign 5 Chrome and 5 Firefox sessions to the distributor, make sure they don't go to the Edge node for (int i=0; i<5; i++) { Either chromeResult = - distributor.newSession(createRequest(chrome)); + local.newSession(createRequest(chrome)); assertThatEither(chromeResult).isRight(); Session chromeSession = chromeResult.right().getSession(); @@ -1118,7 +1121,7 @@ void shouldPrioritizeHostsWithTheMostSlotsAvailableForASessionType() { ); Either firefoxResult = - distributor.newSession(createRequest(firefox)); + local.newSession(createRequest(firefox)); assertThatEither(firefoxResult).isRight(); Session firefoxSession = firefoxResult.right().getSession(); LOG.info(String.format("Firefox Session %d assigned to %s", i, chromeSession.getUri())); @@ -1131,7 +1134,7 @@ void shouldPrioritizeHostsWithTheMostSlotsAvailableForASessionType() { //The Chrome Nodes should be full at this point, but Firefox isn't... so send an Edge session and make sure it routes to an Edge node Either edgeResult = - distributor.newSession(createRequest(edge)); + local.newSession(createRequest(edge)); assertThatEither(edgeResult).isRight(); Session edgeSession = edgeResult.right().getSession(); assertTrue(edgeNodes.stream().anyMatch(node -> node.getUri().equals(edgeSession.getUri()))); diff --git a/java/test/org/openqa/selenium/grid/node/config/SessionCapabilitiesMutatorTest.java b/java/test/org/openqa/selenium/grid/node/config/SessionCapabilitiesMutatorTest.java new file mode 100644 index 0000000000000..9fb61248d1757 --- /dev/null +++ b/java/test/org/openqa/selenium/grid/node/config/SessionCapabilitiesMutatorTest.java @@ -0,0 +1,292 @@ +// Licensed to the Software Freedom Conservancy (SFC) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The SFC licenses this file +// to you 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 org.openqa.selenium.grid.node.config; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.InstanceOfAssertFactories.LIST; +import static org.assertj.core.api.InstanceOfAssertFactories.MAP; +import static org.assertj.core.api.InstanceOfAssertFactories.STRING; + +import org.junit.jupiter.api.Test; +import org.openqa.selenium.Capabilities; +import org.openqa.selenium.ImmutableCapabilities; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Base64; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +public class SessionCapabilitiesMutatorTest { + + private SessionCapabilitiesMutator sessionCapabilitiesMutator; + private Capabilities stereotype; + private Capabilities capabilities; + + @Test + void shouldMergeStereotypeWithoutOptionsWithCapsWithOptions() { + stereotype = new ImmutableCapabilities( + "browserName", "chrome", + "unhandledPromptBehavior", "accept"); + + sessionCapabilitiesMutator = new SessionCapabilitiesMutator(stereotype); + + Map chromeOptions = new HashMap<>(); + chromeOptions.put("args", Arrays.asList("incognito", "window-size=500,500")); + + capabilities = new ImmutableCapabilities( + "browserName", "chrome", + "goog:chromeOptions", chromeOptions, + "pageLoadStrategy", "normal"); + + Map modifiedCapabilities = sessionCapabilitiesMutator.apply(capabilities).asMap(); + + assertThat(modifiedCapabilities.get("browserName")).isEqualTo("chrome"); + assertThat(modifiedCapabilities.get("unhandledPromptBehavior")).isEqualTo("accept"); + assertThat(modifiedCapabilities.get("pageLoadStrategy")).isEqualTo("normal"); + assertThat(modifiedCapabilities) + .extractingByKey("goog:chromeOptions").asInstanceOf(MAP) + .extractingByKey("args").asInstanceOf(LIST) + .contains("incognito", "window-size=500,500"); + } + + @Test + void shouldMergeStereotypeWithOptionsWithCapsWithoutOptions() { + Map chromeOptions = new HashMap<>(); + chromeOptions.put("args", Arrays.asList("incognito", "window-size=500,500")); + + stereotype = new ImmutableCapabilities( + "browserName", "chrome", + "goog:chromeOptions", chromeOptions, + "unhandledPromptBehavior", "accept"); + + sessionCapabilitiesMutator = new SessionCapabilitiesMutator(stereotype); + + capabilities = new ImmutableCapabilities( + "browserName", "chrome", + "pageLoadStrategy", "normal"); + + Map modifiedCapabilities = sessionCapabilitiesMutator.apply(capabilities).asMap(); + + assertThat(modifiedCapabilities.get("browserName")).isEqualTo("chrome"); + assertThat(modifiedCapabilities.get("unhandledPromptBehavior")).isEqualTo("accept"); + assertThat(modifiedCapabilities.get("pageLoadStrategy")).isEqualTo("normal"); + assertThat(modifiedCapabilities) + .extractingByKey("goog:chromeOptions").asInstanceOf(MAP) + .extractingByKey("args").asInstanceOf(LIST) + .contains("incognito", "window-size=500,500"); + } + + @Test + void shouldMergeChromeSpecificOptionsFromStereotypeAndCaps() { + String ext1 = Base64.getEncoder().encodeToString("ext1".getBytes()); + String ext2 = Base64.getEncoder().encodeToString("ext2".getBytes()); + + Map stereotypeOptions = new HashMap<>(); + stereotypeOptions.put("args", new ArrayList<>(Arrays.asList("incognito", "window-size=500,500"))); + stereotypeOptions.put("extensions", new ArrayList<>(Collections.singletonList(ext1))); + stereotypeOptions.put("binary", "/path/to/binary"); + stereotypeOptions.put("opt1", "val1"); + stereotypeOptions.put("opt2", "val4"); + + stereotype = new ImmutableCapabilities( + "browserName", "chrome", + "goog:chromeOptions", stereotypeOptions); + + sessionCapabilitiesMutator = new SessionCapabilitiesMutator(stereotype); + + Map capabilityOptions = new HashMap<>(); + capabilityOptions.put("args", Arrays.asList("incognito", "--headless")); + capabilityOptions.put("extensions", new ArrayList<>(Collections.singletonList(ext2))); + capabilityOptions.put("binary", "/path/to/caps/binary"); + capabilityOptions.put("opt2", "val2"); + capabilityOptions.put("opt3", "val3"); + + capabilities = new ImmutableCapabilities( + "browserName", "chrome", + "goog:chromeOptions", capabilityOptions); + + Map modifiedCapabilities = sessionCapabilitiesMutator.apply(capabilities).asMap(); + + assertThat(modifiedCapabilities) + .extractingByKey("goog:chromeOptions").asInstanceOf(MAP) + .extractingByKey("args").asInstanceOf(LIST) + .containsExactly("incognito", "window-size=500,500", "--headless"); + + assertThat(modifiedCapabilities) + .extractingByKey("goog:chromeOptions").asInstanceOf(MAP) + .containsEntry("opt1", "val1") + .containsEntry("opt2", "val2") + .containsEntry("opt3", "val3"); + + assertThat(modifiedCapabilities) + .extractingByKey("goog:chromeOptions").asInstanceOf(MAP) + .extractingByKey("extensions").asInstanceOf(LIST) + .containsExactly(ext1, ext2); + + assertThat(modifiedCapabilities) + .extractingByKey("goog:chromeOptions").asInstanceOf(MAP) + .extractingByKey("binary").asInstanceOf(STRING) + .isEqualTo("/path/to/binary"); + } + + @Test + void shouldMergeEdgeSpecificOptionsFromStereotypeAndCaps() { + String ext1 = Base64.getEncoder().encodeToString("ext1".getBytes()); + String ext2 = Base64.getEncoder().encodeToString("ext2".getBytes()); + + Map stereotypeOptions = new HashMap<>(); + stereotypeOptions.put("args", new ArrayList<>(Arrays.asList("incognito", "window-size=500,500"))); + stereotypeOptions.put("extensions", new ArrayList<>(Collections.singletonList(ext1))); + stereotypeOptions.put("opt1", "val1"); + stereotypeOptions.put("opt2", "val4"); + + stereotype = new ImmutableCapabilities( + "browserName", "microsoftedge", + "ms:edgeOptions", stereotypeOptions); + + sessionCapabilitiesMutator = new SessionCapabilitiesMutator(stereotype); + + Map capabilityOptions = new HashMap<>(); + capabilityOptions.put("args", Arrays.asList("incognito", "--headless")); + capabilityOptions.put("extensions", new ArrayList<>(Collections.singletonList(ext2))); + capabilityOptions.put("binary", "/path/to/binary"); + capabilityOptions.put("opt2", "val2"); + capabilityOptions.put("opt3", "val3"); + + capabilities = new ImmutableCapabilities( + "browserName", "microsoftedge", + "ms:edgeOptions", capabilityOptions); + + Map modifiedCapabilities = sessionCapabilitiesMutator.apply(capabilities).asMap(); + + assertThat(modifiedCapabilities) + .extractingByKey("ms:edgeOptions").asInstanceOf(MAP) + .extractingByKey("args").asInstanceOf(LIST) + .containsExactly("incognito", "window-size=500,500", "--headless"); + + assertThat(modifiedCapabilities) + .extractingByKey("ms:edgeOptions").asInstanceOf(MAP) + .containsEntry("opt1", "val1") + .containsEntry("opt2", "val2") + .containsEntry("opt3", "val3"); + + assertThat(modifiedCapabilities) + .extractingByKey("ms:edgeOptions").asInstanceOf(MAP) + .extractingByKey("extensions").asInstanceOf(LIST) + .containsExactly(ext1, ext2); + + assertThat(modifiedCapabilities) + .extractingByKey("ms:edgeOptions").asInstanceOf(MAP) + .extractingByKey("binary").isNull(); + } + + @Test + void shouldMergeFirefoxSpecificOptionsFromStereotypeAndCaps() { + Map stereotypeOptions = new HashMap<>(); + stereotypeOptions.put("args", new ArrayList<>(Arrays.asList("verbose", "silent"))); + + Map prefs = new HashMap<>(); + prefs.put("opt1", "val1"); + prefs.put("opt2", "val4"); + stereotypeOptions.put("prefs", prefs); + stereotypeOptions.put("binary", "/path/to/binary"); + + Map debugLog = new HashMap<>(); + debugLog.put("level", "debug"); + stereotypeOptions.put("log", debugLog); + + stereotypeOptions.put("profile", "profile-string"); + + stereotype = new ImmutableCapabilities( + "browserName", "firefox", + "moz:firefoxOptions", stereotypeOptions); + + sessionCapabilitiesMutator = new SessionCapabilitiesMutator(stereotype); + + Map capabilityOptions = new HashMap<>(); + capabilityOptions.put("args", Collections.singletonList("-headless")); + + Map capabilityPrefs = new HashMap<>(); + capabilityPrefs.put("opt1", "val1"); + capabilityPrefs.put("opt2", "val2"); + capabilityPrefs.put("opt3", "val3"); + capabilityOptions.put("prefs", capabilityPrefs); + + Map infoLog = new HashMap<>(); + infoLog.put("level", "info"); + capabilityOptions.put("log", infoLog); + capabilityOptions.put("profile", "different-profile-string"); + + capabilityOptions.put("binary", "/path/to/caps/binary"); + + capabilities = new ImmutableCapabilities( + "browserName", "firefox", + "moz:firefoxOptions", capabilityOptions); + + Map modifiedCapabilities = sessionCapabilitiesMutator.apply(capabilities).asMap(); + + assertThat(modifiedCapabilities) + .extractingByKey("moz:firefoxOptions").asInstanceOf(MAP) + .extractingByKey("args").asInstanceOf(LIST) + .containsExactly("verbose", "silent", "-headless"); + + assertThat(modifiedCapabilities) + .extractingByKey("moz:firefoxOptions").asInstanceOf(MAP) + .extractingByKey("prefs").asInstanceOf(MAP) + .containsEntry("opt1", "val1") + .containsEntry("opt2", "val2") + .containsEntry("opt3", "val3"); + + assertThat(modifiedCapabilities) + .extractingByKey("moz:firefoxOptions").asInstanceOf(MAP) + .extractingByKey("log").asInstanceOf(MAP) + .containsEntry("level", "info"); + + assertThat(modifiedCapabilities) + .extractingByKey("moz:firefoxOptions").asInstanceOf(MAP) + .extractingByKey("binary").asInstanceOf(STRING) + .isEqualTo("/path/to/binary"); + + assertThat(modifiedCapabilities) + .extractingByKey("moz:firefoxOptions").asInstanceOf(MAP) + .extractingByKey("profile").asInstanceOf(STRING) + .isEqualTo("different-profile-string"); + } + + @Test + void shouldMergeTopLevelStereotypeAndCaps() { + stereotype = new ImmutableCapabilities( + "browserName", "chrome", + "unhandledPromptBehavior", "accept", + "pageLoadStrategy", "eager"); + + sessionCapabilitiesMutator = new SessionCapabilitiesMutator(stereotype); + + capabilities = new ImmutableCapabilities( + "browserName", "chrome", + "pageLoadStrategy", "normal"); + + Map modifiedCapabilities = sessionCapabilitiesMutator.apply(capabilities).asMap(); + + assertThat(modifiedCapabilities.get("browserName")).isEqualTo("chrome"); + assertThat(modifiedCapabilities.get("unhandledPromptBehavior")).isEqualTo("accept"); + assertThat(modifiedCapabilities.get("pageLoadStrategy")).isEqualTo("normal"); + } +} diff --git a/java/test/org/openqa/selenium/grid/router/JmxTest.java b/java/test/org/openqa/selenium/grid/router/JmxTest.java index cac391db2834b..f6b2290382e61 100644 --- a/java/test/org/openqa/selenium/grid/router/JmxTest.java +++ b/java/test/org/openqa/selenium/grid/router/JmxTest.java @@ -27,7 +27,6 @@ import org.openqa.selenium.grid.config.MapConfig; import org.openqa.selenium.grid.data.DefaultSlotMatcher; import org.openqa.selenium.grid.data.Session; -import org.openqa.selenium.grid.distributor.Distributor; import org.openqa.selenium.grid.distributor.local.LocalDistributor; import org.openqa.selenium.grid.distributor.selector.DefaultSlotSelector; import org.openqa.selenium.grid.jmx.JMXHelper; @@ -259,7 +258,7 @@ void shouldBeAbleToMonitorHub() throws Exception { secret, 5); - Distributor distributor = new LocalDistributor( + try (LocalDistributor distributor = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(localNode), @@ -270,28 +269,29 @@ void shouldBeAbleToMonitorHub() throws Exception { Duration.ofMinutes(5), false, Duration.ofSeconds(5), - Runtime.getRuntime().availableProcessors()); + Runtime.getRuntime().availableProcessors())) { - distributor.add(localNode); + distributor.add(localNode); - MBeanInfo info = beanServer.getMBeanInfo(name); - assertThat(info).isNotNull(); + MBeanInfo info = beanServer.getMBeanInfo(name); + assertThat(info).isNotNull(); - String nodeUpCount = (String) beanServer.getAttribute(name, "NodeUpCount"); - LOG.info("Node up count=" + nodeUpCount); - assertThat(Integer.parseInt(nodeUpCount)).isEqualTo(1); + String nodeUpCount = (String) beanServer.getAttribute(name, "NodeUpCount"); + LOG.info("Node up count=" + nodeUpCount); + assertThat(Integer.parseInt(nodeUpCount)).isEqualTo(1); - String nodeDownCount = (String) beanServer.getAttribute(name, "NodeDownCount"); - LOG.info("Node down count=" + nodeDownCount); - assertThat(Integer.parseInt(nodeDownCount)).isZero(); + String nodeDownCount = (String) beanServer.getAttribute(name, "NodeDownCount"); + LOG.info("Node down count=" + nodeDownCount); + assertThat(Integer.parseInt(nodeDownCount)).isZero(); - String activeSlots = (String) beanServer.getAttribute(name, "ActiveSlots"); - LOG.info("Active slots count=" + activeSlots); - assertThat(Integer.parseInt(activeSlots)).isZero(); + String activeSlots = (String) beanServer.getAttribute(name, "ActiveSlots"); + LOG.info("Active slots count=" + activeSlots); + assertThat(Integer.parseInt(activeSlots)).isZero(); - String idleSlots = (String) beanServer.getAttribute(name, "IdleSlots"); - LOG.info("Idle slots count=" + idleSlots); - assertThat(Integer.parseInt(idleSlots)).isEqualTo(1); + String idleSlots = (String) beanServer.getAttribute(name, "IdleSlots"); + LOG.info("Idle slots count=" + idleSlots); + assertThat(Integer.parseInt(idleSlots)).isEqualTo(1); + } } } diff --git a/java/test/org/openqa/selenium/grid/router/SessionCleanUpTest.java b/java/test/org/openqa/selenium/grid/router/SessionCleanUpTest.java index b0f2e9245ef41..5b7f022f530f1 100644 --- a/java/test/org/openqa/selenium/grid/router/SessionCleanUpTest.java +++ b/java/test/org/openqa/selenium/grid/router/SessionCleanUpTest.java @@ -148,8 +148,7 @@ void shouldRemoveSessionAfterNodeIsShutDownGracefully() { registrationSecret, 5); handler.addHandler(queue); - - LocalDistributor distributor = new LocalDistributor( + try(LocalDistributor distributor = new LocalDistributor( tracer, bus, clientFactory, @@ -160,85 +159,87 @@ void shouldRemoveSessionAfterNodeIsShutDownGracefully() { Duration.ofSeconds(1), false, Duration.ofSeconds(5), - Runtime.getRuntime().availableProcessors()); - handler.addHandler(distributor); + Runtime.getRuntime().availableProcessors())) { + handler.addHandler(distributor); - Router router = new Router(tracer, clientFactory, sessions, queue, distributor); - handler.addHandler(router); + Router router = new Router(tracer, clientFactory, sessions, queue, distributor); + handler.addHandler(router); - server = new NettyServer( - new BaseServerOptions( - new MapConfig(ImmutableMap.of())), - handler); + server = new NettyServer( + new BaseServerOptions( + new MapConfig(ImmutableMap.of())), + handler); - server.start(); + server.start(); - StringBuilder rawCaps = new StringBuilder(); - try (JsonOutput out = new Json().newOutput(rawCaps)) { - out.setPrettyPrint(false).write(capabilities); - } + StringBuilder rawCaps = new StringBuilder(); + try (JsonOutput out = new Json().newOutput(rawCaps)) { + out.setPrettyPrint(false).write(capabilities); + } + + Config additionalConfig = + new TomlConfig( + new StringReader( + "[node]\n" + + "detect-drivers = false\n" + + "driver-factories = [\n" + + String.format("\"%s\",", LocalTestSessionFactory.class.getName()) + "\n" + + String.format("\"%s\"", rawCaps.toString().replace("\"", "\\\"")) + "\n" + + "]")); + + String[] rawConfig = new String[]{ + "[events]", + "publish = \"tcp://localhost:" + publish + "\"", + "subscribe = \"tcp://localhost:" + subscribe + "\"", + "", + "[network]", + "relax-checks = true", + "", + "[server]", + "registration-secret = \"hereford hop\""}; + + Config nodeConfig = new MemoizedConfig( + new CompoundConfig( + additionalConfig, + new TomlConfig(new StringReader(String.join("\n", rawConfig))), + new MapConfig( + ImmutableMap.of("server", ImmutableMap.of("port", PortProber.findFreePort()))))); + + Server nodeServer = new NodeServer().asServer(nodeConfig).start(); + + waitToHaveCapacity(distributor); + + HttpRequest request = new HttpRequest(POST, "/session"); + request.setContent(asJson( + ImmutableMap.of( + "capabilities", ImmutableMap.of( + "alwaysMatch", capabilities)))); + + HttpClient client = clientFactory.createClient(server.getUrl()); + HttpResponse httpResponse = client.execute(request); + assertThat(httpResponse.getStatus()).isEqualTo(HTTP_OK); + + Optional> maybeResponse = + Optional.ofNullable(Values.get(httpResponse, Map.class)); + + assertThat(maybeResponse).isPresent(); + String rawResponse = JSON.toJson(maybeResponse.get().get("sessionId")); + SessionId id = JSON.toType(rawResponse, SessionId.class); - Config additionalConfig = - new TomlConfig( - new StringReader( - "[node]\n" + - "detect-drivers = false\n" + - "driver-factories = [\n" + - String.format("\"%s\",", LocalTestSessionFactory.class.getName()) + "\n" + - String.format("\"%s\"", rawCaps.toString().replace("\"", "\\\"")) + "\n" + - "]")); - - String[] rawConfig = new String[]{ - "[events]", - "publish = \"tcp://localhost:" + publish + "\"", - "subscribe = \"tcp://localhost:" + subscribe + "\"", - "", - "[network]", - "relax-checks = true", - "", - "[server]", - "registration-secret = \"hereford hop\""}; - - Config nodeConfig = new MemoizedConfig( - new CompoundConfig( - additionalConfig, - new TomlConfig(new StringReader(String.join("\n", rawConfig))), - new MapConfig( - ImmutableMap.of("server", ImmutableMap.of("port", PortProber.findFreePort()))))); - - Server nodeServer = new NodeServer().asServer(nodeConfig).start(); - - waitToHaveCapacity(distributor); - - HttpRequest request = new HttpRequest(POST, "/session"); - request.setContent(asJson( - ImmutableMap.of( - "capabilities", ImmutableMap.of( - "alwaysMatch", capabilities)))); - - HttpClient client = clientFactory.createClient(server.getUrl()); - HttpResponse httpResponse = client.execute(request); - assertThat(httpResponse.getStatus()).isEqualTo(HTTP_OK); - - Optional> maybeResponse = - Optional.ofNullable(Values.get(httpResponse, Map.class)); - - assertThat(maybeResponse).isPresent(); - String rawResponse = JSON.toJson(maybeResponse.get().get("sessionId")); - SessionId id = JSON.toType(rawResponse, SessionId.class); - - Session session = sessions.get(id); - - assertThat(session.getCapabilities().getBrowserName()).isEqualTo(capabilities.getBrowserName()); - - nodeServer.stop(); - - waitTillNodesAreRemoved(distributor); - - try { - waitTillSessionIsRemoved(sessions, id); - } catch (Exception e) { - fail("Session not removed"); + Session session = sessions.get(id); + + assertThat(session.getCapabilities().getBrowserName()).isEqualTo( + capabilities.getBrowserName()); + + nodeServer.stop(); + + waitTillNodesAreRemoved(distributor); + + try { + waitTillSessionIsRemoved(sessions, id); + } catch (Exception e) { + fail("Session not removed"); + } } } @@ -271,7 +272,7 @@ void shouldRemoveSessionAfterNodeIsDown() throws URISyntaxException { .build(); handler.addHandler(node); - LocalDistributor distributor = new LocalDistributor( + try(LocalDistributor distributor = new LocalDistributor( tracer, bus, new PassthroughHttpClient.Factory(handler), @@ -282,48 +283,49 @@ void shouldRemoveSessionAfterNodeIsDown() throws URISyntaxException { Duration.ofSeconds(1), false, Duration.ofSeconds(5), - Runtime.getRuntime().availableProcessors()); - handler.addHandler(distributor); - distributor.add(node); + Runtime.getRuntime().availableProcessors())) { + handler.addHandler(distributor); + distributor.add(node); - waitToHaveCapacity(distributor); + waitToHaveCapacity(distributor); - Either result = - distributor.newSession(new SessionRequest( - new RequestId(UUID.randomUUID()), - Instant.now(), - ImmutableSet.of(W3C), - ImmutableSet.of(capabilities), - ImmutableMap.of(), - ImmutableMap.of())); - assertThat(result.isRight()).isTrue(); + Either result = + distributor.newSession(new SessionRequest( + new RequestId(UUID.randomUUID()), + Instant.now(), + ImmutableSet.of(W3C), + ImmutableSet.of(capabilities), + ImmutableMap.of(), + ImmutableMap.of())); + assertThat(result.isRight()).isTrue(); - SessionId id = result.right().getSession().getId(); - Session session = sessions.get(id); + SessionId id = result.right().getSession().getId(); + Session session = sessions.get(id); - assertThat(session.getCapabilities().getBrowserName()).isEqualTo(capabilities.getBrowserName()); + assertThat(session.getCapabilities().getBrowserName()).isEqualTo( + capabilities.getBrowserName()); - availability.set(DOWN); + availability.set(DOWN); - waitTillNodesAreRemoved(distributor); + waitTillNodesAreRemoved(distributor); - try { - waitTillSessionIsRemoved(sessions, id); - } catch (Exception e) { - fail("Session not removed"); - } - - Either sessionResponse = - distributor.newSession(new SessionRequest( - new RequestId(UUID.randomUUID()), - Instant.now(), - ImmutableSet.of(W3C), - ImmutableSet.of(capabilities), - ImmutableMap.of(), - ImmutableMap.of())); - assertThat(sessionResponse.isLeft()).isTrue(); - assertThat(distributor.getStatus().getNodes().isEmpty()).isTrue(); + try { + waitTillSessionIsRemoved(sessions, id); + } catch (Exception e) { + fail("Session not removed"); + } + Either sessionResponse = + distributor.newSession(new SessionRequest( + new RequestId(UUID.randomUUID()), + Instant.now(), + ImmutableSet.of(W3C), + ImmutableSet.of(capabilities), + ImmutableMap.of(), + ImmutableMap.of())); + assertThat(sessionResponse.isLeft()).isTrue(); + assertThat(distributor.getStatus().getNodes().isEmpty()).isTrue(); + } } private void waitToHaveCapacity(Distributor distributor) { diff --git a/java/test/org/openqa/selenium/grid/router/SessionQueueGridTest.java b/java/test/org/openqa/selenium/grid/router/SessionQueueGridTest.java index 8c84f60327b1c..2ce73faae3a29 100644 --- a/java/test/org/openqa/selenium/grid/router/SessionQueueGridTest.java +++ b/java/test/org/openqa/selenium/grid/router/SessionQueueGridTest.java @@ -83,6 +83,7 @@ class SessionQueueGridTest { private HttpClient.Factory clientFactory; private Secret registrationSecret; private Server server; + private EventBus bus; private static Server createServer(HttpHandler handler) { return new NettyServer( @@ -95,7 +96,7 @@ private static Server createServer(HttpHandler handler) { @BeforeEach public void setup() throws URISyntaxException, MalformedURLException { Tracer tracer = DefaultTestTracer.createTracer(); - EventBus bus = new GuavaEventBus(); + bus = new GuavaEventBus(); int nodePort = PortProber.findFreePort(); URI nodeUri = new URI("http://localhost:" + nodePort); CombinedHandler handler = new CombinedHandler(); @@ -237,6 +238,7 @@ void shouldBeAbleToClearQueue() { @AfterEach public void stopServer() { + bus.close(); server.stop(); } diff --git a/java/test/org/openqa/selenium/grid/sessionmap/jdbc/JdbcBackedSessionMapTest.java b/java/test/org/openqa/selenium/grid/sessionmap/jdbc/JdbcBackedSessionMapTest.java index d5b5133529d2d..947a861568f60 100644 --- a/java/test/org/openqa/selenium/grid/sessionmap/jdbc/JdbcBackedSessionMapTest.java +++ b/java/test/org/openqa/selenium/grid/sessionmap/jdbc/JdbcBackedSessionMapTest.java @@ -60,6 +60,7 @@ public static void createDB() throws SQLException { @AfterAll public static void killDBConnection() throws SQLException { connection.close(); + bus.close(); } @Test diff --git a/java/test/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMapTest.java b/java/test/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMapTest.java index 1b95227655835..2abe6d2829e84 100644 --- a/java/test/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMapTest.java +++ b/java/test/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMapTest.java @@ -64,6 +64,7 @@ public void setUp() throws URISyntaxException { public void tearDownRedisServer() { sessions.getRedisClient().close(); safelyCall(() -> server.stop()); + bus.close(); } @Test diff --git a/java/version.bzl b/java/version.bzl index a8d2387444eea..ddbb809d0529f 100644 --- a/java/version.bzl +++ b/java/version.bzl @@ -1 +1 @@ -SE_VERSION = "4.7.2" +SE_VERSION = "4.8.0" diff --git a/javascript/grid-ui/package-lock.json b/javascript/grid-ui/package-lock.json index f2dc9d7951399..267c14b650abc 100644 --- a/javascript/grid-ui/package-lock.json +++ b/javascript/grid-ui/package-lock.json @@ -8,16 +8,16 @@ "name": "grid_ui", "version": "0.1.0", "dependencies": { - "@apollo/client": "^3.7.2", - "@bazel/typescript": "^5.7.2", + "@apollo/client": "^3.7.4", + "@bazel/typescript": "^5.7.3", "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", - "@mui/icons-material": "^5.10.16", - "@mui/material": "^5.10.17", + "@mui/icons-material": "^5.11.0", + "@mui/material": "^5.11.5", "@novnc/novnc": "^1.3.0", - "@types/jest": "^29.2.4", - "@types/node": "^18.11.11", - "@types/react": "^18.0.26", + "@types/jest": "^29.2.6", + "@types/node": "^18.11.18", + "@types/react": "^18.0.27", "@types/react-dom": "^18.0.6", "@types/react-modal": "^3.12.0", "@types/react-router-dom": "^5.3.3", @@ -36,8 +36,8 @@ "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", "react-scripts": "5.0.1", - "ts-standard": "^12.0.1", - "typescript": "^4.9.3" + "ts-standard": "^12.0.2", + "typescript": "^4.9.4" } }, "node_modules/@adobe/css-tools": { @@ -59,9 +59,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.2.tgz", - "integrity": "sha512-ohAIpXl3mTa1Fd3GT/K37VwQJfTIuuJRp4aOlJ4q/hlx0Wxh+RqDrbn0awtVCOdhGDQN+CQQmVzIqFKn6GziXQ==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.4.tgz", + "integrity": "sha512-bgiCKRmLSBImX4JRrw8NjqGo0AQE/mowCdHX1PJp2r5zIXrJx0UeaAYmx1qJY69Oz/KR7SKlLt4xK+bOP1jx7A==", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "@wry/context": "^0.7.0", @@ -1898,11 +1898,11 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", - "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", + "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", "dependencies": { - "regenerator-runtime": "^0.13.10" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" @@ -1967,12 +1967,13 @@ } }, "node_modules/@bazel/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@bazel/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-tarBJBEIirnq/YaeYu18vXcDxjzlq4xhCXvXUxA0lhHX5oArjEcAEn4tmO0jF+t/7cbkAdMT7daG6vIHSz0QAA==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/@bazel/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-GuDTCtEZcxOXZTJAZi0gfi/i3wm4r6Ny6I7NZLj4Xk9tX+yyRG8SBuUHN972S8/NmT5fFxnPymKfJiurXM4Txg==", + "deprecated": "This package is no longer maintained, see https://github.com/aspect-build/rules_ts for replacement", "hasInstallScript": true, "dependencies": { - "@bazel/worker": "5.7.2", + "@bazel/worker": "5.7.3", "semver": "5.6.0", "source-map-support": "0.5.9", "tsutils": "3.21.0" @@ -2010,9 +2011,9 @@ } }, "node_modules/@bazel/worker": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@bazel/worker/-/worker-5.7.2.tgz", - "integrity": "sha512-H+auDA0QKF4mtZxKkZ2OKJvD7hGXVsVKtvcf4lbb93ur0ldpb5k810PcDxngmIGBcIX5kmyxniNTIiGFNobWTg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/@bazel/worker/-/worker-5.7.3.tgz", + "integrity": "sha512-P3Qo3bTw/NgxkcUNdUTb5j8jm6qIzRvKmFYMMyUyUBN0b7sAB6Qlk0QAP9Lok9+G9TbCXmmbT0dauftsH2x5fQ==", "dependencies": { "google-protobuf": "^3.6.1" } @@ -3278,14 +3279,14 @@ "dev": true }, "node_modules/@mui/base": { - "version": "5.0.0-alpha.109", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.109.tgz", - "integrity": "sha512-UQxoONPI3ntzxcD/cbFHl+Lp2xsVj6HpKmU9QhUZ2kZ2K2yej2QJyU1gnADoWl/Hu94VrvwSSRnjTjR3HvXO/g==", + "version": "5.0.0-alpha.114", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.114.tgz", + "integrity": "sha512-ZpsG2I+zTOAnVTj3Un7TxD2zKRA2OhEPGMcWs/9ylPlS6VuGQSXowPooZiqarjT7TZ0+1bOe8titk/t8dLFiGw==", "dependencies": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.7", "@emotion/is-prop-valid": "^1.2.0", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "@popperjs/core": "^2.11.6", "clsx": "^1.2.1", "prop-types": "^15.8.1", @@ -3315,20 +3316,20 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.17.tgz", - "integrity": "sha512-iNwUuMA30nrN0tiEkeD3zaczv7Tk2jlZIDbXRnijAsYXkZtl/xEzQsVRIPYRDuyEz6D18vQJhV8h7gPUXEubTg==", + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.5.tgz", + "integrity": "sha512-MIuWGjitOsugpRhp64CQY3ZEVMIu9M/L9ioql6QLSkz73+bGIlC9FEhfi670/GZ8pQIIGmtiGGwofYzlwEWjig==", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui" } }, "node_modules/@mui/icons-material": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.16.tgz", - "integrity": "sha512-jjCc0IF6iyLiucQCu5igg3fOscSqbbvRCmyRxXgzOcLR56B0sg2L8o+ZfJ0dAg59+wvgtXaxvjze/mJg0B4iWA==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.11.0.tgz", + "integrity": "sha512-I2LaOKqO8a0xcLGtIozC9xoXjZAto5G5gh0FYUMAlbsIHNHIjn4Xrw9rvjY20vZonyiGrZNMAlAXYkY6JvhF6A==", "dependencies": { - "@babel/runtime": "^7.20.1" + "@babel/runtime": "^7.20.6" }, "engines": { "node": ">=12.0.0" @@ -3349,16 +3350,16 @@ } }, "node_modules/@mui/material": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.17.tgz", - "integrity": "sha512-Kuqgv1qI5HXnc/Xu426xhCGYBSKzplb+xFNLitbnIb92Qx8jmcpfNpFlDJa2kD2H6qP66rr/m4c/zMUfGX/xBQ==", - "dependencies": { - "@babel/runtime": "^7.20.1", - "@mui/base": "5.0.0-alpha.109", - "@mui/core-downloads-tracker": "^5.10.17", - "@mui/system": "^5.10.17", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.11.5.tgz", + "integrity": "sha512-5fzjBbRYaB5MoEpvA32oalAWltOZ3/kSyuovuVmPc6UF6AG42lTtbdMLpdCygurFSGUMZYTg4Cjij52fKlDDgg==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "@mui/base": "5.0.0-alpha.114", + "@mui/core-downloads-tracker": "^5.11.5", + "@mui/system": "^5.11.5", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "@types/react-transition-group": "^4.4.5", "clsx": "^1.2.1", "csstype": "^3.1.1", @@ -3398,12 +3399,12 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/@mui/private-theming": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.16.tgz", - "integrity": "sha512-0MArkJaOHRCKqL/GWjngGZmyOeRz+uxffhx82bKcewr8swqV7xx7EFP02pk0L/gLdfcvYdqwH4YTVjG/+TaKrg==", + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.11.2.tgz", + "integrity": "sha512-qZwMaqRFPwlYmqwVKblKBGKtIjJRAj3nsvX93pOmatsXyorW7N/0IPE/swPgz1VwChXhHO75DwBEx8tB+aRMNg==", "dependencies": { - "@babel/runtime": "^7.20.1", - "@mui/utils": "^5.10.16", + "@babel/runtime": "^7.20.7", + "@mui/utils": "^5.11.2", "prop-types": "^15.8.1" }, "engines": { @@ -3424,11 +3425,11 @@ } }, "node_modules/@mui/styled-engine": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.16.tgz", - "integrity": "sha512-ZMSjXvtiGwGDKqrSlXhpxK2voUaF2/lpC/pSTfFmZvKH9j9a9h1/iwo3ybgjFVYGgbfNeW4h0xEchiRohu9xsw==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.11.0.tgz", + "integrity": "sha512-AF06K60Zc58qf0f7X+Y/QjaHaZq16znliLnGc9iVrV/+s8Ln/FCoeNuFvhlCbZZQ5WQcJvcy59zp0nXrklGGPQ==", "dependencies": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.6", "@emotion/cache": "^11.10.5", "csstype": "^3.1.1", "prop-types": "^15.8.1" @@ -3455,15 +3456,15 @@ } }, "node_modules/@mui/system": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.17.tgz", - "integrity": "sha512-UYzAOSK7uxkMsUssqrIUW3lnOuQpU8vqh4hLwfSw+GYAnQo3qjK4m4NhlDx+pFpsjjiGnr3K+vrSH+aIAMbcLg==", - "dependencies": { - "@babel/runtime": "^7.20.1", - "@mui/private-theming": "^5.10.16", - "@mui/styled-engine": "^5.10.16", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.11.5.tgz", + "integrity": "sha512-KNVsJ0sgRRp2XBqhh4wPS5aacteqjwxgiYTVwVnll2fgkgunZKo3DsDiGMrFlCg25ZHA3Ax58txWGE9w58zp0w==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "@mui/private-theming": "^5.11.2", + "@mui/styled-engine": "^5.11.0", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "clsx": "^1.2.1", "csstype": "^3.1.1", "prop-types": "^15.8.1" @@ -3494,9 +3495,9 @@ } }, "node_modules/@mui/types": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.2.tgz", - "integrity": "sha512-siex8cZDtWeC916cXOoUOnEQQejuMYmHtc4hM6VkKVYaBICz3VIiqyiAomRboTQHt2jchxQ5Q5ATlbcDekTxDA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.3.tgz", + "integrity": "sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw==", "peerDependencies": { "@types/react": "*" }, @@ -3507,11 +3508,11 @@ } }, "node_modules/@mui/utils": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.16.tgz", - "integrity": "sha512-3MB/SGsgiiu9Z55CFmAfiONUoR7AAue/H4F6w3mc2LnhFQCsoVvXhioDPcsiRpUMIQr34jDPzGXdCuqWooPCXQ==", + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.11.2.tgz", + "integrity": "sha512-AyizuHHlGdAtH5hOOXBW3kriuIwUIKUIgg0P7LzMvzf6jPhoQbENYqY6zJqfoZ7fAWMNNYT8mgN5EftNGzwE2w==", "dependencies": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.7", "@types/prop-types": "^15.7.5", "@types/react-is": "^16.7.1 || ^17.0.0", "prop-types": "^15.8.1", @@ -4426,9 +4427,9 @@ } }, "node_modules/@types/jest": { - "version": "29.2.4", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.4.tgz", - "integrity": "sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==", + "version": "29.2.6", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.6.tgz", + "integrity": "sha512-XEUC/Tgw3uMh6Ho8GkUtQ2lPhY5Fmgyp3TdlkTJs1W9VgNxs+Ow/x3Elh8lHQKqCbZL0AubQuqWjHVT033Hhrw==", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -4675,9 +4676,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", - "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==" + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -4714,9 +4715,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", - "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "version": "18.0.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.27.tgz", + "integrity": "sha512-3vtRKHgVxu3Jp9t718R9BuzoD4NcQ8YJ5XRzsSKxNDiDonD2MXIT1TmSkenxuCycZJoQT5d2vE8LwWJxBC1gmA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -17954,9 +17955,9 @@ } }, "node_modules/ts-standard": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/ts-standard/-/ts-standard-12.0.1.tgz", - "integrity": "sha512-Ewk3l0k/SwckuVoMokkKq5W0B6daOlVzk0Yu9Wrcp3m0/CWneVM8NK/EgUZFkx4OHw1F+RpAC7dFyzO2cLNmsw==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/ts-standard/-/ts-standard-12.0.2.tgz", + "integrity": "sha512-XX2wrB9fKKTfBj4yD3ABm9iShzZcS2iWcPK8XzlBvuL20+wMiLgiz/k5tXgZwTaYq5wRhbks1Y9PelhujF/9ag==", "dev": true, "dependencies": { "@typescript-eslint/eslint-plugin": "^5.0.0", @@ -18095,9 +18096,9 @@ } }, "node_modules/typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -19320,9 +19321,9 @@ } }, "@apollo/client": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.2.tgz", - "integrity": "sha512-ohAIpXl3mTa1Fd3GT/K37VwQJfTIuuJRp4aOlJ4q/hlx0Wxh+RqDrbn0awtVCOdhGDQN+CQQmVzIqFKn6GziXQ==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.4.tgz", + "integrity": "sha512-bgiCKRmLSBImX4JRrw8NjqGo0AQE/mowCdHX1PJp2r5zIXrJx0UeaAYmx1qJY69Oz/KR7SKlLt4xK+bOP1jx7A==", "requires": { "@graphql-typed-document-node/core": "^3.1.1", "@wry/context": "^0.7.0", @@ -20567,11 +20568,11 @@ } }, "@babel/runtime": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", - "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", + "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", "requires": { - "regenerator-runtime": "^0.13.10" + "regenerator-runtime": "^0.13.11" } }, "@babel/runtime-corejs3": { @@ -20621,11 +20622,11 @@ } }, "@bazel/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@bazel/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-tarBJBEIirnq/YaeYu18vXcDxjzlq4xhCXvXUxA0lhHX5oArjEcAEn4tmO0jF+t/7cbkAdMT7daG6vIHSz0QAA==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/@bazel/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-GuDTCtEZcxOXZTJAZi0gfi/i3wm4r6Ny6I7NZLj4Xk9tX+yyRG8SBuUHN972S8/NmT5fFxnPymKfJiurXM4Txg==", "requires": { - "@bazel/worker": "5.7.2", + "@bazel/worker": "5.7.3", "semver": "5.6.0", "source-map-support": "0.5.9", "tsutils": "3.21.0" @@ -20653,9 +20654,9 @@ } }, "@bazel/worker": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@bazel/worker/-/worker-5.7.2.tgz", - "integrity": "sha512-H+auDA0QKF4mtZxKkZ2OKJvD7hGXVsVKtvcf4lbb93ur0ldpb5k810PcDxngmIGBcIX5kmyxniNTIiGFNobWTg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/@bazel/worker/-/worker-5.7.3.tgz", + "integrity": "sha512-P3Qo3bTw/NgxkcUNdUTb5j8jm6qIzRvKmFYMMyUyUBN0b7sAB6Qlk0QAP9Lok9+G9TbCXmmbT0dauftsH2x5fQ==", "requires": { "google-protobuf": "^3.6.1" } @@ -21597,14 +21598,14 @@ "dev": true }, "@mui/base": { - "version": "5.0.0-alpha.109", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.109.tgz", - "integrity": "sha512-UQxoONPI3ntzxcD/cbFHl+Lp2xsVj6HpKmU9QhUZ2kZ2K2yej2QJyU1gnADoWl/Hu94VrvwSSRnjTjR3HvXO/g==", + "version": "5.0.0-alpha.114", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.114.tgz", + "integrity": "sha512-ZpsG2I+zTOAnVTj3Un7TxD2zKRA2OhEPGMcWs/9ylPlS6VuGQSXowPooZiqarjT7TZ0+1bOe8titk/t8dLFiGw==", "requires": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.7", "@emotion/is-prop-valid": "^1.2.0", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "@popperjs/core": "^2.11.6", "clsx": "^1.2.1", "prop-types": "^15.8.1", @@ -21619,29 +21620,29 @@ } }, "@mui/core-downloads-tracker": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.17.tgz", - "integrity": "sha512-iNwUuMA30nrN0tiEkeD3zaczv7Tk2jlZIDbXRnijAsYXkZtl/xEzQsVRIPYRDuyEz6D18vQJhV8h7gPUXEubTg==" + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.5.tgz", + "integrity": "sha512-MIuWGjitOsugpRhp64CQY3ZEVMIu9M/L9ioql6QLSkz73+bGIlC9FEhfi670/GZ8pQIIGmtiGGwofYzlwEWjig==" }, "@mui/icons-material": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.16.tgz", - "integrity": "sha512-jjCc0IF6iyLiucQCu5igg3fOscSqbbvRCmyRxXgzOcLR56B0sg2L8o+ZfJ0dAg59+wvgtXaxvjze/mJg0B4iWA==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.11.0.tgz", + "integrity": "sha512-I2LaOKqO8a0xcLGtIozC9xoXjZAto5G5gh0FYUMAlbsIHNHIjn4Xrw9rvjY20vZonyiGrZNMAlAXYkY6JvhF6A==", "requires": { - "@babel/runtime": "^7.20.1" + "@babel/runtime": "^7.20.6" } }, "@mui/material": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.17.tgz", - "integrity": "sha512-Kuqgv1qI5HXnc/Xu426xhCGYBSKzplb+xFNLitbnIb92Qx8jmcpfNpFlDJa2kD2H6qP66rr/m4c/zMUfGX/xBQ==", - "requires": { - "@babel/runtime": "^7.20.1", - "@mui/base": "5.0.0-alpha.109", - "@mui/core-downloads-tracker": "^5.10.17", - "@mui/system": "^5.10.17", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.11.5.tgz", + "integrity": "sha512-5fzjBbRYaB5MoEpvA32oalAWltOZ3/kSyuovuVmPc6UF6AG42lTtbdMLpdCygurFSGUMZYTg4Cjij52fKlDDgg==", + "requires": { + "@babel/runtime": "^7.20.7", + "@mui/base": "5.0.0-alpha.114", + "@mui/core-downloads-tracker": "^5.11.5", + "@mui/system": "^5.11.5", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "@types/react-transition-group": "^4.4.5", "clsx": "^1.2.1", "csstype": "^3.1.1", @@ -21658,53 +21659,53 @@ } }, "@mui/private-theming": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.16.tgz", - "integrity": "sha512-0MArkJaOHRCKqL/GWjngGZmyOeRz+uxffhx82bKcewr8swqV7xx7EFP02pk0L/gLdfcvYdqwH4YTVjG/+TaKrg==", + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.11.2.tgz", + "integrity": "sha512-qZwMaqRFPwlYmqwVKblKBGKtIjJRAj3nsvX93pOmatsXyorW7N/0IPE/swPgz1VwChXhHO75DwBEx8tB+aRMNg==", "requires": { - "@babel/runtime": "^7.20.1", - "@mui/utils": "^5.10.16", + "@babel/runtime": "^7.20.7", + "@mui/utils": "^5.11.2", "prop-types": "^15.8.1" } }, "@mui/styled-engine": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.16.tgz", - "integrity": "sha512-ZMSjXvtiGwGDKqrSlXhpxK2voUaF2/lpC/pSTfFmZvKH9j9a9h1/iwo3ybgjFVYGgbfNeW4h0xEchiRohu9xsw==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.11.0.tgz", + "integrity": "sha512-AF06K60Zc58qf0f7X+Y/QjaHaZq16znliLnGc9iVrV/+s8Ln/FCoeNuFvhlCbZZQ5WQcJvcy59zp0nXrklGGPQ==", "requires": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.6", "@emotion/cache": "^11.10.5", "csstype": "^3.1.1", "prop-types": "^15.8.1" } }, "@mui/system": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.17.tgz", - "integrity": "sha512-UYzAOSK7uxkMsUssqrIUW3lnOuQpU8vqh4hLwfSw+GYAnQo3qjK4m4NhlDx+pFpsjjiGnr3K+vrSH+aIAMbcLg==", - "requires": { - "@babel/runtime": "^7.20.1", - "@mui/private-theming": "^5.10.16", - "@mui/styled-engine": "^5.10.16", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.11.5.tgz", + "integrity": "sha512-KNVsJ0sgRRp2XBqhh4wPS5aacteqjwxgiYTVwVnll2fgkgunZKo3DsDiGMrFlCg25ZHA3Ax58txWGE9w58zp0w==", + "requires": { + "@babel/runtime": "^7.20.7", + "@mui/private-theming": "^5.11.2", + "@mui/styled-engine": "^5.11.0", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "clsx": "^1.2.1", "csstype": "^3.1.1", "prop-types": "^15.8.1" } }, "@mui/types": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.2.tgz", - "integrity": "sha512-siex8cZDtWeC916cXOoUOnEQQejuMYmHtc4hM6VkKVYaBICz3VIiqyiAomRboTQHt2jchxQ5Q5ATlbcDekTxDA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.3.tgz", + "integrity": "sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw==", "requires": {} }, "@mui/utils": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.16.tgz", - "integrity": "sha512-3MB/SGsgiiu9Z55CFmAfiONUoR7AAue/H4F6w3mc2LnhFQCsoVvXhioDPcsiRpUMIQr34jDPzGXdCuqWooPCXQ==", + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.11.2.tgz", + "integrity": "sha512-AyizuHHlGdAtH5hOOXBW3kriuIwUIKUIgg0P7LzMvzf6jPhoQbENYqY6zJqfoZ7fAWMNNYT8mgN5EftNGzwE2w==", "requires": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.7", "@types/prop-types": "^15.7.5", "@types/react-is": "^16.7.1 || ^17.0.0", "prop-types": "^15.8.1", @@ -22376,9 +22377,9 @@ } }, "@types/jest": { - "version": "29.2.4", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.4.tgz", - "integrity": "sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==", + "version": "29.2.6", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.6.tgz", + "integrity": "sha512-XEUC/Tgw3uMh6Ho8GkUtQ2lPhY5Fmgyp3TdlkTJs1W9VgNxs+Ow/x3Elh8lHQKqCbZL0AubQuqWjHVT033Hhrw==", "requires": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -22572,9 +22573,9 @@ "dev": true }, "@types/node": { - "version": "18.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", - "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==" + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" }, "@types/parse-json": { "version": "4.0.0", @@ -22611,9 +22612,9 @@ "dev": true }, "@types/react": { - "version": "18.0.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", - "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "version": "18.0.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.27.tgz", + "integrity": "sha512-3vtRKHgVxu3Jp9t718R9BuzoD4NcQ8YJ5XRzsSKxNDiDonD2MXIT1TmSkenxuCycZJoQT5d2vE8LwWJxBC1gmA==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -32330,9 +32331,9 @@ } }, "ts-standard": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/ts-standard/-/ts-standard-12.0.1.tgz", - "integrity": "sha512-Ewk3l0k/SwckuVoMokkKq5W0B6daOlVzk0Yu9Wrcp3m0/CWneVM8NK/EgUZFkx4OHw1F+RpAC7dFyzO2cLNmsw==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/ts-standard/-/ts-standard-12.0.2.tgz", + "integrity": "sha512-XX2wrB9fKKTfBj4yD3ABm9iShzZcS2iWcPK8XzlBvuL20+wMiLgiz/k5tXgZwTaYq5wRhbks1Y9PelhujF/9ag==", "dev": true, "requires": { "@typescript-eslint/eslint-plugin": "^5.0.0", @@ -32439,9 +32440,9 @@ } }, "typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==" + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==" }, "unbox-primitive": { "version": "1.0.2", diff --git a/javascript/grid-ui/package.json b/javascript/grid-ui/package.json index 06a8c3c68b942..c0b20a2cec7c4 100644 --- a/javascript/grid-ui/package.json +++ b/javascript/grid-ui/package.json @@ -4,16 +4,16 @@ "private": true, "type": "module", "dependencies": { - "@apollo/client": "^3.7.2", - "@bazel/typescript": "^5.7.2", + "@apollo/client": "^3.7.4", + "@bazel/typescript": "^5.7.3", "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", - "@mui/icons-material": "^5.10.16", - "@mui/material": "^5.10.17", + "@mui/icons-material": "^5.11.0", + "@mui/material": "^5.11.5", "@novnc/novnc": "^1.3.0", - "@types/jest": "^29.2.4", - "@types/node": "^18.11.11", - "@types/react": "^18.0.26", + "@types/jest": "^29.2.6", + "@types/node": "^18.11.18", + "@types/react": "^18.0.27", "@types/react-dom": "^18.0.6", "@types/react-modal": "^3.12.0", "@types/react-router-dom": "^5.3.3", @@ -54,8 +54,8 @@ "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", "react-scripts": "5.0.1", - "ts-standard": "^12.0.1", - "typescript": "^4.9.3" + "ts-standard": "^12.0.2", + "typescript": "^4.9.4" }, "jest": { "testMatch": [ diff --git a/javascript/node/selenium-webdriver/CHANGES.md b/javascript/node/selenium-webdriver/CHANGES.md index 8fa2913e2ab2e..612871de25eac 100644 --- a/javascript/node/selenium-webdriver/CHANGES.md +++ b/javascript/node/selenium-webdriver/CHANGES.md @@ -1,3 +1,19 @@ +## v4.8.0 + +#### :rocket: New Feature + +* Add initial BiDi Support (#11395) +* Add window wrappers getSize and setSize +* Add BiDi browser context commands (#11473) +* Add BiDi methods to listen to js logs and any type of logs +* Add BiDi filtering capability to LogInspector (#11495) +* Add comment with name of large JS executions (#11038) + +#### :nail_care: Polish + +* Add CDP support for v109 and remove v106 +* Deprecate setHeadless() in Chrome and Firefox (#11467) + ## v4.7.1 #### :nail_care: Polish diff --git a/javascript/node/selenium-webdriver/common/seleniumManager.js b/javascript/node/selenium-webdriver/common/seleniumManager.js index daeb622e82eaa..1f0ecee2956c7 100644 --- a/javascript/node/selenium-webdriver/common/seleniumManager.js +++ b/javascript/node/selenium-webdriver/common/seleniumManager.js @@ -30,7 +30,7 @@ const execSync = require('child_process').execSync * currently supported browsers for selenium-manager * @type {string[]} */ -const Browser = ['chrome', 'firefox', 'edge'] +const Browser = ['chrome', 'firefox', 'edge', 'iexplorer'] /** * Determines the path of the correct Selenium Manager binary diff --git a/javascript/node/selenium-webdriver/ie.js b/javascript/node/selenium-webdriver/ie.js index 494dd53bb8df1..afcdf96fe4be9 100644 --- a/javascript/node/selenium-webdriver/ie.js +++ b/javascript/node/selenium-webdriver/ie.js @@ -406,7 +406,7 @@ function createServiceFromCapabilities(capabilities) { ) try { - exe = driverLocation(Browser.INTERNET_EXPLORER) + exe = driverLocation('iexplorer') } catch (err) { console.log(`Unable to obtain driver using Selenium Manager: ${err}`) } diff --git a/javascript/node/selenium-webdriver/package.json b/javascript/node/selenium-webdriver/package.json index 08bb929755c9b..910dc6eb01066 100644 --- a/javascript/node/selenium-webdriver/package.json +++ b/javascript/node/selenium-webdriver/package.json @@ -1,6 +1,6 @@ { "name": "selenium-webdriver", - "version": "4.7.1", + "version": "4.8.0", "description": "The official WebDriver JavaScript bindings from the Selenium project", "license": "Apache-2.0", "keywords": [ diff --git a/package-lock.json b/package-lock.json index 1851ccfe87288..180fc510553ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,13 +5,13 @@ "packages": { "": { "dependencies": { - "@apollo/client": "^3.7.2", + "@apollo/client": "^3.7.4", "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", - "@mui/icons-material": "^5.10.16", - "@mui/material": "^5.10.17", + "@mui/icons-material": "^5.11.0", + "@mui/material": "^5.11.5", "@novnc/novnc": "^1.3.0", - "@types/react": "^18.0.26", + "@types/react": "^18.0.27", "@types/react-dom": "^18.0.6", "@types/react-modal": "^3.12.0", "@types/react-router-dom": "^5.3.3", @@ -26,7 +26,7 @@ "rimraf": "^2.7.1", "source-map-explorer": "^2.5.3", "tmp": "^0.2.1", - "ts-standard": "^12.0.1", + "ts-standard": "^12.0.2", "ws": "^8.8.1" }, "devDependencies": { @@ -36,8 +36,8 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", - "@types/jest": "^29.2.4", - "@types/node": "^18.11.11", + "@types/jest": "^29.2.6", + "@types/node": "^18.11.18", "enzyme": "^3.11.0", "enzyme-to-json": "^3.6.1", "eslint": "^7.23.0", @@ -55,7 +55,7 @@ "serve-index": "^1.9.1", "sinon": "^7.5.0", "ts-jest": "^26.5.4", - "typescript": "^4.9.3", + "typescript": "^4.9.4", "xml2js": "^0.4.23" } }, @@ -78,9 +78,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.2.tgz", - "integrity": "sha512-ohAIpXl3mTa1Fd3GT/K37VwQJfTIuuJRp4aOlJ4q/hlx0Wxh+RqDrbn0awtVCOdhGDQN+CQQmVzIqFKn6GziXQ==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.4.tgz", + "integrity": "sha512-bgiCKRmLSBImX4JRrw8NjqGo0AQE/mowCdHX1PJp2r5zIXrJx0UeaAYmx1qJY69Oz/KR7SKlLt4xK+bOP1jx7A==", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "@wry/context": "^0.7.0", @@ -1911,11 +1911,11 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", - "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", + "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", "dependencies": { - "regenerator-runtime": "^0.13.10" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" @@ -2002,6 +2002,7 @@ "version": "5.7.3", "resolved": "https://registry.npmjs.org/@bazel/typescript/-/typescript-5.7.3.tgz", "integrity": "sha512-GuDTCtEZcxOXZTJAZi0gfi/i3wm4r6Ny6I7NZLj4Xk9tX+yyRG8SBuUHN972S8/NmT5fFxnPymKfJiurXM4Txg==", + "deprecated": "This package is no longer maintained, see https://github.com/aspect-build/rules_ts for replacement", "dev": true, "hasInstallScript": true, "dependencies": { @@ -3900,14 +3901,14 @@ "dev": true }, "node_modules/@mui/base": { - "version": "5.0.0-alpha.109", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.109.tgz", - "integrity": "sha512-UQxoONPI3ntzxcD/cbFHl+Lp2xsVj6HpKmU9QhUZ2kZ2K2yej2QJyU1gnADoWl/Hu94VrvwSSRnjTjR3HvXO/g==", + "version": "5.0.0-alpha.114", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.114.tgz", + "integrity": "sha512-ZpsG2I+zTOAnVTj3Un7TxD2zKRA2OhEPGMcWs/9ylPlS6VuGQSXowPooZiqarjT7TZ0+1bOe8titk/t8dLFiGw==", "dependencies": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.7", "@emotion/is-prop-valid": "^1.2.0", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "@popperjs/core": "^2.11.6", "clsx": "^1.2.1", "prop-types": "^15.8.1", @@ -3932,20 +3933,20 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.17.tgz", - "integrity": "sha512-iNwUuMA30nrN0tiEkeD3zaczv7Tk2jlZIDbXRnijAsYXkZtl/xEzQsVRIPYRDuyEz6D18vQJhV8h7gPUXEubTg==", + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.5.tgz", + "integrity": "sha512-MIuWGjitOsugpRhp64CQY3ZEVMIu9M/L9ioql6QLSkz73+bGIlC9FEhfi670/GZ8pQIIGmtiGGwofYzlwEWjig==", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui" } }, "node_modules/@mui/icons-material": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.16.tgz", - "integrity": "sha512-jjCc0IF6iyLiucQCu5igg3fOscSqbbvRCmyRxXgzOcLR56B0sg2L8o+ZfJ0dAg59+wvgtXaxvjze/mJg0B4iWA==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.11.0.tgz", + "integrity": "sha512-I2LaOKqO8a0xcLGtIozC9xoXjZAto5G5gh0FYUMAlbsIHNHIjn4Xrw9rvjY20vZonyiGrZNMAlAXYkY6JvhF6A==", "dependencies": { - "@babel/runtime": "^7.20.1" + "@babel/runtime": "^7.20.6" }, "engines": { "node": ">=12.0.0" @@ -3966,16 +3967,16 @@ } }, "node_modules/@mui/material": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.17.tgz", - "integrity": "sha512-Kuqgv1qI5HXnc/Xu426xhCGYBSKzplb+xFNLitbnIb92Qx8jmcpfNpFlDJa2kD2H6qP66rr/m4c/zMUfGX/xBQ==", - "dependencies": { - "@babel/runtime": "^7.20.1", - "@mui/base": "5.0.0-alpha.109", - "@mui/core-downloads-tracker": "^5.10.17", - "@mui/system": "^5.10.17", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.11.5.tgz", + "integrity": "sha512-5fzjBbRYaB5MoEpvA32oalAWltOZ3/kSyuovuVmPc6UF6AG42lTtbdMLpdCygurFSGUMZYTg4Cjij52fKlDDgg==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "@mui/base": "5.0.0-alpha.114", + "@mui/core-downloads-tracker": "^5.11.5", + "@mui/system": "^5.11.5", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "@types/react-transition-group": "^4.4.5", "clsx": "^1.2.1", "csstype": "^3.1.1", @@ -4010,12 +4011,12 @@ } }, "node_modules/@mui/private-theming": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.16.tgz", - "integrity": "sha512-0MArkJaOHRCKqL/GWjngGZmyOeRz+uxffhx82bKcewr8swqV7xx7EFP02pk0L/gLdfcvYdqwH4YTVjG/+TaKrg==", + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.11.2.tgz", + "integrity": "sha512-qZwMaqRFPwlYmqwVKblKBGKtIjJRAj3nsvX93pOmatsXyorW7N/0IPE/swPgz1VwChXhHO75DwBEx8tB+aRMNg==", "dependencies": { - "@babel/runtime": "^7.20.1", - "@mui/utils": "^5.10.16", + "@babel/runtime": "^7.20.7", + "@mui/utils": "^5.11.2", "prop-types": "^15.8.1" }, "engines": { @@ -4036,11 +4037,11 @@ } }, "node_modules/@mui/styled-engine": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.16.tgz", - "integrity": "sha512-ZMSjXvtiGwGDKqrSlXhpxK2voUaF2/lpC/pSTfFmZvKH9j9a9h1/iwo3ybgjFVYGgbfNeW4h0xEchiRohu9xsw==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.11.0.tgz", + "integrity": "sha512-AF06K60Zc58qf0f7X+Y/QjaHaZq16znliLnGc9iVrV/+s8Ln/FCoeNuFvhlCbZZQ5WQcJvcy59zp0nXrklGGPQ==", "dependencies": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.6", "@emotion/cache": "^11.10.5", "csstype": "^3.1.1", "prop-types": "^15.8.1" @@ -4067,15 +4068,15 @@ } }, "node_modules/@mui/system": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.17.tgz", - "integrity": "sha512-UYzAOSK7uxkMsUssqrIUW3lnOuQpU8vqh4hLwfSw+GYAnQo3qjK4m4NhlDx+pFpsjjiGnr3K+vrSH+aIAMbcLg==", - "dependencies": { - "@babel/runtime": "^7.20.1", - "@mui/private-theming": "^5.10.16", - "@mui/styled-engine": "^5.10.16", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.11.5.tgz", + "integrity": "sha512-KNVsJ0sgRRp2XBqhh4wPS5aacteqjwxgiYTVwVnll2fgkgunZKo3DsDiGMrFlCg25ZHA3Ax58txWGE9w58zp0w==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "@mui/private-theming": "^5.11.2", + "@mui/styled-engine": "^5.11.0", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "clsx": "^1.2.1", "csstype": "^3.1.1", "prop-types": "^15.8.1" @@ -4106,9 +4107,9 @@ } }, "node_modules/@mui/types": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.2.tgz", - "integrity": "sha512-siex8cZDtWeC916cXOoUOnEQQejuMYmHtc4hM6VkKVYaBICz3VIiqyiAomRboTQHt2jchxQ5Q5ATlbcDekTxDA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.3.tgz", + "integrity": "sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw==", "peerDependencies": { "@types/react": "*" }, @@ -4119,11 +4120,11 @@ } }, "node_modules/@mui/utils": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.16.tgz", - "integrity": "sha512-3MB/SGsgiiu9Z55CFmAfiONUoR7AAue/H4F6w3mc2LnhFQCsoVvXhioDPcsiRpUMIQr34jDPzGXdCuqWooPCXQ==", + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.11.2.tgz", + "integrity": "sha512-AyizuHHlGdAtH5hOOXBW3kriuIwUIKUIgg0P7LzMvzf6jPhoQbENYqY6zJqfoZ7fAWMNNYT8mgN5EftNGzwE2w==", "dependencies": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.7", "@types/prop-types": "^15.7.5", "@types/react-is": "^16.7.1 || ^17.0.0", "prop-types": "^15.8.1", @@ -5066,9 +5067,9 @@ } }, "node_modules/@types/jest": { - "version": "29.2.4", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.4.tgz", - "integrity": "sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==", + "version": "29.2.6", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.6.tgz", + "integrity": "sha512-XEUC/Tgw3uMh6Ho8GkUtQ2lPhY5Fmgyp3TdlkTJs1W9VgNxs+Ow/x3Elh8lHQKqCbZL0AubQuqWjHVT033Hhrw==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -5118,9 +5119,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", - "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==", + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -5165,9 +5166,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", - "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "version": "18.0.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.27.tgz", + "integrity": "sha512-3vtRKHgVxu3Jp9t718R9BuzoD4NcQ8YJ5XRzsSKxNDiDonD2MXIT1TmSkenxuCycZJoQT5d2vE8LwWJxBC1gmA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -25535,9 +25536,9 @@ } }, "node_modules/ts-standard": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/ts-standard/-/ts-standard-12.0.1.tgz", - "integrity": "sha512-Ewk3l0k/SwckuVoMokkKq5W0B6daOlVzk0Yu9Wrcp3m0/CWneVM8NK/EgUZFkx4OHw1F+RpAC7dFyzO2cLNmsw==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/ts-standard/-/ts-standard-12.0.2.tgz", + "integrity": "sha512-XX2wrB9fKKTfBj4yD3ABm9iShzZcS2iWcPK8XzlBvuL20+wMiLgiz/k5tXgZwTaYq5wRhbks1Y9PelhujF/9ag==", "dependencies": { "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", @@ -26036,9 +26037,9 @@ } }, "node_modules/typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -27506,9 +27507,9 @@ } }, "@apollo/client": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.2.tgz", - "integrity": "sha512-ohAIpXl3mTa1Fd3GT/K37VwQJfTIuuJRp4aOlJ4q/hlx0Wxh+RqDrbn0awtVCOdhGDQN+CQQmVzIqFKn6GziXQ==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.4.tgz", + "integrity": "sha512-bgiCKRmLSBImX4JRrw8NjqGo0AQE/mowCdHX1PJp2r5zIXrJx0UeaAYmx1qJY69Oz/KR7SKlLt4xK+bOP1jx7A==", "requires": { "@graphql-typed-document-node/core": "^3.1.1", "@wry/context": "^0.7.0", @@ -28742,11 +28743,11 @@ } }, "@babel/runtime": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", - "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", + "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", "requires": { - "regenerator-runtime": "^0.13.10" + "regenerator-runtime": "^0.13.11" } }, "@babel/runtime-corejs3": { @@ -30221,14 +30222,14 @@ "dev": true }, "@mui/base": { - "version": "5.0.0-alpha.109", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.109.tgz", - "integrity": "sha512-UQxoONPI3ntzxcD/cbFHl+Lp2xsVj6HpKmU9QhUZ2kZ2K2yej2QJyU1gnADoWl/Hu94VrvwSSRnjTjR3HvXO/g==", + "version": "5.0.0-alpha.114", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.114.tgz", + "integrity": "sha512-ZpsG2I+zTOAnVTj3Un7TxD2zKRA2OhEPGMcWs/9ylPlS6VuGQSXowPooZiqarjT7TZ0+1bOe8titk/t8dLFiGw==", "requires": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.7", "@emotion/is-prop-valid": "^1.2.0", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "@popperjs/core": "^2.11.6", "clsx": "^1.2.1", "prop-types": "^15.8.1", @@ -30236,29 +30237,29 @@ } }, "@mui/core-downloads-tracker": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.17.tgz", - "integrity": "sha512-iNwUuMA30nrN0tiEkeD3zaczv7Tk2jlZIDbXRnijAsYXkZtl/xEzQsVRIPYRDuyEz6D18vQJhV8h7gPUXEubTg==" + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.5.tgz", + "integrity": "sha512-MIuWGjitOsugpRhp64CQY3ZEVMIu9M/L9ioql6QLSkz73+bGIlC9FEhfi670/GZ8pQIIGmtiGGwofYzlwEWjig==" }, "@mui/icons-material": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.16.tgz", - "integrity": "sha512-jjCc0IF6iyLiucQCu5igg3fOscSqbbvRCmyRxXgzOcLR56B0sg2L8o+ZfJ0dAg59+wvgtXaxvjze/mJg0B4iWA==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.11.0.tgz", + "integrity": "sha512-I2LaOKqO8a0xcLGtIozC9xoXjZAto5G5gh0FYUMAlbsIHNHIjn4Xrw9rvjY20vZonyiGrZNMAlAXYkY6JvhF6A==", "requires": { - "@babel/runtime": "^7.20.1" + "@babel/runtime": "^7.20.6" } }, "@mui/material": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.17.tgz", - "integrity": "sha512-Kuqgv1qI5HXnc/Xu426xhCGYBSKzplb+xFNLitbnIb92Qx8jmcpfNpFlDJa2kD2H6qP66rr/m4c/zMUfGX/xBQ==", - "requires": { - "@babel/runtime": "^7.20.1", - "@mui/base": "5.0.0-alpha.109", - "@mui/core-downloads-tracker": "^5.10.17", - "@mui/system": "^5.10.17", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.11.5.tgz", + "integrity": "sha512-5fzjBbRYaB5MoEpvA32oalAWltOZ3/kSyuovuVmPc6UF6AG42lTtbdMLpdCygurFSGUMZYTg4Cjij52fKlDDgg==", + "requires": { + "@babel/runtime": "^7.20.7", + "@mui/base": "5.0.0-alpha.114", + "@mui/core-downloads-tracker": "^5.11.5", + "@mui/system": "^5.11.5", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "@types/react-transition-group": "^4.4.5", "clsx": "^1.2.1", "csstype": "^3.1.1", @@ -30268,53 +30269,53 @@ } }, "@mui/private-theming": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.16.tgz", - "integrity": "sha512-0MArkJaOHRCKqL/GWjngGZmyOeRz+uxffhx82bKcewr8swqV7xx7EFP02pk0L/gLdfcvYdqwH4YTVjG/+TaKrg==", + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.11.2.tgz", + "integrity": "sha512-qZwMaqRFPwlYmqwVKblKBGKtIjJRAj3nsvX93pOmatsXyorW7N/0IPE/swPgz1VwChXhHO75DwBEx8tB+aRMNg==", "requires": { - "@babel/runtime": "^7.20.1", - "@mui/utils": "^5.10.16", + "@babel/runtime": "^7.20.7", + "@mui/utils": "^5.11.2", "prop-types": "^15.8.1" } }, "@mui/styled-engine": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.16.tgz", - "integrity": "sha512-ZMSjXvtiGwGDKqrSlXhpxK2voUaF2/lpC/pSTfFmZvKH9j9a9h1/iwo3ybgjFVYGgbfNeW4h0xEchiRohu9xsw==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.11.0.tgz", + "integrity": "sha512-AF06K60Zc58qf0f7X+Y/QjaHaZq16znliLnGc9iVrV/+s8Ln/FCoeNuFvhlCbZZQ5WQcJvcy59zp0nXrklGGPQ==", "requires": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.6", "@emotion/cache": "^11.10.5", "csstype": "^3.1.1", "prop-types": "^15.8.1" } }, "@mui/system": { - "version": "5.10.17", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.17.tgz", - "integrity": "sha512-UYzAOSK7uxkMsUssqrIUW3lnOuQpU8vqh4hLwfSw+GYAnQo3qjK4m4NhlDx+pFpsjjiGnr3K+vrSH+aIAMbcLg==", - "requires": { - "@babel/runtime": "^7.20.1", - "@mui/private-theming": "^5.10.16", - "@mui/styled-engine": "^5.10.16", - "@mui/types": "^7.2.2", - "@mui/utils": "^5.10.16", + "version": "5.11.5", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.11.5.tgz", + "integrity": "sha512-KNVsJ0sgRRp2XBqhh4wPS5aacteqjwxgiYTVwVnll2fgkgunZKo3DsDiGMrFlCg25ZHA3Ax58txWGE9w58zp0w==", + "requires": { + "@babel/runtime": "^7.20.7", + "@mui/private-theming": "^5.11.2", + "@mui/styled-engine": "^5.11.0", + "@mui/types": "^7.2.3", + "@mui/utils": "^5.11.2", "clsx": "^1.2.1", "csstype": "^3.1.1", "prop-types": "^15.8.1" } }, "@mui/types": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.2.tgz", - "integrity": "sha512-siex8cZDtWeC916cXOoUOnEQQejuMYmHtc4hM6VkKVYaBICz3VIiqyiAomRboTQHt2jchxQ5Q5ATlbcDekTxDA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.3.tgz", + "integrity": "sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw==", "requires": {} }, "@mui/utils": { - "version": "5.10.16", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.16.tgz", - "integrity": "sha512-3MB/SGsgiiu9Z55CFmAfiONUoR7AAue/H4F6w3mc2LnhFQCsoVvXhioDPcsiRpUMIQr34jDPzGXdCuqWooPCXQ==", + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.11.2.tgz", + "integrity": "sha512-AyizuHHlGdAtH5hOOXBW3kriuIwUIKUIgg0P7LzMvzf6jPhoQbENYqY6zJqfoZ7fAWMNNYT8mgN5EftNGzwE2w==", "requires": { - "@babel/runtime": "^7.20.1", + "@babel/runtime": "^7.20.7", "@types/prop-types": "^15.7.5", "@types/react-is": "^16.7.1 || ^17.0.0", "prop-types": "^15.8.1", @@ -31010,9 +31011,9 @@ } }, "@types/jest": { - "version": "29.2.4", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.4.tgz", - "integrity": "sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==", + "version": "29.2.6", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.6.tgz", + "integrity": "sha512-XEUC/Tgw3uMh6Ho8GkUtQ2lPhY5Fmgyp3TdlkTJs1W9VgNxs+Ow/x3Elh8lHQKqCbZL0AubQuqWjHVT033Hhrw==", "dev": true, "requires": { "expect": "^29.0.0", @@ -31055,9 +31056,9 @@ "dev": true }, "@types/node": { - "version": "18.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", - "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==", + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", "dev": true }, "@types/normalize-package-data": { @@ -31102,9 +31103,9 @@ "dev": true }, "@types/react": { - "version": "18.0.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", - "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "version": "18.0.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.27.tgz", + "integrity": "sha512-3vtRKHgVxu3Jp9t718R9BuzoD4NcQ8YJ5XRzsSKxNDiDonD2MXIT1TmSkenxuCycZJoQT5d2vE8LwWJxBC1gmA==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -46404,9 +46405,9 @@ } }, "ts-standard": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/ts-standard/-/ts-standard-12.0.1.tgz", - "integrity": "sha512-Ewk3l0k/SwckuVoMokkKq5W0B6daOlVzk0Yu9Wrcp3m0/CWneVM8NK/EgUZFkx4OHw1F+RpAC7dFyzO2cLNmsw==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/ts-standard/-/ts-standard-12.0.2.tgz", + "integrity": "sha512-XX2wrB9fKKTfBj4yD3ABm9iShzZcS2iWcPK8XzlBvuL20+wMiLgiz/k5tXgZwTaYq5wRhbks1Y9PelhujF/9ag==", "requires": { "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", @@ -46742,9 +46743,9 @@ } }, "typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==" + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==" }, "unbox-primitive": { "version": "1.0.2", diff --git a/package.json b/package.json index d86e9fd3a0a7c..aaadb68f2347f 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", - "@types/jest": "^29.2.4", - "@types/node": "^18.11.11", + "@types/jest": "^29.2.6", + "@types/node": "^18.11.18", "enzyme": "^3.11.0", "enzyme-to-json": "^3.6.1", "eslint": "^7.23.0", @@ -25,7 +25,7 @@ "serve-index": "^1.9.1", "sinon": "^7.5.0", "ts-jest": "^26.5.4", - "typescript": "^4.9.3", + "typescript": "^4.9.4", "xml2js": "^0.4.23" }, "repository": { @@ -33,13 +33,13 @@ "url": "https://github.com/SeleniumHQ/selenium.git" }, "dependencies": { - "@apollo/client": "^3.7.2", + "@apollo/client": "^3.7.4", "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", - "@mui/icons-material": "^5.10.16", - "@mui/material": "^5.10.17", + "@mui/icons-material": "^5.11.0", + "@mui/material": "^5.11.5", "@novnc/novnc": "^1.3.0", - "@types/react": "^18.0.26", + "@types/react": "^18.0.27", "@types/react-dom": "^18.0.6", "@types/react-modal": "^3.12.0", "@types/react-router-dom": "^5.3.3", @@ -54,7 +54,7 @@ "rimraf": "^2.7.1", "source-map-explorer": "^2.5.3", "tmp": "^0.2.1", - "ts-standard": "^12.0.1", + "ts-standard": "^12.0.2", "ws": "^8.8.1" } } diff --git a/py/BUILD.bazel b/py/BUILD.bazel index 29a4e1ddddbf1..f00979c8734bc 100644 --- a/py/BUILD.bazel +++ b/py/BUILD.bazel @@ -4,7 +4,7 @@ load("@rules_python//python:defs.bzl", "py_binary", "py_library") load("@rules_python//python:packaging.bzl", "py_package", "py_wheel") load("@py_dev_requirements//:requirements.bzl", "requirement") load("//common:defs.bzl", "copy_file") -load("//py:defs.bzl", "py_test_suite") +load("//py:defs.bzl", "generate_devtools", "py_test_suite") load("//py/private:browsers.bzl", "BROWSERS") load("//py/private:import.bzl", "py_import") load("@rules_python//python:pip.bzl", "compile_pip_requirements") @@ -16,7 +16,7 @@ compile_pip_requirements( requirements_txt = ":requirements_lock.txt", ) -SE_VERSION = "4.7.2" +SE_VERSION = "4.8.0" BROWSER_VERSIONS = [ "v85", @@ -273,18 +273,14 @@ py_binary( deps = [requirement("inflection")], ) -[genrule( - name = "create-cdp-srcs-" + n, - srcs = [ - "//common/devtools/chromium/" + n + ":browser_protocol", - "//common/devtools/chromium/" + n + ":js_protocol", - ], - outs = ["selenium/webdriver/common/devtools/" + n], - cmd = "$(location :generate) $(location //common/devtools/chromium/" + n + ":browser_protocol) $(location //common/devtools/chromium/" + n + ":js_protocol) $@", - tools = [ - ":generate", - ], -) for n in BROWSER_VERSIONS] +[generate_devtools( + name = "create-cdp-srcs-{}".format(devtools_version), + outdir = "selenium/webdriver/common/devtools/{}".format(devtools_version), + browser_protocol = "//common/devtools/chromium/{}:browser_protocol".format(devtools_version), + generator = ":generate", + js_protocol = "//common/devtools/chromium/{}:js_protocol".format(devtools_version), + protocol_version = devtools_version, +) for devtools_version in BROWSER_VERSIONS] py_test_suite( name = "unit", diff --git a/py/CHANGES b/py/CHANGES index 2a8d0f41173a2..ff94a2acb03be 100644 --- a/py/CHANGES +++ b/py/CHANGES @@ -1,3 +1,11 @@ +Selenium 4.8.0 +* Add CDP files for v109 and remove v106 +* Add logging to Selenium Manager for both stdout and stderr +* Multiple updates and improvements to types +* Fix sdist tar package_dir (#11416) +* Add comment with name of large JS executions (#11038) +* Deprecate headless property for chromium and firefox options classes (#11467) + Selenium 4.7.2 * Put selenium manager bug fix from 4.7.1 in the correct place diff --git a/py/defs.bzl b/py/defs.bzl index df25fa5c1d1a7..8f8b4ff94b5ac 100644 --- a/py/defs.bzl +++ b/py/defs.bzl @@ -1,7 +1,9 @@ +load("//py/private:generate_devtools.bzl", _generate_devtools = "generate_devtools") load("//py/private:import.bzl", _py_import = "py_import") load("//py/private:pytest.bzl", _pytest_test = "pytest_test") load("//py/private:suite.bzl", _py_test_suite = "py_test_suite") +generate_devtools = _generate_devtools pytest_test = _pytest_test py_import = _py_import py_test_suite = _py_test_suite diff --git a/py/docs/source/conf.py b/py/docs/source/conf.py index e50a956c6b5b5..3c23f3aecb2b9 100644 --- a/py/docs/source/conf.py +++ b/py/docs/source/conf.py @@ -56,7 +56,7 @@ # built documents. # # The short X.Y version. -version = '4.7' +version = '4.8' # The full version, including alpha/beta/rc tags. release = version diff --git a/py/docs/source/index.rst b/py/docs/source/index.rst index 9846824072785..70723fa050b94 100755 --- a/py/docs/source/index.rst +++ b/py/docs/source/index.rst @@ -35,7 +35,7 @@ If you have `pip `_ on your system, you can simply install pip install -U selenium -Alternately, you can download the source distribution from `PyPI `_ (e.g. selenium-4.7.1.tar.gz), unarchive it, and run:: +Alternately, you can download the source distribution from `PyPI `_ (e.g. selenium-4.8.0.tar.gz), unarchive it, and run:: python setup.py install diff --git a/py/generate.py b/py/generate.py index 7b7689dd85c4b..5d6ea7cb4b0ef 100644 --- a/py/generate.py +++ b/py/generate.py @@ -106,12 +106,11 @@ def escape_backticks(docstr): def replace_one(match): if match.group(2) == 's': return f"``{match.group(1)}``'s" - elif match.group(2): + if match.group(2): # This case (some trailer other than "s") doesn't currently exist # in the CDP definitions, but it's here just to be safe. return f'``{match.group(1)}`` {match.group(2)}' - else: - return f'``{match.group(1)}``' + return f'``{match.group(1)}``' # Sometimes pipes are used where backticks should have been used. docstr = docstr.replace('|', '`') @@ -179,17 +178,15 @@ def get_annotation(cls, cdp_type): ''' Return a type annotation for the CDP type. ''' if cdp_type == 'any': return 'typing.Any' - else: - return cls[cdp_type].value + return cls[cdp_type].value @classmethod def get_constructor(cls, cdp_type, val): ''' Return the code to construct a value for a given CDP type. ''' if cdp_type == 'any': return val - else: - cons = cls[cdp_type].value - return f'{cons}({val})' + cons = cls[cdp_type].value + return f'{cons}({val})' @dataclass @@ -333,7 +330,7 @@ def from_json(cls, type_): type_['type'], CdpItems.from_json(type_['items']) if 'items' in type_ else None, type_.get('enum'), - [CdpProperty.from_json(p) for p in type_.get('properties', list())], + [CdpProperty.from_json(p) for p in type_.get('properties', [])], ) def generate_code(self): @@ -341,10 +338,9 @@ def generate_code(self): logger.debug('Generating type %s: %s', self.id, self.type) if self.enum: return self.generate_enum_code() - elif self.properties: + if self.properties: return self.generate_class_code() - else: - return self.generate_primitive_code() + return self.generate_primitive_code() def generate_primitive_code(self): ''' Generate code for a primitive type. ''' @@ -395,7 +391,7 @@ def generate_enum_code(self): def to_json(self): return self.value''') - def_from_json = dedent(f'''\ + def_from_json = dedent('''\ @classmethod def from_json(cls, json): return cls(json)''') @@ -449,12 +445,12 @@ def to_json(self): # Emit from_json() method. The properties are sorted in the same order # as above for readability. - def_from_json = dedent(f'''\ + def_from_json = dedent('''\ @classmethod def from_json(cls, json): return cls( ''') - from_jsons = list() + from_jsons = [] for p in props: from_json = p.generate_from_json(dict_='json') from_jsons.append(f'{p.py_name}={from_json},') @@ -526,10 +522,10 @@ def generate_doc(self): doc = f':param {self.py_name}:' if self.experimental: - doc += f' **(EXPERIMENTAL)**' + doc += ' **(EXPERIMENTAL)**' if self.optional: - doc += f' *(Optional)*' + doc += ' *(Optional)*' if self.description: desc = self.description.replace('`', '``').replace('\n', ' ') @@ -600,8 +596,8 @@ def py_name(self): @classmethod def from_json(cls, command, domain) -> 'CdpCommand': ''' Instantiate a CDP command from a JSON object. ''' - parameters = command.get('parameters', list()) - returns = command.get('returns', list()) + parameters = command.get('parameters', []) + returns = command.get('returns', []) return cls( command['name'], @@ -653,7 +649,7 @@ def generate_code(self): if self.description: doc = self.description if self.experimental: - doc += f'\n\n**EXPERIMENTAL**' + doc += '\n\n**EXPERIMENTAL**' if self.parameters and doc: doc += '\n\n' elif not self.parameters and self.returns: @@ -735,7 +731,7 @@ def from_json(cls, json: dict, domain: str): json.get('deprecated', False), json.get('experimental', False), [typing.cast(CdpParameter, CdpParameter.from_json(p)) - for p in json.get('parameters', list())], + for p in json.get('parameters', [])], domain ) @@ -804,16 +800,16 @@ def module(self): @classmethod def from_json(cls, domain: dict): ''' Instantiate a CDP domain from a JSON object. ''' - types = domain.get('types', list()) - commands = domain.get('commands', list()) - events = domain.get('events', list()) + types = domain.get('types', []) + commands = domain.get('commands', []) + events = domain.get('events', []) domain_name = domain['domain'] return cls( domain_name, domain.get('description'), domain.get('experimental', False), - domain.get('dependencies', list()), + domain.get('dependencies', []), [CdpType.from_json(type) for type in types], [CdpCommand.from_json(command, domain_name) for command in commands], @@ -939,12 +935,12 @@ def parse(json_path, output_path): :returns: a list of CDP domain objects ''' global current_version - with open(json_path) as json_file: + with open(json_path, encoding="utf-8") as json_file: schema = json.load(json_file) version = schema['version'] assert (version['major'], version['minor']) == ('1', '3') current_version = f'{version["major"]}.{version["minor"]}' - domains = list() + domains = [] for domain in schema['domains']: domains.append(CdpDomain.from_json(domain)) return domains @@ -957,7 +953,7 @@ def generate_init(init_path, domains): :param list[tuple] modules: a list of modules each represented as tuples of (name, list_of_exported_symbols) ''' - with open(init_path, "w") as init_file: + with open(init_path, "w", encoding="utf-8") as init_file: init_file.write(INIT_HEADER) for domain in domains: init_file.write(f'from . import {domain.module}\n') @@ -988,7 +984,6 @@ def main(browser_protocol_path, js_protocol_path, output_path): browser_protocol_path, js_protocol_path, ] - output_path.mkdir(parents=True) # Generate util.py util_path = output_path / "util.py" @@ -1001,7 +996,7 @@ def main(browser_protocol_path, js_protocol_path, output_path): subpath.unlink() # Parse domains - domains = list() + domains = [] for json_path in json_paths: logger.info('Parsing JSON file %s', json_path) domains.extend(parse(json_path, output_path)) diff --git a/py/private/generate_devtools.bzl b/py/private/generate_devtools.bzl new file mode 100644 index 0000000000000..5fea436ec40f8 --- /dev/null +++ b/py/private/generate_devtools.bzl @@ -0,0 +1,50 @@ +def _generate_devtools_impl(ctx): + outdir = ctx.actions.declare_directory(ctx.attr.outdir) + + args = ctx.actions.args() + args.add(ctx.file.browser_protocol) + args.add(ctx.file.js_protocol) + args.add(outdir.path) + + ctx.actions.run( + executable = ctx.executable.generator, + progress_message = "Generating {} DevTools Protocol bindings for Python".format(ctx.attr.protocol_version), + arguments = [args], + outputs = [ + outdir, + ], + inputs = [ + ctx.file.browser_protocol, + ctx.file.js_protocol, + ], + use_default_shell_env = True, + ) + + return DefaultInfo( + files = depset([outdir]), + runfiles = ctx.runfiles(files = [outdir]), + ) + +generate_devtools = rule( + implementation = _generate_devtools_impl, + attrs = { + "protocol_version": attr.string( + mandatory = True, + default = "", + ), + "browser_protocol": attr.label( + mandatory = True, + allow_single_file = True, + ), + "js_protocol": attr.label( + mandatory = True, + allow_single_file = True, + ), + "outdir": attr.string(), + "generator": attr.label( + executable = True, + cfg = "exec", + ), + "deps": attr.label_list(), + }, +) diff --git a/py/rules_pkg_tree.patch b/py/rules_pkg_tree.patch deleted file mode 100644 index 5ba6fd32105a9..0000000000000 --- a/py/rules_pkg_tree.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/pkg/private/tar/build_tar.py b/pkg/private/tar/build_tar.py -index ab16610d..b6b75bd7 100644 ---- a/pkg/private/tar/build_tar.py -+++ b/pkg/private/tar/build_tar.py -@@ -309,7 +309,10 @@ def add_manifest_entry(self, entry_list, file_attributes): - elif entry.entry_type == manifest.ENTRY_IS_EMPTY_FILE: - self.add_empty_file(entry.dest, **attrs) - else: -- self.add_file(entry.src, entry.dest, **attrs) -+ if os.path.isdir(entry.src): -+ self.add_tree(entry.src, entry.dest, **attrs) -+ else: -+ self.add_file(entry.src, entry.dest, **attrs) - - - def main(): diff --git a/py/selenium/__init__.py b/py/selenium/__init__.py index bc75f24aa5b2b..751d9b3427021 100644 --- a/py/selenium/__init__.py +++ b/py/selenium/__init__.py @@ -16,4 +16,4 @@ # under the License. -__version__ = "4.7.2" +__version__ = "4.8.0" diff --git a/py/selenium/webdriver/__init__.py b/py/selenium/webdriver/__init__.py index 8eefe7d2e86c9..5db41d49f74e7 100644 --- a/py/selenium/webdriver/__init__.py +++ b/py/selenium/webdriver/__init__.py @@ -36,7 +36,7 @@ from .wpewebkit.options import Options as WPEWebKitOptions # noqa from .wpewebkit.webdriver import WebDriver as WPEWebKit # noqa -__version__ = "4.7.2" +__version__ = "4.8.0" # We need an explicit __all__ because the above won't otherwise be exported. __all__ = [ diff --git a/py/selenium/webdriver/chromium/options.py b/py/selenium/webdriver/chromium/options.py index 683a3ee4570bc..80d24a7bcbcee 100644 --- a/py/selenium/webdriver/chromium/options.py +++ b/py/selenium/webdriver/chromium/options.py @@ -150,9 +150,9 @@ def headless(self) -> bool: @headless.setter def headless(self, value: bool) -> None: - """ - Sets the headless argument - Old headless uses a non-production browser and is set with `--headless` + """Sets the headless argument Old headless uses a non-production + browser and is set with `--headless` + Native headless from v86 - v108 is set with `--headless=chrome` Native headless from v109+ is set with `--headless=new` :Args: diff --git a/py/selenium/webdriver/chromium/webdriver.py b/py/selenium/webdriver/chromium/webdriver.py index 935b782f6dcc5..d171ffbce7b59 100644 --- a/py/selenium/webdriver/chromium/webdriver.py +++ b/py/selenium/webdriver/chromium/webdriver.py @@ -74,7 +74,7 @@ def __init__( DeprecationWarning, stacklevel=2, ) - if keep_alive != DEFAULT_KEEP_ALIVE and type(self) == __class__: + if keep_alive != DEFAULT_KEEP_ALIVE and isinstance(self, __class__): warnings.warn( "keep_alive has been deprecated, please pass in a Service object", DeprecationWarning, stacklevel=2 ) diff --git a/py/selenium/webdriver/common/actions/action_builder.py b/py/selenium/webdriver/common/actions/action_builder.py index 4dd76cede8e3c..331c7dee6bea2 100644 --- a/py/selenium/webdriver/common/actions/action_builder.py +++ b/py/selenium/webdriver/common/actions/action_builder.py @@ -94,5 +94,5 @@ def clear_actions(self) -> None: """Clears actions that are already stored on the remote end.""" self.driver.execute(Command.W3C_CLEAR_ACTIONS) - def _add_input(self, input) -> None: - self.devices.append(input) + def _add_input(self, new_input) -> None: + self.devices.append(new_input) diff --git a/py/selenium/webdriver/common/bidi/cdp.py b/py/selenium/webdriver/common/bidi/cdp.py index 5cf5115ed4e15..7ad5b0c622e24 100644 --- a/py/selenium/webdriver/common/bidi/cdp.py +++ b/py/selenium/webdriver/common/bidi/cdp.py @@ -194,8 +194,8 @@ def __init__(self, ws, session_id, target_id): self.target_id = target_id self.channels = defaultdict(set) self.id_iter = itertools.count() - self.inflight_cmd = dict() - self.inflight_result = dict() + self.inflight_cmd = {} + self.inflight_result = {} async def execute(self, cmd: typing.Generator[dict, T, typing.Any]) -> T: """Execute a command on the server and wait for the result. @@ -384,7 +384,7 @@ def __init__(self, ws): :param trio_websocket.WebSocketConnection ws: """ super().__init__(ws, session_id=None, target_id=None) - self.sessions = dict() + self.sessions = {} async def aclose(self): """Close the underlying WebSocket connection. diff --git a/py/selenium/webdriver/common/service.py b/py/selenium/webdriver/common/service.py index 65d86b08d12e0..7163f4eb5c453 100644 --- a/py/selenium/webdriver/common/service.py +++ b/py/selenium/webdriver/common/service.py @@ -209,12 +209,11 @@ def _start_process(self, path: str) -> None: raise WebDriverException( f"'{os.path.basename(self.path)}' executable needs to be in PATH. {self.start_error_message}" ) - elif err.errno == errno.EACCES: + if err.errno == errno.EACCES: raise WebDriverException( f"'{os.path.basename(self.path)}' executable may have wrong permissions. {self.start_error_message}" ) - else: - raise + raise except Exception as e: raise WebDriverException( f"The executable {os.path.basename(self.path)} needs to be available in the path. {self.start_error_message}\n{str(e)}" diff --git a/py/selenium/webdriver/remote/webdriver.py b/py/selenium/webdriver/remote/webdriver.py index 0e70c8f8006d3..76565e3ad734d 100644 --- a/py/selenium/webdriver/remote/webdriver.py +++ b/py/selenium/webdriver/remote/webdriver.py @@ -1202,7 +1202,7 @@ def get_credentials(self) -> List[Credential]: def remove_credential(self, credential_id: Union[str, bytearray]) -> None: """Removes a credential from the authenticator.""" # Check if the credential is bytearray converted to b64 string - if type(credential_id) is bytearray: + if isinstance(credential_id, bytearray): credential_id = urlsafe_b64encode(credential_id).decode() self.execute( diff --git a/py/selenium/webdriver/remote/webelement.py b/py/selenium/webdriver/remote/webelement.py index 794314248460c..4a65778cf3694 100644 --- a/py/selenium/webdriver/remote/webelement.py +++ b/py/selenium/webdriver/remote/webelement.py @@ -247,7 +247,7 @@ def shadow_root(self) -> ShadowRoot: "safari", ], "This only currently works in Chromium based browsers" assert ( - not browser_main_version <= 95 + browser_main_version > 95 ), f"Please use Chromium based browsers with version 96 or later. Version used {self._parent.caps['browserVersion']}" return self._execute(Command.GET_SHADOW_ROOT)["value"] diff --git a/py/selenium/webdriver/support/expected_conditions.py b/py/selenium/webdriver/support/expected_conditions.py index f3f76c26fa803..43ddbf7eff0c1 100644 --- a/py/selenium/webdriver/support/expected_conditions.py +++ b/py/selenium/webdriver/support/expected_conditions.py @@ -431,6 +431,9 @@ def _predicate(driver): def alert_is_present(): + """An expectation for checking if an alert is currently present and + switching to it.""" + def _predicate(driver): try: return driver.switch_to.alert diff --git a/py/setup.py b/py/setup.py index fab83e500a959..b14b359d36e71 100755 --- a/py/setup.py +++ b/py/setup.py @@ -27,7 +27,7 @@ setup_args = { 'cmdclass': {'install': install}, 'name': 'selenium', - 'version': "4.7.2", + 'version': "4.8.0", 'license': 'Apache 2.0', 'description': 'Python bindings for Selenium', 'long_description': open(join(abspath(dirname(__file__)), "README.rst")).read(), diff --git a/py/test/runner/run_pytest.py b/py/test/runner/run_pytest.py index 2911e03ee2b98..64d17c3e0e187 100644 --- a/py/test/runner/run_pytest.py +++ b/py/test/runner/run_pytest.py @@ -17,7 +17,7 @@ import pytest -with open("pytest.ini", "w") as ini_file: +with open("pytest.ini", "w", encoding="utf-8") as ini_file: ini_file.write("[pytest]\n") ini_file.write("addopts = -r=a\n") ini_file.write("rootdir = py\n") diff --git a/py/test/selenium/webdriver/chrome/proxy_tests.py b/py/test/selenium/webdriver/chrome/proxy_tests.py index bdf8d463f5a3f..c1372fe6e970d 100644 --- a/py/test/selenium/webdriver/chrome/proxy_tests.py +++ b/py/test/selenium/webdriver/chrome/proxy_tests.py @@ -36,7 +36,7 @@ def test_bad_proxy_doesnt_interfere(): assert hasattr(driver, "command_executor") assert hasattr(driver.command_executor, "_proxy_url") - assert type(driver.command_executor._conn) == urllib3.PoolManager + assert isinstance(driver.command_executor._conn, urllib3.PoolManager) os.environ.pop("https_proxy") os.environ.pop("http_proxy") driver.quit() diff --git a/py/test/selenium/webdriver/common/executing_async_javascript_tests.py b/py/test/selenium/webdriver/common/executing_async_javascript_tests.py index a6e85bdf5fd08..77ceaad3ec09b 100644 --- a/py/test/selenium/webdriver/common/executing_async_javascript_tests.py +++ b/py/test/selenium/webdriver/common/executing_async_javascript_tests.py @@ -33,7 +33,7 @@ def reset_timeouts(driver): def test_should_not_timeout_if_callback_invoked_immediately(driver, pages): pages.load("ajaxy_page.html") result = driver.execute_async_script("arguments[arguments.length - 1](123);") - assert type(result) == int + assert isinstance(result, int) assert 123 == result @@ -55,7 +55,7 @@ def test_should_be_able_to_return_an_array_literal_from_an_async_script(driver, pages.load("ajaxy_page.html") result = driver.execute_async_script("arguments[arguments.length - 1]([]);") assert "Expected not to be null!", result is not None - assert type(result) == list + assert isinstance(result, list) assert len(result) == 0 @@ -63,7 +63,7 @@ def test_should_be_able_to_return_an_array_object_from_an_async_script(driver, p pages.load("ajaxy_page.html") result = driver.execute_async_script("arguments[arguments.length - 1](new Array());") assert "Expected not to be null!", result is not None - assert type(result) == list + assert isinstance(result, list) assert len(result) == 0 @@ -73,7 +73,7 @@ def test_should_be_able_to_return_arrays_of_primitives_from_async_scripts(driver result = driver.execute_async_script("arguments[arguments.length - 1]([null, 123, 'abc', true, false]);") assert result is not None - assert type(result) == list + assert isinstance(result, list) assert not bool(result.pop()) assert bool(result.pop()) assert "abc" == result.pop() @@ -96,7 +96,7 @@ def test_should_be_able_to_return_arrays_of_web_elements_from_async_scripts(driv result = driver.execute_async_script("arguments[arguments.length - 1]([document.body, document.body]);") assert result is not None - assert type(result) == list + assert isinstance(result, list) list_ = result assert 2 == len(list_) diff --git a/py/test/selenium/webdriver/common/executing_javascript_tests.py b/py/test/selenium/webdriver/common/executing_javascript_tests.py index 28d19b4bc97c6..d94b759e54121 100644 --- a/py/test/selenium/webdriver/common/executing_javascript_tests.py +++ b/py/test/selenium/webdriver/common/executing_javascript_tests.py @@ -32,7 +32,7 @@ def test_should_be_able_to_execute_simple_javascript_and_return_astring(driver, result = driver.execute_script("return document.title") - assert type(result) == str, "The type of the result is %s" % type(result) + assert isinstance(result, str), "The type of the result is %s" % type(result) assert "XHTML Test Page" == result @@ -40,7 +40,7 @@ def test_should_be_able_to_execute_simple_javascript_and_return_an_integer(drive pages.load("nestedElements.html") result = driver.execute_script("return document.getElementsByName('checky').length") - assert type(result) == int + assert isinstance(result, int) assert int(result) > 1 @@ -124,7 +124,7 @@ def test_should_be_able_to_execute_simple_javascript_and_return_aboolean(driver, result = driver.execute_script("return true") assert result is not None - assert type(result) == bool + assert isinstance(result, bool) assert bool(result) @@ -149,7 +149,7 @@ def test_should_be_able_to_execute_simple_javascript_and_return_an_array(driver, expectedResult.append(subList) result = driver.execute_script("return ['zero', [true, false]]") assert result is not None - assert type(result) == list + assert isinstance(result, list) assert expectedResult == result @@ -157,7 +157,7 @@ def test_passing_and_returning_an_int_should_return_awhole_number(driver, pages) pages.load("javascriptPage.html") expectedResult = 1 result = driver.execute_script("return arguments[0]", expectedResult) - assert type(result) == int + assert isinstance(result, int) assert expectedResult == result @@ -165,7 +165,7 @@ def test_passing_and_returning_adouble_should_return_adecimal(driver, pages): pages.load("javascriptPage.html") expectedResult = 1.2 result = driver.execute_script("return arguments[0]", expectedResult) - assert type(result) == float + assert isinstance(result, float) assert expectedResult == result diff --git a/py/test/selenium/webdriver/marionette/mn_options_tests.py b/py/test/selenium/webdriver/marionette/mn_options_tests.py index 10d14c65749bf..51e4e35765f97 100644 --- a/py/test/selenium/webdriver/marionette/mn_options_tests.py +++ b/py/test/selenium/webdriver/marionette/mn_options_tests.py @@ -41,9 +41,9 @@ class TestUnit: def test_ctor(self): opts = Options() assert opts._binary is None - assert opts._preferences == {} + assert not opts._preferences assert opts._profile is None - assert opts._arguments == [] + assert not opts._arguments assert isinstance(opts.log, Log) def test_binary(self): diff --git a/py/test/unit/selenium/webdriver/remote/remote_connection_tests.py b/py/test/unit/selenium/webdriver/remote/remote_connection_tests.py index ca4ccde5acec7..2c798365d85f5 100644 --- a/py/test/unit/selenium/webdriver/remote/remote_connection_tests.py +++ b/py/test/unit/selenium/webdriver/remote/remote_connection_tests.py @@ -27,11 +27,11 @@ def test_get_remote_connection_headers_defaults(): url = "http://remote" headers = RemoteConnection.get_remote_connection_headers(parse.urlparse(url)) - assert "Authorization" not in headers.keys() - assert "Connection" not in headers.keys() + assert "Authorization" not in headers + assert "Connection" not in headers assert headers.get("Accept") == "application/json" assert headers.get("Content-Type") == "application/json;charset=UTF-8" - assert headers.get("User-Agent").startswith("selenium/%s (python " % __version__) + assert headers.get("User-Agent").startswith(f"selenium/{__version__} (python ") assert headers.get("User-Agent").split(" ")[-1] in {"windows)", "mac)", "linux)"} @@ -88,7 +88,7 @@ def test_get_proxy_url_https_auth(mock_proxy_auth_settings): def test_get_connection_manager_without_proxy(mock_proxy_settings_missing): remote_connection = RemoteConnection("http://remote", keep_alive=False) conn = remote_connection._get_connection_manager() - assert type(conn) == urllib3.PoolManager + assert isinstance(conn, urllib3.PoolManager) def test_get_connection_manager_for_certs_and_timeout(monkeypatch): @@ -109,13 +109,13 @@ def test_default_socket_timeout_is_correct(): def test_get_connection_manager_with_proxy(mock_proxy_settings): remote_connection = RemoteConnection("http://remote", keep_alive=False) conn = remote_connection._get_connection_manager() - assert type(conn) == urllib3.ProxyManager + assert isinstance(conn, urllib3.ProxyManager) assert conn.proxy.scheme == "http" assert conn.proxy.host == "http_proxy.com" assert conn.proxy.port == 8080 remote_connection_https = RemoteConnection("https://remote", keep_alive=False) conn = remote_connection_https._get_connection_manager() - assert type(conn) == urllib3.ProxyManager + assert isinstance(conn, urllib3.ProxyManager) assert conn.proxy.scheme == "http" assert conn.proxy.host == "https_proxy.com" assert conn.proxy.port == 8080 @@ -125,14 +125,14 @@ def test_get_connection_manager_with_auth_proxy(mock_proxy_auth_settings): proxy_auth_header = urllib3.make_headers(proxy_basic_auth="user:password") remote_connection = RemoteConnection("http://remote", keep_alive=False) conn = remote_connection._get_connection_manager() - assert type(conn) == urllib3.ProxyManager + assert isinstance(conn, urllib3.ProxyManager) assert conn.proxy.scheme == "http" assert conn.proxy.host == "http_proxy.com" assert conn.proxy.port == 8080 assert conn.proxy_headers == proxy_auth_header remote_connection_https = RemoteConnection("https://remote", keep_alive=False) conn = remote_connection_https._get_connection_manager() - assert type(conn) == urllib3.ProxyManager + assert isinstance(conn, urllib3.ProxyManager) assert conn.proxy.scheme == "https" assert conn.proxy.host == "https_proxy.com" assert conn.proxy.port == 8080 @@ -160,13 +160,13 @@ def test_get_connection_manager_with_auth_proxy(mock_proxy_auth_settings): def test_get_connection_manager_when_no_proxy_set(mock_no_proxy_settings, url): remote_connection = RemoteConnection(url) conn = remote_connection._get_connection_manager() - assert type(conn) == urllib3.PoolManager + assert isinstance(conn, urllib3.PoolManager) def test_ignore_proxy_env_vars(mock_proxy_settings): remote_connection = RemoteConnection("http://remote", ignore_proxy=True) conn = remote_connection._get_connection_manager() - assert type(conn) == urllib3.PoolManager + assert isinstance(conn, urllib3.PoolManager) def test_get_socks_proxy_when_set(mock_socks_proxy_settings): @@ -174,7 +174,7 @@ def test_get_socks_proxy_when_set(mock_socks_proxy_settings): conn = remote_connection._get_connection_manager() from urllib3.contrib.socks import SOCKSProxyManager - assert type(conn) == SOCKSProxyManager + assert isinstance(conn, SOCKSProxyManager) class MockResponse: diff --git a/py/test/unit/selenium/webdriver/support/color_tests.py b/py/test/unit/selenium/webdriver/support/color_tests.py index 24bbf3b8ab76d..d435bf6305481 100644 --- a/py/test/unit/selenium/webdriver/support/color_tests.py +++ b/py/test/unit/selenium/webdriver/support/color_tests.py @@ -22,7 +22,7 @@ def test_color_can_be_subclassed(): class MyColor(Color): ... - assert type(MyColor.from_string("rgb(1, 2, 3)")) == MyColor + assert isinstance(MyColor.from_string("rgb(1, 2, 3)"), MyColor) def test_rgb_to_rgb(): diff --git a/rb/CHANGES b/rb/CHANGES index 0e5e2dc81d6d8..79c69f7ebebe5 100644 --- a/rb/CHANGES +++ b/rb/CHANGES @@ -1,3 +1,32 @@ +4.8.0 (2023-01-23) +========================= +Ruby: + * Allow updating instance variables on service classes + * Deprecate extract_service_args processing in service classes + * Fix bug preventing sending nil to #send_keys with Remote Driver + * Fix bug with IE specific methods not available to IE Driver + * Created Chromium superclass for Chrome and Edge + * Deprecated platform and version setters/getters in Capabilities class + * Revamped driver constructor logic + * Fix bug preventing using Safari Technology Preview when using SafariOptions + * Fix bug preventing more than one driver type to access Selenium Manager + * Defaults to using Options instead of Capabilities + * Make Options classes more strict for allowed arguments and types + * Removed previously deprecated actions class parameters + * Removed Location struct + * Add comment with name of large JS executions (#11038) + * update logger with link on how to use it (#11478) + * Deprecate #add_option for Option classes in favor of constructor and attr_accessor + * Deprecate all unrecognized capabilities for Options classes + * Deprecate support for :capabilities for local drivers + * Deprecate browser class methods for Capabilities + * Deprecate #headless! for Chrome and Firefox + +BiDi: + * Released selenium-devtools 0.109.0 (supports CDP v85, v107, v108, v109) + * Add LogInspector (#11368) + * Add Browsing context commands (#11446) + 4.7.1 (2022-12-02) ========================= Ruby: diff --git a/rb/Gemfile.lock b/rb/Gemfile.lock index b9c31878b8515..88cc39cf38f5a 100644 --- a/rb/Gemfile.lock +++ b/rb/Gemfile.lock @@ -3,7 +3,7 @@ PATH specs: selenium-devtools (0.109.0) selenium-webdriver (~> 4.2) - selenium-webdriver (4.7.1) + selenium-webdriver (4.8.0) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) diff --git a/rb/lib/selenium/webdriver/remote.rb b/rb/lib/selenium/webdriver/remote.rb index 54101786a7fd9..14ccc60ee113d 100644 --- a/rb/lib/selenium/webdriver/remote.rb +++ b/rb/lib/selenium/webdriver/remote.rb @@ -27,7 +27,6 @@ module Remote autoload :Driver, 'selenium/webdriver/remote/driver' autoload :Response, 'selenium/webdriver/remote/response' autoload :Capabilities, 'selenium/webdriver/remote/capabilities' - autoload :COMMANDS, 'selenium/webdriver/remote/commands' module Http autoload :Common, 'selenium/webdriver/remote/http/common' diff --git a/rb/lib/selenium/webdriver/remote/bridge.rb b/rb/lib/selenium/webdriver/remote/bridge.rb index a061853d8252d..5d5908d8bbd83 100644 --- a/rb/lib/selenium/webdriver/remote/bridge.rb +++ b/rb/lib/selenium/webdriver/remote/bridge.rb @@ -21,6 +21,7 @@ module Selenium module WebDriver module Remote class Bridge + autoload :COMMANDS, 'selenium/webdriver/remote/bridge/commands' include Atoms PORT = 4444 diff --git a/rb/lib/selenium/webdriver/remote/commands.rb b/rb/lib/selenium/webdriver/remote/bridge/commands.rb similarity index 100% rename from rb/lib/selenium/webdriver/remote/commands.rb rename to rb/lib/selenium/webdriver/remote/bridge/commands.rb diff --git a/rb/lib/selenium/webdriver/remote/http/default.rb b/rb/lib/selenium/webdriver/remote/http/default.rb index 6c18767df067e..cb55b5c80a636 100644 --- a/rb/lib/selenium/webdriver/remote/http/default.rb +++ b/rb/lib/selenium/webdriver/remote/http/default.rb @@ -100,8 +100,7 @@ def request(verb, url, headers, payload, redirects = 0) request(:get, URI.parse(response['Location']), DEFAULT_HEADERS.dup, nil, redirects + 1) else - header = response.instance_variable_get(:@header).to_yaml - WebDriver.logger.debug(" <<< #{header.inspect}") + WebDriver.logger.debug(" <<< #{response.instance_variable_get(:@header).inspect}") create_response response.code, response.body, response.content_type end end diff --git a/rb/lib/selenium/webdriver/version.rb b/rb/lib/selenium/webdriver/version.rb index beb1cd7358f0d..42049fbb42b74 100644 --- a/rb/lib/selenium/webdriver/version.rb +++ b/rb/lib/selenium/webdriver/version.rb @@ -19,6 +19,6 @@ module Selenium module WebDriver - VERSION = '4.7.1' + VERSION = '4.8.0' end # WebDriver end # Selenium diff --git a/rb/spec/integration/selenium/webdriver/chrome/driver_spec.rb b/rb/spec/integration/selenium/webdriver/chrome/driver_spec.rb index 737f5126c8747..1427eb2dfd558 100644 --- a/rb/spec/integration/selenium/webdriver/chrome/driver_spec.rb +++ b/rb/spec/integration/selenium/webdriver/chrome/driver_spec.rb @@ -156,7 +156,9 @@ def get_permission(name) 'callback(navigator.permissions.query({name: arguments[0]}));', name)['state'] end - it 'can set single permissions' do + it 'can set single permissions', except: { + browser: :chrome, reason: 'https://bugs.chromium.org/p/chromedriver/issues/detail?id=4335' + } do driver.navigate.to url_for('xhtmlTest.html') expect(get_permission('clipboard-read')).to eq('prompt') @@ -171,7 +173,9 @@ def get_permission(name) reset_driver! end - it 'can set multiple permissions' do + it 'can set multiple permissions', except: { + browser: :chrome, reason: 'https://bugs.chromium.org/p/chromedriver/issues/detail?id=4335' + } do driver.navigate.to url_for('xhtmlTest.html') expect(get_permission('clipboard-read')).to eq('prompt') diff --git a/rust/Cargo.Bazel.lock b/rust/Cargo.Bazel.lock index 7f6581b00dd38..b2f43fedf5eaa 100644 --- a/rust/Cargo.Bazel.lock +++ b/rust/Cargo.Bazel.lock @@ -1,5 +1,5 @@ { - "checksum": "d5e5d0da5abd8fd788ec68b15d8855e490a5fe56b590cfbace989a98e3b1e90c", + "checksum": "cfb8c431183818c041b63dcfc880980393ff487769338055bc00a99b75ae4ffa", "crates": { "adler 1.0.2": { "name": "adler", @@ -137,13 +137,122 @@ }, "license": "Unlicense OR MIT" }, - "assert_cmd 2.0.7": { + "anyhow 1.0.68": { + "name": "anyhow", + "version": "1.0.68", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/anyhow/1.0.68/download", + "sha256": "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" + } + }, + "targets": [ + { + "Library": { + "crate_name": "anyhow", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "anyhow", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "default", + "std" + ], + "deps": { + "common": [ + { + "id": "anyhow 1.0.68", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.0.68" + }, + "build_script_attrs": { + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0" + }, + "assert-json-diff 2.0.2": { + "name": "assert-json-diff", + "version": "2.0.2", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/assert-json-diff/2.0.2/download", + "sha256": "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" + } + }, + "targets": [ + { + "Library": { + "crate_name": "assert_json_diff", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "assert_json_diff", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "serde 1.0.152", + "target": "serde" + }, + { + "id": "serde_json 1.0.91", + "target": "serde_json" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "2.0.2" + }, + "license": "MIT" + }, + "assert_cmd 2.0.8": { "name": "assert_cmd", - "version": "2.0.7", + "version": "2.0.8", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/assert_cmd/2.0.7/download", - "sha256": "fa3d466004a8b4cb1bc34044240a2fd29d17607e2e3bd613eb44fd48e8100da3" + "url": "https://crates.io/api/v1/crates/assert_cmd/2.0.8/download", + "sha256": "9834fcc22e0874394a010230586367d4a3e9f11b560f469262678547e1d2575e" } }, "targets": [ @@ -207,7 +316,128 @@ "selects": {} }, "edition": "2021", - "version": "2.0.7" + "version": "2.0.8" + }, + "license": "MIT OR Apache-2.0" + }, + "async-channel 1.8.0": { + "name": "async-channel", + "version": "1.8.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/async-channel/1.8.0/download", + "sha256": "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" + } + }, + "targets": [ + { + "Library": { + "crate_name": "async_channel", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "async_channel", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "concurrent-queue 2.1.0", + "target": "concurrent_queue" + }, + { + "id": "event-listener 2.5.3", + "target": "event_listener" + }, + { + "id": "futures-core 0.3.25", + "target": "futures_core" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.8.0" + }, + "license": "Apache-2.0 OR MIT" + }, + "async-trait 0.1.63": { + "name": "async-trait", + "version": "0.1.63", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/async-trait/0.1.63/download", + "sha256": "eff18d764974428cf3a9328e23fc5c986f5fbed46e6cd4cdf42544df5d297ec1" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "async_trait", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "async_trait", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "async-trait 0.1.63", + "target": "build_script_build" + }, + { + "id": "proc-macro2 1.0.50", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.23", + "target": "quote" + }, + { + "id": "syn 1.0.107", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.63" + }, + "build_script_attrs": { + "data_glob": [ + "**" + ] }, "license": "MIT OR Apache-2.0" }, @@ -281,6 +511,43 @@ }, "license": "MIT/Apache-2.0" }, + "base64 0.21.0": { + "name": "base64", + "version": "0.21.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/base64/0.21.0/download", + "sha256": "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "base64", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "base64", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "default", + "std" + ], + "edition": "2021", + "version": "0.21.0" + }, + "license": "MIT OR Apache-2.0" + }, "base64ct 1.5.3": { "name": "base64ct", "version": "1.5.3", @@ -452,13 +719,13 @@ }, "license": "MIT OR Apache-2.0" }, - "bumpalo 3.11.1": { + "bumpalo 3.12.0": { "name": "bumpalo", - "version": "3.11.1", + "version": "3.12.0", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/bumpalo/3.11.1/download", - "sha256": "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" + "url": "https://crates.io/api/v1/crates/bumpalo/3.12.0/download", + "sha256": "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" } }, "targets": [ @@ -484,7 +751,7 @@ "default" ], "edition": "2021", - "version": "3.11.1" + "version": "3.12.0" }, "license": "MIT/Apache-2.0" }, @@ -868,13 +1135,13 @@ }, "license": "MIT OR Apache-2.0" }, - "clap 4.0.32": { + "clap 4.1.3": { "name": "clap", - "version": "4.0.32", + "version": "4.1.3", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap/4.0.32/download", - "sha256": "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39" + "url": "https://crates.io/api/v1/crates/clap/4.1.3/download", + "sha256": "d8d93d855ce6a0aa87b8473ef9169482f40abaa2e9e0993024c35c902cbd5920" } }, "targets": [ @@ -925,7 +1192,7 @@ "target": "bitflags" }, { - "id": "clap_lex 0.3.0", + "id": "clap_lex 0.3.1", "target": "clap_lex" }, { @@ -941,7 +1208,7 @@ "target": "strsim" }, { - "id": "termcolor 1.1.3", + "id": "termcolor 1.2.0", "target": "termcolor" } ], @@ -951,23 +1218,23 @@ "proc_macro_deps": { "common": [ { - "id": "clap_derive 4.0.21", + "id": "clap_derive 4.1.0", "target": "clap_derive" } ], "selects": {} }, - "version": "4.0.32" + "version": "4.1.3" }, "license": "MIT OR Apache-2.0" }, - "clap_derive 4.0.21": { + "clap_derive 4.1.0": { "name": "clap_derive", - "version": "4.0.21", + "version": "4.1.0", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap_derive/4.0.21/download", - "sha256": "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" + "url": "https://crates.io/api/v1/crates/clap_derive/4.1.0/download", + "sha256": "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8" } }, "targets": [ @@ -1003,7 +1270,7 @@ "target": "proc_macro_error" }, { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -1018,17 +1285,17 @@ "selects": {} }, "edition": "2021", - "version": "4.0.21" + "version": "4.1.0" }, "license": "MIT OR Apache-2.0" }, - "clap_lex 0.3.0": { + "clap_lex 0.3.1": { "name": "clap_lex", - "version": "0.3.0", + "version": "0.3.1", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap_lex/0.3.0/download", - "sha256": "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" + "url": "https://crates.io/api/v1/crates/clap_lex/0.3.1/download", + "sha256": "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade" } }, "targets": [ @@ -1060,10 +1327,56 @@ "selects": {} }, "edition": "2021", - "version": "0.3.0" + "version": "0.3.1" }, "license": "MIT OR Apache-2.0" }, + "concurrent-queue 2.1.0": { + "name": "concurrent-queue", + "version": "2.1.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/concurrent-queue/2.1.0/download", + "sha256": "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "concurrent_queue", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "concurrent_queue", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "default", + "std" + ], + "deps": { + "common": [ + { + "id": "crossbeam-utils 0.8.14", + "target": "crossbeam_utils" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "2.1.0" + }, + "license": "Apache-2.0 OR MIT" + }, "constant_time_eq 0.1.5": { "name": "constant_time_eq", "version": "0.1.5", @@ -1336,6 +1649,108 @@ }, "license": "MIT OR Apache-2.0" }, + "deadpool 0.9.5": { + "name": "deadpool", + "version": "0.9.5", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/deadpool/0.9.5/download", + "sha256": "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "deadpool", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "deadpool", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "async-trait", + "default", + "managed", + "unmanaged" + ], + "deps": { + "common": [ + { + "id": "deadpool-runtime 0.1.2", + "target": "deadpool_runtime" + }, + { + "id": "num_cpus 1.15.0", + "target": "num_cpus" + }, + { + "id": "retain_mut 0.1.9", + "target": "retain_mut" + }, + { + "id": "tokio 1.24.2", + "target": "tokio" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "async-trait 0.1.63", + "target": "async_trait" + } + ], + "selects": {} + }, + "version": "0.9.5" + }, + "license": "MIT/Apache-2.0" + }, + "deadpool-runtime 0.1.2": { + "name": "deadpool-runtime", + "version": "0.1.2", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/deadpool-runtime/0.1.2/download", + "sha256": "eaa37046cc0f6c3cc6090fbdbf73ef0b8ef4cfcc37f6befc0020f63e8cf121e1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "deadpool_runtime", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "deadpool_runtime", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.1.2" + }, + "license": "MIT/Apache-2.0" + }, "difflib 0.4.0": { "name": "difflib", "version": "0.4.0", @@ -1738,11 +2153,11 @@ "target": "log" }, { - "id": "regex 1.7.0", + "id": "regex 1.7.1", "target": "regex" }, { - "id": "termcolor 1.1.3", + "id": "termcolor 1.2.0", "target": "termcolor" } ], @@ -1893,6 +2308,39 @@ }, "license": "MIT" }, + "event-listener 2.5.3": { + "name": "event-listener", + "version": "2.5.3", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/event-listener/2.5.3/download", + "sha256": "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "event_listener", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "event_listener", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "2.5.3" + }, + "license": "Apache-2.0 OR MIT" + }, "exitcode 1.1.2": { "name": "exitcode", "version": "1.1.2", @@ -2453,21 +2901,98 @@ ], "exclude": [] } - } - } - ], - "library_target_name": "futures_io", - "common_attrs": { - "compile_data_glob": [ - "**" - ], - "crate_features": [ - "std" - ], + } + } + ], + "library_target_name": "futures_io", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "default", + "std" + ], + "edition": "2018", + "version": "0.3.25" + }, + "license": "MIT OR Apache-2.0" + }, + "futures-lite 1.12.0": { + "name": "futures-lite", + "version": "1.12.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/futures-lite/1.12.0/download", + "sha256": "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" + } + }, + "targets": [ + { + "Library": { + "crate_name": "futures_lite", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "futures_lite", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "alloc", + "default", + "fastrand", + "futures-io", + "memchr", + "parking", + "std", + "waker-fn" + ], + "deps": { + "common": [ + { + "id": "fastrand 1.8.0", + "target": "fastrand" + }, + { + "id": "futures-core 0.3.25", + "target": "futures_core" + }, + { + "id": "futures-io 0.3.25", + "target": "futures_io" + }, + { + "id": "memchr 2.5.0", + "target": "memchr" + }, + { + "id": "parking 2.0.0", + "target": "parking" + }, + { + "id": "pin-project-lite 0.2.9", + "target": "pin_project_lite" + }, + { + "id": "waker-fn 1.1.0", + "target": "waker_fn" + } + ], + "selects": {} + }, "edition": "2018", - "version": "0.3.25" + "version": "1.12.0" }, - "license": "MIT OR Apache-2.0" + "license": "Apache-2.0 OR MIT" }, "futures-macro 0.3.25": { "name": "futures-macro", @@ -2500,7 +3025,7 @@ "deps": { "common": [ { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -2847,6 +3372,85 @@ }, "license": "MIT" }, + "getrandom 0.1.16": { + "name": "getrandom", + "version": "0.1.16", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/getrandom/0.1.16/download", + "sha256": "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" + } + }, + "targets": [ + { + "Library": { + "crate_name": "getrandom", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "getrandom", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "std" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.0", + "target": "cfg_if" + }, + { + "id": "getrandom 0.1.16", + "target": "build_script_build" + } + ], + "selects": { + "cfg(target_os = \"wasi\")": [ + { + "id": "wasi 0.9.0+wasi-snapshot-preview1", + "target": "wasi" + } + ], + "cfg(unix)": [ + { + "id": "libc 0.2.139", + "target": "libc" + } + ] + } + }, + "edition": "2018", + "version": "0.1.16" + }, + "build_script_attrs": { + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0" + }, "getrandom 0.2.8": { "name": "getrandom", "version": "0.2.8", @@ -2968,7 +3572,7 @@ "target": "slab" }, { - "id": "tokio 1.24.1", + "id": "tokio 1.24.2", "target": "tokio" }, { @@ -3249,6 +3853,121 @@ }, "license": "MIT" }, + "http-types 2.12.0": { + "name": "http-types", + "version": "2.12.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/http-types/2.12.0/download", + "sha256": "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" + } + }, + "targets": [ + { + "Library": { + "crate_name": "http_types", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "http_types", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "http", + "hyperium_http" + ], + "deps": { + "common": [ + { + "id": "anyhow 1.0.68", + "target": "anyhow" + }, + { + "id": "async-channel 1.8.0", + "target": "async_channel" + }, + { + "id": "base64 0.13.1", + "target": "base64" + }, + { + "id": "futures-lite 1.12.0", + "target": "futures_lite" + }, + { + "id": "http 0.2.8", + "target": "http" + }, + { + "id": "http-types 2.12.0", + "target": "build_script_build" + }, + { + "id": "infer 0.2.3", + "target": "infer" + }, + { + "id": "pin-project-lite 0.2.9", + "target": "pin_project_lite" + }, + { + "id": "rand 0.7.3", + "target": "rand" + }, + { + "id": "serde 1.0.152", + "target": "serde" + }, + { + "id": "serde_json 1.0.91", + "target": "serde_json" + }, + { + "id": "serde_qs 0.8.5", + "target": "serde_qs" + }, + { + "id": "serde_urlencoded 0.7.1", + "target": "serde_urlencoded" + }, + { + "id": "url 2.3.1", + "target": "url" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "2.12.0" + }, + "build_script_attrs": { + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0" + }, "httparse 1.8.0": { "name": "httparse", "version": "1.8.0", @@ -3408,11 +4127,15 @@ ], "crate_features": [ "client", + "default", + "full", "h2", "http1", "http2", "runtime", + "server", "socket2", + "stream", "tcp" ], "deps": { @@ -3466,7 +4189,7 @@ "target": "socket2" }, { - "id": "tokio 1.24.1", + "id": "tokio 1.24.2", "target": "tokio" }, { @@ -3528,11 +4251,11 @@ "target": "hyper" }, { - "id": "rustls 0.20.7", + "id": "rustls 0.20.8", "target": "rustls" }, { - "id": "tokio 1.24.1", + "id": "tokio 1.24.2", "target": "tokio" }, { @@ -3578,7 +4301,7 @@ "deps": { "common": [ { - "id": "unicode-bidi 0.3.8", + "id": "unicode-bidi 0.3.10", "target": "unicode_bidi" }, { @@ -3716,6 +4439,39 @@ }, "license": "MIT" }, + "infer 0.2.3": { + "name": "infer", + "version": "0.2.3", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/infer/0.2.3/download", + "sha256": "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" + } + }, + "targets": [ + { + "Library": { + "crate_name": "infer", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "infer", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.2.3" + }, + "license": "MIT" + }, "instant 0.1.12": { "name": "instant", "version": "0.1.12", @@ -3758,13 +4514,13 @@ }, "license": "BSD-3-Clause" }, - "io-lifetimes 1.0.3": { + "io-lifetimes 1.0.4": { "name": "io-lifetimes", - "version": "1.0.3", + "version": "1.0.4", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/io-lifetimes/1.0.3/download", - "sha256": "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c" + "url": "https://crates.io/api/v1/crates/io-lifetimes/1.0.4/download", + "sha256": "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e" } }, "targets": [ @@ -3807,7 +4563,7 @@ "deps": { "common": [ { - "id": "io-lifetimes 1.0.3", + "id": "io-lifetimes 1.0.4", "target": "build_script_build" } ], @@ -3827,7 +4583,7 @@ } }, "edition": "2018", - "version": "1.0.3" + "version": "1.0.4" }, "build_script_attrs": { "data_glob": [ @@ -3836,13 +4592,13 @@ }, "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT" }, - "ipnet 2.7.0": { + "ipnet 2.7.1": { "name": "ipnet", - "version": "2.7.0", + "version": "2.7.1", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/ipnet/2.7.0/download", - "sha256": "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e" + "url": "https://crates.io/api/v1/crates/ipnet/2.7.1/download", + "sha256": "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" } }, "targets": [ @@ -3868,7 +4624,7 @@ "default" ], "edition": "2018", - "version": "2.7.0" + "version": "2.7.1" }, "license": "MIT OR Apache-2.0" }, @@ -3903,14 +4659,14 @@ "deps": { "common": [ { - "id": "io-lifetimes 1.0.3", + "id": "io-lifetimes 1.0.4", "target": "io_lifetimes" } ], "selects": { "cfg(not(any(windows, target_os = \"hermit\", target_os = \"unknown\")))": [ { - "id": "rustix 0.36.6", + "id": "rustix 0.36.7", "target": "rustix" } ], @@ -4597,24 +5353,60 @@ "compile_data_glob": [ "**" ], - "edition": "2018", - "version": "0.3.0" + "edition": "2018", + "version": "0.3.0" + }, + "license": "MIT OR Apache-2.0" + }, + "os_str_bytes 6.4.1": { + "name": "os_str_bytes", + "version": "6.4.1", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/os_str_bytes/6.4.1/download", + "sha256": "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" + } + }, + "targets": [ + { + "Library": { + "crate_name": "os_str_bytes", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "os_str_bytes", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "raw_os_str" + ], + "edition": "2021", + "version": "6.4.1" }, "license": "MIT OR Apache-2.0" }, - "os_str_bytes 6.4.1": { - "name": "os_str_bytes", - "version": "6.4.1", + "parking 2.0.0": { + "name": "parking", + "version": "2.0.0", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/os_str_bytes/6.4.1/download", - "sha256": "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" + "url": "https://crates.io/api/v1/crates/parking/2.0.0/download", + "sha256": "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" } }, "targets": [ { "Library": { - "crate_name": "os_str_bytes", + "crate_name": "parking", "crate_root": "src/lib.rs", "srcs": { "include": [ @@ -4625,18 +5417,15 @@ } } ], - "library_target_name": "os_str_bytes", + "library_target_name": "parking", "common_attrs": { "compile_data_glob": [ "**" ], - "crate_features": [ - "raw_os_str" - ], - "edition": "2021", - "version": "6.4.1" + "edition": "2018", + "version": "2.0.0" }, - "license": "MIT OR Apache-2.0" + "license": "Apache-2.0 OR MIT" }, "password-hash 0.4.2": { "name": "password-hash", @@ -4888,6 +5677,43 @@ }, "license": "MIT OR Apache-2.0" }, + "ppv-lite86 0.2.17": { + "name": "ppv-lite86", + "version": "0.2.17", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/ppv-lite86/0.2.17/download", + "sha256": "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ppv_lite86", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "ppv_lite86", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "simd", + "std" + ], + "edition": "2018", + "version": "0.2.17" + }, + "license": "MIT/Apache-2.0" + }, "predicates 2.1.5": { "name": "predicates", "version": "2.1.5", @@ -5072,7 +5898,7 @@ "target": "build_script_build" }, { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -5161,7 +5987,7 @@ "target": "build_script_build" }, { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -5190,13 +6016,13 @@ }, "license": "MIT OR Apache-2.0" }, - "proc-macro2 1.0.49": { + "proc-macro2 1.0.50": { "name": "proc-macro2", - "version": "1.0.49", + "version": "1.0.50", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.49/download", - "sha256": "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" + "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.50/download", + "sha256": "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" } }, "targets": [ @@ -5237,7 +6063,7 @@ "deps": { "common": [ { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "build_script_build" }, { @@ -5248,7 +6074,7 @@ "selects": {} }, "edition": "2018", - "version": "1.0.49" + "version": "1.0.50" }, "build_script_attrs": { "data_glob": [ @@ -5304,7 +6130,7 @@ "deps": { "common": [ { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -5324,6 +6150,176 @@ }, "license": "MIT OR Apache-2.0" }, + "rand 0.7.3": { + "name": "rand", + "version": "0.7.3", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/rand/0.7.3/download", + "sha256": "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "rand", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "alloc", + "default", + "getrandom", + "getrandom_package", + "libc", + "std" + ], + "deps": { + "common": [ + { + "id": "getrandom 0.1.16", + "target": "getrandom", + "alias": "getrandom_package" + }, + { + "id": "rand_core 0.5.1", + "target": "rand_core" + } + ], + "selects": { + "cfg(not(target_os = \"emscripten\"))": [ + { + "id": "rand_chacha 0.2.2", + "target": "rand_chacha" + } + ], + "cfg(target_os = \"emscripten\")": [ + { + "id": "rand_hc 0.2.0", + "target": "rand_hc" + } + ], + "cfg(unix)": [ + { + "id": "libc 0.2.139", + "target": "libc" + } + ] + } + }, + "edition": "2018", + "version": "0.7.3" + }, + "license": "MIT OR Apache-2.0" + }, + "rand_chacha 0.2.2": { + "name": "rand_chacha", + "version": "0.2.2", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/rand_chacha/0.2.2/download", + "sha256": "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand_chacha", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "rand_chacha", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "std" + ], + "deps": { + "common": [ + { + "id": "ppv-lite86 0.2.17", + "target": "ppv_lite86" + }, + { + "id": "rand_core 0.5.1", + "target": "rand_core" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.2" + }, + "license": "MIT OR Apache-2.0" + }, + "rand_core 0.5.1": { + "name": "rand_core", + "version": "0.5.1", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/rand_core/0.5.1/download", + "sha256": "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand_core", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "rand_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "alloc", + "getrandom", + "std" + ], + "deps": { + "common": [ + { + "id": "getrandom 0.1.16", + "target": "getrandom" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.5.1" + }, + "license": "MIT OR Apache-2.0" + }, "rand_core 0.6.4": { "name": "rand_core", "version": "0.6.4", @@ -5357,6 +6353,48 @@ }, "license": "MIT OR Apache-2.0" }, + "rand_hc 0.2.0": { + "name": "rand_hc", + "version": "0.2.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/rand_hc/0.2.0/download", + "sha256": "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand_hc", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "rand_hc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "rand_core 0.5.1", + "target": "rand_core" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.0" + }, + "license": "MIT/Apache-2.0" + }, "redox_syscall 0.2.16": { "name": "redox_syscall", "version": "0.2.16", @@ -5449,13 +6487,13 @@ }, "license": "MIT" }, - "regex 1.7.0": { + "regex 1.7.1": { "name": "regex", - "version": "1.7.0", + "version": "1.7.1", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex/1.7.0/download", - "sha256": "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" + "url": "https://crates.io/api/v1/crates/regex/1.7.1/download", + "sha256": "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" } }, "targets": [ @@ -5514,7 +6552,7 @@ "selects": {} }, "edition": "2018", - "version": "1.7.0" + "version": "1.7.1" }, "license": "MIT OR Apache-2.0" }, @@ -5639,13 +6677,13 @@ }, "license": "MIT/Apache-2.0" }, - "reqwest 0.11.13": { + "reqwest 0.11.14": { "name": "reqwest", - "version": "0.11.13", + "version": "0.11.14", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/reqwest/0.11.13/download", - "sha256": "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" + "url": "https://crates.io/api/v1/crates/reqwest/0.11.14/download", + "sha256": "21eed90ec8570952d53b772ecf8f206aa1ec9a3d76b2521c56c42973f2d91ee9" } }, "targets": [ @@ -5681,13 +6719,21 @@ "deps": { "common": [ { - "id": "base64 0.13.1", + "id": "base64 0.21.0", "target": "base64" }, { "id": "bytes 1.3.0", "target": "bytes" }, + { + "id": "futures-core 0.3.25", + "target": "futures_core" + }, + { + "id": "futures-util 0.3.25", + "target": "futures_util" + }, { "id": "http 0.2.8", "target": "http" @@ -5715,14 +6761,6 @@ "id": "encoding_rs 0.8.31", "target": "encoding_rs" }, - { - "id": "futures-core 0.3.25", - "target": "futures_core" - }, - { - "id": "futures-util 0.3.25", - "target": "futures_util" - }, { "id": "h2 0.3.15", "target": "h2" @@ -5740,7 +6778,7 @@ "target": "hyper_rustls" }, { - "id": "ipnet 2.7.0", + "id": "ipnet 2.7.1", "target": "ipnet" }, { @@ -5764,15 +6802,15 @@ "target": "pin_project_lite" }, { - "id": "rustls 0.20.7", + "id": "rustls 0.20.8", "target": "rustls" }, { - "id": "rustls-pemfile 1.0.1", + "id": "rustls-pemfile 1.0.2", "target": "rustls_pemfile" }, { - "id": "tokio 1.24.1", + "id": "tokio 1.24.2", "target": "tokio" }, { @@ -5815,9 +6853,42 @@ } }, "edition": "2018", - "version": "0.11.13" + "version": "0.11.14" }, - "license": "MIT/Apache-2.0" + "license": "MIT OR Apache-2.0" + }, + "retain_mut 0.1.9": { + "name": "retain_mut", + "version": "0.1.9", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/retain_mut/0.1.9/download", + "sha256": "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "retain_mut", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "retain_mut", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "0.1.9" + }, + "license": "MIT" }, "ring 0.16.20": { "name": "ring", @@ -6042,7 +7113,7 @@ "target": "cfg_if" }, { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -6125,13 +7196,13 @@ }, "license": "MIT/Apache-2.0" }, - "rustix 0.36.6": { + "rustix 0.36.7": { "name": "rustix", - "version": "0.36.6", + "version": "0.36.7", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/rustix/0.36.6/download", - "sha256": "4feacf7db682c6c329c4ede12649cd36ecab0f3be5b7d74e6a20304725db4549" + "url": "https://crates.io/api/v1/crates/rustix/0.36.7/download", + "sha256": "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" } }, "targets": [ @@ -6180,11 +7251,11 @@ "target": "bitflags" }, { - "id": "io-lifetimes 1.0.3", + "id": "io-lifetimes 1.0.4", "target": "io_lifetimes" }, { - "id": "rustix 0.36.6", + "id": "rustix 0.36.7", "target": "build_script_build" } ], @@ -6225,7 +7296,7 @@ } }, "edition": "2018", - "version": "0.36.6" + "version": "0.36.7" }, "build_script_attrs": { "data_glob": [ @@ -6234,13 +7305,13 @@ }, "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT" }, - "rustls 0.20.7": { + "rustls 0.20.8": { "name": "rustls", - "version": "0.20.7", + "version": "0.20.8", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/rustls/0.20.7/download", - "sha256": "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" + "url": "https://crates.io/api/v1/crates/rustls/0.20.8/download", + "sha256": "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" } }, "targets": [ @@ -6292,7 +7363,7 @@ "target": "ring" }, { - "id": "rustls 0.20.7", + "id": "rustls 0.20.8", "target": "build_script_build" }, { @@ -6307,7 +7378,7 @@ "selects": {} }, "edition": "2018", - "version": "0.20.7" + "version": "0.20.8" }, "build_script_attrs": { "data_glob": [ @@ -6316,13 +7387,13 @@ }, "license": "Apache-2.0/ISC/MIT" }, - "rustls-pemfile 1.0.1": { + "rustls-pemfile 1.0.2": { "name": "rustls-pemfile", - "version": "1.0.1", + "version": "1.0.2", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/rustls-pemfile/1.0.1/download", - "sha256": "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" + "url": "https://crates.io/api/v1/crates/rustls-pemfile/1.0.2/download", + "sha256": "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" } }, "targets": [ @@ -6347,14 +7418,14 @@ "deps": { "common": [ { - "id": "base64 0.13.1", + "id": "base64 0.21.0", "target": "base64" } ], "selects": {} }, "edition": "2018", - "version": "1.0.1" + "version": "1.0.2" }, "license": "Apache-2.0 OR ISC OR MIT" }, @@ -6437,9 +7508,9 @@ }, "license": "Apache-2.0/ISC/MIT" }, - "selenium-manager 1.0.0-M2": { + "selenium-manager 1.0.0-M3": { "name": "selenium-manager", - "version": "1.0.0-M2", + "version": "1.0.0-M3", "repository": null, "targets": [ { @@ -6475,7 +7546,7 @@ "deps": { "common": [ { - "id": "clap 4.0.32", + "id": "clap 4.1.3", "target": "clap" }, { @@ -6503,11 +7574,11 @@ "target": "log" }, { - "id": "regex 1.7.0", + "id": "regex 1.7.1", "target": "regex" }, { - "id": "reqwest 0.11.13", + "id": "reqwest 0.11.14", "target": "reqwest" }, { @@ -6527,7 +7598,7 @@ "target": "tempfile" }, { - "id": "tokio 1.24.1", + "id": "tokio 1.24.2", "target": "tokio" }, { @@ -6540,18 +7611,22 @@ "deps_dev": { "common": [ { - "id": "assert_cmd 2.0.7", + "id": "assert_cmd 2.0.8", "target": "assert_cmd" }, { "id": "rstest 0.16.0", "target": "rstest" + }, + { + "id": "wiremock 0.5.17", + "target": "wiremock" } ], "selects": {} }, "edition": "2021", - "version": "1.0.0-M2" + "version": "1.0.0-M3" }, "license": "Apache-2.0" }, @@ -6739,7 +7814,7 @@ "deps": { "common": [ { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -6842,6 +7917,59 @@ }, "license": "MIT OR Apache-2.0" }, + "serde_qs 0.8.5": { + "name": "serde_qs", + "version": "0.8.5", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/serde_qs/0.8.5/download", + "sha256": "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "serde_qs", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "serde_qs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "default" + ], + "deps": { + "common": [ + { + "id": "percent-encoding 2.2.0", + "target": "percent_encoding" + }, + { + "id": "serde 1.0.152", + "target": "serde" + }, + { + "id": "thiserror 1.0.38", + "target": "thiserror" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.8.5" + }, + "license": "MIT/Apache-2.0" + }, "serde_urlencoded 0.7.1": { "name": "serde_urlencoded", "version": "0.7.1", @@ -7286,7 +8414,7 @@ "deps": { "common": [ { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -7440,13 +8568,13 @@ }, "license": "MIT OR Apache-2.0" }, - "termcolor 1.1.3": { + "termcolor 1.2.0": { "name": "termcolor", - "version": "1.1.3", + "version": "1.2.0", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/termcolor/1.1.3/download", - "sha256": "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" + "url": "https://crates.io/api/v1/crates/termcolor/1.2.0/download", + "sha256": "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" } }, "targets": [ @@ -7480,7 +8608,7 @@ } }, "edition": "2018", - "version": "1.1.3" + "version": "1.2.0" }, "license": "Unlicense OR MIT" }, @@ -7616,7 +8744,7 @@ "deps": { "common": [ { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -7859,13 +8987,13 @@ }, "license": "MIT OR Apache-2.0 OR Zlib" }, - "tokio 1.24.1": { + "tokio 1.24.2": { "name": "tokio", - "version": "1.24.1", + "version": "1.24.2", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tokio/1.24.1/download", - "sha256": "1d9f76183f91ecfb55e1d7d5602bd1d979e38a3a522fe900241cf195624d67ae" + "url": "https://crates.io/api/v1/crates/tokio/1.24.2/download", + "sha256": "597a12a59981d9e3c38d216785b0c37399f6e415e8d0712047620f189371b0bb" } }, "targets": [ @@ -7940,7 +9068,7 @@ "target": "pin_project_lite" }, { - "id": "tokio 1.24.1", + "id": "tokio 1.24.2", "target": "build_script_build" } ], @@ -7981,7 +9109,7 @@ ], "selects": {} }, - "version": "1.24.1" + "version": "1.24.2" }, "build_script_attrs": { "data_glob": [ @@ -8030,7 +9158,7 @@ "deps": { "common": [ { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -8085,11 +9213,11 @@ "deps": { "common": [ { - "id": "rustls 0.20.7", + "id": "rustls 0.20.8", "target": "rustls" }, { - "id": "tokio 1.24.1", + "id": "tokio 1.24.2", "target": "tokio" }, { @@ -8156,7 +9284,7 @@ "target": "pin_project_lite" }, { - "id": "tokio 1.24.1", + "id": "tokio 1.24.2", "target": "tokio" }, { @@ -8395,13 +9523,13 @@ }, "license": "MIT OR Apache-2.0" }, - "unicode-bidi 0.3.8": { + "unicode-bidi 0.3.10": { "name": "unicode-bidi", - "version": "0.3.8", + "version": "0.3.10", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/unicode-bidi/0.3.8/download", - "sha256": "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + "url": "https://crates.io/api/v1/crates/unicode-bidi/0.3.10/download", + "sha256": "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" } }, "targets": [ @@ -8429,7 +9557,7 @@ "std" ], "edition": "2018", - "version": "0.3.8" + "version": "0.3.10" }, "license": "MIT OR Apache-2.0" }, @@ -8574,7 +9702,8 @@ "**" ], "crate_features": [ - "default" + "default", + "serde" ], "deps": { "common": [ @@ -8589,6 +9718,10 @@ { "id": "percent-encoding 2.2.0", "target": "percent_encoding" + }, + { + "id": "serde 1.0.152", + "target": "serde" } ], "selects": {} @@ -8692,8 +9825,8 @@ }, { "Binary": { - "crate_name": "sleep", - "crate_root": "src/bin/sleep.rs", + "crate_name": "exit", + "crate_root": "src/bin/exit.rs", "srcs": { "include": [ "**/*.rs" @@ -8704,8 +9837,8 @@ }, { "Binary": { - "crate_name": "reader", - "crate_root": "src/bin/reader.rs", + "crate_name": "sleep", + "crate_root": "src/bin/sleep.rs", "srcs": { "include": [ "**/*.rs" @@ -8716,8 +9849,8 @@ }, { "Binary": { - "crate_name": "exit", - "crate_root": "src/bin/exit.rs", + "crate_name": "reader", + "crate_root": "src/bin/reader.rs", "srcs": { "include": [ "**/*.rs" @@ -8748,6 +9881,39 @@ }, "license": "MIT/Apache-2.0" }, + "waker-fn 1.1.0": { + "name": "waker-fn", + "version": "1.1.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/waker-fn/1.1.0/download", + "sha256": "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + } + }, + "targets": [ + { + "Library": { + "crate_name": "waker_fn", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "waker_fn", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "1.1.0" + }, + "license": "Apache-2.0 OR MIT" + }, "want 0.3.0": { "name": "want", "version": "0.3.0", @@ -8831,6 +9997,43 @@ }, "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT" }, + "wasi 0.9.0+wasi-snapshot-preview1": { + "name": "wasi", + "version": "0.9.0+wasi-snapshot-preview1", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/wasi/0.9.0+wasi-snapshot-preview1/download", + "sha256": "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wasi", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "wasi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": [ + "default", + "std" + ], + "edition": "2018", + "version": "0.9.0+wasi-snapshot-preview1" + }, + "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT" + }, "wasm-bindgen 0.2.83": { "name": "wasm-bindgen", "version": "0.2.83", @@ -8942,7 +10145,7 @@ "deps": { "common": [ { - "id": "bumpalo 3.11.1", + "id": "bumpalo 3.12.0", "target": "bumpalo" }, { @@ -8954,7 +10157,7 @@ "target": "once_cell" }, { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -9117,7 +10320,7 @@ "deps": { "common": [ { - "id": "proc-macro2 1.0.49", + "id": "proc-macro2 1.0.50", "target": "proc_macro2" }, { @@ -9242,6 +10445,7 @@ "FormData", "Headers", "MessageEvent", + "ReadableStream", "Request", "RequestCredentials", "RequestInit", @@ -9687,73 +10891,73 @@ "selects": { "aarch64-pc-windows-gnullvm": [ { - "id": "windows_aarch64_gnullvm 0.42.0", + "id": "windows_aarch64_gnullvm 0.42.1", "target": "windows_aarch64_gnullvm" } ], "aarch64-pc-windows-msvc": [ { - "id": "windows_aarch64_msvc 0.42.0", + "id": "windows_aarch64_msvc 0.42.1", "target": "windows_aarch64_msvc" } ], "aarch64-uwp-windows-msvc": [ { - "id": "windows_aarch64_msvc 0.42.0", + "id": "windows_aarch64_msvc 0.42.1", "target": "windows_aarch64_msvc" } ], "i686-pc-windows-gnu": [ { - "id": "windows_i686_gnu 0.42.0", + "id": "windows_i686_gnu 0.42.1", "target": "windows_i686_gnu" } ], "i686-pc-windows-msvc": [ { - "id": "windows_i686_msvc 0.42.0", + "id": "windows_i686_msvc 0.42.1", "target": "windows_i686_msvc" } ], "i686-uwp-windows-gnu": [ { - "id": "windows_i686_gnu 0.42.0", + "id": "windows_i686_gnu 0.42.1", "target": "windows_i686_gnu" } ], "i686-uwp-windows-msvc": [ { - "id": "windows_i686_msvc 0.42.0", + "id": "windows_i686_msvc 0.42.1", "target": "windows_i686_msvc" } ], "x86_64-pc-windows-gnu": [ { - "id": "windows_x86_64_gnu 0.42.0", + "id": "windows_x86_64_gnu 0.42.1", "target": "windows_x86_64_gnu" } ], "x86_64-pc-windows-gnullvm": [ { - "id": "windows_x86_64_gnullvm 0.42.0", + "id": "windows_x86_64_gnullvm 0.42.1", "target": "windows_x86_64_gnullvm" } ], "x86_64-pc-windows-msvc": [ { - "id": "windows_x86_64_msvc 0.42.0", + "id": "windows_x86_64_msvc 0.42.1", "target": "windows_x86_64_msvc" } ], "x86_64-uwp-windows-gnu": [ { - "id": "windows_x86_64_gnu 0.42.0", + "id": "windows_x86_64_gnu 0.42.1", "target": "windows_x86_64_gnu" } ], "x86_64-uwp-windows-msvc": [ { - "id": "windows_x86_64_msvc 0.42.0", + "id": "windows_x86_64_msvc 0.42.1", "target": "windows_x86_64_msvc" } ] @@ -9764,13 +10968,13 @@ }, "license": "MIT OR Apache-2.0" }, - "windows_aarch64_gnullvm 0.42.0": { + "windows_aarch64_gnullvm 0.42.1": { "name": "windows_aarch64_gnullvm", - "version": "0.42.0", + "version": "0.42.1", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.42.0/download", - "sha256": "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + "url": "https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.42.1/download", + "sha256": "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" } }, "targets": [ @@ -9807,14 +11011,14 @@ "deps": { "common": [ { - "id": "windows_aarch64_gnullvm 0.42.0", + "id": "windows_aarch64_gnullvm 0.42.1", "target": "build_script_build" } ], "selects": {} }, "edition": "2018", - "version": "0.42.0" + "version": "0.42.1" }, "build_script_attrs": { "data_glob": [ @@ -9823,13 +11027,13 @@ }, "license": "MIT OR Apache-2.0" }, - "windows_aarch64_msvc 0.42.0": { + "windows_aarch64_msvc 0.42.1": { "name": "windows_aarch64_msvc", - "version": "0.42.0", + "version": "0.42.1", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_aarch64_msvc/0.42.0/download", - "sha256": "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + "url": "https://crates.io/api/v1/crates/windows_aarch64_msvc/0.42.1/download", + "sha256": "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" } }, "targets": [ @@ -9866,14 +11070,14 @@ "deps": { "common": [ { - "id": "windows_aarch64_msvc 0.42.0", + "id": "windows_aarch64_msvc 0.42.1", "target": "build_script_build" } ], "selects": {} }, "edition": "2018", - "version": "0.42.0" + "version": "0.42.1" }, "build_script_attrs": { "data_glob": [ @@ -9882,13 +11086,13 @@ }, "license": "MIT OR Apache-2.0" }, - "windows_i686_gnu 0.42.0": { + "windows_i686_gnu 0.42.1": { "name": "windows_i686_gnu", - "version": "0.42.0", + "version": "0.42.1", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_i686_gnu/0.42.0/download", - "sha256": "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + "url": "https://crates.io/api/v1/crates/windows_i686_gnu/0.42.1/download", + "sha256": "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" } }, "targets": [ @@ -9925,14 +11129,14 @@ "deps": { "common": [ { - "id": "windows_i686_gnu 0.42.0", + "id": "windows_i686_gnu 0.42.1", "target": "build_script_build" } ], "selects": {} }, "edition": "2018", - "version": "0.42.0" + "version": "0.42.1" }, "build_script_attrs": { "data_glob": [ @@ -9941,13 +11145,13 @@ }, "license": "MIT OR Apache-2.0" }, - "windows_i686_msvc 0.42.0": { + "windows_i686_msvc 0.42.1": { "name": "windows_i686_msvc", - "version": "0.42.0", + "version": "0.42.1", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_i686_msvc/0.42.0/download", - "sha256": "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + "url": "https://crates.io/api/v1/crates/windows_i686_msvc/0.42.1/download", + "sha256": "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" } }, "targets": [ @@ -9984,14 +11188,14 @@ "deps": { "common": [ { - "id": "windows_i686_msvc 0.42.0", + "id": "windows_i686_msvc 0.42.1", "target": "build_script_build" } ], "selects": {} }, "edition": "2018", - "version": "0.42.0" + "version": "0.42.1" }, "build_script_attrs": { "data_glob": [ @@ -10000,13 +11204,13 @@ }, "license": "MIT OR Apache-2.0" }, - "windows_x86_64_gnu 0.42.0": { + "windows_x86_64_gnu 0.42.1": { "name": "windows_x86_64_gnu", - "version": "0.42.0", + "version": "0.42.1", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_gnu/0.42.0/download", - "sha256": "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + "url": "https://crates.io/api/v1/crates/windows_x86_64_gnu/0.42.1/download", + "sha256": "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" } }, "targets": [ @@ -10043,14 +11247,14 @@ "deps": { "common": [ { - "id": "windows_x86_64_gnu 0.42.0", + "id": "windows_x86_64_gnu 0.42.1", "target": "build_script_build" } ], "selects": {} }, "edition": "2018", - "version": "0.42.0" + "version": "0.42.1" }, "build_script_attrs": { "data_glob": [ @@ -10059,13 +11263,13 @@ }, "license": "MIT OR Apache-2.0" }, - "windows_x86_64_gnullvm 0.42.0": { + "windows_x86_64_gnullvm 0.42.1": { "name": "windows_x86_64_gnullvm", - "version": "0.42.0", + "version": "0.42.1", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.42.0/download", - "sha256": "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + "url": "https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.42.1/download", + "sha256": "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" } }, "targets": [ @@ -10102,14 +11306,14 @@ "deps": { "common": [ { - "id": "windows_x86_64_gnullvm 0.42.0", + "id": "windows_x86_64_gnullvm 0.42.1", "target": "build_script_build" } ], "selects": {} }, "edition": "2018", - "version": "0.42.0" + "version": "0.42.1" }, "build_script_attrs": { "data_glob": [ @@ -10118,13 +11322,13 @@ }, "license": "MIT OR Apache-2.0" }, - "windows_x86_64_msvc 0.42.0": { + "windows_x86_64_msvc 0.42.1": { "name": "windows_x86_64_msvc", - "version": "0.42.0", + "version": "0.42.1", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_msvc/0.42.0/download", - "sha256": "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" + "url": "https://crates.io/api/v1/crates/windows_x86_64_msvc/0.42.1/download", + "sha256": "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" } }, "targets": [ @@ -10161,14 +11365,14 @@ "deps": { "common": [ { - "id": "windows_x86_64_msvc 0.42.0", + "id": "windows_x86_64_msvc 0.42.1", "target": "build_script_build" } ], "selects": {} }, "edition": "2018", - "version": "0.42.0" + "version": "0.42.1" }, "build_script_attrs": { "data_glob": [ @@ -10240,6 +11444,105 @@ }, "license": "MIT" }, + "wiremock 0.5.17": { + "name": "wiremock", + "version": "0.5.17", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/wiremock/0.5.17/download", + "sha256": "12316b50eb725e22b2f6b9c4cbede5b7b89984274d113a7440c86e5c3fc6f99b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wiremock", + "crate_root": "src/lib.rs", + "srcs": { + "include": [ + "**/*.rs" + ], + "exclude": [] + } + } + } + ], + "library_target_name": "wiremock", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "assert-json-diff 2.0.2", + "target": "assert_json_diff" + }, + { + "id": "base64 0.13.1", + "target": "base64" + }, + { + "id": "deadpool 0.9.5", + "target": "deadpool" + }, + { + "id": "futures 0.3.25", + "target": "futures" + }, + { + "id": "futures-timer 3.0.2", + "target": "futures_timer" + }, + { + "id": "http-types 2.12.0", + "target": "http_types" + }, + { + "id": "hyper 0.14.23", + "target": "hyper" + }, + { + "id": "log 0.4.17", + "target": "log" + }, + { + "id": "once_cell 1.17.0", + "target": "once_cell" + }, + { + "id": "regex 1.7.1", + "target": "regex" + }, + { + "id": "serde 1.0.152", + "target": "serde" + }, + { + "id": "serde_json 1.0.91", + "target": "serde_json" + }, + { + "id": "tokio 1.24.2", + "target": "tokio" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "async-trait 0.1.63", + "target": "async_trait" + } + ], + "selects": {} + }, + "version": "0.5.17" + }, + "license": "MIT/Apache-2.0" + }, "xattr 0.2.3": { "name": "xattr", "version": "0.2.3", @@ -10494,7 +11797,7 @@ "target": "build_script_build" }, { - "id": "zstd-sys 2.0.4+zstd.1.5.2", + "id": "zstd-sys 2.0.5+zstd.1.5.2", "target": "zstd_sys" } ], @@ -10510,13 +11813,13 @@ }, "license": "MIT/Apache-2.0" }, - "zstd-sys 2.0.4+zstd.1.5.2": { + "zstd-sys 2.0.5+zstd.1.5.2": { "name": "zstd-sys", - "version": "2.0.4+zstd.1.5.2", + "version": "2.0.5+zstd.1.5.2", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/zstd-sys/2.0.4+zstd.1.5.2/download", - "sha256": "4fa202f2ef00074143e219d15b62ffc317d17cc33909feac471c044087cad7b0" + "url": "https://crates.io/api/v1/crates/zstd-sys/2.0.5+zstd.1.5.2/download", + "sha256": "edc50ffce891ad571e9f9afe5039c4837bede781ac4bb13052ed7ae695518596" } }, "targets": [ @@ -10562,14 +11865,14 @@ "target": "libc" }, { - "id": "zstd-sys 2.0.4+zstd.1.5.2", + "id": "zstd-sys 2.0.5+zstd.1.5.2", "target": "build_script_build" } ], "selects": {} }, "edition": "2018", - "version": "2.0.4+zstd.1.5.2" + "version": "2.0.5+zstd.1.5.2" }, "build_script_attrs": { "data_glob": [ @@ -10580,6 +11883,10 @@ { "id": "cc 1.0.78", "target": "cc" + }, + { + "id": "pkg-config 0.3.26", + "target": "pkg_config" } ], "selects": {} @@ -10590,14 +11897,14 @@ } }, "binary_crates": [ - "assert_cmd 2.0.7", + "assert_cmd 2.0.8", "cc 1.0.78", - "clap 4.0.32", + "clap 4.1.3", "wait-timeout 0.2.0", "webpki-roots 0.22.6" ], "workspace_members": { - "selenium-manager 1.0.0-M2": "rust" + "selenium-manager 1.0.0-M3": "rust" }, "conditions": { "aarch64-apple-darwin": [ @@ -10838,6 +12145,34 @@ "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu" ], + "cfg(not(target_os = \"emscripten\"))": [ + "aarch64-apple-darwin", + "aarch64-apple-ios", + "aarch64-apple-ios-sim", + "aarch64-linux-android", + "aarch64-pc-windows-msvc", + "aarch64-unknown-linux-gnu", + "arm-unknown-linux-gnueabi", + "armv7-linux-androideabi", + "armv7-unknown-linux-gnueabi", + "i686-apple-darwin", + "i686-linux-android", + "i686-pc-windows-msvc", + "i686-unknown-freebsd", + "i686-unknown-linux-gnu", + "powerpc-unknown-linux-gnu", + "riscv32imc-unknown-none-elf", + "riscv64gc-unknown-none-elf", + "s390x-unknown-linux-gnu", + "wasm32-unknown-unknown", + "wasm32-wasi", + "x86_64-apple-darwin", + "x86_64-apple-ios", + "x86_64-linux-android", + "x86_64-pc-windows-msvc", + "x86_64-unknown-freebsd", + "x86_64-unknown-linux-gnu" + ], "cfg(not(windows))": [ "aarch64-apple-darwin", "aarch64-apple-ios", @@ -10869,6 +12204,7 @@ ], "cfg(target_feature = \"atomics\")": [], "cfg(target_os = \"dragonfly\")": [], + "cfg(target_os = \"emscripten\")": [], "cfg(target_os = \"hermit\")": [], "cfg(target_os = \"redox\")": [], "cfg(target_os = \"wasi\")": [ diff --git a/rust/Cargo.lock b/rust/Cargo.lock index f0b8e5bea38b9..00e7a92ab63e6 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -29,11 +29,27 @@ dependencies = [ "memchr", ] +[[package]] +name = "anyhow" +version = "1.0.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" + +[[package]] +name = "assert-json-diff" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "assert_cmd" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa3d466004a8b4cb1bc34044240a2fd29d17607e2e3bd613eb44fd48e8100da3" +checksum = "9834fcc22e0874394a010230586367d4a3e9f11b560f469262678547e1d2575e" dependencies = [ "bstr", "doc-comment", @@ -43,6 +59,28 @@ dependencies = [ "wait-timeout", ] +[[package]] +name = "async-channel" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-trait" +version = "0.1.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff18d764974428cf3a9328e23fc5c986f5fbed46e6cd4cdf42544df5d297ec1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -55,6 +93,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" + [[package]] name = "base64ct" version = "1.5.3" @@ -90,9 +134,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" [[package]] name = "byteorder" @@ -164,9 +208,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.0.32" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39" +checksum = "d8d93d855ce6a0aa87b8473ef9169482f40abaa2e9e0993024c35c902cbd5920" dependencies = [ "bitflags", "clap_derive", @@ -179,9 +223,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.0.21" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" +checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8" dependencies = [ "heck", "proc-macro-error", @@ -192,13 +236,22 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" +checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade" dependencies = [ "os_str_bytes", ] +[[package]] +name = "concurrent-queue" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -242,6 +295,25 @@ dependencies = [ "typenum", ] +[[package]] +name = "deadpool" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e" +dependencies = [ + "async-trait", + "deadpool-runtime", + "num_cpus", + "retain_mut", + "tokio", +] + +[[package]] +name = "deadpool-runtime" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaa37046cc0f6c3cc6090fbdbf73ef0b8ef4cfcc37f6befc0020f63e8cf121e1" + [[package]] name = "difflib" version = "0.4.0" @@ -334,6 +406,12 @@ dependencies = [ "libc", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + [[package]] name = "exitcode" version = "1.1.2" @@ -434,6 +512,21 @@ version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +[[package]] +name = "futures-lite" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + [[package]] name = "futures-macro" version = "0.3.25" @@ -491,6 +584,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + [[package]] name = "getrandom" version = "0.2.8" @@ -499,7 +603,7 @@ checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] @@ -573,6 +677,27 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-types" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" +dependencies = [ + "anyhow", + "async-channel", + "base64 0.13.1", + "futures-lite", + "http", + "infer 0.2.3", + "pin-project-lite", + "rand", + "serde", + "serde_json", + "serde_qs", + "serde_urlencoded", + "url", +] + [[package]] name = "httparse" version = "1.8.0" @@ -648,6 +773,12 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "infer" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" + [[package]] name = "infer" version = "0.12.0" @@ -668,9 +799,9 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c" +checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e" dependencies = [ "libc", "windows-sys", @@ -678,9 +809,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e" +checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" [[package]] name = "is-terminal" @@ -777,7 +908,7 @@ checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" dependencies = [ "libc", "log", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys", ] @@ -809,6 +940,12 @@ version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +[[package]] +name = "parking" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" + [[package]] name = "password-hash" version = "0.4.2" @@ -816,7 +953,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" dependencies = [ "base64ct", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -856,6 +993,12 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "predicates" version = "2.1.5" @@ -909,9 +1052,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.49" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" +checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" dependencies = [ "unicode-ident", ] @@ -925,12 +1068,53 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + [[package]] name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -946,16 +1130,16 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom", + "getrandom 0.2.8", "redox_syscall", "thiserror", ] [[package]] name = "regex" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" dependencies = [ "aho-corasick", "memchr", @@ -985,11 +1169,11 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.13" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" +checksum = "21eed90ec8570952d53b772ecf8f206aa1ec9a3d76b2521c56c42973f2d91ee9" dependencies = [ - "base64", + "base64 0.21.0", "bytes", "encoding_rs", "futures-core", @@ -1022,6 +1206,12 @@ dependencies = [ "winreg", ] +[[package]] +name = "retain_mut" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" + [[package]] name = "ring" version = "0.16.20" @@ -1074,9 +1264,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.6" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4feacf7db682c6c329c4ede12649cd36ecab0f3be5b7d74e6a20304725db4549" +checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" dependencies = [ "bitflags", "errno", @@ -1088,9 +1278,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.7" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" dependencies = [ "log", "ring", @@ -1100,11 +1290,11 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" +checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64", + "base64 0.21.0", ] [[package]] @@ -1125,7 +1315,7 @@ dependencies = [ [[package]] name = "selenium-manager" -version = "1.0.0-M2" +version = "1.0.0-M3" dependencies = [ "assert_cmd", "clap", @@ -1133,7 +1323,7 @@ dependencies = [ "env_logger", "exitcode", "flate2", - "infer", + "infer 0.12.0", "log", "regex", "reqwest", @@ -1143,6 +1333,7 @@ dependencies = [ "tar", "tempfile", "tokio", + "wiremock", "zip", ] @@ -1183,6 +1374,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_qs" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" +dependencies = [ + "percent-encoding", + "serde", + "thiserror", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -1292,9 +1494,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] @@ -1369,9 +1571,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.24.1" +version = "1.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9f76183f91ecfb55e1d7d5602bd1d979e38a3a522fe900241cf195624d67ae" +checksum = "597a12a59981d9e3c38d216785b0c37399f6e415e8d0712047620f189371b0bb" dependencies = [ "autocfg", "bytes", @@ -1461,9 +1663,9 @@ checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" [[package]] name = "unicode-ident" @@ -1495,6 +1697,7 @@ dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -1518,6 +1721,12 @@ dependencies = [ "libc", ] +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + [[package]] name = "want" version = "0.3.0" @@ -1528,6 +1737,12 @@ dependencies = [ "try-lock", ] +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -1677,45 +1892,45 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" [[package]] name = "windows_aarch64_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" [[package]] name = "windows_i686_gnu" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" [[package]] name = "windows_i686_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" [[package]] name = "windows_x86_64_gnu" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" [[package]] name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" [[package]] name = "winreg" @@ -1726,6 +1941,28 @@ dependencies = [ "winapi", ] +[[package]] +name = "wiremock" +version = "0.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12316b50eb725e22b2f6b9c4cbede5b7b89984274d113a7440c86e5c3fc6f99b" +dependencies = [ + "assert-json-diff", + "async-trait", + "base64 0.13.1", + "deadpool", + "futures", + "futures-timer", + "http-types", + "hyper", + "log", + "once_cell", + "regex", + "serde", + "serde_json", + "tokio", +] + [[package]] name = "xattr" version = "0.2.3" @@ -1776,10 +2013,11 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.4+zstd.1.5.2" +version = "2.0.5+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa202f2ef00074143e219d15b62ffc317d17cc33909feac471c044087cad7b0" +checksum = "edc50ffce891ad571e9f9afe5039c4837bede781ac4bb13052ed7ae695518596" dependencies = [ "cc", "libc", + "pkg-config", ] diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 2a22605001818..54237feb28b00 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "selenium-manager" -version = "1.0.0-M2" +version = "1.0.0-M3" edition = "2021" authors = ["Selenium Browser path (absolute) for browser version detection (e.g., /usr/bin/google-chrome, "/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome", "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe") + -p, --proxy + HTTP proxy for network connection (e.g., https://myproxy.net:8080) + -t, --timeout + Timeout for network requests (in seconds) [default: 120] -D, --debug Display DEBUG messages -T, --trace diff --git a/rust/src/chrome.rs b/rust/src/chrome.rs index 5e11b3bc10b85..1e6fb90b1cbd1 100644 --- a/rust/src/chrome.rs +++ b/rust/src/chrome.rs @@ -24,7 +24,8 @@ use std::path::PathBuf; use crate::config::ARCH::ARM64; use crate::config::OS::{LINUX, MACOS, WINDOWS}; use crate::downloads::read_content_from_link; -use crate::files::{compose_driver_path_in_cache, BrowserPath}; +use crate::files::{compose_driver_path_in_cache, BrowserPath, PARSE_ERROR}; +use crate::logger::Logger; use crate::metadata::{ create_driver_metadata, get_driver_version_from_metadata, get_metadata, write_metadata, }; @@ -44,6 +45,7 @@ pub struct ChromeManager { pub driver_name: &'static str, pub config: ManagerConfig, pub http_client: Client, + pub log: Logger, } impl ChromeManager { @@ -53,6 +55,7 @@ impl ChromeManager { driver_name: DRIVER_NAME, config: ManagerConfig::default(), http_client: create_default_http_client(), + log: Logger::default(), }) } } @@ -66,6 +69,10 @@ impl SeleniumManager for ChromeManager { &self.http_client } + fn set_http_client(&mut self, http_client: Client) { + self.http_client = http_client; + } + fn get_browser_path_map(&self) -> HashMap { HashMap::from([ ( @@ -132,14 +139,11 @@ impl SeleniumManager for ChromeManager { } else { commands = vec![self.format_one_arg(WMIC_COMMAND, browser_path)]; } - let (shell, flag, args) = if WINDOWS.is(self.get_os()) { - ("cmd", "/C", commands) + let (shell, flag) = self.get_shell_command(); + let args = if WINDOWS.is(self.get_os()) { + commands } else { - ( - "sh", - "-c", - vec![self.format_one_arg(DASH_DASH_VERSION, browser_path)], - ) + vec![self.format_one_arg(DASH_DASH_VERSION, browser_path)] }; self.detect_browser_version(shell, flag, args) } @@ -150,15 +154,15 @@ impl SeleniumManager for ChromeManager { fn request_driver_version(&self) -> Result> { let browser_version = self.get_browser_version(); - let mut metadata = get_metadata(); + let mut metadata = get_metadata(self.get_logger()); match get_driver_version_from_metadata(&metadata.drivers, self.driver_name, browser_version) { Some(driver_version) => { - log::trace!( + self.log.trace(format!( "Driver TTL is valid. Getting {} version from metadata", &self.driver_name - ); + )); Ok(driver_version) } _ => { @@ -173,22 +177,27 @@ impl SeleniumManager for ChromeManager { if !browser_version.is_empty() && browser_version_int <= 0 { break; } - log::debug!("Reading {} version from {}", &self.driver_name, driver_url); - let content = read_content_from_link(self.get_http_client(), driver_url); - match content { + self.log.debug(format!( + "Reading {} version from {}", + &self.driver_name, driver_url + )); + match read_content_from_link(self.get_http_client(), driver_url) { Ok(version) => { driver_version = version; break; } - _ => { - log::warn!( + Err(err) => { + if !err.to_string().eq(PARSE_ERROR) { + return Err(err); + } + self.log.warn(format!( "Error getting version of {} {}. Retrying with {} {} (attempt {}/{})", &self.driver_name, browser_version_int, &self.driver_name, browser_version_int - 1, i + 1, FALLBACK_RETRIES - ); + )); browser_version_int -= 1; } } @@ -199,7 +208,7 @@ impl SeleniumManager for ChromeManager { self.driver_name, &driver_version, )); - write_metadata(&metadata); + write_metadata(&metadata, self.get_logger()); } Ok(driver_version) } @@ -262,4 +271,12 @@ impl SeleniumManager for ChromeManager { fn set_config(&mut self, config: ManagerConfig) { self.config = config; } + + fn get_logger(&self) -> &Logger { + &self.log + } + + fn set_logger(&mut self, log: Logger) { + self.log = log; + } } diff --git a/rust/src/config.rs b/rust/src/config.rs index 3785f060489a7..afdf103c305fd 100644 --- a/rust/src/config.rs +++ b/rust/src/config.rs @@ -16,6 +16,7 @@ // under the License. use crate::config::OS::{LINUX, MACOS, WINDOWS}; +use crate::REQUEST_TIMEOUT_SEC; use std::env::consts::{ARCH, OS}; pub struct ManagerConfig { @@ -24,6 +25,8 @@ pub struct ManagerConfig { pub os: String, pub arch: String, pub browser_path: String, + pub proxy: String, + pub timeout: u64, } impl ManagerConfig { @@ -34,6 +37,8 @@ impl ManagerConfig { os: OS.to_string(), arch: ARCH.to_string(), browser_path: "".to_string(), + proxy: "".to_string(), + timeout: REQUEST_TIMEOUT_SEC, } } @@ -45,6 +50,8 @@ impl ManagerConfig { os: config.os.as_str().to_string(), arch: config.arch.as_str().to_string(), browser_path: config.browser_path.as_str().to_string(), + proxy: config.proxy.as_str().to_string(), + timeout: config.timeout, } } } diff --git a/rust/src/downloads.rs b/rust/src/downloads.rs index bf206927be459..bfface458c1ca 100644 --- a/rust/src/downloads.rs +++ b/rust/src/downloads.rs @@ -24,18 +24,20 @@ use std::io::Cursor; use tempfile::{Builder, TempDir}; use crate::files::parse_version; +use crate::Logger; #[tokio::main] pub async fn download_driver_to_tmp_folder( http_client: &Client, url: String, + log: &Logger, ) -> Result<(TempDir, String), Box> { let tmp_dir = Builder::new().prefix("selenium-manager").tempdir()?; - log::trace!( + log.trace(format!( "Downloading {} to temporal folder {:?}", url, tmp_dir.path() - ); + )); let response = http_client.get(url).send().await?; let target_path; @@ -47,11 +49,14 @@ pub async fn download_driver_to_tmp_folder( .and_then(|name| if name.is_empty() { None } else { Some(name) }) .unwrap_or("tmp.bin"); - log::trace!("File to be downloaded: {}", target_name); + log.trace(format!("File to be downloaded: {}", target_name)); let target_name = tmp_dir.path().join(target_name); target_path = String::from(target_name.to_str().unwrap()); - log::trace!("Temporal folder for driver package: {}", target_path); + log.trace(format!( + "Temporal folder for driver package: {}", + target_path + )); File::create(target_name)? }; let mut content = Cursor::new(response.bytes().await?); diff --git a/rust/src/edge.rs b/rust/src/edge.rs index 7affeb66fad44..987d1e4258a45 100644 --- a/rust/src/edge.rs +++ b/rust/src/edge.rs @@ -29,9 +29,9 @@ use crate::metadata::{ create_driver_metadata, get_driver_version_from_metadata, get_metadata, write_metadata, }; use crate::{ - create_default_http_client, SeleniumManager, BETA, DASH_DASH_VERSION, DEV, ENV_LOCALAPPDATA, - ENV_PROGRAM_FILES, ENV_PROGRAM_FILES_X86, NIGHTLY, REG_QUERY, STABLE, WMIC_COMMAND, - WMIC_COMMAND_ENV, + create_default_http_client, Logger, SeleniumManager, BETA, DASH_DASH_VERSION, DEV, + ENV_LOCALAPPDATA, ENV_PROGRAM_FILES, ENV_PROGRAM_FILES_X86, NIGHTLY, REG_QUERY, STABLE, + WMIC_COMMAND, WMIC_COMMAND_ENV, }; const BROWSER_NAME: &str = "edge"; @@ -45,6 +45,7 @@ pub struct EdgeManager { pub driver_name: &'static str, pub config: ManagerConfig, pub http_client: Client, + pub log: Logger, } impl EdgeManager { @@ -54,6 +55,7 @@ impl EdgeManager { driver_name: DRIVER_NAME, config: ManagerConfig::default(), http_client: create_default_http_client(), + log: Logger::default(), }) } } @@ -67,6 +69,10 @@ impl SeleniumManager for EdgeManager { &self.http_client } + fn set_http_client(&mut self, http_client: Client) { + self.http_client = http_client; + } + fn get_browser_path_map(&self) -> HashMap { HashMap::from([ ( @@ -133,14 +139,11 @@ impl SeleniumManager for EdgeManager { } else { commands = vec![self.format_one_arg(WMIC_COMMAND, browser_path)]; } - let (shell, flag, args) = if WINDOWS.is(self.get_os()) { - ("cmd", "/C", commands) + let (shell, flag) = self.get_shell_command(); + let args = if WINDOWS.is(self.get_os()) { + commands } else { - ( - "sh", - "-c", - vec![self.format_one_arg(DASH_DASH_VERSION, browser_path)], - ) + vec![self.format_one_arg(DASH_DASH_VERSION, browser_path)] }; self.detect_browser_version(shell, flag, args) } @@ -151,15 +154,15 @@ impl SeleniumManager for EdgeManager { fn request_driver_version(&self) -> Result> { let browser_version = self.get_browser_version(); - let mut metadata = get_metadata(); + let mut metadata = get_metadata(self.get_logger()); match get_driver_version_from_metadata(&metadata.drivers, self.driver_name, browser_version) { Some(driver_version) => { - log::trace!( + self.log.trace(format!( "Driver TTL is valid. Getting {} version from metadata", &self.driver_name - ); + )); Ok(driver_version) } _ => { @@ -174,7 +177,10 @@ impl SeleniumManager for EdgeManager { self.get_os().to_uppercase() ) }; - log::debug!("Reading {} version from {}", &self.driver_name, driver_url); + self.log.debug(format!( + "Reading {} version from {}", + &self.driver_name, driver_url + )); let driver_version = read_content_from_link(self.get_http_client(), driver_url)?; if !browser_version.is_empty() { @@ -183,7 +189,7 @@ impl SeleniumManager for EdgeManager { self.driver_name, &driver_version, )); - write_metadata(&metadata); + write_metadata(&metadata, self.get_logger()); } Ok(driver_version) @@ -249,4 +255,12 @@ impl SeleniumManager for EdgeManager { fn set_config(&mut self, config: ManagerConfig) { self.config = config; } + + fn get_logger(&self) -> &Logger { + &self.log + } + + fn set_logger(&mut self, log: Logger) { + self.log = log; + } } diff --git a/rust/src/files.rs b/rust/src/files.rs index ae270b11e10d9..9ed447f202fe1 100644 --- a/rust/src/files.rs +++ b/rust/src/files.rs @@ -30,7 +30,9 @@ use tar::Archive; use zip::ZipArchive; use crate::config::OS::WINDOWS; +use crate::Logger; +pub const PARSE_ERROR: &str = "Wrong browser/driver version"; const CACHE_FOLDER: &str = ".cache/selenium"; const ZIP: &str = "zip"; const GZ: &str = "gz"; @@ -57,20 +59,24 @@ pub fn create_path_if_not_exists(path: &Path) { } } -pub fn uncompress(compressed_file: &String, target: PathBuf) -> Result<(), Box> { +pub fn uncompress( + compressed_file: &String, + target: PathBuf, + log: &Logger, +) -> Result<(), Box> { let file = File::open(compressed_file)?; let kind = infer::get_from_path(compressed_file)? .ok_or(format!("Format for file {:?} cannot be inferred", file))?; let extension = kind.extension(); - log::trace!( + log.trace(format!( "The detected extension of the compressed file is {}", extension - ); + )); if extension.eq_ignore_ascii_case(ZIP) { - unzip(file, target)? + unzip(file, target, log)? } else if extension.eq_ignore_ascii_case(GZ) { - untargz(file, target)? + untargz(file, target, log)? } else if extension.eq_ignore_ascii_case(XML) { return Err("Wrong browser/driver version".into()); } else { @@ -83,8 +89,8 @@ pub fn uncompress(compressed_file: &String, target: PathBuf) -> Result<(), Box Result<(), Box> { - log::trace!("Untargz file to {}", target.display()); +pub fn untargz(file: File, target: PathBuf, log: &Logger) -> Result<(), Box> { + log.trace(format!("Untargz file to {}", target.display())); let tar = GzDecoder::new(&file); let mut archive = Archive::new(tar); let parent_path = target @@ -96,8 +102,8 @@ pub fn untargz(file: File, target: PathBuf) -> Result<(), Box> { Ok(()) } -pub fn unzip(file: File, target: PathBuf) -> Result<(), Box> { - log::trace!("Unzipping file to {}", target.display()); +pub fn unzip(file: File, target: PathBuf, log: &Logger) -> Result<(), Box> { + log.trace(format!("Unzipping file to {}", target.display())); let mut archive = ZipArchive::new(file)?; for i in 0..archive.len() { @@ -107,11 +113,11 @@ pub fn unzip(file: File, target: PathBuf) -> Result<(), Box> { } let target_file_name = target.file_name().unwrap().to_str().unwrap(); if target_file_name.eq_ignore_ascii_case(file.name()) { - log::debug!( + log.debug(format!( "File extracted to {} ({} bytes)", target.display(), file.size() - ); + )); if let Some(p) = target.parent() { create_path_if_not_exists(p); } @@ -175,8 +181,16 @@ pub fn get_binary_extension(os: &str) -> &str { pub fn parse_version(version_text: String) -> Result> { if version_text.to_ascii_lowercase().contains("error") { - return Err("Wrong browser/driver version".into()); + return Err(PARSE_ERROR.into()); + } + let mut parsed_version = "".to_string(); + let re_numbers_dots = Regex::new(r"[^\d^.]")?; + let re_versions = Regex::new(r"(?:(\d+)\.)?(?:(\d+)\.)?(?:(\d+)\.\d+)")?; + for token in version_text.split(' ') { + parsed_version = re_numbers_dots.replace_all(token, "").to_string(); + if re_versions.is_match(parsed_version.as_str()) { + break; + } } - let re = Regex::new(r"[^\d^.]").unwrap(); - Ok(re.replace_all(&version_text, "").to_string()) + Ok(parsed_version) } diff --git a/rust/src/firefox.rs b/rust/src/firefox.rs index ec908af80fedf..29e7ce424376a 100644 --- a/rust/src/firefox.rs +++ b/rust/src/firefox.rs @@ -29,8 +29,8 @@ use crate::metadata::{ create_driver_metadata, get_driver_version_from_metadata, get_metadata, write_metadata, }; use crate::{ - create_default_http_client, SeleniumManager, BETA, DASH_VERSION, DEV, ENV_PROGRAM_FILES, - ENV_PROGRAM_FILES_X86, NIGHTLY, STABLE, WMIC_COMMAND, WMIC_COMMAND_ENV, + create_default_http_client, Logger, SeleniumManager, BETA, DASH_VERSION, DEV, + ENV_PROGRAM_FILES, ENV_PROGRAM_FILES_X86, NIGHTLY, STABLE, WMIC_COMMAND, WMIC_COMMAND_ENV, }; const BROWSER_NAME: &str = "firefox"; @@ -43,6 +43,7 @@ pub struct FirefoxManager { pub driver_name: &'static str, pub config: ManagerConfig, pub http_client: Client, + pub log: Logger, } impl FirefoxManager { @@ -52,6 +53,7 @@ impl FirefoxManager { driver_name: DRIVER_NAME, config: ManagerConfig::default(), http_client: create_default_http_client(), + log: Logger::default(), }) } } @@ -65,6 +67,10 @@ impl SeleniumManager for FirefoxManager { &self.http_client } + fn set_http_client(&mut self, http_client: Client) { + self.http_client = http_client; + } + fn get_browser_path_map(&self) -> HashMap { HashMap::from([ ( @@ -123,14 +129,11 @@ impl SeleniumManager for FirefoxManager { } else { commands = vec![self.format_one_arg(WMIC_COMMAND, browser_path)]; } - let (shell, flag, args) = if WINDOWS.is(self.get_os()) { - ("cmd", "/C", commands) + let (shell, flag) = self.get_shell_command(); + let args = if WINDOWS.is(self.get_os()) { + commands } else { - ( - "sh", - "-c", - vec![self.format_one_arg(DASH_VERSION, browser_path)], - ) + vec![self.format_one_arg(DASH_VERSION, browser_path)] }; self.detect_browser_version(shell, flag, args) } @@ -141,15 +144,15 @@ impl SeleniumManager for FirefoxManager { fn request_driver_version(&self) -> Result> { let browser_version = self.get_browser_version(); - let mut metadata = get_metadata(); + let mut metadata = get_metadata(self.get_logger()); match get_driver_version_from_metadata(&metadata.drivers, self.driver_name, browser_version) { Some(driver_version) => { - log::trace!( + self.log.trace(format!( "Driver TTL is valid. Getting {} version from metadata", &self.driver_name - ); + )); Ok(driver_version) } _ => { @@ -162,7 +165,7 @@ impl SeleniumManager for FirefoxManager { self.driver_name, &driver_version, )); - write_metadata(&metadata); + write_metadata(&metadata, self.get_logger()); } Ok(driver_version) @@ -248,6 +251,14 @@ impl SeleniumManager for FirefoxManager { fn set_config(&mut self, config: ManagerConfig) { self.config = config; } + + fn get_logger(&self) -> &Logger { + &self.log + } + + fn set_logger(&mut self, log: Logger) { + self.log = log; + } } #[cfg(test)] diff --git a/rust/src/iexplorer.rs b/rust/src/iexplorer.rs index afe247cd01813..85c301f77af62 100644 --- a/rust/src/iexplorer.rs +++ b/rust/src/iexplorer.rs @@ -24,7 +24,7 @@ use std::path::PathBuf; use crate::downloads::read_redirect_from_link; use crate::files::{compose_driver_path_in_cache, BrowserPath}; -use crate::{create_default_http_client, SeleniumManager}; +use crate::{create_default_http_client, Logger, SeleniumManager}; use crate::metadata::{ create_driver_metadata, get_driver_version_from_metadata, get_metadata, write_metadata, @@ -40,6 +40,7 @@ pub struct IExplorerManager { pub driver_name: &'static str, pub config: ManagerConfig, pub http_client: Client, + pub log: Logger, } impl IExplorerManager { @@ -49,6 +50,7 @@ impl IExplorerManager { driver_name: DRIVER_NAME, config: ManagerConfig::default(), http_client: create_default_http_client(), + log: Logger::default(), }) } } @@ -62,6 +64,10 @@ impl SeleniumManager for IExplorerManager { &self.http_client } + fn set_http_client(&mut self, http_client: Client) { + self.http_client = http_client; + } + fn get_browser_path_map(&self) -> HashMap { HashMap::new() } @@ -76,15 +82,15 @@ impl SeleniumManager for IExplorerManager { fn request_driver_version(&self) -> Result> { let browser_version = self.get_browser_version(); - let mut metadata = get_metadata(); + let mut metadata = get_metadata(self.get_logger()); match get_driver_version_from_metadata(&metadata.drivers, self.driver_name, browser_version) { Some(driver_version) => { - log::trace!( + self.log.trace(format!( "Driver TTL is valid. Getting {} version from metadata", &self.driver_name - ); + )); Ok(driver_version) } _ => { @@ -97,7 +103,7 @@ impl SeleniumManager for IExplorerManager { self.driver_name, &driver_version, )); - write_metadata(&metadata); + write_metadata(&metadata, self.get_logger()); } Ok(driver_version) @@ -130,4 +136,12 @@ impl SeleniumManager for IExplorerManager { fn set_config(&mut self, config: ManagerConfig) { self.config = config; } + + fn get_logger(&self) -> &Logger { + &self.log + } + + fn set_logger(&mut self, log: Logger) { + self.log = log; + } } diff --git a/rust/src/lib.rs b/rust/src/lib.rs index f99cec9b94944..f5a6b13daf017 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -22,15 +22,18 @@ use crate::firefox::FirefoxManager; use crate::iexplorer::IExplorerManager; use std::fs; +use crate::config::OS::WINDOWS; use crate::config::{str_to_os, ManagerConfig}; -use reqwest::Client; +use reqwest::{Client, ClientBuilder, Proxy}; use std::collections::HashMap; use std::error::Error; use std::path::PathBuf; use std::process::Command; +use std::time::Duration; use crate::downloads::download_driver_to_tmp_folder; use crate::files::{parse_version, uncompress, BrowserPath}; +use crate::logger::Logger; use crate::metadata::{ create_browser_metadata, get_browser_version_from_metadata, get_metadata, write_metadata, }; @@ -42,8 +45,10 @@ pub mod edge; pub mod files; pub mod firefox; pub mod iexplorer; +pub mod logger; pub mod metadata; +pub const REQUEST_TIMEOUT_SEC: u64 = 120; // The timeout is applied from when the request starts connecting until the response body has finished pub const STABLE: &str = "stable"; pub const BETA: &str = "beta"; pub const DEV: &str = "dev"; @@ -58,6 +63,8 @@ pub const ENV_PROGRAM_FILES: &str = "PROGRAMFILES"; pub const ENV_PROGRAM_FILES_X86: &str = "PROGRAMFILES(X86)"; pub const ENV_LOCALAPPDATA: &str = "LOCALAPPDATA"; pub const FALLBACK_RETRIES: u32 = 5; +pub const WHERE_COMMAND: &str = "where {}"; +pub const WHICH_COMMAND: &str = "which {}"; pub trait SeleniumManager { // ---------------------------------------------------------- @@ -68,6 +75,8 @@ pub trait SeleniumManager { fn get_http_client(&self) -> &Client; + fn set_http_client(&mut self, http_client: Client); + fn get_browser_path_map(&self) -> HashMap; fn discover_browser_version(&self) -> Option; @@ -84,17 +93,22 @@ pub trait SeleniumManager { fn set_config(&mut self, config: ManagerConfig); + fn get_logger(&self) -> &Logger; + + fn set_logger(&mut self, log: Logger); + // ---------------------------------------------------------- // Shared functions // ---------------------------------------------------------- fn download_driver(&self) -> Result<(), Box> { let driver_url = Self::get_driver_url(self)?; - log::debug!("Driver URL: {}", driver_url); + self.get_logger() + .debug(format!("Driver URL: {}", driver_url)); let (_tmp_folder, driver_zip_file) = - download_driver_to_tmp_folder(self.get_http_client(), driver_url)?; + download_driver_to_tmp_folder(self.get_http_client(), driver_url, self.get_logger())?; let driver_path_in_cache = Self::get_driver_path_in_cache(self); - uncompress(&driver_zip_file, driver_path_in_cache) + uncompress(&driver_zip_file, driver_path_in_cache, self.get_logger()) } fn detect_browser_path(&self) -> Option<&str> { @@ -110,19 +124,22 @@ pub trait SeleniumManager { } fn detect_browser_version(&self, shell: &str, flag: &str, args: Vec) -> Option { - let mut metadata = get_metadata(); + let mut metadata = get_metadata(self.get_logger()); let browser_name = &self.get_browser_name(); match get_browser_version_from_metadata(&metadata.browsers, browser_name) { Some(version) => { - log::trace!( + self.get_logger().trace(format!( "Browser with valid TTL. Getting {} version from metadata", browser_name - ); + )); Some(version) } _ => { - log::debug!("Using shell command to find out {} version", browser_name); + self.get_logger().debug(format!( + "Using shell command to find out {} version", + browser_name + )); let mut browser_version = "".to_string(); for arg in args.iter() { let output = match self.run_shell_command(shell, flag, arg.to_string()) { @@ -133,11 +150,10 @@ pub trait SeleniumManager { if full_browser_version.is_empty() { continue; } - log::debug!( + self.get_logger().debug(format!( "The version of {} is {}", - browser_name, - full_browser_version - ); + browser_name, full_browser_version + )); match self.get_major_version(&full_browser_version) { Ok(v) => browser_version = v, Err(_) => return None, @@ -148,7 +164,7 @@ pub trait SeleniumManager { metadata .browsers .push(create_browser_metadata(browser_name, &browser_version)); - write_metadata(&metadata); + write_metadata(&metadata, self.get_logger()); if !browser_version.is_empty() { Some(browser_version) } else { @@ -163,32 +179,86 @@ pub trait SeleniumManager { if browser_version.is_empty() || self.is_browser_version_unstable() { match self.discover_browser_version() { Some(version) => { - log::debug!("Detected browser: {} {}", self.get_browser_name(), version); + self.get_logger().debug(format!( + "Detected browser: {} {}", + self.get_browser_name(), + version + )); self.set_browser_version(version); } None => { if self.is_browser_version_unstable() { return Err(format!("Browser version '{browser_version}' not found")); } else { - log::debug!( + self.get_logger().debug(format!( "The version of {} cannot be detected. Trying with latest driver version", self.get_browser_name() - ); + )); } } } } - let driver_version = self - .request_driver_version() - .unwrap_or_else(|err| err.to_string()); - log::debug!( + let driver_version = match self.request_driver_version() { + Ok(version) => { + if version.is_empty() { + return Err(format!( + "The {} version cannot be discovered", + self.get_driver_name() + )); + } + version + } + Err(err) => { + return Err(err.to_string()); + } + }; + self.get_logger().debug(format!( "Required driver: {} {}", self.get_driver_name(), driver_version - ); + )); Ok(driver_version) } + fn find_driver_in_path(&self) -> (Option, Option) { + let (shell, flag) = self.get_shell_command(); + match self.run_shell_command( + shell, + flag, + self.format_one_arg(DASH_DASH_VERSION, self.get_driver_name()), + ) { + Ok(output) => { + let parsed_version = parse_version(output).unwrap_or_default(); + if !parsed_version.is_empty() { + let which_command = if WINDOWS.is(self.get_os()) { + WHERE_COMMAND + } else { + WHICH_COMMAND + }; + let driver_path = match self.run_shell_command( + shell, + flag, + self.format_one_arg(which_command, self.get_driver_name()), + ) { + Ok(path) => Some(path), + Err(_) => None, + }; + return (Some(parsed_version), driver_path); + } + (None, None) + } + Err(_) => (None, None), + } + } + + fn get_shell_command(&self) -> (&str, &str) { + if WINDOWS.is(self.get_os()) { + ("cmd", "/C") + } else { + ("sh", "-c") + } + } + fn is_browser_version_unstable(&self) -> bool { let browser_version = self.get_browser_version(); browser_version.eq_ignore_ascii_case(BETA) @@ -203,13 +273,34 @@ pub trait SeleniumManager { self.set_driver_version(driver_version); } + let (in_path_driver_version, in_path_driver_path) = self.find_driver_in_path(); + if let (Some(found_driver_version), Some(found_driver_path)) = + (in_path_driver_version, in_path_driver_path) + { + if found_driver_version.eq(self.get_driver_version()) { + self.get_logger().debug(format!( + "Found {} {} in PATH: {}", + self.get_driver_name(), + found_driver_version, + found_driver_path + )); + return Ok(PathBuf::from(found_driver_path)); + } else { + self.get_logger().warn(format!( + "Incompatible release of {} (version {}) detected in PATH: {}", + self.get_driver_name(), + found_driver_version, + found_driver_path + )); + } + } let driver_path = self.get_driver_path_in_cache(); if driver_path.exists() { - log::debug!( + self.get_logger().debug(format!( "{} {} already in the cache", self.get_driver_name(), self.get_driver_version() - ); + )); } else { self.download_driver()?; } @@ -222,11 +313,15 @@ pub trait SeleniumManager { flag: &str, args: String, ) -> Result> { - log::debug!("Running {} command: {:?}", command, args); + self.get_logger() + .debug(format!("Running {} command: {:?}", command, args)); let output = Command::new(command).args([flag, args.as_str()]).output()?; - log::debug!("{:?}", output); + self.get_logger().debug(format!("{:?}", output)); - Ok(String::from_utf8_lossy(&output.stdout).to_string()) + Ok( + strip_trailing_newline(String::from_utf8_lossy(&output.stdout).to_string().as_str()) + .to_string(), + ) } fn get_major_version(&self, full_version: &str) -> Result> { @@ -298,6 +393,52 @@ pub trait SeleniumManager { config.browser_path = browser_path; self.set_config(config); } + + fn get_proxy(&self) -> &str { + self.get_config().proxy.as_str() + } + + fn set_proxy(&mut self, proxy: String) -> Result<(), Box> { + let mut config = ManagerConfig::clone(self.get_config()); + config.proxy = proxy.to_string(); + self.set_config(config); + + if !proxy.is_empty() { + self.get_logger().debug(format!("Using proxy: {}", &proxy)); + self.update_http_proxy()?; + } + Ok(()) + } + + fn get_timeout(&self) -> u64 { + self.get_config().timeout + } + + fn set_timeout(&mut self, timeout: u64) -> Result<(), Box> { + let mut config = ManagerConfig::clone(self.get_config()); + config.timeout = timeout; + self.set_config(config); + + if timeout != REQUEST_TIMEOUT_SEC { + self.get_logger() + .debug(format!("Using timeout of {} seconds", timeout)); + self.update_http_proxy()?; + } + Ok(()) + } + + fn update_http_proxy(&mut self) -> Result<(), Box> { + let proxy = self.get_proxy(); + let timeout = self.get_timeout(); + + let mut builder = http_client_builder().timeout(Duration::from_secs(timeout)); + if !proxy.is_empty() { + builder = builder.proxy(Proxy::all(proxy)?); + } + let http_client = builder.build()?; + self.set_http_client(http_client); + Ok(()) + } } // ---------------------------------------------------------- @@ -341,24 +482,23 @@ pub fn get_manager_by_driver(driver_name: String) -> Result Client { - Client::builder() - .danger_accept_invalid_certs(true) - .use_rustls_tls() + http_client_builder() + .timeout(Duration::from_secs(REQUEST_TIMEOUT_SEC)) .build() .unwrap_or_default() } @@ -374,3 +514,16 @@ fn get_index_version(full_version: &str, index: usize) -> Result ClientBuilder { + Client::builder() + .danger_accept_invalid_certs(true) + .use_rustls_tls() +} + +fn strip_trailing_newline(input: &str) -> &str { + input + .strip_suffix("\r\n") + .or_else(|| input.strip_suffix('\n')) + .unwrap_or(input) +} diff --git a/rust/src/logger.rs b/rust/src/logger.rs new file mode 100644 index 0000000000000..fa7c03a4d2eb3 --- /dev/null +++ b/rust/src/logger.rs @@ -0,0 +1,195 @@ +// Licensed to the Software Freedom Conservancy (SFC) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The SFC licenses this file +// to you 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. + +use crate::metadata::now_unix_timestamp; +use env_logger::fmt::Color; +use env_logger::Target::Stdout; +use log::Level; +use log::LevelFilter::{Debug, Info, Trace}; +use serde::{Deserialize, Serialize}; +use std::cell::RefCell; +use std::io::Write; +use std::ops::Deref; +use Color::{Blue, Cyan, Green, Red, Yellow}; + +enum OutputType { + Logger, + Json, + Shell, +} + +pub struct Logger { + debug: bool, + trace: bool, + output: OutputType, + json: RefCell, +} + +#[derive(Serialize, Deserialize)] +pub struct Logs { + pub level: String, + pub timestamp: u64, + pub message: String, +} + +#[derive(Serialize, Deserialize)] +pub struct Result { + pub code: i32, + pub message: String, +} + +#[derive(Serialize, Deserialize)] +pub struct JsonOutput { + pub logs: Vec, + pub result: Result, +} + +impl Logger { + pub fn default() -> Self { + Logger::create("".to_string(), false, false) + } + + pub fn create(output: String, debug: bool, trace: bool) -> Self { + let output_type; + if output.eq_ignore_ascii_case("json") { + output_type = OutputType::Json; + } else if output.eq_ignore_ascii_case("shell") { + output_type = OutputType::Shell; + } else { + output_type = OutputType::Logger; + } + match output_type { + OutputType::Logger => { + let mut filter = match debug { + true => Debug, + false => Info, + }; + if trace { + filter = Trace + } + env_logger::Builder::new() + .filter_module(env!("CARGO_CRATE_NAME"), filter) + .target(Stdout) + .format(|buf, record| { + let mut level_style = buf.style(); + match record.level() { + Level::Trace => level_style.set_color(Cyan), + Level::Debug => level_style.set_color(Blue), + Level::Info => level_style.set_color(Green), + Level::Warn => level_style.set_color(Yellow), + Level::Error => level_style.set_color(Red).set_bold(true), + }; + writeln!( + buf, + "{}\t{}", + level_style.value(record.level()), + record.args() + ) + }) + .try_init() + .unwrap_or_default(); + } + _ => { + env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")) + .try_init() + .unwrap_or_default(); + } + } + + Logger { + debug, + trace, + output: output_type, + json: RefCell::new(JsonOutput { + logs: Vec::new(), + result: Result { + code: 0, + message: "".to_string(), + }, + }), + } + } + + pub fn error(&self, message: String) { + self.logger(message, Level::Error); + } + + pub fn warn(&self, message: String) { + self.logger(message, Level::Warn); + } + + pub fn info(&self, message: String) { + self.logger(message, Level::Info); + } + + pub fn debug(&self, message: String) { + self.logger(message, Level::Debug); + } + + pub fn trace(&self, message: String) { + self.logger(message, Level::Trace); + } + + fn logger(&self, message: String, level: Level) { + match self.output { + OutputType::Json => { + let trace = level <= Level::Trace && self.trace; + let debug = level <= Level::Debug && self.debug; + let other = level <= Level::Info; + if trace || debug || other { + self.json + .borrow_mut() + .logs + .push(self.create_json_log(message.to_string(), level)); + } + if level == Level::Info || level <= Level::Error { + self.json.borrow_mut().result.message = message; + } + } + OutputType::Shell => { + if level == Level::Info { + print!("{}", message); + } else if level == Level::Error { + eprint!("{}", message); + } + } + _ => { + log::log!(level, "{}", message); + } + } + } + + fn create_json_log(&self, message: String, level: Level) -> Logs { + Logs { + level: level.to_string().to_uppercase(), + timestamp: now_unix_timestamp(), + message, + } + } + + pub fn set_code(&self, code: i32) { + self.json.borrow_mut().result.code = code; + } + + pub fn flush(&self) { + let json_output = &self.json.borrow(); + let json = json_output.deref(); + if !json.logs.is_empty() { + print!("{}", serde_json::to_string_pretty(json.deref()).unwrap()); + } + } +} diff --git a/rust/src/main.rs b/rust/src/main.rs index 812782cf4aa34..763d26c6965f4 100644 --- a/rust/src/main.rs +++ b/rust/src/main.rs @@ -16,18 +16,15 @@ // under the License. use std::error::Error; -use std::io::Write; + use std::process::exit; use clap::Parser; -use env_logger::fmt::Color; -use env_logger::Target::Stdout; -use exitcode::DATAERR; -use Color::{Blue, Cyan, Green, Red, Yellow}; -use log::Level; -use log::LevelFilter::{Debug, Info, Trace}; +use exitcode::{DATAERR, UNAVAILABLE}; +use selenium_manager::logger::Logger; +use selenium_manager::REQUEST_TIMEOUT_SEC; use selenium_manager::{ clear_cache, get_manager_by_browser, get_manager_by_driver, SeleniumManager, }; @@ -62,6 +59,18 @@ struct Cli { #[clap(short = 'P', long, value_parser)] browser_path: Option, + /// Output type: LOGGER (using INFO, WARN, etc.), JSON (custom JSON notation), or SHELL (Unix-like) + #[clap(short = 'O', long, value_parser, default_value = "LOGGER")] + output: String, + + /// HTTP proxy for network connection (e.g., https://myproxy.net:8080) + #[clap(short = 'p', long, value_parser)] + proxy: Option, + + /// Timeout for network requests (in seconds) + #[clap(short = 't', long, value_parser, default_value_t = REQUEST_TIMEOUT_SEC)] + timeout: u64, + /// Display DEBUG messages #[clap(short = 'D', long)] debug: bool, @@ -77,10 +86,10 @@ struct Cli { fn main() -> Result<(), Box> { let cli = Cli::parse(); - setup_logging(&cli); + let log = Logger::create(cli.output, cli.debug, cli.trace); if cli.clear_cache { - clear_cache(); + clear_cache(&log); } let browser_name: String = cli.browser.unwrap_or_default(); @@ -88,61 +97,59 @@ fn main() -> Result<(), Box> { let mut selenium_manager: Box = if !browser_name.is_empty() { get_manager_by_browser(browser_name).unwrap_or_else(|err| { - log::error!("{}", err); + log.error(err); + flush_and_exit(DATAERR, &log); exit(DATAERR); }) } else if !driver_name.is_empty() { get_manager_by_driver(driver_name).unwrap_or_else(|err| { - log::error!("{}", err); + log.error(err); + flush_and_exit(DATAERR, &log); exit(DATAERR); }) } else { - log::error!("You need to specify a browser or driver"); + log.error("You need to specify a browser or driver".to_string()); + flush_and_exit(DATAERR, &log); exit(DATAERR); }; + selenium_manager.set_logger(log); selenium_manager.set_browser_version(cli.browser_version.unwrap_or_default()); selenium_manager.set_driver_version(cli.driver_version.unwrap_or_default()); selenium_manager.set_browser_path(cli.browser_path.unwrap_or_default()); + match selenium_manager.set_timeout(cli.timeout) { + Ok(_) => {} + Err(err) => { + selenium_manager.get_logger().error(err.to_string()); + flush_and_exit(UNAVAILABLE, selenium_manager.get_logger()); + } + } + match selenium_manager.set_proxy(cli.proxy.unwrap_or_default()) { + Ok(_) => {} + Err(err) => { + selenium_manager.get_logger().error(err.to_string()); + flush_and_exit(UNAVAILABLE, selenium_manager.get_logger()); + } + } match selenium_manager.resolve_driver() { - Ok(driver_path) => log::info!("{}", driver_path.display()), + Ok(driver_path) => { + selenium_manager + .get_logger() + .info(driver_path.display().to_string()); + flush_and_exit(0, selenium_manager.get_logger()); + } Err(err) => { - log::error!("{}", err); - exit(DATAERR); + selenium_manager.get_logger().error(err.to_string()); + flush_and_exit(DATAERR, selenium_manager.get_logger()); } }; Ok(()) } -fn setup_logging(cli: &Cli) { - let mut filter = match cli.debug { - true => Debug, - false => Info, - }; - if cli.trace { - filter = Trace - } - - env_logger::Builder::new() - .filter_level(filter) - .target(Stdout) - .format(|buf, record| { - let mut level_style = buf.style(); - match record.level() { - Level::Trace => level_style.set_color(Cyan), - Level::Debug => level_style.set_color(Blue), - Level::Info => level_style.set_color(Green), - Level::Warn => level_style.set_color(Yellow), - Level::Error => level_style.set_color(Red).set_bold(true), - }; - writeln!( - buf, - "{}\t{}", - level_style.value(record.level()), - record.args() - ) - }) - .init(); +fn flush_and_exit(code: i32, log: &Logger) { + log.set_code(code); + log.flush(); + exit(code); } diff --git a/rust/src/metadata.rs b/rust/src/metadata.rs index 645ca11b159df..7e3dfe64af696 100644 --- a/rust/src/metadata.rs +++ b/rust/src/metadata.rs @@ -23,6 +23,7 @@ use std::time::{SystemTime, UNIX_EPOCH}; use serde::{Deserialize, Serialize}; use crate::files::get_cache_folder; +use crate::Logger; const METADATA_FILE: &str = "selenium-manager.json"; const TTL_BROWSERS_SEC: u64 = 0; @@ -53,24 +54,24 @@ fn get_metadata_path() -> PathBuf { get_cache_folder().join(METADATA_FILE) } -fn now_unix_timestamp() -> u64 { +pub fn now_unix_timestamp() -> u64 { SystemTime::now() .duration_since(UNIX_EPOCH) .unwrap() .as_secs() } -fn new_metadata() -> Metadata { - log::trace!("Metadata file does not exist. Creating a new one"); +fn new_metadata(log: &Logger) -> Metadata { + log.trace("Metadata file does not exist. Creating a new one".to_string()); Metadata { browsers: Vec::new(), drivers: Vec::new(), } } -pub fn get_metadata() -> Metadata { +pub fn get_metadata(log: &Logger) -> Metadata { let metadata_path = get_cache_folder().join(METADATA_FILE); - log::trace!("Reading metadata from {}", metadata_path.display()); + log.trace(format!("Reading metadata from {}", metadata_path.display())); if metadata_path.exists() { let metadata_file = File::open(&metadata_path).unwrap(); @@ -81,11 +82,11 @@ pub fn get_metadata() -> Metadata { meta.drivers.retain(|d| d.driver_ttl > now); meta } - Err(_e) => new_metadata(), + Err(_e) => new_metadata(log), }; metadata } else { - new_metadata() + new_metadata(log) } } @@ -141,9 +142,9 @@ pub fn create_driver_metadata( } } -pub fn write_metadata(metadata: &Metadata) { +pub fn write_metadata(metadata: &Metadata, log: &Logger) { let metadata_path = get_metadata_path(); - log::trace!("Writing metadata to {}", metadata_path.display()); + log.trace(format!("Writing metadata to {}", metadata_path.display())); fs::write( metadata_path, serde_json::to_string_pretty(metadata).unwrap(), diff --git a/rust/tests/cli_tests.rs b/rust/tests/cli_tests.rs index f68cc1a56821f..e08c34dcd7994 100644 --- a/rust/tests/cli_tests.rs +++ b/rust/tests/cli_tests.rs @@ -24,14 +24,11 @@ use std::str; #[case("chrome", "chromedriver", "", "")] #[case("chrome", "chromedriver", "105", "105.0.5195.52")] #[case("chrome", "chromedriver", "106", "106.0.5249.61")] -#[case("chrome", "chromedriver", "beta", "")] #[case("edge", "msedgedriver", "", "")] #[case("edge", "msedgedriver", "105", "105.0")] #[case("edge", "msedgedriver", "106", "106.0")] -#[case("edge", "msedgedriver", "beta", "")] #[case("firefox", "geckodriver", "", "")] #[case("firefox", "geckodriver", "105", "0.32.0")] -#[case("firefox", "geckodriver", "beta", "")] #[case("iexplorer", "IEDriverServer", "", "")] fn ok_test( #[case] browser: String, @@ -58,7 +55,7 @@ fn ok_test( println!("{}", output); assert!(output.contains(&driver_name)); - if !browser_version.is_empty() { + if !browser_version.is_empty() && output.contains("cache") { assert!(output.contains(&driver_version)); } } @@ -96,6 +93,24 @@ fn error_test( .code(error_code); } +#[rstest] +#[case("chrome", "chromedriver")] +#[case("edge", "msedgedriver")] +#[case("firefox", "geckodriver")] +fn beta_test(#[case] browser: String, #[case] driver_name: String) { + println!("Beta test browser={browser} -- driver_name={driver_name}"); + + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); + let assert = cmd + .args(["--browser", &browser, "--browser-version", "beta"]) + .assert(); + + let stdout = &assert.get_output().stdout; + let output = str::from_utf8(stdout).unwrap(); + println!("output {:?}", output); + assert!(output.contains(&driver_name) || output.contains("ERROR")); +} + #[rstest] #[case( "chrome", diff --git a/rust/tests/output_tests.rs b/rust/tests/output_tests.rs new file mode 100644 index 0000000000000..9ce0829bd1fef --- /dev/null +++ b/rust/tests/output_tests.rs @@ -0,0 +1,60 @@ +// Licensed to the Software Freedom Conservancy (SFC) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The SFC licenses this file +// to you 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. + +use assert_cmd::Command; +use std::path::Path; + +use selenium_manager::logger::JsonOutput; +use std::str; + +#[test] +fn json_output_test() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); + cmd.args(["--browser", "chrome", "--output", "json"]) + .assert() + .success() + .code(0); + + let stdout = &cmd.unwrap().stdout; + let output = str::from_utf8(stdout).unwrap(); + println!("{}", output); + + let json: JsonOutput = serde_json::from_str(output).unwrap(); + assert!(!json.logs.is_empty()); + + let output_code = json.result.code; + assert_eq!(output_code, 0); + + let driver = Path::new(&json.result.message); + assert!(driver.exists()); +} + +#[test] +fn shell_output_test() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); + cmd.args(["--browser", "chrome", "--output", "shell"]) + .assert() + .success() + .code(0); + + let stdout = &cmd.unwrap().stdout; + let output = str::from_utf8(stdout).unwrap(); + println!("{}", output); + + let driver = Path::new(output); + assert!(driver.exists()); +} diff --git a/rust/tests/proxy_tests.rs b/rust/tests/proxy_tests.rs new file mode 100644 index 0000000000000..cabc42d3d53e8 --- /dev/null +++ b/rust/tests/proxy_tests.rs @@ -0,0 +1,55 @@ +// Licensed to the Software Freedom Conservancy (SFC) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The SFC licenses this file +// to you 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. + +use assert_cmd::Command; + +use exitcode::UNAVAILABLE; + +use wiremock::MockServer; + +#[tokio::test] +async fn ok_proxy_test() { + let mock_server = MockServer::start().await; + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); + cmd.args(["--browser", "chrome", "--proxy", &mock_server.uri()]) + .assert() + .success() + .code(0); +} + +#[test] +fn wrong_protocol_proxy_test() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); + cmd.args(["--browser", "chrome", "--proxy", "wrong:://proxy"]) + .assert() + .failure() + .code(UNAVAILABLE); +} + +#[test] +fn wrong_port_proxy_test() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); + cmd.args([ + "--browser", + "chrome", + "--proxy", + "https:://localhost:1234567", + ]) + .assert() + .failure() + .code(UNAVAILABLE); +} diff --git a/rust/tests/timeout_tests.rs b/rust/tests/timeout_tests.rs new file mode 100644 index 0000000000000..2e7834a534c68 --- /dev/null +++ b/rust/tests/timeout_tests.rs @@ -0,0 +1,36 @@ +// Licensed to the Software Freedom Conservancy (SFC) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The SFC licenses this file +// to you 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. + +use assert_cmd::Command; + +use exitcode::DATAERR; + +#[test] +fn timeout_proxy_test() { + let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); + cmd.args([ + "--clear-cache", + "--debug", + "--browser", + "edge", + "--timeout", + "0", + ]) + .assert() + .failure() + .code(DATAERR); +}