diff options
240 files changed, 6919 insertions, 48425 deletions
diff --git a/build.gradle b/build.gradle index a65ce0bf394..f12d73e573c 100644 --- a/build.gradle +++ b/build.gradle @@ -13,8 +13,8 @@ plugins { id 'com.jfrog.artifactory' version '5.2.5' id "de.undercouch.download" version "5.6.0" apply false id 'io.spring.dependency-management' version '1.1.7' - id "org.cyclonedx.bom" version "2.2.0" apply false - id 'org.sonarqube' version '6.0.1.5171' + id "org.cyclonedx.bom" version "2.3.1" apply false + id 'org.sonarqube' version '6.2.0.5505' } if (!JavaVersion.current().isCompatibleWith(VERSION_17)) { @@ -229,8 +229,8 @@ subprojects { } ext { - protobufVersion = '4.30.1' - springSecurityVersion = '6.4.4' + protobufVersion = '4.31.1' + springSecurityVersion = '6.5.0' elasticSearchClientVersion = '7.17.28' } @@ -282,57 +282,58 @@ subprojects { // bundled plugin list -- keep it alphabetically ordered dependency 'com.sonarsource.abap:sonar-abap-plugin:3.15.1.6010' dependency 'com.sonarsource.cobol:sonar-cobol-plugin:5.8.1.8428' - dependency 'com.sonarsource.cpp:sonar-cfamily-dependencies-plugin:6.66.0.83483' - dependency 'com.sonarsource.cpp:sonar-cfamily-plugin:6.66.0.83483' - dependency 'com.sonarsource.dart:sonar-dart-plugin:1.1.0.2133' + dependency 'com.sonarsource.cpp:sonar-cfamily-dependencies-plugin:6.68.0.85760' + dependency 'com.sonarsource.cpp:sonar-cfamily-plugin:6.68.0.85760' + dependency 'com.sonarsource.dart:sonar-dart-plugin:1.3.0.2614' dependency 'com.sonarsource.dbd:sonar-dbd-plugin:1.36.1.13250' dependency 'com.sonarsource.dbd:sonar-dbd-java-frontend-plugin:1.36.1.13250' dependency 'com.sonarsource.dbd:sonar-dbd-python-frontend-plugin:1.36.1.13250' - dependency 'com.sonarsource.dotnet:sonar-csharp-enterprise-plugin:10.8.0.113526' - dependency 'com.sonarsource.dotnet:sonar-vbnet-enterprise-plugin:10.8.0.113526' - dependency 'com.sonarsource.go:sonar-go-enterprise-plugin:1.21.1.1670' + dependency 'com.sonarsource.dotnet:sonar-csharp-enterprise-plugin:10.11.0.117924' + dependency 'com.sonarsource.dotnet:sonar-vbnet-enterprise-plugin:10.11.0.117924' + dependency 'com.sonarsource.go:sonar-go-enterprise-plugin:1.25.0.3305' dependency 'com.sonarsource.pli:sonar-pli-plugin:1.16.0.5325' - dependency 'com.sonarsource.plsql:sonar-plsql-plugin:3.15.0.7123' - dependency 'com.sonarsource.plugins.vb:sonar-vb-plugin:2.14.0.5475' + dependency 'com.sonarsource.plsql:sonar-plsql-plugin:3.16.1.7377' + dependency 'com.sonarsource.plugins.vb:sonar-vb-plugin:2.14.1.5552' dependency 'com.sonarsource.rpg:sonar-rpg-plugin:3.10.0.5337' - dependency 'com.sonarsource.security:sonar-security-csharp-frontend-plugin:11.1.0.35630' - dependency 'com.sonarsource.security:sonar-security-java-frontend-plugin:11.1.0.35630' - dependency 'com.sonarsource.security:sonar-security-php-frontend-plugin:11.1.0.35630' - dependency 'com.sonarsource.security:sonar-security-plugin:11.1.0.35630' - dependency 'com.sonarsource.security:sonar-security-python-frontend-plugin:11.1.0.35630' - dependency 'com.sonarsource.security:sonar-security-js-frontend-plugin:11.1.0.35630' - dependency 'com.sonarsource.slang:sonar-apex-plugin:1.18.0.198' - dependency 'org.sonarsource.slang:sonar-ruby-plugin:1.18.0.234' - dependency 'org.sonarsource.slang:sonar-scala-plugin:1.18.0.266' + dependency 'com.sonarsource.security:sonar-security-csharp-frontend-plugin:11.2.1.37710' + dependency 'com.sonarsource.security:sonar-security-java-frontend-plugin:11.2.1.37710' + dependency 'com.sonarsource.security:sonar-security-js-frontend-plugin:11.2.1.37710' + dependency 'com.sonarsource.security:sonar-security-kotlin-frontend-plugin:11.2.1.37710' + dependency 'com.sonarsource.security:sonar-security-php-frontend-plugin:11.2.1.37710' + dependency 'com.sonarsource.security:sonar-security-plugin:11.2.1.37710' + dependency 'com.sonarsource.security:sonar-security-python-frontend-plugin:11.2.1.37710' + dependency 'com.sonarsource.slang:sonar-apex-plugin:1.19.0.447' + dependency 'org.sonarsource.slang:sonar-ruby-plugin:1.19.0.471' + dependency 'org.sonarsource.slang:sonar-scala-plugin:1.19.0.484' dependency 'com.sonarsource.swift:sonar-swift-plugin:4.13.1.8101' - dependency 'com.sonarsource.tsql:sonar-tsql-plugin:1.14.0.7614' - dependency 'org.sonarsource.dotnet:sonar-csharp-plugin:10.8.0.113526' - dependency 'org.sonarsource.dotnet:sonar-vbnet-plugin:10.8.0.113526' + dependency 'com.sonarsource.tsql:sonar-tsql-plugin:1.14.1.7703' + dependency 'org.sonarsource.dotnet:sonar-csharp-plugin:10.11.0.117924' + dependency 'org.sonarsource.dotnet:sonar-vbnet-plugin:10.11.0.117924' dependency 'org.sonarsource.flex:sonar-flex-plugin:2.14.0.5032' - dependency 'org.sonarsource.go:sonar-go-plugin:1.21.1.1670' + dependency 'org.sonarsource.go:sonar-go-plugin:1.25.0.3305' dependency 'org.sonarsource.html:sonar-html-plugin:3.19.0.5695' dependency 'org.sonarsource.jacoco:sonar-jacoco-plugin:1.3.0.1538' - dependency 'org.sonarsource.java:sonar-java-plugin:8.12.0.38599' - dependency 'org.sonarsource.java:sonar-java-symbolic-execution-plugin:8.12.0.38599' - dependency 'org.sonarsource.javascript:sonar-javascript-plugin:10.22.0.32148' - dependency 'org.sonarsource.php:sonar-php-plugin:3.45.0.12991' + dependency 'org.sonarsource.java:sonar-java-plugin:8.16.0.39645' + dependency 'org.sonarsource.java:sonar-java-symbolic-execution-plugin:8.16.0.131' + dependency 'org.sonarsource.javascript:sonar-javascript-plugin:10.23.0.32711' + dependency 'org.sonarsource.php:sonar-php-plugin:3.46.0.13151' dependency 'org.sonarsource.plugins.cayc:sonar-cayc-plugin:2.4.0.2018' - dependency 'org.sonarsource.python:sonar-python-plugin:5.2.0.20808' - dependency 'org.sonarsource.rust:sonar-rust-plugin:1.0.2.734' - dependency 'com.sonarsource.python:sonar-python-enterprise-plugin:5.2.0.20808' - dependency 'org.sonarsource.kotlin:sonar-kotlin-plugin:3.1.0.7071' + dependency 'org.sonarsource.python:sonar-python-plugin:5.5.0.23291' + dependency 'org.sonarsource.rust:sonar-rust-plugin:1.0.3.786' + dependency 'com.sonarsource.python:sonar-python-enterprise-plugin:5.5.0.23291' + dependency 'org.sonarsource.kotlin:sonar-kotlin-plugin:3.2.0.7239' dependency "org.sonarsource.api.plugin:sonar-plugin-api:$pluginApiVersion" dependency "org.sonarsource.api.plugin:sonar-plugin-api-test-fixtures:$pluginApiVersion" dependency 'org.sonarsource.xml:sonar-xml-plugin:2.13.0.5938' - dependency 'org.sonarsource.iac:sonar-iac-plugin:1.45.0.14930' - dependency 'com.sonarsource.iac:sonar-iac-enterprise-plugin:1.45.0.14930' - dependency 'org.sonarsource.text:sonar-text-plugin:2.21.1.5779' - dependency 'com.sonarsource.text:sonar-text-developer-plugin:2.21.1.5779' - dependency 'com.sonarsource.text:sonar-text-enterprise-plugin:2.21.1.5779' + dependency 'org.sonarsource.iac:sonar-iac-plugin:1.47.0.15287' + dependency 'com.sonarsource.iac:sonar-iac-enterprise-plugin:1.47.0.15287' + dependency 'org.sonarsource.text:sonar-text-plugin:2.24.2.6631' + dependency 'com.sonarsource.text:sonar-text-developer-plugin:2.24.2.6631' + dependency 'com.sonarsource.text:sonar-text-enterprise-plugin:2.24.2.6631' dependency 'com.sonarsource.jcl:sonar-jcl-plugin:1.4.1.1493' - dependency 'com.sonarsource.architecture:sonar-architecture-plugin:1.10.0.5305' - dependency 'com.sonarsource.architecture:sonar-architecture-java-frontend-plugin:1.10.0.5305' - dependency 'com.sonarsource.architecture:sonar-architecture-javascript-frontend-plugin:1.10.0.5305' + dependency 'com.sonarsource.architecture:sonar-architecture-plugin:1.11.0.5805' + dependency 'com.sonarsource.architecture:sonar-architecture-java-frontend-plugin:1.11.0.5805' + dependency 'com.sonarsource.architecture:sonar-architecture-javascript-frontend-plugin:1.11.0.5805' // Webapp dependency "org.sonarsource.sonarqube:webapp-assets:$webappVersion" @@ -346,19 +347,16 @@ subprojects { // https://mvnrepository.com/artifact/ch.qos.logback.access/common dependency('ch.qos.logback.access:common:2.0.3') dependency('ch.qos.logback.access:logback-access-tomcat:2.0.6') - dependency('commons-beanutils:commons-beanutils:1.10.1') { - exclude 'commons-logging:commons-logging' - } dependency 'commons-codec:commons-codec:1.18.0' dependency 'commons-dbutils:commons-dbutils:1.8.1' - dependency 'commons-io:commons-io:2.18.0' - imports { mavenBom 'com.fasterxml.jackson:jackson-bom:2.18.3' } + dependency 'commons-io:commons-io:2.19.0' + imports { mavenBom 'com.fasterxml.jackson:jackson-bom:2.19.0' } dependency 'com.eclipsesource.minimal-json:minimal-json:0.9.5' dependencySet(group: 'com.github.scribejava', version: '8.3.3') { entry 'scribejava-apis' entry 'scribejava-core' } - dependency('com.github.erosb:json-sKema:0.21.0') { + dependency('com.github.erosb:json-sKema:0.23.0') { // this version of json-sKema does not make use of commons-collections, so we can exclude it safely exclude 'commons-collections:commons-collections' } @@ -374,8 +372,8 @@ subprojects { dependency 'io.prometheus:simpleclient_common:0.16.0' dependency 'io.prometheus:simpleclient_servlet:0.16.0' dependency 'com.github.spotbugs:spotbugs-annotations:4.9.3' - dependency 'com.google.code.gson:gson:2.12.1' - dependency('com.google.guava:guava:33.4.5-jre') { + dependency 'com.google.code.gson:gson:2.13.1' + dependency('com.google.guava:guava:33.4.8-jre') { exclude 'com.google.errorprone:error_prone_annotations' exclude 'com.google.guava:listenablefuture' exclude 'com.google.j2objc:j2objc-annotations' @@ -391,10 +389,10 @@ subprojects { dependency('com.microsoft.sqlserver:mssql-jdbc:12.10.0.jre11') { exclude 'com.fasterxml.jackson.core:jackson-databind' } - dependency 'com.microsoft.azure:msal4j:1.19.1' - dependency 'com.oracle.database.jdbc:ojdbc11:23.7.0.25.01' - dependency 'com.datadoghq:dd-java-agent:1.30.1' - dependency 'org.aspectj:aspectjtools:1.9.23' + dependency 'com.microsoft.azure:msal4j:1.20.1' + dependency 'com.oracle.database.jdbc:ojdbc11:23.8.0.25.04' + dependency 'com.datadoghq:dd-java-agent:1.49.0' + dependency 'org.aspectj:aspectjtools:1.9.24' dependencySet(group: 'com.squareup.okhttp3', version: '4.12.0') { entry 'okhttp' entry 'mockwebserver' @@ -402,7 +400,7 @@ subprojects { entry 'logging-interceptor' } dependency 'commons-logging:commons-logging:1.3.5' - dependency 'org.json:json:20250107' + dependency 'org.json:json:20250517' // To be removed after migration to JUnit5 is finished dependency 'com.tngtech.java:junit-dataprovider:1.13.1' dependency 'com.tngtech.junit.dataprovider:junit-jupiter-params-dataprovider:2.10' @@ -412,28 +410,30 @@ subprojects { entry 'jjwt-jackson' } dependency 'com.auth0:java-jwt:4.5.0' - dependency 'io.netty:netty-all:4.1.119.Final' + dependency 'io.netty:netty-all:4.2.1.Final' dependency 'jakarta.mail:jakarta.mail-api:2.1.3' dependency 'jakarta.annotation:jakarta.annotation-api:3.0.0' dependency 'jakarta.inject:jakarta.inject-api:2.0.1' dependency 'jakarta.servlet:jakarta.servlet-api:6.1.0' dependency 'junit:junit:4.13.2' - dependency 'org.xmlunit:xmlunit-core:2.10.0' - dependency 'org.xmlunit:xmlunit-matchers:2.10.0' + dependencySet(group: 'org.xmlunit', version: '2.10.2') { + entry 'xmlunit-core' + entry 'xmlunit-matchers' + } dependency 'org.lz4:lz4-java:1.8.0' dependency 'org.littleshoot:littleproxy:1.1.2' dependency 'net.sf.trove4j:core:3.1.0' dependency 'org.awaitility:awaitility:4.3.0' - dependency 'org.apache.commons:commons-collections4:4.4' + dependency 'org.apache.commons:commons-collections4:4.5.0' dependency 'org.apache.commons:commons-csv:1.14.0' dependency 'org.apache.commons:commons-lang3:3.17.0' dependency 'org.apache.commons:commons-email2-jakarta:2.0.0-M1' - dependency 'org.apache.commons:commons-exec:1.4.0' - dependency 'org.apache.commons:commons-text:1.13.0' + dependency 'org.apache.commons:commons-exec:1.5.0' + dependency 'org.apache.commons:commons-text:1.13.1' dependency 'org.apache.mina:mina-core:2.2.4' dependency 'org.apache.kerby:kerb-simplekdc:2.1.0' dependency 'org.apache.kerby:ldap-backend:2.1.0' - dependency 'com.zaxxer:HikariCP:6.2.1' + dependency 'com.zaxxer:HikariCP:6.3.0' dependency('org.apache.directory.server:apacheds-server-integ:2.0.0.AM27') { exclude 'log4j:log4j' } @@ -443,7 +443,7 @@ subprojects { entry 'log4j-api' entry 'log4j-to-slf4j' } - dependencySet(group: 'org.apache.tomcat.embed', version: '10.1.39') { + dependencySet(group: 'org.apache.tomcat.embed', version: '11.0.7') { entry 'tomcat-embed-core' entry('tomcat-embed-jasper') { exclude 'org.eclipse.jdt.core.compiler:ecj' @@ -469,28 +469,26 @@ subprojects { } dependency "org.elasticsearch.plugin:transport-netty4-client:${elasticSearchClientVersion}" dependency 'org.elasticsearch:mocksocket:1.2' - dependency 'org.eclipse.jgit:org.eclipse.jgit:7.2.0.202503040940-r' + dependency 'org.eclipse.jgit:org.eclipse.jgit:7.3.0.202506031305-r' dependency "org.codelibs.elasticsearch.module:analysis-common:7.17.22" dependency "org.codelibs.elasticsearch.module:reindex:7.17.22" dependency('org.tmatesoft.svnkit:svnkit:1.10.11') { exclude 'net.i2p.crypto:eddsa' } dependency 'org.hamcrest:hamcrest:3.0' - dependency 'org.jsoup:jsoup:1.19.1' + dependency 'org.jsoup:jsoup:1.20.1' // JUnit 5 imports { mavenBom 'org.junit:junit-bom:5.11.4' } dependency 'org.junit-pioneer:junit-pioneer:2.3.0' - dependencySet(group: 'org.mockito', version: '5.16.1') { + dependencySet(group: 'org.mockito', version: '5.18.0') { entry 'mockito-core' entry('mockito-junit-jupiter') { exclude 'org.junit.jupiter:junit-jupiter-api' } } - dependencySet(group: 'org.spdx', version: '2.0.0-RC2') { - entry 'java-spdx-library' - entry 'spdx-jackson-store' - } - dependencySet(group: 'org.springframework', version: '6.2.5') { + dependency 'org.spdx:java-spdx-library:2.0.0' + dependency 'org.spdx:spdx-jackson-store:2.0.2' + dependencySet(group: 'org.springframework', version: '6.2.7') { entry 'spring-test' entry('spring-context') { exclude 'commons-logging:commons-logging' @@ -507,17 +505,18 @@ subprojects { entry 'log4j-over-slf4j' entry 'slf4j-api' } - dependency 'org.postgresql:postgresql:42.7.5' + dependency 'org.postgresql:postgresql:42.7.6' dependency 'org.reflections:reflections:0.10.2' dependency 'org.simpleframework:simple:5.1.6' - dependency 'org.sonarsource.git.blame:git-files-blame:1.1.0.1835' - dependency('org.sonarsource.orchestrator:sonar-orchestrator-junit4:5.5.0.2535') { + dependency 'org.sonarsource.git.blame:git-files-blame:2.0.0.2053' + dependency('org.sonarsource.orchestrator:sonar-orchestrator-junit4:5.6.2.2625') { exclude 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml' } - dependency('org.sonarsource.orchestrator:sonar-orchestrator-junit5:5.5.0.2535') { + dependency('org.sonarsource.orchestrator:sonar-orchestrator-junit5:5.6.2.2625') { exclude 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml' } - dependency 'com.sonarsource.pdfreport:security-report-pdf-generation:2.0.0.184' + dependency 'com.sonarsource.pdfreport:security-report-pdf-generation:2.0.0.232' + dependency 'com.sonarsource.fixsuggestions:ai-suggestions-shared:1.0.0.1312' dependency 'org.sonarsource.update-center:sonar-update-center-common:1.35.0.2835' dependency 'org.sonarsource.classloader:sonar-classloader:1.1.0.1059' dependency 'org.springdoc:springdoc-openapi-starter-webmvc-api:2.8.6' @@ -527,9 +526,9 @@ subprojects { entry 'greenmail-junit5' } dependency 'org.yaml:snakeyaml:2.4' - dependency 'org.hibernate.validator:hibernate-validator:8.0.2.Final' + dependency 'org.hibernate.validator:hibernate-validator:9.0.0.Final' dependency 'org.kohsuke:github-api:1.327' - dependency 'org.wiremock:wiremock-standalone:3.12.1' + dependency 'org.wiremock:wiremock-standalone:3.13.0' dependency 'org.skyscreamer:jsonassert:1.5.3' // to be used only in sonar-ws-generator dependency("org.apache.velocity:velocity:1.7") { diff --git a/gradle.properties b/gradle.properties index ab5ca3c6f6c..1de4c764d0a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,11 +1,11 @@ group=org.sonarsource.sonarqube -version=25.5 +version=25.7 # End Of Life date for the version. MMF-3763. format is yyyy-MM-dd # 6 months from the release date for non LTA versions # 30 months from the release date for LTA versions # No change required for patch versions -versionEOL=2025-07-01 -pluginApiVersion=11.3.0.2824 +versionEOL=2027-01-31 +pluginApiVersion=12.0.0.2960 description=Open source platform for continuous inspection of code quality projectTitle=SonarQube org.gradle.jvmargs=-Xmx2048m @@ -15,4 +15,4 @@ elasticSearchServerVersion=8.16.3 projectType=application artifactoryUrl=https://repox.jfrog.io/repox jre_release_name=jdk-17.0.13+11 -webappVersion=2025.3.0.15992 +webappVersion=2025.4.0.20378 diff --git a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/XooPlugin.java b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/XooPlugin.java index b4aad85bdb0..652d17d78bb 100644 --- a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/XooPlugin.java +++ b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/XooPlugin.java @@ -33,6 +33,7 @@ import org.sonar.xoo.extensions.XooIssueFilter; import org.sonar.xoo.extensions.XooPostJob; import org.sonar.xoo.extensions.XooProjectBuilder; import org.sonar.xoo.global.DeprecatedGlobalSensor; +import org.sonar.xoo.global.ErrorThrowingSensor; import org.sonar.xoo.global.GlobalProjectSensor; import org.sonar.xoo.lang.CpdTokenizerSensor; import org.sonar.xoo.lang.LineMeasureSensor; @@ -185,6 +186,7 @@ public class XooPlugin implements Plugin { SensorMetrics.class, DeprecatedGlobalSensor.class, GlobalProjectSensor.class, + ErrorThrowingSensor.class, HotspotWithoutContextSensor.class, HotspotWithContextsSensor.class, diff --git a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/architecture/ArchitectureSensor.java b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/architecture/ArchitectureSensor.java index e3e75a9932f..237f8fa71ba 100644 --- a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/architecture/ArchitectureSensor.java +++ b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/architecture/ArchitectureSensor.java @@ -36,7 +36,7 @@ public class ArchitectureSensor implements ProjectSensor { @Override public void execute(SensorContext context) { - final String mimeType = "application/file_graph+json;version=1.0"; + final String mimeType = "application/graph+json;version=2.0.0"; long count = StreamSupport.stream( context.fileSystem().inputFiles( @@ -44,16 +44,23 @@ public class ArchitectureSensor implements ProjectSensor { .count(); context.addAnalysisData( - "architecture.file_graph.java", + "architecture.graph." + Xoo.KEY + ".file_graph", mimeType, - new ByteArrayInputStream(("{graph:\"data\", \"classCount\":" + count + "}") + new ByteArrayInputStream(("{\"graph\":\"files\", \"fileCount\":" + count + "}") .getBytes(StandardCharsets.UTF_8)) ); context.addAnalysisData( - "architecture.file_graph." + Xoo.KEY, + "architecture.graph." + Xoo.KEY + ".file_graph.module_persp", mimeType, - new ByteArrayInputStream(("{graph:\"data\", \"fileCount\":" + count + "}") + new ByteArrayInputStream(("{\"graph\":\"modules\", \"fileCount\":" + count + "}") + .getBytes(StandardCharsets.UTF_8)) + ); + + context.addAnalysisData( + "architecture.graph." + Xoo.KEY + ".namespace", + mimeType, + new ByteArrayInputStream(("{\"graph\":\"namespace\", \"fileCount\":" + count + "}") .getBytes(StandardCharsets.UTF_8)) ); } diff --git a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/global/ErrorThrowingSensor.java b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/global/ErrorThrowingSensor.java new file mode 100644 index 00000000000..dde8dd69453 --- /dev/null +++ b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/global/ErrorThrowingSensor.java @@ -0,0 +1,71 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.xoo.global; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.sonar.api.batch.sensor.Sensor; +import org.sonar.api.batch.sensor.SensorContext; +import org.sonar.api.batch.sensor.SensorDescriptor; + +/** + * Sensor that throws a {@link java.lang.Error} during execution. + */ +public class ErrorThrowingSensor implements Sensor { + + private static final Logger LOG = LoggerFactory.getLogger(ErrorThrowingSensor.class); + + public static final String ENABLE_PROP = "sonar.scanner.errorSensor"; + + @Override + public void describe(SensorDescriptor descriptor) { + descriptor + .name("Error Throwing Sensor") + .onlyWhenConfiguration(c -> c.hasKey(ENABLE_PROP)); + } + + @Override + public void execute(SensorContext context) { + LOG.info("Running Error Throwing sensor"); + runNonDaemonThread(); + throw new XooError("This is thrown by the ErrorThrowing Sensor, it's its job to throw it!"); + } + + private static void runNonDaemonThread() { + Thread nonDaemonThread = new Thread(() -> { + while (true) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + break; + } + } + }); + LOG.info("Starting non-daemon Thread"); + nonDaemonThread.start(); + } + + static class XooError extends Error { + public XooError(String message) { + super(message); + } + } +} diff --git a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/OneIssuePerFileSensor.java b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/OneIssuePerFileSensor.java index 135a1a0a4ab..ef1955d37d9 100644 --- a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/OneIssuePerFileSensor.java +++ b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/OneIssuePerFileSensor.java @@ -23,6 +23,7 @@ import org.sonar.api.batch.fs.FileSystem; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.rule.ActiveRules; import org.sonar.api.batch.sensor.SensorContext; +import org.sonar.api.batch.sensor.SensorDescriptor; import org.sonar.api.batch.sensor.issue.NewIssue; import org.sonar.api.config.Configuration; import org.sonar.api.rule.RuleKey; @@ -32,6 +33,7 @@ public class OneIssuePerFileSensor extends AbstractXooRuleSensor { public static final String RULE_KEY = "OneIssuePerFile"; private static final String EFFORT_TO_FIX_PROPERTY = "sonar.oneIssuePerFile.effortToFix"; + private static final String ENABLE_HIDDEN_FILE_PROCESSING = "sonar.oneIssuePerFile.enableHiddenFileProcessing"; private final Configuration settings; @@ -41,11 +43,20 @@ public class OneIssuePerFileSensor extends AbstractXooRuleSensor { } @Override + public void describe(SensorDescriptor descriptor) { + super.describe(descriptor); + if (settings.getBoolean(ENABLE_HIDDEN_FILE_PROCESSING).orElse(false)) { + descriptor.processesHiddenFiles(); + } + } + + @Override protected String getRuleKey() { return RULE_KEY; } - @Override protected void processFile(InputFile inputFile, SensorContext context, RuleKey ruleKey, String languageKey) { + @Override + protected void processFile(InputFile inputFile, SensorContext context, RuleKey ruleKey, String languageKey) { NewIssue newIssue = context.newIssue() .forRule(ruleKey) .gap(settings.getDouble(EFFORT_TO_FIX_PROPERTY).orElse(0.0)); diff --git a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java index db8d42d0d28..6a414972d5b 100644 --- a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java +++ b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java @@ -48,6 +48,7 @@ import static org.sonar.api.server.rule.RuleDescriptionSection.RuleDescriptionSe import static org.sonar.api.server.rule.RuleDescriptionSection.RuleDescriptionSectionKeys.INTRODUCTION_SECTION_KEY; import static org.sonar.api.server.rule.RuleDescriptionSection.RuleDescriptionSectionKeys.RESOURCES_SECTION_KEY; import static org.sonar.api.server.rule.RuleDescriptionSection.RuleDescriptionSectionKeys.ROOT_CAUSE_SECTION_KEY; +import static org.sonar.api.server.rule.RulesDefinition.OwaspMobileTop10Version.Y2024; import static org.sonar.api.server.rule.RulesDefinition.OwaspTop10Version.Y2017; import static org.sonar.api.server.rule.RulesDefinition.OwaspTop10Version.Y2021; @@ -293,11 +294,13 @@ public class XooRulesDefinition implements RulesDefinition { hotspot .addOwaspTop10(OwaspTop10.A1, OwaspTop10.A3) .addOwaspTop10(Y2021, OwaspTop10.A3, OwaspTop10.A2) + .addOwaspMobileTop10(Y2024, OwaspMobileTop10.M4, OwaspMobileTop10.M8) .addCwe(1, 89, 123, 863); oneVulnerabilityIssuePerProject .addOwaspTop10(Y2017, OwaspTop10.A9, OwaspTop10.A10) .addOwaspTop10(Y2021, OwaspTop10.A6, OwaspTop10.A9) + .addOwaspMobileTop10(Y2024, OwaspMobileTop10.M3, OwaspMobileTop10.M5) .addCwe(89, 250, 311, 546, 564, 943); } diff --git a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/architecture/ArchitectureSensorTest.java b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/architecture/ArchitectureSensorTest.java index d1bac6b14b6..d43ac0ff165 100644 --- a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/architecture/ArchitectureSensorTest.java +++ b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/architecture/ArchitectureSensorTest.java @@ -76,7 +76,7 @@ public class ArchitectureSensorTest { // then ArgumentCaptor<InputStream> inputStreamCaptor = ArgumentCaptor.forClass(InputStream.class); - verify(context).addAnalysisData(eq("architecture.file_graph.xoo"), contains("application/file_graph+json"), inputStreamCaptor.capture()); + verify(context).addAnalysisData(eq("architecture.graph.xoo.file_graph"), contains("application/graph+json"), inputStreamCaptor.capture()); try { String capturedData = new String(inputStreamCaptor.getValue().readAllBytes(), StandardCharsets.UTF_8); assertThat(capturedData).contains("\"fileCount\":" + nbFileSensor); diff --git a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java index d9a418c69ac..a801fb85ddd 100644 --- a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java +++ b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java @@ -70,6 +70,7 @@ public class XooRulesDefinitionTest { assertThat(rule.securityStandards()) .isNotEmpty() .containsExactlyInAnyOrder("cwe:1", "cwe:89", "cwe:123", "cwe:863", "owaspTop10:a1", "owaspTop10:a3", + "owaspMobileTop10-2024:m4", "owaspMobileTop10-2024:m8", "owaspTop10-2021:a3", "owaspTop10-2021:a2", "owaspAsvs-4.0:2.8.7", "owaspAsvs-4.0:3.1.1", "owaspAsvs-4.0:4.2.2", "pciDss-3.2:4.2", "pciDss-3.2:4.2b", "pciDss-3.2:6.5.1", "pciDss-3.2:6.5a.1b", "pciDss-4.0:4.1", "pciDss-4.0:4.2c", "pciDss-4.0:6.5.1", "pciDss-4.0:6.5a.1", @@ -98,7 +99,7 @@ public class XooRulesDefinitionTest { assertThat(rule.securityStandards()) .isNotEmpty() .containsExactlyInAnyOrder("cwe:89", "cwe:250", "cwe:311", "cwe:546", "cwe:564", "cwe:943", "owaspTop10-2021:a6", "owaspTop10-2021:a9", - "owaspTop10:a10", "owaspTop10:a9", + "owaspTop10:a10", "owaspTop10:a9", "owaspMobileTop10-2024:m3", "owaspMobileTop10-2024:m5", "owaspAsvs-4.0:11.1.2", "owaspAsvs-4.0:14.5.1", "owaspAsvs-4.0:14.5.4", "pciDss-3.2:10.1a.2c", "pciDss-3.2:10.2", "pciDss-4.0:10.1", "pciDss-4.0:10.1a.2b", "stig-ASD_V5R3:V-222596", "stig-ASD_V5R3:V-222608", "stig-ASD_V5R3:V-222653"); diff --git a/server/sonar-ce-task-projectanalysis/src/it/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryImplIT.java b/server/sonar-ce-task-projectanalysis/src/it/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryImplIT.java index 1c44545518d..94fb1d8766a 100644 --- a/server/sonar-ce-task-projectanalysis/src/it/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryImplIT.java +++ b/server/sonar-ce-task-projectanalysis/src/it/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryImplIT.java @@ -88,6 +88,45 @@ public class MetricRepositoryImplIT { } @Test + public void getOptionalByKey_throws_NPE_if_arg_is_null() { + assertThatThrownBy(() -> underTest.getOptionalByKey(null)) + .isInstanceOf(NullPointerException.class); + } + + @Test + public void getOptionalByKey_throws_ISE_if_start_has_not_been_called() { + assertThatThrownBy(() -> underTest.getOptionalByKey(SOME_KEY)) + .isInstanceOf(IllegalStateException.class) + .hasMessage("Metric cache has not been initialized"); + } + + @Test + public void getOptionalByKey_whenMetricDoesNotExist_thenReturnsOptionalEmpty() { + underTest.start(); + assertThat(underTest.getOptionalByKey(SOME_KEY)).isNotPresent(); + } + + @Test + public void getOptionalByKey_whenMetricIsDisabled_thenReturnsOptionalEmpty() { + dbTester.measures().insertMetric(t -> t.setKey("complexity").setEnabled(false)); + + underTest.start(); + + assertThat(underTest.getOptionalByKey("complexity")).isNotPresent(); + } + + @Test + public void getOptionalByKey_find_enabled_Metrics() { + MetricDto ncloc = dbTester.measures().insertMetric(t -> t.setKey("ncloc").setEnabled(true)); + MetricDto coverage = dbTester.measures().insertMetric(t -> t.setKey("coverage").setEnabled(true)); + + underTest.start(); + + assertThat(underTest.getOptionalByKey("ncloc").get().getUuid()).isEqualTo(ncloc.getUuid()); + assertThat(underTest.getOptionalByKey("coverage").get().getUuid()).isEqualTo(coverage.getUuid()); + } + + @Test public void getById_throws_ISE_if_start_has_not_been_called() { assertThatThrownBy(() -> underTest.getByUuid(SOME_UUID)) .isInstanceOf(IllegalStateException.class) diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationCheck.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationCheck.java index 27ffc039b71..9863836e1d0 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationCheck.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationCheck.java @@ -52,6 +52,8 @@ public interface PostMeasuresComputationCheck { */ String getProjectUuid(); + String getAnalysisUuid(); + Branch getBranch(); ScannerReportReader getReportReader(); diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java index 4ce9187cc70..fb40cf4ed7c 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java @@ -77,6 +77,11 @@ public class PostMeasuresComputationChecksStep implements ComputationStep { } @Override + public String getAnalysisUuid() { + return analysisMetadataHolder.getUuid(); + } + + @Override public Branch getBranch() { return analysisMetadataHolder.getBranch(); } diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/metric/MetricRepository.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/metric/MetricRepository.java index 6dc8dd686d9..751bf23ed8d 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/metric/MetricRepository.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/metric/MetricRepository.java @@ -26,9 +26,11 @@ public interface MetricRepository { /** * Gets the {@link Metric} with the specific key. - * <p>Since it does not make sense to encounter a reference (ie. a key) to a Metric during processing of + * <p>Since it <i>mostly</i> does not make sense to encounter a reference (ie. a key) to a Metric during processing of * a new analysis and not finding it in DB (metrics are never deleted), this method will throw an * IllegalStateException if the metric with the specified key can not be found.</p> + * <p>Core extensions that add their own metrics on commercial versions may not be available everywhere. + * Use getOptionalByKey if you need to work with a metric that may not exist in all environments.</p> * * @throws IllegalStateException if no Metric with the specified key is found * @throws NullPointerException if the specified key is {@code null} @@ -36,6 +38,14 @@ public interface MetricRepository { Metric getByKey(String key); /** + * Gets the {@link Metric} with the specific key if it exists. Useful if working with a metric that may + * not exist in all versions of SonarQube Server. + * + * @throws NullPointerException if the specified key is {@code null} + */ + Optional<Metric> getOptionalByKey(String key); + + /** * Gets the {@link Metric} with the specific uuid. * * @throws IllegalStateException if no Metric with the specified uuid is found diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryImpl.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryImpl.java index 6078d8d15bc..1a6a8a16bcf 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryImpl.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryImpl.java @@ -70,6 +70,16 @@ public class MetricRepositoryImpl implements MetricRepository, Startable { } @Override + public Optional<Metric> getOptionalByKey(String key) { + requireNonNull(key); + verifyMetricsInitialized(); + + Metric res = this.metricsByKey.get(key); + + return Optional.ofNullable(res); + } + + @Override public Metric getByUuid(String uuid) { return getOptionalByUuid(uuid) .orElseThrow(() -> new IllegalStateException(String.format("Metric with uuid '%s' does not exist", uuid))); diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStepTest.java index eb80fcfb603..e5ea57b4333 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStepTest.java @@ -19,6 +19,7 @@ */ package org.sonar.ce.task.projectanalysis.measure; +import java.util.UUID; import org.junit.Rule; import org.junit.Test; import org.mockito.ArgumentCaptor; @@ -40,6 +41,7 @@ import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import static org.sonar.api.measures.CoreMetrics.NCLOC; import static org.sonar.ce.task.projectanalysis.component.ReportComponent.DUMB_PROJECT; import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; @@ -105,6 +107,19 @@ public class PostMeasuresComputationChecksStepTest { } @Test + public void whenOnCheck_thenAnalysisUuidIsPresent() { + String analysisUuid = "analysisUuid"; + PostMeasuresComputationCheck check = mock(PostMeasuresComputationCheck.class); + analysisMetadataHolder.setUuid(analysisUuid); + + newStep(check).execute(new TestComputationStepContext()); + + ArgumentCaptor<Context> contextArgumentCaptor = ArgumentCaptor.forClass(Context.class); + verify(check).onCheck(contextArgumentCaptor.capture()); + assertThat(contextArgumentCaptor.getValue().getAnalysisUuid()).isEqualTo(analysisUuid); + } + + @Test public void do_nothing_if_no_extensions() { // no failure newStep().execute(new TestComputationStepContext()); diff --git a/server/sonar-ce-task-projectanalysis/src/testFixtures/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryRule.java b/server/sonar-ce-task-projectanalysis/src/testFixtures/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryRule.java index 8a8d9ac2512..0b9ce68bc0f 100644 --- a/server/sonar-ce-task-projectanalysis/src/testFixtures/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryRule.java +++ b/server/sonar-ce-task-projectanalysis/src/testFixtures/java/org/sonar/ce/task/projectanalysis/metric/MetricRepositoryRule.java @@ -100,6 +100,11 @@ public class MetricRepositoryRule extends ExternalResource implements MetricRepo } @Override + public Optional<Metric> getOptionalByKey(String key) { + return Optional.ofNullable(metricsByKey.get(key)); + } + + @Override public Metric getByUuid(String uuid) { Metric res = metricsByUuid.get(uuid); checkState(res != null, format("No Metric can be found for uuid %s", uuid)); diff --git a/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java b/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java index 3bfa5184256..40981cd7d13 100644 --- a/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java +++ b/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java @@ -108,6 +108,7 @@ public final class SqTables { "rules_parameters", "rules_profiles", "rule_repositories", + "sca_analyses", "sca_dependencies", "sca_encountered_licenses", "sca_issues", diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/component/BranchDaoIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/component/BranchDaoIT.java index 2b1cb099fca..feae0d3f20c 100644 --- a/server/sonar-db-dao/src/it/java/org/sonar/db/component/BranchDaoIT.java +++ b/server/sonar-db-dao/src/it/java/org/sonar/db/component/BranchDaoIT.java @@ -906,6 +906,41 @@ class BranchDaoIT { tuple(branch1.getUuid(), projectData1.projectUuid(), true)); } + @Test + void selectPullRequestsTargetingBranch() { + BranchDto mainBranch = new BranchDto(); + mainBranch.setProjectUuid("U1"); + mainBranch.setUuid("U1"); + mainBranch.setIsMain(true); + mainBranch.setBranchType(BranchType.BRANCH); + mainBranch.setKey("master"); + underTest.insert(dbSession, mainBranch); + + BranchDto prBranch = new BranchDto(); + prBranch.setProjectUuid("U1"); + prBranch.setUuid("U2"); + prBranch.setIsMain(false); + prBranch.setBranchType(PULL_REQUEST); + prBranch.setKey("1234"); + prBranch.setMergeBranchUuid("U1"); + underTest.insert(dbSession, prBranch); + + // make a second PR also targeting main branch + prBranch.setUuid("U3"); + prBranch.setKey("4321"); + prBranch.setMergeBranchUuid("U1"); + underTest.insert(dbSession, prBranch); + + // make a third PR NOT targeting main branch to be sure we filter it out + prBranch.setUuid("U4"); + prBranch.setKey("5678"); + prBranch.setMergeBranchUuid("U42"); + underTest.insert(dbSession, prBranch); + + var result = underTest.selectPullRequestsTargetingBranch(dbSession, "U1", "U1"); + assertThat(result.stream().map(BranchDto::getUuid).toList()).containsExactlyInAnyOrder("U2", "U3"); + } + private void insertBranchesForProjectUuids(boolean mainBranch, String... uuids) { for (String uuid : uuids) { BranchDto dto = new BranchDto(); diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java index e1fb868b7c0..b781c2ad344 100644 --- a/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java +++ b/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java @@ -2001,6 +2001,29 @@ oldCreationDate)); "sca_issue_uuid", "issue-uuid2", "sca_release_uuid", "release-uuid2"))); assertThat(db.countRowsOfTable(dbSession, "sca_issues_releases")).isEqualTo(2); + + var issueReleaseChangeBase = Map.of("created_at", 0L, "updated_at", 0L); + db.executeInsert("sca_issue_rels_changes", merge(issueReleaseChangeBase, Map.of("uuid", "issue-release-change-uuid1", + "sca_issues_releases_uuid", "issue-release-uuid1"))); + db.executeInsert("sca_issue_rels_changes", merge(issueReleaseChangeBase, Map.of("uuid", "issue-release-change-uuid2", + "sca_issues_releases_uuid", "issue-release-uuid2"))); + + assertThat(db.countRowsOfTable(dbSession, "sca_issue_rels_changes")).isEqualTo(2); + + var analysisBase = Map.of( + "created_at", 0L, + "updated_at", 0L, + "status", "COMPLETED", + "errors", "[]", + "parsed_files", "[]", + "failed_reason", "something"); + db.executeInsert("sca_analyses", merge(analysisBase, Map.of( + "uuid", "analysis-uuid1", + "component_uuid", branch1Uuid))); + db.executeInsert("sca_analyses", merge(analysisBase, Map.of( + "uuid", "analysis-uuid2", + "component_uuid", branch2Uuid))); + assertThat(db.countRowsOfTable(dbSession, "sca_analyses")).isEqualTo(2); } @Test @@ -2016,6 +2039,49 @@ oldCreationDate)); assertThat(db.countRowsOfTable(dbSession, "sca_releases")).isEqualTo(1); assertThat(db.countRowsOfTable(dbSession, "sca_dependencies")).isEqualTo(1); assertThat(db.countRowsOfTable(dbSession, "sca_issues_releases")).isEqualTo(1); + assertThat(db.countRowsOfTable(dbSession, "sca_issue_rels_changes")).isEqualTo(1); + assertThat(db.countRowsOfTable(dbSession, "sca_analyses")).isEqualTo(1); + } + + @Test + void deleteProject_purgesScaLicenseProfiles() { + ProjectDto project = db.components().insertPublicProject().getProjectDto(); + + var scaLicenseProfileProjectBase = Map.of( + "sca_license_profile_uuid", "sca-license-profile-uuid1", + "created_at", 0L, + "updated_at", 0L); + + db.executeInsert("sca_lic_prof_projects", merge(scaLicenseProfileProjectBase, Map.of( + "uuid", "sca-lic-prof-project-uuid1", + "project_uuid", project.getUuid()))); + + db.executeInsert("sca_lic_prof_projects", merge(scaLicenseProfileProjectBase, Map.of( + "uuid", "sca-lic-prof-project-uuid2", + "project_uuid", "other-project-uuid"))); + + assertThat(db.countRowsOfTable(dbSession, "sca_lic_prof_projects")).isEqualTo(2); + + underTest.deleteProject(dbSession, project.getUuid(), project.getQualifier(), project.getName(), project.getKey()); + + assertThat(db.countRowsOfTable(dbSession, "sca_lic_prof_projects")).isEqualTo(1); + } + + @Test + void whenDeleteBranch_thenPurgeArchitectureGraphs() { + ProjectDto project = db.components().insertPublicProject().getProjectDto(); + BranchDto branch1 = db.components().insertProjectBranch(project); + BranchDto branch2 = db.components().insertProjectBranch(project); + + db.executeInsert("architecture_graphs", Map.of("uuid", "12345", "branch_uuid", branch1.getUuid(), "ecosystem", "xoo", "type", "file_graph", "graph_data", "{}")); + db.executeInsert("architecture_graphs", Map.of("uuid", "123456", "branch_uuid", branch1.getUuid(), "ecosystem", "xoo", "type", "class_graph", "graph_data", "{}")); + db.executeInsert("architecture_graphs", Map.of("uuid", "1234567", "branch_uuid", branch2.getUuid(), "ecosystem", "xoo", "type", "file_graph", "graph_data", "{}")); + + assertThat(db.countRowsOfTable(dbSession, "architecture_graphs")).isEqualTo(3); + underTest.deleteBranch(dbSession, branch1.getUuid()); + assertThat(db.countRowsOfTable(dbSession, "architecture_graphs")).isEqualTo(1); + underTest.deleteBranch(dbSession, branch2.getUuid()); + assertThat(db.countRowsOfTable(dbSession, "architecture_graphs")).isZero(); } private AnticipatedTransitionDto getAnticipatedTransitionsDto(String uuid, String projectUuid, Date creationDate) { diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/user/GroupDaoIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/user/GroupDaoIT.java index 9b52c0d7264..16e86bcd2e5 100644 --- a/server/sonar-db-dao/src/it/java/org/sonar/db/user/GroupDaoIT.java +++ b/server/sonar-db-dao/src/it/java/org/sonar/db/user/GroupDaoIT.java @@ -223,6 +223,47 @@ class GroupDaoIT { } @Test + void findByQuery_withUserId_countAndFindExpectedUsers() { + GroupDto group1 = db.users().insertGroup("sonar-users"); + GroupDto group2 = db.users().insertGroup("SONAR-ADMINS"); + GroupDto group3 = db.users().insertGroup("customers-group1"); + + UserDto user = db.users().insertUser(); + UserDto user2 = db.users().insertUser(); + db.users().insertMember(group1, user); + db.users().insertMember(group2, user); + db.users().insertMember(group2, user2); + db.users().insertMember(group3, user2); + + GroupQuery groupQueryIncludingUser = GroupQuery.builder().userId(user.getUuid()).build(); + + assertThat(underTest.countByQuery(dbSession, groupQueryIncludingUser)).isEqualTo(2); + assertThat(underTest.selectByQuery(dbSession, groupQueryIncludingUser, 1, 100)) + .extracting(GroupDto::getUuid) + .containsExactlyInAnyOrder(group1.getUuid(), group2.getUuid()); + } + + @Test + void findByQuery_withExcludedUserId_countAndFindExpectedUsers() { + GroupDto group1 = db.users().insertGroup("sonar-users"); + GroupDto group2 = db.users().insertGroup("SONAR-ADMINS"); + GroupDto group3 = db.users().insertGroup("customers-group1"); + + UserDto user = db.users().insertUser(); + UserDto user2 = db.users().insertUser(); + db.users().insertMember(group1, user); + db.users().insertMember(group2, user); + db.users().insertMember(group2, user2); + db.users().insertMember(group3, user2); + + GroupQuery groupQueryExcludingUser = GroupQuery.builder().excludedUserId(user.getUuid()).build(); + assertThat(underTest.countByQuery(dbSession, groupQueryExcludingUser)).isEqualTo(1); + assertThat(underTest.selectByQuery(dbSession, groupQueryExcludingUser, 1, 100)) + .extracting(GroupDto::getUuid) + .containsExactlyInAnyOrder(group3.getUuid()); + } + + @Test void deleteByUuid() { db.getDbClient().groupDao().insert(dbSession, aGroup); diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java index 1f72e4a4002..faa712d555d 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDao.java @@ -214,4 +214,8 @@ public class BranchDao implements Dao { public List<BranchDto> selectMainBranchesAssociatedToDefaultQualityProfile(DbSession dbSession) { return mapper(dbSession).selectMainBranchesAssociatedToDefaultQualityProfile(); } + + public List<BranchDto> selectPullRequestsTargetingBranch(DbSession dbSession, String projectUuid, String branchUuid) { + return mapper(dbSession).selectPullRequestsTargetingBranch(projectUuid, branchUuid); + } } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java index 04c4642834f..dbd11313580 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchMapper.java @@ -81,4 +81,6 @@ public interface BranchMapper { List<BranchDto> selectMainBranches(); List<BranchDto> selectMainBranchesAssociatedToDefaultQualityProfile(); + + List<BranchDto> selectPullRequestsTargetingBranch(@Param("projectUuid") String projectUuid, @Param("branchUuid") String branchUuid); } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java index 230d9aff010..fca991f9f28 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java @@ -510,6 +510,13 @@ class PurgeCommands { profiler.stop(); } + public void deleteArchitectureGraphs(String branchUuid) { + profiler.start("deleteArchitectureGraphs (architecture_graphs)"); + purgeMapper.deleteArchitectureGraphsByBranchUuid(branchUuid); + session.commit(); + profiler.stop(); + } + public void deleteAnticipatedTransitions(String projectUuid, long createdAt) { profiler.start("deleteAnticipatedTransitions (anticipated_transitions)"); purgeMapper.deleteAnticipatedTransitionsByProjectUuidAndCreationDate(projectUuid, createdAt); @@ -525,11 +532,24 @@ class PurgeCommands { } public void deleteScaActivity(String componentUuid) { + // delete sca_analyses first since it sort of marks the analysis as valid/existing + profiler.start("deleteScaAnalyses (sca_analyses)"); + purgeMapper.deleteScaAnalysesByComponentUuid(componentUuid); + session.commit(); + profiler.stop(); + profiler.start("deleteScaDependencies (sca_dependencies)"); purgeMapper.deleteScaDependenciesByComponentUuid(componentUuid); session.commit(); profiler.stop(); + // this must be done before deleting sca_issues_releases or we won't + // be able to find the rows + profiler.start("deleteScaIssuesReleasesChanges (sca_issue_rels_changes)"); + purgeMapper.deleteScaIssuesReleasesChangesByComponentUuid(componentUuid); + session.commit(); + profiler.stop(); + profiler.start("deleteScaIssuesReleases (sca_issues_releases)"); purgeMapper.deleteScaIssuesReleasesByComponentUuid(componentUuid); session.commit(); @@ -542,4 +562,10 @@ class PurgeCommands { session.commit(); profiler.stop(); } + + public void deleteScaLicenseProfiles(String projectUuid) { + profiler.start("deleteScaLicenseProfileProjects (sca_lic_prof_projects)"); + purgeMapper.deleteScaLicenseProfileProjectsByProjectUuid(projectUuid); + profiler.stop(); + } } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java index ce5e0cf5e70..ff34ce5783d 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java @@ -281,6 +281,7 @@ public class PurgeDao implements Dao { commands.deleteReportSubscriptions(branchUuid); commands.deleteIssuesFixed(branchUuid); commands.deleteScaActivity(branchUuid); + commands.deleteArchitectureGraphs(branchUuid); } private static void deleteProject(String projectUuid, PurgeMapper mapper, PurgeCommands commands) { @@ -313,6 +314,7 @@ public class PurgeDao implements Dao { commands.deleteOutdatedProperties(projectUuid); commands.deleteReportSchedules(projectUuid); commands.deleteReportSubscriptions(projectUuid); + commands.deleteScaLicenseProfiles(projectUuid); } /** diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java index 5ca08a12d7a..ab4b369aef6 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java @@ -195,9 +195,17 @@ public interface PurgeMapper { void deleteIssuesFixedByBranchUuid(@Param("branchUuid") String branchUuid); + void deleteScaAnalysesByComponentUuid(@Param("componentUuid") String componentUuid); + void deleteScaDependenciesByComponentUuid(@Param("componentUuid") String componentUuid); void deleteScaIssuesReleasesByComponentUuid(@Param("componentUuid") String componentUuid); + void deleteScaIssuesReleasesChangesByComponentUuid(@Param("componentUuid") String componentUuid); + void deleteScaReleasesByComponentUuid(@Param("componentUuid") String componentUuid); + + void deleteScaLicenseProfileProjectsByProjectUuid(@Param("projectUuid") String projectUuid); + + void deleteArchitectureGraphsByBranchUuid(@Param("branchUuid") String branchUuid); } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/user/GroupQuery.java b/server/sonar-db-dao/src/main/java/org/sonar/db/user/GroupQuery.java index a2185648d6b..b54c25da22d 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/user/GroupQuery.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/user/GroupQuery.java @@ -29,10 +29,14 @@ import org.sonar.db.WildcardPosition; public class GroupQuery { private final String searchText; private final String isManagedSqlClause; + private final String userId; + private final String excludedUserId; - GroupQuery(@Nullable String searchText, @Nullable String isManagedSqlClause) { + GroupQuery(@Nullable String searchText, @Nullable String isManagedSqlClause, String userId, String excludedUserId) { this.searchText = searchTextToSearchTextSql(searchText); this.isManagedSqlClause = isManagedSqlClause; + this.userId = userId; + this.excludedUserId = excludedUserId; } private static String searchTextToSearchTextSql(@Nullable String text) { @@ -54,6 +58,16 @@ public class GroupQuery { return isManagedSqlClause; } + @CheckForNull + public String getUserId() { + return userId; + } + + @CheckForNull + public String getExcludedUserId() { + return excludedUserId; + } + public static GroupQueryBuilder builder() { return new GroupQueryBuilder(); } @@ -61,6 +75,8 @@ public class GroupQuery { public static final class GroupQueryBuilder { private String searchText = null; private String isManagedSqlClause = null; + private String userId = null; + private String excludedUserId = null; private GroupQueryBuilder() { } @@ -70,14 +86,23 @@ public class GroupQuery { return this; } - public GroupQuery.GroupQueryBuilder isManagedClause(@Nullable String isManagedSqlClause) { this.isManagedSqlClause = isManagedSqlClause; return this; } + public GroupQuery.GroupQueryBuilder userId(@Nullable String userId) { + this.userId = userId; + return this; + } + + public GroupQuery.GroupQueryBuilder excludedUserId(@Nullable String excludedUserId) { + this.excludedUserId = excludedUserId; + return this; + } + public GroupQuery build() { - return new GroupQuery(searchText, isManagedSqlClause); + return new GroupQuery(searchText, isManagedSqlClause, userId, excludedUserId); } } } diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml index f96a116d7c1..acf970ba7ac 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/BranchMapper.xml @@ -322,4 +322,13 @@ and p.uuid not in (select project_uuid from project_qprofiles) </select> + <select id="selectPullRequestsTargetingBranch" resultType="org.sonar.db.component.BranchDto"> + select <include refid="columns"/> + from project_branches pb + where + pb.project_uuid = #{projectUuid, jdbcType=VARCHAR} + and pb.merge_branch_uuid = #{branchUuid, jdbcType=VARCHAR} + and pb.branch_type = 'PULL_REQUEST' + </select> + </mapper> diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml index 4a64f3cdeab..bc5c066d6b4 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml @@ -670,14 +670,28 @@ delete from issues_fixed where pull_request_uuid = #{branchUuid,jdbcType=VARCHAR} </delete> + <delete id="deleteArchitectureGraphsByBranchUuid"> + delete from architecture_graphs where branch_uuid = #{branchUuid,jdbcType=VARCHAR} + </delete> + <delete id="deleteScaAnalysesByComponentUuid"> + delete from sca_analyses where component_uuid = #{componentUuid,jdbcType=VARCHAR} + </delete> <delete id="deleteScaDependenciesByComponentUuid"> delete from sca_dependencies where sca_release_uuid in (select uuid from sca_releases where component_uuid = #{componentUuid,jdbcType=VARCHAR}) </delete> <delete id="deleteScaIssuesReleasesByComponentUuid"> delete from sca_issues_releases where sca_release_uuid in (select uuid from sca_releases where component_uuid = #{componentUuid,jdbcType=VARCHAR}) </delete> + <delete id="deleteScaIssuesReleasesChangesByComponentUuid"> + delete from sca_issue_rels_changes where sca_issues_releases_uuid in + (select sca_issues_releases.uuid from sca_issues_releases join sca_releases on sca_releases.uuid = sca_issues_releases.sca_release_uuid + where sca_releases.component_uuid = #{componentUuid,jdbcType=VARCHAR}) + </delete> <delete id="deleteScaReleasesByComponentUuid"> delete from sca_releases where component_uuid = #{componentUuid,jdbcType=VARCHAR} </delete> + <delete id="deleteScaLicenseProfileProjectsByProjectUuid"> + delete from sca_lic_prof_projects where project_uuid = #{projectUuid,jdbcType=VARCHAR} + </delete> </mapper> diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/user/GroupMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/user/GroupMapper.xml index 7adc671389e..87ed608b98a 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/user/GroupMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/user/GroupMapper.xml @@ -113,6 +113,12 @@ <if test="query.isManagedSqlClause != null"> AND ${query.isManagedSqlClause} </if> + <if test="query.userId != null"> + AND g.uuid in (select group_uuid from groups_users gu where gu.user_uuid = #{query.userId,jdbcType=VARCHAR}) + </if> + <if test="query.excludedUserId != null"> + AND g.uuid not in (select group_uuid from groups_users gu where gu.user_uuid = #{query.excludedUserId,jdbcType=VARCHAR}) + </if> </where> </sql> </mapper> diff --git a/server/sonar-db-dao/src/schema/schema-sq.ddl b/server/sonar-db-dao/src/schema/schema-sq.ddl index c6929b10b95..c6bfb909cf6 100644 --- a/server/sonar-db-dao/src/schema/schema-sq.ddl +++ b/server/sonar-db-dao/src/schema/schema-sq.ddl @@ -121,12 +121,15 @@ CREATE INDEX "IDX_APP_PROJ_PROJECT_UUID" ON "APP_PROJECTS"("PROJECT_UUID" NULLS CREATE TABLE "ARCHITECTURE_GRAPHS"( "UUID" CHARACTER VARYING(40) NOT NULL, "BRANCH_UUID" CHARACTER VARYING(40) NOT NULL, - "SOURCE" CHARACTER VARYING(255) NOT NULL, + "ECOSYSTEM" CHARACTER VARYING(255) NOT NULL, "TYPE" CHARACTER VARYING(255) NOT NULL, - "GRAPH_DATA" CHARACTER LARGE OBJECT NOT NULL + "GRAPH_DATA" CHARACTER LARGE OBJECT NOT NULL, + "ANALYSIS_UUID" CHARACTER VARYING(40), + "PERSPECTIVE_KEY" CHARACTER VARYING(255), + "GRAPH_VERSION" CHARACTER VARYING(255) DEFAULT '1.0.0' NOT NULL ); ALTER TABLE "ARCHITECTURE_GRAPHS" ADD CONSTRAINT "PK_ARCHITECTURE_GRAPHS" PRIMARY KEY("UUID"); -CREATE UNIQUE NULLS NOT DISTINCT INDEX "UQ_IDX_AG_BRANCH_TYPE_SOURCE" ON "ARCHITECTURE_GRAPHS"("BRANCH_UUID" NULLS FIRST, "TYPE" NULLS FIRST, "SOURCE" NULLS FIRST); +CREATE UNIQUE NULLS NOT DISTINCT INDEX "UQ_IDX_AG_BRCH_TP_SRC_PSPCTV" ON "ARCHITECTURE_GRAPHS"("BRANCH_UUID" NULLS FIRST, "TYPE" NULLS FIRST, "ECOSYSTEM" NULLS FIRST, "PERSPECTIVE_KEY" NULLS FIRST); CREATE TABLE "AUDITS"( "UUID" CHARACTER VARYING(40) NOT NULL, @@ -1042,6 +1045,19 @@ CREATE TABLE "SAML_MESSAGE_IDS"( ALTER TABLE "SAML_MESSAGE_IDS" ADD CONSTRAINT "PK_SAML_MESSAGE_IDS" PRIMARY KEY("UUID"); CREATE UNIQUE NULLS NOT DISTINCT INDEX "SAML_MESSAGE_IDS_UNIQUE" ON "SAML_MESSAGE_IDS"("MESSAGE_ID" NULLS FIRST); +CREATE TABLE "SCA_ANALYSES"( + "UUID" CHARACTER VARYING(40) NOT NULL, + "COMPONENT_UUID" CHARACTER VARYING(40) NOT NULL, + "STATUS" CHARACTER VARYING(40) NOT NULL, + "FAILED_REASON" CHARACTER VARYING(255), + "ERRORS" CHARACTER LARGE OBJECT NOT NULL, + "PARSED_FILES" CHARACTER LARGE OBJECT NOT NULL, + "CREATED_AT" BIGINT NOT NULL, + "UPDATED_AT" BIGINT NOT NULL +); +ALTER TABLE "SCA_ANALYSES" ADD CONSTRAINT "PK_SCA_ANALYSES" PRIMARY KEY("UUID"); +CREATE UNIQUE NULLS NOT DISTINCT INDEX "SCA_ANALYSES_COMPONENT_UNIQ" ON "SCA_ANALYSES"("COMPONENT_UUID" NULLS FIRST); + CREATE TABLE "SCA_DEPENDENCIES"( "UUID" CHARACTER VARYING(40) NOT NULL, "SCA_RELEASE_UUID" CHARACTER VARYING(40) NOT NULL, @@ -1100,7 +1116,8 @@ CREATE TABLE "SCA_ISSUES_RELEASES"( "CREATED_AT" BIGINT NOT NULL, "UPDATED_AT" BIGINT NOT NULL, "STATUS" CHARACTER VARYING(40) NOT NULL, - "ASSIGNEE_UUID" CHARACTER VARYING(40) + "ASSIGNEE_UUID" CHARACTER VARYING(40), + "PREVIOUS_MANUAL_STATUS" CHARACTER VARYING(40) ); ALTER TABLE "SCA_ISSUES_RELEASES" ADD CONSTRAINT "PK_SCA_ISSUES_RELEASES" PRIMARY KEY("UUID"); CREATE INDEX "SCA_ISSUES_RELEASES_SCA_ISSUE" ON "SCA_ISSUES_RELEASES"("SCA_ISSUE_UUID" NULLS FIRST); @@ -1143,7 +1160,8 @@ CREATE TABLE "SCA_LICENSE_PROFILES"( "IS_DEFAULT_PROFILE" BOOLEAN NOT NULL, "NAME" CHARACTER VARYING(400) NOT NULL, "CREATED_AT" BIGINT NOT NULL, - "UPDATED_AT" BIGINT NOT NULL + "UPDATED_AT" BIGINT NOT NULL, + "POLICY_UPDATED_AT" BIGINT NOT NULL ); ALTER TABLE "SCA_LICENSE_PROFILES" ADD CONSTRAINT "PK_SCA_LICENSE_PROFILES" PRIMARY KEY("UUID"); CREATE UNIQUE NULLS NOT DISTINCT INDEX "SCA_LICENSE_PROFILES_UNIQ" ON "SCA_LICENSE_PROFILES"("NAME" NULLS FIRST); @@ -1165,6 +1183,7 @@ CREATE TABLE "SCA_RELEASES"( ); ALTER TABLE "SCA_RELEASES" ADD CONSTRAINT "PK_SCA_RELEASES" PRIMARY KEY("UUID"); CREATE INDEX "SCA_RELEASES_COMP_UUID_UUID" ON "SCA_RELEASES"("COMPONENT_UUID" NULLS FIRST, "UUID" NULLS FIRST); +CREATE UNIQUE NULLS NOT DISTINCT INDEX "SCA_RELEASES_PACKAGE_URL_UNIQ" ON "SCA_RELEASES"("PACKAGE_URL" NULLS FIRST, "COMPONENT_UUID" NULLS FIRST); CREATE TABLE "SCA_VULNERABILITY_ISSUES"( "UUID" CHARACTER VARYING(40) NOT NULL, @@ -1172,7 +1191,8 @@ CREATE TABLE "SCA_VULNERABILITY_ISSUES"( "CWE_IDS" CHARACTER VARYING(255) NOT NULL, "CVSS_SCORE" DOUBLE PRECISION, "CREATED_AT" BIGINT NOT NULL, - "UPDATED_AT" BIGINT NOT NULL + "UPDATED_AT" BIGINT NOT NULL, + "WITHDRAWN" BOOLEAN DEFAULT FALSE NOT NULL ); ALTER TABLE "SCA_VULNERABILITY_ISSUES" ADD CONSTRAINT "PK_SCA_VULNERABILITY_ISSUES" PRIMARY KEY("UUID"); diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/user/UserDbTester.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/user/UserDbTester.java index 26dcfbab451..d1ee49895e2 100644 --- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/user/UserDbTester.java +++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/user/UserDbTester.java @@ -208,7 +208,7 @@ public class UserDbTester { } public int countAllGroups() { - return db.getDbClient().groupDao().countByQuery(db.getSession(), new GroupQuery(null, null)); + return db.getDbClient().groupDao().countByQuery(db.getSession(), new GroupQuery(null, null, null, null)); } public Optional<ExternalGroupDto> selectExternalGroupByGroupUuid(String groupUuid) { diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddAnalysisUuidOnArchitectureGraphsIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddAnalysisUuidOnArchitectureGraphsIT.java new file mode 100644 index 00000000000..167b797de15 --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddAnalysisUuidOnArchitectureGraphsIT.java @@ -0,0 +1,55 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.def.VarcharColumnDef; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static java.sql.Types.VARCHAR; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + + +class AddAnalysisUuidOnArchitectureGraphsIT { + private static final String TABLE_NAME = "architecture_graphs"; + private static final String COLUMN_NAME = "analysis_uuid"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(AddAnalysisUuidOnArchitectureGraphs.class); + private final DdlChange underTest = new AddAnalysisUuidOnArchitectureGraphs(db.database()); + + @Test + void execute_shouldAddColumn() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, VarcharColumnDef.UUID_SIZE, true); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, VarcharColumnDef.UUID_SIZE, true); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddAssigneeNameToScaIssuesReleasesIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddAssigneeNameToScaIssuesReleasesIT.java new file mode 100644 index 00000000000..190c168adca --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddAssigneeNameToScaIssuesReleasesIT.java @@ -0,0 +1,53 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static java.sql.Types.VARCHAR; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class AddAssigneeNameToScaIssuesReleasesIT { + private static final String TABLE_NAME = "sca_issues_releases"; + private static final String COLUMN_NAME = "assignee_name"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(AddAssigneeNameToScaIssuesReleases.class); + private final DdlChange underTest = new AddAssigneeNameToScaIssuesReleases(db.database()); + + @Test + void execute_shouldAddColumn() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, 200, true); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, 200, true); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddGraphVersionOnArchitectureGraphsIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddGraphVersionOnArchitectureGraphsIT.java new file mode 100644 index 00000000000..79cf8e29606 --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddGraphVersionOnArchitectureGraphsIT.java @@ -0,0 +1,54 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static java.sql.Types.VARCHAR; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + + +class AddGraphVersionOnArchitectureGraphsIT { + private static final String TABLE_NAME = "architecture_graphs"; + private static final String COLUMN_NAME = "graph_version"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(AddGraphVersionOnArchitectureGraphsTable.class); + private final DdlChange underTest = new AddGraphVersionOnArchitectureGraphsTable(db.database()); + + @Test + void execute_shouldAddColumn() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, 255, false); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, 255, false); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddPerspectiveKeyOnArchitectureGraphsIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddPerspectiveKeyOnArchitectureGraphsIT.java new file mode 100644 index 00000000000..22f757cd152 --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddPerspectiveKeyOnArchitectureGraphsIT.java @@ -0,0 +1,53 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static java.sql.Types.VARCHAR; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class AddPerspectiveKeyOnArchitectureGraphsIT { + private static final String TABLE_NAME = "architecture_graphs"; + private static final String COLUMN_NAME = "perspective_key"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(AddPerspectiveKeyOnArchitectureGraphs.class); + private final DdlChange underTest = new AddPerspectiveKeyOnArchitectureGraphs(db.database()); + + @Test + void execute_shouldAddColumn() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, 255, true); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, 255, true); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddPolicyUpdatedAtToScaLicenseProfilesTableIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddPolicyUpdatedAtToScaLicenseProfilesTableIT.java new file mode 100644 index 00000000000..cc4798f73d2 --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddPolicyUpdatedAtToScaLicenseProfilesTableIT.java @@ -0,0 +1,53 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static java.sql.Types.BIGINT; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class AddPolicyUpdatedAtToScaLicenseProfilesTableIT { + private static final String TABLE_NAME = "sca_license_profiles"; + private static final String COLUMN_NAME = "policy_updated_at"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(AddPolicyUpdatedAtToScaLicenseProfilesTable.class); + private final DdlChange underTest = new AddPolicyUpdatedAtToScaLicenseProfilesTable(db.database()); + + @Test + void execute_shouldAddColumn() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, BIGINT, null, true); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, BIGINT, null, true); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddPreviousManualStatusToScaIssuesReleasesIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddPreviousManualStatusToScaIssuesReleasesIT.java new file mode 100644 index 00000000000..cf293d4c9bd --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/AddPreviousManualStatusToScaIssuesReleasesIT.java @@ -0,0 +1,53 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static java.sql.Types.VARCHAR; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class AddPreviousManualStatusToScaIssuesReleasesIT { + private static final String TABLE_NAME = "sca_issues_releases"; + private static final String COLUMN_NAME = "previous_manual_status"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(AddPreviousManualStatusToScaIssuesReleases.class); + private final DdlChange underTest = new AddPreviousManualStatusToScaIssuesReleases(db.database()); + + @Test + void execute_shouldAddColumn() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, 40, true); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, 40, true); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/BackfillRemoveAssigneeNameFromIssueReleaseChangesIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/BackfillRemoveAssigneeNameFromIssueReleaseChangesIT.java new file mode 100644 index 00000000000..e8c1735e3df --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/BackfillRemoveAssigneeNameFromIssueReleaseChangesIT.java @@ -0,0 +1,89 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import javax.annotation.Nullable; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DataChange; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class BackfillRemoveAssigneeNameFromIssueReleaseChangesIT { + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(BackfillRemoveAssigneeNameFromIssueReleaseChanges.class); + private final DataChange underTest = new BackfillRemoveAssigneeNameFromIssueReleaseChanges(db.database()); + + @Test + void execute_withAssigneeName_modifiesRecords() throws SQLException { + // Record with only assigneeName field - should result in empty object + insertIssueReleaseChange("1", "{\"assigneeName\": [null, \"alice\"]}"); + + // Record with mixed fields - should remove only assigneeName + insertIssueReleaseChange("2", + "{" + + "\"assigneeUuid\":[\"user1-uuid\",\"user2-uuid\"]," + + "\"assigneeName\":[\"alice\",\"bob\"]}"); + + underTest.execute(); + + assertThat(getChangeData("1")).isEqualTo("{}"); + assertThat(getChangeData("2")).isEqualTo("{\"assigneeUuid\":[\"user1-uuid\",\"user2-uuid\"]}"); + } + + @Test + void execute_withoutAssigneeName_doesNotModifyRecords() throws SQLException { + var changeData1 = "{\"assigneeUuid\":[\"user1-uuid\",\"user2-uuid\"]}"; + insertIssueReleaseChange("1", changeData1); + + underTest.execute(); + + assertThat(getChangeData("1")).isEqualTo(changeData1); + } + + @Test + void execute_withNullChangeData_doesNotModifyRecords() throws SQLException { + insertIssueReleaseChange("1", null); + + underTest.execute(); + + assertThat(getChangeData("1")).isNull(); + } + + private void insertIssueReleaseChange(String suffix, @Nullable String changeData) { + db.executeInsert("sca_issue_rels_changes", + "uuid", "scaIssueReleaseChangeUuid" + suffix, + "sca_issues_releases_uuid", "scaIssueReleaseUuid" + suffix, + "user_uuid", "user1-uuid", + "change_data", changeData, + "created_at", 1L, + "updated_at", 2L, + "change_comment", "my comment"); + } + + private String getChangeData(String suffix) { + var uuid = "scaIssueReleaseChangeUuid" + suffix; + return (String) db.selectFirst("select change_data from sca_issue_rels_changes where uuid = '" + uuid + "'") + .get("change_data"); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateScaAnalysesTableIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateScaAnalysesTableIT.java new file mode 100644 index 00000000000..f67d12fb20c --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateScaAnalysesTableIT.java @@ -0,0 +1,64 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static java.sql.Types.BIGINT; +import static java.sql.Types.CLOB; +import static java.sql.Types.VARCHAR; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; +import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.UUID_SIZE; + +class CreateScaAnalysesTableIT { + private static final String TABLE_NAME = "sca_analyses"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(CreateScaAnalysesTable.class); + private final DdlChange underTest = new CreateScaAnalysesTable(db.database()); + + @Test + void execute_shouldCreateTable() throws SQLException { + db.assertTableDoesNotExist(TABLE_NAME); + underTest.execute(); + db.assertTableExists(TABLE_NAME); + db.assertPrimaryKey(TABLE_NAME, "pk_sca_analyses", "uuid"); + db.assertColumnDefinition(TABLE_NAME, "uuid", VARCHAR, UUID_SIZE, false); + db.assertColumnDefinition(TABLE_NAME, "component_uuid", VARCHAR, UUID_SIZE, false); + db.assertColumnDefinition(TABLE_NAME, "status", VARCHAR, 40, false); + db.assertColumnDefinition(TABLE_NAME, "failed_reason", VARCHAR, 255, true); + db.assertColumnDefinition(TABLE_NAME, "errors", CLOB, null, false); + db.assertColumnDefinition(TABLE_NAME, "parsed_files", CLOB, null, false); + db.assertColumnDefinition(TABLE_NAME, "created_at", BIGINT, null, false); + db.assertColumnDefinition(TABLE_NAME, "updated_at", BIGINT, null, false); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertTableDoesNotExist(TABLE_NAME); + underTest.execute(); + underTest.execute(); + db.assertTableExists(TABLE_NAME); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnArchitectureGraphsIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnArchitectureGraphsIT.java new file mode 100644 index 00000000000..8cd566df9ce --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnArchitectureGraphsIT.java @@ -0,0 +1,56 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class CreateUniqueIndexOnArchitectureGraphsIT { + private static final String TABLE_NAME = "architecture_graphs"; + private static final String INDEX_NAME = "uq_idx_ag_brch_tp_src_pspctv"; + private static final String COLUMN_NAME_BRANCH_UUID = "branch_uuid"; + private static final String COLUMN_NAME_TYPE = "type"; + private static final String COLUMN_NAME_ECOSYSTEM = "ecosystem"; + private static final String COLUMN_NAME_PERSPECTIVE_KEY = "perspective_key"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(CreateUniqueIndexOnArchitectureGraphs.class); + private final DdlChange underTest = new CreateUniqueIndexOnArchitectureGraphs(db.database()); + + @Test + void execute_shouldCreateIndex() throws SQLException { + db.assertIndexDoesNotExist(TABLE_NAME, INDEX_NAME); + underTest.execute(); + db.assertUniqueIndex(TABLE_NAME, INDEX_NAME, COLUMN_NAME_BRANCH_UUID, COLUMN_NAME_TYPE, COLUMN_NAME_ECOSYSTEM, COLUMN_NAME_PERSPECTIVE_KEY); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertIndexDoesNotExist(TABLE_NAME, INDEX_NAME); + underTest.execute(); + underTest.execute(); + db.assertUniqueIndex(TABLE_NAME, INDEX_NAME, COLUMN_NAME_BRANCH_UUID, COLUMN_NAME_TYPE, COLUMN_NAME_ECOSYSTEM, COLUMN_NAME_PERSPECTIVE_KEY); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaAnalysesIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaAnalysesIT.java new file mode 100644 index 00000000000..7ccc34ec67e --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaAnalysesIT.java @@ -0,0 +1,52 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static org.sonar.db.MigrationDbTester.createForMigrationStep; +import static org.sonar.server.platform.db.migration.version.v202503.CreateUniqueIndexOnScaAnalyses.COLUMN_NAME_COMPONENT_UUID; +import static org.sonar.server.platform.db.migration.version.v202503.CreateUniqueIndexOnScaAnalyses.INDEX_NAME; +import static org.sonar.server.platform.db.migration.version.v202503.CreateUniqueIndexOnScaAnalyses.TABLE_NAME; + +class CreateUniqueIndexOnScaAnalysesIT { + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(CreateUniqueIndexOnScaAnalyses.class); + private final DdlChange underTest = new CreateUniqueIndexOnScaAnalyses(db.database()); + + @Test + void execute_shouldCreateIndex() throws SQLException { + db.assertIndexDoesNotExist(TABLE_NAME, INDEX_NAME); + underTest.execute(); + db.assertUniqueIndex(TABLE_NAME, INDEX_NAME, COLUMN_NAME_COMPONENT_UUID); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertIndexDoesNotExist(TABLE_NAME, INDEX_NAME); + underTest.execute(); + underTest.execute(); + db.assertUniqueIndex(TABLE_NAME, INDEX_NAME, COLUMN_NAME_COMPONENT_UUID); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaReleasesIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaReleasesIT.java new file mode 100644 index 00000000000..9588ff8fe88 --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaReleasesIT.java @@ -0,0 +1,53 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static org.sonar.db.MigrationDbTester.createForMigrationStep; +import static org.sonar.server.platform.db.migration.version.v202503.CreateUniqueIndexOnScaReleases.COLUMN_NAME_COMPONENT_UUID; +import static org.sonar.server.platform.db.migration.version.v202503.CreateUniqueIndexOnScaReleases.COLUMN_NAME_PACKAGE_URL; +import static org.sonar.server.platform.db.migration.version.v202503.CreateUniqueIndexOnScaReleases.INDEX_NAME; +import static org.sonar.server.platform.db.migration.version.v202503.CreateUniqueIndexOnScaReleases.TABLE_NAME; + +class CreateUniqueIndexOnScaReleasesIT { + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(CreateUniqueIndexOnScaReleases.class); + private final DdlChange underTest = new CreateUniqueIndexOnScaReleases(db.database()); + + @Test + void execute_shouldCreateIndex() throws SQLException { + db.assertIndexDoesNotExist(TABLE_NAME, INDEX_NAME); + underTest.execute(); + db.assertUniqueIndex(TABLE_NAME, INDEX_NAME, COLUMN_NAME_PACKAGE_URL, COLUMN_NAME_COMPONENT_UUID); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertIndexDoesNotExist(TABLE_NAME, INDEX_NAME); + underTest.execute(); + underTest.execute(); + db.assertUniqueIndex(TABLE_NAME, INDEX_NAME, COLUMN_NAME_PACKAGE_URL, COLUMN_NAME_COMPONENT_UUID); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropAssigneeNameFromScaIssuesReleasesIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropAssigneeNameFromScaIssuesReleasesIT.java new file mode 100644 index 00000000000..472b716adac --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropAssigneeNameFromScaIssuesReleasesIT.java @@ -0,0 +1,53 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static java.sql.Types.VARCHAR; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class DropAssigneeNameFromScaIssuesReleasesIT { + private static final String TABLE_NAME = "sca_issues_releases"; + private static final String COLUMN_NAME = "assignee_name"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(DropAssigneeNameFromScaIssuesReleases.class); + private final DdlChange underTest = new DropAssigneeNameFromScaIssuesReleases(db.database()); + + @Test + void execute_shouldDropColumn() throws SQLException { + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, 200, true); + underTest.execute(); + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, VARCHAR, 200, true); + underTest.execute(); + underTest.execute(); + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropIndexOnArchitectureGraphsIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropIndexOnArchitectureGraphsIT.java new file mode 100644 index 00000000000..646be1f2f7c --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropIndexOnArchitectureGraphsIT.java @@ -0,0 +1,59 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; + +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class DropIndexOnArchitectureGraphsIT { + + private static final String TABLE_NAME = "architecture_graphs"; + private static final String COLUMN_NAME_BRANCH_UUID = "branch_uuid"; + private static final String COLUMN_NAME_TYPE = "type"; + private static final String COLUMN_NAME_SOURCE = "source"; + private static final String INDEX_NAME = "uq_idx_ag_branch_type_source"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(DropIndexOnArchitectureGraphs.class); + private final DropIndexOnArchitectureGraphs underTest = new DropIndexOnArchitectureGraphs(db.database()); + + @Test + void index_is_dropped() throws SQLException { + db.assertUniqueIndex(TABLE_NAME, INDEX_NAME, COLUMN_NAME_BRANCH_UUID, COLUMN_NAME_TYPE, COLUMN_NAME_SOURCE); + + underTest.execute(); + + db.assertIndexDoesNotExist(TABLE_NAME, INDEX_NAME); + } + + @Test + void migration_is_reentrant() throws SQLException { + db.assertUniqueIndex(TABLE_NAME, INDEX_NAME, COLUMN_NAME_BRANCH_UUID, COLUMN_NAME_TYPE, COLUMN_NAME_SOURCE); + + underTest.execute(); + underTest.execute(); + + db.assertIndexDoesNotExist(TABLE_NAME, INDEX_NAME); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropNewInPullRequestFromScaDependenciesTableIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropNewInPullRequestFromScaDependenciesTableIT.java index 0ee0034af74..1c64c708ad8 100644 --- a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropNewInPullRequestFromScaDependenciesTableIT.java +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropNewInPullRequestFromScaDependenciesTableIT.java @@ -37,7 +37,7 @@ class DropNewInPullRequestFromScaDependenciesTableIT { private final DdlChange underTest = new DropNewInPullRequestFromScaDependenciesTable(db.database()); @Test - void execute_shouldAddColumn() throws SQLException { + void execute_shouldDropColumn() throws SQLException { db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, BOOLEAN, null, false); underTest.execute(); db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropNewInPullRequestFromScaReleasesTableIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropNewInPullRequestFromScaReleasesTableIT.java index 252537bfcc8..b0a579b14cb 100644 --- a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropNewInPullRequestFromScaReleasesTableIT.java +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/DropNewInPullRequestFromScaReleasesTableIT.java @@ -37,7 +37,7 @@ class DropNewInPullRequestFromScaReleasesTableIT { private final DdlChange underTest = new DropNewInPullRequestFromScaReleasesTable(db.database()); @Test - void execute_shouldAddColumn() throws SQLException { + void execute_shouldDropColumn() throws SQLException { db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, BOOLEAN, null, false); underTest.execute(); db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveDuplicateScaReleasesIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveDuplicateScaReleasesIT.java new file mode 100644 index 00000000000..0daf88d66d8 --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveDuplicateScaReleasesIT.java @@ -0,0 +1,138 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.MigrationStep; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class MigrateRemoveDuplicateScaReleasesIT { + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(MigrateRemoveDuplicateScaReleases.class); + private final MigrationStep underTest = new MigrateRemoveDuplicateScaReleases(db.database()); + + @Test + void test_removesDuplicates() throws SQLException { + // we should keep this one + insertRelease("0", "componentUuid1", "packageUrlNotDuplicated", 1L); + // we should keep these rows associated with release 0 + insertDependency("0", "scaReleaseUuid0"); + insertIssueRelease("0", "scaReleaseUuid0"); + insertIssueReleaseChange("0"); + // we should keep the first (oldest) packageUrl1 entry on componentUuid1 + insertRelease("1", "componentUuid1", "packageUrl1", 2L); + insertRelease("2", "componentUuid1", "packageUrl1", 3L); + insertRelease("3", "componentUuid1", "packageUrl1", 4L); + // we should delete these rows associated with release 3 that we delete + insertDependency("3", "scaReleaseUuid3"); + insertIssueRelease("3", "scaReleaseUuid3"); + insertIssueReleaseChange("3"); + // we should keep the first (oldest) packageUrl2 entry on componentUuid1 + insertRelease("4", "componentUuid1", "packageUrl2", 5L); + insertRelease("5", "componentUuid1", "packageUrl2", 6L); + // we should keep the first (oldest) packageUrl1 entry on componentUuid2 + insertRelease("6", "componentUuid2", "packageUrl1", 7L); + insertRelease("7", "componentUuid2", "packageUrl1", 8L); + // we should keep these rows associated with release 6 + insertDependency("6", "scaReleaseUuid6"); + insertIssueRelease("6", "scaReleaseUuid6"); + insertIssueReleaseChange("6"); + // we should delete these rows associated with release 7 that we delete + insertDependency("7", "scaReleaseUuid7"); + insertIssueRelease("7", "scaReleaseUuid7"); + insertIssueReleaseChange("7"); + + assertThat(db.countSql("select count(*) from sca_releases")).isEqualTo(8); + assertThat(db.countSql("select count(*) from sca_dependencies")).isEqualTo(4); + assertThat(db.countSql("select count(*) from sca_issues_releases")).isEqualTo(4); + assertThat(db.countSql("select count(*) from sca_issue_rels_changes")).isEqualTo(4); + underTest.execute(); + + assertThat(db.select("select uuid from sca_releases")).map(row -> row.get("uuid")) + .containsExactlyInAnyOrder("scaReleaseUuid0", "scaReleaseUuid1", "scaReleaseUuid4", "scaReleaseUuid6"); + assertThat(db.select("select uuid from sca_dependencies")).map(row -> row.get("uuid")) + .containsExactlyInAnyOrder("scaDependencyUuid0", "scaDependencyUuid6"); + assertThat(db.select("select uuid from sca_issues_releases")).map(row -> row.get("uuid")) + .containsExactlyInAnyOrder("scaIssueReleaseUuid0", "scaIssueReleaseUuid6"); + assertThat(db.select("select uuid from sca_issue_rels_changes")).map(row -> row.get("uuid")) + .containsExactlyInAnyOrder("scaIssueReleaseChangeUuid0", "scaIssueReleaseChangeUuid6"); + } + + @Test + void test_canRunMultipleTimesOnEmptyTable() throws SQLException { + assertThat(db.countSql("select count(*) from sca_releases")).isZero(); + underTest.execute(); + underTest.execute(); + assertThat(db.countSql("select count(*) from sca_releases")).isZero(); + } + + private void insertRelease(String suffix, String componentUuid, String packageUrl, long createdAt) { + db.executeInsert("sca_releases", + "uuid", "scaReleaseUuid" + suffix, + "component_uuid", componentUuid, + "package_url", packageUrl, + "package_manager", "MAVEN", + "package_name", "packageName", + "version", "1.0.0", + "license_expression", "MIT", + "declared_license_expression", "MIT", + "is_new", false, + "known", true, + "known_package", true, + "updated_at", 1L, + "created_at", createdAt); + } + + private void insertDependency(String suffix, String releaseUuid) { + db.executeInsert("sca_dependencies", + "uuid", "scaDependencyUuid" + suffix, + "sca_release_uuid", releaseUuid, + "direct", true, + "scope", "compile", + "is_new", false, + "updated_at", 1L, + "created_at", 2L); + } + + private void insertIssueRelease(String suffix, String releaseUuid) { + db.executeInsert("sca_issues_releases", + "uuid", "scaIssueReleaseUuid" + suffix, + "sca_release_uuid", releaseUuid, + "sca_issue_uuid", "scaIssueUuid" + suffix, + "severity", "LOW", + "severity_sort_key", 10, + "status", "OPEN", + "updated_at", 1L, + "created_at", 2L); + } + + private void insertIssueReleaseChange(String suffix) { + db.executeInsert("sca_issue_rels_changes", + "uuid", "scaIssueReleaseChangeUuid" + suffix, + "sca_issues_releases_uuid", "scaIssueReleaseUuid" + suffix, + "updated_at", 1L, + "created_at", 2L); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveNonCanonicalScaEncounteredLicensesIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveNonCanonicalScaEncounteredLicensesIT.java new file mode 100644 index 00000000000..d18b45af262 --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveNonCanonicalScaEncounteredLicensesIT.java @@ -0,0 +1,69 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.MigrationStep; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class MigrateRemoveNonCanonicalScaEncounteredLicensesIT { + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(MigrateRemoveNonCanonicalScaEncounteredLicenses.class); + private final MigrationStep underTest = new MigrateRemoveNonCanonicalScaEncounteredLicenses(db.database()); + + @Test + void test_removesNonCanonical() throws SQLException { + // we should keep these + insertEncounteredLicense("0", "GPL-2.0-only"); + insertEncounteredLicense("1", "LicenseRef-something"); + insertEncounteredLicense("2", "LicenseRef-something-with-something-else"); + + // we should delete these + insertEncounteredLicense("3", "GPL-2.0-with-classpath-exception"); + insertEncounteredLicense("4", "GPL-2.0-with-autoconf-exception"); + + assertThat(db.countSql("select count(*) from sca_encountered_licenses")).isEqualTo(5); + underTest.execute(); + + assertThat(db.select("select uuid from sca_encountered_licenses")).map(row -> row.get("uuid")) + .containsExactlyInAnyOrder("scaEncounteredLicenseUuid0", "scaEncounteredLicenseUuid1", "scaEncounteredLicenseUuid2"); + } + + @Test + void test_canRunMultipleTimesOnEmptyTable() throws SQLException { + assertThat(db.countSql("select count(*) from sca_encountered_licenses")).isZero(); + underTest.execute(); + underTest.execute(); + assertThat(db.countSql("select count(*) from sca_encountered_licenses")).isZero(); + } + + private void insertEncounteredLicense(String suffix, String licensePolicyId) { + db.executeInsert("sca_encountered_licenses", + "uuid", "scaEncounteredLicenseUuid" + suffix, + "license_policy_id", licensePolicyId, + "updated_at", 1L, + "created_at", 1L); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTableIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTableIT.java new file mode 100644 index 00000000000..483d8a1afb8 --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTableIT.java @@ -0,0 +1,72 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import java.util.List; +import java.util.Map; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; + +class PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTableIT { + @RegisterExtension + public final MigrationDbTester db = MigrationDbTester.createForMigrationStep(PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTable.class); + private final PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTable underTest = new PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTable(db.database()); + + @Test + void execute_shouldPopulatePolicyUpdatedAtWithUpdatedAt() throws SQLException { + insertScaLicenseProfile(1); + insertScaLicenseProfile(2); + + underTest.execute(); + + assertThatPolicyUpdatedAtIsPopulated(); + } + + @Test + void execute_whenAlreadyExecuted_shouldBeIdempotent() throws SQLException { + insertScaLicenseProfile(1); + + underTest.execute(); + underTest.execute(); + + assertThatPolicyUpdatedAtIsPopulated(); + } + + private void insertScaLicenseProfile(Integer index) { + db.executeInsert("sca_license_profiles", + "uuid", "uuid-" + index, + "is_default_profile", false, + "name", "licenseProfile-" + index, + "created_at", 1L, + "updated_at", 2L, + "policy_updated_at", null); + } + + private void assertThatPolicyUpdatedAtIsPopulated() { + List<Map<String, Object>> rows = db.select("select policy_updated_at, updated_at from sca_license_profiles"); + assertThat(rows).isNotEmpty() + .allSatisfy(row -> assertEquals(row.get("policy_updated_at"), row.get("updated_at"))); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/UpdateArchitectureGraphsSourceColumnRenameIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/UpdateArchitectureGraphsSourceColumnRenameIT.java new file mode 100644 index 00000000000..81c377724e9 --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/UpdateArchitectureGraphsSourceColumnRenameIT.java @@ -0,0 +1,63 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static java.sql.Types.VARCHAR; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class UpdateArchitectureGraphsSourceColumnRenameIT { + + private static final String TABLE_NAME = "architecture_graphs"; + private static final String OLD_COLUMN = "source"; + private static final String NEW_COLUMN = "ecosystem"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(UpdateArchitectureGraphsSourceColumnRename.class); + private final DdlChange underTest = new UpdateArchitectureGraphsSourceColumnRename(db.database()); + + @Test + void execute_shouldUpdateColumn() throws SQLException { + db.assertColumnDefinition(TABLE_NAME, OLD_COLUMN, VARCHAR, null, null); + db.assertColumnDoesNotExist(TABLE_NAME, NEW_COLUMN); + + underTest.execute(); + + db.assertColumnDoesNotExist(TABLE_NAME, OLD_COLUMN); + db.assertColumnDefinition(TABLE_NAME, NEW_COLUMN, VARCHAR, null, null); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertColumnDefinition(TABLE_NAME, OLD_COLUMN, VARCHAR, null, null); + db.assertColumnDoesNotExist(TABLE_NAME, NEW_COLUMN); + + underTest.execute(); + underTest.execute(); + + db.assertColumnDoesNotExist(TABLE_NAME, OLD_COLUMN); + db.assertColumnDefinition(TABLE_NAME, NEW_COLUMN, VARCHAR, null, null); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullableIT.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullableIT.java new file mode 100644 index 00000000000..4d2d61106be --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202503/UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullableIT.java @@ -0,0 +1,66 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.sql.DropColumnsBuilder; + +import static java.sql.Types.BIGINT; +import static org.assertj.core.api.Assertions.assertThatCode; + +class UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullableIT { + static final String TABLE_NAME = "sca_license_profiles"; + static final String COLUMN_NAME = "policy_updated_at"; + + @RegisterExtension + public final MigrationDbTester db = MigrationDbTester.createForMigrationStep(UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullable.class); + private final UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullable underTest = new UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullable(db.database()); + + @Test + void execute_whenColumnExists_shouldMakeColumnNotNull() throws SQLException { + // Verify column is nullable before update + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, BIGINT, null, true); + + underTest.execute(); + + // Verify column is not nullable after update + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, BIGINT, null, false); + } + + @Test + void execute_whenColumnDoesNotExist_shouldNotFail() throws SQLException { + // Ensure the column does not exist before executing the migration + DropColumnsBuilder dropColumnsBuilder = new DropColumnsBuilder(db.database().getDialect(), TABLE_NAME, COLUMN_NAME); + dropColumnsBuilder.build().forEach(db::executeDdl); + + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + assertThatCode(underTest::execute).doesNotThrowAnyException(); + } + + @Test + void execute_whenExecutedTwice_shouldBeIdempotent() throws SQLException { + underTest.execute(); + assertThatCode(underTest::execute).doesNotThrowAnyException(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, BIGINT, null, false); + } +} diff --git a/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202504/AddWithdrawnToScaVulnerabilityIssuesTest.java b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202504/AddWithdrawnToScaVulnerabilityIssuesTest.java new file mode 100644 index 00000000000..e463be0ad37 --- /dev/null +++ b/server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v202504/AddWithdrawnToScaVulnerabilityIssuesTest.java @@ -0,0 +1,53 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202504; + +import java.sql.SQLException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.sonar.db.MigrationDbTester; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static java.sql.Types.BOOLEAN; +import static org.sonar.db.MigrationDbTester.createForMigrationStep; + +class AddWithdrawnToScaVulnerabilityIssuesTest { + private static final String TABLE_NAME = "sca_vulnerability_issues"; + private static final String COLUMN_NAME = "withdrawn"; + + @RegisterExtension + public final MigrationDbTester db = createForMigrationStep(AddWithdrawnToScaVulnerabilityIssues.class); + private final DdlChange underTest = new AddWithdrawnToScaVulnerabilityIssues(db.database()); + + @Test + void execute_shouldAddColumn() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, BOOLEAN, 1, false); + } + + @Test + void execute_shouldBeReentrant() throws SQLException { + db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); + underTest.execute(); + underTest.execute(); + db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, BOOLEAN, 1, false); + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/MigrationConfigurationModule.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/MigrationConfigurationModule.java index fdfcd97907a..23c17a18540 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/MigrationConfigurationModule.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/MigrationConfigurationModule.java @@ -31,6 +31,7 @@ import org.sonar.server.platform.db.migration.version.v00.DbVersion00; import org.sonar.server.platform.db.migration.version.v202501.DbVersion202501; import org.sonar.server.platform.db.migration.version.v202502.DbVersion202502; import org.sonar.server.platform.db.migration.version.v202503.DbVersion202503; +import org.sonar.server.platform.db.migration.version.v202504.DbVersion202504; public class MigrationConfigurationModule extends Module { @Override @@ -42,6 +43,7 @@ public class MigrationConfigurationModule extends Module { DbVersion202501.class, DbVersion202502.class, DbVersion202503.class, + DbVersion202504.class, // migration steps MigrationStepRegistryImpl.class, diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202502/CreateUniqueIndexOnArchitectureGraphs.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202502/CreateUniqueIndexOnArchitectureGraphs.java index 802396d18b1..2664ff7c0e9 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202502/CreateUniqueIndexOnArchitectureGraphs.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202502/CreateUniqueIndexOnArchitectureGraphs.java @@ -46,15 +46,26 @@ public class CreateUniqueIndexOnArchitectureGraphs extends DdlChange { } private void createIndex(Context context, Connection connection) { - if (!DatabaseUtils.indexExistsIgnoreCase(TABLE_NAME, INDEX_NAME, connection)) { - context.execute(new CreateIndexBuilder(getDialect()) - .setTable(TABLE_NAME) - .setName(INDEX_NAME) - .setUnique(true) - .addColumn(COLUMN_NAME_BRANCH_UUID, false) - .addColumn(COLUMN_NAME_TYPE, false) - .addColumn(COLUMN_NAME_SOURCE, false) - .build()); + if(!DatabaseUtils.tableColumnExists(connection, TABLE_NAME, COLUMN_NAME_BRANCH_UUID)) { + return; } + if(!DatabaseUtils.tableColumnExists(connection, TABLE_NAME, COLUMN_NAME_TYPE)) { + return; + } + if(!DatabaseUtils.tableColumnExists(connection, TABLE_NAME, COLUMN_NAME_SOURCE)) { + return; + } + if (DatabaseUtils.indexExistsIgnoreCase(TABLE_NAME, INDEX_NAME, connection)) { + return; + } + + context.execute(new CreateIndexBuilder(getDialect()) + .setTable(TABLE_NAME) + .setName(INDEX_NAME) + .setUnique(true) + .addColumn(COLUMN_NAME_BRANCH_UUID, false) + .addColumn(COLUMN_NAME_TYPE, false) + .addColumn(COLUMN_NAME_SOURCE, false) + .build()); } } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddAnalysisUuidOnArchitectureGraphs.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddAnalysisUuidOnArchitectureGraphs.java new file mode 100644 index 00000000000..1110d46c570 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddAnalysisUuidOnArchitectureGraphs.java @@ -0,0 +1,54 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.def.VarcharColumnDef; +import org.sonar.server.platform.db.migration.sql.AddColumnsBuilder; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static org.sonar.db.DatabaseUtils.tableColumnExists; + +public class AddAnalysisUuidOnArchitectureGraphs extends DdlChange { + static final String TABLE_NAME = "architecture_graphs"; + static final String COLUMN_NAME = "analysis_uuid"; + + public AddAnalysisUuidOnArchitectureGraphs(Database db) { + super(db); + } + + @Override + public void execute(DdlChange.Context context) throws SQLException { + try (var connection = getDatabase().getDataSource().getConnection()) { + if (!tableColumnExists(connection, TABLE_NAME, COLUMN_NAME)) { + var columnDef = VarcharColumnDef.newVarcharColumnDefBuilder() + .setColumnName(COLUMN_NAME) + .setLimit(VarcharColumnDef.UUID_SIZE) + .setIsNullable(true) + .build(); + + context.execute(new AddColumnsBuilder(getDialect(), TABLE_NAME) + .addColumn(columnDef) + .build()); + } + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddAssigneeNameToScaIssuesReleases.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddAssigneeNameToScaIssuesReleases.java new file mode 100644 index 00000000000..a74272f4b2c --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddAssigneeNameToScaIssuesReleases.java @@ -0,0 +1,54 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.def.VarcharColumnDef; +import org.sonar.server.platform.db.migration.sql.AddColumnsBuilder; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static org.sonar.db.DatabaseUtils.tableColumnExists; + +public class AddAssigneeNameToScaIssuesReleases extends DdlChange { + static final String TABLE_NAME = "sca_issues_releases"; + static final String COLUMN_NAME = "assignee_name"; + + public AddAssigneeNameToScaIssuesReleases(Database db) { + super(db); + } + + @Override + public void execute(Context context) throws SQLException { + try (var connection = getDatabase().getDataSource().getConnection()) { + if (!tableColumnExists(connection, TABLE_NAME, COLUMN_NAME)) { + var columnDef = VarcharColumnDef.newVarcharColumnDefBuilder() + .setColumnName(COLUMN_NAME) + .setLimit(200) + .setIsNullable(true) + .build(); + + context.execute(new AddColumnsBuilder(getDialect(), TABLE_NAME) + .addColumn(columnDef) + .build()); + } + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddGraphVersionOnArchitectureGraphsTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddGraphVersionOnArchitectureGraphsTable.java new file mode 100644 index 00000000000..55ca4c73a4f --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddGraphVersionOnArchitectureGraphsTable.java @@ -0,0 +1,55 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.def.VarcharColumnDef; +import org.sonar.server.platform.db.migration.sql.AddColumnsBuilder; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static org.sonar.db.DatabaseUtils.tableColumnExists; + +public class AddGraphVersionOnArchitectureGraphsTable extends DdlChange { + static final String TABLE_NAME = "architecture_graphs"; + static final String COLUMN_NAME = "graph_version"; + + public AddGraphVersionOnArchitectureGraphsTable(Database db) { + super(db); + } + + @Override + public void execute(DdlChange.Context context) throws SQLException { + try (var connection = getDatabase().getDataSource().getConnection()) { + if (!tableColumnExists(connection, TABLE_NAME, COLUMN_NAME)) { + var columnDef = VarcharColumnDef.newVarcharColumnDefBuilder() + .setColumnName(COLUMN_NAME) + .setLimit(255) + .setIsNullable(false) + .setDefaultValue("1.0.0") + .build(); + + context.execute(new AddColumnsBuilder(getDialect(), TABLE_NAME) + .addColumn(columnDef) + .build()); + } + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddPerspectiveKeyOnArchitectureGraphs.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddPerspectiveKeyOnArchitectureGraphs.java new file mode 100644 index 00000000000..994e05650a0 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddPerspectiveKeyOnArchitectureGraphs.java @@ -0,0 +1,54 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.def.VarcharColumnDef; +import org.sonar.server.platform.db.migration.sql.AddColumnsBuilder; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static org.sonar.db.DatabaseUtils.tableColumnExists; + +public class AddPerspectiveKeyOnArchitectureGraphs extends DdlChange { + static final String TABLE_NAME = "architecture_graphs"; + static final String COLUMN_NAME = "perspective_key"; + + public AddPerspectiveKeyOnArchitectureGraphs(Database db) { + super(db); + } + + @Override + public void execute(Context context) throws SQLException { + try (var connection = getDatabase().getDataSource().getConnection()) { + if (!tableColumnExists(connection, TABLE_NAME, COLUMN_NAME)) { + var columnDef = VarcharColumnDef.newVarcharColumnDefBuilder() + .setColumnName(COLUMN_NAME) + .setLimit(255) + .setIsNullable(true) + .build(); + + context.execute(new AddColumnsBuilder(getDialect(), TABLE_NAME) + .addColumn(columnDef) + .build()); + } + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddPolicyUpdatedAtToScaLicenseProfilesTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddPolicyUpdatedAtToScaLicenseProfilesTable.java new file mode 100644 index 00000000000..cd6b6e76cc5 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddPolicyUpdatedAtToScaLicenseProfilesTable.java @@ -0,0 +1,52 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.def.BigIntegerColumnDef; +import org.sonar.server.platform.db.migration.sql.AddColumnsBuilder; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static org.sonar.db.DatabaseUtils.tableColumnExists; + +public class AddPolicyUpdatedAtToScaLicenseProfilesTable extends DdlChange { + static final String TABLE_NAME = "sca_license_profiles"; + static final String COLUMN_NAME = "policy_updated_at"; + + public AddPolicyUpdatedAtToScaLicenseProfilesTable(Database db) { + super(db); + } + + @Override + public void execute(Context context) throws SQLException { + try (var connection = getDatabase().getDataSource().getConnection()) { + if (!tableColumnExists(connection, TABLE_NAME, COLUMN_NAME)) { + var columnDef = BigIntegerColumnDef.newBigIntegerColumnDefBuilder() + .setColumnName(COLUMN_NAME) + .build(); + + context.execute(new AddColumnsBuilder(getDialect(), TABLE_NAME) + .addColumn(columnDef) + .build()); + } + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddPreviousManualStatusToScaIssuesReleases.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddPreviousManualStatusToScaIssuesReleases.java new file mode 100644 index 00000000000..fb5514c42e9 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/AddPreviousManualStatusToScaIssuesReleases.java @@ -0,0 +1,54 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.def.VarcharColumnDef; +import org.sonar.server.platform.db.migration.sql.AddColumnsBuilder; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static org.sonar.db.DatabaseUtils.tableColumnExists; + +public class AddPreviousManualStatusToScaIssuesReleases extends DdlChange { + static final String TABLE_NAME = "sca_issues_releases"; + static final String COLUMN_NAME = "previous_manual_status"; + + public AddPreviousManualStatusToScaIssuesReleases(Database db) { + super(db); + } + + @Override + public void execute(Context context) throws SQLException { + try (var connection = getDatabase().getDataSource().getConnection()) { + if (!tableColumnExists(connection, TABLE_NAME, COLUMN_NAME)) { + var columnDef = VarcharColumnDef.newVarcharColumnDefBuilder() + .setColumnName(COLUMN_NAME) + .setLimit(40) + .setIsNullable(true) + .build(); + + context.execute(new AddColumnsBuilder(getDialect(), TABLE_NAME) + .addColumn(columnDef) + .build()); + } + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/BackfillRemoveAssigneeNameFromIssueReleaseChanges.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/BackfillRemoveAssigneeNameFromIssueReleaseChanges.java new file mode 100644 index 00000000000..762c9e90834 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/BackfillRemoveAssigneeNameFromIssueReleaseChanges.java @@ -0,0 +1,69 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import com.google.gson.Gson; +import com.google.gson.JsonParser; +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.step.DataChange; +import org.sonar.server.platform.db.migration.step.MassUpdate; + +public class BackfillRemoveAssigneeNameFromIssueReleaseChanges extends DataChange { + // Select records that might contain assigneeName in their change_data + private static final String SELECT_QUERY = "select uuid, change_data from sca_issue_rels_changes where change_data like '%assigneeName%'"; + private static final String UPDATE_QUERY = "update sca_issue_rels_changes set change_data = ? where uuid = ?"; + private static final Gson GSON = new Gson(); + + public BackfillRemoveAssigneeNameFromIssueReleaseChanges(Database db) { + super(db); + } + + @Override + protected void execute(Context context) throws SQLException { + MassUpdate massUpdate = context.prepareMassUpdate(); + massUpdate.select(SELECT_QUERY); + massUpdate.update(UPDATE_QUERY); + + massUpdate.execute((row, update, index) -> { + String uuid = row.getString(1); + String changeData = row.getString(2); + + if (changeData == null) { + return false; + } + + String updatedChangeData = removeAssigneeNameFromChangeData(changeData); + + if (updatedChangeData.equals(changeData)) { + return false; + } + update.setString(1, updatedChangeData); + update.setString(2, uuid); + return true; + }); + } + + private static String removeAssigneeNameFromChangeData(String changeData) { + var obj = JsonParser.parseString(changeData).getAsJsonObject(); + obj.remove("assigneeName"); + return GSON.toJson(obj); + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateScaAnalysesTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateScaAnalysesTable.java new file mode 100644 index 00000000000..1356126259a --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateScaAnalysesTable.java @@ -0,0 +1,57 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import java.util.List; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.sql.CreateTableBuilder; +import org.sonar.server.platform.db.migration.step.CreateTableChange; + +import static org.sonar.server.platform.db.migration.def.BigIntegerColumnDef.newBigIntegerColumnDefBuilder; +import static org.sonar.server.platform.db.migration.def.ClobColumnDef.newClobColumnDefBuilder; +import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.UUID_SIZE; +import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.newVarcharColumnDefBuilder; + +public class CreateScaAnalysesTable extends CreateTableChange { + public static final String TABLE_NAME = "sca_analyses"; + public static final int STATUS_COLUMN_SIZE = 40; + public static final int FAILED_REASON_COLUMN_SIZE = 255; + + protected CreateScaAnalysesTable(Database db) { + super(db, TABLE_NAME); + } + + @Override + public void execute(Context context, String tableName) throws SQLException { + List<String> createQuery = new CreateTableBuilder(getDialect(), tableName) + .addPkColumn(newVarcharColumnDefBuilder().setColumnName("uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) + .addColumn(newVarcharColumnDefBuilder().setColumnName("component_uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) + .addColumn(newVarcharColumnDefBuilder().setColumnName("status").setIsNullable(false).setLimit(STATUS_COLUMN_SIZE).build()) + .addColumn(newVarcharColumnDefBuilder().setColumnName("failed_reason").setIsNullable(true).setLimit(FAILED_REASON_COLUMN_SIZE).build()) + .addColumn(newClobColumnDefBuilder().setColumnName("errors").setIsNullable(false).build()) + .addColumn(newClobColumnDefBuilder().setColumnName("parsed_files").setIsNullable(false).build()) + .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .build(); + + context.execute(createQuery); + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnArchitectureGraphs.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnArchitectureGraphs.java new file mode 100644 index 00000000000..1be744195c9 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnArchitectureGraphs.java @@ -0,0 +1,61 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.Connection; +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.db.DatabaseUtils; +import org.sonar.server.platform.db.migration.sql.CreateIndexBuilder; +import org.sonar.server.platform.db.migration.step.DdlChange; + +public class CreateUniqueIndexOnArchitectureGraphs extends DdlChange { + private static final String TABLE_NAME = "architecture_graphs"; + private static final String INDEX_NAME = "uq_idx_ag_brch_tp_src_pspctv"; + private static final String COLUMN_NAME_BRANCH_UUID = "branch_uuid"; + private static final String COLUMN_NAME_TYPE = "type"; + private static final String COLUMN_NAME_ECOSYSTEM = "ecosystem"; + private static final String COLUMN_NAME_PERSPECTIVE_KEY = "perspective_key"; + + public CreateUniqueIndexOnArchitectureGraphs(Database db) { + super(db); + } + + @Override + public void execute(Context context) throws SQLException { + try (Connection connection = getDatabase().getDataSource().getConnection()) { + createIndex(context, connection); + } + } + + private void createIndex(Context context, Connection connection) { + if (!DatabaseUtils.indexExistsIgnoreCase(TABLE_NAME, INDEX_NAME, connection)) { + context.execute(new CreateIndexBuilder(getDialect()) + .setTable(TABLE_NAME) + .setName(INDEX_NAME) + .setUnique(true) + .addColumn(COLUMN_NAME_BRANCH_UUID, false) + .addColumn(COLUMN_NAME_TYPE, false) + .addColumn(COLUMN_NAME_ECOSYSTEM, false) + .addColumn(COLUMN_NAME_PERSPECTIVE_KEY, true) // nullable + .build()); + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaAnalyses.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaAnalyses.java new file mode 100644 index 00000000000..0a82ad81e4b --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaAnalyses.java @@ -0,0 +1,55 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.Connection; +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.db.DatabaseUtils; +import org.sonar.server.platform.db.migration.sql.CreateIndexBuilder; +import org.sonar.server.platform.db.migration.step.DdlChange; + +public class CreateUniqueIndexOnScaAnalyses extends DdlChange { + static final String TABLE_NAME = "sca_analyses"; + static final String INDEX_NAME = "sca_analyses_component_uniq"; + static final String COLUMN_NAME_COMPONENT_UUID = "component_uuid"; + + public CreateUniqueIndexOnScaAnalyses(Database db) { + super(db); + } + + @Override + public void execute(Context context) throws SQLException { + try (Connection connection = getDatabase().getDataSource().getConnection()) { + createIndex(context, connection); + } + } + + private void createIndex(Context context, Connection connection) { + if (!DatabaseUtils.indexExistsIgnoreCase(TABLE_NAME, INDEX_NAME, connection)) { + context.execute(new CreateIndexBuilder(getDialect()) + .setTable(TABLE_NAME) + .setName(INDEX_NAME) + .setUnique(true) + .addColumn(COLUMN_NAME_COMPONENT_UUID, false) + .build()); + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaReleases.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaReleases.java new file mode 100644 index 00000000000..08afc724ab8 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/CreateUniqueIndexOnScaReleases.java @@ -0,0 +1,57 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.Connection; +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.db.DatabaseUtils; +import org.sonar.server.platform.db.migration.sql.CreateIndexBuilder; +import org.sonar.server.platform.db.migration.step.DdlChange; + +public class CreateUniqueIndexOnScaReleases extends DdlChange { + static final String TABLE_NAME = "sca_releases"; + static final String INDEX_NAME = "sca_releases_package_url_uniq"; + static final String COLUMN_NAME_PACKAGE_URL = "package_url"; + static final String COLUMN_NAME_COMPONENT_UUID = "component_uuid"; + + public CreateUniqueIndexOnScaReleases(Database db) { + super(db); + } + + @Override + public void execute(Context context) throws SQLException { + try (Connection connection = getDatabase().getDataSource().getConnection()) { + createIndex(context, connection); + } + } + + private void createIndex(Context context, Connection connection) { + if (!DatabaseUtils.indexExistsIgnoreCase(TABLE_NAME, INDEX_NAME, connection)) { + context.execute(new CreateIndexBuilder(getDialect()) + .setTable(TABLE_NAME) + .setName(INDEX_NAME) + .setUnique(true) + .addColumn(COLUMN_NAME_PACKAGE_URL, false) + .addColumn(COLUMN_NAME_COMPONENT_UUID, false) + .build()); + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/DbVersion202503.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/DbVersion202503.java index a66a1884bce..ba743de7f8f 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/DbVersion202503.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/DbVersion202503.java @@ -64,6 +64,24 @@ public class DbVersion202503 implements DbVersion { .add(2025_03_025, "Create SCA encountered licenses unique index", CreateUniqueIndexOnScaEncounteredLicenses.class) .add(2025_03_026, "Add change_comment to SCA issues releases changes", AddCommentToScaIssuesReleasesChangesTable.class) .add(2025_03_027, "Drop change_type from SCA issues releases changes", DropChangeTypeFromScaIssuesReleasesChangesTable.class) + .add(2025_03_028, "Remove duplicates from SCA releases table", MigrateRemoveDuplicateScaReleases.class) + .add(2025_03_029, "Create unique index on SCA releases table", CreateUniqueIndexOnScaReleases.class) + .add(2025_03_030, "Create SCA analyses table", CreateScaAnalysesTable.class) + .add(2025_03_031, "Create unique index on SCA analyses table", CreateUniqueIndexOnScaAnalyses.class) + .add(2025_03_032, "Add 'analysis_uuid' column to 'architecture_graphs' table", AddAnalysisUuidOnArchitectureGraphs.class) + .add(2025_03_033, "Add 'perspective_key' column to 'architecture_graphs' table", AddPerspectiveKeyOnArchitectureGraphs.class) + .add(2025_03_034, "Drop unique index on 'architecture_graphs' table", DropIndexOnArchitectureGraphs.class) + .add(2025_03_035, "Rename column 'source' to 'ecosystem' on 'architecture_graphs' table", UpdateArchitectureGraphsSourceColumnRename.class) + .add(2025_03_036, "Create unique index on 'architecture_graphs' table", CreateUniqueIndexOnArchitectureGraphs.class) + .add(2025_03_037, "Add previous_manual_status to SCA issues releases", AddPreviousManualStatusToScaIssuesReleases.class) + .add(2025_03_038, "Add 'graph_version' column to 'architecture_graphs' table", AddGraphVersionOnArchitectureGraphsTable.class) + .add(2025_03_039, "Add assignee name to SCA issues releases", AddAssigneeNameToScaIssuesReleases.class) + .add(2025_03_040, "Drop assignee name from SCA issues releases", DropAssigneeNameFromScaIssuesReleases.class) + .add(2025_03_041, "Remove AssigneeName from Sca issue release changes", BackfillRemoveAssigneeNameFromIssueReleaseChanges.class) + .add(2025_03_042, "Remove non-canonical from Sca encountered licenses", MigrateRemoveNonCanonicalScaEncounteredLicenses.class) + .add(2025_03_043, "Add 'policy_updated_at' to Sca license profiles", AddPolicyUpdatedAtToScaLicenseProfilesTable.class) + .add(2025_03_044, "Populate 'policy_updated_at' column for Sca license profiles", PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTable.class) + .add(2025_03_045, "Update 'policy_updated_at' column for Sca license profiles to be not nullable", UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullable.class) ; } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/DropAssigneeNameFromScaIssuesReleases.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/DropAssigneeNameFromScaIssuesReleases.java new file mode 100644 index 00000000000..cfe9ba322b8 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/DropAssigneeNameFromScaIssuesReleases.java @@ -0,0 +1,32 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.step.DropColumnChange; + +public class DropAssigneeNameFromScaIssuesReleases extends DropColumnChange { + static final String TABLE_NAME = "sca_issues_releases"; + static final String COLUMN_NAME = "assignee_name"; + + public DropAssigneeNameFromScaIssuesReleases(Database db) { + super(db, TABLE_NAME, COLUMN_NAME); + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/DropIndexOnArchitectureGraphs.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/DropIndexOnArchitectureGraphs.java new file mode 100644 index 00000000000..d48236d6d76 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/DropIndexOnArchitectureGraphs.java @@ -0,0 +1,33 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.step.DropIndexChange; + +public class DropIndexOnArchitectureGraphs extends DropIndexChange { + private static final String TABLE_NAME = "architecture_graphs"; + private static final String INDEX_NAME = "uq_idx_ag_branch_type_source"; + + public DropIndexOnArchitectureGraphs(Database db) { + super(db, INDEX_NAME, TABLE_NAME); + } + +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveDuplicateScaReleases.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveDuplicateScaReleases.java new file mode 100644 index 00000000000..22b733e27b8 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveDuplicateScaReleases.java @@ -0,0 +1,112 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.step.MigrationStep; + +public class MigrateRemoveDuplicateScaReleases implements MigrationStep { + static final String SELECT_BATCH_QUERY = """ + WITH duplicate_releases AS ( + SELECT + uuid, + ROW_NUMBER() OVER ( + PARTITION BY component_uuid, package_url + ORDER BY created_at ASC + ) AS row_num + FROM sca_releases + ) + SELECT + uuid + FROM duplicate_releases + WHERE row_num > 1 + """; + + static final String DELETE_BATCH_DEPENDENCIES_QUERY = """ + DELETE FROM sca_dependencies WHERE sca_release_uuid IN (?) + """; + + static final String DELETE_BATCH_ISSUES_RELEASES_CHANGES_QUERY = """ + DELETE FROM sca_issue_rels_changes WHERE sca_issues_releases_uuid IN (SELECT uuid FROM sca_issues_releases WHERE sca_release_uuid IN (?)) + """; + + static final String DELETE_BATCH_ISSUES_RELEASES_QUERY = """ + DELETE FROM sca_issues_releases WHERE sca_release_uuid IN (?) + """; + + static final String DELETE_BATCH_RELEASES_QUERY = """ + DELETE FROM sca_releases WHERE uuid IN (?) + """; + + private final Database db; + + public MigrateRemoveDuplicateScaReleases(Database db) { + this.db = db; + } + + private static List<String> findBatchOfDuplicates(Connection connection) throws SQLException { + List<String> results = new ArrayList<>(); + + try (PreparedStatement preparedStatement = connection.prepareStatement(SELECT_BATCH_QUERY)) { + preparedStatement.setMaxRows(999); + try (ResultSet resultSet = preparedStatement.executeQuery()) { + while (resultSet.next()) { + results.add(resultSet.getString(1)); + } + } + } + + return results; + } + + private static void deleteBatch(Connection connection, String batchSql, List<String> duplicateReleaseUuids) throws SQLException { + try (PreparedStatement preparedStatement = connection.prepareStatement(batchSql)) { + for (String uuid : duplicateReleaseUuids) { + preparedStatement.setString(1, uuid); + preparedStatement.addBatch(); + } + preparedStatement.executeBatch(); + } + } + + private static void deleteBatchOfDuplicates(Connection connection, List<String> duplicateRowUuids) throws SQLException { + deleteBatch(connection, DELETE_BATCH_DEPENDENCIES_QUERY, duplicateRowUuids); + deleteBatch(connection, DELETE_BATCH_ISSUES_RELEASES_CHANGES_QUERY, duplicateRowUuids); + deleteBatch(connection, DELETE_BATCH_ISSUES_RELEASES_QUERY, duplicateRowUuids); + deleteBatch(connection, DELETE_BATCH_RELEASES_QUERY, duplicateRowUuids); + } + + @Override + public void execute() throws SQLException { + try (var connection = db.getDataSource().getConnection()) { + List<String> duplicateRowUuids = findBatchOfDuplicates(connection); + while (!duplicateRowUuids.isEmpty()) { + deleteBatchOfDuplicates(connection, duplicateRowUuids); + duplicateRowUuids = findBatchOfDuplicates(connection); + } + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveNonCanonicalScaEncounteredLicenses.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveNonCanonicalScaEncounteredLicenses.java new file mode 100644 index 00000000000..f9fc92aab5a --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/MigrateRemoveNonCanonicalScaEncounteredLicenses.java @@ -0,0 +1,90 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.step.MigrationStep; + +public class MigrateRemoveNonCanonicalScaEncounteredLicenses implements MigrationStep { + static final String SELECT_BATCH_QUERY = """ + SELECT + uuid + FROM sca_encountered_licenses + WHERE + license_policy_id not like 'LicenseRef%' + and license_policy_id like '%-with-%' + """; + + static final String DELETE_BATCH_ENCOUNTERED_LICENSES = """ + DELETE FROM sca_encountered_licenses WHERE uuid IN (?) + """; + + private final Database db; + + public MigrateRemoveNonCanonicalScaEncounteredLicenses(Database db) { + this.db = db; + } + + private static List<String> findBatchOfNonCanonical(Connection connection) throws SQLException { + List<String> results = new ArrayList<>(); + + try (PreparedStatement preparedStatement = connection.prepareStatement(SELECT_BATCH_QUERY)) { + preparedStatement.setMaxRows(999); + try (ResultSet resultSet = preparedStatement.executeQuery()) { + while (resultSet.next()) { + results.add(resultSet.getString(1)); + } + } + } + + return results; + } + + private static void deleteBatch(Connection connection, List<String> nonCanonicalRowUuids) throws SQLException { + try (PreparedStatement preparedStatement = connection.prepareStatement(DELETE_BATCH_ENCOUNTERED_LICENSES)) { + for (String uuid : nonCanonicalRowUuids) { + preparedStatement.setString(1, uuid); + preparedStatement.addBatch(); + } + preparedStatement.executeBatch(); + } + } + + private static void deleteBatchOfNonCanonical(Connection connection, List<String> nonCanonicalRowUuids) throws SQLException { + deleteBatch(connection, nonCanonicalRowUuids); + } + + @Override + public void execute() throws SQLException { + try (var connection = db.getDataSource().getConnection()) { + List<String> nonCanonicalRowIds = findBatchOfNonCanonical(connection); + while (!nonCanonicalRowIds.isEmpty()) { + deleteBatchOfNonCanonical(connection, nonCanonicalRowIds); + nonCanonicalRowIds = findBatchOfNonCanonical(connection); + } + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTable.java new file mode 100644 index 00000000000..8cacf1212e4 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTable.java @@ -0,0 +1,50 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.step.DataChange; +import org.sonar.server.platform.db.migration.step.MassUpdate; + +public class PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTable extends DataChange { + private static final String SELECT_QUERY = "select updated_at, uuid from sca_license_profiles where policy_updated_at is null"; + private static final String UPDATE_QUERY = "update sca_license_profiles set policy_updated_at = ? where uuid = ?"; + + public PopulatePolicyUpdatedAtColumnForScaLicenseProfilesTable(Database db) { + super(db); + } + + @Override + protected void execute(DataChange.Context context) throws SQLException { + MassUpdate massUpdate = context.prepareMassUpdate(); + massUpdate.select(SELECT_QUERY); + massUpdate.update(UPDATE_QUERY); + + massUpdate.execute((row, update, index) -> { + update + // Set policy_updated_at from updated_at + .setLong(1, row.getLong(1)) + // Set uuid from uuid + .setString(2, row.getString(2)); + return true; + }); + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/UpdateArchitectureGraphsSourceColumnRename.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/UpdateArchitectureGraphsSourceColumnRename.java new file mode 100644 index 00000000000..0a19b0046f9 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/UpdateArchitectureGraphsSourceColumnRename.java @@ -0,0 +1,33 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.step.RenameVarcharColumnChange; + +public class UpdateArchitectureGraphsSourceColumnRename extends RenameVarcharColumnChange { + private static final String TABLE_NAME = "architecture_graphs"; + private static final String OLD_COLUMN_NAME = "source"; + private static final String NEW_COLUMN_NAME = "ecosystem"; + + public UpdateArchitectureGraphsSourceColumnRename(Database db) { + super(db, TABLE_NAME, OLD_COLUMN_NAME, NEW_COLUMN_NAME); + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullable.java new file mode 100644 index 00000000000..44761a449fc --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202503/UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullable.java @@ -0,0 +1,53 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202503; + +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.def.BigIntegerColumnDef; +import org.sonar.server.platform.db.migration.sql.AlterColumnsBuilder; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static org.sonar.db.DatabaseUtils.tableColumnExists; + +public class UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullable extends DdlChange { + static final String TABLE_NAME = "sca_license_profiles"; + static final String COLUMN_NAME = "policy_updated_at"; + + public UpdateScaLicenseProfilesPolicyUpdatedAtColumnNotNullable(Database db) { + super(db); + } + + @Override + public void execute(Context context) throws SQLException { + try (var connection = getDatabase().getDataSource().getConnection()) { + if (tableColumnExists(connection, TABLE_NAME, COLUMN_NAME)) { + var columnDef = BigIntegerColumnDef.newBigIntegerColumnDefBuilder() + .setColumnName(COLUMN_NAME) + .setIsNullable(false) + .build(); + + context.execute(new AlterColumnsBuilder(getDialect(), TABLE_NAME) + .updateColumn(columnDef) + .build()); + } + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202504/AddWithdrawnToScaVulnerabilityIssues.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202504/AddWithdrawnToScaVulnerabilityIssues.java new file mode 100644 index 00000000000..786259b8f97 --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202504/AddWithdrawnToScaVulnerabilityIssues.java @@ -0,0 +1,54 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202504; + +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.server.platform.db.migration.def.BooleanColumnDef; +import org.sonar.server.platform.db.migration.sql.AddColumnsBuilder; +import org.sonar.server.platform.db.migration.step.DdlChange; + +import static org.sonar.db.DatabaseUtils.tableColumnExists; + +public class AddWithdrawnToScaVulnerabilityIssues extends DdlChange { + static final String TABLE_NAME = "sca_vulnerability_issues"; + static final String COLUMN_NAME = "withdrawn"; + + public AddWithdrawnToScaVulnerabilityIssues(Database db) { + super(db); + } + + @Override + public void execute(Context context) throws SQLException { + try (var connection = getDatabase().getDataSource().getConnection()) { + if (!tableColumnExists(connection, TABLE_NAME, COLUMN_NAME)) { + var columnDef = BooleanColumnDef.newBooleanColumnDefBuilder() + .setDefaultValue(false) + .setColumnName(COLUMN_NAME) + .setIsNullable(false) + .build(); + + context.execute(new AddColumnsBuilder(getDialect(), TABLE_NAME) + .addColumn(columnDef) + .build()); + } + } + } +} diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202504/DbVersion202504.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202504/DbVersion202504.java new file mode 100644 index 00000000000..af12a46c5ae --- /dev/null +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202504/DbVersion202504.java @@ -0,0 +1,34 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202504; + +import org.sonar.server.platform.db.migration.step.MigrationStepRegistry; +import org.sonar.server.platform.db.migration.version.DbVersion; + +public class DbVersion202504 implements DbVersion { + // ignoring bad number formatting, as it's intended that we align the migration numbers to SQ versions + @SuppressWarnings("java:S3937") + + @Override + public void addSteps(MigrationStepRegistry registry) { + registry + .add(2025_04_000, "Add 'withdrawn' column to 'sca_vulnerability_issues' table", AddWithdrawnToScaVulnerabilityIssues.class); + } +} diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/roots/package-info.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202504/package-info.java index c255d1eea80..ebad6a23ac3 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/roots/package-info.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v202504/package-info.java @@ -18,9 +18,6 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ @ParametersAreNonnullByDefault -@Generated("sonar-ws-generator") -package org.sonarqube.ws.client.roots; +package org.sonar.server.platform.db.migration.version.v202504; import javax.annotation.ParametersAreNonnullByDefault; -import jakarta.annotation.Generated; - diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v202504/DbVersion202504Test.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v202504/DbVersion202504Test.java new file mode 100644 index 00000000000..3b27807db59 --- /dev/null +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v202504/DbVersion202504Test.java @@ -0,0 +1,40 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.db.migration.version.v202504; + +import org.junit.jupiter.api.Test; + +import static org.sonar.server.platform.db.migration.version.DbVersionTestUtils.verifyMigrationNotEmpty; +import static org.sonar.server.platform.db.migration.version.DbVersionTestUtils.verifyMinimumMigrationNumber; + +class DbVersion202503Test { + + private final DbVersion202504 underTest = new DbVersion202504(); + + @Test + void migrationNumber_starts_at_2025_04_000() { + verifyMinimumMigrationNumber(underTest, 2025_04_000); + } + + @Test + void verify_migration_is_not_empty() { + verifyMigrationNotEmpty(underTest); + } +} diff --git a/server/sonar-process/src/main/java/org/sonar/process/ProcessProperties.java b/server/sonar-process/src/main/java/org/sonar/process/ProcessProperties.java index 3cf08d4085f..fd13abb2bfb 100644 --- a/server/sonar-process/src/main/java/org/sonar/process/ProcessProperties.java +++ b/server/sonar-process/src/main/java/org/sonar/process/ProcessProperties.java @@ -101,7 +101,10 @@ public class ProcessProperties { WEB_HTTP_MAX_THREADS("sonar.web.http.maxThreads"), WEB_HTTP_ACCEPT_COUNT("sonar.web.http.acceptCount"), WEB_HTTP_KEEP_ALIVE_TIMEOUT("sonar.web.http.keepAliveTimeout"), - WEB_SESSION_TIMEOUT_IN_MIN("sonar.web.sessionTimeoutInMinutes"), + // The time a user can remain idle (no activity) before the session ends. + WEB_INACTIVE_SESSION_TIMEOUT_IN_MIN("sonar.web.sessionTimeoutInMinutes"), + // The time a user can remain logged in, regardless of activity + WEB_ACTIVE_SESSION_TIMEOUT_IN_MIN("sonar.web.activeSessionTimeoutInMinutes"), WEB_SYSTEM_PASS_CODE("sonar.web.systemPasscode"), WEB_ACCESSLOGS_ENABLE("sonar.web.accessLogs.enable"), WEB_ACCESSLOGS_PATTERN("sonar.web.accessLogs.pattern"), diff --git a/server/sonar-server-common/src/it/java/org/sonar/server/component/index/EntityDefinitionIndexerIT.java b/server/sonar-server-common/src/it/java/org/sonar/server/component/index/EntityDefinitionIndexerIT.java index e898a27dbb7..2f624caebef 100644 --- a/server/sonar-server-common/src/it/java/org/sonar/server/component/index/EntityDefinitionIndexerIT.java +++ b/server/sonar-server-common/src/it/java/org/sonar/server/component/index/EntityDefinitionIndexerIT.java @@ -21,10 +21,14 @@ package org.sonar.server.component.index; import java.util.Arrays; import java.util.Collection; +import java.util.Optional; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.builder.SearchSourceBuilder; +import org.junit.Before; import org.junit.Rule; import org.junit.Test; +import org.slf4j.event.Level; +import org.sonar.api.testfixtures.log.LogTester; import org.sonar.api.utils.System2; import org.sonar.db.DbClient; import org.sonar.db.DbSession; @@ -33,15 +37,18 @@ import org.sonar.db.component.BranchDto; import org.sonar.db.component.ProjectData; import org.sonar.db.entity.EntityDto; import org.sonar.db.es.EsQueueDto; +import org.sonar.db.portfolio.PortfolioDto; import org.sonar.db.project.ProjectDto; import org.sonar.server.es.EsClient; import org.sonar.server.es.EsTester; import org.sonar.server.es.Indexers; import org.sonar.server.es.IndexingResult; +import static java.lang.String.format; import static java.util.Collections.emptySet; import static java.util.Collections.singletonList; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatException; import static org.elasticsearch.index.query.QueryBuilders.matchQuery; import static org.sonar.db.component.ComponentQualifiers.PROJECT; import static org.sonar.server.component.index.ComponentIndexDefinition.FIELD_NAME; @@ -60,10 +67,18 @@ public class EntityDefinitionIndexerIT { public EsTester es = EsTester.create(); @Rule public DbTester db = DbTester.create(system2); + @Rule + public LogTester logTester = new LogTester(); private DbClient dbClient = db.getDbClient(); private DbSession dbSession = db.getSession(); - private EntityDefinitionIndexer underTest = new EntityDefinitionIndexer(db.getDbClient(), es.client()); + private EntityDefinitionIndexer underTest; + + @Before + public void setup() { + underTest = new EntityDefinitionIndexer(db.getDbClient(), es.client()); + logTester.setLevel(Level.DEBUG); + } @Test public void test_getIndexTypes() { @@ -121,6 +136,62 @@ public class EntityDefinitionIndexerIT { } @Test + public void indexOnStartup_fixes_corrupted_portfolios_if_possible_and_then_indexes_them() throws Exception { + underTest = new EntityDefinitionIndexer(db.getDbClient(), es.client()); + String uuid = "portfolioUuid1"; + ProjectDto project = db.components().insertPrivateProject().getProjectDto(); + PortfolioDto corruptedPortfolio = new PortfolioDto() + .setKey("portfolio1") + .setName("My Portfolio") + .setSelectionMode(PortfolioDto.SelectionMode.NONE) + .setUuid(uuid) + .setRootUuid(uuid); + db.getDbClient().portfolioDao().insert(dbSession, corruptedPortfolio, false); + + // corrupt the portfolio in a fixable way (root portfolio with self-referential parent_uuid) + dbSession.getSqlSession().getConnection().prepareStatement(format("UPDATE portfolios SET parent_uuid = '%s' where uuid = '%s'", uuid, uuid)) + .execute(); + dbSession.commit(); + Optional<EntityDto> entity = dbClient.entityDao().selectByUuid(dbSession, uuid); + + assertThat(entity).isPresent(); + assertThat(entity.get().getAuthUuid()).isNull(); + + underTest.indexOnStartup(emptySet()); + + assertThat(logTester.logs()).contains("Fixing corrupted portfolio tree for root portfolio " + corruptedPortfolio.getUuid()); + assertThatIndexContainsOnly(project, corruptedPortfolio); + } + + @Test + public void indexOnStartup_logs_warning_about_corrupted_portfolios_that_cannot_be_fixed_automatically() throws Exception { + underTest = new EntityDefinitionIndexer(db.getDbClient(), es.client()); + String uuid = "portfolioUuid1"; + PortfolioDto corruptedPortfolio = new PortfolioDto() + .setKey("portfolio1") + .setName("My Portfolio") + .setSelectionMode(PortfolioDto.SelectionMode.NONE) + .setUuid(uuid) + .setRootUuid(uuid); + db.getDbClient().portfolioDao().insert(dbSession, corruptedPortfolio, false); + + // corrupt the portfolio in an un-fixable way (non-existent parent) + dbSession.getSqlSession().getConnection().prepareStatement(format("UPDATE portfolios SET parent_uuid = 'junk_uuid' where uuid = '%s'", uuid)) + .execute(); + dbSession.commit(); + Optional<EntityDto> entity = dbClient.entityDao().selectByUuid(dbSession, uuid); + + assertThat(entity).isPresent(); + assertThat(entity.get().getAuthUuid()).isNull(); + + assertThatException() + .isThrownBy(() -> underTest.indexOnStartup(emptySet())); + + assertThat(logTester.logs()).contains("Detected portfolio tree corruption for portfolio " + corruptedPortfolio.getUuid()); + + } + + @Test public void indexOnAnalysis_indexes_project() { ProjectData project = db.components().insertPrivateProject(); diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/component/index/EntityDefinitionIndexer.java b/server/sonar-server-common/src/main/java/org/sonar/server/component/index/EntityDefinitionIndexer.java index 9a9a4cb96f3..a2a2a55ae9c 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/component/index/EntityDefinitionIndexer.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/component/index/EntityDefinitionIndexer.java @@ -30,6 +30,8 @@ import java.util.stream.Collectors; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.component.BranchDto; @@ -56,7 +58,7 @@ import static org.sonar.server.component.index.ComponentIndexDefinition.TYPE_COM * Indexes the definition of all entities: projects, applications, portfolios and sub-portfolios. */ public class EntityDefinitionIndexer implements EventIndexer, AnalysisIndexer, NeedAuthorizationIndexer { - + private static final Logger LOG = LoggerFactory.getLogger(EntityDefinitionIndexer.class); private static final AuthorizationScope AUTHORIZATION_SCOPE = new AuthorizationScope(TYPE_COMPONENT, entity -> true); private static final Set<IndexType> INDEX_TYPES = Set.of(TYPE_COMPONENT); @@ -172,16 +174,43 @@ public class EntityDefinitionIndexer implements EventIndexer, AnalysisIndexer, N private void doIndexByEntityUuid(Size bulkSize) { BulkIndexer bulk = new BulkIndexer(esClient, TYPE_COMPONENT, bulkSize); bulk.start(); + Set<EntityDto> corruptedEntities = new HashSet<>(); try (DbSession dbSession = dbClient.openSession(false)) { dbClient.entityDao().scrollForIndexing(dbSession, context -> { EntityDto dto = context.getResultObject(); - bulk.add(toDocument(dto).toIndexRequest()); + if (dto.getAuthUuid() == null) { + corruptedEntities.add(dto); + } else { + bulk.add(toDocument(dto).toIndexRequest()); + } }); + if (!corruptedEntities.isEmpty()) { + attemptToFixCorruptedEntities(dbSession, corruptedEntities); + List<EntityDto> fixedEntities = dbClient.entityDao().selectByUuids(dbSession, corruptedEntities.stream().map(EntityDto::getUuid).toList()); + fixedEntities.forEach(entity -> bulk.add(toDocument(entity).toIndexRequest())); + } } bulk.stop(); } + private void attemptToFixCorruptedEntities(DbSession dbSession, Set<EntityDto> corruptedEntities) { + for (EntityDto entity : corruptedEntities) { + dbClient.portfolioDao().selectByUuid(dbSession, entity.getUuid()).ifPresent(portfolio -> { + String portfolioUuid = portfolio.getUuid(); + String rootUuid = portfolio.getRootUuid(); + String parentUuid = portfolio.getParentUuid(); + if (portfolioUuid.equals(rootUuid) && portfolioUuid.equals(parentUuid)) { + LOG.warn("Fixing corrupted portfolio tree for root portfolio {}", portfolioUuid); + portfolio.setParentUuid(null); + dbClient.portfolioDao().update(dbSession, portfolio); + } else { + LOG.warn("Detected portfolio tree corruption for portfolio {}", portfolioUuid); + } + }); + } + } + private static void addProjectDeletionToBulkIndexer(BulkIndexer bulkIndexer, String projectUuid) { SearchRequest searchRequest = EsClient.prepareSearch(TYPE_COMPONENT.getMainType()) .source(new SearchSourceBuilder().query(QueryBuilders.termQuery(ComponentIndexDefinition.FIELD_UUID, projectUuid))) diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/issue/SearchRequest.java b/server/sonar-server-common/src/main/java/org/sonar/server/issue/SearchRequest.java index 343075669ef..90b6e0bfa01 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/issue/SearchRequest.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/issue/SearchRequest.java @@ -70,6 +70,7 @@ public class SearchRequest { private Set<String> types; private List<String> pciDss32; private List<String> pciDss40; + private List<String> owaspMobileTop10For2024; private List<String> owaspTop10; private List<String> owaspAsvs40; private List<String> owaspTop10For2021; @@ -419,6 +420,16 @@ public class SearchRequest { } @CheckForNull + public List<String> getOwaspMobileTop10For2024() { + return owaspMobileTop10For2024; + } + + public SearchRequest setOwaspMobileTop10For2024(@Nullable List<String> owaspMobileTop10For2024) { + this.owaspMobileTop10For2024 = owaspMobileTop10For2024; + return this; + } + + @CheckForNull public List<String> getOwaspTop10() { return owaspTop10; } diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/issue/TaintChecker.java b/server/sonar-server-common/src/main/java/org/sonar/server/issue/TaintChecker.java index 972f06e0366..f40ddf46ccd 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/issue/TaintChecker.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/issue/TaintChecker.java @@ -77,8 +77,8 @@ public class TaintChecker { } private List<String> initializeRepositories() { - List<String> repositories = new ArrayList<>(List.of("roslyn.sonaranalyzer.security.cs", - "javasecurity", "jssecurity", "tssecurity", "phpsecurity", "pythonsecurity")); + List<String> repositories = new ArrayList<>(List.of("gosecurity", "javasecurity", "jssecurity", "kotlinsecurity", "phpsecurity", "pythonsecurity", + "roslyn.sonaranalyzer.security.cs", "tssecurity")); if (!config.hasKey(EXTRA_TAINT_REPOSITORIES)) { return repositories; diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueDoc.java b/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueDoc.java index 4f044ecc2e0..e199187e443 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueDoc.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueDoc.java @@ -336,6 +336,16 @@ public class IssueDoc extends BaseDoc { } @CheckForNull + public Collection<String> getOwaspMobileTop10For2024() { + return getNullableField(IssueIndexDefinition.FIELD_ISSUE_OWASP_MOBILE_TOP_10_2024); + } + + public IssueDoc setOwaspMobileTop10For2024(@Nullable Collection<String> o) { + setField(IssueIndexDefinition.FIELD_ISSUE_OWASP_MOBILE_TOP_10_2024, o); + return this; + } + + @CheckForNull public Collection<String> getOwaspTop10() { return getNullableField(IssueIndexDefinition.FIELD_ISSUE_OWASP_TOP_10); } diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueIndexDefinition.java b/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueIndexDefinition.java index 685797b4db5..4f54d03cef1 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueIndexDefinition.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueIndexDefinition.java @@ -93,6 +93,7 @@ public class IssueIndexDefinition implements IndexDefinition { public static final String FIELD_ISSUE_PCI_DSS_40 = "pciDss-4.0"; public static final String FIELD_ISSUE_OWASP_ASVS_40 = "owaspAsvs-4.0"; public static final String FIELD_ISSUE_OWASP_ASVS_40_LEVEL = "owaspAsvs-4.0-level"; + public static final String FIELD_ISSUE_OWASP_MOBILE_TOP_10_2024 = "owaspMobileTop10-2024"; public static final String FIELD_ISSUE_OWASP_TOP_10 = "owaspTop10"; public static final String FIELD_ISSUE_OWASP_TOP_10_2021 = "owaspTop10-2021"; public static final String FIELD_ISSUE_SANS_TOP_25 = "sansTop25"; @@ -180,6 +181,7 @@ public class IssueIndexDefinition implements IndexDefinition { mapping.keywordFieldBuilder(FIELD_ISSUE_PCI_DSS_40).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_ISSUE_OWASP_ASVS_40).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_ISSUE_OWASP_ASVS_40_LEVEL).disableNorms().build(); + mapping.keywordFieldBuilder(FIELD_ISSUE_OWASP_MOBILE_TOP_10_2024).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_ISSUE_OWASP_TOP_10).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_ISSUE_OWASP_TOP_10_2021).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_ISSUE_SANS_TOP_25).disableNorms().build(); diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueIteratorForSingleChunk.java b/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueIteratorForSingleChunk.java index 676a6284b61..7383ef4a757 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueIteratorForSingleChunk.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueIteratorForSingleChunk.java @@ -32,8 +32,8 @@ import org.apache.ibatis.cursor.Cursor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonar.api.rules.CleanCodeAttribute; -import org.sonar.core.rule.RuleType; import org.sonar.api.server.rule.RulesDefinition.StigVersion; +import org.sonar.core.rule.RuleType; import org.sonar.db.DatabaseUtils; import org.sonar.db.DbClient; import org.sonar.db.DbSession; @@ -130,6 +130,7 @@ class IssueIteratorForSingleChunk implements IssueIterator { doc.setImpacts(indexedIssueDto.getEffectiveImpacts()); SecurityStandards securityStandards = fromSecurityStandards(deserializeSecurityStandardsString(indexedIssueDto.getSecurityStandards())); SecurityStandards.SQCategory sqCategory = securityStandards.getSqCategory(); + doc.setOwaspMobileTop10For2024(securityStandards.getOwaspMobileTop10For2024()); doc.setOwaspTop10(securityStandards.getOwaspTop10()); doc.setOwaspTop10For2021(securityStandards.getOwaspTop10For2021()); doc.setStigAsdV5R3(securityStandards.getStig(StigVersion.ASD_V5R3)); diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/SecurityStandardCategoryStatistics.java b/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/SecurityStandardCategoryStatistics.java index 1c8dfb0696b..903fe411831 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/SecurityStandardCategoryStatistics.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/issue/index/SecurityStandardCategoryStatistics.java @@ -20,6 +20,7 @@ package org.sonar.server.issue.index; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import javax.annotation.Nullable; @@ -38,9 +39,11 @@ public class SecurityStandardCategoryStatistics { private boolean hasMoreRules; private final Optional<String> version; private Optional<String> level = Optional.empty(); + private final Map<String, Long> severityDistribution; public SecurityStandardCategoryStatistics(String category, long vulnerabilities, OptionalInt vulnerabiliyRating, long toReviewSecurityHotspots, - long reviewedSecurityHotspots, Integer securityReviewRating, @Nullable List<SecurityStandardCategoryStatistics> children, @Nullable String version) { + long reviewedSecurityHotspots, Integer securityReviewRating, @Nullable List<SecurityStandardCategoryStatistics> children, @Nullable String version, + Map<String, Long> severityDistribution) { this.category = category; this.vulnerabilities = vulnerabilities; this.vulnerabilityRating = vulnerabiliyRating; @@ -50,6 +53,30 @@ public class SecurityStandardCategoryStatistics { this.children = children; this.version = Optional.ofNullable(version); this.hasMoreRules = false; + this.severityDistribution = severityDistribution; + } + + public SecurityStandardCategoryStatistics withModifiedVulnerabilities( + int additionalVulnerabilities, + @Nullable Integer newVulnerabilityRating) { + OptionalInt newVulnerabilityRatingValue; + + if (newVulnerabilityRating != null) { + newVulnerabilityRatingValue = OptionalInt.of(Math.max(newVulnerabilityRating, this.getVulnerabilityRating().orElse(0))); + } else { + newVulnerabilityRatingValue = this.getVulnerabilityRating(); + } + + return new SecurityStandardCategoryStatistics( + this.getCategory(), + this.getVulnerabilities() + additionalVulnerabilities, + newVulnerabilityRatingValue, + this.getToReviewSecurityHotspots(), + this.getReviewedSecurityHotspots(), + this.getSecurityReviewRating(), + this.getChildren(), + this.getVersion().orElse(null), + this.getSeverityDistribution()); } public String getCategory() { @@ -118,4 +145,8 @@ public class SecurityStandardCategoryStatistics { public void setHasMoreRules(boolean hasMoreRules) { this.hasMoreRules = hasMoreRules; } + + public Map<String, Long> getSeverityDistribution() { + return severityDistribution; + } } diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/ChangesOnMyIssueNotificationHandler.java b/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/ChangesOnMyIssueNotificationHandler.java index 154d5db7640..352e22c2995 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/ChangesOnMyIssueNotificationHandler.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/ChangesOnMyIssueNotificationHandler.java @@ -44,7 +44,7 @@ import static org.sonar.server.notification.NotificationManager.SubscriberPermis public class ChangesOnMyIssueNotificationHandler extends EmailNotificationHandler<IssuesChangesNotification> { - private static final String KEY = "ChangesOnMyIssue"; + public static final String KEY = "ChangesOnMyIssue"; private static final NotificationDispatcherMetadata METADATA = NotificationDispatcherMetadata.create(KEY) .setProperty(NotificationDispatcherMetadata.GLOBAL_NOTIFICATION, String.valueOf(true)) .setProperty(NotificationDispatcherMetadata.PER_PROJECT_NOTIFICATION, String.valueOf(true)); diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/issue/workflow/codequalityissue/CodeQualityIssueWorkflowDefinition.java b/server/sonar-server-common/src/main/java/org/sonar/server/issue/workflow/codequalityissue/CodeQualityIssueWorkflowDefinition.java index 389d1697c5f..3da617a1be9 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/issue/workflow/codequalityissue/CodeQualityIssueWorkflowDefinition.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/issue/workflow/codequalityissue/CodeQualityIssueWorkflowDefinition.java @@ -26,6 +26,7 @@ import org.sonar.api.server.ServerSide; import org.sonar.issue.workflow.statemachine.StateMachine; import org.sonar.issue.workflow.statemachine.Transition; +import static java.util.function.Predicate.not; import static org.sonar.api.issue.Issue.RESOLUTION_FALSE_POSITIVE; import static org.sonar.api.issue.Issue.RESOLUTION_FIXED; import static org.sonar.api.issue.Issue.RESOLUTION_REMOVED; @@ -56,6 +57,9 @@ public class CodeQualityIssueWorkflowDefinition { private static final Consumer<CodeQualityIssueWorkflowActions> UNSET_RESOLUTION = CodeQualityIssueWorkflowActions::unsetResolution; private static final Consumer<CodeQualityIssueWorkflowActions> RESTORE_RESOLUTION = CodeQualityIssueWorkflowActions::restoreResolution; + private static final Predicate<CodeQualityIssueWorkflowEntity> AUTOMATIC_REOPEN_PREDICATE = not(CodeQualityIssueWorkflowEntity::isBeingClosed) + .and(issue -> issue.hasAnyResolution(RESOLUTION_FIXED)); + private final StateMachine<CodeQualityIssueWorkflowEntity, CodeQualityIssueWorkflowActions> machine; public CodeQualityIssueWorkflowDefinition() { @@ -181,9 +185,7 @@ public class CodeQualityIssueWorkflowDefinition { // Reopen issues that are marked as resolved but that are still alive. .transition(Transition.<CodeQualityIssueWorkflowEntity, CodeQualityIssueWorkflowActions>builder("automaticreopen") .from(STATUS_RESOLVED).to(STATUS_REOPENED) - .conditions( - Predicate.not(CodeQualityIssueWorkflowEntity::isBeingClosed), - i -> i.hasAnyResolution(RESOLUTION_FIXED)) + .conditions(AUTOMATIC_REOPEN_PREDICATE) .actions(UNSET_RESOLUTION, UNSET_CLOSE_DATE) .automatic() .build()) @@ -227,6 +229,8 @@ public class CodeQualityIssueWorkflowDefinition { .from(STATUS_RESOLVED) .to(STATUS_REOPENED) .conditions( + // We check this first condition to avoid overlap with the automaticreopen transition. + not(AUTOMATIC_REOPEN_PREDICATE), CodeQualityIssueWorkflowEntity::isTaintVulnerability, CodeQualityIssueWorkflowEntity::locationsChanged) .actions( diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/issue/workflow/securityhotspot/SecurityHotspotWorkflowTransition.java b/server/sonar-server-common/src/main/java/org/sonar/server/issue/workflow/securityhotspot/SecurityHotspotWorkflowTransition.java index af6c9dae152..659774ab983 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/issue/workflow/securityhotspot/SecurityHotspotWorkflowTransition.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/issue/workflow/securityhotspot/SecurityHotspotWorkflowTransition.java @@ -26,18 +26,7 @@ import java.util.stream.Stream; import org.sonar.server.issue.workflow.WorkflowTransition; public enum SecurityHotspotWorkflowTransition implements WorkflowTransition { - /** - * @deprecated since 8.1, transition has no effect - */ - @Deprecated - SET_AS_IN_REVIEW("setinreview"), - /** - * @since 7.8 - * @deprecated since 8.1, security hotspots can no longer be converted to vulnerabilities - */ - @Deprecated - OPEN_AS_VULNERABILITY("openasvulnerability"), RESOLVE_AS_REVIEWED("resolveasreviewed"), RESOLVE_AS_SAFE("resolveassafe"), RESOLVE_AS_ACKNOWLEDGED("resolveasacknowledged"), diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/security/SecurityStandards.java b/server/sonar-server-common/src/main/java/org/sonar/server/security/SecurityStandards.java index eaead555007..9e4b5df7878 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/security/SecurityStandards.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/security/SecurityStandards.java @@ -65,6 +65,7 @@ public final class SecurityStandards { @Deprecated(since = "10.0", forRemoval = true) public static final String SANS_TOP_25_POROUS_DEFENSES = "porous-defenses"; + private static final String OWASP_MOBILE_TOP10_2024_PREFIX = "owaspMobileTop10-2024:"; private static final String OWASP_TOP10_PREFIX = "owaspTop10:"; private static final String OWASP_TOP10_2021_PREFIX = "owaspTop10-2021:"; private static final String PCI_DSS_32_PREFIX = V3_2.prefix() + ":"; @@ -104,14 +105,20 @@ public final class SecurityStandards { public static final List<String> CWE_TOP25_2023 = List.of("787", "79", "89", "416", "78", "20", "125", "22", "352", "434", "862", "476", "287", "190", "502", "77", "119", "798", "918", "306", "362", "269", "94", "863", "276"); + // https://cwe.mitre.org/top25/archive/2024/2024_cwe_top25.html#tableView + public static final List<String> CWE_TOP25_2024 = List.of("79", "787", "89", "352", "22", "125", "78", "416", "862", "434", "94", "20", "77", "287", "269", + "502", "200", "863", "918", "119", "476", "798", "190", "400", "306"); + public static final String CWE_YEAR_2021 = "2021"; public static final String CWE_YEAR_2022 = "2022"; public static final String CWE_YEAR_2023 = "2023"; + public static final String CWE_YEAR_2024 = "2024"; public static final Map<String, List<String>> CWES_BY_CWE_TOP_25 = Map.of( CWE_YEAR_2021, CWE_TOP25_2021, CWE_YEAR_2022, CWE_TOP25_2022, - CWE_YEAR_2023, CWE_TOP25_2023); + CWE_YEAR_2023, CWE_TOP25_2023, + CWE_YEAR_2024, CWE_TOP25_2024); private static final List<String> OWASP_ASVS_40_LEVEL_1 = List.of("2.1.1", "2.1.10", "2.1.11", "2.1.12", "2.1.2", "2.1.3", "2.1.4", "2.1.5", "2.1.6", "2.1.7", "2.1.8", "2.1.9", "2.10.1", "2.10.2", "2.10.3", "2.10.4", "2.2.1", "2.2.2", "2.2.3", "2.3.1", "2.5.1", "2.5.2", "2.5.3", "2.5.4", "2.5.5", "2.5.6", "2.7.1", "2.7.2", "2.7.3", "2.7.4", "2.8.1", @@ -447,6 +454,10 @@ public final class SecurityStandards { return getMatchingStandards(standards, OWASP_ASVS_40_PREFIX); } + public Set<String> getOwaspMobileTop10For2024() { + return getMatchingStandards(standards, OWASP_MOBILE_TOP10_2024_PREFIX); + } + public Set<String> getOwaspTop10() { return getMatchingStandards(standards, OWASP_TOP10_PREFIX); } diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/issue/TaintCheckerTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/issue/TaintCheckerTest.java index 8e5073080ad..4cbf7aeeb41 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/issue/TaintCheckerTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/issue/TaintCheckerTest.java @@ -44,13 +44,15 @@ public class TaintCheckerTest { public void test_getTaintIssuesOnly() { List<IssueDto> taintIssues = underTest.getTaintIssuesOnly(getIssues()); - assertThat(taintIssues).hasSize(6); + assertThat(taintIssues).hasSize(8); assertThat(taintIssues.get(0).getKey()).isEqualTo("taintIssue1"); assertThat(taintIssues.get(1).getKey()).isEqualTo("taintIssue2"); assertThat(taintIssues.get(2).getKey()).isEqualTo("taintIssue3"); assertThat(taintIssues.get(3).getKey()).isEqualTo("taintIssue4"); assertThat(taintIssues.get(4).getKey()).isEqualTo("taintIssue5"); assertThat(taintIssues.get(5).getKey()).isEqualTo("taintIssue6"); + assertThat(taintIssues.get(6).getKey()).isEqualTo("taintIssue7"); + assertThat(taintIssues.get(7).getKey()).isEqualTo("taintIssue8"); } @Test @@ -69,7 +71,7 @@ public class TaintCheckerTest { Map<Boolean, List<IssueDto>> issuesByTaintStatus = underTest.mapIssuesByTaintStatus(getIssues()); assertThat(issuesByTaintStatus.keySet()).hasSize(2); - assertThat(issuesByTaintStatus.get(true)).hasSize(6); + assertThat(issuesByTaintStatus.get(true)).hasSize(8); assertThat(issuesByTaintStatus.get(false)).hasSize(3); assertThat(issuesByTaintStatus.get(true).get(0).getKey()).isEqualTo("taintIssue1"); @@ -78,6 +80,8 @@ public class TaintCheckerTest { assertThat(issuesByTaintStatus.get(true).get(3).getKey()).isEqualTo("taintIssue4"); assertThat(issuesByTaintStatus.get(true).get(4).getKey()).isEqualTo("taintIssue5"); assertThat(issuesByTaintStatus.get(true).get(5).getKey()).isEqualTo("taintIssue6"); + assertThat(issuesByTaintStatus.get(true).get(6).getKey()).isEqualTo("taintIssue7"); + assertThat(issuesByTaintStatus.get(true).get(7).getKey()).isEqualTo("taintIssue8"); assertThat(issuesByTaintStatus.get(false).get(0).getKey()).isEqualTo("standardIssue1"); assertThat(issuesByTaintStatus.get(false).get(1).getKey()).isEqualTo("standardIssue2"); @@ -87,9 +91,9 @@ public class TaintCheckerTest { @Test public void test_getTaintRepositories() { assertThat(underTest.getTaintRepositories()) - .hasSize(6) - .containsExactlyInAnyOrder("roslyn.sonaranalyzer.security.cs", "javasecurity", "jssecurity", - "tssecurity", "phpsecurity", "pythonsecurity"); + .hasSize(8) + .containsExactlyInAnyOrder("gosecurity", "javasecurity", "jssecurity", "kotlinsecurity", "phpsecurity", "pythonsecurity", + "roslyn.sonaranalyzer.security.cs", "tssecurity"); } @Test @@ -98,9 +102,9 @@ public class TaintCheckerTest { when(configuration.getStringArray(EXTRA_TAINT_REPOSITORIES)).thenReturn(new String[]{"extra-1", "extra-2"}); TaintChecker underTest = new TaintChecker(configuration); assertThat(underTest.getTaintRepositories()) - .hasSize(8) - .containsExactlyInAnyOrder("roslyn.sonaranalyzer.security.cs", "javasecurity", "jssecurity", - "tssecurity", "phpsecurity", "pythonsecurity", "extra-1", "extra-2"); + .hasSize(10) + .containsExactlyInAnyOrder("gosecurity", "javasecurity", "jssecurity", "kotlinsecurity", "phpsecurity", "pythonsecurity", + "roslyn.sonaranalyzer.security.cs", "tssecurity", "extra-1", "extra-2"); } @Test @@ -135,6 +139,8 @@ public class TaintCheckerTest { issues.add(createIssueWithRepository("taintIssue4", "tssecurity")); issues.add(createIssueWithRepository("taintIssue5", "phpsecurity")); issues.add(createIssueWithRepository("taintIssue6", "pythonsecurity")); + issues.add(createIssueWithRepository("taintIssue7", "kotlinsecurity")); + issues.add(createIssueWithRepository("taintIssue8", "gosecurity")); issues.add(createIssueWithRepository("standardIssue1", "java")); issues.add(createIssueWithRepository("standardIssue2", "python")); diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/issue/index/SecurityStandardCategoryStatisticsTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/issue/index/SecurityStandardCategoryStatisticsTest.java index 13c8dd28285..a23c45cd248 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/issue/index/SecurityStandardCategoryStatisticsTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/issue/index/SecurityStandardCategoryStatisticsTest.java @@ -20,6 +20,9 @@ package org.sonar.server.issue.index; import java.util.ArrayList; +import java.util.Map; +import java.util.OptionalInt; + import org.junit.Test; import static java.util.OptionalInt.empty; @@ -31,7 +34,7 @@ public class SecurityStandardCategoryStatisticsTest { public void hasMoreRules_default_false() { SecurityStandardCategoryStatistics standardCategoryStatistics = new SecurityStandardCategoryStatistics( "cat", 0, empty(), 0, - 0, 5, null, null + 0, 5, null, null, Map.of() ); assertThat(standardCategoryStatistics.hasMoreRules()).isFalse(); } @@ -40,7 +43,7 @@ public class SecurityStandardCategoryStatisticsTest { public void hasMoreRules_is_updatable() { SecurityStandardCategoryStatistics standardCategoryStatistics = new SecurityStandardCategoryStatistics( "cat", 0, empty(), 0, - 0, 5, null, null + 0, 5, null, null, Map.of() ); standardCategoryStatistics.setHasMoreRules(true); assertThat(standardCategoryStatistics.hasMoreRules()).isTrue(); @@ -50,7 +53,7 @@ public class SecurityStandardCategoryStatisticsTest { public void test_getters() { SecurityStandardCategoryStatistics standardCategoryStatistics = new SecurityStandardCategoryStatistics( "cat", 1, empty(), 0, - 0, 5, new ArrayList<>(), "version" + 0, 5, new ArrayList<>(), "version", Map.of() ).setLevel("1"); standardCategoryStatistics.setActiveRules(3); @@ -69,6 +72,47 @@ public class SecurityStandardCategoryStatisticsTest { assertThat(standardCategoryStatistics.getVersion().get()).contains("version"); assertThat(standardCategoryStatistics.getLevel().get()).contains("1"); assertThat(standardCategoryStatistics.hasMoreRules()).isFalse(); + assertThat(standardCategoryStatistics.getSeverityDistribution()).isEmpty(); + } + + @Test + public void withModifiedVulnerabilities() { + SecurityStandardCategoryStatistics standardCategoryStatistics = new SecurityStandardCategoryStatistics( + "cat", 1, empty(), 0, + 0, 5, null, null, Map.of() + ); + + SecurityStandardCategoryStatistics modified = standardCategoryStatistics.withModifiedVulnerabilities(2, 3); + + assertThat(modified.getVulnerabilities()).isEqualTo(3); + assertThat(modified.getVulnerabilityRating()).isPresent(); + assertThat(modified.getVulnerabilityRating().getAsInt()).isEqualTo(3); + } + + @Test + public void withModifiedVulnerabilities_noNewRating() { + SecurityStandardCategoryStatistics standardCategoryStatistics = new SecurityStandardCategoryStatistics( + "cat", 1, OptionalInt.of(1), 0, + 0, 5, null, null, Map.of() + ); + + SecurityStandardCategoryStatistics modified = standardCategoryStatistics.withModifiedVulnerabilities(2, null); + + assertThat(modified.getVulnerabilities()).isEqualTo(3); + assertThat(modified.getVulnerabilityRating()).isPresent(); + assertThat(modified.getVulnerabilityRating().getAsInt()).isEqualTo(1); } + @Test + public void withModifiedVulnerabilities_usesLowestRating() { + SecurityStandardCategoryStatistics standardCategoryStatistics = new SecurityStandardCategoryStatistics( + "cat", 1, OptionalInt.of(5), 0, + 0, 5, null, null, Map.of() + ); + + SecurityStandardCategoryStatistics modified = standardCategoryStatistics.withModifiedVulnerabilities(2, 3); + + assertThat(modified.getVulnerabilityRating()).isPresent(); + assertThat(modified.getVulnerabilityRating().getAsInt()).isEqualTo(5); + } } diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/issue/workflow/IssueWorkflowForCodeQualityIssuesTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/issue/workflow/IssueWorkflowForCodeQualityIssuesTest.java index 386b3666c26..956ef000a0e 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/issue/workflow/IssueWorkflowForCodeQualityIssuesTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/issue/workflow/IssueWorkflowForCodeQualityIssuesTest.java @@ -60,6 +60,7 @@ import static org.sonar.api.issue.Issue.STATUS_OPEN; import static org.sonar.api.issue.Issue.STATUS_REOPENED; import static org.sonar.api.issue.Issue.STATUS_RESOLVED; import static org.sonar.core.issue.IssueChangeContext.issueChangeContextByScanBuilder; +import static org.sonar.core.rule.RuleType.VULNERABILITY; class IssueWorkflowForCodeQualityIssuesTest { @@ -455,6 +456,27 @@ class IssueWorkflowForCodeQualityIssuesTest { assertThat(issue.assignee()).isNull(); } + @Test + void doManualTransition_shouldUseAutomaticReopenTransitionOnTaintVulnerability_whenMarkedAsResolvedButStillAlive() { + DefaultIssue issue = new DefaultIssue() + .setKey("issue_key") + .setRuleKey(RuleKey.of("xoo", "S001")) + .setStatus(STATUS_RESOLVED) + .setResolution(RESOLUTION_FIXED) + .setLocationsChanged(true) + .setNew(false) + .setType(VULNERABILITY) + .setBeingClosed(false); + when(taintChecker.isTaintVulnerability(issue)) + .thenReturn(true); + + underTest.doAutomaticTransition(issue, issueChangeContextByScanBuilder(new Date()).build()); + + assertThat(issue.issueStatus()).isEqualTo(IssueStatus.OPEN); + List<DefaultIssueComment> issueComments = issue.defaultIssueComments(); + assertThat(issueComments).isEmpty(); + } + private static DefaultIssue newClosedIssue(String resolution) { return new DefaultIssue() .setKey("ABCDE") diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/security/SecurityStandardsTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/security/SecurityStandardsTest.java index c02feb8bb7e..543ac842925 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/security/SecurityStandardsTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/security/SecurityStandardsTest.java @@ -63,6 +63,14 @@ class SecurityStandardsTest { } @Test + void fromSecurityStandards_from_empty_set_has_no_OwaspMobileTop10_standard() { + SecurityStandards securityStandards = fromSecurityStandards(emptySet()); + + assertThat(securityStandards.getStandards()).isEmpty(); + assertThat(securityStandards.getOwaspMobileTop10For2024()).isEmpty(); + } + + @Test void fromSecurityStandards_from_empty_set_has_no_OwaspTop10_standard() { SecurityStandards securityStandards = fromSecurityStandards(emptySet()); diff --git a/server/sonar-telemetry/src/main/java/org/sonar/telemetry/metrics/TelemetryMetricsMapper.java b/server/sonar-telemetry/src/main/java/org/sonar/telemetry/metrics/TelemetryMetricsMapper.java index 6630ab35a9c..c5dfe9fbcad 100644 --- a/server/sonar-telemetry/src/main/java/org/sonar/telemetry/metrics/TelemetryMetricsMapper.java +++ b/server/sonar-telemetry/src/main/java/org/sonar/telemetry/metrics/TelemetryMetricsMapper.java @@ -20,7 +20,6 @@ package org.sonar.telemetry.metrics; import java.util.Collections; -import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; import org.sonar.telemetry.core.Granularity; @@ -40,43 +39,57 @@ public class TelemetryMetricsMapper { switch (provider.getDimension()) { case INSTALLATION -> { return mapInstallationMetric(provider); - } case PROJECT -> { + } + case PROJECT -> { return mapProjectMetric(provider); - } case USER -> { + } + case USER -> { return mapUserMetric(provider); - } case LANGUAGE -> { + } + case LANGUAGE -> { return mapLanguageMetric(provider); - } default -> throw new IllegalArgumentException("Dimension: " + provider.getDimension() + " not yet implemented."); + } + default -> throw new IllegalArgumentException("Dimension: " + provider.getDimension() + " not yet implemented."); } } private static Set<Metric> mapInstallationMetric(TelemetryDataProvider<?> provider) { - Optional<?> optionalValue = provider.getValue(); - - Granularity granularity = provider.getGranularity(); - - if (granularity == Granularity.ADHOC && !provider.getValues().isEmpty()) { - return provider.getValues().entrySet().stream() + // Case 1: the provider has implemented getValues() and it is non‐empty + var multiValues = provider.getValues(); + if (!multiValues.isEmpty()) { + return multiValues.entrySet().stream() .map(entry -> new InstallationMetric( provider.getMetricKey() + "." + entry.getKey(), entry.getValue(), provider.getType(), - granularity - )).collect(Collectors.toSet()); + provider.getGranularity())) + .collect(Collectors.toSet()); } - if (granularity == Granularity.ADHOC && optionalValue.isEmpty()) { - return Collections.emptySet(); + // Case 2: the provider has implemented getValue() and it is non‐empty + var singleValue = provider.getValue(); + if (singleValue.isPresent()) { + return Collections.singleton(new InstallationMetric( + provider.getMetricKey(), + singleValue.orElse(null), + provider.getType(), + provider.getGranularity())); } - return Collections.singleton(new InstallationMetric( - provider.getMetricKey(), - optionalValue.orElse(null), - provider.getType(), - granularity - )); + // Case 3: the provider has not implemented getValue() or getValues(), or both are empty + if (provider.getGranularity() == Granularity.ADHOC) { + return Collections.emptySet(); + } else { + // It's not clear whether we actually want to send a null metric in this case, but we do for now to be consistent with the previous implementation. + return Collections.singleton(new InstallationMetric( + provider.getMetricKey(), + null, + provider.getType(), + provider.getGranularity())); + } } + // Note: Dimension.USER does not currently support getValue(). But we just silently ignore it if a provider tries to use it. private static Set<Metric> mapUserMetric(TelemetryDataProvider<?> provider) { return provider.getValues().entrySet().stream() .map(entry -> new UserMetric( @@ -84,10 +97,11 @@ public class TelemetryMetricsMapper { entry.getValue(), entry.getKey(), provider.getType(), - provider.getGranularity() - )).collect(Collectors.toSet()); + provider.getGranularity())) + .collect(Collectors.toSet()); } + // Note: Dimension.PROJECT does not currently support getValue(). But we just silently ignore it if a provider tries to use it. private static Set<Metric> mapProjectMetric(TelemetryDataProvider<?> provider) { return provider.getValues().entrySet().stream() .map(entry -> new ProjectMetric( @@ -95,10 +109,11 @@ public class TelemetryMetricsMapper { entry.getValue(), entry.getKey(), provider.getType(), - provider.getGranularity() - )).collect(Collectors.toSet()); + provider.getGranularity())) + .collect(Collectors.toSet()); } + // Note: Dimension.LANGUAGE does not currently support getValue(). But we just silently ignore it if a provider tries to use it. private static Set<Metric> mapLanguageMetric(TelemetryDataProvider<?> provider) { return provider.getValues().entrySet().stream() .map(entry -> new LanguageMetric( @@ -106,8 +121,7 @@ public class TelemetryMetricsMapper { entry.getValue(), entry.getKey(), provider.getType(), - provider.getGranularity() - )).collect(Collectors.toSet()); + provider.getGranularity())) + .collect(Collectors.toSet()); } - } diff --git a/server/sonar-telemetry/src/test/java/org/sonar/telemetry/metrics/TelemetryMetricsMapperTest.java b/server/sonar-telemetry/src/test/java/org/sonar/telemetry/metrics/TelemetryMetricsMapperTest.java index 69870bf024f..193566b5f68 100644 --- a/server/sonar-telemetry/src/test/java/org/sonar/telemetry/metrics/TelemetryMetricsMapperTest.java +++ b/server/sonar-telemetry/src/test/java/org/sonar/telemetry/metrics/TelemetryMetricsMapperTest.java @@ -21,6 +21,8 @@ package org.sonar.telemetry.metrics; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.Set; import org.assertj.core.groups.Tuple; import org.junit.jupiter.api.Test; @@ -40,8 +42,14 @@ import static org.assertj.core.api.Assertions.tuple; class TelemetryMetricsMapperTest { @Test - void mapFromDataProvider_whenInstallationProvider() { - TelemetryDataProvider<String> provider = new TestTelemetryBean(Dimension.INSTALLATION); + void mapFromDataProvider_withInstallationProviderSingleValue_returnsSingleValue() { + // Override multi-value method to return empty. Keep the single-value method defined in TestTelemetryBean. + TelemetryDataProvider<String> provider = new TestTelemetryBean(Dimension.INSTALLATION) { + @Override + public Map<String, String> getValues() { + return Map.of(); + } + }; Set<Metric> metrics = TelemetryMetricsMapper.mapFromDataProvider(provider); List<InstallationMetric> userMetrics = retrieveList(metrics); @@ -49,17 +57,70 @@ class TelemetryMetricsMapperTest { assertThat(userMetrics) .extracting(InstallationMetric::getKey, InstallationMetric::getType, InstallationMetric::getValue, InstallationMetric::getGranularity) .containsExactlyInAnyOrder( - tuple("telemetry-bean-a", TelemetryDataType.STRING, "value", Granularity.DAILY) - ); + tuple("telemetry-bean-a", TelemetryDataType.STRING, "value", Granularity.DAILY)); } @Test - void mapFromDataProvider_whenInstallationProviderWithMultiValue() { + void mapFromDataProvider_withInstallationProviderMultiValues_returnsMultipleValues() { + // Override single-value method to return empty. Keep the multi-value method defined in TestTelemetryBean. + TelemetryDataProvider<String> provider = new TestTelemetryBean(Dimension.INSTALLATION) { + @Override + public Optional<String> getValue() { + return Optional.empty(); + } + }; + + Set<Metric> metrics = TelemetryMetricsMapper.mapFromDataProvider(provider); + List<InstallationMetric> userMetrics = retrieveList(metrics); + + assertThat(userMetrics) + .extracting(InstallationMetric::getKey, InstallationMetric::getType, InstallationMetric::getValue, InstallationMetric::getGranularity) + .containsExactlyInAnyOrder( + tuple("telemetry-bean-a.key-1", TelemetryDataType.STRING, "value-1", Granularity.DAILY), + tuple("telemetry-bean-a.key-2", TelemetryDataType.STRING, "value-2", Granularity.DAILY)); + } + + @Test + void mapFromDataProvider_withInstallationProviderAdhocNoValues_returnEmptySet() { + // Override single-value and multi-value methods to return empty. TelemetryDataProvider<String> provider = new TestTelemetryBean(Dimension.INSTALLATION) { @Override public Granularity getGranularity() { return Granularity.ADHOC; } + + @Override + public Optional<String> getValue() { + return Optional.empty(); + } + + @Override + public Map<String, String> getValues() { + return Map.of(); + } + }; + + Set<Metric> metrics = TelemetryMetricsMapper.mapFromDataProvider(provider); + List<InstallationMetric> userMetrics = retrieveList(metrics); + + assertThat(userMetrics) + .extracting(InstallationMetric::getKey, InstallationMetric::getType, InstallationMetric::getValue, InstallationMetric::getGranularity) + .isEmpty(); + } + + @Test + void mapFromDataProvider_withInstallationProviderDailyNoValues_returnTelemetryWithNullValue() { + // Override single-value and multi-value methods to return empty. + TelemetryDataProvider<String> provider = new TestTelemetryBean(Dimension.INSTALLATION) { + @Override + public Optional<String> getValue() { + return Optional.empty(); + } + + @Override + public Map<String, String> getValues() { + return Map.of(); + } }; Set<Metric> metrics = TelemetryMetricsMapper.mapFromDataProvider(provider); @@ -68,9 +129,7 @@ class TelemetryMetricsMapperTest { assertThat(userMetrics) .extracting(InstallationMetric::getKey, InstallationMetric::getType, InstallationMetric::getValue, InstallationMetric::getGranularity) .containsExactlyInAnyOrder( - tuple("telemetry-bean-a.key-1", TelemetryDataType.STRING, "value-1", Granularity.ADHOC), - tuple("telemetry-bean-a.key-2", TelemetryDataType.STRING, "value-2", Granularity.ADHOC) - ); + tuple("telemetry-bean-a", TelemetryDataType.STRING, null, Granularity.DAILY)); } @Test @@ -83,8 +142,7 @@ class TelemetryMetricsMapperTest { assertThat(list) .extracting(UserMetric::getKey, UserMetric::getType, UserMetric::getUserUuid, UserMetric::getValue, UserMetric::getGranularity) .containsExactlyInAnyOrder( - expected() - ); + expected()); } @Test @@ -97,8 +155,7 @@ class TelemetryMetricsMapperTest { assertThat(list) .extracting(LanguageMetric::getKey, LanguageMetric::getType, LanguageMetric::getLanguage, LanguageMetric::getValue, LanguageMetric::getGranularity) .containsExactlyInAnyOrder( - expected() - ); + expected()); } @Test @@ -111,8 +168,7 @@ class TelemetryMetricsMapperTest { assertThat(list) .extracting(ProjectMetric::getKey, ProjectMetric::getType, ProjectMetric::getProjectUuid, ProjectMetric::getValue, ProjectMetric::getGranularity) .containsExactlyInAnyOrder( - expected() - ); + expected()); } @Test @@ -135,16 +191,14 @@ class TelemetryMetricsMapperTest { assertThat(userMetrics) .extracting(InstallationMetric::getKey, InstallationMetric::getType, InstallationMetric::getValue, InstallationMetric::getGranularity) .containsExactlyInAnyOrder( - tuple("telemetry-adhoc-bean", TelemetryDataType.BOOLEAN, true, Granularity.ADHOC) - ); + tuple("telemetry-adhoc-bean", TelemetryDataType.BOOLEAN, true, Granularity.ADHOC)); } private static Tuple[] expected() { - return new Tuple[] - { - tuple("telemetry-bean-a", TelemetryDataType.STRING, "key-1", "value-1", Granularity.DAILY), - tuple("telemetry-bean-a", TelemetryDataType.STRING, "key-2", "value-2", Granularity.DAILY) - }; + return new Tuple[] { + tuple("telemetry-bean-a", TelemetryDataType.STRING, "key-1", "value-1", Granularity.DAILY), + tuple("telemetry-bean-a", TelemetryDataType.STRING, "key-2", "value-2", Granularity.DAILY) + }; } private static <T extends Metric> List<T> retrieveList(Set<Metric> metrics) { diff --git a/server/sonar-webserver-api/src/main/java/org/sonar/server/exceptions/TooManyRequestsException.java b/server/sonar-webserver-api/src/main/java/org/sonar/server/exceptions/TooManyRequestsException.java new file mode 100644 index 00000000000..c54e898ff16 --- /dev/null +++ b/server/sonar-webserver-api/src/main/java/org/sonar/server/exceptions/TooManyRequestsException.java @@ -0,0 +1,27 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.exceptions; + +public class TooManyRequestsException extends RuntimeException { + + public TooManyRequestsException(String message) { + super(message); + } +} diff --git a/server/sonar-webserver-api/src/main/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListeners.java b/server/sonar-webserver-api/src/main/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListeners.java index ad6f305c361..89a712b5a53 100644 --- a/server/sonar-webserver-api/src/main/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListeners.java +++ b/server/sonar-webserver-api/src/main/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListeners.java @@ -32,4 +32,11 @@ public interface QGChangeEventListeners { */ void broadcastOnIssueChange(List<DefaultIssue> changedIssues, Collection<QGChangeEvent> qgChangeEvents, boolean fromAlm); + /** + * Broadcast events regardless of any changed file analysis issues. Used when non-file analysis tools (ex: SCA) + * need to send events. + * + * @param fromAlm: true if issues changes were initiated by an ALM. + */ + void broadcastOnAnyChange(Collection<QGChangeEvent> qgChangeEvents, boolean fromAlm); } diff --git a/server/sonar-webserver-api/src/main/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListenersImpl.java b/server/sonar-webserver-api/src/main/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListenersImpl.java index 65eb2433cbd..2068279f93f 100644 --- a/server/sonar-webserver-api/src/main/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListenersImpl.java +++ b/server/sonar-webserver-api/src/main/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListenersImpl.java @@ -62,6 +62,21 @@ public class QGChangeEventListenersImpl implements QGChangeEventListeners { } } + @Override + public void broadcastOnAnyChange(Collection<QGChangeEvent> changeEvents, boolean fromAlm) { + if (listeners.isEmpty() || changeEvents.isEmpty()) { + return; + } + + try { + for (var changeEvent : changeEvents) { + listeners.forEach(listener -> broadcastChangeEventToListener(Set.of(), changeEvent, listener)); + } + } catch (Error e) { + LOG.warn(format("Broadcasting to listeners failed for %s events", changeEvents.size()), e); + } + } + private void broadcastChangeEventsToBranches(List<DefaultIssue> issues, Collection<QGChangeEvent> changeEvents, boolean fromAlm) { Multimap<String, QGChangeEvent> eventsByBranchUuid = changeEvents.stream() .collect(MoreCollectors.index(qgChangeEvent -> qgChangeEvent.getBranch().getUuid())); diff --git a/server/sonar-webserver-api/src/test/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListenersImplTest.java b/server/sonar-webserver-api/src/test/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListenersImplTest.java index 4303a88bfe9..9a056ad8fdb 100644 --- a/server/sonar-webserver-api/src/test/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListenersImplTest.java +++ b/server/sonar-webserver-api/src/test/java/org/sonar/server/qualitygate/changeevent/QGChangeEventListenersImplTest.java @@ -238,6 +238,34 @@ public class QGChangeEventListenersImplTest { } @Test + public void broadcastOnAnyChange_whenNoListeners_thenDoesNothing() { + var qgChangeEventListeners = new QGChangeEventListenersImpl(Set.of()); + + qgChangeEventListeners.broadcastOnAnyChange(singletonList(component1QGChangeEvent), false); + + verifyNoInteractions(listener1, listener2, listener3); + } + + @Test + public void broadcastOnAnyChange_whenNoChangeEvents_thenDoesNothing() { + underTest.broadcastOnAnyChange(List.of(), false); + + verifyNoInteractions(listener1, listener2, listener3); + } + + @Test + public void broadcastOnAnyChange_whenListenersAndChangeEvents_thenBroadcastsToEachListener() { + underTest.broadcastOnAnyChange(singletonList(component1QGChangeEvent), false); + + ArgumentCaptor<Set<ChangedIssue>> changedIssuesCaptor = newSetCaptor(); + inOrder.verify(listener1).onIssueChanges(same(component1QGChangeEvent), changedIssuesCaptor.capture()); + Set<ChangedIssue> changedIssues = changedIssuesCaptor.getValue(); + inOrder.verify(listener2).onIssueChanges(same(component1QGChangeEvent), same(changedIssues)); + inOrder.verify(listener3).onIssueChanges(same(component1QGChangeEvent), same(changedIssues)); + inOrder.verifyNoMoreInteractions(); + } + + @Test public void isNotClosed_returns_true_if_issue_in_one_of_opened_states() { DefaultIssue defaultIssue = new DefaultIssue(); defaultIssue.setStatus(Issue.STATUS_REOPENED); diff --git a/server/sonar-webserver-auth/src/it/java/org/sonar/server/authentication/JwtHttpHandlerIT.java b/server/sonar-webserver-auth/src/it/java/org/sonar/server/authentication/JwtHttpHandlerIT.java index d280a8f2384..729cafe8422 100644 --- a/server/sonar-webserver-auth/src/it/java/org/sonar/server/authentication/JwtHttpHandlerIT.java +++ b/server/sonar-webserver-auth/src/it/java/org/sonar/server/authentication/JwtHttpHandlerIT.java @@ -23,14 +23,18 @@ import io.jsonwebtoken.Claims; import io.jsonwebtoken.ClaimsBuilder; import io.jsonwebtoken.impl.DefaultClaimsBuilder; import jakarta.servlet.http.HttpSession; +import java.time.Duration; import java.util.Date; import java.util.Map; import java.util.Optional; import javax.annotation.Nullable; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.mockito.ArgumentCaptor; +import org.sonar.api.config.Configuration; import org.sonar.api.config.internal.MapSettings; import org.sonar.api.server.http.Cookie; import org.sonar.api.server.http.HttpRequest; @@ -44,8 +48,9 @@ import org.sonar.db.user.UserDto; import org.sonar.server.http.JakartaHttpRequest; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; import static org.assertj.core.api.Assertions.entry; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatNoException; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; @@ -60,7 +65,7 @@ import static org.mockito.Mockito.when; import static org.sonar.db.user.UserTesting.newUserDto; import static org.sonar.server.authentication.Cookies.SET_COOKIE; -public class JwtHttpHandlerIT { +class JwtHttpHandlerIT { private static final String JWT_TOKEN = "TOKEN"; private static final String CSRF_STATE = "CSRF_STATE"; @@ -72,7 +77,7 @@ public class JwtHttpHandlerIT { private static final long IN_FIVE_MINUTES = NOW + 5 * 60 * 1000L; - @Rule + @RegisterExtension public DbTester db = DbTester.create(); private final DbClient dbClient = db.getDbClient(); @@ -86,18 +91,21 @@ public class JwtHttpHandlerIT { private final MapSettings settings = new MapSettings(); private final JwtSerializer jwtSerializer = mock(JwtSerializer.class); private final JwtCsrfVerifier jwtCsrfVerifier = mock(JwtCsrfVerifier.class); + private final ActiveTimeoutProvider activeTimeoutProvider = mock(ActiveTimeoutProvider.class); - private JwtHttpHandler underTest = new JwtHttpHandler(system2, dbClient, settings.asConfig(), jwtSerializer, jwtCsrfVerifier); + private JwtHttpHandler underTest; - @Before - public void setUp() { + @BeforeEach + void setUp() { when(system2.now()).thenReturn(NOW); when(jwtSerializer.encode(any(JwtSerializer.JwtSession.class))).thenReturn(JWT_TOKEN); when(jwtCsrfVerifier.generateState(eq(request), eq(response), anyInt())).thenReturn(CSRF_STATE); + when(activeTimeoutProvider.getActiveSessionTimeout()).thenReturn(Duration.ofDays(90)); + underTest = new JwtHttpHandler(system2, dbClient, settings.asConfig(), jwtSerializer, jwtCsrfVerifier, activeTimeoutProvider); } @Test - public void create_token() { + void create_token() { UserDto user = db.users().insertUser(); underTest.generateToken(user, request, response); @@ -109,7 +117,7 @@ public class JwtHttpHandlerIT { } @Test - public void generate_csrf_state_when_creating_token() { + void generate_csrf_state_when_creating_token() { UserDto user = db.users().insertUser(); underTest.generateToken(user, request, response); @@ -121,12 +129,13 @@ public class JwtHttpHandlerIT { } @Test - public void generate_token_is_using_session_timeout_from_settings() { + void generate_token_is_using_inactive_session_timeout_from_settings() { UserDto user = db.users().insertUser(); int sessionTimeoutInMinutes = 10; + Configuration config = settings.asConfig(); settings.setProperty("sonar.web.sessionTimeoutInMinutes", sessionTimeoutInMinutes); - underTest = new JwtHttpHandler(system2, dbClient, settings.asConfig(), jwtSerializer, jwtCsrfVerifier); + underTest = new JwtHttpHandler(system2, dbClient, config, jwtSerializer, jwtCsrfVerifier, activeTimeoutProvider); underTest.generateToken(user, request, response); verify(jwtSerializer).encode(jwtArgumentCaptor.capture()); @@ -134,12 +143,12 @@ public class JwtHttpHandlerIT { } @Test - public void session_timeout_property_cannot_be_updated() { + void inactive_session_timeout_property_cannot_be_updated() { UserDto user = db.users().insertUser(); int firstSessionTimeoutInMinutes = 10; settings.setProperty("sonar.web.sessionTimeoutInMinutes", firstSessionTimeoutInMinutes); - underTest = new JwtHttpHandler(system2, dbClient, settings.asConfig(), jwtSerializer, jwtCsrfVerifier); + underTest = new JwtHttpHandler(system2, dbClient, settings.asConfig(), jwtSerializer, jwtCsrfVerifier, activeTimeoutProvider); underTest.generateToken(user, request, response); // The property is updated, but it won't be taking into account @@ -150,44 +159,27 @@ public class JwtHttpHandlerIT { verifyToken(jwtArgumentCaptor.getAllValues().get(1), user, firstSessionTimeoutInMinutes * 60, NOW); } - @Test - public void session_timeout_property_cannot_be_zero() { - settings.setProperty("sonar.web.sessionTimeoutInMinutes", 0); - - assertThatThrownBy(() -> new JwtHttpHandler(system2, dbClient, settings.asConfig(), jwtSerializer, jwtCsrfVerifier)) - .isInstanceOf(IllegalArgumentException.class) - .hasMessage("Property sonar.web.sessionTimeoutInMinutes must be higher than 5 minutes and must not be greater than 3 months. Got 0 minutes"); - } - - @Test - public void session_timeout_property_cannot_be_negative() { - settings.setProperty("sonar.web.sessionTimeoutInMinutes", -10); - - assertThatThrownBy(() -> new JwtHttpHandler(system2, dbClient, settings.asConfig(), jwtSerializer, jwtCsrfVerifier)) - .isInstanceOf(IllegalArgumentException.class) - .hasMessage("Property sonar.web.sessionTimeoutInMinutes must be higher than 5 minutes and must not be greater than 3 months. Got -10 minutes"); - } - - @Test - public void session_timeout_property_cannot_be_set_to_five_minutes() { - settings.setProperty("sonar.web.sessionTimeoutInMinutes", 5); + @ParameterizedTest + @ValueSource(ints = {-10, 0, 4 * 30 * 24 * 60}) + void inactive_session_timeout_must_be_valid(int minutes) { + settings.setProperty("sonar.web.sessionTimeoutInMinutes", minutes); + Configuration config = settings.asConfig(); - assertThatThrownBy(() -> new JwtHttpHandler(system2, dbClient, settings.asConfig(), jwtSerializer, jwtCsrfVerifier)) - .isInstanceOf(IllegalArgumentException.class) - .hasMessage("Property sonar.web.sessionTimeoutInMinutes must be higher than 5 minutes and must not be greater than 3 months. Got 5 minutes"); + assertThatIllegalArgumentException() + .isThrownBy(() -> new JwtHttpHandler(system2, dbClient, config, jwtSerializer, jwtCsrfVerifier, activeTimeoutProvider)) + .withMessage("Property sonar.web.sessionTimeoutInMinutes must be at least 6 minutes and must not be greater than 90 days (129 600 minutes). Got " + minutes + " minutes"); } @Test - public void session_timeout_property_cannot_be_greater_than_three_months() { - settings.setProperty("sonar.web.sessionTimeoutInMinutes", 4 * 30 * 24 * 60); + void inactive_session_timeout_property_can_be_6_minute() { + settings.setProperty("sonar.web.sessionTimeoutInMinutes", 6); + Configuration config = settings.asConfig(); - assertThatThrownBy(() -> new JwtHttpHandler(system2, dbClient, settings.asConfig(), jwtSerializer, jwtCsrfVerifier)) - .isInstanceOf(IllegalArgumentException.class) - .hasMessage("Property sonar.web.sessionTimeoutInMinutes must be higher than 5 minutes and must not be greater than 3 months. Got 172800 minutes"); + assertThatNoException().isThrownBy(() -> new JwtHttpHandler(system2, dbClient, config, jwtSerializer, jwtCsrfVerifier, activeTimeoutProvider)); } @Test - public void validate_token() { + void validate_token() { UserDto user = db.users().insertUser(); addJwtCookie(); SessionTokenDto sessionToken = db.users().insertSessionToken(user, st -> st.setExpirationDate(IN_FIVE_MINUTES)); @@ -200,7 +192,7 @@ public class JwtHttpHandlerIT { } @Test - public void validate_token_refresh_session_when_refresh_time_is_reached() { + void validate_token_refresh_session_when_refresh_time_is_reached() { UserDto user = db.users().insertUser(); addJwtCookie(); // Token was created 10 days ago and refreshed 6 minutes ago @@ -219,7 +211,7 @@ public class JwtHttpHandlerIT { } @Test - public void validate_token_does_not_refresh_session_when_refresh_time_is_not_reached() { + void validate_token_does_not_refresh_session_when_refresh_time_is_not_reached() { UserDto user = db.users().insertUser(); addJwtCookie(); // Token was created 10 days ago and refreshed 4 minutes ago @@ -235,7 +227,7 @@ public class JwtHttpHandlerIT { } @Test - public void validate_token_does_not_refresh_session_when_disconnected_timeout_is_reached() { + void validate_token_does_not_refresh_session_when_disconnected_timeout_is_reached() { UserDto user = db.users().insertUser(); addJwtCookie(); // Token was created 4 months ago, refreshed 4 minutes ago, and it expired in 5 minutes @@ -249,7 +241,7 @@ public class JwtHttpHandlerIT { } @Test - public void validate_token_does_not_refresh_session_when_user_is_disabled() { + void validate_token_does_not_refresh_session_when_user_is_disabled() { addJwtCookie(); UserDto user = addUser(false); SessionTokenDto sessionToken = db.users().insertSessionToken(user, st -> st.setExpirationDate(IN_FIVE_MINUTES)); @@ -260,7 +252,7 @@ public class JwtHttpHandlerIT { } @Test - public void validate_token_does_not_refresh_session_when_token_is_no_more_valid() { + void validate_token_does_not_refresh_session_when_token_is_no_more_valid() { addJwtCookie(); when(jwtSerializer.decode(JWT_TOKEN)).thenReturn(Optional.empty()); @@ -269,7 +261,7 @@ public class JwtHttpHandlerIT { } @Test - public void validate_token_does_nothing_when_no_jwt_cookie() { + void validate_token_does_nothing_when_no_jwt_cookie() { underTest.validateToken(request, response); verifyNoInteractions(httpSession, jwtSerializer); @@ -277,7 +269,7 @@ public class JwtHttpHandlerIT { } @Test - public void validate_token_does_nothing_when_empty_value_in_jwt_cookie() { + void validate_token_does_nothing_when_empty_value_in_jwt_cookie() { when(request.getCookies()).thenReturn(new Cookie[] {new JakartaHttpRequest.JakartaCookie(new jakarta.servlet.http.Cookie("JWT-SESSION", ""))}); underTest.validateToken(request, response); @@ -287,7 +279,7 @@ public class JwtHttpHandlerIT { } @Test - public void validate_token_verify_csrf_state() { + void validate_token_verify_csrf_state() { UserDto user = db.users().insertUser(); addJwtCookie(); SessionTokenDto sessionToken = db.users().insertSessionToken(user, st -> st.setExpirationDate(IN_FIVE_MINUTES)); @@ -302,7 +294,7 @@ public class JwtHttpHandlerIT { } @Test - public void validate_token_does_nothing_when_no_session_token_in_db() { + void validate_token_does_nothing_when_no_session_token_in_db() { UserDto user = db.users().insertUser(); addJwtCookie(); // No SessionToken in DB @@ -317,7 +309,7 @@ public class JwtHttpHandlerIT { } @Test - public void validate_token_does_nothing_when_expiration_date_from_session_token_is_expired() { + void validate_token_does_nothing_when_expiration_date_from_session_token_is_expired() { UserDto user = db.users().insertUser(); addJwtCookie(); // In SessionToken, the expiration date is expired... @@ -334,7 +326,7 @@ public class JwtHttpHandlerIT { } @Test - public void validate_token_refresh_state_when_refreshing_token() { + void validate_token_refresh_state_when_refreshing_token() { UserDto user = db.users().insertUser(); addJwtCookie(); // Token was created 10 days ago and refreshed 6 minutes ago @@ -351,7 +343,7 @@ public class JwtHttpHandlerIT { } @Test - public void remove_token() { + void remove_token() { addJwtCookie(); UserDto user = db.users().insertUser(); SessionTokenDto sessionToken = db.users().insertSessionToken(user, st -> st.setExpirationDate(IN_FIVE_MINUTES)); @@ -368,7 +360,7 @@ public class JwtHttpHandlerIT { } @Test - public void does_not_remove_token_from_db_when_no_jwt_token_in_cookie() { + void does_not_remove_token_from_db_when_no_jwt_token_in_cookie() { addJwtCookie(); UserDto user = db.users().insertUser(); SessionTokenDto sessionToken = db.users().insertSessionToken(user, st -> st.setExpirationDate(IN_FIVE_MINUTES)); @@ -382,7 +374,7 @@ public class JwtHttpHandlerIT { } @Test - public void does_not_remove_token_from_db_when_no_cookie() { + void does_not_remove_token_from_db_when_no_cookie() { UserDto user = db.users().insertUser(); SessionTokenDto sessionToken = db.users().insertSessionToken(user, st -> st.setExpirationDate(IN_FIVE_MINUTES)); diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/ActiveTimeoutProvider.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/ActiveTimeoutProvider.java new file mode 100644 index 00000000000..cf408de49cd --- /dev/null +++ b/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/ActiveTimeoutProvider.java @@ -0,0 +1,26 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.authentication; + +import java.time.Duration; + +public interface ActiveTimeoutProvider { + Duration getActiveSessionTimeout(); +} diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/HardcodedActiveTimeoutProvider.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/HardcodedActiveTimeoutProvider.java new file mode 100644 index 00000000000..e8e40cd6f60 --- /dev/null +++ b/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/HardcodedActiveTimeoutProvider.java @@ -0,0 +1,34 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.authentication; + +import java.time.Duration; + +public class HardcodedActiveTimeoutProvider implements ActiveTimeoutProvider { + public static final Duration DEFAULT_ACTIVE_TIMEOUT_DURATION = Duration.ofDays(90); + + @Override + public Duration getActiveSessionTimeout() { + return DEFAULT_ACTIVE_TIMEOUT_DURATION; + } +} + + + diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/JwtHttpHandler.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/JwtHttpHandler.java index ec640a9b11f..216a0c92fa2 100644 --- a/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/JwtHttpHandler.java +++ b/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/JwtHttpHandler.java @@ -21,6 +21,7 @@ package org.sonar.server.authentication; import com.google.common.collect.ImmutableMap; import io.jsonwebtoken.Claims; +import java.time.Duration; import java.util.Collections; import java.util.Date; import java.util.Map; @@ -41,7 +42,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; import static org.apache.commons.lang3.StringUtils.isEmpty; import static org.apache.commons.lang3.time.DateUtils.addSeconds; -import static org.sonar.process.ProcessProperties.Property.WEB_SESSION_TIMEOUT_IN_MIN; +import static org.sonar.process.ProcessProperties.Property.WEB_INACTIVE_SESSION_TIMEOUT_IN_MIN; import static org.sonar.server.authentication.Cookies.SAMESITE_LAX; import static org.sonar.server.authentication.Cookies.SET_COOKIE; import static org.sonar.server.authentication.Cookies.findCookie; @@ -50,39 +51,40 @@ import static org.sonar.server.authentication.JwtSerializer.LAST_REFRESH_TIME_PA @ServerSide public class JwtHttpHandler { - private static final int SESSION_TIMEOUT_DEFAULT_VALUE_IN_MINUTES = 3 * 24 * 60; - private static final int MAX_SESSION_TIMEOUT_IN_MINUTES = 3 * 30 * 24 * 60; + private static final Duration DEFAULT_INACTIVE_TIMEOUT_DURATION = Duration.ofDays(3); + private static final Duration MINIMUM_INACTIVE_TIMEOUT_DURATION = Duration.ofMinutes(5); + private static final Duration MAXIMUM_INACTIVE_TIMEOUT_DURATION = Duration.ofDays(90); private static final String JWT_COOKIE = "JWT-SESSION"; - private static final String CSRF_JWT_PARAM = "xsrfToken"; - // Time after which a user will be disconnected - private static final int SESSION_DISCONNECT_IN_SECONDS = 3 * 30 * 24 * 60 * 60; - // This refresh time is used to refresh the session - // The value must be lower than sessionTimeoutInSeconds - private static final int SESSION_REFRESH_IN_SECONDS = 5 * 60; + // The value must be lower than inactiveSessionTimeoutInSeconds + private static final Duration SESSION_REFRESH = Duration.ofMinutes(5); private final System2 system2; private final DbClient dbClient; private final JwtSerializer jwtSerializer; // This timeout is used to disconnect the user we he has not browse any page for a while - private final int sessionTimeoutInSeconds; + private final Duration inactiveSessionTimeout; + // This timeout is used to disconnect the user regardless of his activity after logging in + private final Duration activeSessionTimeout; private final JwtCsrfVerifier jwtCsrfVerifier; - public JwtHttpHandler(System2 system2, DbClient dbClient, Configuration config, JwtSerializer jwtSerializer, JwtCsrfVerifier jwtCsrfVerifier) { + public JwtHttpHandler(System2 system2, DbClient dbClient, Configuration config, JwtSerializer jwtSerializer, + JwtCsrfVerifier jwtCsrfVerifier, ActiveTimeoutProvider activeTimeoutProvider) { this.jwtSerializer = jwtSerializer; this.dbClient = dbClient; this.system2 = system2; - this.sessionTimeoutInSeconds = getSessionTimeoutInSeconds(config); + this.inactiveSessionTimeout = getInactiveSessionTimeout(config); + this.activeSessionTimeout = activeTimeoutProvider.getActiveSessionTimeout(); this.jwtCsrfVerifier = jwtCsrfVerifier; } public void generateToken(UserDto user, Map<String, Object> properties, HttpRequest request, HttpResponse response) { - String csrfState = jwtCsrfVerifier.generateState(request, response, sessionTimeoutInSeconds); - long expirationTime = system2.now() + sessionTimeoutInSeconds * 1000L; + String csrfState = jwtCsrfVerifier.generateState(request, response, (int) inactiveSessionTimeout.toSeconds()); + long expirationTime = system2.now() + (int) inactiveSessionTimeout.toSeconds() * 1000L; SessionTokenDto sessionToken = createSessionToken(user, expirationTime); String token = jwtSerializer.encode(new JwtSerializer.JwtSession( @@ -94,7 +96,7 @@ public class JwtHttpHandler { .put(LAST_REFRESH_TIME_PARAM, system2.now()) .put(CSRF_JWT_PARAM, csrfState) .build())); - response.addHeader(SET_COOKIE, createJwtSession(request, JWT_COOKIE, token, sessionTimeoutInSeconds)); + response.addHeader(SET_COOKIE, createJwtSession(request, JWT_COOKIE, token, (int) inactiveSessionTimeout.toSeconds())); } private SessionTokenDto createSessionToken(UserDto user, long expirationTime) { @@ -156,12 +158,12 @@ public class JwtHttpHandler { if (now.getTime() > sessionToken.get().getExpirationDate()) { return Optional.empty(); } - if (now.after(addSeconds(token.getIssuedAt(), SESSION_DISCONNECT_IN_SECONDS))) { + if (now.after(addSeconds(token.getIssuedAt(), (int) activeSessionTimeout.toSeconds()))) { return Optional.empty(); } jwtCsrfVerifier.verifyState(request, (String) token.get(CSRF_JWT_PARAM), token.getSubject()); - if (now.after(addSeconds(getLastRefreshDate(token), SESSION_REFRESH_IN_SECONDS))) { + if (now.after(addSeconds(getLastRefreshDate(token), (int) SESSION_REFRESH.toSeconds()))) { refreshToken(dbSession, sessionToken.get(), token, request, response); } @@ -176,10 +178,10 @@ public class JwtHttpHandler { } private void refreshToken(DbSession dbSession, SessionTokenDto tokenFromDb, Claims tokenFromCookie, HttpRequest request, HttpResponse response) { - long expirationTime = system2.now() + sessionTimeoutInSeconds * 1000L; + long expirationTime = system2.now() + (int) inactiveSessionTimeout.toSeconds() * 1000L; String refreshToken = jwtSerializer.refresh(tokenFromCookie, expirationTime); - response.addHeader(SET_COOKIE, createJwtSession(request, JWT_COOKIE, refreshToken, sessionTimeoutInSeconds)); - jwtCsrfVerifier.refreshState(request, response, (String) tokenFromCookie.get(CSRF_JWT_PARAM), sessionTimeoutInSeconds); + response.addHeader(SET_COOKIE, createJwtSession(request, JWT_COOKIE, refreshToken, (int) inactiveSessionTimeout.toSeconds())); + jwtCsrfVerifier.refreshState(request, response, (String) tokenFromCookie.get(CSRF_JWT_PARAM), (int) inactiveSessionTimeout.toSeconds()); dbClient.sessionTokensDao().update(dbSession, tokenFromDb.setExpirationDate(expirationTime)); dbSession.commit(); @@ -219,12 +221,12 @@ public class JwtHttpHandler { return Optional.ofNullable(user != null && user.isActive() ? user : null); } - private static int getSessionTimeoutInSeconds(Configuration config) { - int minutes = config.getInt(WEB_SESSION_TIMEOUT_IN_MIN.getKey()).orElse(SESSION_TIMEOUT_DEFAULT_VALUE_IN_MINUTES); - checkArgument(minutes > SESSION_REFRESH_IN_SECONDS / 60 && minutes <= MAX_SESSION_TIMEOUT_IN_MINUTES, - "Property %s must be higher than 5 minutes and must not be greater than 3 months. Got %s minutes", WEB_SESSION_TIMEOUT_IN_MIN.getKey(), - minutes); - return minutes * 60; + private static Duration getInactiveSessionTimeout(Configuration config) { + String key = WEB_INACTIVE_SESSION_TIMEOUT_IN_MIN.getKey(); + int minutes = config.getInt(key).orElse((int) DEFAULT_INACTIVE_TIMEOUT_DURATION.toMinutes()); + checkArgument(minutes > MINIMUM_INACTIVE_TIMEOUT_DURATION.toMinutes() && minutes <= MAXIMUM_INACTIVE_TIMEOUT_DURATION.toMinutes(), + "Property %s must be at least 6 minutes and must not be greater than 90 days (129 600 minutes). Got %s minutes", key, minutes); + return Duration.ofMinutes(minutes); } public static class Token { diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/usertoken/notification/TokenExpirationEmailComposer.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/usertoken/notification/TokenExpirationEmailComposer.java index 1d3e9eaed18..e3fc380c07f 100644 --- a/server/sonar-webserver-auth/src/main/java/org/sonar/server/usertoken/notification/TokenExpirationEmailComposer.java +++ b/server/sonar-webserver-auth/src/main/java/org/sonar/server/usertoken/notification/TokenExpirationEmailComposer.java @@ -79,7 +79,7 @@ public class TokenExpirationEmailComposer extends EmailSender<TokenExpirationEma format("<br/>If this token is still needed, please consider <a href=\"%s/account/security/\">generating</a> an equivalent.<br/><br/>", server.getPublicRootUrl())) .append("Don't forget to update the token in the locations where it is in use. " + "This may include the CI pipeline that analyzes your projects, " - + "the IDE settings that connect SonarLint to SonarQube, " + + "the IDE settings that connect SonarQube IDE to SonarQube Server, " + "and any places where you make calls to web services."); return builder.toString(); } diff --git a/server/sonar-webserver-auth/src/test/java/org/sonar/server/authentication/HardcodedActiveTimeoutProviderTest.java b/server/sonar-webserver-auth/src/test/java/org/sonar/server/authentication/HardcodedActiveTimeoutProviderTest.java new file mode 100644 index 00000000000..6e2bd66b73d --- /dev/null +++ b/server/sonar-webserver-auth/src/test/java/org/sonar/server/authentication/HardcodedActiveTimeoutProviderTest.java @@ -0,0 +1,40 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.authentication; + +import java.time.Duration; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class HardcodedActiveTimeoutProviderTest { + private ActiveTimeoutProvider underTest; + + @BeforeEach + void setUp() { + underTest = new HardcodedActiveTimeoutProvider(); + } + + @Test + void getActiveTimeoutInMinutes_whenSessionTimeoutIsNotConfigured_returns90Days() { + assertThat(underTest.getActiveSessionTimeout()).isEqualTo(Duration.ofDays(90)); + } +} diff --git a/server/sonar-webserver-auth/src/test/java/org/sonar/server/usertoken/notification/TokenExpirationEmailComposerTest.java b/server/sonar-webserver-auth/src/test/java/org/sonar/server/usertoken/notification/TokenExpirationEmailComposerTest.java index ba45ed43dc4..d0ba6ca7224 100644 --- a/server/sonar-webserver-auth/src/test/java/org/sonar/server/usertoken/notification/TokenExpirationEmailComposerTest.java +++ b/server/sonar-webserver-auth/src/test/java/org/sonar/server/usertoken/notification/TokenExpirationEmailComposerTest.java @@ -70,7 +70,7 @@ class TokenExpirationEmailComposerTest { + "Last used on: January 01, 2022<br/>" + "Expires on: %s<br/><br/>" + "If this token is still needed, please consider <a href=\"http://localhost/account/security/\">generating</a> an equivalent.<br/><br/>" - + "Don't forget to update the token in the locations where it is in use. This may include the CI pipeline that analyzes your projects, the IDE settings that connect SonarLint to SonarQube, and any places where you make calls to web services.", + + "Don't forget to update the token in the locations where it is in use. This may include the CI pipeline that analyzes your projects, the IDE settings that connect SonarQube IDE to SonarQube Server, and any places where you make calls to web services.", parseDate(expiredDate), parseDate(expiredDate))); } @@ -91,7 +91,7 @@ class TokenExpirationEmailComposerTest { + "Last used on: January 01, 2022<br/>" + "Expired on: %s<br/><br/>" + "If this token is still needed, please consider <a href=\"http://localhost/account/security/\">generating</a> an equivalent.<br/><br/>" - + "Don't forget to update the token in the locations where it is in use. This may include the CI pipeline that analyzes your projects, the IDE settings that connect SonarLint to SonarQube, and any places where you make calls to web services.", + + "Don't forget to update the token in the locations where it is in use. This may include the CI pipeline that analyzes your projects, the IDE settings that connect SonarQube IDE to SonarQube Server, and any places where you make calls to web services.", parseDate(expiredDate))); } diff --git a/server/sonar-webserver-common/src/main/java/org/sonar/server/common/group/service/GroupSearchRequest.java b/server/sonar-webserver-common/src/main/java/org/sonar/server/common/group/service/GroupSearchRequest.java index 1ef6af378a1..816b971f540 100644 --- a/server/sonar-webserver-common/src/main/java/org/sonar/server/common/group/service/GroupSearchRequest.java +++ b/server/sonar-webserver-common/src/main/java/org/sonar/server/common/group/service/GroupSearchRequest.java @@ -24,6 +24,8 @@ import javax.annotation.Nullable; public record GroupSearchRequest( @Nullable String query, @Nullable Boolean managed, + @Nullable String userUuid, + @Nullable String excludedUserUuid, int page, int pageSize ) { diff --git a/server/sonar-webserver-common/src/main/java/org/sonar/server/common/group/service/GroupService.java b/server/sonar-webserver-common/src/main/java/org/sonar/server/common/group/service/GroupService.java index fac6c4bb711..2801c905d82 100644 --- a/server/sonar-webserver-common/src/main/java/org/sonar/server/common/group/service/GroupService.java +++ b/server/sonar-webserver-common/src/main/java/org/sonar/server/common/group/service/GroupService.java @@ -93,6 +93,8 @@ public class GroupService { return GroupQuery.builder() .searchText(groupSearchRequest.query()) .isManagedClause(getManagedInstanceSql(groupSearchRequest.managed())) + .userId(groupSearchRequest.userUuid()) + .excludedUserId(groupSearchRequest.excludedUserUuid()) .build(); } diff --git a/server/sonar-webserver-common/src/test/java/org/sonar/server/common/group/service/GroupServiceTest.java b/server/sonar-webserver-common/src/test/java/org/sonar/server/common/group/service/GroupServiceTest.java index 02a37273efa..bafc6e7431d 100644 --- a/server/sonar-webserver-common/src/test/java/org/sonar/server/common/group/service/GroupServiceTest.java +++ b/server/sonar-webserver-common/src/test/java/org/sonar/server/common/group/service/GroupServiceTest.java @@ -316,7 +316,7 @@ public class GroupServiceTest { public void createGroup_whenNameAndDescriptionIsProvided_createsGroup() { when(uuidFactory.create()).thenReturn("1234"); - GroupDto createdGroup = mockGroupDto(); + GroupDto createdGroup = mockGroupDto(); when(dbClient.groupDao().insert(eq(dbSession), any())).thenReturn(createdGroup); mockDefaultGroup(); groupService.createGroup(dbSession, "Name", "Description"); @@ -378,7 +378,7 @@ public class GroupServiceTest { when(dbClient.groupDao().countByQuery(eq(dbSession), any())).thenReturn(300); - SearchResults<GroupInformation> searchResults = groupService.search(dbSession, new GroupSearchRequest("query", null, 5, 24)); + SearchResults<GroupInformation> searchResults = groupService.search(dbSession, new GroupSearchRequest("query", null, null, null, 5, 24)); assertThat(searchResults.total()).isEqualTo(300); Map<String, GroupInformation> uuidToGroupInformation = searchResults.searchResults().stream() @@ -390,11 +390,12 @@ public class GroupServiceTest { assertThat(queryCaptor.getValue().getSearchText()).isEqualTo("%QUERY%"); assertThat(queryCaptor.getValue().getIsManagedSqlClause()).isNull(); } + @Test public void search_whenPageSizeEquals0_returnsOnlyTotal() { when(dbClient.groupDao().countByQuery(eq(dbSession), any())).thenReturn(10); - SearchResults<GroupInformation> searchResults = groupService.search(dbSession, new GroupSearchRequest("query", null, 0, 24)); + SearchResults<GroupInformation> searchResults = groupService.search(dbSession, new GroupSearchRequest("query", null, null, null, 0, 24)); assertThat(searchResults.total()).isEqualTo(10); assertThat(searchResults.searchResults()).isEmpty(); @@ -406,7 +407,7 @@ public class GroupServiceTest { mockManagedInstance(); when(dbClient.groupDao().selectByQuery(eq(dbSession), queryCaptor.capture(), anyInt(), anyInt())).thenReturn(List.of()); - groupService.search(dbSession, new GroupSearchRequest("query", true, 5, 24)); + groupService.search(dbSession, new GroupSearchRequest("query", true, null, null, 5, 24)); assertThat(queryCaptor.getValue().getIsManagedSqlClause()).isEqualTo("managed_filter"); } @@ -416,7 +417,7 @@ public class GroupServiceTest { mockManagedInstance(); when(dbClient.groupDao().selectByQuery(eq(dbSession), queryCaptor.capture(), anyInt(), anyInt())).thenReturn(List.of()); - groupService.search(dbSession, new GroupSearchRequest("query", false, 5, 24)); + groupService.search(dbSession, new GroupSearchRequest("query", false, null, null, 5, 24)); assertThat(queryCaptor.getValue().getIsManagedSqlClause()).isEqualTo("not_managed_filter"); } @@ -424,7 +425,7 @@ public class GroupServiceTest { @Test public void search_whenInstanceNotManagedAndManagedIsTrue_throws() { assertThatExceptionOfType(BadRequestException.class) - .isThrownBy(() -> groupService.search(dbSession, new GroupSearchRequest("query", true, 5, 24))) + .isThrownBy(() -> groupService.search(dbSession, new GroupSearchRequest("query", true, null, null, 5, 24))) .withMessage("The 'managed' parameter is only available for managed instances."); } @@ -434,6 +435,26 @@ public class GroupServiceTest { when(managedInstanceService.getManagedGroupsSqlFilter(false)).thenReturn("not_managed_filter"); } + @Test + public void search_whenUserIdParameterProvided_addsItToQuery() { + when(dbClient.groupDao().selectByQuery(eq(dbSession), queryCaptor.capture(), anyInt(), anyInt())).thenReturn(List.of()); + + groupService.search(dbSession, new GroupSearchRequest("query", null, "includedUserUuid", null, 5, 24)); + + assertThat(queryCaptor.getValue().getUserId()).isEqualTo("includedUserUuid"); + assertThat(queryCaptor.getValue().getExcludedUserId()).isNull(); + } + + @Test + public void search_whenExcludedUserIdParameterProvided_addsItToQuery() { + when(dbClient.groupDao().selectByQuery(eq(dbSession), queryCaptor.capture(), anyInt(), anyInt())).thenReturn(List.of()); + + groupService.search(dbSession, new GroupSearchRequest("query", null, null, "excludedUserId", 5, 24)); + + assertThat(queryCaptor.getValue().getUserId()).isNull(); + assertThat(queryCaptor.getValue().getExcludedUserId()).isEqualTo("excludedUserId"); + } + private static void assertGroupInformation(Map<String, GroupInformation> uuidToGroupInformation, GroupDto expectedGroupDto, boolean expectedManaged, boolean expectedDefault) { assertThat(uuidToGroupInformation.get(expectedGroupDto.getUuid()).groupDto()).isEqualTo(expectedGroupDto); assertThat(uuidToGroupInformation.get(expectedGroupDto.getUuid()).isManaged()).isEqualTo(expectedManaged); diff --git a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/registration/RulesRegistrationContext.java b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/registration/RulesRegistrationContext.java index a3533a80743..e124a467ae8 100644 --- a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/registration/RulesRegistrationContext.java +++ b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/registration/RulesRegistrationContext.java @@ -83,9 +83,11 @@ class RulesRegistrationContext { String ruleUuid = entry.getKey(); RuleDto rule = dbRulesByRuleUuid.get(ruleUuid); if (rule == null) { - LOG.warn("Could not retrieve rule with uuid %s referenced by a deprecated rule key. " + - "The following deprecated rule keys seem to be referencing a non-existing rule", - ruleUuid, entry.getValue()); + LOG.warn("Could not retrieve rule with uuid {} referenced by a deprecated rule key. " + + "The following deprecated rule keys seem to be referencing a non-existing rule: {}", + ruleUuid, entry.getValue().stream() + .map(SingleDeprecatedRuleKey::getOldRuleKeyAsRuleKey) + .collect(Collectors.toSet())); } else { entry.getValue().forEach(d -> rulesByKey.put(d.getOldRuleKeyAsRuleKey(), rule)); } diff --git a/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/registration/RulesRegistrationContextTest.java b/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/registration/RulesRegistrationContextTest.java new file mode 100644 index 00000000000..4ea0c11e7c6 --- /dev/null +++ b/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/registration/RulesRegistrationContextTest.java @@ -0,0 +1,69 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.rule.registration; + +import java.util.List; +import java.util.Set; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.slf4j.event.Level; +import org.sonar.api.testfixtures.log.LogTesterJUnit5; +import org.sonar.db.DbClient; +import org.sonar.db.DbSession; +import org.sonar.db.rule.DeprecatedRuleKeyDto; +import org.sonar.db.rule.RuleDao; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +class RulesRegistrationContextTest { + + @RegisterExtension + private final LogTesterJUnit5 logTester = new LogTesterJUnit5(); + + @Test + void whenDeprecatedRuleIsNotFound_thenWarningLogTraceIsProduced() { + DbClient dbClient = mock(); + DbSession dbSession = mock(); + RuleDao ruleDao = mock(); + when(dbClient.ruleDao()).thenReturn(ruleDao); + when(ruleDao.selectAll(dbSession)).thenReturn(List.of()); + when(ruleDao.selectAllDeprecatedRuleKeys(dbSession)).thenReturn(Set.of( + createDeprecatedRuleKeyDto("oldKey", "oldRepo", "newKey", "uuid") + )); + when(ruleDao.selectAllRuleParams(dbSession)).thenReturn(List.of()); + + RulesRegistrationContext.create(dbClient, dbSession); + + assertThat(logTester.logs(Level.WARN)). + contains("Could not retrieve rule with uuid newKey referenced by a deprecated rule key. " + + "The following deprecated rule keys seem to be referencing a non-existing rule: [oldRepo:oldKey]"); + } + + private DeprecatedRuleKeyDto createDeprecatedRuleKeyDto(String oldKey, String oldRepo, String newKey, String uuid) { + DeprecatedRuleKeyDto dto = new DeprecatedRuleKeyDto(); + dto.setOldRuleKey(oldKey); + dto.setOldRepositoryKey(oldRepo); + dto.setRuleUuid(newKey); + dto.setUuid(uuid); + return dto; + } +} diff --git a/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueIndex.java b/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueIndex.java index 72b3bd272f0..9235bc57b1a 100644 --- a/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueIndex.java +++ b/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueIndex.java @@ -26,6 +26,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -54,6 +55,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.BucketOrder; import org.elasticsearch.search.aggregations.HasAggregations; +import org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; import org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregator; import org.elasticsearch.search.aggregations.bucket.filter.ParsedFilter; @@ -77,12 +79,13 @@ import org.sonar.api.issue.IssueStatus; import org.sonar.api.issue.impact.SoftwareQuality; import org.sonar.api.rule.Severity; import org.sonar.api.rules.CleanCodeAttributeCategory; -import org.sonar.core.rule.RuleType; import org.sonar.api.server.rule.RulesDefinition; +import org.sonar.api.server.rule.RulesDefinition.OwaspMobileTop10Version; import org.sonar.api.server.rule.RulesDefinition.OwaspTop10Version; import org.sonar.api.server.rule.RulesDefinition.PciDssVersion; import org.sonar.api.utils.DateUtils; import org.sonar.api.utils.System2; +import org.sonar.core.rule.RuleType; import org.sonar.server.es.EsClient; import org.sonar.server.es.EsUtils; import org.sonar.server.es.SearchOptions; @@ -120,10 +123,10 @@ import static org.elasticsearch.index.query.QueryBuilders.termQuery; import static org.elasticsearch.index.query.QueryBuilders.termsQuery; import static org.elasticsearch.search.aggregations.AggregationBuilders.filters; import static org.elasticsearch.search.aggregations.AggregationBuilders.reverseNested; -import static org.sonar.core.rule.RuleType.SECURITY_HOTSPOT; -import static org.sonar.core.rule.RuleType.VULNERABILITY; import static org.sonar.core.config.MQRModeConstants.MULTI_QUALITY_MODE_DEFAULT_VALUE; import static org.sonar.core.config.MQRModeConstants.MULTI_QUALITY_MODE_ENABLED; +import static org.sonar.core.rule.RuleType.SECURITY_HOTSPOT; +import static org.sonar.core.rule.RuleType.VULNERABILITY; import static org.sonar.server.es.EsUtils.escapeSpecialRegexChars; import static org.sonar.server.es.IndexType.FIELD_INDEX_TYPE; import static org.sonar.server.es.searchrequest.TopAggregationDefinition.NON_STICKY; @@ -145,6 +148,7 @@ import static org.sonar.server.issue.index.IssueIndex.Facet.IMPACT_SOFTWARE_QUAL import static org.sonar.server.issue.index.IssueIndex.Facet.ISSUE_STATUSES; import static org.sonar.server.issue.index.IssueIndex.Facet.LANGUAGES; import static org.sonar.server.issue.index.IssueIndex.Facet.OWASP_ASVS_40; +import static org.sonar.server.issue.index.IssueIndex.Facet.OWASP_MOBILE_TOP_10_2024; import static org.sonar.server.issue.index.IssueIndex.Facet.OWASP_TOP_10; import static org.sonar.server.issue.index.IssueIndex.Facet.OWASP_TOP_10_2021; import static org.sonar.server.issue.index.IssueIndex.Facet.PCI_DSS_32; @@ -185,6 +189,7 @@ import static org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_LINE import static org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_NEW_CODE_REFERENCE; import static org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_NEW_STATUS; import static org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_OWASP_ASVS_40; +import static org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_OWASP_MOBILE_TOP_10_2024; import static org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_OWASP_TOP_10; import static org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_OWASP_TOP_10_2021; import static org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_PCI_DSS_32; @@ -224,6 +229,7 @@ import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_IMPACT_SOFT import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_ISSUE_STATUSES; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_LANGUAGES; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_ASVS_40; +import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_MOBILE_TOP_10_2024; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_TOP_10; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_TOP_10_2021; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_PCI_DSS_32; @@ -256,7 +262,6 @@ public class IssueIndex { private static final String ISSUES_WITH_SECURITY_IMPACT = "issues_with_security_impact"; private static final String AGG_IMPACT_SEVERITIES = "impact_severities"; private static final String AGG_TO_REVIEW_SECURITY_HOTSPOTS = "toReviewSecurityHotspots"; - private static final String AGG_IN_REVIEW_SECURITY_HOTSPOTS = "inReviewSecurityHotspots"; private static final String AGG_REVIEWED_SECURITY_HOTSPOTS = "reviewedSecurityHotspots"; private static final String AGG_DISTRIBUTION = "distribution"; private static final BoolQueryBuilder NON_RESOLVED_VULNERABILITIES_FILTER = boolQuery() @@ -266,10 +271,6 @@ public class IssueIndex { .filter(nestedQuery(FIELD_ISSUE_IMPACTS, termsQuery(FIELD_ISSUE_IMPACT_SOFTWARE_QUALITY, SoftwareQuality.SECURITY.name()), ScoreMode.Avg)) .mustNot(existsQuery(FIELD_ISSUE_RESOLUTION)); - private static final BoolQueryBuilder IN_REVIEW_HOTSPOTS_FILTER = boolQuery() - .filter(termQuery(FIELD_ISSUE_TYPE, SECURITY_HOTSPOT.name())) - .filter(termQuery(FIELD_ISSUE_STATUS, Issue.STATUS_IN_REVIEW)) - .mustNot(existsQuery(FIELD_ISSUE_RESOLUTION)); private static final BoolQueryBuilder TO_REVIEW_HOTSPOTS_FILTER = boolQuery() .filter(termQuery(FIELD_ISSUE_TYPE, SECURITY_HOTSPOT.name())) .filter(termQuery(FIELD_ISSUE_STATUS, Issue.STATUS_TO_REVIEW)) @@ -313,6 +314,7 @@ public class IssueIndex { PCI_DSS_32(PARAM_PCI_DSS_32, FIELD_ISSUE_PCI_DSS_32, STICKY, DEFAULT_FACET_SIZE), PCI_DSS_40(PARAM_PCI_DSS_40, FIELD_ISSUE_PCI_DSS_40, STICKY, DEFAULT_FACET_SIZE), OWASP_ASVS_40(PARAM_OWASP_ASVS_40, FIELD_ISSUE_OWASP_ASVS_40, STICKY, DEFAULT_FACET_SIZE), + OWASP_MOBILE_TOP_10_2024(PARAM_OWASP_MOBILE_TOP_10_2024, FIELD_ISSUE_OWASP_MOBILE_TOP_10_2024, STICKY, DEFAULT_FACET_SIZE), OWASP_TOP_10(PARAM_OWASP_TOP_10, FIELD_ISSUE_OWASP_TOP_10, STICKY, DEFAULT_FACET_SIZE), OWASP_TOP_10_2021(PARAM_OWASP_TOP_10_2021, FIELD_ISSUE_OWASP_TOP_10_2021, STICKY, DEFAULT_FACET_SIZE), STIG_ASD_V5R3(PARAM_STIG_ASD_V5R3, FIELD_ISSUE_STIG_ASD_V5R3, STICKY, DEFAULT_FACET_SIZE), @@ -531,6 +533,7 @@ public class IssueIndex { addSecurityCategoryPrefixFilter(FIELD_ISSUE_PCI_DSS_32, PCI_DSS_32, query.pciDss32(), filters); addSecurityCategoryPrefixFilter(FIELD_ISSUE_PCI_DSS_40, PCI_DSS_40, query.pciDss40(), filters); addOwaspAsvsFilter(FIELD_ISSUE_OWASP_ASVS_40, OWASP_ASVS_40, query, filters); + addSecurityCategoryFilter(FIELD_ISSUE_OWASP_MOBILE_TOP_10_2024, OWASP_MOBILE_TOP_10_2024, query.owaspMobileTop10For2024(), filters); addSecurityCategoryFilter(FIELD_ISSUE_OWASP_TOP_10, OWASP_TOP_10, query.owaspTop10(), filters); addSecurityCategoryFilter(FIELD_ISSUE_OWASP_TOP_10_2021, OWASP_TOP_10_2021, query.owaspTop10For2021(), filters); addSecurityCategoryFilter(FIELD_ISSUE_STIG_ASD_V5R3, STIG_ASD_V5R3, query.stigAsdV5R3(), filters); @@ -543,9 +546,8 @@ public class IssueIndex { addImpactFilters(query, filters); addComponentRelatedFilters(query, filters); addDatesFilter(filters, query); - addCreatedAfterByProjectsFilter(filters, query); + addNewCodeByProjectsFilter(filters, query); addNewCodeReferenceFilter(filters, query); - addNewCodeReferenceFilterByProjectsFilter(filters, query); return filters; } @@ -873,29 +875,19 @@ public class IssueIndex { } } - private static void addNewCodeReferenceFilterByProjectsFilter(AllFilters allFilters, IssueQuery query) { - Collection<String> newCodeOnReferenceByProjectUuids = query.newCodeOnReferenceByProjectUuids(); - BoolQueryBuilder boolQueryBuilder = boolQuery(); - - if (!newCodeOnReferenceByProjectUuids.isEmpty()) { - - newCodeOnReferenceByProjectUuids.forEach(projectOrProjectBranchUuid -> boolQueryBuilder.should(boolQuery() - .filter(termQuery(FIELD_ISSUE_BRANCH_UUID, projectOrProjectBranchUuid)) - .filter(termQuery(FIELD_ISSUE_NEW_CODE_REFERENCE, true)))); - - allFilters.addFilter("__is_new_code_reference_by_project_uuids", - new SimpleFieldFilterScope("newCodeReferenceByProjectUuids"), boolQueryBuilder); - } - } - - private static void addCreatedAfterByProjectsFilter(AllFilters allFilters, IssueQuery query) { + private static void addNewCodeByProjectsFilter(AllFilters allFilters, IssueQuery query) { Map<String, PeriodStart> createdAfterByProjectUuids = query.createdAfterByProjectUuids(); BoolQueryBuilder boolQueryBuilder = boolQuery(); createdAfterByProjectUuids.forEach((projectOrProjectBranchUuid, createdAfterDate) -> boolQueryBuilder.should(boolQuery() .filter(termQuery(FIELD_ISSUE_BRANCH_UUID, projectOrProjectBranchUuid)) .filter(rangeQuery(FIELD_ISSUE_FUNC_CREATED_AT).from(createdAfterDate.date().getTime(), createdAfterDate.inclusive())))); - allFilters.addFilter("__created_after_by_project_uuids", new SimpleFieldFilterScope("createdAfterByProjectUuids"), boolQueryBuilder); + Collection<String> newCodeOnReferenceByProjectUuids = query.newCodeOnReferenceByProjectUuids(); + newCodeOnReferenceByProjectUuids.forEach(projectOrProjectBranchUuid -> boolQueryBuilder.should(boolQuery() + .filter(termQuery(FIELD_ISSUE_BRANCH_UUID, projectOrProjectBranchUuid)) + .filter(termQuery(FIELD_ISSUE_NEW_CODE_REFERENCE, true)))); + + allFilters.addFilter("__new_code_by_project_uuids", new SimpleFieldFilterScope("newCodeByProjectUuids"), boolQueryBuilder); } private void validateCreationDateBounds(@Nullable Date createdBefore, @Nullable Date createdAfter) { @@ -925,6 +917,7 @@ public class IssueIndex { addSecurityCategoryFacetIfNeeded(PARAM_PCI_DSS_32, PCI_DSS_32, options, aggregationHelper, esRequest, query.pciDss32().toArray()); addSecurityCategoryFacetIfNeeded(PARAM_PCI_DSS_40, PCI_DSS_40, options, aggregationHelper, esRequest, query.pciDss40().toArray()); addSecurityCategoryFacetIfNeeded(PARAM_OWASP_ASVS_40, OWASP_ASVS_40, options, aggregationHelper, esRequest, query.owaspAsvs40().toArray()); + addSecurityCategoryFacetIfNeeded(PARAM_OWASP_MOBILE_TOP_10_2024, OWASP_MOBILE_TOP_10_2024, options, aggregationHelper, esRequest, query.owaspMobileTop10For2024().toArray()); addSecurityCategoryFacetIfNeeded(PARAM_OWASP_TOP_10, OWASP_TOP_10, options, aggregationHelper, esRequest, query.owaspTop10().toArray()); addSecurityCategoryFacetIfNeeded(PARAM_OWASP_TOP_10_2021, OWASP_TOP_10_2021, options, aggregationHelper, esRequest, query.owaspTop10For2021().toArray()); addSecurityCategoryFacetIfNeeded(PARAM_STIG_ASD_V5R3, STIG_ASD_V5R3, options, aggregationHelper, esRequest, query.stigAsdV5R3().toArray()); @@ -1301,7 +1294,7 @@ public class IssueIndex { } private static SecurityStandardCategoryStatistics emptyCweStatistics(String rule) { - return new SecurityStandardCategoryStatistics(rule, 0, OptionalInt.of(1), 0, 0, 1, null, null); + return new SecurityStandardCategoryStatistics(rule, 0, OptionalInt.of(1), 0, 0, 1, null, null, Map.of()); } public List<SecurityStandardCategoryStatistics> getSonarSourceReport(String projectUuid, boolean isViewOrApp, boolean includeCwe) { @@ -1347,6 +1340,17 @@ public class IssueIndex { return searchWithLevelDistribution(request, version.label(), Integer.toString(level)); } + public List<SecurityStandardCategoryStatistics> getOwaspMobileTop10Report(String projectUuid, boolean isViewOrApp, boolean includeCwe, OwaspMobileTop10Version version) { + SearchSourceBuilder request = prepareNonClosedVulnerabilitiesAndHotspotSearch(projectUuid, isViewOrApp); + IntStream.rangeClosed(1, 10).mapToObj(i -> "m" + i) + .forEach(owaspMobileCategory -> request.aggregation( + newSecurityReportSubAggregations( + AggregationBuilders.filter(owaspMobileCategory, boolQuery().filter(termQuery(version.prefix(), owaspMobileCategory))), + includeCwe, + null))); + return search(request, includeCwe, version.label()); + } + public List<SecurityStandardCategoryStatistics> getOwaspTop10Report(String projectUuid, boolean isViewOrApp, boolean includeCwe, OwaspTop10Version version) { SearchSourceBuilder request = prepareNonClosedVulnerabilitiesAndHotspotSearch(projectUuid, isViewOrApp); IntStream.rangeClosed(1, 10).mapToObj(i -> "a" + i) @@ -1446,10 +1450,11 @@ public class IssueIndex { Aggregation severitiesAggregations = ((ParsedFilter) categoryBucket.getAggregations().get(AGG_VULNERABILITIES)).getAggregations().get(AGG_SEVERITIES); - CountAndRating countAndRating = getCountAndRating(severitiesAggregations); - long vulnerabilities = countAndRating.getCount(); + SeverityAggregationDetails severityAggregationDetails = getSeverityDetails(severitiesAggregations); + long vulnerabilities = severityAggregationDetails.getCount(); // Worst severity having at least one issue - OptionalInt severityRating = countAndRating.getRating(); + OptionalInt severityRating = severityAggregationDetails.getRating(); + Map<String, Long> severityDistribution = severityAggregationDetails.getDistribution(); long toReviewSecurityHotspots = ((ParsedValueCount) ((ParsedFilter) categoryBucket.getAggregations().get(AGG_TO_REVIEW_SECURITY_HOTSPOTS)).getAggregations().get(AGG_COUNT)) .getValue(); @@ -1460,32 +1465,39 @@ public class IssueIndex { Integer securityReviewRating = computeRating(percent.orElse(null)).getIndex(); return new SecurityStandardCategoryStatistics(categoryName, vulnerabilities, severityRating, toReviewSecurityHotspots, - reviewedSecurityHotspots, securityReviewRating, children, version); + reviewedSecurityHotspots, securityReviewRating, children, version, severityDistribution); } - private CountAndRating getCountAndRating(Aggregation severitiesAggregations) { + private SeverityAggregationDetails getSeverityDetails(Aggregation severitiesAggregations) { + List<? extends Terms.Bucket> severityBuckets; + long vulnerabilities; + OptionalInt severityRating; if (isMQRMode()) { - List<? extends Terms.Bucket> severityBuckets = + severityBuckets = ((ParsedStringTerms) ((ParsedFilter) ((ParsedNested) severitiesAggregations).getAggregations().get(ISSUES_WITH_SECURITY_IMPACT)).getAggregations().get(AGG_IMPACT_SEVERITIES)).getBuckets(); - long vulnerabilities = + vulnerabilities = severityBuckets.stream().mapToLong(b -> ((ParsedValueCount) b.getAggregations().get(AGG_COUNT)).getValue()).sum(); // Worst severity having at least one issue - OptionalInt severityRating = severityBuckets.stream() + severityRating = severityBuckets.stream() .filter(b -> ((ParsedValueCount) b.getAggregations().get(AGG_COUNT)).getValue() != 0) .mapToInt(b -> org.sonar.api.issue.impact.Severity.valueOf(b.getKeyAsString()).ordinal() + 1) .max(); - return new CountAndRating(vulnerabilities, severityRating); } else { - List<? extends Terms.Bucket> severityBuckets = ((ParsedStringTerms) severitiesAggregations).getBuckets(); - long vulnerabilities = + severityBuckets = ((ParsedStringTerms) severitiesAggregations).getBuckets(); + vulnerabilities = severityBuckets.stream().mapToLong(b -> ((ParsedValueCount) b.getAggregations().get(AGG_COUNT)).getValue()).sum(); // Worst severity having at least one issue - OptionalInt severityRating = severityBuckets.stream() + severityRating = severityBuckets.stream() .filter(b -> ((ParsedValueCount) b.getAggregations().get(AGG_COUNT)).getValue() != 0) .mapToInt(b -> Severity.ALL.indexOf(b.getKeyAsString()) + 1) .max(); - return new CountAndRating(vulnerabilities, severityRating); } + Map<String, Long> severityDistribution = severityBuckets.stream() + .collect(Collectors.toMap( + e -> e.getKeyAsString().toLowerCase(Locale.US), + MultiBucketsAggregation.Bucket::getDocCount + )); + return new SeverityAggregationDetails(vulnerabilities, severityRating, severityDistribution); } private AggregationBuilder newSecurityReportSubAggregations(AggregationBuilder categoriesAggs, String securityStandardVersionPrefix) { @@ -1523,9 +1535,6 @@ public class IssueIndex { .subAggregation(AggregationBuilders.filter(AGG_TO_REVIEW_SECURITY_HOTSPOTS, TO_REVIEW_HOTSPOTS_FILTER) .subAggregation( AggregationBuilders.count(AGG_COUNT).field(FIELD_ISSUE_KEY))) - .subAggregation(AggregationBuilders.filter(AGG_IN_REVIEW_SECURITY_HOTSPOTS, IN_REVIEW_HOTSPOTS_FILTER) - .subAggregation( - AggregationBuilders.count(AGG_COUNT).field(FIELD_ISSUE_KEY))) .subAggregation(AggregationBuilders.filter(AGG_REVIEWED_SECURITY_HOTSPOTS, REVIEWED_HOTSPOTS_FILTER) .subAggregation( AggregationBuilders.count(AGG_COUNT).field(FIELD_ISSUE_KEY))); @@ -1569,7 +1578,6 @@ public class IssueIndex { componentFilter .should(getNonResolvedIssuesOrNonResolvedSecurityImpactQueryBuilderBasedOnMode()) .should(TO_REVIEW_HOTSPOTS_FILTER) - .should(IN_REVIEW_HOTSPOTS_FILTER) .should(REVIEWED_HOTSPOTS_FILTER) .minimumShouldMatch(1)) .size(0); @@ -1580,13 +1588,15 @@ public class IssueIndex { } - private static class CountAndRating { + private static class SeverityAggregationDetails { private long count; private OptionalInt rating; + private Map<String, Long> distribution; - public CountAndRating(long count, OptionalInt rating) { + public SeverityAggregationDetails(long count, OptionalInt rating, Map<String, Long> distribution) { this.count = count; this.rating = rating; + this.distribution = distribution; } public long getCount() { @@ -1596,5 +1606,9 @@ public class IssueIndex { public OptionalInt getRating() { return rating; } + + public Map<String, Long> getDistribution() { + return distribution; + } } } diff --git a/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQuery.java b/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQuery.java index ddf06536376..9a20bac4775 100644 --- a/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQuery.java +++ b/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQuery.java @@ -74,6 +74,7 @@ public class IssueQuery { private final Collection<String> languages; private final Collection<String> tags; private final Collection<String> types; + private final Collection<String> owaspMobileTop10For2024; private final Collection<String> owaspTop10; private final Collection<String> pciDss32; private final Collection<String> pciDss40; @@ -129,6 +130,7 @@ public class IssueQuery { this.pciDss40 = defaultCollection(builder.pciDss40); this.owaspAsvs40 = defaultCollection(builder.owaspAsvs40); this.owaspAsvsLevel = builder.owaspAsvsLevel; + this.owaspMobileTop10For2024 = defaultCollection(builder.owaspMobileTop10For2024); this.owaspTop10 = defaultCollection(builder.owaspTop10); this.owaspTop10For2021 = defaultCollection(builder.owaspTop10For2021); this.stigAsdV5R3 = defaultCollection(builder.stigAsdV5R3); @@ -256,6 +258,10 @@ public class IssueQuery { return Optional.ofNullable(owaspAsvsLevel); } + public Collection<String> owaspMobileTop10For2024() { + return owaspMobileTop10For2024; + } + public Collection<String> owaspTop10() { return owaspTop10; } @@ -402,6 +408,7 @@ public class IssueQuery { private Collection<String> pciDss40; private Collection<String> owaspAsvs40; private Integer owaspAsvsLevel; + private Collection<String> owaspMobileTop10For2024; private Collection<String> owaspTop10; private Collection<String> owaspTop10For2021; private Collection<String> stigAsdV5R3; @@ -556,6 +563,11 @@ public class IssueQuery { return this; } + public Builder owaspMobileTop10For2024(@Nullable Collection<String> o) { + this.owaspMobileTop10For2024 = o; + return this; + } + public Builder owaspTop10(@Nullable Collection<String> o) { this.owaspTop10 = o; return this; diff --git a/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQueryFactory.java b/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQueryFactory.java index e105cd9d175..a8c4216b14f 100644 --- a/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQueryFactory.java +++ b/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQueryFactory.java @@ -150,6 +150,7 @@ public class IssueQueryFactory { .pciDss40(request.getPciDss40()) .owaspAsvs40(request.getOwaspAsvs40()) .owaspAsvsLevel(request.getOwaspAsvsLevel()) + .owaspMobileTop10For2024(request.getOwaspMobileTop10For2024()) .owaspTop10(request.getOwaspTop10()) .owaspTop10For2021(request.getOwaspTop10For2021()) .stigAsdR5V3(request.getStigAsdV5R3()) @@ -167,6 +168,8 @@ public class IssueQueryFactory { List<ComponentDto> allComponents = new ArrayList<>(); boolean effectiveOnComponentOnly = mergeDeprecatedComponentParameters(dbSession, request, allComponents); addComponentParameters(builder, dbSession, effectiveOnComponentOnly, allComponents, request); + // SONAR-25108 + unsetMainBranch(builder, issueKeys != null && !issueKeys.isEmpty(), allComponents, request); setCreatedAfterFromRequest(dbSession, builder, request, allComponents, timeZone); String sort = request.getSort(); @@ -511,4 +514,12 @@ public class IssueQueryFactory { builder.mainBranch(branchDto.isMain()); } } + + private static void unsetMainBranch(IssueQuery.Builder builder, boolean hasIssueKey, List<ComponentDto> components, SearchRequest request) { + var pullRequest = request.getPullRequest(); + var branch = request.getBranch(); + if ((components.isEmpty() || UNKNOWN_COMPONENT.equals(components.get(0)) || (pullRequest == null && branch == null)) && hasIssueKey) { + builder.mainBranch(null); + } + } } diff --git a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexFiltersTest.java b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexFiltersTest.java index 23daad4fed0..e0fa9ca61cc 100644 --- a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexFiltersTest.java +++ b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexFiltersTest.java @@ -456,7 +456,7 @@ class IssueIndexFiltersTest extends IssueIndexTestCommon { } @Test - void filter_by_new_code_reference_branches() { + void filter_by_new_reference_branches() { ComponentDto project1 = db.components().insertPrivateProject().getMainBranchComponent(); IssueDoc project1Issue1 = newDocForProject(project1).setIsNewCodeReference(true); IssueDoc project1Issue2 = newDocForProject(project1).setIsNewCodeReference(false); @@ -474,14 +474,20 @@ class IssueIndexFiltersTest extends IssueIndexTestCommon { IssueDoc project2Branch1Issue1 = newDoc(project2Branch1, project2.uuid()).setIsNewCodeReference(false); IssueDoc project2Branch1Issue2 = newDoc(project2Branch1, project2.uuid()).setIsNewCodeReference(true); + ComponentDto project3 = db.components().insertPrivateProject().getMainBranchComponent(); + ComponentDto project3Branch1 = db.components().insertProjectBranch(project2); + IssueDoc project3Issue1 = newDoc(project3Branch1, project3.uuid()).setFuncCreationDate(new Date(1000L)); + IssueDoc project3Issue2 = newDoc(project3Branch1, project3.uuid()).setFuncCreationDate(new Date(2000L)); + indexIssues(project1Issue1, project1Issue2, project2Issue1, project2Issue2, - project1Branch1Issue1, project1Branch1Issue2, project2Branch1Issue1, project2Branch1Issue2); + project1Branch1Issue1, project1Branch1Issue2, project2Branch1Issue1, project2Branch1Issue2, project3Issue1, project3Issue2); // Search for issues of project 1 branch 1 and project 2 branch 1 that are new code on a branch using reference for new code assertThatSearchReturnsOnly(IssueQuery.builder() .mainBranch(false) - .newCodeOnReferenceByProjectUuids(Set.of(project1Branch1.uuid(), project2Branch1.uuid())), - project1Branch1Issue2.key(), project2Branch1Issue2.key()); + .newCodeOnReferenceByProjectUuids(Set.of(project1Branch1.uuid(), project2Branch1.uuid())) + .createdAfterByProjectUuids(Map.of(project3Branch1.uuid(), new IssueQuery.PeriodStart(new Date(1500), false))), + project1Branch1Issue2.key(), project2Branch1Issue2.key(), project3Issue2.key()); } @Test diff --git a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexSecurityReportsTest.java b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexSecurityReportsTest.java index 0eee21734c2..0c002a4e13c 100644 --- a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexSecurityReportsTest.java +++ b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexSecurityReportsTest.java @@ -30,7 +30,9 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import org.sonar.api.issue.Issue; +import org.sonar.api.issue.IssueStatus; import org.sonar.api.rule.Severity; +import org.sonar.api.server.rule.RulesDefinition; import org.sonar.core.rule.RuleType; import org.sonar.api.server.rule.RulesDefinition.StigVersion; import org.sonar.db.component.ComponentDto; @@ -51,6 +53,7 @@ import static org.sonar.api.issue.impact.Severity.MEDIUM; import static org.sonar.api.issue.impact.SoftwareQuality.MAINTAINABILITY; import static org.sonar.api.issue.impact.SoftwareQuality.SECURITY; import static org.sonar.api.server.rule.RulesDefinition.OwaspAsvsVersion; +import static org.sonar.api.server.rule.RulesDefinition.OwaspMobileTop10Version.Y2024; import static org.sonar.api.server.rule.RulesDefinition.OwaspTop10Version.Y2017; import static org.sonar.api.server.rule.RulesDefinition.OwaspTop10Version.Y2021; import static org.sonar.api.server.rule.RulesDefinition.PciDssVersion; @@ -357,6 +360,31 @@ class IssueIndexSecurityReportsTest extends IssueIndexTestCommon { tuple("unknown", 0L, OptionalInt.empty(), 1L /* openhotspot1 */, 0L, 5)); } + @ParameterizedTest + @ValueSource(booleans = {true, false}) + void getOwaspMobileTop10For2024Report_aggregation_with_cwe(boolean mqrMode) { + doReturn(Optional.of(mqrMode)).when(config).getBoolean(MULTI_QUALITY_MODE_ENABLED); + List<SecurityStandardCategoryStatistics> owaspTop10Report = indexIssuesAndAssertOwaspMobile2024Report(true); + + Map<String, List<SecurityStandardCategoryStatistics>> cweByOwasp = owaspTop10Report.stream() + .collect(Collectors.toMap(SecurityStandardCategoryStatistics::getCategory, SecurityStandardCategoryStatistics::getChildren)); + + assertThat(cweByOwasp.get("m1")).extracting(SecurityStandardCategoryStatistics::getCategory, SecurityStandardCategoryStatistics::getVulnerabilities, + SecurityStandardCategoryStatistics::getVulnerabilityRating, SecurityStandardCategoryStatistics::getToReviewSecurityHotspots, + SecurityStandardCategoryStatistics::getReviewedSecurityHotspots, SecurityStandardCategoryStatistics::getSecurityReviewRating) + .containsExactlyInAnyOrder( + tuple("123", 1L /* openvul1 */, OptionalInt.of(3)/* MAJOR = C */, 0L, 0L, 1), + tuple("456", 1L /* openvul1 */, OptionalInt.of(3)/* MAJOR = C */, 0L, 0L, 1), + tuple("unknown", 0L, OptionalInt.empty(), 1L /* openhotspot1 */, 0L, 5)); + assertThat(cweByOwasp.get("m3")).extracting(SecurityStandardCategoryStatistics::getCategory, SecurityStandardCategoryStatistics::getVulnerabilities, + SecurityStandardCategoryStatistics::getVulnerabilityRating, SecurityStandardCategoryStatistics::getToReviewSecurityHotspots, + SecurityStandardCategoryStatistics::getReviewedSecurityHotspots, SecurityStandardCategoryStatistics::getSecurityReviewRating) + .containsExactlyInAnyOrder( + tuple("123", 2L /* openvul1, openvul2 */, OptionalInt.of(3)/* MAJOR = C */, 0L, 0L, 1), + tuple("456", 1L /* openvul1 */, OptionalInt.of(3)/* MAJOR = C */, 0L, 0L, 1), + tuple("unknown", 0L, OptionalInt.empty(), 1L /* openhotspot1 */, 0L, 5)); + } + private List<SecurityStandardCategoryStatistics> indexIssuesAndAssertOwaspReport(boolean includeCwe) { ComponentDto project = newPrivateProjectDto(); indexIssues( @@ -545,6 +573,41 @@ class IssueIndexSecurityReportsTest extends IssueIndexTestCommon { return owaspTop10Report; } + private List<SecurityStandardCategoryStatistics> indexIssuesAndAssertOwaspMobile2024Report(boolean includeCwe) { + ComponentDto project = newPrivateProjectDto(); + indexIssues( + newDocForProject("openvul1", project).setOwaspMobileTop10For2024(asList("m1", "m3")).setCwe(asList("123", "456")).setType(RuleType.VULNERABILITY).setImpacts(Map.of(SECURITY, MEDIUM)).setStatus(IssueStatus.OPEN.name()) + .setSeverity(Severity.MAJOR), + newDocForProject("openvul2", project).setOwaspMobileTop10For2024(asList("m3", "m6")).setCwe(List.of("123")).setType(RuleType.VULNERABILITY).setImpacts(Map.of(SECURITY, LOW)).setStatus(IssueStatus.OPEN.name()) + .setSeverity(Severity.MINOR), + newDocForProject("notowaspvul", project).setOwaspMobileTop10For2024(singletonList(UNKNOWN_STANDARD)).setType(RuleType.VULNERABILITY).setImpacts(Map.of(SECURITY, HIGH)).setStatus(IssueStatus.OPEN.toString()) + .setSeverity(Severity.CRITICAL), + newDocForProject("toreviewhotspot1", project).setOwaspMobileTop10For2024(asList("m1", "m3")).setCwe(singletonList(UNKNOWN_STANDARD)).setType(RuleType.SECURITY_HOTSPOT) + .setStatus(Issue.STATUS_TO_REVIEW), + newDocForProject("toreviewhotspot2", project).setOwaspMobileTop10For2024(asList("m3", "m6")).setType(RuleType.SECURITY_HOTSPOT).setStatus(Issue.STATUS_TO_REVIEW), + newDocForProject("reviewedHotspot", project).setOwaspMobileTop10For2024(asList("m3", "m8")).setType(RuleType.SECURITY_HOTSPOT).setStatus(Issue.STATUS_REVIEWED) + .setResolution(Issue.RESOLUTION_FIXED), + newDocForProject("notowasphotspot", project).setOwaspMobileTop10For2024(singletonList(UNKNOWN_STANDARD)).setType(RuleType.SECURITY_HOTSPOT).setStatus(Issue.STATUS_TO_REVIEW)); + + List<SecurityStandardCategoryStatistics> owaspTop10Report = underTest.getOwaspMobileTop10Report(project.uuid(), false, includeCwe, Y2024); + assertThat(owaspTop10Report) + .extracting(SecurityStandardCategoryStatistics::getCategory, SecurityStandardCategoryStatistics::getVulnerabilities, + SecurityStandardCategoryStatistics::getVulnerabilityRating, SecurityStandardCategoryStatistics::getToReviewSecurityHotspots, + SecurityStandardCategoryStatistics::getReviewedSecurityHotspots, SecurityStandardCategoryStatistics::getSecurityReviewRating) + .containsExactlyInAnyOrder( + tuple("m1", 1L /* openvul1 */, OptionalInt.of(3)/* MAJOR = C */, 1L /* toreviewhotspot1 */, 0L, 5), + tuple("m2", 0L, OptionalInt.empty(), 0L, 0L, 1), + tuple("m3", 2L /* openvul1,openvul2 */, OptionalInt.of(3)/* MAJOR = C */, 2L/* toreviewhotspot1,toreviewhotspot2 */, 1L /* reviewedHotspot */, 4), + tuple("m4", 0L, OptionalInt.empty(), 0L, 0L, 1), + tuple("m5", 0L, OptionalInt.empty(), 0L, 0L, 1), + tuple("m6", 1L /* openvul2 */, OptionalInt.of(2) /* MINOR = B */, 1L /* toreviewhotspot2 */, 0L, 5), + tuple("m7", 0L, OptionalInt.empty(), 0L, 0L, 1), + tuple("m8", 0L, OptionalInt.empty(), 0L, 1L /* reviewedHotspot */, 1), + tuple("m9", 0L, OptionalInt.empty(), 0L, 0L, 1), + tuple("m10", 0L, OptionalInt.empty(), 0L, 0L, 1)); + return owaspTop10Report; + } + @ParameterizedTest @ValueSource(booleans = {true, false}) void getPciDssReport_aggregation_on_portfolio(boolean mqrMode) { diff --git a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryFactoryTest.java b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryFactoryTest.java index eb5c05b4ab6..c62293eb309 100644 --- a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryFactoryTest.java +++ b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryFactoryTest.java @@ -25,6 +25,7 @@ import java.time.ZoneOffset; import java.util.ArrayList; import java.util.Collections; import java.util.Date; +import java.util.List; import java.util.Map; import org.junit.Rule; import org.junit.Test; @@ -741,4 +742,84 @@ public class IssueQueryFactoryTest { .hasMessageContaining("'unknown-date' cannot be parsed as either a date or date+time"); } + @Test + public void when_issue_keys_provided_with_no_component_should_not_have_main_branch() { + SearchRequest request = new SearchRequest() + .setIssues(List.of("issue-key-1", "issue-key-2")); + + IssueQuery query = underTest.create(request); + + assertThat(query.isMainBranch()).isNull(); + } + + @Test + public void when_issue_keys_and_component_provided_should_have_main_branch_set() { + // Create a project with main branch + ProjectData projectData = db.components().insertPrivateProject(); + ComponentDto mainBranch = projectData.getMainBranchComponent(); + String branchName = DEFAULT_MAIN_BRANCH_NAME; + + // Request with issue keys and main branch + SearchRequest request = new SearchRequest() + .setIssues(List.of("issue-key-1", "issue-key-2")) + .setComponentKeys(List.of(mainBranch.getKey())) + .setBranch(branchName); + + IssueQuery query = underTest.create(request); + + // Should unset main branch since issue keys are provided + assertThat(query.isMainBranch()).isTrue(); + assertThat(query.branchUuid()).isEqualTo(mainBranch.uuid()); + } + + @Test + public void when_no_issue_keys_provided_should_default_to_main_branch() { + ProjectData projectData = db.components().insertPrivateProject(); + ComponentDto mainBranch = projectData.getMainBranchComponent(); + String branchName = DEFAULT_MAIN_BRANCH_NAME; + + SearchRequest request = new SearchRequest() + .setComponentKeys(List.of(mainBranch.getKey())) + .setBranch(branchName); + + IssueQuery query = underTest.create(request); + + assertThat(query.isMainBranch()).isTrue(); + assertThat(query.branchUuid()).isEqualTo(mainBranch.uuid()); + } + + @Test + public void when_component_is_non_main_branch_should_not_default_to_main_branch() { + ProjectData projectData = db.components().insertPrivateProject(); + ComponentDto mainBranch = projectData.getMainBranchComponent(); + String branchName = "feature-branch"; + ComponentDto branch = db.components().insertProjectBranch(mainBranch, b -> b.setKey(branchName)); + + SearchRequest request = new SearchRequest() + .setComponentKeys(List.of(branch.getKey())) + .setBranch(branchName); + + IssueQuery query = underTest.create(request); + + assertThat(query.isMainBranch()).isFalse(); + assertThat(query.branchUuid()).isEqualTo(branch.uuid()); + } + + @Test + public void when_empty_issue_keys_list_provided_should_default_to_main_branch() { + ProjectData projectData = db.components().insertPrivateProject(); + ComponentDto mainBranch = projectData.getMainBranchComponent(); + String branchName = DEFAULT_MAIN_BRANCH_NAME; + + SearchRequest request = new SearchRequest() + .setIssues(Collections.emptyList()) + .setComponentKeys(List.of(mainBranch.getKey())) + .setBranch(branchName); + + IssueQuery query = underTest.create(request); + + assertThat(query.isMainBranch()).isTrue(); + assertThat(query.branchUuid()).isEqualTo(mainBranch.uuid()); + } + } diff --git a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryTest.java b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryTest.java index c8b9870d547..979e493da47 100644 --- a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryTest.java +++ b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryTest.java @@ -128,6 +128,15 @@ class IssueQueryTest { } @Test + void build_owasp_mobile_query() { + IssueQuery query = IssueQuery.builder() + .owaspMobileTop10For2024(List.of("m5", "m6")) + .build(); + + assertThat(query.owaspMobileTop10For2024()).containsOnly("m5", "m6"); + } + + @Test void build_stig_query() { IssueQuery query = IssueQuery.builder() .stigAsdR5V3(List.of("V-222400", "V-222401")) diff --git a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/controller/DefaultGroupController.java b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/controller/DefaultGroupController.java index 1b5b17e5e6a..9727e3b7d04 100644 --- a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/controller/DefaultGroupController.java +++ b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/controller/DefaultGroupController.java @@ -20,6 +20,7 @@ package org.sonar.server.v2.api.group.controller; import java.util.List; +import org.jetbrains.annotations.Nullable; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.server.common.SearchResults; @@ -53,10 +54,11 @@ public class DefaultGroupController implements GroupController { } @Override - public GroupsSearchRestResponse search(GroupsSearchRestRequest groupsSearchRestRequest, RestPage restPage) { + public GroupsSearchRestResponse search(GroupsSearchRestRequest groupsSearchRestRequest, @Nullable String excludedUserId, RestPage restPage) { userSession.checkLoggedIn().checkIsSystemAdministrator(); try (DbSession dbSession = dbClient.openSession(false)) { - GroupSearchRequest groupSearchRequest = new GroupSearchRequest(groupsSearchRestRequest.q(), groupsSearchRestRequest.managed(), restPage.pageIndex(), restPage.pageSize()); + GroupSearchRequest groupSearchRequest = new GroupSearchRequest(groupsSearchRestRequest.q(), groupsSearchRestRequest.managed(), groupsSearchRestRequest.userId(), + excludedUserId, restPage.pageIndex(), restPage.pageSize()); SearchResults<GroupInformation> searchResults = groupService.search(dbSession, groupSearchRequest); List<GroupRestResponse> groupRestResponses = toGroupRestResponses(searchResults); return new GroupsSearchRestResponse(groupRestResponses, new PageRestResponse(restPage.pageIndex(), restPage.pageSize(), searchResults.total())); diff --git a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/controller/GroupController.java b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/controller/GroupController.java index 666ba5e049e..f6f6a149679 100644 --- a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/controller/GroupController.java +++ b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/controller/GroupController.java @@ -22,7 +22,11 @@ package org.sonar.server.v2.api.group.controller; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.extensions.Extension; +import io.swagger.v3.oas.annotations.extensions.ExtensionProperty; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; +import javax.annotation.Nullable; import org.sonar.server.v2.api.group.request.GroupCreateRestRequest; import org.sonar.server.v2.api.group.request.GroupUpdateRestRequest; import org.sonar.server.v2.api.group.request.GroupsSearchRestRequest; @@ -39,6 +43,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; @@ -57,6 +62,8 @@ public interface GroupController { """) GroupsSearchRestResponse search( @Valid @ParameterObject GroupsSearchRestRequest groupsSearchRestRequest, + @RequestParam(name = "userId!") @Nullable @Schema(description = "Find groups without this user. Only available for system administrators.", + extensions = @Extension(properties = {@ExtensionProperty(name = "internal", value = "true")}), hidden = true) String excludedUserId, @Valid @ParameterObject RestPage restPage); @GetMapping(path = "/{id}") diff --git a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/request/GroupsSearchRestRequest.java b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/request/GroupsSearchRestRequest.java index ab704c8112b..d829f29716b 100644 --- a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/request/GroupsSearchRestRequest.java +++ b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/group/request/GroupsSearchRestRequest.java @@ -19,6 +19,8 @@ */ package org.sonar.server.v2.api.group.request; +import io.swagger.v3.oas.annotations.extensions.Extension; +import io.swagger.v3.oas.annotations.extensions.ExtensionProperty; import io.swagger.v3.oas.annotations.media.Schema; import javax.annotation.Nullable; @@ -30,7 +32,12 @@ public record GroupsSearchRestRequest( @Nullable @Schema(description = "Filter on name.\n" + "This parameter performs a partial match (contains), it is case insensitive.") - String q + String q, + + @Nullable + @Schema(description = "Filter groups containing the user. Only available for system administrators. Using != operator will search for groups without the user.", + extensions = @Extension(properties = {@ExtensionProperty(name = "internal", value = "true")})) + String userId ) { diff --git a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/converter/UsersSearchRestResponseGenerator.java b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/converter/UsersSearchRestResponseGenerator.java index 8cf5bc05bb1..a158f205091 100644 --- a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/converter/UsersSearchRestResponseGenerator.java +++ b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/converter/UsersSearchRestResponseGenerator.java @@ -64,7 +64,7 @@ public class UsersSearchRestResponseGenerator implements UsersSearchResponseGene String login = userDto.getLogin(); String name = userDto.getName(); if (!userSession.isLoggedIn()) { - return new UserRestResponseForAnonymousUsers(id, login, name); + return new UserRestResponseForAnonymousUsers(login, name); } String avatar = userInformation.avatar().orElse(null); @@ -95,7 +95,7 @@ public class UsersSearchRestResponseGenerator implements UsersSearchResponseGene slLastConnectionDate, scmAccounts); } - return new UserRestResponseForLoggedInUsers(id, login, name, email, active, local, externalIdentityProvider, avatar); + return new UserRestResponseForLoggedInUsers(login, name, active, avatar); } private static String toDateTime(@Nullable Long dateTimeMs) { diff --git a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/response/UserRestResponseForAnonymousUsers.java b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/response/UserRestResponseForAnonymousUsers.java index 71c344b814b..c6d787be217 100644 --- a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/response/UserRestResponseForAnonymousUsers.java +++ b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/response/UserRestResponseForAnonymousUsers.java @@ -20,7 +20,6 @@ package org.sonar.server.v2.api.user.response; public record UserRestResponseForAnonymousUsers( - String id, String login, String name diff --git a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/response/UserRestResponseForLoggedInUsers.java b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/response/UserRestResponseForLoggedInUsers.java index 25900316432..4b84fbdd0de 100644 --- a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/response/UserRestResponseForLoggedInUsers.java +++ b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/response/UserRestResponseForLoggedInUsers.java @@ -22,18 +22,11 @@ package org.sonar.server.v2.api.user.response; import javax.annotation.Nullable; public record UserRestResponseForLoggedInUsers( - String id, String login, String name, @Nullable - String email, - @Nullable Boolean active, @Nullable - Boolean local, - @Nullable - String externalProvider, - @Nullable String avatar ) implements UserRestResponse { diff --git a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/common/ErrorMessages.java b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/common/ErrorMessages.java index 08ffe167e3b..f533c95c066 100644 --- a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/common/ErrorMessages.java +++ b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/common/ErrorMessages.java @@ -38,6 +38,7 @@ enum ErrorMessages { UNACCEPTABLE_MEDIA_TYPE("The requested media type is not acceptable."), UNSUPPORTED_MEDIA_TYPE("Unsupported media type."), VALIDATION_ERROR("Validation error. Please check your input."), + TOO_MANY_REQUESTS("Too many requests. Please try again later."), ; private final String message; diff --git a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/common/RestResponseEntityExceptionHandler.java b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/common/RestResponseEntityExceptionHandler.java index 409796fbf05..3e5929f83cd 100644 --- a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/common/RestResponseEntityExceptionHandler.java +++ b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/common/RestResponseEntityExceptionHandler.java @@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory; import org.sonar.server.authentication.event.AuthenticationException; import org.sonar.server.exceptions.BadRequestException; import org.sonar.server.exceptions.ServerException; +import org.sonar.server.exceptions.TooManyRequestsException; import org.sonar.server.v2.api.model.RestError; import org.springframework.core.convert.ConversionFailedException; import org.springframework.http.HttpStatus; @@ -48,6 +49,8 @@ import org.springframework.web.method.annotation.MethodArgumentTypeMismatchExcep import org.springframework.web.multipart.MaxUploadSizeExceededException; import org.springframework.web.servlet.NoHandlerFoundException; +import static org.springframework.http.HttpStatus.TOO_MANY_REQUESTS; + @RestControllerAdvice public class RestResponseEntityExceptionHandler { @@ -130,6 +133,12 @@ public class RestResponseEntityExceptionHandler { return buildResponse(HttpStatus.PAYLOAD_TOO_LARGE, ErrorMessages.SIZE_EXCEEDED); } + @ExceptionHandler(TooManyRequestsException.class) + protected ResponseEntity<RestError> handleTooManyRequestsException(TooManyRequestsException ex) { + final String errorMessage = Optional.ofNullable(ex.getMessage()).orElse(ErrorMessages.TOO_MANY_REQUESTS.getMessage()); + return buildResponse(TOO_MANY_REQUESTS, errorMessage); + } + // endregion client // region security diff --git a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/config/CommonWebConfig.java b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/config/CommonWebConfig.java index 640de88fb8a..dba11c19740 100644 --- a/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/config/CommonWebConfig.java +++ b/server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/config/CommonWebConfig.java @@ -22,7 +22,6 @@ package org.sonar.server.v2.config; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import jakarta.validation.Validation; -import jakarta.validation.ValidatorFactory; import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator; import org.sonar.api.internal.MetadataLoader; import org.sonar.api.utils.System2; @@ -35,6 +34,9 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.http.MediaType; +import org.springframework.validation.Validator; +import org.springframework.validation.beanvalidation.SpringValidatorAdapter; +import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -53,12 +55,26 @@ public class CommonWebConfig implements WebMvcConfigurer { configurer.setUrlPathHelper(urlPathHelper).setUseTrailingSlashMatch(true); } - @Bean - public ValidatorFactory validator() { - return Validation.byDefaultProvider() + @Override + public Validator getValidator() { + // This validator gets returned from the + // WebMvcConfigurationSupport#mvcValidator bean factory method. + // We can create a new one each time here and an instance will be cached + // in the Spring context. + // + // One reason we override the validator is to avoid a dependency + // on an expression language implementation like expressly. + // + // This same validator must also be configured in ControllerTester, + // otherwise unit test behavior will not match production behavior. + // + // The validator errors are formatted in RestResponseEntityExceptionHandler. + var jakartaValidator = Validation.byDefaultProvider() .configure() .messageInterpolator(new ParameterMessageInterpolator()) - .buildValidatorFactory(); + .buildValidatorFactory() + .getValidator(); + return new SpringValidatorAdapter(jakartaValidator); } @Bean @@ -83,4 +99,9 @@ public class CommonWebConfig implements WebMvcConfigurer { public BeanFactoryPostProcessor beanFactoryPostProcessor1(SpringDocConfigProperties springDocConfigProperties) { return beanFactory -> springDocConfigProperties.setDefaultProducesMediaType(MediaType.APPLICATION_JSON_VALUE); } + + @Override + public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { + configurer.defaultContentType(MediaType.APPLICATION_JSON, MediaType.ALL); + } } diff --git a/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/api/group/controller/DefaultGroupControllerTest.java b/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/api/group/controller/DefaultGroupControllerTest.java index c9d7070816d..2b6fec3c337 100644 --- a/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/api/group/controller/DefaultGroupControllerTest.java +++ b/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/api/group/controller/DefaultGroupControllerTest.java @@ -412,6 +412,8 @@ public class DefaultGroupControllerTest { assertThat(requestCaptor.getValue().page()).hasToString(DEFAULT_PAGE_INDEX); assertThat(requestCaptor.getValue().managed()).isNull(); assertThat(requestCaptor.getValue().query()).isNull(); + assertThat(requestCaptor.getValue().userUuid()).isNull(); + assertThat(requestCaptor.getValue().excludedUserUuid()).isNull(); } @Test @@ -422,6 +424,8 @@ public class DefaultGroupControllerTest { mockMvc.perform(get(GROUPS_ENDPOINT) .param("managed", "true") .param("q", "q") + .param("userId", "userId") + .param("userId!", "excludedUserId") .param("pageSize", "100") .param("pageIndex", "2")) .andExpect(status().isOk()); @@ -432,6 +436,8 @@ public class DefaultGroupControllerTest { assertThat(requestCaptor.getValue().page()).isEqualTo(2); assertThat(requestCaptor.getValue().managed()).isTrue(); assertThat(requestCaptor.getValue().query()).isEqualTo("q"); + assertThat(requestCaptor.getValue().userUuid()).isEqualTo("userId"); + assertThat(requestCaptor.getValue().excludedUserUuid()).isEqualTo("excludedUserId"); } @Test diff --git a/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/api/user/converter/UsersSearchRestResponseGeneratorTest.java b/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/api/user/converter/UsersSearchRestResponseGeneratorTest.java index 0780e7435ab..bda36f5e806 100644 --- a/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/api/user/converter/UsersSearchRestResponseGeneratorTest.java +++ b/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/api/user/converter/UsersSearchRestResponseGeneratorTest.java @@ -121,13 +121,9 @@ public class UsersSearchRestResponseGeneratorTest { private static UserRestResponseForLoggedInUsers buildExpectedResponseForUser(UserInformation userInformation) { UserDto userDto = userInformation.userDto(); return new UserRestResponseForLoggedInUsers( - userDto.getUuid(), userDto.getLogin(), userDto.getName(), - userDto.getEmail(), userDto.isActive(), - userDto.isLocal(), - userDto.getExternalIdentityProvider(), userInformation.avatar().orElse(null) ); } @@ -150,7 +146,6 @@ public class UsersSearchRestResponseGeneratorTest { private static UserRestResponseForAnonymousUsers buildExpectedResponseForAnonymous(UserInformation userInformation) { UserDto userDto = userInformation.userDto(); return new UserRestResponseForAnonymousUsers( - userDto.getUuid(), userDto.getLogin(), userDto.getName() ); diff --git a/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/common/RestResponseEntityExceptionHandlerTest.java b/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/common/RestResponseEntityExceptionHandlerTest.java index 7dbe13a3a18..2db9c240baf 100644 --- a/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/common/RestResponseEntityExceptionHandlerTest.java +++ b/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/common/RestResponseEntityExceptionHandlerTest.java @@ -40,6 +40,7 @@ import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.exceptions.ServerException; import org.sonar.server.exceptions.TemplateMatchingKeyException; +import org.sonar.server.exceptions.TooManyRequestsException; import org.sonar.server.exceptions.UnauthorizedException; import org.sonar.server.v2.api.model.RestError; import org.springframework.core.MethodParameter; @@ -325,6 +326,16 @@ class RestResponseEntityExceptionHandlerTest { assertThat(logs.logs(Level.WARN)).contains(ErrorMessages.SIZE_EXCEEDED.getMessage()); } + @Test + void handleTooManyRequestsException_shouldReturnCorrectHttpStatus(){ + var ex = new TooManyRequestsException("Too many requests"); + ResponseEntity<RestError> response = underTest.handleTooManyRequestsException(ex); + + assertThat(response.getStatusCode()).isEqualTo(HttpStatus.TOO_MANY_REQUESTS); + assertThat(response.getBody()).isNotNull(); + assertThat(response.getBody().message()).isEqualTo(ex.getMessage()); + } + @ParameterizedTest @MethodSource("serverExceptionsProvider") void handleServerException_shouldReturnCorrectHttpStatus(ServerException ex, HttpStatus expectedStatus) { diff --git a/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/config/CommonWebConfigTest.java b/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/config/CommonWebConfigTest.java index 9563ddd06fb..82ecaf12297 100644 --- a/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/config/CommonWebConfigTest.java +++ b/server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/config/CommonWebConfigTest.java @@ -26,6 +26,7 @@ import org.mockito.junit.MockitoJUnitRunner; import org.sonar.api.internal.MetadataLoader; import org.sonar.api.utils.System2; import org.sonar.api.utils.Version; +import org.springframework.validation.Validator; import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; import org.springframework.web.util.UrlPathHelper; @@ -65,4 +66,12 @@ public class CommonWebConfigTest { } } + @Test + public void getValidator_shouldReturnNonNull() { + CommonWebConfig commonWebConfig = new CommonWebConfig(); + Validator validator = commonWebConfig.getValidator(); + + assertThat(validator).isNotNull(); + } + } diff --git a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/issue/ws/SearchActionIT.java b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/issue/ws/SearchActionIT.java index c89ca62f3c1..442b8272a26 100644 --- a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/issue/ws/SearchActionIT.java +++ b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/issue/ws/SearchActionIT.java @@ -1863,6 +1863,41 @@ class SearchActionIT { @ParameterizedTest @ValueSource(booleans = {true, false}) + void only_vulnerabilities_are_returned_by_owasp_mobile_2024(boolean mqrMode) { + doReturn(Optional.of(mqrMode)).when(config).getBoolean(MULTI_QUALITY_MODE_ENABLED); + ComponentDto project = db.components().insertPublicProject().getMainBranchComponent(); + ComponentDto file = db.components().insertComponent(newFileDto(project)); + Consumer<RuleDto> ruleConsumer = ruleDefinitionDto -> ruleDefinitionDto + .setSecurityStandards(Sets.newHashSet("cwe:20", "cwe:564", "cwe:89", "cwe:943", "owaspMobileTop10-2024:m3", "owaspTop10-2021:a2")) + .setSystemTags(Sets.newHashSet("bad-practice", "cwe", "owasp-a1", "sans-top25-insecure", "sql")); + Consumer<IssueDto> issueConsumer = issueDto -> issueDto.setTags(Sets.newHashSet("bad-practice", "cwe", "owasp-a1", "sans-top25" + + "-insecure", "sql")); + RuleDto hotspotRule = db.rules().insertHotspotRule(ruleConsumer); + db.issues().insertHotspot(hotspotRule, project, file, issueConsumer); + RuleDto issueRule = db.rules().insertIssueRule(ruleConsumer); + IssueDto issueDto1 = db.issues().insertIssue(issueRule, project, file, issueConsumer, + issueDto -> issueDto.setType(RuleType.VULNERABILITY).replaceAllImpacts(List.of(new ImpactDto(SECURITY, HIGH)))); + IssueDto issueDto2 = db.issues().insertIssue(issueRule, project, file, issueConsumer, + issueDto -> issueDto.setType(RuleType.VULNERABILITY).replaceAllImpacts(List.of(new ImpactDto(SECURITY, HIGH)))); + db.issues().insertIssue(issueRule, project, file, issueConsumer, issueDto -> issueDto.setType(CODE_SMELL)); + indexPermissionsAndIssues(); + + SearchWsResponse result = ws.newRequest() + .setParam("owaspMobileTop10-2024", "m3") + .setParam(FACETS, "owaspMobileTop10-2024") + .executeProtobuf(SearchWsResponse.class); + + assertThat(result.getIssuesList()) + .extracting(Issue::getKey) + .containsExactlyInAnyOrder(issueDto1.getKey(), issueDto2.getKey()); + + assertThat(result.getFacets().getFacets(0).getValuesList()) + .extracting(Common.FacetValue::getVal, Common.FacetValue::getCount) + .containsExactlyInAnyOrder(tuple("m3", 2L)); + } + + @ParameterizedTest + @ValueSource(booleans = {true, false}) void only_vulnerabilities_are_returned_by_stig_R5V3(boolean mqrMode) { doReturn(Optional.of(mqrMode)).when(config).getBoolean(MULTI_QUALITY_MODE_ENABLED); ComponentDto project = db.components().insertPublicProject().getMainBranchComponent(); @@ -2292,7 +2327,7 @@ class SearchActionIT { "createdBefore", "createdInLast", "directories", "facets", "files", "issues", "scopes", "languages", "onComponentOnly", "p", "projects", "ps", "resolutions", "resolved", "rules", "s", "severities", "statuses", "tags", "types", "pciDss-3.2", "pciDss-4" + ".0", - "owaspAsvs-4.0", + "owaspAsvs-4.0", "owaspMobileTop10-2024", "owaspAsvsLevel", "owaspTop10", "owaspTop10-2021", "stig-ASD_V5R3", "casa", "sansTop25", "cwe", "sonarsourceSecurity", "timeZone", "inNewCodePeriod", "codeVariants", "cleanCodeAttributeCategories", "impactSeverities", "impactSoftwareQualities", "issueStatuses", "fixedInPullRequest", diff --git a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/measure/live/LiveMeasureUpdaterWorkflowTest.java b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/measure/live/LiveMeasureUpdaterWorkflowTest.java new file mode 100644 index 00000000000..f261155a9db --- /dev/null +++ b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/measure/live/LiveMeasureUpdaterWorkflowTest.java @@ -0,0 +1,169 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.measure.live; + +import java.util.List; +import java.util.Set; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.sonar.api.config.Configuration; +import org.sonar.api.measures.Metric; +import org.sonar.db.DbClient; +import org.sonar.db.DbSession; +import org.sonar.db.DbTester; +import org.sonar.db.component.BranchDto; +import org.sonar.db.component.ComponentDto; +import org.sonar.server.qualitygate.EvaluatedQualityGate; +import org.sonar.server.qualitygate.QualityGate; +import org.sonar.server.setting.ProjectConfigurationLoader; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.lenient; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import static org.sonar.api.measures.CoreMetrics.ALERT_STATUS_KEY; + +@ExtendWith(MockitoExtension.class) +class LiveMeasureUpdaterWorkflowTest { + + private static final String TEST_KEY = "test_key"; + @RegisterExtension + private final DbTester db = DbTester.create(); + @Mock + private ProjectConfigurationLoader projectConfigurationLoader; + @Mock + private LiveQualityGateComputer liveQualityGateComputer; + @Mock + private Configuration config; + @Mock + private QualityGate qualityGate; + private DbClient dbClient; + private DbSession dbSession; + private ComponentDto project; + private BranchDto branch; + + @BeforeEach + void setUp() { + this.dbClient = db.getDbClient(); + this.dbSession = db.getSession(); + + this.project = db.components().insertPublicProject().getMainBranchComponent(); + this.branch = dbClient.branchDao().selectByUuid(dbSession, project.uuid()).get(); + + var projectDto = dbClient.projectDao().selectByUuid(dbSession, branch.getProjectUuid()).get(); + + lenient().when(projectConfigurationLoader.loadBranchConfiguration(dbSession, branch)).thenReturn(config); + lenient().when(liveQualityGateComputer.loadQualityGate(dbSession, projectDto, branch)).thenReturn(qualityGate); + } + + private LiveMeasureUpdaterWorkflow underTest() { + return LiveMeasureUpdaterWorkflow.build( + dbClient, + dbSession, + project, + projectConfigurationLoader, + liveQualityGateComputer); + } + + @Test + void build_whenNoBranch_thenFails() { + var component = new ComponentDto().setUuid("whatever"); + + assertThatThrownBy(() -> LiveMeasureUpdaterWorkflow.build( + dbClient, + dbSession, + component, + projectConfigurationLoader, + liveQualityGateComputer)).isInstanceOf(IllegalStateException.class); + } + + @Test + void build_whenBranchAndProject_thenLoadsAllData() { + var result = underTest(); + + assertThat(result.getBranchDto()).isEqualTo(this.branch); + assertThat(result.getConfig()).isEqualTo(config); + } + + @Test + void updateQualityGateMeasures() { + var metric = db.measures().insertMetric(m -> m.setKey(TEST_KEY)); + var measure = db.measures().insertMeasure(project, m -> m.getMetricValues().put(TEST_KEY, 1)); + var expectedResult = mock(EvaluatedQualityGate.class); + + when(liveQualityGateComputer.refreshGateStatus(eq(project), eq(qualityGate), any(MeasureMatrix.class), eq(config))).thenReturn(expectedResult); + + var measureMatrix = new MeasureMatrix( + List.of(project), + List.of(metric), + List.of(measure)); + + measureMatrix.setValue(project, TEST_KEY, 2); + + assertThat(underTest().updateQualityGateMeasures(measureMatrix)).isEqualTo(expectedResult); + + var updatedMeasures = dbClient.measureDao().selectByComponentUuid(dbSession, project.uuid()); + + assertThat(updatedMeasures.get().getLong(TEST_KEY)).isEqualTo(2); + } + + @Test + void getKeysOfAllInvolvedMetrics() { + var metric = mock(Metric.class); + when(metric.getKey()).thenReturn(TEST_KEY); + + var formulaFactory = mock(MeasureUpdateFormulaFactory.class); + when(formulaFactory.getFormulaMetrics()).thenReturn(Set.of(metric)); + when(liveQualityGateComputer.getMetricsRelatedTo(qualityGate)).thenReturn(Set.of("other")); + + var result = underTest().getKeysOfAllInvolvedMetrics(formulaFactory); + + assertThat(result).containsExactlyInAnyOrder("other", TEST_KEY); + } + + @Test + void buildMeasureMatrix() { + db.measures().insertMetric(m -> m.setKey(TEST_KEY)); + db.measures().insertMeasure(project, m -> m.getMetricValues().put(TEST_KEY, 1.0)); + + var result = underTest().buildMeasureMatrix( + List.of(TEST_KEY), + Set.of(branch.getUuid())); + + assertThat(result.getMeasure(project, TEST_KEY).get().getValue()).isEqualTo(1.0); + } + + @Test + void loadPreviousStatus() { + db.measures().insertMetric(m -> m.setKey(ALERT_STATUS_KEY)); + db.measures().insertMeasure(project, m -> m.getMetricValues().put(ALERT_STATUS_KEY, Metric.Level.OK)); + + var result = underTest().loadPreviousStatus(); + + assertThat(result).isEqualTo(Metric.Level.OK); + } +} diff --git a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/setting/ws/SetActionIT.java b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/setting/ws/SetActionIT.java index cd482f865e3..78c9141725f 100644 --- a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/setting/ws/SetActionIT.java +++ b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/setting/ws/SetActionIT.java @@ -20,18 +20,16 @@ package org.sonar.server.setting.ws; import com.google.gson.Gson; -import com.tngtech.java.junit.dataprovider.DataProvider; -import com.tngtech.java.junit.dataprovider.DataProviderRunner; -import com.tngtech.java.junit.dataprovider.UseDataProvider; import java.net.HttpURLConnection; import java.util.List; import java.util.Map; import java.util.concurrent.ThreadLocalRandom; import javax.annotation.Nullable; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import org.sonar.api.PropertyType; import org.sonar.api.config.PropertyDefinition; import org.sonar.api.config.PropertyDefinition.ConfigScope; @@ -40,7 +38,6 @@ import org.sonar.api.config.PropertyFieldDefinition; import org.sonar.api.server.ws.WebService; import org.sonar.api.server.ws.WebService.Param; import org.sonar.api.utils.System2; -import org.sonar.db.permission.ProjectPermission; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.DbTester; @@ -48,6 +45,7 @@ import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentQualifiers; import org.sonar.db.component.ComponentTesting; import org.sonar.db.component.ProjectData; +import org.sonar.db.permission.ProjectPermission; import org.sonar.db.portfolio.PortfolioDto; import org.sonar.db.project.ProjectDto; import org.sonar.db.property.PropertyDbTester; @@ -78,15 +76,89 @@ import static org.sonar.db.property.PropertyTesting.newComponentPropertyDto; import static org.sonar.db.property.PropertyTesting.newGlobalPropertyDto; import static org.sonar.db.user.UserTesting.newUserDto; -@RunWith(DataProviderRunner.class) -public class SetActionIT { +class SetActionIT { private static final Gson GSON = GsonHelper.create(); - @Rule - public UserSessionRule userSession = UserSessionRule.standalone().logIn(); - @Rule - public DbTester db = DbTester.create(System2.INSTANCE); + private static final String SECURITY_CUSTOM_CONFIG_INCORRECT_TYPE = """ + { + "S3649": { + "sources": [ + { + "methodId": "My\\\\Namespace\\\\ClassName\\\\ServerRequest::getQuery" + } + ], + "sinks": [ + { + "methodId": 12345, + "args": [1] + } + ] + } + }"""; + + private static final String SECURITY_CUSTOM_CONFIG_NO_ARGS = """ + { + "S3649": { + "sources": [ + { + "methodId": "My\\\\Namespace\\\\ClassName\\\\ServerRequest::getQuery" + } + ], + "sanitizers": [ + { + "methodId": "SomeSanitizer" + } + ] + } + }"""; + + private static final String SECURITY_CUSTOM_CONFIG_EMPTY_ARGS_ARRAY = """ + { + "S3649": { + "sources": [ + { + "methodId": "My\\\\Namespace\\\\ClassName\\\\ServerRequest::getQuery" + } + ], + "validators": [ + { + "methodId": "SomeValidator", + "args": [] + } + ] + } + }"""; + + private static final String SECURITY_CUSTOM_CONFIG_UNKNOWN_ATTRIBUTE = """ + { + "S3649": { + "sources": [ + { + "methodId": "My\\\\Namespace\\\\ClassName\\\\ServerRequest::getQuery" + } + ], + "unknown": [ + { + "methodId": 12345, + "args": [1] + } + ] + } + }"""; + private static final String SONAR_SECURITY_CONFIG_JAVA_SECURITY = "sonar.security.config.javasecurity"; + private static final String SONAR_SECURITY_CONFIG_PHP_SECURITY = "sonar.security.config.phpsecurity"; + private static final String SONAR_SECURITY_CONFIG_PYTHON_SECURITY = "sonar.security.config.pythonsecurity"; + private static final String SONAR_SECURITY_CONFIG_ROSLYN_SECURITY_CS = "sonar.security.config.roslyn.sonaranalyzer.security.cs"; + private static final String ERROR_INCORRECT_TYPE = "Provided JSON is invalid : [expected type: string, actual: integer at mem://input#/S3649/sinks/0/methodId (Line 10, character 21)]"; + private static final String ERROR_NO_ARGS = "Provided JSON is invalid : [required properties are missing: args at mem://input#/S3649/sanitizers/0 (Line 9, character 8)]"; + private static final String ERROR_EMPTY_ARGS_ARRAY = "Provided JSON is invalid : [expected minimum items: 1, found only 0 at mem://input#/S3649/validators/0/args (Line 11, character 18)]"; + private static final String ERROR_UNKNOWN_ATTRIBUTE = "Provided JSON is invalid : [false schema always fails at mem://input#/S3649/unknown (Line 8, character 16)]"; + + @RegisterExtension + private final UserSessionRule userSession = UserSessionRule.standalone().logIn(); + @RegisterExtension + private final DbTester db = DbTester.create(System2.INSTANCE); private final PropertyDbTester propertyDb = new PropertyDbTester(db); private final DbClient dbClient = db.getDbClient(); @@ -100,24 +172,47 @@ public class SetActionIT { private final WsActionTester ws = new WsActionTester(underTest); - @Before - public void setUp() { + @BeforeEach + void setUp() { // by default test doesn't care about permissions userSession.logIn().setSystemAdministrator(); } + + static Object[][] securityJsonProperties() { + return new Object[][] { + {SONAR_SECURITY_CONFIG_JAVA_SECURITY}, + {SONAR_SECURITY_CONFIG_PHP_SECURITY}, + {SONAR_SECURITY_CONFIG_PYTHON_SECURITY}, + {SONAR_SECURITY_CONFIG_ROSLYN_SECURITY_CS} + }; + } - @DataProvider - public static Object[][] securityJsonProperties() { + static Object[][] securityJsonPropertiesForInvalidJsonTest() { return new Object[][] { - {"sonar.security.config.javasecurity"}, - {"sonar.security.config.phpsecurity"}, - {"sonar.security.config.pythonsecurity"}, - {"sonar.security.config.roslyn.sonaranalyzer.security.cs"} + {SONAR_SECURITY_CONFIG_JAVA_SECURITY, SECURITY_CUSTOM_CONFIG_INCORRECT_TYPE, ERROR_INCORRECT_TYPE}, + {SONAR_SECURITY_CONFIG_JAVA_SECURITY, SECURITY_CUSTOM_CONFIG_NO_ARGS, ERROR_NO_ARGS}, + {SONAR_SECURITY_CONFIG_JAVA_SECURITY, SECURITY_CUSTOM_CONFIG_EMPTY_ARGS_ARRAY, ERROR_EMPTY_ARGS_ARRAY}, + {SONAR_SECURITY_CONFIG_JAVA_SECURITY, SECURITY_CUSTOM_CONFIG_UNKNOWN_ATTRIBUTE, ERROR_UNKNOWN_ATTRIBUTE}, + + {SONAR_SECURITY_CONFIG_PHP_SECURITY, SECURITY_CUSTOM_CONFIG_INCORRECT_TYPE, ERROR_INCORRECT_TYPE}, + {SONAR_SECURITY_CONFIG_PHP_SECURITY, SECURITY_CUSTOM_CONFIG_NO_ARGS, ERROR_NO_ARGS}, + {SONAR_SECURITY_CONFIG_PHP_SECURITY, SECURITY_CUSTOM_CONFIG_EMPTY_ARGS_ARRAY, ERROR_EMPTY_ARGS_ARRAY}, + {SONAR_SECURITY_CONFIG_PHP_SECURITY, SECURITY_CUSTOM_CONFIG_UNKNOWN_ATTRIBUTE, ERROR_UNKNOWN_ATTRIBUTE}, + + {SONAR_SECURITY_CONFIG_PYTHON_SECURITY, SECURITY_CUSTOM_CONFIG_INCORRECT_TYPE, ERROR_INCORRECT_TYPE}, + {SONAR_SECURITY_CONFIG_PYTHON_SECURITY, SECURITY_CUSTOM_CONFIG_NO_ARGS, ERROR_NO_ARGS}, + {SONAR_SECURITY_CONFIG_PYTHON_SECURITY, SECURITY_CUSTOM_CONFIG_EMPTY_ARGS_ARRAY, ERROR_EMPTY_ARGS_ARRAY}, + {SONAR_SECURITY_CONFIG_PYTHON_SECURITY, SECURITY_CUSTOM_CONFIG_UNKNOWN_ATTRIBUTE, ERROR_UNKNOWN_ATTRIBUTE}, + + {SONAR_SECURITY_CONFIG_ROSLYN_SECURITY_CS, SECURITY_CUSTOM_CONFIG_INCORRECT_TYPE, ERROR_INCORRECT_TYPE}, + {SONAR_SECURITY_CONFIG_ROSLYN_SECURITY_CS, SECURITY_CUSTOM_CONFIG_NO_ARGS, ERROR_NO_ARGS}, + {SONAR_SECURITY_CONFIG_ROSLYN_SECURITY_CS, SECURITY_CUSTOM_CONFIG_EMPTY_ARGS_ARRAY, ERROR_EMPTY_ARGS_ARRAY}, + {SONAR_SECURITY_CONFIG_ROSLYN_SECURITY_CS, SECURITY_CUSTOM_CONFIG_UNKNOWN_ATTRIBUTE, ERROR_UNKNOWN_ATTRIBUTE} }; } @Test - public void empty_204_response() { + void empty_204_response() { TestResponse result = ws.newRequest() .setParam("key", "my.key") .setParam("value", "my value") @@ -128,7 +223,7 @@ public class SetActionIT { } @Test - public void persist_new_global_setting() { + void persist_new_global_setting() { callForGlobalSetting("my.key", "my,value"); assertGlobalSetting("my.key", "my,value"); @@ -136,7 +231,7 @@ public class SetActionIT { } @Test - public void update_existing_global_setting() { + void update_existing_global_setting() { propertyDb.insertProperty(newGlobalPropertyDto("my.key", "my value"), null, null, null, null); assertGlobalSetting("my.key", "my value"); @@ -147,7 +242,7 @@ public class SetActionIT { } @Test - public void persist_new_project_setting() { + void persist_new_project_setting() { propertyDb.insertProperty(newGlobalPropertyDto("my.key", "my global value"), null, null, null, null); ProjectDto project = db.components().insertPrivateProject().getProjectDto(); logInAsProjectAdministrator(project); @@ -160,7 +255,7 @@ public class SetActionIT { } @Test - public void persist_new_subportfolio_setting() { + void persist_new_subportfolio_setting() { propertyDb.insertProperty(newGlobalPropertyDto("my.key", "my global value"), null, null, null, null); ComponentDto portfolio = db.components().insertPrivatePortfolio(); ComponentDto subportfolio = db.components().insertSubportfolio(portfolio); @@ -174,7 +269,7 @@ public class SetActionIT { } @Test - public void persist_project_property_with_project_admin_permission() { + void persist_project_property_with_project_admin_permission() { ProjectDto project = db.components().insertPrivateProject().getProjectDto(); logInAsProjectAdministrator(project); @@ -184,7 +279,7 @@ public class SetActionIT { } @Test - public void update_existing_project_setting() { + void update_existing_project_setting() { propertyDb.insertProperty(newGlobalPropertyDto("my.key", "my global value"), null, null, null, null); ProjectDto project = db.components().insertPrivateProject().getProjectDto(); @@ -199,7 +294,7 @@ public class SetActionIT { } @Test - public void persist_several_multi_value_setting() { + void persist_several_multi_value_setting() { callForMultiValueGlobalSetting("my.key", List.of("first,Value", "second,Value", "third,Value")); String expectedValue = "first%2CValue,second%2CValue,third%2CValue"; @@ -208,14 +303,14 @@ public class SetActionIT { } @Test - public void persist_one_multi_value_setting() { + void persist_one_multi_value_setting() { callForMultiValueGlobalSetting("my.key", List.of("first,Value")); assertGlobalSetting("my.key", "first%2CValue"); } @Test - public void persist_property_set_setting() { + void persist_property_set_setting() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -252,7 +347,7 @@ public class SetActionIT { } @Test - public void update_property_set_setting() { + void update_property_set_setting() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -299,7 +394,7 @@ public class SetActionIT { } @Test - public void update_property_set_on_component_setting() { + void update_property_set_on_component_setting() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -350,7 +445,7 @@ public class SetActionIT { } @Test - public void persist_multi_value_with_type_logIn() { + void persist_multi_value_with_type_logIn() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -370,7 +465,7 @@ public class SetActionIT { } @Test - public void user_setting_is_not_updated() { + void user_setting_is_not_updated() { propertyDb.insertProperty(newGlobalPropertyDto("my.key", "my user value").setUserUuid("42"), null, null, null, "user_login"); propertyDb.insertProperty(newGlobalPropertyDto("my.key", "my global value"), null, null, null, null); @@ -382,7 +477,7 @@ public class SetActionIT { } @Test - public void persist_global_property_with_deprecated_key() { + void persist_global_property_with_deprecated_key() { definitions.addComponent(PropertyDefinition .builder("my.key") .deprecatedKey("my.old.key") @@ -400,7 +495,7 @@ public class SetActionIT { } @Test - public void persist_JSON_property() { + void persist_JSON_property() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -416,7 +511,7 @@ public class SetActionIT { } @Test - public void fail_if_JSON_invalid_for_JSON_property() { + void fail_if_JSON_invalid_for_JSON_property() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -439,10 +534,10 @@ public class SetActionIT { .hasMessage("Provided JSON is invalid"); } - @Test - @UseDataProvider("securityJsonProperties") - public void successfully_validate_json_schema(String securityPropertyKey) { - String security_custom_config = """ + @ParameterizedTest + @MethodSource("securityJsonProperties") + void successfully_validate_json_schema(String securityPropertyKey) { + String securityCustomConfig = """ { "S3649": { "sources": [ @@ -481,128 +576,14 @@ public class SetActionIT { .type(PropertyType.JSON) .build()); - callForGlobalSetting(securityPropertyKey, security_custom_config); - - assertGlobalSetting(securityPropertyKey, security_custom_config); - } - - @Test - @UseDataProvider("securityJsonProperties") - public void fail_json_schema_validation_when_property_has_incorrect_type(String securityPropertyKey) { - String security_custom_config = """ - { - "S3649": { - "sources": [ - { - "methodId": "My\\\\Namespace\\\\ClassName\\\\ServerRequest::getQuery" - } - ], - "sinks": [ - { - "methodId": 12345, - "args": [1] - } - ] - } - }"""; - definitions.addComponent(PropertyDefinition - .builder(securityPropertyKey) - .name("foo") - .description("desc") - .category("cat") - .subCategory("subCat") - .type(PropertyType.JSON) - .build()); - - assertThatThrownBy(() -> callForGlobalSetting(securityPropertyKey, security_custom_config)) - .isInstanceOf(IllegalArgumentException.class) - .hasMessageContaining("expected type: string, actual: integer at line 10, character 21, pointer: #/S3649/sinks/0/methodId"); - } - - @Test - @UseDataProvider("securityJsonProperties") - public void fail_json_schema_validation_when_sanitizers_have_no_args(String securityPropertyKey) { - String security_custom_config = """ - { - "S3649": { - "sources": [ - { - "methodId": "My\\\\Namespace\\\\ClassName\\\\ServerRequest::getQuery" - } - ], - "sanitizers": [ - { - "methodId": "SomeSanitizer" - } - ] - } - }"""; - definitions.addComponent(PropertyDefinition - .builder(securityPropertyKey) - .name("foo") - .description("desc") - .category("cat") - .subCategory("subCat") - .type(PropertyType.JSON) - .build()); - - assertThatThrownBy(() -> callForGlobalSetting(securityPropertyKey, security_custom_config)) - .isInstanceOf(IllegalArgumentException.class) - .hasMessageContaining("required properties are missing: args at line 9, character 8, pointer: #/S3649/sanitizers/0"); - } - - @Test - @UseDataProvider("securityJsonProperties") - public void fail_json_schema_validation_when_validators_have_empty_args_array(String securityPropertyKey) { - String security_custom_config = """ - { - "S3649": { - "sources": [ - { - "methodId": "My\\\\Namespace\\\\ClassName\\\\ServerRequest::getQuery" - } - ], - "validators": [ - { - "methodId": "SomeValidator", - "args": [] - } - ] - } - }"""; - definitions.addComponent(PropertyDefinition - .builder(securityPropertyKey) - .name("foo") - .description("desc") - .category("cat") - .subCategory("subCat") - .type(PropertyType.JSON) - .build()); + callForGlobalSetting(securityPropertyKey, securityCustomConfig); - assertThatThrownBy(() -> callForGlobalSetting(securityPropertyKey, security_custom_config)) - .isInstanceOf(IllegalArgumentException.class) - .hasMessageContaining("expected minimum items: 1, found only 0 at line 11, character 18, pointer: #/S3649/validators/0/args"); + assertGlobalSetting(securityPropertyKey, securityCustomConfig); } - @Test - @UseDataProvider("securityJsonProperties") - public void fail_json_schema_validation_when_property_has_unknown_attribute(String securityPropertyKey) { - String security_custom_config = """ - { - "S3649": { - "sources": [ - { - "methodId": "My\\\\Namespace\\\\ClassName\\\\ServerRequest::getQuery" - } - ], - "unknown": [ - { - "methodId": 12345, - "args": [1] - } - ] - } - }"""; + @ParameterizedTest + @MethodSource("securityJsonPropertiesForInvalidJsonTest") + void fail_json_schema_validation_when_property_has_incorrect_type(String securityPropertyKey, String customConfig, String expectedErrorMessage) { definitions.addComponent(PropertyDefinition .builder(securityPropertyKey) .name("foo") @@ -612,13 +593,13 @@ public class SetActionIT { .type(PropertyType.JSON) .build()); - assertThatThrownBy(() -> callForGlobalSetting(securityPropertyKey, security_custom_config)) + assertThatThrownBy(() -> callForGlobalSetting(securityPropertyKey, customConfig)) .isInstanceOf(IllegalArgumentException.class) - .hasMessageContaining("false schema always fails at line 8, character 16, pointer: #/S3649/unknown"); + .hasMessageContaining(expectedErrorMessage); } @Test - public void persist_global_setting_with_non_ascii_characters() { + void persist_global_setting_with_non_ascii_characters() { callForGlobalSetting("my.key", "fi±∞…"); assertGlobalSetting("my.key", "fi±∞…"); @@ -626,34 +607,34 @@ public class SetActionIT { } @Test - public void fail_when_no_key() { + void fail_when_no_key() { assertThatThrownBy(() -> callForGlobalSetting(null, "my value")) .isInstanceOf(IllegalArgumentException.class); } @Test - public void fail_when_empty_key_value() { + void fail_when_empty_key_value() { assertThatThrownBy(() -> callForGlobalSetting(" ", "my value")) .isInstanceOf(IllegalArgumentException.class) .hasMessage("The 'key' parameter is missing"); } @Test - public void fail_when_no_value() { + void fail_when_no_value() { assertThatThrownBy(() -> callForGlobalSetting("my.key", null)) .isInstanceOf(BadRequestException.class) .hasMessage("Either 'value', 'values' or 'fieldValues' must be provided"); } @Test - public void fail_when_empty_value() { + void fail_when_empty_value() { assertThatThrownBy(() -> callForGlobalSetting("my.key", "")) .isInstanceOf(BadRequestException.class) .hasMessage("A non empty value must be provided"); } @Test - public void fail_when_one_empty_value_on_multi_value() { + void fail_when_one_empty_value_on_multi_value() { List<String> values = List.of("oneValue", " ", "anotherValue"); assertThatThrownBy(() -> callForMultiValueGlobalSetting("my.key", values)) .isInstanceOf(BadRequestException.class) @@ -661,7 +642,7 @@ public class SetActionIT { } @Test - public void throw_ForbiddenException_if_not_system_administrator() { + void throw_ForbiddenException_if_not_system_administrator() { userSession.logIn().setNonSystemAdministrator(); assertThatThrownBy(() -> callForGlobalSetting("my.key", "my value")) @@ -670,7 +651,7 @@ public class SetActionIT { } @Test - public void fail_when_data_and_type_do_not_match() { + void fail_when_data_and_type_do_not_match() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -688,7 +669,7 @@ public class SetActionIT { } @Test - public void fail_when_data_and_login_type_with_invalid_logIn() { + void fail_when_data_and_login_type_with_invalid_logIn() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -709,7 +690,7 @@ public class SetActionIT { } @Test - public void fail_when_data_and_type_do_not_match_with_unknown_error_key() { + void fail_when_data_and_type_do_not_match_with_unknown_error_key() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -727,7 +708,7 @@ public class SetActionIT { } @Test - public void fail_when_global_with_property_only_on_projects() { + void fail_when_global_with_property_only_on_projects() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -745,7 +726,7 @@ public class SetActionIT { } @Test - public void fail_when_view_property_when_on_projects_only() { + void fail_when_view_property_when_on_projects_only() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -768,7 +749,7 @@ public class SetActionIT { } @Test - public void fail_when_property_with_definition_when_component_qualifier_does_not_match() { + void fail_when_property_with_definition_when_component_qualifier_does_not_match() { PortfolioDto portfolio = db.components().insertPrivatePortfolioDto(); definitions.addComponent(PropertyDefinition .builder("my.key") @@ -789,40 +770,40 @@ public class SetActionIT { } @Test - public void succeed_for_property_without_definition_when_set_on_project_component() { + void succeed_for_property_without_definition_when_set_on_project_component() { ProjectDto project = randomPublicOrPrivateProject().getProjectDto(); succeedForPropertyWithoutDefinitionAndValidComponent(project); } @Test - public void fail_for_property_without_definition_when_set_on_directory_component() { + void fail_for_property_without_definition_when_set_on_directory_component() { ProjectData projectData = randomPublicOrPrivateProject(); ComponentDto directory = db.components().insertComponent(ComponentTesting.newDirectory(projectData.getMainBranchComponent(), "A/B")); failForPropertyWithoutDefinitionOnUnsupportedComponent(projectData.getProjectDto(), directory); } @Test - public void fail_for_property_without_definition_when_set_on_file_component() { + void fail_for_property_without_definition_when_set_on_file_component() { ProjectData projectData = randomPublicOrPrivateProject(); ComponentDto file = db.components().insertComponent(ComponentTesting.newFileDto(projectData.getMainBranchComponent())); failForPropertyWithoutDefinitionOnUnsupportedComponent(projectData.getProjectDto(), file); } @Test - public void succeed_for_property_without_definition_when_set_on_view_component() { + void succeed_for_property_without_definition_when_set_on_view_component() { PortfolioDto view = db.components().insertPrivatePortfolioDto(); succeedForPropertyWithoutDefinitionAndValidComponent(view); } @Test - public void succeed_for_property_without_definition_when_set_on_subview_component() { + void succeed_for_property_without_definition_when_set_on_subview_component() { ComponentDto view = db.components().insertPrivatePortfolio(); ComponentDto subview = db.components().insertComponent(ComponentTesting.newSubPortfolio(view)); failForPropertyWithoutDefinitionOnUnsupportedComponent(db.components().getPortfolioDto(view), subview); } @Test - public void fail_for_property_without_definition_when_set_on_projectCopy_component() { + void fail_for_property_without_definition_when_set_on_projectCopy_component() { ComponentDto view = db.components().insertPrivatePortfolio(); ComponentDto projectCopy = db.components().insertComponent(ComponentTesting.newProjectCopy("a", db.components().insertPrivateProject().getMainBranchComponent(), view)); @@ -864,7 +845,7 @@ public class SetActionIT { } @Test - public void fail_when_single_and_multi_value_provided() { + void fail_when_single_and_multi_value_provided() { List<String> value = List.of("Another Value"); assertThatThrownBy(() -> call("my.key", "My Value", value, null, null)) .isInstanceOf(BadRequestException.class) @@ -872,7 +853,7 @@ public class SetActionIT { } @Test - public void fail_when_multi_definition_and_single_value_provided() { + void fail_when_multi_definition_and_single_value_provided() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -888,7 +869,7 @@ public class SetActionIT { } @Test - public void fail_when_single_definition_and_multi_value_provided() { + void fail_when_single_definition_and_multi_value_provided() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -904,7 +885,7 @@ public class SetActionIT { } @Test - public void fail_when_empty_values_on_one_property_set() { + void fail_when_empty_values_on_one_property_set() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -933,7 +914,7 @@ public class SetActionIT { } @Test - public void do_not_fail_when_only_one_empty_value_on_one_property_set() { + void do_not_fail_when_only_one_empty_value_on_one_property_set() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -962,14 +943,14 @@ public class SetActionIT { } @Test - public void fail_when_property_set_setting_is_not_defined() { + void fail_when_property_set_setting_is_not_defined() { assertThatThrownBy(() -> callForGlobalPropertySet("my.key", singletonList("{\"field\":\"value\"}"))) .isInstanceOf(BadRequestException.class) .hasMessage("Setting 'my.key' is undefined"); } @Test - public void fail_when_property_set_with_unknown_field() { + void fail_when_property_set_with_unknown_field() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -992,7 +973,7 @@ public class SetActionIT { } @Test - public void fail_when_property_set_has_field_with_incorrect_type() { + void fail_when_property_set_has_field_with_incorrect_type() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -1015,7 +996,7 @@ public class SetActionIT { } @Test - public void fail_when_property_set_has_a_null_field_value() { + void fail_when_property_set_has_a_null_field_value() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -1038,7 +1019,7 @@ public class SetActionIT { } @Test - public void fail_when_property_set_with_invalid_json() { + void fail_when_property_set_with_invalid_json() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -1062,7 +1043,7 @@ public class SetActionIT { } @Test - public void fail_when_property_set_with_json_of_the_wrong_format() { + void fail_when_property_set_with_json_of_the_wrong_format() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -1086,7 +1067,7 @@ public class SetActionIT { } @Test - public void fail_when_property_set_on_component_of_global_setting() { + void fail_when_property_set_on_component_of_global_setting() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -1108,7 +1089,7 @@ public class SetActionIT { } @Test - public void fail_when_component_not_found() { + void fail_when_component_not_found() { TestRequest testRequest = ws.newRequest() .setParam("key", "foo") .setParam("value", "2") @@ -1119,7 +1100,7 @@ public class SetActionIT { } @Test - public void fail_when_setting_key_is_defined_in_sonar_properties() { + void fail_when_setting_key_is_defined_in_sonar_properties() { ProjectDto project = db.components().insertPrivateProject().getProjectDto(); logInAsProjectAdministrator(project); String settingKey = ProcessProperties.Property.JDBC_URL.getKey(); @@ -1133,8 +1114,7 @@ public class SetActionIT { .hasMessage(format("Setting '%s' can only be used in sonar.properties", settingKey)); } - @DataProvider - public static Object[][] forbiddenProperties() { + static Object[][] forbiddenProperties() { return new Object[][] { {GITLAB_AUTH_URL}, {GITHUB_API_URL}, @@ -1143,9 +1123,9 @@ public class SetActionIT { }; } - @Test - @UseDataProvider("forbiddenProperties") - public void fail_when_setting_key_is_forbidden(String property) { + @ParameterizedTest + @MethodSource("forbiddenProperties") + void fail_when_setting_key_is_forbidden(String property) { TestRequest testRequest = ws.newRequest() .setParam("key", property) .setParam("value", "value"); @@ -1155,7 +1135,7 @@ public class SetActionIT { } @Test - public void fail_when_setting_key_is_forbidden() { + void fail_when_setting_key_is_forbidden() { TestRequest testRequest = ws.newRequest() .setParam("key", "sonar.auth.gitlab.url") .setParam("value", "http://malicious.url"); @@ -1165,7 +1145,7 @@ public class SetActionIT { } @Test - public void definition() { + void definition() { WebService.Action definition = ws.getDef(); assertThat(definition.key()).isEqualTo("set"); @@ -1177,7 +1157,7 @@ public class SetActionIT { } @Test - public void call_whenEmailPropertyValid_shouldSucceed() { + void call_whenEmailPropertyValid_shouldSucceed() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") @@ -1190,7 +1170,7 @@ public class SetActionIT { } @Test - public void call_whenEmailPropertyInvalid_shouldFail() { + void call_whenEmailPropertyInvalid_shouldFail() { definitions.addComponent(PropertyDefinition .builder("my.key") .name("foo") diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/BulkChangeAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/BulkChangeAction.java index c81bb3c4908..d86d4653534 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/BulkChangeAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/BulkChangeAction.java @@ -103,10 +103,8 @@ import static org.sonar.server.issue.workflow.codequalityissue.CodeQualityIssueW import static org.sonar.server.issue.workflow.codequalityissue.CodeQualityIssueWorkflowTransition.RESOLVE; import static org.sonar.server.issue.workflow.codequalityissue.CodeQualityIssueWorkflowTransition.UNCONFIRM; import static org.sonar.server.issue.workflow.codequalityissue.CodeQualityIssueWorkflowTransition.WONT_FIX; -import static org.sonar.server.issue.workflow.securityhotspot.SecurityHotspotWorkflowTransition.OPEN_AS_VULNERABILITY; import static org.sonar.server.issue.workflow.securityhotspot.SecurityHotspotWorkflowTransition.RESET_AS_TO_REVIEW; import static org.sonar.server.issue.workflow.securityhotspot.SecurityHotspotWorkflowTransition.RESOLVE_AS_REVIEWED; -import static org.sonar.server.issue.workflow.securityhotspot.SecurityHotspotWorkflowTransition.SET_AS_IN_REVIEW; import static org.sonar.server.ws.WsUtils.writeProtobuf; import static org.sonarqube.ws.client.issue.IssuesWsParameters.ACTION_BULK_CHANGE; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_ADD_TAGS; @@ -162,7 +160,7 @@ public class BulkChangeAction implements IssuesWsAction { new Change("10.4", "Transition '%s' is now supported.".formatted(ACCEPT)), new Change("10.2", format("Parameters '%s' and '%s' are now deprecated.", PARAM_SET_SEVERITY, PARAM_SET_TYPE)), new Change("8.2", "Security hotspots are no longer supported and will be ignored."), - new Change("8.2", format("Transitions '%s', '%s' and '%s' are no more supported", SET_AS_IN_REVIEW, RESOLVE_AS_REVIEWED, OPEN_AS_VULNERABILITY)), + new Change("8.2", format("Transitions '%s', '%s' and '%s' are no more supported", "setinreview", RESOLVE_AS_REVIEWED, "openasvulnerability")), new Change("6.3", "'actions' parameter is ignored")) .setHandler(this) .setResponseExample(getClass().getResource("bulk_change-example.json")) @@ -194,7 +192,6 @@ public class BulkChangeAction implements IssuesWsAction { RESOLVE.getKey(), FALSE_POSITIVE.getKey(), WONT_FIX.getKey(), - SET_AS_IN_REVIEW.getKey(), RESOLVE_AS_REVIEWED.getKey(), RESET_AS_TO_REVIEW.getKey(), ACCEPT.getKey())); diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/DoTransitionAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/DoTransitionAction.java index db6e3d28029..12dfc14d9ec 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/DoTransitionAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/DoTransitionAction.java @@ -51,10 +51,8 @@ import static org.sonar.server.issue.workflow.codequalityissue.CodeQualityIssueW import static org.sonar.server.issue.workflow.codequalityissue.CodeQualityIssueWorkflowTransition.RESOLVE; import static org.sonar.server.issue.workflow.codequalityissue.CodeQualityIssueWorkflowTransition.UNCONFIRM; import static org.sonar.server.issue.workflow.codequalityissue.CodeQualityIssueWorkflowTransition.WONT_FIX; -import static org.sonar.server.issue.workflow.securityhotspot.SecurityHotspotWorkflowTransition.OPEN_AS_VULNERABILITY; import static org.sonar.server.issue.workflow.securityhotspot.SecurityHotspotWorkflowTransition.RESET_AS_TO_REVIEW; import static org.sonar.server.issue.workflow.securityhotspot.SecurityHotspotWorkflowTransition.RESOLVE_AS_REVIEWED; -import static org.sonar.server.issue.workflow.securityhotspot.SecurityHotspotWorkflowTransition.SET_AS_IN_REVIEW; import static org.sonarqube.ws.client.issue.IssuesWsParameters.ACTION_DO_TRANSITION; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_ISSUE; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_TRANSITION; @@ -104,8 +102,8 @@ public class DoTransitionAction implements IssuesWsAction { new Change("10.2", "Add 'impacts', 'cleanCodeAttribute', 'cleanCodeAttributeCategory' fields to the response"), new Change("9.6", "Response field 'ruleDescriptionContextKey' added"), new Change("8.8", "The response field components.uuid is removed"), - new Change("8.1", format("transitions '%s' and '%s' are no more supported", SET_AS_IN_REVIEW, OPEN_AS_VULNERABILITY)), - new Change("7.8", format("added '%s', %s, %s and %s transitions for security hotspots ", SET_AS_IN_REVIEW, RESOLVE_AS_REVIEWED, OPEN_AS_VULNERABILITY, RESET_AS_TO_REVIEW)), + new Change("8.1", format("transitions '%s' and '%s' are no more supported", "setinreview", "openasvulnerability")), + new Change("7.8", format("added '%s', %s, %s and %s transitions for security hotspots ", "setinreview", RESOLVE_AS_REVIEWED, "openasvulnerability", RESET_AS_TO_REVIEW)), new Change("7.3", "added transitions for security hotspots"), new Change("6.5", "the database ids of the components are removed from the response"), new Change("6.5", "the response field components.uuid is deprecated. Use components.key instead.")) diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchAction.java index f16ce3bfaf5..5fe19dd0908 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchAction.java @@ -37,7 +37,6 @@ import org.sonar.api.issue.IssueStatus; import org.sonar.api.issue.impact.SoftwareQuality; import org.sonar.api.rule.Severity; import org.sonar.api.rules.CleanCodeAttributeCategory; -import org.sonar.core.rule.RuleType; import org.sonar.api.server.ws.Change; import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Response; @@ -45,6 +44,7 @@ import org.sonar.api.server.ws.WebService; import org.sonar.api.server.ws.WebService.Param; import org.sonar.api.utils.Paging; import org.sonar.api.utils.System2; +import org.sonar.core.rule.RuleType; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.user.UserDto; @@ -72,7 +72,6 @@ import static java.util.Optional.ofNullable; import static org.sonar.api.issue.Issue.RESOLUTIONS; import static org.sonar.api.issue.Issue.RESOLUTION_FIXED; import static org.sonar.api.issue.Issue.RESOLUTION_REMOVED; -import static org.sonar.api.issue.Issue.STATUS_IN_REVIEW; import static org.sonar.api.issue.Issue.STATUS_OPEN; import static org.sonar.api.issue.Issue.STATUS_REOPENED; import static org.sonar.api.issue.Issue.STATUS_REVIEWED; @@ -126,6 +125,7 @@ import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_LANGUAGES; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_ON_COMPONENT_ONLY; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_ASVS_40; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_ASVS_LEVEL; +import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_MOBILE_TOP_10_2024; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_TOP_10; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_TOP_10_2021; import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_PCI_DSS_32; @@ -169,6 +169,7 @@ public class SearchAction implements IssuesWsAction { PARAM_PCI_DSS_32, PARAM_PCI_DSS_40, PARAM_OWASP_ASVS_40, + PARAM_OWASP_MOBILE_TOP_10_2024, PARAM_OWASP_TOP_10, PARAM_OWASP_TOP_10_2021, PARAM_STIG_ASD_V5R3, @@ -188,6 +189,7 @@ public class SearchAction implements IssuesWsAction { "the componentKeys parameter. "; private static final String NEW_FACET_ADDED_MESSAGE = "Facet '%s' has been added"; private static final String NEW_PARAM_ADDED_MESSAGE = "Param '%s' has been added"; + private static final String V_2025_3 = "2025.3"; private static final Set<String> FACETS_REQUIRING_PROJECT = newHashSet(PARAM_FILES, PARAM_DIRECTORIES); private final UserSession userSession; @@ -222,6 +224,8 @@ public class SearchAction implements IssuesWsAction { + "<br/>When issue indexing is in progress returns 503 service unavailable HTTP code.") .setSince("3.6") .setChangelog( + new Change(V_2025_3, format(NEW_FACET_ADDED_MESSAGE, PARAM_OWASP_MOBILE_TOP_10_2024)), + new Change(V_2025_3, format(NEW_PARAM_ADDED_MESSAGE, PARAM_OWASP_MOBILE_TOP_10_2024)), new Change("10.8", "The response fields 'severity' and 'type' are not deprecated anymore.."), new Change("10.8", "The fields 'severity' and 'type' are not deprecated anymore."), new Change("10.8", format("The parameters '%s' and '%s' are not deprecated anymore.", PARAM_SEVERITIES, PARAM_TYPES)), @@ -284,7 +288,7 @@ public class SearchAction implements IssuesWsAction { "api/hotspots"), new Change("8.2", "response field 'fromHotspot' has been deprecated and is no more populated"), new Change("8.2", "Status 'IN_REVIEW' for Security Hotspots has been deprecated"), - new Change("7.8", format("added new Security Hotspots statuses : %s, %s and %s", STATUS_TO_REVIEW, STATUS_IN_REVIEW, + new Change("7.8", format("added new Security Hotspots statuses : %s, %s and %s", STATUS_TO_REVIEW, "IN_REVIEW", STATUS_REVIEWED)), new Change("7.8", "Security hotspots are returned by default"), new Change("7.7", format("Value 'authors' in parameter '%s' is deprecated, please use '%s' instead", FACETS, PARAM_AUTHOR)), @@ -379,6 +383,10 @@ public class SearchAction implements IssuesWsAction { .setDescription("Comma-separated list of OWASP ASVS v4.0 categories.") .setSince("9.7") .setExampleValue("6,10.1.1"); + action.createParam(PARAM_OWASP_MOBILE_TOP_10_2024) + .setDescription("Comma-separated list of OWASP Mobile Top 10 2024 lowercase categories.") + .setSince(V_2025_3) + .setPossibleValues("m1", "m2", "m3", "m4", "m5", "m6", "m7", "m8", "m9", "m10"); action.createParam(PARAM_OWASP_TOP_10) .setDescription("Comma-separated list of OWASP Top 10 2017 lowercase categories.") .setSince("7.3") @@ -621,6 +629,7 @@ public class SearchAction implements IssuesWsAction { addMandatoryValuesToFacet(facets, PARAM_PCI_DSS_32, request.getPciDss32()); addMandatoryValuesToFacet(facets, PARAM_PCI_DSS_40, request.getPciDss40()); addMandatoryValuesToFacet(facets, PARAM_OWASP_ASVS_40, request.getOwaspAsvs40()); + addMandatoryValuesToFacet(facets, PARAM_OWASP_MOBILE_TOP_10_2024, request.getOwaspMobileTop10For2024()); addMandatoryValuesToFacet(facets, PARAM_OWASP_TOP_10, request.getOwaspTop10()); addMandatoryValuesToFacet(facets, PARAM_OWASP_TOP_10_2021, request.getOwaspTop10For2021()); addMandatoryValuesToFacet(facets, PARAM_STIG_ASD_V5R3, request.getStigAsdV5R3()); @@ -710,6 +719,7 @@ public class SearchAction implements IssuesWsAction { .setPciDss40(request.paramAsStrings(PARAM_PCI_DSS_40)) .setOwaspAsvsLevel(request.paramAsInt(PARAM_OWASP_ASVS_LEVEL)) .setOwaspAsvs40(request.paramAsStrings(PARAM_OWASP_ASVS_40)) + .setOwaspMobileTop10For2024(request.paramAsStrings(PARAM_OWASP_MOBILE_TOP_10_2024)) .setOwaspTop10(request.paramAsStrings(PARAM_OWASP_TOP_10)) .setOwaspTop10For2021(request.paramAsStrings(PARAM_OWASP_TOP_10_2021)) .setStigAsdV5R3(request.paramAsStrings(PARAM_STIG_ASD_V5R3)) diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/live/LiveMeasureComputerImpl.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/live/LiveMeasureComputerImpl.java index a5844238eb2..9414b31e895 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/live/LiveMeasureComputerImpl.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/live/LiveMeasureComputerImpl.java @@ -21,36 +21,23 @@ package org.sonar.server.measure.live; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.function.Function; -import java.util.stream.Collectors; -import javax.annotation.CheckForNull; -import org.slf4j.LoggerFactory; -import org.sonar.api.config.Configuration; import org.sonar.api.measures.Metric; import org.sonar.db.DbClient; import org.sonar.db.DbSession; -import org.sonar.db.component.BranchDto; import org.sonar.db.component.ComponentDto; import org.sonar.db.component.SnapshotDto; -import org.sonar.db.measure.MeasureDto; -import org.sonar.db.metric.MetricDto; -import org.sonar.db.project.ProjectDto; import org.sonar.server.es.Indexers; import org.sonar.server.qualitygate.EvaluatedQualityGate; -import org.sonar.server.qualitygate.QualityGate; import org.sonar.server.qualitygate.changeevent.QGChangeEvent; import org.sonar.server.setting.ProjectConfigurationLoader; import static java.util.Collections.emptyList; import static java.util.Collections.singleton; import static java.util.stream.Collectors.groupingBy; -import static org.sonar.api.measures.CoreMetrics.ALERT_STATUS_KEY; public class LiveMeasureComputerImpl implements LiveMeasureComputer { @@ -96,81 +83,36 @@ public class LiveMeasureComputerImpl implements LiveMeasureComputer { return Optional.empty(); } - BranchDto branch = loadBranch(dbSession, branchComponent); - ProjectDto project = loadProject(dbSession, branch.getProjectUuid()); - Configuration config = projectConfigurationLoader.loadBranchConfiguration(dbSession, branch); - QualityGate qualityGate = qGateComputer.loadQualityGate(dbSession, project, branch); - MeasureMatrix matrix = loadMeasureMatrix(dbSession, components.getAllUuids(), qualityGate); - - treeUpdater.update(dbSession, lastAnalysis.get(), config, components, branch, matrix); - - Metric.Level previousStatus = loadPreviousStatus(dbSession, branchComponent); - EvaluatedQualityGate evaluatedQualityGate = qGateComputer.refreshGateStatus(branchComponent, qualityGate, matrix, config); - persistAndIndex(dbSession, matrix, branch); - - return Optional.of(new QGChangeEvent(project, branch, lastAnalysis.get(), config, previousStatus, () -> Optional.of(evaluatedQualityGate))); - } - - private MeasureMatrix loadMeasureMatrix(DbSession dbSession, Set<String> componentUuids, QualityGate qualityGate) { - Collection<String> metricKeys = getKeysOfAllInvolvedMetrics(qualityGate); - Map<String, MetricDto> metricPerKey = - dbClient.metricDao().selectByKeys(dbSession, metricKeys).stream().collect(Collectors.toMap(MetricDto::getKey, Function.identity())); - List<MeasureDto> measures = dbClient.measureDao() - .selectByComponentUuidsAndMetricKeys(dbSession, componentUuids, metricPerKey.keySet()); - return new MeasureMatrix(componentUuids, metricPerKey.values(), measures); - } - - private void persistAndIndex(DbSession dbSession, MeasureMatrix matrix, BranchDto branch) { - // persist the measures that have been created or updated - Map<String, MeasureDto> measureDtoPerComponent = new HashMap<>(); - matrix.getChanged().sorted(MeasureMatrix.Measure.COMPARATOR) - .filter(m -> m.getValue() != null) - .forEach(m -> measureDtoPerComponent.compute(m.getComponentUuid(), (componentUuid, measureDto) -> { - if (measureDto == null) { - measureDto = new MeasureDto() - .setComponentUuid(componentUuid) - .setBranchUuid(m.getBranchUuid()); - } - return measureDto.addValue( - m.getMetricKey(), - m.getValue() - ); - })); - measureDtoPerComponent.values().forEach(m -> dbClient.measureDao().insertOrUpdate(dbSession, m)); - projectIndexer.commitAndIndexBranches(dbSession, singleton(branch), Indexers.BranchEvent.MEASURE_CHANGE); - } - - @CheckForNull - private Metric.Level loadPreviousStatus(DbSession dbSession, ComponentDto branchComponent) { - return dbClient.measureDao().selectByComponentUuid(dbSession, branchComponent.uuid()) - .map(m -> m.getString(ALERT_STATUS_KEY)) - .map(m -> { - try { - return Metric.Level.valueOf(m); - } catch (IllegalArgumentException e) { - LoggerFactory.getLogger(LiveMeasureComputerImpl.class).trace("Failed to parse value of metric '{}'", ALERT_STATUS_KEY, e); - return null; - } - }) - .orElse(null); - } - - private Set<String> getKeysOfAllInvolvedMetrics(QualityGate gate) { - Set<String> metricKeys = new HashSet<>(); - for (Metric<?> metric : formulaFactory.getFormulaMetrics()) { - metricKeys.add(metric.getKey()); - } - metricKeys.addAll(qGateComputer.getMetricsRelatedTo(gate)); - return metricKeys; - } - - private BranchDto loadBranch(DbSession dbSession, ComponentDto branchComponent) { - return dbClient.branchDao().selectByUuid(dbSession, branchComponent.uuid()) - .orElseThrow(() -> new IllegalStateException("Branch not found: " + branchComponent.uuid())); - } - - private ProjectDto loadProject(DbSession dbSession, String uuid) { - return dbClient.projectDao().selectByUuid(dbSession, uuid) - .orElseThrow(() -> new IllegalStateException("Project not found: " + uuid)); + LiveMeasureUpdaterWorkflow liveMeasureUpdaterWorkflow = LiveMeasureUpdaterWorkflow.build( + dbClient, + dbSession, + branchComponent, + projectConfigurationLoader, + qGateComputer); + + Set<String> metricKeys = liveMeasureUpdaterWorkflow.getKeysOfAllInvolvedMetrics(formulaFactory); + MeasureMatrix matrix = liveMeasureUpdaterWorkflow.buildMeasureMatrix( + metricKeys, + components.getAllUuids()); + + treeUpdater.update( + dbSession, + lastAnalysis.get(), + liveMeasureUpdaterWorkflow.getConfig(), + components, + liveMeasureUpdaterWorkflow.getBranchDto(), + matrix); + + Metric.Level previousStatus = liveMeasureUpdaterWorkflow.loadPreviousStatus(); + EvaluatedQualityGate evaluatedQualityGate = liveMeasureUpdaterWorkflow.updateQualityGateMeasures(matrix); + + projectIndexer.commitAndIndexBranches(dbSession, singleton(liveMeasureUpdaterWorkflow.getBranchDto()), Indexers.BranchEvent.MEASURE_CHANGE); + + return Optional.of(new QGChangeEvent( + liveMeasureUpdaterWorkflow.getProjectDto(), + liveMeasureUpdaterWorkflow.getBranchDto(), + lastAnalysis.get(), + liveMeasureUpdaterWorkflow.getConfig(), + previousStatus, () -> Optional.of(evaluatedQualityGate))); } } diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/live/LiveMeasureUpdaterWorkflow.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/live/LiveMeasureUpdaterWorkflow.java new file mode 100644 index 00000000000..26906ab9c35 --- /dev/null +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/live/LiveMeasureUpdaterWorkflow.java @@ -0,0 +1,204 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.measure.live; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; +import javax.annotation.CheckForNull; +import org.slf4j.LoggerFactory; +import org.sonar.api.config.Configuration; +import org.sonar.api.measures.Metric; +import org.sonar.db.DbClient; +import org.sonar.db.DbSession; +import org.sonar.db.component.BranchDto; +import org.sonar.db.component.ComponentDto; +import org.sonar.db.measure.MeasureDto; +import org.sonar.db.metric.MetricDto; +import org.sonar.db.project.ProjectDto; +import org.sonar.server.qualitygate.EvaluatedQualityGate; +import org.sonar.server.qualitygate.QualityGate; +import org.sonar.server.setting.ProjectConfigurationLoader; + +import static org.sonar.api.measures.CoreMetrics.ALERT_STATUS_KEY; + +/** + * This class breaks apart the various steps required to update an + * existing quality gate's measures with new ones: + * <ul> + * <li> + * Get related metric keys + * <ul><li>After this step is where you would inject additional keys</li></ul> + * </li> + * <li> + * Build a "measure matrix", a special hash table that contains the original measures mapped to the related metric keys + * <ul><li>This matrix is then updated with new measure values</li></ul> + * </li> + * <li> + * Load the previous quality gate status + * </li> + * <li> + * Update the quality gate's measures, persisting them to the database + * </li> + * </ul> + */ +public class LiveMeasureUpdaterWorkflow { + private final Configuration config; + private final QualityGate qualityGate; + private final DbClient dbClient; + private final DbSession dbSession; + private final LiveQualityGateComputer qualityGateComputer; + private final Dtos dtos; + + private LiveMeasureUpdaterWorkflow( + Dtos dtos, + DbClient dbClient, + DbSession dbSession, + Configuration config, + QualityGate qualityGate, + LiveQualityGateComputer qualityGateComputer) { + this.dtos = dtos; + this.config = config; + this.qualityGate = qualityGate; + this.dbClient = dbClient; + this.dbSession = dbSession; + this.qualityGateComputer = qualityGateComputer; + } + + public static LiveMeasureUpdaterWorkflow build( + DbClient dbClient, + DbSession dbSession, + ComponentDto branchComponentDto, + ProjectConfigurationLoader projectConfigurationLoader, + LiveQualityGateComputer qualityGateComputer) { + BranchDto branchDto = loadBranch(dbClient, dbSession, branchComponentDto); + ProjectDto projectDto = loadProject(dbClient, dbSession, branchDto.getProjectUuid()); + Configuration config = projectConfigurationLoader.loadBranchConfiguration(dbSession, branchDto); + QualityGate qualityGate = qualityGateComputer.loadQualityGate(dbSession, projectDto, branchDto); + + return new LiveMeasureUpdaterWorkflow( + new Dtos(branchComponentDto, branchDto, projectDto), + dbClient, + dbSession, + config, + qualityGate, + qualityGateComputer); + } + + private static BranchDto loadBranch( + DbClient dbClient, + DbSession dbSession, + ComponentDto branchComponent) { + return dbClient.branchDao().selectByUuid(dbSession, branchComponent.uuid()) + .orElseThrow(() -> new IllegalStateException("Branch not found: " + branchComponent.uuid())); + } + + private static ProjectDto loadProject( + DbClient dbClient, + DbSession dbSession, + String uuid) { + return dbClient.projectDao().selectByUuid(dbSession, uuid) + .orElseThrow(() -> new IllegalStateException("Project not found: " + uuid)); + } + + public BranchDto getBranchDto() { + return dtos.branchDto; + } + + public ProjectDto getProjectDto() { + return dtos.projectDto; + } + + public Configuration getConfig() { + return config; + } + + public EvaluatedQualityGate updateQualityGateMeasures(MeasureMatrix matrix) { + var result = qualityGateComputer.refreshGateStatus( + dtos.branchComponentDto, + qualityGate, + matrix, + config); + + persistUpdatedMeasures(matrix); + + return result; + } + + public Set<String> getKeysOfAllInvolvedMetrics(MeasureUpdateFormulaFactory formulaFactory) { + Set<String> metricKeys = new HashSet<>(); + for (Metric<?> metric : formulaFactory.getFormulaMetrics()) { + metricKeys.add(metric.getKey()); + } + metricKeys.addAll(qualityGateComputer.getMetricsRelatedTo(qualityGate)); + + return metricKeys; + } + + public MeasureMatrix buildMeasureMatrix( + Collection<String> metricKeys, + Set<String> branchUuids) { + Map<String, MetricDto> metricPerKey = dbClient.metricDao().selectByKeys(dbSession, metricKeys).stream().collect(Collectors.toMap(MetricDto::getKey, Function.identity())); + List<MeasureDto> measures = dbClient.measureDao() + .selectByComponentUuidsAndMetricKeys(dbSession, branchUuids, metricPerKey.keySet()); + return new MeasureMatrix(branchUuids, metricPerKey.values(), measures); + } + + private void persistUpdatedMeasures(MeasureMatrix matrix) { + // persist the measures that have been created or updated + Map<String, MeasureDto> measureDtoPerComponent = new HashMap<>(); + matrix.getChanged().sorted(MeasureMatrix.Measure.COMPARATOR) + .filter(m -> m.getValue() != null) + .forEach(m -> measureDtoPerComponent.compute(m.getComponentUuid(), (componentUuid, measureDto) -> { + if (measureDto == null) { + measureDto = new MeasureDto() + .setComponentUuid(componentUuid) + .setBranchUuid(m.getBranchUuid()); + } + return measureDto.addValue( + m.getMetricKey(), + m.getValue()); + })); + measureDtoPerComponent.values().forEach(m -> dbClient.measureDao().insertOrUpdate(dbSession, m)); + } + + @CheckForNull + public Metric.Level loadPreviousStatus() { + return dbClient.measureDao().selectByComponentUuid(dbSession, dtos.branchDto.getUuid()) + .map(m -> m.getString(ALERT_STATUS_KEY)) + .map(m -> { + try { + return Metric.Level.valueOf(m); + } catch (IllegalArgumentException e) { + LoggerFactory.getLogger(LiveMeasureUpdaterWorkflow.class).trace("Failed to parse value of metric '{}'", ALERT_STATUS_KEY, e); + return null; + } + }) + .orElse(null); + } + + private record Dtos(ComponentDto branchComponentDto, BranchDto branchDto, ProjectDto projectDto) { + } +} diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/live/MeasureMatrix.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/live/MeasureMatrix.java index da4df11d0fa..fc82532d94e 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/live/MeasureMatrix.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/live/MeasureMatrix.java @@ -51,17 +51,17 @@ import static java.util.Objects.requireNonNull; * <li>the refreshed values</li> * </ul> */ -class MeasureMatrix { +public class MeasureMatrix { // component uuid -> metric key -> measure private final Table<String, String, MeasureCell> table; private final Map<String, MetricDto> metricsByKeys = new HashMap<>(); - MeasureMatrix(Collection<ComponentDto> components, Collection<MetricDto> metrics, List<MeasureDto> dbMeasures) { + public MeasureMatrix(Collection<ComponentDto> components, Collection<MetricDto> metrics, List<MeasureDto> dbMeasures) { this(components.stream().map(ComponentDto::uuid).collect(Collectors.toSet()), metrics, dbMeasures); } - MeasureMatrix(Set<String> componentUuids, Collection<MetricDto> metrics, List<MeasureDto> dbMeasures) { + public MeasureMatrix(Set<String> componentUuids, Collection<MetricDto> metrics, List<MeasureDto> dbMeasures) { for (MetricDto metric : metrics) { this.metricsByKeys.put(metric.getKey(), metric); } @@ -86,19 +86,19 @@ class MeasureMatrix { return cell == null ? Optional.empty() : Optional.of(cell.measure); } - void setValue(ComponentDto component, String metricKey, double value) { + public void setValue(ComponentDto component, String metricKey, double value) { changeCell(component, metricKey, m -> m.setValue(scale(getMetric(metricKey), value))); } - void setValue(ComponentDto component, String metricKey, Rating value) { + public void setValue(ComponentDto component, String metricKey, Rating value) { changeCell(component, metricKey, m -> m.setValue((double) value.getIndex())); } - void setValue(ComponentDto component, String metricKey, @Nullable String data) { + public void setValue(ComponentDto component, String metricKey, @Nullable String data) { changeCell(component, metricKey, m -> m.setValue(data)); } - Stream<Measure> getChanged() { + public Stream<Measure> getChanged() { return table.values().stream() .filter(Objects::nonNull) .filter(MeasureCell::isChanged) @@ -145,8 +145,8 @@ class MeasureMatrix { } } - static class Measure { - static final Comparator<Measure> COMPARATOR = Comparator + public static class Measure { + public static final Comparator<Measure> COMPARATOR = Comparator .comparing((Measure m) -> m.componentUuid) .thenComparing(m -> m.metricDto.getKey()); diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/builtin/BuiltInQProfileRepositoryImpl.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/builtin/BuiltInQProfileRepositoryImpl.java index dd20b9c78c8..048487d44ba 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/builtin/BuiltInQProfileRepositoryImpl.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/builtin/BuiltInQProfileRepositoryImpl.java @@ -106,7 +106,7 @@ public class BuiltInQProfileRepositoryImpl implements BuiltInQProfileRepository .collect(Collectors.toSet()); checkState(languagesWithoutBuiltInQProfiles.isEmpty(), "The following languages have no built-in quality profiles: %s", - languagesWithoutBuiltInQProfiles.isEmpty() ? "" : String.join("", languagesWithoutBuiltInQProfiles)); + languagesWithoutBuiltInQProfiles.isEmpty() ? "" : String.join(", ", languagesWithoutBuiltInQProfiles)); } private Map<String, Map<String, BuiltInQualityProfile>> validateAndClean(BuiltInQualityProfilesDefinition.Context context) { diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/DismissNoticeAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/DismissNoticeAction.java index 407ffcf2f36..5c5b2c8b36c 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/DismissNoticeAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/DismissNoticeAction.java @@ -41,6 +41,7 @@ import static org.sonar.server.user.ws.DismissNoticeAction.DismissNotices.QUALIT import static org.sonar.server.user.ws.DismissNoticeAction.DismissNotices.SHOW_DNA_BANNER; import static org.sonar.server.user.ws.DismissNoticeAction.DismissNotices.SHOW_DNA_OPTIN_BANNER; import static org.sonar.server.user.ws.DismissNoticeAction.DismissNotices.SHOW_DNA_TOUR; +import static org.sonar.server.user.ws.DismissNoticeAction.DismissNotices.SHOW_ENABLE_SCA; import static org.sonar.server.user.ws.DismissNoticeAction.DismissNotices.SHOW_NEW_MODES_BANNER; import static org.sonar.server.user.ws.DismissNoticeAction.DismissNotices.SHOW_NEW_MODES_TOUR; @@ -59,6 +60,7 @@ public class DismissNoticeAction implements UsersWsAction { SHOW_DNA_OPTIN_BANNER("showDesignAndArchitectureOptInBanner"), SHOW_DNA_BANNER("showDesignAndArchitectureBanner"), SHOW_DNA_TOUR("showDesignAndArchitectureTour"), + SHOW_ENABLE_SCA("showEnableSca"), ; private final String key; @@ -99,12 +101,12 @@ public class DismissNoticeAction implements UsersWsAction { return SUPPORT_FOR_NEW_NOTICE_MESSAGE.formatted(noticesList); } - @Override public void define(WebService.NewController context) { WebService.NewAction action = context.createAction("dismiss_notice") .setDescription("Dismiss a notice for the current user. Silently ignore if the notice is already dismissed.") - .setChangelog(new Change("25.4", printNewNotice(SHOW_DNA_OPTIN_BANNER, SHOW_DNA_BANNER, SHOW_DNA_TOUR))) + .setChangelog(new Change("2025.3", printNewNotice(SHOW_ENABLE_SCA))) + .setChangelog(new Change("2025.3", printNewNotice(SHOW_DNA_OPTIN_BANNER, SHOW_DNA_BANNER, SHOW_DNA_TOUR))) .setChangelog(new Change("10.8", printNewNotice(SHOW_NEW_MODES_TOUR))) .setChangelog(new Change("10.8", printNewNotice(SHOW_NEW_MODES_BANNER))) .setChangelog(new Change("10.6", printNewNotice(ONBOARDING_CAYC_BRANCH_SUMMARY_GUIDE))) diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/SearchAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/SearchAction.java index 5b0d652caf6..811b8c10f54 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/SearchAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/SearchAction.java @@ -73,7 +73,7 @@ public class SearchAction implements UserGroupsWsAction { public void define(NewController context) { WebService.NewAction action = context.createAction("search") .setDescription("Search for user groups.<br>" + - "Requires the following permission: 'Administer System'.") + "Requires the following permission: 'Administer System'.") .setHandler(this) .setResponseExample(getClass().getResource("search-example.json")) .setSince("5.2") @@ -107,7 +107,8 @@ public class SearchAction implements UserGroupsWsAction { try (DbSession dbSession = dbClient.openSession(false)) { userSession.checkLoggedIn().checkIsSystemAdministrator(); - GroupSearchRequest groupSearchRequest = new GroupSearchRequest(request.param(Param.TEXT_QUERY), request.paramAsBoolean(MANAGED_PARAM), page, pageSize); + GroupSearchRequest groupSearchRequest = new GroupSearchRequest(request.param(Param.TEXT_QUERY), request.paramAsBoolean(MANAGED_PARAM), null, null, + page, pageSize); SearchResults<GroupInformation> searchResults = groupService.search(dbSession, groupSearchRequest); Set<String> groupUuids = extractGroupUuids(searchResults.searchResults()); @@ -136,7 +137,7 @@ public class SearchAction implements UserGroupsWsAction { } private static SearchWsResponse buildResponse(List<GroupInformation> groups, Map<String, Integer> userCountByGroup, - Set<String> fields, Paging paging) { + Set<String> fields, Paging paging) { SearchWsResponse.Builder responseBuilder = SearchWsResponse.newBuilder(); groups.forEach(group -> responseBuilder .addGroups(toWsGroup(group.groupDto(), userCountByGroup.get(group.groupDto().getName()), group.isManaged(), fields, group.isDefault()))); diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/builtin/BuiltInQProfileRepositoryImplTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/builtin/BuiltInQProfileRepositoryImplTest.java new file mode 100644 index 00000000000..2f76e5f9435 --- /dev/null +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/builtin/BuiltInQProfileRepositoryImplTest.java @@ -0,0 +1,49 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.qualityprofile.builtin; + +import org.junit.jupiter.api.Test; +import org.sonar.api.resources.Language; +import org.sonar.api.resources.Languages; +import org.sonar.db.DbClient; +import org.sonar.server.rule.ServerRuleFinder; + +import static org.assertj.core.api.Assertions.assertThatCode; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +class BuiltInQProfileRepositoryImplTest { + @Test + void initializationWithoutQualityProfiles() { + DbClient dbClient = mock(DbClient.class); + ServerRuleFinder ruleFinder = mock(ServerRuleFinder.class); + Languages languages = mock(Languages.class); + Language java = mock(Language.class); + Language kotlin = mock(Language.class); + + when(languages.all()).thenReturn(new Language[]{ java, kotlin }); + when(java.getKey()).thenReturn("java"); + when(kotlin.getKey()).thenReturn("kotlin"); + + BuiltInQProfileRepositoryImpl repository = new BuiltInQProfileRepositoryImpl(dbClient, ruleFinder, languages); + + assertThatCode(repository::initialize).hasMessage("The following languages have no built-in quality profiles: java, kotlin"); + } +} diff --git a/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java b/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java index cb5cb05bc90..795ba588669 100644 --- a/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java +++ b/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java @@ -58,6 +58,7 @@ import org.sonar.core.language.LanguagesProvider; import org.sonar.core.metric.SoftwareQualitiesMetrics; import org.sonar.core.platform.PlatformEditionProvider; import org.sonar.core.platform.SpringComponentContainer; +import org.sonar.core.scadata.DefaultScaDataSourceImpl; import org.sonar.server.ai.code.assurance.AiCodeAssuranceEntitlement; import org.sonar.server.ai.code.assurance.NoOpAiCodeAssuranceVerifier; import org.sonar.server.almintegration.ws.AlmIntegrationsWSModule; @@ -71,6 +72,7 @@ import org.sonar.server.authentication.DefaultAdminCredentialsVerifierImpl; import org.sonar.server.authentication.DefaultAdminCredentialsVerifierNotificationHandler; import org.sonar.server.authentication.DefaultAdminCredentialsVerifierNotificationTemplate; import org.sonar.server.authentication.LogOAuthWarning; +import org.sonar.server.authentication.HardcodedActiveTimeoutProvider; import org.sonar.server.authentication.ws.AuthenticationWsModule; import org.sonar.server.badge.ws.ProjectBadgesWsModule; import org.sonar.server.batch.BatchWsModule; @@ -207,6 +209,7 @@ import org.sonar.server.platform.telemetry.TelemetrySubportfolioSelectionModePro import org.sonar.server.platform.telemetry.TelemetryUserEnabledProvider; import org.sonar.server.platform.telemetry.TelemetryVersionProvider; import org.sonar.server.platform.web.ActionDeprecationLoggerInterceptor; +import org.sonar.server.platform.web.NoCacheFilter; import org.sonar.server.platform.web.SonarQubeIdeConnectionFilter; import org.sonar.server.platform.web.WebServiceFilter; import org.sonar.server.platform.web.WebServiceReroutingFilter; @@ -423,6 +426,7 @@ public class PlatformLevel4 extends PlatformLevel { new WebServicesWsModule(), SonarQubeIdeConnectionFilter.class, WebServiceFilter.class, + NoCacheFilter.class, WebServiceReroutingFilter.class, // localization @@ -446,6 +450,7 @@ public class PlatformLevel4 extends PlatformLevel { DefaultAdminCredentialsVerifierImpl.class, DefaultAdminCredentialsVerifierNotificationTemplate.class, DefaultAdminCredentialsVerifierNotificationHandler.class, + HardcodedActiveTimeoutProvider.class, // users UserSessionFactoryImpl.class, @@ -740,7 +745,10 @@ public class PlatformLevel4 extends PlatformLevel { MainCollector.class, - PluginsRiskConsentFilter.class); + PluginsRiskConsentFilter.class, + + // sca-provided capabilities + DefaultScaDataSourceImpl.class); // system info add(new SystemInfoWriterModule(getWebServer())); diff --git a/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevelSafeMode.java b/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevelSafeMode.java index d81006a91e3..4ef6d79166e 100644 --- a/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevelSafeMode.java +++ b/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevelSafeMode.java @@ -26,6 +26,7 @@ import org.sonar.server.platform.db.migration.AutoDbMigration; import org.sonar.server.platform.db.migration.DatabaseMigrationImpl; import org.sonar.server.platform.db.migration.MigrationEngineModule; import org.sonar.server.platform.db.migration.NoopDatabaseMigrationImpl; +import org.sonar.server.platform.web.NoCacheFilter; import org.sonar.server.platform.web.WebServiceFilter; import org.sonar.server.platform.ws.IndexAction; import org.sonar.server.platform.ws.L10nWs; @@ -59,6 +60,7 @@ public class PlatformLevelSafeMode extends PlatformLevel { SafeModeUserSession.class, WebServiceEngine.class, WebServiceFilter.class, + NoCacheFilter.class, // Monitoring ServerMonitoringMetrics.class); diff --git a/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/NoCacheFilter.java b/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/NoCacheFilter.java new file mode 100644 index 00000000000..268bafd3aed --- /dev/null +++ b/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/NoCacheFilter.java @@ -0,0 +1,46 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.web; + +import org.sonar.api.server.http.HttpRequest; +import org.sonar.api.server.http.HttpResponse; +import org.sonar.api.web.FilterChain; +import org.sonar.api.web.HttpFilter; +import java.io.IOException; +import org.sonar.api.web.UrlPattern; + +public class NoCacheFilter extends HttpFilter { + + @Override + public void doFilter(HttpRequest httpRequest, HttpResponse httpResponse, FilterChain filterChain) throws IOException { + httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + filterChain.doFilter(httpRequest, httpResponse); + } + + /** + * The Cache-Control for API v1 is handled in the org.sonar.server.ws.ServletResponse + */ + @Override + public UrlPattern doGetPattern() { + return UrlPattern.builder() + .includes("/api/v2/*") + .build(); + } +} diff --git a/server/sonar-webserver/src/test/java/org/sonar/server/platform/web/NoCacheFilterTest.java b/server/sonar-webserver/src/test/java/org/sonar/server/platform/web/NoCacheFilterTest.java new file mode 100644 index 00000000000..18b54291215 --- /dev/null +++ b/server/sonar-webserver/src/test/java/org/sonar/server/platform/web/NoCacheFilterTest.java @@ -0,0 +1,59 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.platform.web; + +import org.sonar.api.server.http.HttpRequest; +import org.sonar.api.server.http.HttpResponse; +import org.sonar.api.web.FilterChain; +import org.junit.Test; +import org.sonar.api.web.UrlPattern; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +public class NoCacheFilterTest { + + private final NoCacheFilter filter = new NoCacheFilter(); + + @Test + public void doGetPattern_whenAPIv2_patternMatches() { + UrlPattern urlPattern = filter.doGetPattern(); + + assertThat(urlPattern.matches("/api/v2/whatever")).isTrue(); + } + + @Test + public void doGetPattern_whenAPIv1_patternDoesNotMatch() { + UrlPattern urlPattern = filter.doGetPattern(); + + assertThat(urlPattern.matches("/api/whatever")).isFalse(); + } + + @Test + public void doFilter_setResponseHeader() throws Exception{ + HttpResponse response = mock(); + HttpRequest request = mock(); + FilterChain chain = mock(); + + filter.doFilter(request, response, chain); + verify(response).setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + } +} diff --git a/settings.gradle b/settings.gradle index bd7c6754f48..aaa2a94a961 100644 --- a/settings.gradle +++ b/settings.gradle @@ -19,7 +19,7 @@ pluginManagement { } } plugins { - id("com.gradle.develocity") version("3.18.2") + id("com.gradle.develocity") version("4.0.2") id("com.gradle.common-custom-user-data-gradle-plugin") version "2.2.1" } @@ -85,6 +85,7 @@ develocity { publishing.onlyIf { isCiServer && it.authenticated } if (isCiServer) { buildScan.value 'Branch', System.getenv()["CIRRUS_BRANCH"] + buildScan.value 'Cirrus Link', "https://cirrus-ci.com/task/" + System.getenv()["CIRRUS_TASK_ID"] } } } diff --git a/sonar-application/build.gradle b/sonar-application/build.gradle index 22c4a3792fe..499f4e34d71 100644 --- a/sonar-application/build.gradle +++ b/sonar-application/build.gradle @@ -368,7 +368,7 @@ zip { def maxArchiveSize = expectedSize + tolerance def archiveSize = archiveFile.get().asFile.length() - if (archiveSize < minArchiveSize) + if (archiveSize < minArchiveSize && System.getenv("CI") == "true") throw new GradleException("${archiveFileName.get()} size ($archiveSize) too small. Min is $minArchiveSize") if (archiveSize > maxArchiveSize) throw new GradleException("${destinationDirectory.get()}/${archiveFileName.get()} size ($archiveSize) too large. Max is $maxArchiveSize") diff --git a/sonar-application/src/main/assembly/conf/sonar.properties b/sonar-application/src/main/assembly/conf/sonar.properties index 7c692a6fa7d..a3385f0f913 100644 --- a/sonar-application/src/main/assembly/conf/sonar.properties +++ b/sonar-application/src/main/assembly/conf/sonar.properties @@ -137,10 +137,20 @@ # echo -n "type_what_you_want" | openssl dgst -sha256 -hmac "key" -binary | base64 #sonar.auth.jwtBase64Hs256Secret= -# The inactivity timeout duration of user sessions, in minutes. After the configured -# period of time, the user is logged out. +# Active Session Timeout +# Enterprise+ edition only feature +# The maximum time a user can remain logged in, regardless of activity. +# After this time, the session ends automatically even if the user is actively using the system. +# The default value is set to 90 days (129 600 minutes). +# It must be set between 15 minutes and 90 days (129 600 minutes). +# Value must be strictly positive. +#sonar.web.activeSessionTimeoutInMinutes=129600 + +# Inactive Session Timeout +# The maximum time a user can remain idle (no activity) before the session ends. +# If the user does not interact with the system within this time, they are logged out. # The default value is set to 3 days (4320 minutes). -# It must be set between 6 minutes and 3 months (129600 minutes). +# It must be set between 6 minutes and 90 days (129 600 minutes). # Value must be strictly positive. #sonar.web.sessionTimeoutInMinutes=4320 diff --git a/sonar-application/src/main/assembly/security/CVE-review-and-treatment-status-sqcb.csv b/sonar-application/src/main/assembly/security/CVE-review-and-treatment-status-sqcb.csv index 754418f6b2d..369505b7f79 100644 --- a/sonar-application/src/main/assembly/security/CVE-review-and-treatment-status-sqcb.csv +++ b/sonar-application/src/main/assembly/security/CVE-review-and-treatment-status-sqcb.csv @@ -1,17 +1,76 @@ -Vulnerability ID,Library,Organization,Product,Project,Severity,CVSS,CVSS Type,Status,Library Type,Comment
-CVE-2024-57699,json-smart-2.5.1.jar,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,HIGH,7.5,CVSS_3,Library removed,Java,SonarQube is not vulnerable. This library is a transitive dependency of library used for Microsoft Entra database authentication. Only admin can configure the database authentication through a JDBC URL which cannot contain nested brackets.
-CVE-2024-21538,cross-spawn-7.0.3.tgz,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,HIGH,7.5,CVSS_3,Ignored,javascript/Node.js,SonarQube is not vulnerable to the ReDoS as this package is only used during the development and testing phases.
-CVE-2025-27152,axios-1.7.7.tgz,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,HIGH,7.5,CVSS_3,Library removed,javascript/Node.js,axios has been upgraded
-CVE-2021-37714,jsoup-1.13.1.jar,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,HIGH,7.5,CVSS_3,Library removed,Java,
-CVE-2022-36033,jsoup-1.13.1.jar,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,MEDIUM,6.1,CVSS_3,Library removed,Java,
-CVE-2025-24813,tomcat-embed-core-10.1.34.jar,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,CRITICAL,9.8,CVSS_3,Library removed,Java,SonarQube is not vulnerable. The default setup configuration of the web.xml servlet is not modified and writes are not enabled for the default servlet.
-CVE-2025-27789,runtime-7.17.9.tgz,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases.
-CVE-2025-27789,runtime-7.17.8.tgz,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases.
-CVE-2025-27789,runtime-7.16.5.tgz,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases.
-CVE-2025-27789,runtime-7.16.3.tgz,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases.
-CVE-2025-27789,runtime-7.21.5.tgz,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases.
-CVE-2025-27789,runtime-7.18.9.tgz,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases.
-CVE-2020-36843,eddsa-0.3.0.jar,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,MEDIUM,4.3,CVSS_3,Ignored,Java,SonarQube application does not use this library and it has been removed
-CVE-2020-36843,eddsa-0.3.0.jar,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,MEDIUM,4.3,CVSS_3,Library removed,Java,
-CVE-2025-22228,spring-security-crypto-6.4.2.jar,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,HIGH,7.4,CVSS_3,Library removed,Java,
-CVE-2025-22223,spring-security-core-6.4.2.jar,SonarSource,SonarSource/sonar-enterprise,SonarSource/sonar-enterprise sqcb-25.4,MEDIUM,5.3,CVSS_3,Library removed,Java,
\ No newline at end of file +Vulnerability ID,Library,Severity,CVSS,CVSS Type,Status,Library Type,Comment
+CVE-2024-21538,cross-spawn-7.0.3.tgz,HIGH,7.5,CVSS_3,Ignored,javascript/Node.js,SonarQube is not vulnerable to the ReDoS as this package is only used during the development and testing phases.
+CVE-2020-36843,eddsa-0.3.0.jar,MEDIUM,4.3,CVSS_3,Ignored,Java,The transitive dependency has been removed.
+CVE-2025-27789,runtime-7.21.5.tgz,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases.
+CVE-2025-27789,runtime-7.18.9.tgz,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases.
+CVE-2025-27789,runtime-7.16.3.tgz,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases.
+CVE-2025-27789,runtime-7.17.8.tgz,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases.
+CVE-2025-27789,runtime-7.16.5.tgz,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases.
+CVE-2025-27789,helpers-7.25.6.tgz,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube is not vulnerable as it doesn't use untrusted strings in captured groups replacement
+CVE-2025-27789,runtime-7.25.6.tgz,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,SonarQube is not vulnerable as it doesn't use untrusted strings in captured groups replacement
+CVE-2024-43485,microsoft.codeanalysis.workspaces.msbuild.4.12.0-1.final.nupkg,HIGH,7.5,CVSS_3,Ignored,Nuget,"This library is used by the TestFramework and it's not included in the product package. The CVE is registered as ""unproven"". The risk is a DDoS on the test system."
+CVE-2021-22570,google.protobuf.3.6.1.nupkg,MEDIUM,6.5,CVSS_3,Ignored,Nuget,The protobuf payload is both generated and consumed by the user of SonarQube . An external attacker would need already access to the machine to exploit this.
+CVE-2018-8292,system.net.http.4.3.2.nupkg,MEDIUM,5.3,CVSS_3,Ignored,Nuget,"This library is used by the TestFramework and it's not included in the product package. The CVE is registered as ""unproven"". The risk is a DDoS on the test system."
+CVE-2024-38081,microsoft.io.redist.6.0.0.nupkg,HIGH,7.3,CVSS_3,Ignored,Nuget,"This dependency is only used for product unit testing and it's not included in the product package. The CVE is registered as ""unproven""."
+CVE-2024-38095,system.formats.asn1.7.0.0.nupkg,HIGH,7.5,CVSS_3,Ignored,Nuget,"This dependency is only used for product unit testing and it's not included in the product package. The CVE is registered as ""unproven""."
+CVE-2019-0820,system.text.regularexpressions.4.3.0.nupkg,HIGH,7.5,CVSS_3,Ignored,Nuget,The product package is not vulnerable as the compiler will load the version already present on the customer host.
+CVE-2021-29425,commons-io-2.6.jar,MEDIUM,4.8,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2023-3635,okio-jvm-3.0.0.jar,MEDIUM,5.9,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+WS-2019-0379,commons-codec-1.11.jar,MEDIUM,6.5,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2023-0833,okhttp-4.5.0.jar,MEDIUM,4.7,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2020-15250,junit-4.12.jar,MEDIUM,4.4,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2020-29582,kotlin-stdlib-1.3.70.jar,MEDIUM,5.3,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2023-6378,logback-classic-1.2.0.jar,HIGH,7.1,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2021-42550,logback-classic-1.2.0.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2023-3635,okio-2.5.0.jar,MEDIUM,5.9,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2022-24329,kotlin-stdlib-1.3.70.jar,MEDIUM,5.3,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2021-42550,logback-core-1.2.0.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2023-6481,logback-core-1.2.0.jar,HIGH,7.1,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-7254,protobuf-java-3.21.12.jar,HIGH,7.5,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-47554,commons-io-2.6.jar,MEDIUM,4.3,CVSS_3,Ignored,Java,"Ignoring alerts because this is a transitive dependency over the sonar-orchestrator library, which is only used for testing and is not shipped with the product."
+CVE-2024-12798,logback-core-1.2.0.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-12801,logback-core-1.2.0.jar,MEDIUM,4.4,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-12798,logback-core-1.2.13.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-12801,logback-core-1.2.13.jar,MEDIUM,4.4,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-12798,logback-classic-1.2.0.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-12798,logback-classic-1.2.13.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-38827,spring-security-core-6.2.3.jar,MEDIUM,4.8,CVSS_3,Ignored,Java,Only used in tests (java-checks-test-sources). Not packaged in the main jar.
+CVE-2024-38827,spring-security-ldap-6.2.3.jar,MEDIUM,4.8,CVSS_3,Ignored,Java,Only used in tests (java-checks-test-sources). Not packaged in the main jar.
+CVE-2025-22228,spring-security-crypto-6.2.3.jar,HIGH,7.4,CVSS_3,Ignored,Java,Only used in tests (java-checks-test-sources). Not packaged in the main jar.
+CVE-2024-38827,spring-security-crypto-6.2.3.jar,MEDIUM,4.8,CVSS_3,Ignored,Java,Only used in tests (java-checks-test-sources). Not packaged in the main jar.
+CVE-2024-38829,spring-ldap-core-3.2.2.jar,LOW,3.7,CVSS_3,Ignored,Java,Only used in tests (java-checks-test-sources). Not packaged in the main jar.
+CVE-2025-31650,tomcat-embed-core-9.0.100.jar,HIGH,7.5,CVSS_3,Ignored,Java,"SonarQube only uses tomcat to transpile Jsp files, it is not vulnerable to malicious Http requests"
+CVE-2025-31651,tomcat-embed-core-9.0.100.jar,MEDIUM,5.3,CVSS_3,Ignored,Java,"SonarQube only uses tomcat to transpile Jsp files, it is not vulnerable to malicious Http requests"
+CVE-2025-27789,runtime-7.26.7.tgz,MEDIUM,6.2,CVSS_3,Ignored,javascript/Node.js,"As described in CVE-2025-27789, SonarQube is not vulnerable because it is using @babel/core 7.27.10."
+CVE-2022-40152,woodstox-core-6.2.7.jar,MEDIUM,6.5,CVSS_3,Ignored,Java,Library woodstox-core-6.2.7.jar is a transitive dependency of Orchestrator only used to run the integration tests of plugins
+CVE-2020-36518,jackson-databind-2.13.2.jar,HIGH,7.5,CVSS_3,Ignored,Java,Library jackson-databind-2.13.2.jar is a transitive dependency of Orchestrator only used to run the integration tests of plugins
+CVE-2023-3635,okio-2.5.0.jar,MEDIUM,5.9,CVSS_3,Ignored,Java,Library okio-2.5.0.jar is a transitive dependency of Orchestrator only used to run the integration tests of plugins and is not included in either plugins
+CVE-2020-29582,kotlin-stdlib-1.3.70.jar,MEDIUM,5.3,CVSS_3,Ignored,Java,Library kotlin-stdlib-1.3.70.jar is a transitive dependency of Orchestrator only used to run the integration tests of plugins and is not included in either python plugins
+WS-2022-0468,jackson-core-2.13.2.jar,HIGH,7.5,CVSS_3,Ignored,Java,Library jackson-core-2.13.2.jar is a transitive dependency of Orchestrator only used to run the integration tests of plugins
+CVE-2023-0833,okhttp-4.5.0.jar,MEDIUM,4.7,CVSS_3,Ignored,Java,Library okhttp-4.5.0.jar is a transitive dependency of Orchestrator only used to run the integration tests of plugins and is not included in either python plugins
+CVE-2022-42003,jackson-databind-2.13.2.jar,HIGH,7.5,CVSS_3,Ignored,Java,Library jackson-databind-2.13.2.jar is a transitive dependency of Orchestrator only used to run the integration tests of plugins
+CVE-2022-42004,jackson-databind-2.13.2.jar,HIGH,7.5,CVSS_3,Ignored,Java,Library jackson-databind-2.13.2.jar is a transitive dependency of Orchestrator only used to run the integration tests of plugins
+CVE-2022-24329,kotlin-stdlib-1.3.70.jar,MEDIUM,5.3,CVSS_3,Ignored,Java,Library kotlin-stdlib-1.3.70.jar is a transitive dependency of Orchestrator only used to run the integration tests of plugins and is not included in either python plugins
+CVE-2023-3635,okio-jvm-3.0.0.jar,MEDIUM,5.9,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2020-15250,junit-4.12.jar,MEDIUM,4.4,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2023-50572,jline-3.19.0.jar,MEDIUM,5.5,CVSS_3,Ignored,Java,"This dependency is used by zinc that is used to build the analyzer, but it is not shipped with the product."
+CVE-2023-6481,logback-core-1.2.0.jar,HIGH,7.1,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2022-36944,scala-library-2.13.6.jar,CRITICAL,9.8,CVSS_3,Ignored,Java,"This dependency is used by zinc that is used to build the analyzer, but it is not shipped with the product."
+CVE-2021-29425,commons-io-2.6.jar,MEDIUM,4.8,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2020-29582,kotlin-stdlib-1.3.70.jar,MEDIUM,5.3,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2021-42550,logback-classic-1.2.0.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2023-3635,okio-2.5.0.jar,MEDIUM,5.9,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+WS-2019-0379,commons-codec-1.11.jar,MEDIUM,6.5,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2022-24329,kotlin-stdlib-1.3.70.jar,MEDIUM,5.3,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2021-42550,logback-core-1.2.0.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2023-0833,okhttp-4.5.0.jar,MEDIUM,4.7,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2023-46122,io_2.13-1.6.0.jar,LOW,3.9,CVSS_3,Ignored,Java,"This dependency is used by zinc that is used to build the analyzer, but it is not shipped with the product."
+CVE-2023-6378,logback-classic-1.2.0.jar,HIGH,7.1,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-7254,protobuf-java-3.21.12.jar,HIGH,7.5,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-47554,commons-io-2.6.jar,MEDIUM,4.3,CVSS_3,Ignored,Java,"Ignoring alerts because this is a transitive dependency over the sonar-orchestrator library, which is only used for testing and is not shipped with the product."
+CVE-2024-12798,logback-core-1.2.0.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-12801,logback-core-1.2.0.jar,MEDIUM,4.4,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-12801,logback-core-1.2.13.jar,MEDIUM,4.4,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-12798,logback-core-1.2.13.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-12798,logback-classic-1.2.0.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
+CVE-2024-12798,logback-classic-1.2.13.jar,MEDIUM,6.6,CVSS_3,Ignored,Java,This transitive test dependency is not shipped with the analyzers
\ No newline at end of file diff --git a/sonar-application/src/main/assembly/security/CVE-review-and-treatment-status-sqcb.json b/sonar-application/src/main/assembly/security/CVE-review-and-treatment-status-sqcb.json deleted file mode 100644 index 42ee1e27191..00000000000 --- a/sonar-application/src/main/assembly/security/CVE-review-and-treatment-status-sqcb.json +++ /dev/null @@ -1,46966 +0,0 @@ -{ - "bomFormat" : "CycloneDX", - "specVersion" : "1.5", - "serialNumber" : "urn:uuid:e08a40ac-a40b-43cb-891a-b8348ec2d974", - "version" : 1, - "metadata" : { - "timestamp" : "2025-04-04T14:25:41Z", - "tools" : { - "components" : [ { - "author" : "SonarSource", - "name" : "CycloneDX report generator", - "version" : "1.0.0", - "type" : "application" - } ] - }, - "authors" : [ { - "name" : "Organization: SonarSource" - }, { - "name" : "security@sonarsource.com" - } ], - "component" : { - "name" : "SonarSource/sonar-enterprise sqcb-25.4", - "type" : "application", - "bom-ref" : "57347c6f-d4da-49af-b497-5e8003e2b3dd" - }, - "properties" : [ { - "name" : "reportName", - "value" : "Dependencies SBOM Report" - } ] - }, - "components" : [ { - "group" : "org.jfree", - "name" : "jfreechart-1.5.5.jar", - "version" : "1.5.5", - "description" : "JFreeChart is a class library, written in Java, for generating charts. Utilising the Java2D API, it supports a wide range of chart types including bar charts, pie charts, line charts, XY-plots, time series plots, Sankey charts and more.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4147651ba863c28090a585a6f1e91c7a9bcc1f12" - } ], - "licenses" : [ { - "license" : { - "name" : "LGPL", - "url" : "https://www.gnu.org/licenses/lgpl.html" - } - } ], - "copyright" : "JFree.org", - "purl" : "pkg:maven/org.jfree/jfreechart@1.5.5", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.jfree.org/" - }, { - "type" : "distribution", - "url" : "http://www.jfree.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f5bdf98c-0798-4eef-a543-6a2425be5a16" - } ], - "type" : "library", - "bom-ref" : "jfreechart-1.5.5.jar" - }, { - "group" : "org.elasticsearch", - "name" : "elasticsearch-x-content-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :libs:elasticsearch-x-content", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d643e9db23a9a5a448a9647527759d9f65908fa9" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - }, { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch/elasticsearch-x-content@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7297b23e-ab7d-4113-bad7-3575a75093ba" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-x-content-7.17.28.jar" - }, { - "group" : "org.lz4", - "name" : "lz4-java-1.8.0.jar", - "version" : "1.8.0", - "description" : "Java ports and bindings of the LZ4 compression algorithm and the xxHash hashing algorithm", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4b986a99445e49ea5fbf5d149c4b63f6ed6c6780" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2020 Adrien Grand and the lz4-java contributors", - "purl" : "pkg:maven/org.lz4/lz4-java@1.8.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/lz4/lz4-java" - }, { - "type" : "distribution", - "url" : "https://github.com/lz4/lz4-java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4adab455-5252-47ab-9094-141f1b3a338c" - } ], - "type" : "library", - "bom-ref" : "lz4-java-1.8.0.jar" - }, { - "group" : "@gilbarbara/deep-equal", - "name" : "deep-equal-0.1.2.tgz", - "version" : "0.1.2", - "description" : "Tiny deep equal comparator", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a106721368dba5e7e9fb7e9a3a6f9efbd8df36d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2022 Gil Barbara", - "purl" : "pkg:npm/%40gilbarbara/deep-equal@0.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/gilbarbara/deep-equal#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@gilbarbara/deep-equal/-/deep-equal-0.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ac3cac6b-b91d-4cfe-ab15-9e078472a1a3" - } ], - "type" : "library", - "bom-ref" : "deep-equal-0.1.2.tgz" - }, { - "group" : "jsonpointer", - "name" : "jsonpointer-5.0.1.tgz", - "version" : "5.0.1", - "description" : "Simple JSON Addressing.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2110e0af0900fd37467b5907ecd13a7884a1b559" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2011-2021 Jan Lehnardt,Copyright 2011-2015 Jan Lehnardt,Copyright 2011-2021 Jan Lehnardt,Copyright 2011-2015 Jan Lehnardt", - "purl" : "pkg:npm/jsonpointer@5.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/janl/node-jsonpointer#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "44823141-9dbd-4d20-852a-d88848f67e02" - } ], - "type" : "library", - "bom-ref" : "jsonpointer-5.0.1.tgz" - }, { - "group" : "@emotion/sheet", - "name" : "sheet-1.2.1.tgz", - "version" : "1.2.1", - "description" : "emotion's stylesheet", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0767e0305230e894897cadb6c8df2c51e61a6c2c" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/sheet@1.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b5e51aba-7ab1-4288-aaa5-3521cfb1a618" - } ], - "type" : "library", - "bom-ref" : "sheet-1.2.1.tgz" - }, { - "group" : "com.sonarsource.tsql", - "name" : "tsql-frontend-1.14.0.7614.jar", - "version" : "1.14.0.7614", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "afe6baf1f6f2771a1e35640561f8b4ff357bd85c" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "525336a1-37d6-497a-bd38-f0e67d8ce96e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "tsql-frontend-1.14.0.7614.jar-2" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT" - }, { - "group" : "com.trilead", - "name" : "trilead-ssh2-1.0.0-build222.jar", - "version" : "1.0.0-build222", - "description" : "Pure Java SSH-2 Library", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "eff401f7bc7839aee792ab17319eb78e6a919aa7" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - }, { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2000-2004 The Legion Of The Bouncy Castle,Copyright 2007-2008 Trilead AG (http://www.trilead.com),Copyright 2005-2006 Swiss Federal Institute of Technology (ETH Zurich),", - "purl" : "pkg:maven/com.trilead/trilead-ssh2@1.0.0-build222?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "649dd4ca-e997-4ef6-bef6-85d200886255" - } ], - "type" : "library", - "bom-ref" : "trilead-ssh2-1.0.0-build222.jar" - }, { - "group" : "org.sonarsource.iac", - "name" : "sonar-iac-plugin-1.44.0.14670.jar", - "version" : "1.44.0.14670", - "description" : "Analyzer for Cloud Native Files", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "36d4aa741e06dbf1287a4702e791a027d00ff250" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.iac/sonar-iac-plugin@1.44.0.14670", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarqube.org/" - }, { - "type" : "distribution", - "url" : "http://www.sonarqube.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e5b42478-37ad-42e9-837d-31e4ceba75dc" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-iac-plugin-1.44.0.14670.jar" - }, { - "group" : "com.sonarsource.cobol", - "name" : "cobol-syntax-highlighter-5.8.1.8428.jar", - "version" : "5.8.1.8428", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d41dac7dffdd5eaa727a1c68814210839afd51e6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d4ccf180-f882-4a69-a692-4020b692dd19" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "cobol-syntax-highlighter-5.8.1.8428.jar" - }, { - "group" : "org.springdoc", - "name" : "springdoc-openapi-starter-common-2.8.6.jar", - "version" : "2.8.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "880d794edd3254766e9a12daad41d75add0073d9" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2019-2023 the original author or authors", - "purl" : "pkg:maven/org.springdoc/springdoc-openapi-starter-common@2.8.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://springdoc.org/" - }, { - "type" : "distribution", - "url" : "https://springdoc.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a728fd4b-d0ae-4007-8504-6d338039c917" - } ], - "type" : "library", - "bom-ref" : "springdoc-openapi-starter-common-2.8.6.jar" - }, { - "group" : "run-con", - "name" : "run-con-1.3.2.tgz", - "version" : "1.3.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "755860a10ce326a96b509485fcea50b4d03754e8" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - }, { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Copyright 2011 Dominic Tarr,Copyright 2013 Dominic Tarr,Copyright 2011 Dominic Tarr", - "purl" : "pkg:npm/run-con@1.3.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/goatandsheep/rc#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "3a05d9da-7a06-4cc9-ad2f-3ec3c25e9c77" - } ], - "type" : "library", - "bom-ref" : "run-con-1.3.2.tgz" - }, { - "group" : "com.sonarsource.cobol", - "name" : "cobol-database-5.8.1.8428.jar", - "version" : "5.8.1.8428", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8f8b4b4d0915731329b7989c1c6c3338449b4bbf" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e1469c4a-1943-4e36-8936-57d458c2590a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "cobol-database-5.8.1.8428.jar-2" - }, { - "group" : "d3-array", - "name" : "d3-array-3.2.0.tgz", - "version" : "3.2.0", - "description" : "Array manipulation, ordering, searching, summarizing, etc.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "15bf96cd9b7333e02eb8de8053d78962eafcff14" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2022 Mike Bostock,Copyright 2010-2022 Mike Bostock", - "purl" : "pkg:npm/d3-array@3.2.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-array/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "54747915-f079-4229-b479-d6e86ee2e41d" - } ], - "type" : "library", - "bom-ref" : "d3-array-3.2.0.tgz" - }, { - "group" : "org.springframework.security", - "name" : "spring-security-core-6.4.4.jar", - "version" : "6.4.4", - "description" : "Spring Security", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "adccc33ba9baf99b4e42436424a4013f89a8806a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.springframework.security/spring-security-core@6.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-security" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-security" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "c22125df-09d3-4808-8fc5-38632d61a45e" - } ], - "type" : "library", - "bom-ref" : "spring-security-core-6.4.4.jar" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-common-2.1.10.pom", - "version" : "2.1.10", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "57258d8a215853035cc3f43d7f490a36532f2e94" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dd4f288d-d93a-4546-8e67-61c0e2263723" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-common-2.1.10.pom-2" - }, { - "group" : "org.sonarsource.update-center", - "name" : "sonar-update-center-common-1.35.0.2835.jar", - "version" : "1.35.0.2835", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "68cd0869db3196447e52d8fc1b9762e88820c459" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.update-center/sonar-update-center-common@1.35.0.2835", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.org" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dfdde452-cbe5-4c97-b0cb-db0a39f75d86" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-update-center-common-1.35.0.2835.jar" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-java-frontend-plugin-1.9.0.4841.sonar-plugin", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "aedf6df3269966a8d2fc4ae2b5eaffa114358b69" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b707c40d-c013-48f7-a658-649eabc2bb66" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-java-frontend-plugin-1.9.0.4841.sonar-plugin-2" - }, { - "group" : "@radix-ui/react-compose-refs", - "name" : "react-compose-refs-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "656432461fc8283d7b591dcf0d79152fae9ecc74" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-compose-refs@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "8395ef01-8c64-4bcd-9e9e-9b965f75f3b6" - } ], - "type" : "library", - "bom-ref" : "react-compose-refs-1.1.0.tgz" - }, { - "group" : "d3-time", - "name" : "d3-time-3.0.0.tgz", - "version" : "3.0.0", - "description" : "A calculator for humanity’s peculiar conventions of time.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "65972cb98ae2d4954ef5c932e8704061335d4975" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock,Copyright 1980-1995 ,,Copyright 2015 ,,Copyright 2010-2021 Mike Bostock,Copyright 2015 ,,Copyright 1980-1995 ,", - "purl" : "pkg:npm/d3-time@3.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-time/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "dd74af92-71ac-48fa-b790-09d184c89eac" - } ], - "type" : "library", - "bom-ref" : "d3-time-3.0.0.tgz-2" - }, { - "group" : "@formatjs/icu-messageformat-parser", - "name" : "icu-messageformat-parser-2.7.8.tgz", - "version" : "2.7.8", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f6d7643001e9bb5930d812f1f9a9856f30fa0343" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2023 FormatJS", - "purl" : "pkg:npm/%40formatjs/icu-messageformat-parser@2.7.8", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/formatjs/formatjs#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1a8ba08c-699b-4f37-ba6d-fa7686f6601b" - } ], - "type" : "library", - "bom-ref" : "icu-messageformat-parser-2.7.8.tgz" - }, { - "group" : "@sonarsource/echoes-react", - "name" : "echoes-react-0.15.2.tgz", - "version" : "0.15.2", - "description" : "React implementation of Echoes, SONAR's Design System", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "eb9ca1d676dae8c4a3be6adee659e95b8bb4656f" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2023-2025 SonarSource", - "purl" : "pkg:npm/%40sonarsource/echoes-react@0.15.2", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@sonarsource/echoes-react/-/echoes-react-0.15.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "af78f79a-6fd4-4bde-b282-ef289b35f856" - } ], - "type" : "library", - "bom-ref" : "echoes-react-0.15.2.tgz" - }, { - "group" : "com.yworks", - "name" : "yguard-4.1.1.jar", - "version" : "4.1.1", - "description" : "The open-source Java obfuscation tool working with Ant and Gradle by yWorks - the diagramming experts", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "864d808e67c038b598c0dc4342098e33b0b0d3d3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.yworks/yguard@4.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/yWorks/yGuard" - }, { - "type" : "distribution", - "url" : "https://github.com/yWorks/yGuard" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5294b4a5-931f-4878-b041-3d74c1e2e57d" - } ], - "type" : "library", - "bom-ref" : "yguard-4.1.1.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-ha-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-ha-2025.3-SNAPSHOT" - }, { - "group" : "@emotion/babel-plugin", - "name" : "babel-plugin-11.10.5.tgz", - "version" : "11.10.5", - "description" : "A recommended babel preprocessing plugin for emotion, The Next Generation of CSS-in-JS.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "65fa6e1790ddc9e23cc22658a4c5dea423c55c3c" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/babel-plugin@11.10.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://emotion.sh" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "37a46dc4-182c-4c0e-983e-837e3a5d4f98" - } ], - "type" : "library", - "bom-ref" : "babel-plugin-11.10.5.tgz" - }, { - "group" : "io.swagger.core.v3", - "name" : "swagger-core-jakarta-2.2.29.jar", - "version" : "2.2.29", - "description" : "swagger-core-jakarta", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ad7a3b076125ecd61aa19cfe802d174d57f29f10" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2015 (c),Copyright 2015 (c)", - "purl" : "pkg:maven/io.swagger.core.v3/swagger-core-jakarta@2.2.29", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/swagger-api/swagger-core" - }, { - "type" : "distribution", - "url" : "https://github.com/swagger-api/swagger-core" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "29f52367-878f-4f1c-a560-9fe077eb624b" - } ], - "type" : "library", - "bom-ref" : "swagger-core-jakarta-2.2.29.jar" - }, { - "group" : "org.springframework", - "name" : "spring-jcl-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Commons Logging Bridge", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1b8db3715dc78bd18b60869458d5ee8829ad8e99" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006-2019 Joe Walnes,Copyright 2002-2025 Pivotal, Inc,Copyright 1999-2009 OW2 Consortium,Copyright 2000-2011 INRIA", - "purl" : "pkg:maven/org.springframework/spring-jcl@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "06068976-1724-4b3d-a753-eabcbc53e840" - } ], - "type" : "library", - "bom-ref" : "spring-jcl-6.2.5.jar" - }, { - "group" : "mdurl", - "name" : "mdurl-2.0.0.tgz", - "version" : "2.0.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "80676ec0433025dd3e17ee983d0fe8de5a2237e0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Vitaly Puzrin, Alex Kocharin", - "purl" : "pkg:npm/mdurl@2.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/markdown-it/mdurl#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "3d711db5-6943-4b0c-ae7c-d89cd1a2740b" - } ], - "type" : "library", - "bom-ref" : "mdurl-2.0.0.tgz" - }, { - "group" : "com.google.protobuf", - "name" : "protoc-4.30.1.exe", - "version" : "4.30.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f0028daa55a46d2d18c3126704da7f1dadcec407" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "217d1f69-2f7d-45c8-8387-c76397e8d23e" - } ], - "type" : "library", - "bom-ref" : "protoc-4.30.1.exe" - }, { - "group" : "path-parse", - "name" : "path-parse-1.0.7.tgz", - "version" : "1.0.7", - "description" : "Node.js path.parse() ponyfill", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Javier Blanco", - "purl" : "pkg:npm/path-parse@1.0.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/jbgutierrez/path-parse#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "eec15f18-6dfe-42a5-b1aa-3a9b4c3a44e2" - } ], - "type" : "library", - "bom-ref" : "path-parse-1.0.7.tgz" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-xml-parsing-2.16.0.3141.jar", - "version" : "2.16.0.3141", - "description" : "Logic useful to read and analyze XML files", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d11478e6e38544115dfa891212875ab1fa8e08d0" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-xml-parsing@2.16.0.3141", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e4db2f6c-f188-48b2-88ab-81453e54b43a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-xml-parsing-2.16.0.3141.jar" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-queries-8.11.3.jar", - "version" : "8.11.3", - "description" : "Lucene Queries Module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8196c876e38736e5fe45117ac02c169b6f816442" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011-2016 Yann Collet,Copyright 1995-2008 International Business Machines Corporation and others,Copyright 1999-2010 International Business Machines,Copyright © 2003,,Copyright 2007-2011 Dawid Weiss,Copyright 2009 by www.imdict.net,Copyright 2001-2004 Copyright,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright 2001-2009 Anders Moeller,Copyright 2002 Richard Boulton,Copyright 2001-2021 The Apache Software Foundation,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 2001 Dr Martin Porter,Copyright 2006 Dawid Weiss,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.lucene/lucene-queries@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "124fa508-fca3-4092-9d58-227d9e69e110" - } ], - "type" : "library", - "bom-ref" : "lucene-queries-8.11.3.jar" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-plugin-1.9.0.4841.sonar-plugin", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b3578eba3bf9f7ad5ca23dca122c20a4e991c7a2" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f112a9cc-c89e-42af-a297-c8b4241305d1" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-plugin-1.9.0.4841.sonar-plugin-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT" - }, { - "group" : "react-floater", - "name" : "react-floater-0.7.9.tgz", - "version" : "0.7.9", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b15a652e817f200bfa42a2023ee8d3105803b968" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Gil Barbara", - "purl" : "pkg:npm/react-floater@0.7.9", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/gilbarbara/react-floater#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-floater/-/react-floater-0.7.9.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "15c63f0f-b718-415f-8ecb-a47e6186b17d" - } ], - "type" : "library", - "bom-ref" : "react-floater-0.7.9.tgz" - }, { - "group" : "@emotion/weak-memoize", - "name" : "weak-memoize-0.3.0.tgz", - "version" : "0.3.0", - "description" : "A memoization function that uses a WeakMap", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ea89004119dc42db2e1dba0f97d553f7372f6fcb" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/weak-memoize@0.3.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b3b6838b-37ed-4b0a-afca-b05ab5cb3d76" - } ], - "type" : "library", - "bom-ref" : "weak-memoize-0.3.0.tgz" - }, { - "group" : "react-joyride", - "name" : "react-joyride-2.8.2.tgz", - "version" : "2.8.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9165f4a19a4034a8f590593247f56b57f3c5efbe" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Gil Barbara", - "purl" : "pkg:npm/react-joyride@2.8.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://react-joyride.com/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-joyride/-/react-joyride-2.8.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "45b55516-29ba-4554-9182-0b11c527d009" - } ], - "type" : "library", - "bom-ref" : "react-joyride-2.8.2.tgz" - }, { - "group" : "ch.qos.logback", - "name" : "logback-classic-1.5.18.jar", - "version" : "1.5.18", - "description" : "logback-classic module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fc371f3fc97a639de2d67947cffb7518ec5e3d40" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - }, { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - } ], - "copyright" : "QOS.ch", - "purl" : "pkg:maven/ch.qos.logback/logback-classic@1.5.18", - "externalReferences" : [ { - "type" : "website", - "url" : "http://logback.qos.ch" - }, { - "type" : "distribution", - "url" : "http://logback.qos.ch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "abfb1ae5-c2ad-4e65-b7ba-41fe062802c6" - } ], - "type" : "library", - "bom-ref" : "logback-classic-1.5.18.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-plugin-api-impl-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-plugin-api-impl-25.4-SNAPSHOT-3" - }, { - "group" : "react-style-singleton", - "name" : "react-style-singleton-2.2.3.tgz", - "version" : "2.2.3", - "description" : "Just create a single stylesheet...", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4265608be69a4d70cfe3047f2c6c88b2c3ace388" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Anton Korzunov", - "purl" : "pkg:npm/react-style-singleton@2.2.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/react-style-singleton#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1c362987-72d0-4e17-8a65-eb5659fa40df" - } ], - "type" : "library", - "bom-ref" : "react-style-singleton-2.2.3.tgz-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-plugin-api-impl-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-plugin-api-impl-25.4-SNAPSHOT-4" - }, { - "group" : "com.sonarsource.rpg", - "name" : "rpg-analyzer-3.10.0.5337.jar", - "version" : "3.10.0.5337", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "40d1f4bebe1b375e7bdba55ad6884b701ce9766d" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "11b00761-65c3-43c0-858e-4ca1414128e0" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "rpg-analyzer-3.10.0.5337.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-plugin-api-impl-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-plugin-api-impl-25.4-SNAPSHOT-2" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-annotations-2.18.3.jar", - "version" : "2.18.3", - "description" : "Core annotations used for value types, used by Jackson data binding package.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7fa21cf7da4598f8240e4ebd9779249622af1acd" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-annotations@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1932978b-3259-45e6-8d8b-c1c17ecd5274" - } ], - "type" : "library", - "bom-ref" : "jackson-annotations-2.18.3.jar-2" - }, { - "group" : "d3-time", - "name" : "d3-time-3.1.0.tgz", - "version" : "3.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9310db56e992e3c0175e1ef385e545e48a9bb5c7" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2022 Mike Bostock", - "purl" : "pkg:npm/d3-time@3.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-time/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4cd5640d-f665-403b-a72a-5e7e9c5b2e4e" - } ], - "type" : "library", - "bom-ref" : "d3-time-3.1.0.tgz" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-join-8.11.3.jar", - "version" : "8.11.3", - "description" : "Lucene Join Module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e80b8043609a1ddb1b17de2b2eb1514218ff3684" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2009 by www.imdict.net,Copyright 2006 Dawid Weiss,Copyright 2001-2009 Anders Moeller,The Apache Software Foundation,Copyright 1995-2008 International Business Machines Corporation and others,Copyright 2001-2004 Copyright,Copyright 2011-2016 Yann Collet,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 2001-2021 The Apache Software Foundation,Copyright 2001 Dr Martin Porter,Copyright 2007-2011 Dawid Weiss,Copyright © 2003,,Copyright 1999-2010 International Business Machines,Copyright 2002 Richard Boulton", - "purl" : "pkg:maven/org.apache.lucene/lucene-join@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "58a8d7a9-ae8d-4f1c-997f-ecd5aaebe607" - } ], - "type" : "library", - "bom-ref" : "lucene-join-8.11.3.jar" - }, { - "group" : "aria-hidden", - "name" : "aria-hidden-1.2.4.tgz", - "version" : "1.2.4", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b78e383fdbc04d05762c78b4a25a501e736c4522" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Anton Korzunov", - "purl" : "pkg:npm/aria-hidden@1.2.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/aria-hidden#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "65d2552f-581c-4d8f-aeaf-b38b91b8fb33" - } ], - "type" : "library", - "bom-ref" : "aria-hidden-1.2.4.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-sarif-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-sarif-25.4-SNAPSHOT-2" - }, { - "group" : "org.elasticsearch", - "name" : "elasticsearch-geo-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :libs:elasticsearch-geo", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f868d5cae3a488a4f41c00336a355d989c14ceda" - } ], - "licenses" : [ { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - }, { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2018 MongoDB, Inc,Copyright 2009-2021 Elasticsearch", - "purl" : "pkg:maven/org.elasticsearch/elasticsearch-geo@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f198ea55-b256-4570-8d84-79092ec5daec" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-geo-7.17.28.jar" - }, { - "group" : "hoist-non-react-statics", - "name" : "hoist-non-react-statics-3.3.2.tgz", - "version" : "3.3.2", - "description" : "Copies non-react specific statics from a child component to a parent component", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Copyright 2015 Yahoo!", - "purl" : "pkg:npm/hoist-non-react-statics@3.3.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/mridgway/hoist-non-react-statics#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9001fc1d-eaa8-436e-b66a-bb5fcdf3cfe7" - } ], - "type" : "library", - "bom-ref" : "hoist-non-react-statics-3.3.2.tgz-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ws-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ws-25.4-SNAPSHOT" - }, { - "group" : "hoist-non-react-statics", - "name" : "hoist-non-react-statics-3.3.2.tgz", - "version" : "3.3.2", - "description" : "Copies non-react specific statics from a child component to a parent component", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Copyright 2015 Yahoo!", - "purl" : "pkg:npm/hoist-non-react-statics@3.3.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/mridgway/hoist-non-react-statics#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9001fc1d-eaa8-436e-b66a-bb5fcdf3cfe7" - } ], - "type" : "library", - "bom-ref" : "hoist-non-react-statics-3.3.2.tgz-3" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "sca-container-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sca-container-2025.3-SNAPSHOT" - }, { - "group" : "org.bouncycastle", - "name" : "bcutil-jdk18on-1.80.jar", - "version" : "1.80", - "description" : "The Bouncy Castle Java APIs for ASN.1 extension and utility APIs used to support bcpkix and bctls. This jar contains APIs for Java 8 and later.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b95726d1d49a0c65010c59a3e6640311d951bfd1" - } ], - "licenses" : [ { - "license" : { - "name" : "Bouncy Castle License", - "url" : "https://www.bouncycastle.org/licence.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.bouncycastle/bcutil-jdk18on@1.80", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.bouncycastle.org/download/bouncy-castle-java/" - }, { - "type" : "distribution", - "url" : "https://www.bouncycastle.org/download/bouncy-castle-java/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "592cdde9-acb8-46c1-a704-5e9b4051aff1" - } ], - "type" : "library", - "bom-ref" : "bcutil-jdk18on-1.80.jar" - }, { - "group" : "@emotion/cache", - "name" : "cache-11.10.5.tgz", - "version" : "11.10.5", - "description" : "emotion's cache", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c142da9351f94e47527ed458f7bbbbe40bb13c12" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/cache@11.10.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4e6f1b2b-850f-4e33-ad27-d6084b8e8883" - } ], - "type" : "library", - "bom-ref" : "cache-11.10.5.tgz" - }, { - "group" : "com.sonarsource.plsql", - "name" : "sonar-plsql-plugin-3.15.0.7123.sonar-plugin", - "version" : "3.15.0.7123", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "da9f2e408e4bacf17b8769d14199bfcbb2fbc44a" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d1a80937-3a11-4885-b91e-f36a4295998b" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-plsql-plugin-3.15.0.7123.sonar-plugin-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-sarif-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-sarif-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-sarif-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-sarif-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-sarif-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-sarif-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-sarif-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-sarif-25.4-SNAPSHOT-4" - }, { - "group" : "@radix-ui/react-popover", - "name" : "react-popover-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "604b783cdb3494ed4f16a58c17f0e81e61ab7775" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-popover@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e2c753c3-d278-4555-ae0b-e7f940b1790c" - } ], - "type" : "library", - "bom-ref" : "react-popover-1.1.1.tgz" - }, { - "group" : "@emotion/memoize", - "name" : "memoize-0.8.0.tgz", - "version" : "0.8.0", - "description" : "emotion's memoize utility", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f580f9beb67176fa57aae70b08ed510e1b18980f" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/memoize@0.8.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d8b30e4e-47b4-4c20-8d90-41a45d359713" - } ], - "type" : "library", - "bom-ref" : "memoize-0.8.0.tgz" - }, { - "group" : "org.sonarsource.java", - "name" : "check-list-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "75ef3b12086a1123da5b77bc4f514e8ff78eb31a" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/check-list@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "87c0b67f-b9bd-475d-9dd2-7b7384de9cdd" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "check-list-8.11.0.38440.jar" - }, { - "group" : "org.opensaml", - "name" : "opensaml-soap-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "SOAP Provider API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6814eae932019ddc9a4e1b66ae42b01783a0bc3a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-soap-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "81b9354e-fd7f-4752-be31-d610d81032a5" - } ], - "type" : "library", - "bom-ref" : "opensaml-soap-api-4.3.2.jar-2" - }, { - "group" : "org.apache.commons", - "name" : "commons-csv-1.14.0.jar", - "version" : "1.14.0", - "description" : "The Apache Commons CSV library provides a simple interface for reading and writing CSV files of various types.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c7cc057084126ea93617b2b809abf82432d8f9f5" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2005-2025 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.commons/commons-csv@1.14.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://commons.apache.org/proper/commons-csv/" - }, { - "type" : "distribution", - "url" : "https://commons.apache.org/proper/commons-csv/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "323216ca-5a8a-46fc-80c8-be068f31ca72" - } ], - "type" : "library", - "bom-ref" : "commons-csv-1.14.0.jar" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-analyzers-common-8.11.3.jar", - "version" : "8.11.3", - "description" : "Additional Analyzers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ee386077f5a15f79ba9172980a2c77941a72e26" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006 Dawid Weiss,Copyright 2001-2021 The Apache Software Foundation,Copyright 2009 by www.imdict.net,Copyright 1995-2008 International Business Machines Corporation and others,The Apache Software Foundation,Copyright 2007-2011 Dawid Weiss,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright 2001-2004 Copyright,Copyright 1999-2010 International Business Machines,Copyright © 2003,,Copyright 2002 Richard Boulton,Copyright 2001 Dr Martin Porter,Copyright 2011-2016 Yann Collet,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 2001-2009 Anders Moeller", - "purl" : "pkg:maven/org.apache.lucene/lucene-analyzers-common@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "677bbab1-2997-45f8-8a4f-9093c2d74667" - } ], - "type" : "library", - "bom-ref" : "lucene-analyzers-common-8.11.3.jar" - }, { - "group" : "org.ow2.asm", - "name" : "asm-commons-9.6.jar", - "version" : "9.6", - "description" : "Usefull class adapters based on ASM, a very small and fast Java bytecode manipulation framework", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f1a9e5508eff490744144565c47326c8648be309" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "OW2,Copyright 2011-2012 Bull S.A.S", - "purl" : "pkg:maven/org.ow2.asm/asm-commons@9.6?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.ow2.org/" - }, { - "type" : "distribution", - "url" : "http://www.ow2.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ee6d5f32-15bb-403a-86dc-5e127cb07bf2" - } ], - "type" : "library", - "bom-ref" : "asm-commons-9.6.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-ldap-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-ldap-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-ldap-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-ldap-25.4-SNAPSHOT-2" - }, { - "group" : "strip-ansi-cjs", - "name" : "strip-ansi-cjs-6.0.1.tgz", - "version" : "6.0.1", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "7b1c34b9-899e-47d0-9450-99d590c781d5" - } ], - "type" : "library", - "bom-ref" : "strip-ansi-cjs-6.0.1.tgz" - }, { - "group" : "org.sonarsource.java", - "name" : "java-checks-common-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "84ce67a2e820976b7459c2011e19006fd05455d2" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-checks-common@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "766154cb-8cf8-43a5-b625-ba598a9ddccb" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-checks-common-8.11.0.38440.jar" - }, { - "group" : "good-listener", - "name" : "good-listener-1.2.2.tgz", - "version" : "1.2.2", - "description" : "A more versatile way of adding & removing event listeners", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Zeno Rocha", - "purl" : "pkg:npm/good-listener@1.2.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/zenorocha/good-listener#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "221122e7-0cd4-4ffd-82ea-71f7242f6e7a" - } ], - "type" : "library", - "bom-ref" : "good-listener-1.2.2.tgz" - }, { - "group" : "org.springframework.security", - "name" : "spring-security-crypto-6.4.4.jar", - "version" : "6.4.4", - "description" : "Spring Security", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "914088f7c73375ee02cbe69c159b6460dc2f346b" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.springframework.security/spring-security-crypto@6.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-security" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-security" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d44ab510-dad8-4390-b20d-b3e3f1a2e66f" - } ], - "type" : "library", - "bom-ref" : "spring-security-crypto-6.4.4.jar" - }, { - "group" : "com.h2database", - "name" : "h2-2.3.232.jar", - "version" : "2.3.232", - "description" : "H2 Database Engine", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4fcc05d966ccdb2812ae8b9a718f69226c0cf4e2" - } ], - "licenses" : [ { - "license" : { - "id" : "MPL-2.0", - "url" : "http://mozilla.org/MPL/2.0/index.html" - } - }, { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.h2database/h2@2.3.232", - "externalReferences" : [ { - "type" : "website", - "url" : "https://h2database.com" - }, { - "type" : "distribution", - "url" : "https://h2database.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "05df9d6b-989c-4bba-8b4b-49321a6b01e7" - } ], - "type" : "library", - "bom-ref" : "h2-2.3.232.jar" - }, { - "group" : "com.sonarsource.cobol", - "name" : "cobol-api-5.8.1.8428.jar", - "version" : "5.8.1.8428", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "241dbcf3e0320233a7851a7595936a81d22988ac" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8d465d57-24f0-4768-bc1b-6a6f7e0a0744" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "cobol-api-5.8.1.8428.jar" - }, { - "group" : "@radix-ui/react-dismissable-layer", - "name" : "react-dismissable-layer-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2cd0a49a732372513733754e6032d3fb7988834e" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-dismissable-layer@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b683d99c-c60a-4f0b-a39b-7e5a77225b97" - } ], - "type" : "library", - "bom-ref" : "react-dismissable-layer-1.1.0.tgz" - }, { - "group" : "org.sonarsource.python", - "name" : "python-commons-5.2.0.20808.jar", - "version" : "5.2.0.20808", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "eab0176d12b4eaf0e303d5872f893d18207acead" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.python/python-commons@5.2.0.20808", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a0560dfc-e6c7-49a2-81e4-dd73c0a4530c" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "python-commons-5.2.0.20808.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-bitbucket-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-bitbucket-25.4-SNAPSHOT" - }, { - "group" : "react", - "name" : "react-18.3.1.tgz", - "version" : "18.3.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "49ab892009c53933625bd16b2533fc754cab2891" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Facebook, Inc. and its affiliates", - "purl" : "pkg:npm/react@18.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://reactjs.org/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react/-/react-18.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "dc38cd80-b9da-47e6-b947-bc872d9b0410" - } ], - "type" : "library", - "bom-ref" : "react-18.3.1.tgz" - }, { - "group" : "org.kohsuke", - "name" : "github-api-1.327.jar", - "version" : "1.327", - "description" : "GitHub API for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "82c1da388b88856b769db2ebf68b7cd7ae6a17a5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.kohsuke/github-api@1.327", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "17ac24b2-c9fc-49e7-a3ba-2f795f2854dc" - } ], - "type" : "library", - "bom-ref" : "github-api-1.327.jar" - }, { - "group" : "popper.js", - "name" : "popper.js-1.16.1.tgz", - "version" : "1.16.1", - "description" : "A kickass library to manage your poppers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2a223cb3dc7b6213d740e40372be40de43e65b1b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2016 Federico Zivolo,Copyright 2016 Federico Zivolo and contributors,Copyright 2016 **Federico Zivolo**", - "purl" : "pkg:npm/popper.js@1.16.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://popper.js.org/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "244dd647-df8f-4d66-be10-e4430c1e9338" - } ], - "type" : "library", - "bom-ref" : "popper.js-1.16.1.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-25.4-SNAPSHOT-3" - }, { - "group" : "@emotion/utils", - "name" : "utils-1.2.1.tgz", - "version" : "1.2.1", - "description" : "internal utils for emotion", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bbab58465738d31ae4cb3dbb6fc00a5991f755e4" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/utils@1.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2a21d08f-501d-4573-8d78-32e7227419e5" - } ], - "type" : "library", - "bom-ref" : "utils-1.2.1.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-7" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-9" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-8" - }, { - "group" : "csstype", - "name" : "csstype-3.0.11.tgz", - "version" : "3.0.11", - "description" : "Strict TypeScript and Flow types for style based on MDN data", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d66700c5eacfac1940deb4e3ee5642792d85cd33" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017-2018 Fredrik Nicol", - "purl" : "pkg:npm/csstype@3.0.11", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/frenic/csstype#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d4a159e6-c867-4f46-ba37-4d3a9209cbeb" - } ], - "type" : "library", - "bom-ref" : "csstype-3.0.11.tgz" - }, { - "group" : "@formatjs/intl-displaynames", - "name" : "intl-displaynames-6.6.8.tgz", - "version" : "6.6.8", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2f5afac8df83167f5a6ef8543600eaf1ef99c885" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2023 FormatJS", - "purl" : "pkg:npm/%40formatjs/intl-displaynames@6.6.8", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/formatjs/formatjs" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.6.8.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "78f1e598-c15c-4bb5-88c6-f7977e00ae6f" - } ], - "type" : "library", - "bom-ref" : "intl-displaynames-6.6.8.tgz" - }, { - "group" : "@radix-ui/react-tooltip", - "name" : "react-tooltip-1.1.2.tgz", - "version" : "1.1.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c42db2ffd7dcc6ff3d65407c8cb70490288f518d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-tooltip@1.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "507b7fe1-a4e2-4998-b77b-a17b5c09585c" - } ], - "type" : "library", - "bom-ref" : "react-tooltip-1.1.2.tgz" - }, { - "group" : "@babel/highlight", - "name" : "highlight-7.5.0.tgz", - "version" : "7.5.0", - "description" : "Syntax highlight JavaScript strings for output in terminals.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "56d11312bd9248fa619591d02472be6e8cb32540" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/highlight@7.5.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babeljs.io/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "420cf325-49c7-4edc-924d-2130837246c6" - } ], - "type" : "library", - "bom-ref" : "highlight-7.5.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-dao-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-dao-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-dao-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-dao-25.4-SNAPSHOT-4" - }, { - "group" : "use-callback-ref", - "name" : "use-callback-ref-1.3.2.tgz", - "version" : "1.3.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6134c7f6ff76e2be0b56c809b17a650c942b1693" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Anton Korzunov", - "purl" : "pkg:npm/use-callback-ref@1.3.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/use-callback-ref#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "94b88308-3b6d-4d5f-9f43-7c78605aae33" - } ], - "type" : "library", - "bom-ref" : "use-callback-ref-1.3.2.tgz" - }, { - "group" : "parse-json", - "name" : "parse-json-5.2.0.tgz", - "version" : "5.2.0", - "description" : "Parse JSON with more helpful errors", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c76fc66dee54231c962b22bcc8a72cf2f99753cd" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/parse-json@5.2.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/parse-json#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "91198ec1-2350-4462-ba7f-a4136fd185d4" - } ], - "type" : "library", - "bom-ref" : "parse-json-5.2.0.tgz-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-dao-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-dao-25.4-SNAPSHOT-2" - }, { - "group" : "uc.micro", - "name" : "uc.micro-2.0.0.tgz", - "version" : "2.0.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "84b3c335c12b1497fd9e80fcd3bfa7634c363ff1" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Mathias Bynens <https://mathiasbynens.be/>", - "purl" : "pkg:npm/uc.micro@2.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/markdown-it/uc.micro#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "7e9d3654-0c43-492e-980a-2427d6099e11" - } ], - "type" : "library", - "bom-ref" : "uc.micro-2.0.0.tgz" - }, { - "group" : "com.sonarsource.tsql", - "name" : "tsql-frontend-1.14.0.7614.jar", - "version" : "1.14.0.7614", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "afe6baf1f6f2771a1e35640561f8b4ff357bd85c" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "525336a1-37d6-497a-bd38-f0e67d8ce96e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "tsql-frontend-1.14.0.7614.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-dao-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-dao-25.4-SNAPSHOT-7" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-dao-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-dao-25.4-SNAPSHOT-8" - }, { - "group" : "org.springframework", - "name" : "spring-core-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Core", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d6786db7122037bf605e54e3b35f262a19b8d502" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2009 OW2 Consortium,Copyright 2002-2025 Pivotal, Inc,Copyright 2000-2011 INRIA,Copyright 2006-2019 Joe Walnes", - "purl" : "pkg:maven/org.springframework/spring-core@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9f627b46-59b1-4347-8181-1aec44039053" - } ], - "type" : "library", - "bom-ref" : "spring-core-6.2.5.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-dao-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-dao-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-ws-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-ws-25.4-SNAPSHOT" - }, { - "group" : "scrollparent", - "name" : "scrollparent-2.1.0.tgz", - "version" : "2.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6cae915c953835886a6ba0d77fdc2bb1ed09076d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Ola Holmström <olaholmstrom+github@gmail.com>", - "purl" : "pkg:npm/scrollparent@2.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/olahol/scrollparent.js#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/scrollparent/-/scrollparent-2.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6701ac73-9f3f-45bf-bddf-1427a2041e02" - } ], - "type" : "library", - "bom-ref" : "scrollparent-2.1.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-dao-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-dao-25.4-SNAPSHOT-6" - }, { - "group" : "org.jspecify", - "name" : "jspecify-1.0.0.jar", - "version" : "1.0.0", - "description" : "An artifact of well-named and well-specified annotations to power static analysis checks", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7425a601c1c7ec76645a78d22b8c6a627edee507" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jspecify/jspecify@1.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "http://jspecify.org/" - }, { - "type" : "distribution", - "url" : "http://jspecify.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5ffc6ed5-84ca-4841-9ee6-645f63f68f98" - } ], - "type" : "library", - "bom-ref" : "jspecify-1.0.0.jar" - }, { - "group" : "d3-transition", - "name" : "d3-transition-3.0.1.tgz", - "version" : "3.0.1", - "description" : "Animated transitions for D3 selections.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6869fdde1448868077fdd5989200cb61b2a1645f" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock,Copyright 2010-2021 Mike Bostock", - "purl" : "pkg:npm/d3-transition@3.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-transition/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "569ec39e-d00d-4315-a643-48e5871dc1c8" - } ], - "type" : "library", - "bom-ref" : "d3-transition-3.0.1.tgz" - }, { - "group" : "com.sonarsource.jcl", - "name" : "jcl-frontend-1.4.1.1493.jar", - "version" : "1.4.1.1493", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ec9108a46771cdc7b50b26b210a6fbd5f40145e1" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ba5832cc-86cc-4402-b7f9-617abbc844d3" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "jcl-frontend-1.4.1.1493.jar-2" - }, { - "group" : "type-fest", - "name" : "type-fest-4.20.1.tgz", - "version" : "4.20.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d97bb1e923bf524e5b4b43421d586760fb2ee8be" - } ], - "licenses" : [ { - "license" : { - "id" : "CC0-1.0", - "url" : "https://spdx.org/licenses/CC0-1.0.html" - } - }, { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright and Related Rights (defined below) upon the creator,Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/type-fest@4.20.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/type-fest#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/type-fest/-/type-fest-4.20.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ab3f276d-b5da-4895-943e-1bd1d3d58036" - } ], - "type" : "library", - "bom-ref" : "type-fest-4.20.1.tgz" - }, { - "group" : "com.googlecode.java-diff-utils", - "name" : "diffutils-1.3.0.jar", - "version" : "1.3.0", - "description" : "The DiffUtils library for computing diffs, applying patches, generationg side-by-side view in Java.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7e060dd5b19431e6d198e91ff670644372f60fbd" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.googlecode.java-diff-utils/diffutils@1.3.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://code.google.com/p/java-diff-utils/" - }, { - "type" : "distribution", - "url" : "http://code.google.com/p/java-diff-utils/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "87d5e457-1901-408a-8e34-24d0f86d00a5" - } ], - "type" : "library", - "bom-ref" : "diffutils-1.3.0.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-monitoring-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-monitoring-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-monitoring-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-monitoring-25.4-SNAPSHOT-2" - }, { - "group" : "org.slf4j", - "name" : "jcl-over-slf4j-2.0.17.jar", - "version" : "2.0.17", - "description" : "JCL 1.2 implemented over SLF4J", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "76ea503eb688f06556a9ba69995d7eab63e34531" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "QOS.ch,Copyright 2004-2022 QOS.ch Sarl", - "purl" : "pkg:maven/org.slf4j/jcl-over-slf4j@2.0.17", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.slf4j.org" - }, { - "type" : "distribution", - "url" : "http://www.slf4j.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b127e28f-d580-4ff7-ab2f-b998d42d4436" - } ], - "type" : "library", - "bom-ref" : "jcl-over-slf4j-2.0.17.jar" - }, { - "group" : "@emotion/sheet", - "name" : "sheet-1.2.2.tgz", - "version" : "1.2.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d58e788ee27267a14342303e1abb3d508b6d0fec" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/sheet@1.2.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d521c889-1ee1-4762-a301-32b1b5699749" - } ], - "type" : "library", - "bom-ref" : "sheet-1.2.2.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-2" - }, { - "group" : "org.elasticsearch", - "name" : "elasticsearch-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :server", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "632df2a825e835371c70dc871a157e92b9befb8f" - } ], - "licenses" : [ { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - }, { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch/elasticsearch@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "017209b5-31cf-42d7-b22f-110d5b615ea0" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-7.17.28.jar" - }, { - "group" : "io.prometheus", - "name" : "simpleclient_tracer_otel_agent-0.16.0.jar", - "version" : "0.16.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "009d724771e339ff7ec6cd7c0cc170d3470904c5" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2015 The Prometheus Authors", - "purl" : "pkg:maven/io.prometheus/simpleclient_tracer_otel_agent@0.16.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://github.com/prometheus/client_java" - }, { - "type" : "distribution", - "url" : "http://github.com/prometheus/client_java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "c0cbcdbc-2364-4c83-aa44-7bd13a3a8afa" - } ], - "type" : "library", - "bom-ref" : "simpleclient-tracer-otel-agent-0.16.0.jar" - }, { - "group" : "@babel/types", - "name" : "types-7.16.8.tgz", - "version" : "7.16.8", - "description" : "Babel Types is a Lodash-esque utility library for AST nodes", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0ba5da91dd71e0a4e7781a30f22770831062e3c1" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors,Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/types@7.16.8", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-types" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "8ba5467f-c5aa-4a38-a81c-efcca3d1872e" - } ], - "type" : "library", - "bom-ref" : "types-7.16.8.tgz" - }, { - "group" : "ignore", - "name" : "ignore-6.0.2.tgz", - "version" : "6.0.2", - "description" : "Ignore is a manager and filter for .gitignore rules, the one used by eslint, gitbook and many others.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "77cccb72a55796af1b6d2f9eb14fa326d24f4283" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Kael Zhang <i@kael.me>, contributors", - "purl" : "pkg:npm/ignore@6.0.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/kaelzhang/node-ignore#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b2ac7fc0-98c3-4af6-aec4-dd4866bed7af" - } ], - "type" : "library", - "bom-ref" : "ignore-6.0.2.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT" - }, { - "group" : "org.thymeleaf", - "name" : "thymeleaf-3.1.3.RELEASE.jar", - "version" : "3.1.3.RELEASE", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "51474f2a90b282ee97dabcd159c7faf24790f373" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011-2022 The THYMELEAF team", - "purl" : "pkg:maven/org.thymeleaf/thymeleaf@3.1.3.RELEASE", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.thymeleaf.org" - }, { - "type" : "distribution", - "url" : "http://www.thymeleaf.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "08248c22-cea7-42c9-a73f-cf6425ea79cb" - } ], - "type" : "library", - "bom-ref" : "thymeleaf-3.1.3.RELEASE.jar" - }, { - "group" : "com.fasterxml.jackson.datatype", - "name" : "jackson-datatype-jdk8-2.18.3.jar", - "version" : "2.18.3", - "description" : "Add-on module for Jackson (https://github.com/FasterXML/jackson) to support JDK 8 data types.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "621558295660935134b171ce2b0d9ad6842ec2ff" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jdk8@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-modules-java8" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-modules-java8" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "303c249c-81ee-4daa-a299-281ad89a8133" - } ], - "type" : "library", - "bom-ref" : "jackson-datatype-jdk8-2.18.3.jar-2" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-sandbox-8.11.3.jar", - "version" : "8.11.3", - "description" : "Lucene Sandbox", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "91a0b7768d3242408bb32a18cd63fa528eafde79" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2001 Dr Martin Porter,Copyright 2002 Richard Boulton,The Apache Software Foundation,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright 2011-2016 Yann Collet,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 2009 by www.imdict.net,Copyright 2007-2011 Dawid Weiss,Copyright © 2003,,Copyright 2001-2004 Copyright,Copyright 1999-2010 International Business Machines,Copyright 1995-2008 International Business Machines Corporation and others,Copyright 2001-2021 The Apache Software Foundation,Copyright 2006 Dawid Weiss,Copyright 2001-2009 Anders Moeller", - "purl" : "pkg:maven/org.apache.lucene/lucene-sandbox@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "57f2d10d-d58d-4515-b046-e820d58317d6" - } ], - "type" : "library", - "bom-ref" : "lucene-sandbox-8.11.3.jar" - }, { - "group" : "org.apache.santuario", - "name" : "xmlsec-2.3.4.jar", - "version" : "2.3.4", - "description" : "Apache XML Security for Java supports XML-Signature Syntax and Processing, W3C Recommendation 12 February 2002, and XML Encryption Syntax and Processing, W3C Recommendation 10 December 2002. As of version 1.4, the library supports the standard Java API JSR-105: XML Digital Signature APIs.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7f2baecd896ae8e8b02b6090220537bd950eccbc" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2000-2023 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.santuario/xmlsec@2.3.4?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5e532597-5f09-4f90-92b2-bc4f2523de8f" - } ], - "type" : "library", - "bom-ref" : "xmlsec-2.3.4.jar-2" - }, { - "group" : "org.opensaml", - "name" : "opensaml-xmlsec-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "XML Security API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a7467d9618a617dde60745aaf89d0c457ac0caf8" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-xmlsec-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0762b33b-6689-4e72-9891-270bcfe693b2" - } ], - "type" : "library", - "bom-ref" : "opensaml-xmlsec-api-4.3.2.jar" - }, { - "group" : "@formatjs/icu-skeleton-parser", - "name" : "icu-skeleton-parser-1.8.2.tgz", - "version" : "1.8.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2252c949ae84ee66930e726130ea66731a123c9f" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2023 FormatJS", - "purl" : "pkg:npm/%40formatjs/icu-skeleton-parser@1.8.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/formatjs/formatjs#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6114d26b-b0d4-4082-b2a4-d0dc714a370b" - } ], - "type" : "library", - "bom-ref" : "icu-skeleton-parser-1.8.2.tgz" - }, { - "group" : "d3-hierarchy", - "name" : "d3-hierarchy-3.1.2.tgz", - "version" : "3.1.2", - "description" : "Layout algorithms for visualizing hierarchical data.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b01cd42c1eed3d46db77a5966cf726f8c09160c6" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock", - "purl" : "pkg:npm/d3-hierarchy@3.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-hierarchy/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1df158c9-d5eb-4240-ae60-336448165f07" - } ], - "type" : "library", - "bom-ref" : "d3-hierarchy-3.1.2.tgz" - }, { - "group" : "ini", - "name" : "ini-4.1.1.tgz", - "version" : "4.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d95b3d843b1e906e56d6747d5447904ff50ce7a1" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright Isaac Z. Schlueter and Contributors", - "purl" : "pkg:npm/ini@4.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/npm/ini#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "fa6689fc-d968-472e-b986-cf0f73ce5b0d" - } ], - "type" : "library", - "bom-ref" : "ini-4.1.1.tgz" - }, { - "group" : "@emotion/babel-plugin", - "name" : "babel-plugin-11.12.0.tgz", - "version" : "11.12.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7b43debb250c313101b3f885eba634f1d723fcc2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/babel-plugin@11.12.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://emotion.sh" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "78f9cf46-4a4c-4a64-9b06-38a48c530335" - } ], - "type" : "library", - "bom-ref" : "babel-plugin-11.12.0.tgz-3" - }, { - "group" : "com.sonarsource.python", - "name" : "sonar-python-enterprise-plugin-5.2.0.20808.sonar-plugin", - "version" : "5.2.0.20808", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e6ddaf14f75c1b3515c2e7ce2e9184a093628f1c" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2639681e-eac9-4407-875c-db1a807d06ac" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-python-enterprise-plugin-5.2.0.20808.sonar-plugin" - }, { - "group" : "@emotion/babel-plugin", - "name" : "babel-plugin-11.12.0.tgz", - "version" : "11.12.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7b43debb250c313101b3f885eba634f1d723fcc2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/babel-plugin@11.12.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://emotion.sh" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "78f9cf46-4a4c-4a64-9b06-38a48c530335" - } ], - "type" : "library", - "bom-ref" : "babel-plugin-11.12.0.tgz-2" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-jdk8-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Standard Library JDK 8 extension", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c7510d64a83411a649c76f2778304ddf71d7437b" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "37e0c6b6-c80e-4db7-a5e9-27ec5abf270a" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-jdk8-1.9.10.jar-4" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-jdk8-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Standard Library JDK 8 extension", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c7510d64a83411a649c76f2778304ddf71d7437b" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "37e0c6b6-c80e-4db7-a5e9-27ec5abf270a" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-jdk8-1.9.10.jar-5" - }, { - "group" : "org.spdx", - "name" : "spdx-java-model-3_0-1.0.0-RC2.jar", - "version" : "1.0.0-RC2", - "description" : "Generated java model source code", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4123a7b0723ff32036c8832aa56f96a3728a69b8" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.spdx/spdx-java-model-3_0@1.0.0-RC2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spdx/spdx-java-model-3_0" - }, { - "type" : "distribution", - "url" : "https://github.com/spdx/spdx-java-model-3_0" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "76ef4ab4-35c0-43c4-be9b-724a70601231" - } ], - "type" : "library", - "bom-ref" : "spdx-java-model-3-0-1.0.0-RC2.jar" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-jdk8-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Standard Library JDK 8 extension", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c7510d64a83411a649c76f2778304ddf71d7437b" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "37e0c6b6-c80e-4db7-a5e9-27ec5abf270a" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-jdk8-1.9.10.jar-2" - }, { - "group" : "@radix-ui/react-primitive", - "name" : "react-primitive-2.0.2.tgz", - "version" : "2.0.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ac8b7854d87b0d7af388d058268d9a7eb64ca8ef" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-primitive@2.0.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "76c2521f-c01d-405f-b5f3-83ebe45b2f8b" - } ], - "type" : "library", - "bom-ref" : "react-primitive-2.0.2.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-developer-server-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-developer-server-2025.3-SNAPSHOT" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-jdk8-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Standard Library JDK 8 extension", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c7510d64a83411a649c76f2778304ddf71d7437b" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "37e0c6b6-c80e-4db7-a5e9-27ec5abf270a" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-jdk8-1.9.10.jar-3" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-jdk8-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Standard Library JDK 8 extension", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c7510d64a83411a649c76f2778304ddf71d7437b" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "37e0c6b6-c80e-4db7-a5e9-27ec5abf270a" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-jdk8-1.9.10.jar" - }, { - "group" : "com.googlecode.javaewah", - "name" : "JavaEWAH-1.2.3.jar", - "version" : "1.2.3", - "description" : "The bit array data structure is implemented in Java as the BitSet class. Unfortunately, this fails to scale without compression. JavaEWAH is a word-aligned compressed variant of the Java bitset class. It uses a 64-bit run-length encoding (RLE) compression scheme. The goal of word-aligned compression is not to achieve the best compression, but rather to improve query processing time. Hence, we try to save CPU cycles, maybe at the expense of storage. However, the EWAH scheme we implemented is always more efficient storage-wise than an uncompressed bitmap (implemented in Java as the BitSet class). Unlike some alternatives, javaewah does not rely on a patented scheme.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "13a27c856e0c8808cee9a64032c58eee11c3adc9" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2009-2016 Daniel Lemire", - "purl" : "pkg:maven/com.googlecode.javaewah/JavaEWAH@1.2.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/lemire/javaewah" - }, { - "type" : "distribution", - "url" : "https://github.com/lemire/javaewah" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fe7f4a86-32ec-46b2-8d89-951d0d83f019" - } ], - "type" : "library", - "bom-ref" : "JavaEWAH-1.2.3.jar" - }, { - "group" : "@floating-ui/dom", - "name" : "dom-1.2.8.tgz", - "version" : "1.2.8", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "aee0f6ccc0787ab8fe741487a6e5e95b7b125375" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2021 Floating UI contributors", - "purl" : "pkg:npm/%40floating-ui/dom@1.2.8", - "externalReferences" : [ { - "type" : "website", - "url" : "https://floating-ui.com" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.8.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e8f33a61-1001-4fec-a422-18a4c5b5f569" - } ], - "type" : "library", - "bom-ref" : "dom-1.2.8.tgz" - }, { - "group" : "com.sonarsource.dbd", - "name" : "sonar-dbd-python-frontend-plugin-1.36.1.13250.sonar-plugin", - "version" : "1.36.1.13250", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fb460ae89f5ce9425a57b3801a9824f514f30359" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "cce9c7cf-02f5-42ba-ae18-7ed3a2322d34" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-dbd-python-frontend-plugin-1.36.1.13250.sonar-plugin" - }, { - "group" : "io.prometheus", - "name" : "simpleclient_tracer_common-0.16.0.jar", - "version" : "0.16.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "dec00ef7c6155c4ca1109ec8248f7ff58d8f6cd3" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2015 The Prometheus Authors", - "purl" : "pkg:maven/io.prometheus/simpleclient_tracer_common@0.16.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://github.com/prometheus/client_java" - }, { - "type" : "distribution", - "url" : "http://github.com/prometheus/client_java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "c3fb90bf-392a-4c8b-bf45-04c2f6c18822" - } ], - "type" : "library", - "bom-ref" : "simpleclient-tracer-common-0.16.0.jar" - }, { - "group" : "org.hamcrest", - "name" : "hamcrest-core-1.3.jar", - "version" : "1.3", - "description" : "This is the core API of hamcrest matcher framework to be used by third-party framework providers. This includes the a foundation set of matcher implementations for common operations.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "42a25dc3219429f0e5d060061f71acb49bf010a0" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2000-2006 www.hamcrest.org", - "purl" : "pkg:maven/org.hamcrest/hamcrest-core@1.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/hamcrest/JavaHamcrest" - }, { - "type" : "distribution", - "url" : "https://github.com/hamcrest/JavaHamcrest" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4bd49407-d7c1-4703-931e-339c01022796" - } ], - "type" : "library", - "bom-ref" : "hamcrest-core-1.3.jar" - }, { - "group" : "net.minidev", - "name" : "accessors-smart-2.5.2.jar", - "version" : "2.5.2", - "description" : "Java reflect give poor performance on getter setter an constructor calls, accessors-smart use ASM to speed up those calls.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ce16fd235cfee48e67eda33e684423bba09f7d07" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011-2024 JSON-SMART authors", - "purl" : "pkg:maven/net.minidev/accessors-smart@2.5.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://urielch.github.io/" - }, { - "type" : "distribution", - "url" : "https://urielch.github.io/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0d2a3326-e499-4dda-bee7-6766f57b8e32" - } ], - "type" : "library", - "bom-ref" : "accessors-smart-2.5.2.jar" - }, { - "group" : "is-lite", - "name" : "is-lite-1.2.1.tgz", - "version" : "1.2.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "401f30bfccd34cb8cc1283f958907c97859d8f25" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2018 Gil Barbara,Copyright 2019 Gil Barbara \"gilbarbara@gmail.com\" (mailto:gilbarbara@gmail.com)\" (https://github.com/gilbarbara)", - "purl" : "pkg:npm/is-lite@1.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/gilbarbara/is-lite#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/is-lite/-/is-lite-1.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "22c39c05-e774-4d74-9ac7-678bdf625ca3" - } ], - "type" : "library", - "bom-ref" : "is-lite-1.2.1.tgz" - }, { - "group" : "com.tdunning", - "name" : "t-digest-3.2.jar", - "version" : "3.2", - "description" : "Data structure which allows accurate estimation of quantiles and related rank statistics", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ab94758b0276a8a26102adf8d528cf6d0567b9a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.tdunning/t-digest@3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/tdunning/t-digest" - }, { - "type" : "distribution", - "url" : "https://github.com/tdunning/t-digest" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8b4f3bc8-fb85-4b19-ad11-c9edc530c68d" - } ], - "type" : "library", - "bom-ref" : "t-digest-3.2.jar" - }, { - "group" : "@radix-ui/react-id", - "name" : "react-id-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "de47339656594ad722eb87f94a6b25f9cffae0ed" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-id@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "865cfcfb-aaf6-4701-97e0-c29d6f8f3815" - } ], - "type" : "library", - "bom-ref" : "react-id-1.1.0.tgz" - }, { - "group" : "commons-logging", - "name" : "commons-logging-1.3.5.jar", - "version" : "1.3.5", - "description" : "Apache Commons Logging is a thin adapter allowing configurable bridging to other, well-known logging systems.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a3fcc5d3c29b2b03433aa2d2f2d2c1b1638924a1" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2001-2025 The Apache Software Foundation", - "purl" : "pkg:maven/commons-logging/commons-logging@1.3.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://commons.apache.org/proper/commons-logging/" - }, { - "type" : "distribution", - "url" : "https://commons.apache.org/proper/commons-logging/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3f88e36d-fd34-465f-8ba2-2da77c7c09d1" - } ], - "type" : "library", - "bom-ref" : "commons-logging-1.3.5.jar" - }, { - "group" : "com.sonarsource.jcl", - "name" : "jcl-checks-testkit-1.4.1.1493.jar", - "version" : "1.4.1.1493", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ed7378c8821442d3e83357a39260f1a881f1d083" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fce9aa9e-154d-46e7-be75-d3b1c37e0c2d" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "jcl-checks-testkit-1.4.1.1493.jar" - }, { - "group" : "esutils", - "name" : "esutils-2.0.2.tgz", - "version" : "2.0.2", - "description" : "utility box for ECMAScript language tools", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Copyright 2013 Yusuke Suzuki\" (http://github.com/Constellation)", - "purl" : "pkg:npm/esutils@2.0.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/estools/esutils" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "59a5b34a-227c-43e5-9085-f61d9ea93ff2" - } ], - "type" : "library", - "bom-ref" : "esutils-2.0.2.tgz" - }, { - "group" : "commons-io", - "name" : "commons-io-2.18.0.jar", - "version" : "2.18.0", - "description" : "The Apache Commons IO library contains utility classes, stream implementations, file filters, file comparators, endian transformation classes, and much more.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "44084ef756763795b31c578403dd028ff4a22950" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2002-2024 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/commons-io/commons-io@2.18.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://commons.apache.org/proper/commons-io/" - }, { - "type" : "distribution", - "url" : "https://commons.apache.org/proper/commons-io/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b458bc32-6aaa-461a-871f-5eb858ebf3b5" - } ], - "type" : "library", - "bom-ref" : "commons-io-2.18.0.jar" - }, { - "group" : "stylis", - "name" : "stylis-4.0.13.tgz", - "version" : "4.0.13", - "description" : "A Light–weight CSS Preprocessor", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f5db332e376d13cc84ecfe5dace9a2a51d954c91" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2016 Sultan Tarimo", - "purl" : "pkg:npm/stylis@4.0.13", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/thysultan/stylis.js" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "05b4f06b-10f6-4e46-851a-bdb0e6db7368" - } ], - "type" : "library", - "bom-ref" : "stylis-4.0.13.tgz" - }, { - "group" : "d3-format", - "name" : "d3-format-3.1.0.tgz", - "version" : "3.1.0", - "description" : "Format numbers for human consumption.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9260e23a28ea5cb109e93b21a06e24e2ebd55641" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock,Copyright 2010-2021 Mike Bostock", - "purl" : "pkg:npm/d3-format@3.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-format/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2669dab8-baa7-432c-9545-dbfec2ac1954" - } ], - "type" : "library", - "bom-ref" : "d3-format-3.1.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-16" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-15" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-analyzer-recognizers-2.16.0.3141.jar", - "version" : "2.16.0.3141", - "description" : "Shared code recognizers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "135bda27fd8c302e41c91988ca055b8b48ba759e" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-analyzer-recognizers@2.16.0.3141", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "bf964831-012f-4b62-8002-47b3f2655dfd" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-analyzer-recognizers-2.16.0.3141.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-gitlab-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-18" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-gitlab-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-monitoring-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-monitoring-25.4-SNAPSHOT" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-17" - }, { - "group" : "scroll", - "name" : "scroll-3.0.1.tgz", - "version" : "3.0.1", - "description" : "animates the scroll top/left position of an element", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d5afb59fb3592ee3df31c89743e78b39e4cd8a26" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Michael Rhodes", - "purl" : "pkg:npm/scroll@3.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/michaelrhodes/scroll#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/scroll/-/scroll-3.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e9336511-fce5-492d-b03b-59bf67435d65" - } ], - "type" : "library", - "bom-ref" : "scroll-3.0.1.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-telemetry-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-telemetry-25.4-SNAPSHOT-2" - }, { - "group" : "com.squareup.okio", - "name" : "okio-jvm-3.6.0.jar", - "version" : "3.6.0", - "description" : "A modern I/O library for Android, Java, and Kotlin Multiplatform.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5600569133b7bdefe1daf9ec7f4abeb6d13e1786" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okio/okio-jvm@3.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/square/okio/" - }, { - "type" : "distribution", - "url" : "https://github.com/square/okio/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3d897012-bd5e-41a6-b406-8e2a9a0db6d3" - } ], - "type" : "library", - "bom-ref" : "okio-jvm-3.6.0.jar-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-gitlab-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-8" - }, { - "group" : "com.squareup.okio", - "name" : "okio-jvm-3.6.0.jar", - "version" : "3.6.0", - "description" : "A modern I/O library for Android, Java, and Kotlin Multiplatform.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5600569133b7bdefe1daf9ec7f4abeb6d13e1786" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okio/okio-jvm@3.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/square/okio/" - }, { - "type" : "distribution", - "url" : "https://github.com/square/okio/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3d897012-bd5e-41a6-b406-8e2a9a0db6d3" - } ], - "type" : "library", - "bom-ref" : "okio-jvm-3.6.0.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-gitlab-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-9" - }, { - "group" : "wrap-ansi-cjs", - "name" : "wrap-ansi-cjs-7.0.0.tgz", - "version" : "7.0.0", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "014895c2-14f9-4c94-a0df-f9585dfa8e48" - } ], - "type" : "library", - "bom-ref" : "wrap-ansi-cjs-7.0.0.tgz" - }, { - "group" : "org.tmatesoft.svnkit", - "name" : "svnkit-1.10.11.jar", - "version" : "1.10.11", - "description" : "Java(tm) library to manage Subversion working copies and repositories", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5b191b74bb77af2f755dc11d47badfb7c74ad4b5" - } ], - "licenses" : [ { - "license" : { - "id" : "TMate", - "url" : "https://spdx.org/licenses/TMate.html" - } - } ], - "copyright" : "Copyright 2004-2021 TMate Software", - "purl" : "pkg:maven/org.tmatesoft.svnkit/svnkit@1.10.11", - "externalReferences" : [ { - "type" : "website", - "url" : "https://svnkit.com/" - }, { - "type" : "distribution", - "url" : "https://svnkit.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "97c34e00-414f-481f-9065-e5882b06e3b4" - } ], - "type" : "library", - "bom-ref" : "svnkit-1.10.11.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10" - }, { - "group" : "com.squareup.okio", - "name" : "okio-jvm-3.6.0.jar", - "version" : "3.6.0", - "description" : "A modern I/O library for Android, Java, and Kotlin Multiplatform.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5600569133b7bdefe1daf9ec7f4abeb6d13e1786" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okio/okio-jvm@3.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/square/okio/" - }, { - "type" : "distribution", - "url" : "https://github.com/square/okio/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3d897012-bd5e-41a6-b406-8e2a9a0db6d3" - } ], - "type" : "library", - "bom-ref" : "okio-jvm-3.6.0.jar-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-gitlab-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-12" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-11" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-gitlab-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-5" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-backward-codecs-8.11.3.jar", - "version" : "8.11.3", - "description" : "Codecs for older versions of Lucene.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1cfc9941cdd393378bd9a4a45114d011cfb6c321" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2009 by www.imdict.net,Copyright 2001-2021 The Apache Software Foundation,Copyright 2007-2011 Dawid Weiss,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 2006 Dawid Weiss,Copyright 2001-2004 Copyright,Copyright 1995-2008 International Business Machines Corporation and others,Copyright 2001-2009 Anders Moeller,The Apache Software Foundation,Copyright 2011-2016 Yann Collet,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright © 2003,,Copyright 2002 Richard Boulton,Copyright 2001 Dr Martin Porter,Copyright 1999-2010 International Business Machines", - "purl" : "pkg:maven/org.apache.lucene/lucene-backward-codecs@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "534ab19b-4438-4dac-8fb3-faa32644c868" - } ], - "type" : "library", - "bom-ref" : "lucene-backward-codecs-8.11.3.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-gitlab-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-14" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-gitlab-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-7" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-13" - }, { - "group" : "com.sonarsource.plsql", - "name" : "plsql-squid-3.15.0.7123.jar", - "version" : "3.15.0.7123", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "40760cdebb3079f74192caf964944f768b499e7d" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "729ea8c8-a48f-4569-a28d-2ea2ced4d696" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "plsql-squid-3.15.0.7123.jar" - }, { - "group" : "com.sonarsource.python", - "name" : "sonar-python-enterprise-plugin-5.2.0.20808.sonar-plugin", - "version" : "5.2.0.20808", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e6ddaf14f75c1b3515c2e7ce2e9184a093628f1c" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2639681e-eac9-4407-875c-db1a807d06ac" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-python-enterprise-plugin-5.2.0.20808.sonar-plugin-2" - }, { - "group" : "@emotion/memoize", - "name" : "memoize-0.8.1.tgz", - "version" : "0.8.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c1ddb040429c6d21d38cc945fe75c818cfb68e17" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2016 Kye Hohenberger,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/memoize@0.8.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d17deaeb-8006-4478-9545-17630f2c0a35" - } ], - "type" : "library", - "bom-ref" : "memoize-0.8.1.tgz" - }, { - "group" : "org.sonarsource.flex", - "name" : "flex-checks-2.14.0.5032.jar", - "version" : "2.14.0.5032", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0039df08f354e06b5a99c6f6df4be609fae6c674" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.flex/flex-checks@2.14.0.5032", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b8a27012-939f-4ecf-894d-c5d533c0a7dc" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "flex-checks-2.14.0.5032.jar" - }, { - "group" : "org.postgresql", - "name" : "postgresql-42.7.5.jar", - "version" : "42.7.5", - "description" : "PostgreSQL JDBC Driver Postgresql", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "747897987b86c741fb8b56f6b81929ae1e6e4b46" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Copyright 2003-2024 PostgreSQL Global Developme,PostgreSQL Global Development Group,Copyright nt Group,Copyright 1997 PostgreSQL Global Development Group", - "purl" : "pkg:maven/org.postgresql/postgresql@42.7.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://jdbc.postgresql.org" - }, { - "type" : "distribution", - "url" : "https://jdbc.postgresql.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7b817f1d-05b9-4aee-8335-765582928f0e" - } ], - "type" : "library", - "bom-ref" : "postgresql-42.7.5.jar" - }, { - "group" : "react-router", - "name" : "react-router-6.26.2.tgz", - "version" : "6.26.2", - "description" : "Declarative routing for React", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2f0a68999168954431cdc29dd36cec3b6fa44a7e" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015-2019 React Training LLC,Copyright 2022-2023 Shopify Inc,Copyright 2020-2021 Remix Software Inc", - "purl" : "pkg:npm/react-router@6.26.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/remix-run/react-router#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ac03bd79-88af-4bb3-b7fd-f9a106e7a2be" - } ], - "type" : "library", - "bom-ref" : "react-router-6.26.2.tgz" - }, { - "group" : "junit", - "name" : "junit-4.13.2.jar", - "version" : "4.13.2", - "description" : "JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - } ], - "copyright" : "JUnit", - "purl" : "pkg:maven/junit/junit@4.13.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.junit.org" - }, { - "type" : "distribution", - "url" : "http://www.junit.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a1e71c9c-757f-44d4-b60d-48c6d7ed845c" - } ], - "type" : "library", - "bom-ref" : "junit-4.13.2.jar-2" - }, { - "group" : "form-data", - "name" : "form-data-4.0.0.tgz", - "version" : "4.0.0", - "description" : "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "93919daeaf361ee529584b9b31664dc12c9fa452" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2012 Felix Geisendörfer (felix@debuggable.com) and contributors,Copyright 2012 Felix Geisendörfer (felix@debuggable.com) and contributors", - "purl" : "pkg:npm/form-data@4.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/form-data/form-data#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9e857b57-2748-45cc-9188-dff349175158" - } ], - "type" : "library", - "bom-ref" : "form-data-4.0.0.tgz-2" - }, { - "group" : "org.sonarsource.sslr", - "name" : "sslr-core-1.24.0.633.jar", - "version" : "1.24.0.633", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f2b17ad23d5cd2533c01b9cb3332dae18d9e1521" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.sslr/sslr-core@1.24.0.633?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ee2cc5f7-1681-4249-818d-c692483eb583" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sslr-core-1.24.0.633.jar" - }, { - "group" : "@sonarsource/echoes-react", - "name" : "echoes-react-0.16.1.tgz", - "version" : "0.16.1", - "description" : "React implementation of Echoes, SONAR's Design System", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9c119c08e99adb3a8a1f518a2287c82f68eba5c0" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2023-2025 SonarSource", - "purl" : "pkg:npm/%40sonarsource/echoes-react@0.16.1", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@sonarsource/echoes-react/-/echoes-react-0.16.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "bfb29140-ec68-42d0-8e2d-b3f185adf6f8" - } ], - "type" : "library", - "bom-ref" : "echoes-react-0.16.1.tgz" - }, { - "group" : "com.fasterxml", - "name" : "classmate-1.7.0.jar", - "version" : "1.7.0", - "description" : "Library for introspecting types with full generic information including resolving of field and method types.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0e98374da1f2143ac8e6e0a95036994bb19137a3" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml/classmate@1.7.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://fasterxml.com" - }, { - "type" : "distribution", - "url" : "https://fasterxml.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5e993932-dd15-4073-9a76-642b2b50468f" - } ], - "type" : "library", - "bom-ref" : "classmate-1.7.0.jar" - }, { - "group" : "org.slf4j", - "name" : "jcl-over-slf4j-2.0.17.jar", - "version" : "2.0.17", - "description" : "JCL 1.2 implemented over SLF4J", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "76ea503eb688f06556a9ba69995d7eab63e34531" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "QOS.ch,Copyright 2004-2022 QOS.ch Sarl", - "purl" : "pkg:maven/org.slf4j/jcl-over-slf4j@2.0.17", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.slf4j.org" - }, { - "type" : "distribution", - "url" : "http://www.slf4j.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b127e28f-d580-4ff7-ab2f-b998d42d4436" - } ], - "type" : "library", - "bom-ref" : "jcl-over-slf4j-2.0.17.jar-2" - }, { - "group" : "@emotion/babel-plugin", - "name" : "babel-plugin-11.11.0.tgz", - "version" : "11.11.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/babel-plugin@11.11.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://emotion.sh" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6254ee50-97fb-4878-9e32-e1e44d325243" - } ], - "type" : "library", - "bom-ref" : "babel-plugin-11.11.0.tgz" - }, { - "group" : "react-innertext", - "name" : "react-innertext-1.1.5.tgz", - "version" : "1.1.5", - "description" : "Returns the innerText of a React JSX object.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8147ac54db3f7067d95f49e2d2c05a720d27d8d0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Charles Stover", - "purl" : "pkg:npm/react-innertext@1.1.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/CharlesStover/react-innertext#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-innertext/-/react-innertext-1.1.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f38db727-130a-4ec1-962e-8c355eb51821" - } ], - "type" : "library", - "bom-ref" : "react-innertext-1.1.5.tgz" - }, { - "group" : "d3-selection", - "name" : "d3-selection-3.0.0.tgz", - "version" : "3.0.0", - "description" : "Data-driven DOM manipulation: select elements and join them to data.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c25338207efa72cc5b9bd1458a1a41901f1e1b31" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2024 Mike Bostock and Observable, Inc.", - "purl" : "pkg:npm/d3-selection@3.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-selection/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "8e911040-f060-4109-a717-4ad44baaaff3" - } ], - "type" : "library", - "bom-ref" : "d3-selection-3.0.0.tgz" - }, { - "group" : "safe-buffer", - "name" : "safe-buffer-5.1.2.tgz", - "version" : "5.1.2", - "description" : "Safer Node.js Buffer API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "991ec69d296e0313747d59bdfd2b745c35f8828d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Feross Aboukhadijeh\" (http://feross.org),Copyright Feross Aboukhadijeh", - "purl" : "pkg:npm/safe-buffer@5.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/feross/safe-buffer" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e85436e5-19ae-4915-b9be-7fc40f5a50a3" - } ], - "type" : "library", - "bom-ref" : "safe-buffer-5.1.2.tgz" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-common-2.1.10.pom", - "version" : "2.1.10", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "57258d8a215853035cc3f43d7f490a36532f2e94" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dd4f288d-d93a-4546-8e67-61c0e2263723" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-common-2.1.10.pom" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-40" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-databind-2.18.3.jar", - "version" : "2.18.3", - "description" : "General data-binding functionality for Jackson: works on core streaming API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "537e3886263e3b3464385040453e92567fd509e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3a69f1c-e028-4d0e-91e1-4d7694e6f829" - } ], - "type" : "library", - "bom-ref" : "jackson-databind-2.18.3.jar-10" - }, { - "group" : "@floating-ui/utils", - "name" : "utils-0.2.8.tgz", - "version" : "0.2.8", - "description" : "Utilities for Floating UI", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "21a907684723bbbaa5f0974cf7730bd797eb8e62" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2021 Floating UI contributors", - "purl" : "pkg:npm/%40floating-ui/utils@0.2.8", - "externalReferences" : [ { - "type" : "website", - "url" : "https://floating-ui.com" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "220d2a94-95ab-4632-a7e4-213ebb9f2dc4" - } ], - "type" : "library", - "bom-ref" : "utils-0.2.8.tgz" - }, { - "group" : "get-nonce", - "name" : "get-nonce-1.0.1.tgz", - "version" : "1.0.1", - "description" : "returns nonce", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fdf3f0278073820d2ce9426c18f07481b1e0cdf3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2020 Anton Korzunov", - "purl" : "pkg:npm/get-nonce@1.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/get-nonce" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d861f262-e1d6-4670-93ad-a1a880a94a09" - } ], - "type" : "library", - "bom-ref" : "get-nonce-1.0.1.tgz" - }, { - "group" : "org.apache.velocity", - "name" : "velocity-engine-core-2.3.jar", - "version" : "2.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e2133b723d0e42be74880d34de6bf6538ea7f915" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2002-2020 The Apache Software Foundation,Copyright 2000-2020 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.velocity/velocity-engine-core@2.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "bdaabffd-7299-4c67-a6a4-46c67a1d7737" - } ], - "type" : "library", - "bom-ref" : "velocity-engine-core-2.3.jar" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-databind-2.18.3.jar", - "version" : "2.18.3", - "description" : "General data-binding functionality for Jackson: works on core streaming API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "537e3886263e3b3464385040453e92567fd509e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3a69f1c-e028-4d0e-91e1-4d7694e6f829" - } ], - "type" : "library", - "bom-ref" : "jackson-databind-2.18.3.jar-11" - }, { - "group" : "d3-scale", - "name" : "d3-scale-4.0.2.tgz", - "version" : "4.0.2", - "description" : "Encodings that map abstract data to visual representation.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "82b38e8e8ff7080764f8dcec77bd4be393689396" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2024 Mike Bostock and Observable, Inc.", - "purl" : "pkg:npm/d3-scale@4.0.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-scale/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b2fd8e8a-7a2c-4e52-84f1-eb2d23133c12" - } ], - "type" : "library", - "bom-ref" : "d3-scale-4.0.2.tgz" - }, { - "group" : "net.shibboleth.utilities", - "name" : "java-support-8.4.2.jar", - "version" : "8.4.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "465664648ce3f261da4c1ee32e1082cceba1f495" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/net.shibboleth.utilities/java-support@8.4.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dbfed0b7-0732-41bd-b682-60cc744c3634" - } ], - "type" : "library", - "bom-ref" : "java-support-8.4.2.jar" - }, { - "group" : "com.sonarsource.pli", - "name" : "pli-squid-1.16.0.5325.jar", - "version" : "1.16.0.5325", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "91d45632e6e074b028386d53aa4c648fa3034bf8" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "97d805b9-f5f0-445a-aa71-c2200780e229" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "pli-squid-1.16.0.5325.jar-2" - }, { - "group" : "io.prometheus", - "name" : "simpleclient_common-0.16.0.jar", - "version" : "0.16.0", - "description" : "Common code used by various modules of the Simpleclient.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a09a8c790a20309b942a9fdbfe77da22407096e6" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2015 The Prometheus Authors", - "purl" : "pkg:maven/io.prometheus/simpleclient_common@0.16.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://github.com/prometheus/client_java" - }, { - "type" : "distribution", - "url" : "http://github.com/prometheus/client_java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0cf1c072-e3fe-4891-9317-78b5c78843d1" - } ], - "type" : "library", - "bom-ref" : "simpleclient-common-0.16.0.jar" - }, { - "group" : "@radix-ui/react-portal", - "name" : "react-portal-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1957f1eb2e1aedfb4a5475bd6867d67b50b1d15f" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-portal@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b130706c-4967-4c69-a6b4-9fbcd836bdda" - } ], - "type" : "library", - "bom-ref" : "react-portal-1.1.1.tgz" - }, { - "group" : "com.sonarsource.security", - "name" : "sonar-security-python-frontend-plugin-11.1.0.35630.sonar-plugin", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c0d708a3e4a8deef188ae34da0837b9ebea94086" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "15e451d3-9e87-4d8b-bb98-673bdc7f5fce" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-security-python-frontend-plugin-11.1.0.35630.sonar-plugin" - }, { - "group" : "react-remove-scroll", - "name" : "react-remove-scroll-2.5.7.tgz", - "version" : "2.5.7", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "15a1fd038e8497f65a695bf26a4a57970cac1ccb" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Anton Korzunov", - "purl" : "pkg:npm/react-remove-scroll@2.5.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/react-remove-scroll#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "99fcd6b2-32d0-4fee-b773-96ea32a7a82b" - } ], - "type" : "library", - "bom-ref" : "react-remove-scroll-2.5.7.tgz" - }, { - "group" : "@emotion/cache", - "name" : "cache-11.7.1.tgz", - "version" : "11.7.1", - "description" : "emotion's cache", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "08d080e396a42e0037848214e8aa7bf879065539" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/cache@11.7.1", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "840363d5-dc17-4475-8577-68426b90c624" - } ], - "type" : "library", - "bom-ref" : "cache-11.7.1.tgz" - }, { - "group" : "org.sonarsource.dotnet", - "name" : "sonar-vbnet-core-10.7.0.110445.jar", - "version" : "10.7.0.110445", - "description" : "Shared code between VB.NET plugins", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a597df03f1805a11f4814d2bff46ded446f30b1f" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.dotnet/sonar-vbnet-core@10.7.0.110445", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/SonarSource/sonar-dotnet" - }, { - "type" : "distribution", - "url" : "https://github.com/SonarSource/sonar-dotnet" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "45b7b76b-d08c-4795-9e02-4f819b35e6da" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-vbnet-core-10.7.0.110445.jar-2" - }, { - "group" : "com.fasterxml.woodstox", - "name" : "woodstox-core-7.0.0.jar", - "version" : "7.0.0", - "description" : "Woodstox is a high-performance XML processor that implements Stax (JSR-173), SAX2 and Stax2 APIs", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "beb19c02e7e28a8a4acf4a9cc8c3280ec3b94722" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.fasterxml.woodstox/woodstox-core@7.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "http://fasterxml.com" - }, { - "type" : "distribution", - "url" : "http://fasterxml.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5409df14-d78c-45ce-9895-3af65c93e233" - } ], - "type" : "library", - "bom-ref" : "woodstox-core-7.0.0.jar-2" - }, { - "group" : "@radix-ui/react-dropdown-menu", - "name" : "react-dropdown-menu-2.1.5.tgz", - "version" : "2.1.5", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "82293e6a7572f77c18f3aebb943676019a7872da" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-dropdown-menu@2.1.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c6a371f1-a6f8-4de7-912a-e45ee2814a91" - } ], - "type" : "library", - "bom-ref" : "react-dropdown-menu-2.1.5.tgz" - }, { - "group" : "uc.micro", - "name" : "uc.micro-2.1.0.tgz", - "version" : "2.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Mathias Bynens <https://mathiasbynens.be/>", - "purl" : "pkg:npm/uc.micro@2.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/markdown-it/uc.micro#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9f8a6ecd-443a-4775-b64e-86347e8f14f9" - } ], - "type" : "library", - "bom-ref" : "uc.micro-2.1.0.tgz" - }, { - "group" : "d3-interpolate", - "name" : "d3-interpolate-3.0.1.tgz", - "version" : "3.0.1", - "description" : "Interpolate numbers, colors, strings, arrays, objects, whatever!", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock,Copyright 2010-2021 Mike Bostock", - "purl" : "pkg:npm/d3-interpolate@3.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-interpolate/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "27dbb633-fa80-43df-a0d3-844ecee6aea4" - } ], - "type" : "library", - "bom-ref" : "d3-interpolate-3.0.1.tgz-2" - }, { - "group" : "org.apache.tomcat.embed", - "name" : "tomcat-embed-jasper-10.1.39.jar", - "version" : "10.1.39", - "description" : "Core Tomcat implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4741a85a5a65bc677bbf6bfdd4603010a3197620" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2025 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.tomcat.embed/tomcat-embed-jasper@10.1.39", - "externalReferences" : [ { - "type" : "website", - "url" : "https://tomcat.apache.org/" - }, { - "type" : "distribution", - "url" : "https://tomcat.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "28da2218-200b-4194-8323-4b07338b7287" - } ], - "type" : "library", - "bom-ref" : "tomcat-embed-jasper-10.1.39.jar" - }, { - "group" : "org.springframework", - "name" : "spring-web-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Web", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b42d2c0acbe05bad4c849883aa8816c25b6c1d94" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2009 OW2 Consortium,Copyright 2002-2025 Pivotal, Inc,Copyright 2006-2019 Joe Walnes,Copyright 2000-2011 INRIA", - "purl" : "pkg:maven/org.springframework/spring-web@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e54e00e9-d18b-4637-b767-1f3cd64ceea0" - } ], - "type" : "library", - "bom-ref" : "spring-web-6.2.5.jar-3" - }, { - "group" : "org.opensaml", - "name" : "opensaml-security-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "Security API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "448431fafb3a26e5be9c3b3d8d223736d70edd86" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-security-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0c116992-a187-4aba-b94f-2a4fbc79dd9e" - } ], - "type" : "library", - "bom-ref" : "opensaml-security-api-4.3.2.jar" - }, { - "group" : "org.springframework", - "name" : "spring-web-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Web", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b42d2c0acbe05bad4c849883aa8816c25b6c1d94" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2009 OW2 Consortium,Copyright 2002-2025 Pivotal, Inc,Copyright 2006-2019 Joe Walnes,Copyright 2000-2011 INRIA", - "purl" : "pkg:maven/org.springframework/spring-web@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e54e00e9-d18b-4637-b767-1f3cd64ceea0" - } ], - "type" : "library", - "bom-ref" : "spring-web-6.2.5.jar-2" - }, { - "group" : "org.sonarsource.python", - "name" : "python-checks-5.2.0.20808.jar", - "version" : "5.2.0.20808", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7de761b0b91e136b735213a199ac5887bd54dfab" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.python/python-checks@5.2.0.20808", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dd14cf7d-2bf2-4a2d-8f3d-a1b9202857dd" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "python-checks-5.2.0.20808.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-13" - }, { - "group" : "react-is", - "name" : "react-is-16.13.1.tgz", - "version" : "16.13.1", - "description" : "Brand checking of React Elements.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "789729a4dc36de2999dc156dd6c1d9c18cea56a4" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Facebook, Inc. and its affiliates", - "purl" : "pkg:npm/react-is@16.13.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://reactjs.org/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "a9a87e81-2948-4e37-9529-cd4b58481ebd" - } ], - "type" : "library", - "bom-ref" : "react-is-16.13.1.tgz" - }, { - "group" : "@primer/octicons-react", - "name" : "octicons-react-19.11.0.tgz", - "version" : "19.11.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "011d2c18c32d8bf4c1628a7b6ed2c48872fe7efe" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2024 GitHub Inc", - "purl" : "pkg:npm/%40primer/octicons-react@19.11.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://primer.style/octicons" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@primer/octicons-react/-/octicons-react-19.11.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "01d6d893-7432-40ae-a251-c13ef8cd09f6" - } ], - "type" : "library", - "bom-ref" : "octicons-react-19.11.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-10" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-12" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-11" - }, { - "group" : "markdownlint-cli", - "name" : "markdownlint-cli-0.42.0.tgz", - "version" : "0.42.0", - "description" : "MarkdownLint Command Line Interface", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "45d2264ba3e0237a354bb620a80ca83572da3181" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2016-2020 Igor Shubovych,Copyright Igor Shubovych", - "purl" : "pkg:npm/markdownlint-cli@0.42.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/igorshubovych/markdownlint-cli#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.42.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5146e8fd-f01e-4276-a158-1c2d060703fa" - } ], - "type" : "library", - "bom-ref" : "markdownlint-cli-0.42.0.tgz" - }, { - "group" : "prop-types", - "name" : "prop-types-15.8.1.tgz", - "version" : "15.8.1", - "description" : "Runtime type checking for React props and similar objects.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "67d87bf1a694f48435cf332c24af10214a3140b5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Facebook, Inc,Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/prop-types@15.8.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://facebook.github.io/react/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "60178e0e-d363-4c55-a935-b464dceea180" - } ], - "type" : "library", - "bom-ref" : "prop-types-15.8.1.tgz" - }, { - "group" : "com.squareup.okhttp3", - "name" : "logging-interceptor-4.12.0.jar", - "version" : "4.12.0", - "description" : "Square’s meticulous HTTP client for Java and Kotlin.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e922c1f14d365c0f2bed140cc0825e18462c2778" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okhttp3/logging-interceptor@4.12.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://square.github.io/okhttp/" - }, { - "type" : "distribution", - "url" : "https://square.github.io/okhttp/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f1f89dde-bf65-4472-b6d6-7aefe61aad78" - } ], - "type" : "library", - "bom-ref" : "logging-interceptor-4.12.0.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-9" - }, { - "group" : "@radix-ui/react-primitive", - "name" : "react-primitive-2.0.1.tgz", - "version" : "2.0.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6d9efc550f7520135366f333d1e820cf225fad9e" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-primitive@2.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b5018b78-d4f2-4ef1-9a50-dc293bd949e3" - } ], - "type" : "library", - "bom-ref" : "react-primitive-2.0.1.tgz" - }, { - "group" : "@radix-ui/react-alert-dialog", - "name" : "react-alert-dialog-1.1.5.tgz", - "version" : "1.1.5", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d937512a727d8b7afa8959d43dbd7e557d52a1eb" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-alert-dialog@1.1.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e51d4105-16e4-4dd9-99ca-176b6d0ebe4a" - } ], - "type" : "library", - "bom-ref" : "react-alert-dialog-1.1.5.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-plugin-api-impl-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-plugin-api-impl-25.4-SNAPSHOT" - }, { - "group" : "@emotion/babel-plugin", - "name" : "babel-plugin-11.12.0.tgz", - "version" : "11.12.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7b43debb250c313101b3f885eba634f1d723fcc2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/babel-plugin@11.12.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://emotion.sh" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "78f9cf46-4a4c-4a64-9b06-38a48c530335" - } ], - "type" : "library", - "bom-ref" : "babel-plugin-11.12.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-telemetry-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-telemetry-core-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-telemetry-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-telemetry-core-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-telemetry-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-telemetry-core-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-7" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-queryparser-8.11.3.jar", - "version" : "8.11.3", - "description" : "Lucene QueryParsers module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "df74aa7bc795a04ea4b8deea9314646ee5d98cd2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2010 International Business Machines,Copyright 2001 Dr Martin Porter,Copyright © 2003,,Copyright 2002 Richard Boulton,Copyright 2009 by www.imdict.net,Copyright 2007-2011 Dawid Weiss,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright 2001-2004 Copyright,The Apache Software Foundation,Copyright 1995-2008 International Business Machines Corporation and others,Copyright 2006 Dawid Weiss,Copyright 2001-2009 Anders Moeller,Copyright 2001-2021 The Apache Software Foundation,Copyright 2011-2016 Yann Collet", - "purl" : "pkg:maven/org.apache.lucene/lucene-queryparser@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7c3427d0-1b3d-4497-a18b-9244a1422f3b" - } ], - "type" : "library", - "bom-ref" : "lucene-queryparser-8.11.3.jar" - }, { - "group" : "@radix-ui/react-context", - "name" : "react-context-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "82074aa83a472353bb22e86f11bcbd1c61c4c71a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-context@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ca3a1d40-41c5-4579-a101-454bf181d765" - } ], - "type" : "library", - "bom-ref" : "react-context-1.1.1.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-8" - }, { - "group" : "escape-string-regexp", - "name" : "escape-string-regexp-1.0.5.tgz", - "version" : "1.0.5", - "description" : "Escape RegExp special characters", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus,Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/escape-string-regexp@1.0.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/escape-string-regexp" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4f0b7d3c-1a4f-4270-8ea3-41136e297071" - } ], - "type" : "library", - "bom-ref" : "escape-string-regexp-1.0.5.tgz" - }, { - "group" : "@babel/helper-plugin-utils", - "name" : "helper-plugin-utils-7.18.9.tgz", - "version" : "7.18.9", - "description" : "General utilities for plugins to use", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/helper-plugin-utils@7.18.9", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-helper-plugin-utils" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "62c44d57-eb88-439b-bc19-5f8ee3dbe148" - } ], - "type" : "library", - "bom-ref" : "helper-plugin-utils-7.18.9.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-4" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-annotations-2.18.3.jar", - "version" : "2.18.3", - "description" : "Core annotations used for value types, used by Jackson data binding package.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7fa21cf7da4598f8240e4ebd9779249622af1acd" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-annotations@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1932978b-3259-45e6-8d8b-c1c17ecd5274" - } ], - "type" : "library", - "bom-ref" : "jackson-annotations-2.18.3.jar" - }, { - "group" : "@radix-ui/react-use-rect", - "name" : "react-use-rect-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "13b25b913bd3e3987cc9b073a1a164bb1cf47b88" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-use-rect@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "856f4809-5efc-4db4-b0a9-c9c13e3d095b" - } ], - "type" : "library", - "bom-ref" : "react-use-rect-1.1.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-2" - }, { - "group" : "org.opensaml", - "name" : "opensaml-profile-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "Profile API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e4885283f8f79213170a14822f9806211ff7ca8d" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-profile-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2fd34190-f3d1-42f3-b873-5f11094fb005" - } ], - "type" : "library", - "bom-ref" : "opensaml-profile-api-4.3.2.jar-2" - }, { - "group" : "org.springframework", - "name" : "spring-web-6.2.4.jar", - "version" : "6.2.4", - "description" : "Spring Web", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7879e20961b0a0ed1f46555081f68c1a2bab428a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006-2019 Joe Walnes,Copyright 1999-2009 OW2 Consortium,Copyright 2000-2011 INRIA,Copyright 2002-2025 Pivotal, Inc", - "purl" : "pkg:maven/org.springframework/spring-web@6.2.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "aa733517-d480-4ba5-be8a-79f609fcaecd" - } ], - "type" : "library", - "bom-ref" : "spring-web-6.2.4.jar" - }, { - "group" : "io.jsonwebtoken", - "name" : "jjwt-jackson-0.12.6.jar", - "version" : "0.12.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f141e0c1136ba17f2632858238a31ae05642dbf8" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "jsonwebtoken.io,Copyright 2018 JWTK", - "purl" : "pkg:maven/io.jsonwebtoken/jjwt-jackson@0.12.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/jwtk/jjwt" - }, { - "type" : "distribution", - "url" : "https://github.com/jwtk/jjwt" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7d5509ba-0817-44da-bc3c-262d42988eb9" - } ], - "type" : "library", - "bom-ref" : "jjwt-jackson-0.12.6.jar-3" - }, { - "group" : "deepmerge", - "name" : "deepmerge-4.3.1.tgz", - "version" : "4.3.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "44b5f2147cd3b00d4b56137685966f26fd25dd4a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2012 James Halliday, Josh Duff, and other contributors", - "purl" : "pkg:npm/deepmerge@4.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/TehShrike/deepmerge" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2546e415-9b4e-44fb-b682-2d73a07fb187" - } ], - "type" : "library", - "bom-ref" : "deepmerge-4.3.1.tgz" - }, { - "group" : "com.sonarsource.security", - "name" : "sonar-security-js-frontend-plugin-11.1.0.35630.sonar-plugin", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f13b8047fae8e63efd4bfd0b301448adff98cac5" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1da24020-1558-48c7-911f-4c97d3183919" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-security-js-frontend-plugin-11.1.0.35630.sonar-plugin" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT-12" - }, { - "group" : "io.jsonwebtoken", - "name" : "jjwt-jackson-0.12.6.jar", - "version" : "0.12.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f141e0c1136ba17f2632858238a31ae05642dbf8" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "jsonwebtoken.io,Copyright 2018 JWTK", - "purl" : "pkg:maven/io.jsonwebtoken/jjwt-jackson@0.12.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/jwtk/jjwt" - }, { - "type" : "distribution", - "url" : "https://github.com/jwtk/jjwt" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7d5509ba-0817-44da-bc3c-262d42988eb9" - } ], - "type" : "library", - "bom-ref" : "jjwt-jackson-0.12.6.jar-2" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-performance-measure-2.16.0.3141.jar", - "version" : "2.16.0.3141", - "description" : "Logic to capture a hierarchy of performance measures, save it into a file, and merge files", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "530ba83dcd3380e545ce1caba67891c4d55d0ac0" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-performance-measure@2.16.0.3141", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1aa29900-cb2a-4cb2-86f2-77ef1e0eab3e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-performance-measure-2.16.0.3141.jar-2" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT-11" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT-10" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-telemetry-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-telemetry-core-25.4-SNAPSHOT-7" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-telemetry-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-telemetry-core-25.4-SNAPSHOT-6" - }, { - "group" : "d3-time-format", - "name" : "d3-time-format-4.1.0.tgz", - "version" : "4.1.0", - "description" : "A JavaScript time formatter and parser inspired by strftime and strptime.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2024 Mike Bostock and Observable, Inc.", - "purl" : "pkg:npm/d3-time-format@4.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-time-format/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "7aeaa684-a448-49a4-8bc6-0e7ab681a4cd" - } ], - "type" : "library", - "bom-ref" : "d3-time-format-4.1.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-telemetry-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-telemetry-core-25.4-SNAPSHOT-5" - }, { - "group" : "ansi-styles", - "name" : "ansi-styles-4.3.0.tgz", - "version" : "4.3.0", - "description" : "ANSI escape codes for styling strings in the terminal", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "edd803628ae71c04c85ae7a0906edad34b648937" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com),Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/ansi-styles@4.3.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/chalk/ansi-styles#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cfb446bb-be9b-456d-b784-5e405b56570d" - } ], - "type" : "library", - "bom-ref" : "ansi-styles-4.3.0.tgz" - }, { - "group" : "@emotion/react", - "name" : "react-11.11.4.tgz", - "version" : "11.11.4", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3a829cac25c1f00e126408fab7f891f00ecc3c1d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/react@11.11.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "489edb1d-7c54-44a7-9bd3-8592b37516f8" - } ], - "type" : "library", - "bom-ref" : "react-11.11.4.tgz" - }, { - "group" : "markdown-it", - "name" : "markdown-it-14.1.0.tgz", - "version" : "14.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3c3c5992883c633db4714ccb4d7b5935d98b7d45" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Vitaly Puzrin, Alex Kocharin", - "purl" : "pkg:npm/markdown-it@14.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/markdown-it/markdown-it#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "61a3f7eb-3766-432a-93c9-0b986428086b" - } ], - "type" : "library", - "bom-ref" : "markdown-it-14.1.0.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-github-provisioning-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-github-provisioning-2025.3-SNAPSHOT" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-common-25.4-SNAPSHOT" - }, { - "group" : "signal-exit", - "name" : "signal-exit-4.0.2.tgz", - "version" : "4.0.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ff55bb1d9ff2114c13b400688fa544ac63c36967" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2015-2023 Benjamin Coe", - "purl" : "pkg:npm/signal-exit@4.0.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/tapjs/signal-exit#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "954df65e-f10a-4908-a8f4-d05c28657815" - } ], - "type" : "library", - "bom-ref" : "signal-exit-4.0.2.tgz" - }, { - "group" : "org.elasticsearch", - "name" : "elasticsearch-core-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :libs:elasticsearch-core", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c3266d4694d69e22d463c81daa5b31a9ba3cb011" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - }, { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - } ], - "copyright" : "Copyright 2018 MongoDB, Inc,Copyright 2009-2021 Elasticsearch", - "purl" : "pkg:maven/org.elasticsearch/elasticsearch-core@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d816d4a3-9eed-4629-a436-5f04fd901425" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-core-7.17.28.jar" - }, { - "group" : "org.apache.logging.log4j", - "name" : "log4j-to-slf4j-2.24.3.jar", - "version" : "2.24.3", - "description" : "Forwards the Log4j API calls to SLF4J. (Refer to the `log4j-slf4j[2]-impl` artifacts for forwarding SLF4J to the Log4j API.)", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "da1143e2a2531ee1c2d90baa98eb50a28a39d5a7" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2024 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.logging.log4j/log4j-to-slf4j@2.24.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://logging.apache.org/log4j/2.x/" - }, { - "type" : "distribution", - "url" : "https://logging.apache.org/log4j/2.x/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "588b2413-e59f-4017-aeca-01445a66a242" - } ], - "type" : "library", - "bom-ref" : "log4j-to-slf4j-2.24.3.jar" - }, { - "group" : "javax.annotation", - "name" : "javax.annotation-api-1.3.2.jar", - "version" : "1.3.2", - "description" : "Common Annotations for the JavaTM Platform API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "934c04d3cfef185a8008e7bf34331b79730a9d43" - } ], - "licenses" : [ { - "license" : { - "id" : "CDDL-1.1", - "url" : "http://glassfish.java.net/public/CDDL+GPL_1_1.html" - } - } ], - "copyright" : "Copyright 2017 Oracle and/or its affiliates.", - "purl" : "pkg:maven/javax.annotation/javax.annotation-api@1.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://javaee.github.io/glassfish" - }, { - "type" : "distribution", - "url" : "https://javaee.github.io/glassfish" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2b8f34ee-7a17-449e-8ad0-d2e9dea86810" - } ], - "type" : "library", - "bom-ref" : "javax.annotation-api-1.3.2.jar" - }, { - "group" : "eastasianwidth", - "name" : "eastasianwidth-0.2.0.tgz", - "version" : "0.2.0", - "description" : "Get East Asian Width from a character.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/eastasianwidth@0.2.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/komagata/eastasianwidth#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "835b2065-81ae-4a6e-bc5f-aa4b6eb9b1ec" - } ], - "type" : "library", - "bom-ref" : "eastasianwidth-0.2.0.tgz" - }, { - "group" : "package-json-from-dist", - "name" : "package-json-from-dist-1.0.0.tgz", - "version" : "1.0.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e501cd3094b278495eb4258d4c9f6d5ac3019f00" - } ], - "licenses" : [ { - "license" : { - "id" : "BlueOak-1.0.0", - "url" : "https://blueoakcouncil.org/license/1.0.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/package-json-from-dist@1.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/isaacs/package-json-from-dist#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4015a374-a851-49ce-9754-5aabce029594" - } ], - "type" : "library", - "bom-ref" : "package-json-from-dist-1.0.0.tgz" - }, { - "group" : "com.sonarsource.tsql", - "name" : "sonar-tsql-plugin-1.14.0.7614.sonar-plugin", - "version" : "1.14.0.7614", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f028c2acf8ba4f8621239da96b26b9732e4b5c7e" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b4fe63ed-b2be-48de-adc7-71fc99e600e6" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-tsql-plugin-1.14.0.7614.sonar-plugin" - }, { - "group" : "@radix-ui/react-radio-group", - "name" : "react-radio-group-1.2.2.tgz", - "version" : "1.2.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a37e9bd9d80b33bb8c1b7af8cf1dc9e5014e52d0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-radio-group@1.2.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.2.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "da8de4c2-7038-49f9-8e9e-7e0dc4861e14" - } ], - "type" : "library", - "bom-ref" : "react-radio-group-1.2.2.tgz" - }, { - "group" : "ansi-regex", - "name" : "ansi-regex-6.0.1.tgz", - "version" : "6.0.1", - "description" : "Regular expression for matching ANSI escape codes", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3183e38fae9a65d7cb5e53945cd5897d0260a06a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/ansi-regex@6.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/chalk/ansi-regex#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5f9ac445-b382-4a3a-8566-da1b1b8a345e" - } ], - "type" : "library", - "bom-ref" : "ansi-regex-6.0.1.tgz" - }, { - "group" : "use-callback-ref", - "name" : "use-callback-ref-1.3.3.tgz", - "version" : "1.3.3", - "description" : "The same useRef, but with callback", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "98d9fab067075841c5b2c6852090d5d0feabe2bf" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Anton Korzunov", - "purl" : "pkg:npm/use-callback-ref@1.3.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/use-callback-ref#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "0babc0cd-f2c2-4a67-83ff-936a3a9ae250" - } ], - "type" : "library", - "bom-ref" : "use-callback-ref-1.3.3.tgz" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-udg-io-1.9.0.4841.jar", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ca6c4e8693d15152650bcfdd918e6e2e5fe5f3e1" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "62cc1d4c-d6ce-4adf-ade6-72fd47cd2895" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-udg-io-1.9.0.4841.jar-2" - }, { - "group" : "com.sonarsource.cobol", - "name" : "cobol-api-5.8.1.8428.jar", - "version" : "5.8.1.8428", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "241dbcf3e0320233a7851a7595936a81d22988ac" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8d465d57-24f0-4768-bc1b-6a6f7e0a0744" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "cobol-api-5.8.1.8428.jar-2" - }, { - "group" : "@radix-ui/react-dialog", - "name" : "react-dialog-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4906507f7b4ad31e22d7dad69d9330c87c431d44" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-dialog@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "48f2074b-67e1-4034-832f-5d46f91e3cc7" - } ], - "type" : "library", - "bom-ref" : "react-dialog-1.1.1.tgz" - }, { - "group" : "commons-digester", - "name" : "commons-digester-2.1.jar", - "version" : "2.1", - "description" : "The Digester package lets you configure an XML to Java object mapping module which triggers certain actions called rules whenever a particular pattern of nested XML elements is recognized.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "73a8001e7a54a255eef0f03521ec1805dc738ca0" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2001-2010 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/commons-digester/commons-digester@2.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.apache.org/" - }, { - "type" : "distribution", - "url" : "http://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e10a1d00-7d6c-4198-853e-033630f0cdb0" - } ], - "type" : "library", - "bom-ref" : "commons-digester-2.1.jar" - }, { - "group" : "com.sonarsource.plugins.vb", - "name" : "vb-squid-2.14.0.5475.jar", - "version" : "2.14.0.5475", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "672ca9808ae5e806ccfe662633288eccb7458fbb" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f1e873f5-1b9f-4cb9-8e58-e984ed85c042" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "vb-squid-2.14.0.5475.jar-2" - }, { - "group" : "org.apache.commons", - "name" : "commons-text-1.13.0.jar", - "version" : "1.13.0", - "description" : "Apache Commons Text is a set of utility functions and reusable components for the purpose of processing and manipulating text that should be of use in a Java environment.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ba2ed5521c491cabf7ecdb57f77922561c2e8958" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2014-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.commons/commons-text@1.13.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://commons.apache.org/proper/commons-text" - }, { - "type" : "distribution", - "url" : "https://commons.apache.org/proper/commons-text" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e0a97317-21ee-4560-b77d-9b9ebcc4b9e5" - } ], - "type" : "library", - "bom-ref" : "commons-text-1.13.0.jar-2" - }, { - "group" : "@emotion/weak-memoize", - "name" : "weak-memoize-0.3.1.tgz", - "version" : "0.3.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d0fce5d07b0620caa282b5131c297bb60f9d87e6" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/weak-memoize@0.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "a4affded-9fa4-4ebb-be69-424b60677e45" - } ], - "type" : "library", - "bom-ref" : "weak-memoize-0.3.1.tgz" - }, { - "group" : "stax", - "name" : "stax-api-1.0.1.jar", - "version" : "1.0.1", - "description" : "StAX API is the standard java XML processing API defined by JSR-173", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "49c100caf72d658aca8e58bd74a4ba90fa2b0d70" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/stax/stax-api@1.0.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "41a7f775-9a30-4ab9-a905-9f7ca845007c" - } ], - "type" : "library", - "bom-ref" : "stax-api-1.0.1.jar" - }, { - "group" : "org.glassfish", - "name" : "jakarta.el-4.0.2.jar", - "version" : "4.0.2", - "description" : "Jakarta Expression Language Implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d67e18e7b3500dc91fe941ed3a1807074eaac750" - } ], - "licenses" : [ { - "license" : { - "name" : "GPL-2.0-only WITH Classpath-exception-2.0", - "url" : "http://gnu.org/software/classpath/license.html" - } - }, { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - } ], - "copyright" : "Copyright 1997-2020 Oracle and/or its affiliates and others", - "purl" : "pkg:maven/org.glassfish/jakarta.el@4.0.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.eclipse.org" - }, { - "type" : "distribution", - "url" : "https://www.eclipse.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f2f88abd-3132-486d-bdbc-70fb2f2f1868" - } ], - "type" : "library", - "bom-ref" : "jakarta.el-4.0.2.jar" - }, { - "group" : "org.antlr", - "name" : "antlr-runtime-3.4.jar", - "version" : "3.4", - "description" : "A framework for constructing recognizers, compilers, and translators from grammatical descriptions containing Java, C#, C++, or Python actions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8f011408269a8e42b8548687e137d8eeb56df4b4" - } ], - "licenses" : [ { - "license" : { - "name" : "BSD", - "url" : "http://www.linfo.org/bsdlicense.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.antlr/antlr-runtime@3.4?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.antlr.org" - }, { - "type" : "distribution", - "url" : "http://www.antlr.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1d83148f-8be5-4c71-b7cb-03824f850254" - } ], - "type" : "library", - "bom-ref" : "antlr-runtime-3.4.jar" - }, { - "group" : "parent-module", - "name" : "parent-module-1.0.1.tgz", - "version" : "1.0.1", - "description" : "Get the path of the parent module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "691d2709e78c79fae3a156622452d00762caaaa2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com),Copyright Sindre Sorhus", - "purl" : "pkg:npm/parent-module@1.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/parent-module#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "8b599b5b-9b9b-4bbd-a381-fc6496b62955" - } ], - "type" : "library", - "bom-ref" : "parent-module-1.0.1.tgz" - }, { - "group" : "org.jboss.logging", - "name" : "jboss-logging-3.4.3.Final.jar", - "version" : "3.4.3.Final", - "description" : "The JBoss Logging Framework", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c4bd7e12a745c0e7f6cf98c45cdcdf482fd827ea" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright (c)", - "purl" : "pkg:maven/org.jboss.logging/jboss-logging@3.4.3.Final?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.jboss.org" - }, { - "type" : "distribution", - "url" : "http://www.jboss.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2cd67c6a-de98-409e-8d42-ddf24d0c4847" - } ], - "type" : "library", - "bom-ref" : "jboss-logging-3.4.3.Final.jar" - }, { - "group" : "@emotion/weak-memoize", - "name" : "weak-memoize-0.4.0.tgz", - "version" : "0.4.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5e13fac887f08c44f76b0ccaf3370eb00fec9bb6" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/weak-memoize@0.4.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d704b85b-1f4a-473c-a77f-2958e3133ae0" - } ], - "type" : "library", - "bom-ref" : "weak-memoize-0.4.0.tgz" - }, { - "group" : "org.elasticsearch", - "name" : "elasticsearch-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :server", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "632df2a825e835371c70dc871a157e92b9befb8f" - } ], - "licenses" : [ { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - }, { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch/elasticsearch@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "017209b5-31cf-42d7-b22f-110d5b615ea0" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-7.17.28.jar-3" - }, { - "group" : "d3-time", - "name" : "d3-time-3.0.0.tgz", - "version" : "3.0.0", - "description" : "A calculator for humanity’s peculiar conventions of time.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "65972cb98ae2d4954ef5c932e8704061335d4975" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock,Copyright 1980-1995 ,,Copyright 2015 ,,Copyright 2010-2021 Mike Bostock,Copyright 2015 ,,Copyright 1980-1995 ,", - "purl" : "pkg:npm/d3-time@3.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-time/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "dd74af92-71ac-48fa-b790-09d184c89eac" - } ], - "type" : "library", - "bom-ref" : "d3-time-3.0.0.tgz" - }, { - "group" : "tree-changes", - "name" : "tree-changes-0.11.2.tgz", - "version" : "0.11.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e02e65c4faae6230dfe357aa97a26e8eb7c7d321" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2018 Gil Barbara", - "purl" : "pkg:npm/tree-changes@0.11.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/gilbarbara/tree-changes/tree/main/packages/tree-changes#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/tree-changes/-/tree-changes-0.11.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "756acb1a-6857-4e22-adff-22757935b51a" - } ], - "type" : "library", - "bom-ref" : "tree-changes-0.11.2.tgz" - }, { - "group" : "org.elasticsearch", - "name" : "elasticsearch-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :server", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "632df2a825e835371c70dc871a157e92b9befb8f" - } ], - "licenses" : [ { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - }, { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch/elasticsearch@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "017209b5-31cf-42d7-b22f-110d5b615ea0" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-7.17.28.jar-2" - }, { - "group" : "color-convert", - "name" : "color-convert-1.9.3.tgz", - "version" : "1.9.3", - "description" : "Plain color conversion functions", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bb71850690e1f136567de629d2d5471deda4c1e8" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2011-2016 Heather Arthur <fayearthur@gmail.com>,Copyright 2011-2016 Heather Arthur and Josh Junon", - "purl" : "pkg:npm/color-convert@1.9.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/Qix-/color-convert#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b273eb62-3afb-4722-943b-d00e00d1cbc9" - } ], - "type" : "library", - "bom-ref" : "color-convert-1.9.3.tgz" - }, { - "group" : "net.bytebuddy", - "name" : "byte-buddy-1.15.11.jar", - "version" : "1.15.11", - "description" : "Byte Buddy is a Java library for creating Java classes at run time. This artifact is a build of Byte Buddy with all ASM dependencies repackaged into its own name space.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f61886478e0f9ee4c21d09574736f0ff45e0a46c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2014 Present Rafael Winterhalter", - "purl" : "pkg:maven/net.bytebuddy/byte-buddy@1.15.11", - "externalReferences" : [ { - "type" : "website", - "url" : "https://bytebuddy.net" - }, { - "type" : "distribution", - "url" : "https://bytebuddy.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "545e084a-421e-46b3-8438-cd1717f901dd" - } ], - "type" : "library", - "bom-ref" : "byte-buddy-1.15.11.jar" - }, { - "group" : "@radix-ui/react-visually-hidden", - "name" : "react-visually-hidden-1.1.2.tgz", - "version" : "1.1.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8f6025507eb5d8b4b3215ebfd2c71a6632323a62" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-visually-hidden@1.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "3880a159-84a9-43da-8a89-f49510929611" - } ], - "type" : "library", - "bom-ref" : "react-visually-hidden-1.1.2.tgz" - }, { - "group" : "com.fasterxml.woodstox", - "name" : "woodstox-core-6.4.0.jar", - "version" : "6.4.0", - "description" : "Woodstox is a high-performance XML processor that implements Stax (JSR-173), SAX2 and Stax2 APIs", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c47579857bbf12c85499f431d4ecf27d77976b7c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011 FasterXML LLC", - "purl" : "pkg:maven/com.fasterxml.woodstox/woodstox-core@6.4.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://fasterxml.com" - }, { - "type" : "distribution", - "url" : "http://fasterxml.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "00b6fcba-eaad-4b61-b4c3-20d85000f0af" - } ], - "type" : "library", - "bom-ref" : "woodstox-core-6.4.0.jar" - }, { - "group" : "string-width", - "name" : "string-width-4.2.3.tgz", - "version" : "4.2.3", - "description" : "Get the visual width of a string - the number of columns required to display it", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "269c7117d27b05ad2e536830a8ec895ef9c6d010" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com),Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/string-width@4.2.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/string-width#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "33b4969e-937e-4f21-8635-9aa35581b11b" - } ], - "type" : "library", - "bom-ref" : "string-width-4.2.3.tgz" - }, { - "group" : "org.sonarsource.dotnet", - "name" : "sonar-csharp-core-10.7.0.110445.jar", - "version" : "10.7.0.110445", - "description" : "Shared code between C# plugins", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f83a05a5c596ead52252bf40babb7adaf6329fc7" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.dotnet/sonar-csharp-core@10.7.0.110445", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/SonarSource/sonar-dotnet" - }, { - "type" : "distribution", - "url" : "https://github.com/SonarSource/sonar-dotnet" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "573faf3c-ce1f-4413-a7d9-34fce7849818" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-csharp-core-10.7.0.110445.jar" - }, { - "group" : "react-select", - "name" : "react-select-5.7.7.tgz", - "version" : "5.7.7", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "dbade9dbf711ef2a181970c10f8ab319ac37fbd0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2022 Jed Watson", - "purl" : "pkg:npm/react-select@5.7.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/JedWatson/react-select/tree/master#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-select/-/react-select-5.7.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e2f118a1-a455-4944-bf6b-255da1d7d538" - } ], - "type" : "library", - "bom-ref" : "react-select-5.7.7.tgz" - }, { - "group" : "com.sonarsource.jcl", - "name" : "jcl-api-1.4.1.1493.jar", - "version" : "1.4.1.1493", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "509fa471c789206f138a85d41cac1f5b67356a63" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0d9679d8-514d-42c2-bbe7-11ad34a59d27" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "jcl-api-1.4.1.1493.jar-2" - }, { - "group" : "com.google.code.gson", - "name" : "gson-2.12.1.jar", - "version" : "2.12.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4e773a317740b83b43cfc3d652962856041697cb" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2008 Google LLC", - "purl" : "pkg:maven/com.google.code.gson/gson@2.12.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/google/gson" - }, { - "type" : "distribution", - "url" : "https://github.com/google/gson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e3c6a116-6677-401e-bdae-2a305a4e17fe" - } ], - "type" : "library", - "bom-ref" : "gson-2.12.1.jar-2" - }, { - "group" : "loose-envify", - "name" : "loose-envify-1.4.0.tgz", - "version" : "1.4.0", - "description" : "Fast (and loose) selective `process.env` replacer using js-tokens instead of an AST", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "71ee51fa7be4caec1a63839f7e682d8132d30caf" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Andres Suarez <zertosh@gmail.com>", - "purl" : "pkg:npm/loose-envify@1.4.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/zertosh/loose-envify" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "49523830-a25b-44db-b375-0089499a8a2d" - } ], - "type" : "library", - "bom-ref" : "loose-envify-1.4.0.tgz" - }, { - "group" : "@radix-ui/react-popper", - "name" : "react-popper-1.2.0.tgz", - "version" : "1.2.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a3e500193d144fe2d8f5d5e60e393d64111f2a7a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-popper@1.2.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4652426d-0da0-43cd-afab-8d6b5dc53315" - } ], - "type" : "library", - "bom-ref" : "react-popper-1.2.0.tgz" - }, { - "group" : "net.i2p.crypto", - "name" : "eddsa-0.3.0.jar", - "version" : "0.3.0", - "description" : "Implementation of EdDSA in Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1901c8d4d8bffb7d79027686cfb91e704217c3e1" - } ], - "licenses" : [ { - "license" : { - "id" : "CC0-1.0", - "url" : "https://spdx.org/licenses/CC0-1.0.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/net.i2p.crypto/eddsa@0.3.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/str4d/ed25519-java" - }, { - "type" : "distribution", - "url" : "https://github.com/str4d/ed25519-java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ebed6a07-790c-4ca8-9e76-8db9ecf57112" - } ], - "type" : "library", - "bom-ref" : "eddsa-0.3.0.jar" - }, { - "group" : "com.jcraft", - "name" : "jsch.agentproxy.core-0.0.9.jar", - "version" : "0.0.9", - "description" : "a proxy to ssh-agent and Pageant in Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1af3741c3a83a71e29b8aa7637979791e50e538b" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2011-2012 Atsuhiko Yamanaka, JCraft,Inc", - "purl" : "pkg:maven/com.jcraft/jsch.agentproxy.core@0.0.9?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.jcraft.com/" - }, { - "type" : "distribution", - "url" : "http://www.jcraft.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1b5a6b82-de1f-46fa-b462-8aac654d2054" - } ], - "type" : "library", - "bom-ref" : "jsch.agentproxy.core-0.0.9.jar" - }, { - "group" : "@floating-ui/dom", - "name" : "dom-1.6.12.tgz", - "version" : "1.6.12", - "description" : "Floating UI for the web", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6333dcb5a8ead3b2bf82f33d6bc410e95f54e556" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2021 Floating UI contributors", - "purl" : "pkg:npm/%40floating-ui/dom@1.6.12", - "externalReferences" : [ { - "type" : "website", - "url" : "https://floating-ui.com" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e39b899b-0c6e-4ce6-a31d-1921600530f1" - } ], - "type" : "library", - "bom-ref" : "dom-1.6.12.tgz" - }, { - "group" : "@tanstack/react-query", - "name" : "react-query-5.56.2.tgz", - "version" : "5.56.2", - "description" : "Hooks for managing, caching and syncing asynchronous and remote data in React", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3a0241b9d010910905382f5e99160997b8795f91" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2021 Tanner Linsley", - "purl" : "pkg:npm/%40tanstack/react-query@5.56.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://tanstack.com/query" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.56.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "548971cf-ba86-432b-aeaf-ffe706f9fae6" - } ], - "type" : "library", - "bom-ref" : "react-query-5.56.2.tgz" - }, { - "group" : "wrap-ansi", - "name" : "wrap-ansi-8.1.0.tgz", - "version" : "8.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "56dc22368ee570face1b49819975d9b9a5ead214" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/wrap-ansi@8.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/chalk/wrap-ansi#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "083a3605-2620-4fc7-b5b5-0f23baa90303" - } ], - "type" : "library", - "bom-ref" : "wrap-ansi-8.1.0.tgz" - }, { - "group" : "@radix-ui/react-compose-refs", - "name" : "react-compose-refs-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6f766faa975f8738269ebb8a23bad4f5a8d2faec" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-compose-refs@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9c260421-191e-4820-9c61-fcbb98e07700" - } ], - "type" : "library", - "bom-ref" : "react-compose-refs-1.1.1.tgz" - }, { - "group" : "io.micrometer", - "name" : "micrometer-observation-1.14.5.jar", - "version" : "1.14.5", - "description" : "Module containing Observation related code", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b23dff6bf07a29f67fdae8f3f3f8f1c78fa7b126" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2010 Google Inc,Copyright 2017 VMware, Inc,Copyright 2002-2019 Copyright,Copyright 2001-2019 Copyright,Copyright 2013 The Netty Project", - "purl" : "pkg:maven/io.micrometer/micrometer-observation@1.14.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/micrometer-metrics/micrometer" - }, { - "type" : "distribution", - "url" : "https://github.com/micrometer-metrics/micrometer" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b022725b-4693-43ef-9d90-9be402d66b00" - } ], - "type" : "library", - "bom-ref" : "micrometer-observation-1.14.5.jar-2" - }, { - "group" : "org.sonarsource.java", - "name" : "java-checks-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9c5551ef2a705171fed754dd4112e144cf6c063a" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-checks@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3a5055de-430a-4032-81cb-6d5a03f654a4" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-checks-8.11.0.38440.jar" - }, { - "group" : "org.sonarsource.html", - "name" : "sonar-html-plugin-3.19.0.5695.jar", - "version" : "3.19.0.5695", - "description" : "Code analyzer for HTML", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "390a10753f22fc9df8df1fcbc9eb44c83590d882" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.html/sonar-html-plugin@3.19.0.5695", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/web.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/web.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b2c2b38e-d392-489e-be05-6c4f20ce167e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-html-plugin-3.19.0.5695.jar" - }, { - "group" : "@radix-ui/react-use-controllable-state", - "name" : "react-use-controllable-state-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1321446857bb786917df54c0d4d084877aab04b0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-use-controllable-state@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "3fa55f8b-915b-473c-9c94-d6bf3c2a2b7d" - } ], - "type" : "library", - "bom-ref" : "react-use-controllable-state-1.1.0.tgz" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-jdk7-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Standard Library JDK 7 extension", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bc5bfc2690338defd5195b05c57562f2194eeb10" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2a529f62-a94a-4a6e-a528-3be93ee72c5f" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-jdk7-1.9.10.jar-3" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-jdk7-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Standard Library JDK 7 extension", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bc5bfc2690338defd5195b05c57562f2194eeb10" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2a529f62-a94a-4a6e-a528-3be93ee72c5f" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-jdk7-1.9.10.jar-4" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-jdk7-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Standard Library JDK 7 extension", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bc5bfc2690338defd5195b05c57562f2194eeb10" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2a529f62-a94a-4a6e-a528-3be93ee72c5f" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-jdk7-1.9.10.jar-2" - }, { - "group" : "org.jetbrains", - "name" : "annotations-13.0.jar", - "version" : "13.0", - "description" : "A set of annotations used for code inspection support and code documentation.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "919f0dfe192fb4e063e7dacadee7f8bb9a2672a9" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "2021 JetBrains s.r.o", - "purl" : "pkg:maven/org.jetbrains/annotations@13.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.jetbrains.org" - }, { - "type" : "distribution", - "url" : "http://www.jetbrains.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9373a565-97e3-4203-b73c-7d47a25ba3ca" - } ], - "type" : "library", - "bom-ref" : "annotations-13.0.jar" - }, { - "group" : "com.fasterxml", - "name" : "classmate-1.5.1.jar", - "version" : "1.5.1", - "description" : "Library for introspecting types with full generic information including resolving of field and method types.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3fe0bed568c62df5e89f4f174c101eab25345b6c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright FasterXML LLC", - "purl" : "pkg:maven/com.fasterxml/classmate@1.5.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://fasterxml.com" - }, { - "type" : "distribution", - "url" : "https://fasterxml.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "86db1ec4-ba26-45ed-a945-936341ecabb0" - } ], - "type" : "library", - "bom-ref" : "classmate-1.5.1.jar" - }, { - "group" : "minimatch", - "name" : "minimatch-10.0.1.tgz", - "version" : "10.0.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2011-2023 Isaac Z. Schlueter and Contributors", - "purl" : "pkg:npm/minimatch@10.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/isaacs/minimatch#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "92f93231-6594-4bcf-8b13-44a4c438378a" - } ], - "type" : "library", - "bom-ref" : "minimatch-10.0.1.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-saml-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-saml-25.4-SNAPSHOT-8" - }, { - "group" : "to-fast-properties", - "name" : "to-fast-properties-2.0.0.tgz", - "version" : "2.0.0", - "description" : "Force V8 to use fast properties for an object", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "dc5e698cbd079265bc73e0377681a4e4e83f616e" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Petka Antonov, John-David Dalton, Sindre Sorhus,Copyright 2014 Petka Antonov", - "purl" : "pkg:npm/to-fast-properties@2.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/to-fast-properties#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "a841e9e7-c92a-4572-acfc-04b58412fa50" - } ], - "type" : "library", - "bom-ref" : "to-fast-properties-2.0.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-saml-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-saml-25.4-SNAPSHOT-9" - }, { - "group" : "org.hdrhistogram", - "name" : "HdrHistogram-2.1.9.jar", - "version" : "2.1.9", - "description" : "HdrHistogram supports the recording and analyzing sampled data value counts across a configurable integer value range with configurable value precision within the range. Value precision is expressed as the number of significant digits in the value recording, and provides control over value quantization behavior across the value range and the subsequent value resolution at any given level.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e4631ce165eb400edecfa32e03d3f1be53dee754" - } ], - "licenses" : [ { - "license" : { - "id" : "CC0-1.0", - "url" : "https://spdx.org/licenses/CC0-1.0.html" - } - } ], - "copyright" : "Copyright 2012-2013 2014 Gil Tene,Copyright 2014 Michael Barker,Copyright 2014 Matt Warren", - "purl" : "pkg:maven/org.hdrhistogram/HdrHistogram@2.1.9?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://hdrhistogram.github.io/HdrHistogram/" - }, { - "type" : "distribution", - "url" : "http://hdrhistogram.github.io/HdrHistogram/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e3739fa1-a113-41cc-822d-9aa4fc04d30b" - } ], - "type" : "library", - "bom-ref" : "HdrHistogram-2.1.9.jar" - }, { - "group" : "@radix-ui/rect", - "name" : "rect-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f817d1d3265ac5415dadc67edab30ae196696438" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/rect@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c0e4ae5d-a512-448a-a8f6-0cd10c9c1ff9" - } ], - "type" : "library", - "bom-ref" : "rect-1.1.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-saml-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-saml-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-saml-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-saml-25.4-SNAPSHOT-7" - }, { - "group" : "@radix-ui/react-context", - "name" : "react-context-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6df8d983546cfd1999c8512f3a8ad85a6e7fcee8" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-context@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "0832784f-a997-4239-b407-c41ba70acd9b" - } ], - "type" : "library", - "bom-ref" : "react-context-1.1.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-saml-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-saml-25.4-SNAPSHOT-4" - }, { - "group" : "org.opensaml", - "name" : "opensaml-saml-impl-4.3.2.jar", - "version" : "4.3.2", - "description" : "SAML Provider Implementations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ae0c3b86989f780570bae84f32785e9e049b9b0" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-saml-impl@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8891aeb2-3483-4b6f-80c0-1f46add30ba2" - } ], - "type" : "library", - "bom-ref" : "opensaml-saml-impl-4.3.2.jar-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-saml-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-saml-25.4-SNAPSHOT-5" - }, { - "group" : "org.opensaml", - "name" : "opensaml-saml-impl-4.3.2.jar", - "version" : "4.3.2", - "description" : "SAML Provider Implementations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ae0c3b86989f780570bae84f32785e9e049b9b0" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-saml-impl@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8891aeb2-3483-4b6f-80c0-1f46add30ba2" - } ], - "type" : "library", - "bom-ref" : "opensaml-saml-impl-4.3.2.jar-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-saml-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-saml-25.4-SNAPSHOT-2" - }, { - "group" : "org.opensaml", - "name" : "opensaml-saml-impl-4.3.2.jar", - "version" : "4.3.2", - "description" : "SAML Provider Implementations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ae0c3b86989f780570bae84f32785e9e049b9b0" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-saml-impl@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8891aeb2-3483-4b6f-80c0-1f46add30ba2" - } ], - "type" : "library", - "bom-ref" : "opensaml-saml-impl-4.3.2.jar-2" - }, { - "group" : "com.sonarsource.rpg", - "name" : "rpg-api-3.10.0.5337.jar", - "version" : "3.10.0.5337", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "29b7d4651d8c9ef2a6c7ad0bb340c94db5d5df97" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b95b62d7-d7d8-4c50-8362-f1ea8ae4a305" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "rpg-api-3.10.0.5337.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-saml-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-saml-25.4-SNAPSHOT-3" - }, { - "group" : "org.opensaml", - "name" : "opensaml-saml-impl-4.3.2.jar", - "version" : "4.3.2", - "description" : "SAML Provider Implementations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ae0c3b86989f780570bae84f32785e9e049b9b0" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-saml-impl@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8891aeb2-3483-4b6f-80c0-1f46add30ba2" - } ], - "type" : "library", - "bom-ref" : "opensaml-saml-impl-4.3.2.jar-3" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-developer-scanner-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-developer-scanner-2025.3-SNAPSHOT-2" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-developer-scanner-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-developer-scanner-2025.3-SNAPSHOT-3" - }, { - "group" : "tslib", - "name" : "tslib-2.5.0.tgz", - "version" : "2.5.0", - "description" : "Runtime library for TypeScript helper functions", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "42bfed86f5787aeb41d031866c8f402429e0fddf" - } ], - "licenses" : [ { - "license" : { - "id" : "0BSD", - "url" : "https://spdx.org/licenses/0BSD.html" - } - } ], - "copyright" : "Copyright Microsoft Corporation,Copyright Microsoft Corporation", - "purl" : "pkg:npm/tslib@2.5.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.typescriptlang.org/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f998046c-5c9c-45b1-9a61-5c74043fb3f8" - } ], - "type" : "library", - "bom-ref" : "tslib-2.5.0.tgz" - }, { - "group" : "org.springframework", - "name" : "spring-web-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Web", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b42d2c0acbe05bad4c849883aa8816c25b6c1d94" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2009 OW2 Consortium,Copyright 2002-2025 Pivotal, Inc,Copyright 2006-2019 Joe Walnes,Copyright 2000-2011 INRIA", - "purl" : "pkg:maven/org.springframework/spring-web@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e54e00e9-d18b-4637-b767-1f3cd64ceea0" - } ], - "type" : "library", - "bom-ref" : "spring-web-6.2.5.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-developer-scanner-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-developer-scanner-2025.3-SNAPSHOT-4" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-developer-scanner-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-developer-scanner-2025.3-SNAPSHOT-5" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-checks-1.9.0.4841.jar", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b401c6666eb50fb40eb559461ba11b47b4bad5aa" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e7090819-bb03-44d1-a5c1-44a3aa12b1aa" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-checks-1.9.0.4841.jar-2" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-memory-8.11.3.jar", - "version" : "8.11.3", - "description" : "High-performance single-document index to compare against Query", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3211a4efd42e8231482e6cfa79a58fe50721f314" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011-2016 Yann Collet,Copyright 1999-2010 International Business Machines,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright 1995-2008 International Business Machines Corporation and others,Copyright 2006 Dawid Weiss,Copyright 2001-2004 Copyright,Copyright 2009 by www.imdict.net,Copyright 2001-2021 The Apache Software Foundation,Copyright 2001-2009 Anders Moeller,Copyright 2002 Richard Boulton,Copyright © 2003,,Copyright 2007-2011 Dawid Weiss,The Apache Software Foundation,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 2001 Dr Martin Porter", - "purl" : "pkg:maven/org.apache.lucene/lucene-memory@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9eb2b578-98ea-4d27-bca7-6bd2a8c2daba" - } ], - "type" : "library", - "bom-ref" : "lucene-memory-8.11.3.jar" - }, { - "group" : "@radix-ui/react-popper", - "name" : "react-popper-1.2.1.tgz", - "version" : "1.2.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2fc66cfc34f95f00d858924e3bee54beae2dff0a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-popper@1.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "66bb43bf-7ece-499e-a847-d0d22fce5864" - } ], - "type" : "library", - "bom-ref" : "react-popper-1.2.1.tgz" - }, { - "group" : "@radix-ui/react-primitive", - "name" : "react-primitive-2.0.0.tgz", - "version" : "2.0.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fe05715faa9203a223ccc0be15dc44b9f9822884" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-primitive@2.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "3b1de3cb-d57d-4863-8301-d32bf97c5711" - } ], - "type" : "library", - "bom-ref" : "react-primitive-2.0.0.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-developer-server-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-developer-server-2025.3-SNAPSHOT-6" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-developer-server-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-developer-server-2025.3-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.javascript", - "name" : "api-10.21.1.30825.jar", - "version" : "10.21.1.30825", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "52ab033271268c4fe5c3df60716a744527f76c50" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.javascript/api@10.21.1.30825", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4c04a7fa-35fb-46a7-bbf2-f46e6ec8f7ff" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "api-10.21.1.30825.jar-2" - }, { - "group" : "com.sonarsource.cobol", - "name" : "cobol-database-5.8.1.8428.jar", - "version" : "5.8.1.8428", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8f8b4b4d0915731329b7989c1c6c3338449b4bbf" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e1469c4a-1943-4e36-8936-57d458c2590a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "cobol-database-5.8.1.8428.jar" - }, { - "group" : "org.apache.pdfbox", - "name" : "pdfbox-io-3.0.4.jar", - "version" : "3.0.4", - "description" : "The Apache PDFBox library is an open source Java tool for working with PDF documents. This artefact contains IO related classes.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3bb2ac79d25c65fb7dd01d9edde46f377f93cd0c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2002-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.pdfbox/pdfbox-io@3.0.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "13bbe647-2dcf-43f1-8ef4-082e2849e0fb" - } ], - "type" : "library", - "bom-ref" : "pdfbox-io-3.0.4.jar" - }, { - "group" : "org.codehaus.staxmate", - "name" : "staxmate-2.0.1.jar", - "version" : "2.0.1", - "description" : "StaxMate is a light-weight framework that adds convenience to streaming XML-processing without significant additional overhead. It builds on top of a Stax (JSR-173) compliant XML processors such as Woodstox or Sjsxp (default Stax implementation of JDK 1.6) and offers two basic abstractions: Cursors, which build on XMLStreamReaders and Output objects, which build on XMLStreamWriters.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b0b767fbc22683d7bf26a14ae1c5817561e21d00" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Codehaus", - "purl" : "pkg:maven/org.codehaus.staxmate/staxmate@2.0.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.codehaus.org/" - }, { - "type" : "distribution", - "url" : "http://www.codehaus.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e09f3dc6-5660-4199-a9a3-b20d3b0cd164" - } ], - "type" : "library", - "bom-ref" : "staxmate-2.0.1.jar" - }, { - "group" : "axios", - "name" : "axios-1.8.2.tgz", - "version" : "1.8.2", - "description" : "Promise based HTTP client for the browser and node.js", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fabe06e241dfe83071d4edfbcaa7b1c3a40f7979" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Matt Zabriskie & Collaborators", - "purl" : "pkg:npm/axios@1.8.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://axios-http.com" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6adf97ac-0db7-42a4-b553-fe730ad05827" - } ], - "type" : "library", - "bom-ref" : "axios-1.8.2.tgz-2" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-developer-server-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-developer-server-2025.3-SNAPSHOT-4" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-developer-server-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-developer-server-2025.3-SNAPSHOT-3" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-developer-server-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-developer-server-2025.3-SNAPSHOT-2" - }, { - "group" : "io.github.hakky54", - "name" : "sslcontext-kickstart-9.1.0.jar", - "version" : "9.1.0", - "description" : "High level library to configure a SSLContext and other properties to enable SSL/TLS connection", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "39cf599e00ca9517e5ced4bfc5ed69e8786a04e9" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/io.github.hakky54/sslcontext-kickstart@9.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/Hakky54/sslcontext-kickstart" - }, { - "type" : "distribution", - "url" : "https://github.com/Hakky54/sslcontext-kickstart" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b2db6be3-738f-42c4-a5f8-f2315844711e" - } ], - "type" : "library", - "bom-ref" : "sslcontext-kickstart-9.1.0.jar" - }, { - "group" : "org.jacoco", - "name" : "org.jacoco.ant-0.8.11.jar", - "version" : "0.8.11", - "description" : "JaCoCo Ant Tasks", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "13ae25fa9149b42cec8e3f495c783c00fbfbccd9" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - }, { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - }, { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - } ], - "copyright" : "Mountainminds GmbH & Co. KG,Copyright 2009-2023 Mountainminds GmbH", - "purl" : "pkg:maven/org.jacoco/org.jacoco.ant@0.8.11?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://jacoco.org" - }, { - "type" : "distribution", - "url" : "http://jacoco.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5d9a67da-3b1b-4561-9794-d4f4b4a0ae98" - } ], - "type" : "library", - "bom-ref" : "org.jacoco.ant-0.8.11.jar" - }, { - "group" : "com.sonarsource.plsql", - "name" : "plsql-squid-3.15.0.7123.jar", - "version" : "3.15.0.7123", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "40760cdebb3079f74192caf964944f768b499e7d" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "729ea8c8-a48f-4569-a28d-2ea2ced4d696" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "plsql-squid-3.15.0.7123.jar-2" - }, { - "group" : "org.sonarsource.flex", - "name" : "flex-squid-2.14.0.5032.jar", - "version" : "2.14.0.5032", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b4baf59112c7c84bbec45b542ee8524cde9f0387" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.flex/flex-squid@2.14.0.5032", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5db5e600-0cd1-4451-8138-19c4b08b28b6" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "flex-squid-2.14.0.5032.jar-2" - }, { - "group" : "io.prometheus", - "name" : "simpleclient_common-0.16.0.jar", - "version" : "0.16.0", - "description" : "Common code used by various modules of the Simpleclient.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a09a8c790a20309b942a9fdbfe77da22407096e6" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2015 The Prometheus Authors", - "purl" : "pkg:maven/io.prometheus/simpleclient_common@0.16.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://github.com/prometheus/client_java" - }, { - "type" : "distribution", - "url" : "http://github.com/prometheus/client_java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0cf1c072-e3fe-4891-9317-78b5c78843d1" - } ], - "type" : "library", - "bom-ref" : "simpleclient-common-0.16.0.jar-3" - }, { - "group" : "scheduler", - "name" : "scheduler-0.23.2.tgz", - "version" : "0.23.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "414ba64a3b282892e944cf2108ecc078d115cdc3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Facebook, Inc. and its affiliates", - "purl" : "pkg:npm/scheduler@0.23.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://reactjs.org/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d59de61e-ca73-479e-926f-71b134c1bd7a" - } ], - "type" : "library", - "bom-ref" : "scheduler-0.23.2.tgz" - }, { - "group" : "io.prometheus", - "name" : "simpleclient_common-0.16.0.jar", - "version" : "0.16.0", - "description" : "Common code used by various modules of the Simpleclient.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a09a8c790a20309b942a9fdbfe77da22407096e6" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2015 The Prometheus Authors", - "purl" : "pkg:maven/io.prometheus/simpleclient_common@0.16.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://github.com/prometheus/client_java" - }, { - "type" : "distribution", - "url" : "http://github.com/prometheus/client_java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0cf1c072-e3fe-4891-9317-78b5c78843d1" - } ], - "type" : "library", - "bom-ref" : "simpleclient-common-0.16.0.jar-2" - }, { - "group" : "com.sonarsource.swift", - "name" : "swift-frontend-4.13.1.8101.jar", - "version" : "4.13.1.8101", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2267549ba12fb4ff86b0b6862c06cc90d0705bed" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4c38cdad-43f8-4073-826e-a7ef075ee7f2" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "swift-frontend-4.13.1.8101.jar-2" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "provisioning-common-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "provisioning-common-2025.3-SNAPSHOT" - }, { - "group" : "org.sonarsource.python", - "name" : "sonar-python-plugin-5.2.0.20808.jar", - "version" : "5.2.0.20808", - "description" : "Code Analyzer for Python", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a34d972a1c457650917da9913da19fdab43c7f66" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright 1999-2009 The Apache Software Foundation,Copyright 2022 Daniel Lemire,Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright 2021 The fast_float authors,SonarSource,Copyright 2024 Werner Randelshofer, Switzerland,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright 2020 Tim Buktu. 2-clause BSD License,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.python/sonar-python-plugin@5.2.0.20808", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/python.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/python.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d9f8e910-03b0-44fb-a1c7-035f35e78581" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-python-plugin-5.2.0.20808.jar-2" - }, { - "group" : "loose-envify", - "name" : "loose-envify-1.4.0.tgz", - "version" : "1.4.0", - "description" : "Fast (and loose) selective `process.env` replacer using js-tokens instead of an AST", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "71ee51fa7be4caec1a63839f7e682d8132d30caf" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Andres Suarez <zertosh@gmail.com>", - "purl" : "pkg:npm/loose-envify@1.4.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/zertosh/loose-envify" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "49523830-a25b-44db-b375-0089499a8a2d" - } ], - "type" : "library", - "bom-ref" : "loose-envify-1.4.0.tgz-2" - }, { - "group" : "markdownlint", - "name" : "markdownlint-0.35.0.tgz", - "version" : "0.35.0", - "description" : "A Node.js style checker and lint tool for Markdown/CommonMark files.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8189347fef3550045de78a96c52a7f45c2a4f91e" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright David Anson", - "purl" : "pkg:npm/markdownlint@0.35.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/DavidAnson/markdownlint" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/markdownlint/-/markdownlint-0.35.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "122d57df-deea-4497-bf19-10880d305948" - } ], - "type" : "library", - "bom-ref" : "markdownlint-0.35.0.tgz" - }, { - "group" : "com.sonarsource.security", - "name" : "sonar-security-php-frontend-plugin-11.1.0.35630.sonar-plugin", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1240a2010cb779bb3bdd1c86319553e951719f7c" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2f1c1f64-1c73-44ba-8e74-c8fdd6bb862b" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-security-php-frontend-plugin-11.1.0.35630.sonar-plugin" - }, { - "group" : "org.apache.sshd", - "name" : "sshd-core-2.15.0.jar", - "version" : "2.15.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bc6ff14b0dddfaec40063b86871774d65a771eaa" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2008-2025 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.sshd/sshd-core@2.15.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "50249230-e971-4c55-b953-54a47df8887e" - } ], - "type" : "library", - "bom-ref" : "sshd-core-2.15.0.jar" - }, { - "group" : "org.springframework", - "name" : "spring-expression-6.1.13.jar", - "version" : "6.1.13", - "description" : "Spring Expression Language (SpEL)", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "be30254712ca0549cbd539ba05c57064917253f3" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2009 OW2 Consortium,Copyright 2006-2019 Joe Walnes,Copyright 2000-2011 INRIA,Copyright 2002-2024 Pivotal, Inc", - "purl" : "pkg:maven/org.springframework/spring-expression@6.1.13", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "046c7c14-8423-47bf-b19f-5ac21cbfcf86" - } ], - "type" : "library", - "bom-ref" : "spring-expression-6.1.13.jar" - }, { - "group" : "org.sonarsource.html", - "name" : "sonar-html-plugin-3.19.0.5695.jar", - "version" : "3.19.0.5695", - "description" : "Code analyzer for HTML", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "390a10753f22fc9df8df1fcbc9eb44c83590d882" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.html/sonar-html-plugin@3.19.0.5695", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/web.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/web.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b2c2b38e-d392-489e-be05-6c4f20ce167e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-html-plugin-3.19.0.5695.jar-2" - }, { - "group" : "shebang-regex", - "name" : "shebang-regex-3.0.0.tgz", - "version" : "3.0.0", - "description" : "Regular expression for matching a shebang line", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ae16f1644d873ecad843b0307b143362d4c42172" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus,Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/shebang-regex@3.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/shebang-regex#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "a1086fbf-0b62-419c-ae1b-1b0a57c50709" - } ], - "type" : "library", - "bom-ref" : "shebang-regex-3.0.0.tgz" - }, { - "group" : "is-fullwidth-code-point", - "name" : "is-fullwidth-code-point-3.0.0.tgz", - "version" : "3.0.0", - "description" : "Check if the character represented by a given Unicode code point is fullwidth", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f116f8064fe90b3f7844a38997c0b75051269f1d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com),Copyright Sindre Sorhus", - "purl" : "pkg:npm/is-fullwidth-code-point@3.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/is-fullwidth-code-point#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ba63a0b7-4d8f-49da-9a81-737fbeb1115c" - } ], - "type" : "library", - "bom-ref" : "is-fullwidth-code-point-3.0.0.tgz" - }, { - "group" : "minimatch", - "name" : "minimatch-10.0.1.tgz", - "version" : "10.0.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2011-2023 Isaac Z. Schlueter and Contributors", - "purl" : "pkg:npm/minimatch@10.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/isaacs/minimatch#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "92f93231-6594-4bcf-8b13-44a4c438378a" - } ], - "type" : "library", - "bom-ref" : "minimatch-10.0.1.tgz-2" - }, { - "group" : "@radix-ui/react-collection", - "name" : "react-collection-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "be2c7e01d3508e6d4b6d838f492e7d182f17d3b0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-collection@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6704e4c6-6b3e-4105-a274-e9103cb84c4d" - } ], - "type" : "library", - "bom-ref" : "react-collection-1.1.1.tgz" - }, { - "group" : "js-tokens", - "name" : "js-tokens-4.0.0.tgz", - "version" : "4.0.0", - "description" : "A regex that tokenizes JavaScript.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "19203fb59991df98e3a287050d4647cdeaf32499" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014-2015 2016, 2017, 2018 Simon Lydell,Copyright 2014-2018 Simon Lydell", - "purl" : "pkg:npm/js-tokens@4.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/lydell/js-tokens#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5e8ac002-bbdf-4f66-84ea-c240edc62bda" - } ], - "type" : "library", - "bom-ref" : "js-tokens-4.0.0.tgz" - }, { - "group" : "org.sonarsource.dotnet", - "name" : "sonar-dotnet-core-10.7.0.110445.jar", - "version" : "10.7.0.110445", - "description" : "Share code between C# and VB.NET plugins", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "440f4bef8140aaab15f40077f4d5391f3ba12f80" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.dotnet/sonar-dotnet-core@10.7.0.110445", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/SonarSource/sonar-dotnet" - }, { - "type" : "distribution", - "url" : "https://github.com/SonarSource/sonar-dotnet" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a9a13598-d87c-4d0c-99ad-69addfabbae7" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-dotnet-core-10.7.0.110445.jar" - }, { - "group" : "find-root", - "name" : "find-root-1.1.0.tgz", - "version" : "1.1.0", - "description" : "find the closest package.json", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 jsdnxx,Copyright 2017 jsdnxx", - "purl" : "pkg:npm/find-root@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/js-n/find-root#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e3fbfe51-ac92-4f1e-acfb-520d8a6b8460" - } ], - "type" : "library", - "bom-ref" : "find-root-1.1.0.tgz" - }, { - "group" : "com.sonarsource.dotnet", - "name" : "sonar-csharp-enterprise-plugin-10.7.0.110445.sonar-plugin", - "version" : "10.7.0.110445", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f9efc6460d88da2066eeaaaf9ba5831a942c3b8a" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "aee75558-0ea1-4fee-9a60-92db02d50b2d" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-csharp-enterprise-plugin-10.7.0.110445.sonar-plugin" - }, { - "group" : "org.apache.httpcomponents", - "name" : "httpcore-4.4.12.jar", - "version" : "4.4.12", - "description" : "Apache HttpComponents Core (blocking I/O)", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "21ebaf6d532bc350ba95bd81938fa5f0e511c132" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2005-2019 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.httpcomponents/httpcore@4.4.12?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.apache.org/" - }, { - "type" : "distribution", - "url" : "http://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "bb4e2085-80ec-4437-aaec-d8223b4e6fb3" - } ], - "type" : "library", - "bom-ref" : "httpcore-4.4.12.jar" - }, { - "group" : "@emotion/utils", - "name" : "utils-1.1.0.tgz", - "version" : "1.1.0", - "description" : "internal utils for emotion", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/utils@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "3b0163e1-dce1-4f59-9332-3069815d7f02" - } ], - "type" : "library", - "bom-ref" : "utils-1.1.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-markdown-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-markdown-25.4-SNAPSHOT" - }, { - "group" : "@radix-ui/react-popover", - "name" : "react-popover-1.1.5.tgz", - "version" : "1.1.5", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d5ad80f0643368e4ed680832c819b4fb47a1fce5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-popover@1.1.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "07398a11-e7d2-4cfa-a2a9-7379ced3f497" - } ], - "type" : "library", - "bom-ref" : "react-popover-1.1.5.tgz" - }, { - "group" : "net.java.dev.jna", - "name" : "jna-5.6.0.jar", - "version" : "5.6.0", - "description" : "Java Native Access", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "330f2244e9030119ab3030fc3fededc86713d9cc" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/net.java.dev.jna/jna@5.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3a58fd53-304e-4ae0-b2c3-e9d29e3608b4" - } ], - "type" : "library", - "bom-ref" : "jna-5.6.0.jar" - }, { - "group" : "deep-diff", - "name" : "deep-diff-1.0.2.tgz", - "version" : "1.0.2", - "description" : "Javascript utility for calculating deep difference, capturing changes, and applying changes across objects; for nodejs and the browser.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "afd3d1f749115be965e89c63edc7abb1506b9c26" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2011-2018 Phillip Clark,Copyright 2011-2018 Phillip Clark", - "purl" : "pkg:npm/deep-diff@1.0.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/flitbit/diff#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/deep-diff/-/deep-diff-1.0.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "74c172a6-f4ae-4b5b-b96c-79394e0b84d8" - } ], - "type" : "library", - "bom-ref" : "deep-diff-1.0.2.tgz" - }, { - "group" : "net.java.dev.jna", - "name" : "jna-5.10.0.jar", - "version" : "5.10.0", - "description" : "Java Native Access", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7cf4c87dd802db50721db66947aa237d7ad09418" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "1999 Free Software Foundation Inc.", - "purl" : "pkg:maven/net.java.dev.jna/jna@5.10.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a66b4190-ec43-45b8-a239-34a3e69e7aae" - } ], - "type" : "library", - "bom-ref" : "jna-5.10.0.jar" - }, { - "group" : "lru-cache", - "name" : "lru-cache-11.0.1.tgz", - "version" : "11.0.1", - "description" : "A cache object that deletes the least-recently-used items.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3a732fbfedb82c5ba7bca6564ad3f42afcb6e147" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2023 Isaac Z. Schlueter and Contributors", - "purl" : "pkg:npm/lru-cache@11.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/isaacs/node-lru-cache#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "41fd344a-7176-41da-921e-f104845c7bf0" - } ], - "type" : "library", - "bom-ref" : "lru-cache-11.0.1.tgz" - }, { - "group" : "sonarqube", - "name" : "elasticsearch-8.16.3-no-jdk.tar.gz", - "version" : "8.16.3-no-jdk", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "71684e36767504efc415a65c92a8b22eb509756b" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5667f674-9525-440c-bab6-8cc7d2889180" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-8.16.3-no-jdk.tar.gz" - }, { - "group" : "callsites", - "name" : "callsites-3.1.0.tgz", - "version" : "3.1.0", - "description" : "Get callsites from the V8 stack trace API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b3630abd8943432f54b3f0519238e33cd7df2f73" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus,Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/callsites@3.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/callsites#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "a7bdac8d-939c-469a-b226-5c1f70e21ba1" - } ], - "type" : "library", - "bom-ref" : "callsites-3.1.0.tgz" - }, { - "group" : "com.sonarsource.jcl", - "name" : "jcl-frontend-1.4.1.1493.jar", - "version" : "1.4.1.1493", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ec9108a46771cdc7b50b26b210a6fbd5f40145e1" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ba5832cc-86cc-4402-b7f9-617abbc844d3" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "jcl-frontend-1.4.1.1493.jar" - }, { - "group" : "ansi-regex", - "name" : "ansi-regex-5.0.1.tgz", - "version" : "5.0.1", - "description" : "Regular expression for matching ANSI escape codes", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "082cb2c89c9fe8659a311a53bd6a4dc5301db304" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/ansi-regex@5.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/chalk/ansi-regex#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9a15a1a8-346d-4b42-b7eb-590db9f8b7ca" - } ], - "type" : "library", - "bom-ref" : "ansi-regex-5.0.1.tgz" - }, { - "group" : "function-bind", - "name" : "function-bind-1.1.1.tgz", - "version" : "1.1.1", - "description" : "Implementation of Function.prototype.bind", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Raynos", - "purl" : "pkg:npm/function-bind@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/Raynos/function-bind" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4fd7b59a-eb5d-48b6-a40e-74921deb8edc" - } ], - "type" : "library", - "bom-ref" : "function-bind-1.1.1.tgz" - }, { - "group" : "react-is", - "name" : "react-is-16.10.1.tgz", - "version" : "16.10.1", - "description" : "Brand checking of React Elements.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0612786bf19df406502d935494f0450b40b8294f" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Facebook, Inc. and its affiliates,Copyright Facebook, Inc. and its affiliates", - "purl" : "pkg:npm/react-is@16.10.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://reactjs.org/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-is/-/react-is-16.10.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4434780b-aa20-4076-9363-f9a8cb4ae2be" - } ], - "type" : "library", - "bom-ref" : "react-is-16.10.1.tgz" - }, { - "group" : "org.spdx", - "name" : "spdx-jackson-store-2.0.0-RC2.jar", - "version" : "2.0.0-RC2", - "description" : "Storage for SPDX documents utilizing Jackson Databind. This store supports serializing and deserializing files in JSON, YAML and XML formats.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "65d9277e8638ff510269dd677797e2556bc28c2c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.spdx/spdx-jackson-store@2.0.0-RC2", - "externalReferences" : [ { - "type" : "website", - "url" : "http://spdx.org" - }, { - "type" : "distribution", - "url" : "http://spdx.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d0e5cb8-1791-4a41-a6e3-6fe5382064af" - } ], - "type" : "library", - "bom-ref" : "spdx-jackson-store-2.0.0-RC2.jar" - }, { - "group" : "org.apache.santuario", - "name" : "xmlsec-2.3.4.jar", - "version" : "2.3.4", - "description" : "Apache XML Security for Java supports XML-Signature Syntax and Processing, W3C Recommendation 12 February 2002, and XML Encryption Syntax and Processing, W3C Recommendation 10 December 2002. As of version 1.4, the library supports the standard Java API JSR-105: XML Digital Signature APIs.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7f2baecd896ae8e8b02b6090220537bd950eccbc" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2000-2023 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.santuario/xmlsec@2.3.4?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5e532597-5f09-4f90-92b2-bc4f2523de8f" - } ], - "type" : "library", - "bom-ref" : "xmlsec-2.3.4.jar" - }, { - "group" : "@radix-ui/react-arrow", - "name" : "react-arrow-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "744f388182d360b86285217e43b6c63633f39e7a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-arrow@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6a94b784-3725-4a43-b96c-dbca8cfde80d" - } ], - "type" : "library", - "bom-ref" : "react-arrow-1.1.0.tgz" - }, { - "group" : "@radix-ui/react-portal", - "name" : "react-portal-1.1.3.tgz", - "version" : "1.1.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b0ea5141103a1671b715481b13440763d2ac4440" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-portal@1.1.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "884a5ad1-4ec1-4341-9355-599e26943c69" - } ], - "type" : "library", - "bom-ref" : "react-portal-1.1.3.tgz" - }, { - "group" : "d3-zoom", - "name" : "d3-zoom-3.0.0.tgz", - "version" : "3.0.0", - "description" : "Pan and zoom SVG, HTML or Canvas using mouse or touch input.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d13f4165c73217ffeaa54295cd6969b3e7aee8f3" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock,Copyright 2010-2021 Mike Bostock", - "purl" : "pkg:npm/d3-zoom@3.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-zoom/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e6f437b2-f7e1-4d18-a29d-bfe15e03e9dc" - } ], - "type" : "library", - "bom-ref" : "d3-zoom-3.0.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-main-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-main-25.4-SNAPSHOT" - }, { - "group" : "org.springframework", - "name" : "spring-beans-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Beans", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6f8eb671d9905da5a73bc9ab7e703e9fed6a0c3f" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2002-2025 Pivotal, Inc,Copyright 1999-2009 OW2 Consortium,Copyright 2006-2019 Joe Walnes,Copyright 2000-2011 INRIA", - "purl" : "pkg:maven/org.springframework/spring-beans@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "66cf18dd-e5e8-4b37-a001-4d81db6803f7" - } ], - "type" : "library", - "bom-ref" : "spring-beans-6.2.5.jar-2" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-core-8.11.3.jar", - "version" : "8.11.3", - "description" : "Apache Lucene Java Core", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fc748044e11ba0c0a717066d828d18b7785c1a16" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006 Dawid Weiss,Copyright 2001-2021 The Apache Software Foundation,Copyright 2001-2004 Copyright,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright 2001-2009 Anders Moeller,Copyright 2007-2011 Dawid Weiss,Copyright 2001 Dr Martin Porter,Copyright 2009 by www.imdict.net,Copyright 1999-2010 International Business Machines,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 2011-2016 Yann Collet,Copyright 1995-2008 International Business Machines Corporation and others,Copyright © 2003,,Copyright 2002 Richard Boulton,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.lucene/lucene-core@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a4693883-0f78-4ecb-b0d5-2ef263bfae15" - } ], - "type" : "library", - "bom-ref" : "lucene-core-8.11.3.jar" - }, { - "group" : "path-scurry", - "name" : "path-scurry-2.0.0.tgz", - "version" : "2.0.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9f052289f23ad8bf9397a2a0425e7b8615c58580" - } ], - "licenses" : [ { - "license" : { - "id" : "BlueOak-1.0.0", - "url" : "https://blueoakcouncil.org/license/1.0.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/path-scurry@2.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/isaacs/path-scurry#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "914fe954-106c-44d1-a4b7-d4bfe3fb17ec" - } ], - "type" : "library", - "bom-ref" : "path-scurry-2.0.0.tgz" - }, { - "group" : "com.sonarsource.rpg", - "name" : "rpg-analyzer-3.10.0.5337.jar", - "version" : "3.10.0.5337", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "40d1f4bebe1b375e7bdba55ad6884b701ce9766d" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "11b00761-65c3-43c0-858e-4ca1414128e0" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "rpg-analyzer-3.10.0.5337.jar" - }, { - "group" : "org.opensaml", - "name" : "opensaml-messaging-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "Messaging API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "311fc2cccbbbebff8c94f3800900f3882e387103" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-messaging-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "72487fab-1020-4c24-92c0-2ae624635ca2" - } ], - "type" : "library", - "bom-ref" : "opensaml-messaging-api-4.3.2.jar-2" - }, { - "group" : "com.sonarsource.go", - "name" : "sonar-go-enterprise-plugin-1.21.1.1670.jar", - "version" : "1.21.1.1670", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fba209458d29172f563caf225f4e69d8d286e415" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6d69c959-7a58-473a-864e-ed18ebde6ddc" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-go-enterprise-plugin-1.21.1.1670.jar" - }, { - "group" : "@radix-ui/react-use-size", - "name" : "react-use-size-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b4dba7fbd3882ee09e8d2a44a3eed3a7e555246b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-use-size@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "8468d6f4-19fb-4d54-8b4e-b30e937c4570" - } ], - "type" : "library", - "bom-ref" : "react-use-size-1.1.0.tgz" - }, { - "group" : "org.elasticsearch.client", - "name" : "elasticsearch-rest-high-level-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :client:rest-high-level", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3dc9666247572e95ce960f4f7f98d17a59035ba9" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch.client/elasticsearch-rest-high-level-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "893ed0c0-2e1c-45c3-9e56-9628ae74162d" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-rest-high-level-client-7.17.28.jar" - }, { - "group" : "@types/hoist-non-react-statics", - "name" : "hoist-non-react-statics-3.3.1.tgz", - "version" : "3.3.1", - "description" : "TypeScript definitions for hoist-non-react-statics", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1124aafe5118cb591977aeb1ceaaed1070eb039f" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/hoist-non-react-statics@3.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9d934665-9c13-4be0-ba52-5aa61af63483" - } ], - "type" : "library", - "bom-ref" : "hoist-non-react-statics-3.3.1.tgz" - }, { - "group" : "com.google.guava", - "name" : "guava-33.4.5-jre.jar", - "version" : "33.4.5-jre", - "description" : "Guava is a suite of core and expanded libraries that include utility classes, Google's collections, I/O classes, and much more.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4e3ee57a4974ec2077a395dfa1ae4adbb9a4a858" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.google.guava/guava@33.4.5-jre", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/google/guava" - }, { - "type" : "distribution", - "url" : "https://github.com/google/guava" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9bd8f71e-06a3-4294-84f6-49db4ac1f9a7" - } ], - "type" : "library", - "bom-ref" : "guava-33.4.5-jre.jar-2" - }, { - "group" : "org.jdom", - "name" : "jdom2-2.0.6.1.jar", - "version" : "2.0.6.1", - "description" : "A complete, Java-based solution for accessing, manipulating, and outputting XML data", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "dc15dff8f701b227ee523eeb7a17f77c10eafe2f" - } ], - "licenses" : [ { - "license" : { - "name" : "JDOM", - "url" : "https://github.com/hunterhacker/jdom/blob/master/LICENSE.txt" - } - }, { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2000-2012 Jason Hunter,Copyright 2000-2012 Jason Hunter", - "purl" : "pkg:maven/org.jdom/jdom2@2.0.6.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.jdom.org" - }, { - "type" : "distribution", - "url" : "http://www.jdom.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3d83623c-0b3a-48ae-a87b-dc8ab87f9549" - } ], - "type" : "library", - "bom-ref" : "jdom2-2.0.6.1.jar" - }, { - "group" : "com.google.guava", - "name" : "guava-33.4.5-jre.jar", - "version" : "33.4.5-jre", - "description" : "Guava is a suite of core and expanded libraries that include utility classes, Google's collections, I/O classes, and much more.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4e3ee57a4974ec2077a395dfa1ae4adbb9a4a858" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.google.guava/guava@33.4.5-jre", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/google/guava" - }, { - "type" : "distribution", - "url" : "https://github.com/google/guava" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9bd8f71e-06a3-4294-84f6-49db4ac1f9a7" - } ], - "type" : "library", - "bom-ref" : "guava-33.4.5-jre.jar-3" - }, { - "group" : "com.fasterxml.staxmate", - "name" : "staxmate-2.4.1.jar", - "version" : "2.4.1", - "description" : "StaxMate is a light-weight framework that adds convenience to streaming XML-processing without significant additional overhead. It builds on top of a Stax (JSR-173) compliant XML processors such as Woodstox or Sjsxp (default Stax implementation of JDK 1.6) and offers two basic abstractions: Cursors, which build on XMLStreamReaders and Output objects, which build on XMLStreamWriters.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a61f6c66e732c05ca5d75269ac5d2ea288d22c9" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.fasterxml.staxmate/staxmate@2.4.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f50233a6-b6e6-43dd-a8ac-3630b3fc2e5c" - } ], - "type" : "library", - "bom-ref" : "staxmate-2.4.1.jar" - }, { - "group" : "escape-string-regexp", - "name" : "escape-string-regexp-4.0.0.tgz", - "version" : "4.0.0", - "description" : "Escape RegExp special characters", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "14ba83a5d373e3d311e5afca29cf5bfad965bf34" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/escape-string-regexp@4.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/escape-string-regexp#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f2e714f5-f226-4dcd-9e8d-15358d80b7ad" - } ], - "type" : "library", - "bom-ref" : "escape-string-regexp-4.0.0.tgz" - }, { - "group" : "org.opensaml", - "name" : "opensaml-security-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "Security API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "448431fafb3a26e5be9c3b3d8d223736d70edd86" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-security-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0c116992-a187-4aba-b94f-2a4fbc79dd9e" - } ], - "type" : "library", - "bom-ref" : "opensaml-security-api-4.3.2.jar-3" - }, { - "group" : "org.opensaml", - "name" : "opensaml-security-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "Security API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "448431fafb3a26e5be9c3b3d8d223736d70edd86" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-security-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0c116992-a187-4aba-b94f-2a4fbc79dd9e" - } ], - "type" : "library", - "bom-ref" : "opensaml-security-api-4.3.2.jar-2" - }, { - "group" : "org.apache.pdfbox", - "name" : "pdfbox-io-3.0.4.jar", - "version" : "3.0.4", - "description" : "The Apache PDFBox library is an open source Java tool for working with PDF documents. This artefact contains IO related classes.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3bb2ac79d25c65fb7dd01d9edde46f377f93cd0c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2002-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.pdfbox/pdfbox-io@3.0.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "13bbe647-2dcf-43f1-8ef4-082e2849e0fb" - } ], - "type" : "library", - "bom-ref" : "pdfbox-io-3.0.4.jar-2" - }, { - "group" : "@radix-ui/react-radio-group", - "name" : "react-radio-group-1.2.0.tgz", - "version" : "1.2.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f937dd6b9436ded80c4bebdf3901c20cb8bcbb5a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-radio-group@1.2.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.2.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "25f91f1a-3cd8-435a-9965-0cb71ce194e1" - } ], - "type" : "library", - "bom-ref" : "react-radio-group-1.2.0.tgz" - }, { - "group" : "org.elasticsearch.plugin", - "name" : "rank-eval-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "The Rank Eval module adds APIs to evaluate ranking quality.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f9d650886073dbc91cce6fce9c647c8272c2ec40" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - }, { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch.plugin/rank-eval-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dd348b99-a178-49dc-8c12-c38f0b6545c4" - } ], - "type" : "library", - "bom-ref" : "rank-eval-client-7.17.28.jar" - }, { - "group" : "org.springframework", - "name" : "spring-aop-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring AOP", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9f436be65bf45ee8643d93e6823d6c81e8f9f91a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006-2019 Joe Walnes,Copyright 2002-2025 Pivotal, Inc,Copyright 2000-2011 INRIA,Copyright 1999-2009 OW2 Consortium", - "purl" : "pkg:maven/org.springframework/spring-aop@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7c3a6bb4-dad2-49b1-8eaa-b4649e322dc0" - } ], - "type" : "library", - "bom-ref" : "spring-aop-6.2.5.jar-2" - }, { - "group" : "org.opensaml", - "name" : "opensaml-core-4.3.2.jar", - "version" : "4.3.2", - "description" : "Core", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7aa04172faa578fbe9a356b91a0495d49ed6b851" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-core@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "68b03b82-64c0-451b-8a70-29a5bfaf6de1" - } ], - "type" : "library", - "bom-ref" : "opensaml-core-4.3.2.jar-2" - }, { - "group" : "@types/react-transition-group", - "name" : "react-transition-group-4.4.5.tgz", - "version" : "4.4.5", - "description" : "TypeScript definitions for react-transition-group", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "aae20dcf773c5aa275d5b9f7cdbca638abc5e416" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/react-transition-group@4.4.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-transition-group" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "8e3b30fb-13dd-46c2-9c92-99553cd2d466" - } ], - "type" : "library", - "bom-ref" : "react-transition-group-4.4.5.tgz-2" - }, { - "group" : "com.jcraft", - "name" : "jsch.agentproxy.usocket-nc-0.0.9.jar", - "version" : "0.0.9", - "description" : "a proxy to ssh-agent and Pageant in Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "926fd2eb5586c779b8d7827036ea8e06fe7744ba" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2011-2012 Atsuhiko Yamanaka, JCraft,Inc", - "purl" : "pkg:maven/com.jcraft/jsch.agentproxy.usocket-nc@0.0.9?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.jcraft.com/" - }, { - "type" : "distribution", - "url" : "http://www.jcraft.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "75e9f65d-4c06-4e93-9055-99753f30ecf3" - } ], - "type" : "library", - "bom-ref" : "jsch.agentproxy.usocket-nc-0.0.9.jar" - }, { - "group" : "d3-color", - "name" : "d3-color-3.1.0.tgz", - "version" : "3.1.0", - "description" : "Color spaces! RGB, HSL, Cubehelix, Lab and HCL (Lch).", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "395b2833dfac71507f12ac2f7af23bf819de24e2" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2022 Mike Bostock", - "purl" : "pkg:npm/d3-color@3.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-color/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ec815813-83d9-4f40-bda9-77506219b12a" - } ], - "type" : "library", - "bom-ref" : "d3-color-3.1.0.tgz" - }, { - "group" : "@radix-ui/react-use-previous", - "name" : "react-use-previous-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d4dd37b05520f1d996a384eb469320c2ada8377c" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-use-previous@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6651d508-3b7c-4981-ad7f-4a51dc79f97f" - } ], - "type" : "library", - "bom-ref" : "react-use-previous-1.1.0.tgz" - }, { - "group" : "commons-lang", - "name" : "commons-lang-2.6.jar", - "version" : "2.6", - "description" : "Commons Lang, a package of Java utility classes for the classes that are in java.lang's hierarchy, or are considered to be so standard as to justify existence in java.lang.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0ce1edb914c94ebc388f086c6827e8bdeec71ac2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2001-2011 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/commons-lang/commons-lang@2.6?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.apache.org/" - }, { - "type" : "distribution", - "url" : "http://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ed2f1b0d-164c-42ee-9194-8465dac75b0a" - } ], - "type" : "library", - "bom-ref" : "commons-lang-2.6.jar" - }, { - "group" : "org.opensaml", - "name" : "opensaml-xmlsec-impl-4.3.2.jar", - "version" : "4.3.2", - "description" : "XML Security Implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "78d70309495819d4d0670ef1476a4d7321b166a6" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-xmlsec-impl@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9b6890d9-536b-46f0-b2e9-dd6e9975d846" - } ], - "type" : "library", - "bom-ref" : "opensaml-xmlsec-impl-4.3.2.jar-2" - }, { - "group" : "@radix-ui/react-visually-hidden", - "name" : "react-visually-hidden-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f7b48c1af50dfdc366e92726aee6d591996c5752" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-visually-hidden@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c4f277a6-2817-410d-b92e-13c2cf848050" - } ], - "type" : "library", - "bom-ref" : "react-visually-hidden-1.1.1.tgz" - }, { - "group" : "@formatjs/intl", - "name" : "intl-2.10.5.tgz", - "version" : "2.10.5", - "description" : "Internationalize JS apps. This library provides an API to format dates, numbers, and strings, including pluralization and handling translations.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a83960fc1871f476385e006f2fee23cc439f416" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2023 FormatJS", - "purl" : "pkg:npm/%40formatjs/intl@2.10.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://formatjs.io" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@formatjs/intl/-/intl-2.10.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "0775796d-ff20-4bd6-926f-eb2e6cf954ee" - } ], - "type" : "library", - "bom-ref" : "intl-2.10.5.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-shaded-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-shaded-25.4-SNAPSHOT" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-udg-io-1.9.0.4841.jar", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ca6c4e8693d15152650bcfdd918e6e2e5fe5f3e1" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "62cc1d4c-d6ce-4adf-ade6-72fd47cd2895" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-udg-io-1.9.0.4841.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "license-common-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "license-common-2025.3-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-shaded-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-shaded-25.4-SNAPSHOT-2" - }, { - "group" : "org.objenesis", - "name" : "objenesis-3.3.jar", - "version" : "3.3", - "description" : "A library for instantiating Java objects", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1049c09f1de4331e8193e579448d0916d75b7631" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006-2022 the original author or authors,Joe Walnes, Henri Tremblay, Leonardo Mesquita", - "purl" : "pkg:maven/org.objenesis/objenesis@3.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://objenesis.org" - }, { - "type" : "distribution", - "url" : "http://objenesis.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2acd5f84-2d52-4df9-a136-a272df09efad" - } ], - "type" : "library", - "bom-ref" : "objenesis-3.3.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-api-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-api-25.4-SNAPSHOT" - }, { - "group" : "@radix-ui/react-collection", - "name" : "react-collection-1.1.2.tgz", - "version" : "1.1.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b45eccca1cb902fd078b237316bd9fa81e621e15" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-collection@1.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d757520f-ef7d-4729-a5e7-e4fc18cbaeb4" - } ], - "type" : "library", - "bom-ref" : "react-collection-1.1.2.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-es-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-es-25.4-SNAPSHOT-3" - }, { - "group" : "io.dropwizard.metrics", - "name" : "metrics-core-4.2.25.jar", - "version" : "4.2.25", - "description" : "Metrics is a Java library which gives you unparalleled insight into what your code does in production. Metrics provides a powerful toolkit of ways to measure the behavior of critical components in your production environment.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "76162cb1f7a6f902da4f80e5bcf472078e8cd7e1" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/io.dropwizard.metrics/metrics-core@4.2.25?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://metrics.dropwizard.io" - }, { - "type" : "distribution", - "url" : "https://metrics.dropwizard.io" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0757cc3d-bf8a-443d-b2a8-72bb8160b44f" - } ], - "type" : "library", - "bom-ref" : "metrics-core-4.2.25.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-es-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-es-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-25.4-SNAPSHOT" - }, { - "group" : "@radix-ui/react-visually-hidden", - "name" : "react-visually-hidden-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ad47a8572580f7034b3807c8e6740cd41038a5a2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-visually-hidden@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5e0a12c6-79c1-4a27-9f46-031ad90f8b28" - } ], - "type" : "library", - "bom-ref" : "react-visually-hidden-1.1.0.tgz" - }, { - "group" : "@babel/helper-module-imports", - "name" : "helper-module-imports-7.16.7.tgz", - "version" : "7.16.7", - "description" : "Babel helper functions for inserting module loads", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "25612a8091a999704461c8a222d0efec5d091437" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors,Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/helper-module-imports@7.16.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-helper-module-imports" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6afb77b8-efe6-4482-aa46-cbbb9e96a9f6" - } ], - "type" : "library", - "bom-ref" : "helper-module-imports-7.16.7.tgz-2" - }, { - "group" : "babel-plugin-macros", - "name" : "babel-plugin-macros-3.1.0.tgz", - "version" : "3.1.0", - "description" : "Allows you to build compile-time libraries", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9ef6dc74deb934b4db344dc973ee851d148c50c1" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2020 Kent C", - "purl" : "pkg:npm/babel-plugin-macros@3.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/kentcdodds/babel-plugin-macros#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2750871a-ce96-451a-a359-78a76af54aca" - } ], - "type" : "library", - "bom-ref" : "babel-plugin-macros-3.1.0.tgz-2" - }, { - "group" : "@emotion/unitless", - "name" : "unitless-0.8.0.tgz", - "version" : "0.8.0", - "description" : "An object of css properties that don't accept values with units", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a4a36e9cbdc6903737cd20d38033241e1b8833db" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/unitless@0.8.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "df567ccd-f70a-48bd-81a1-635fa8e9c98c" - } ], - "type" : "library", - "bom-ref" : "unitless-0.8.0.tgz" - }, { - "group" : "import-fresh", - "name" : "import-fresh-3.3.0.tgz", - "version" : "3.3.0", - "description" : "Import a module while bypassing the cache", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/import-fresh@3.3.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/import-fresh#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "98815721-dd45-4c9c-9af4-27a9681a6c8f" - } ], - "type" : "library", - "bom-ref" : "import-fresh-3.3.0.tgz" - }, { - "group" : "org.sonarsource.javascript", - "name" : "bridge-10.21.1.30825.jar", - "version" : "10.21.1.30825", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "16a560469d53c24f6f94c37bf96f3630fa239a82" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.javascript/bridge@10.21.1.30825", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2a8a4317-584d-46af-914b-c5cd981312ae" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "bridge-10.21.1.30825.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-duplications-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-duplications-25.4-SNAPSHOT" - }, { - "group" : "org.sonarsource.php", - "name" : "sonar-php-plugin-3.45.0.12991.jar", - "version" : "3.45.0.12991", - "description" : "SonarSource PHP Analyzer", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8feb8f118155975d9c65b55cefde006abeab96e0" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright 1999-2009 The Apache Software Foundation", - "purl" : "pkg:maven/org.sonarsource.php/sonar-php-plugin@3.45.0.12991", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarqube.org/" - }, { - "type" : "distribution", - "url" : "http://www.sonarqube.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2f9e55f2-d6c6-4b87-ae47-ddafb6f270e0" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-php-plugin-3.45.0.12991.jar" - }, { - "group" : "com.sonarsource.security", - "name" : "symbolic-analysis-11.1.0.35630.jar", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "613d4551a5edcb3e27b5f2b337319ca27f58fd7f" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6bad0b67-ce48-42ea-956d-801b568298b0" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "symbolic-analysis-11.1.0.35630.jar-2" - }, { - "group" : "commons-codec", - "name" : "commons-codec-1.18.0.jar", - "version" : "1.18.0", - "description" : "The Apache Commons Codec component contains encoders and decoders for formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these widely used encoders and decoders, the codec package also maintains a collection of phonetic encoding utilities.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ee45d1cf6ec2cc2b809ff04b4dc7aec858e0df8f" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2002-2025 The Apache Software Foundation", - "purl" : "pkg:maven/commons-codec/commons-codec@1.18.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://commons.apache.org/proper/commons-codec/" - }, { - "type" : "distribution", - "url" : "https://commons.apache.org/proper/commons-codec/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4ff924ee-6bf8-4211-8deb-a4313d756a0f" - } ], - "type" : "library", - "bom-ref" : "commons-codec-1.18.0.jar" - }, { - "group" : "prop-types", - "name" : "prop-types-15.7.2.tgz", - "version" : "15.7.2", - "description" : "Runtime type checking for React props and similar objects.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/prop-types@15.7.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://facebook.github.io/react/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "bdf16e27-ea3d-4124-9fda-6ccf02c8772f" - } ], - "type" : "library", - "bom-ref" : "prop-types-15.7.2.tgz-4" - }, { - "group" : "prop-types", - "name" : "prop-types-15.7.2.tgz", - "version" : "15.7.2", - "description" : "Runtime type checking for React props and similar objects.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/prop-types@15.7.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://facebook.github.io/react/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "bdf16e27-ea3d-4124-9fda-6ccf02c8772f" - } ], - "type" : "library", - "bom-ref" : "prop-types-15.7.2.tgz-3" - }, { - "group" : "prop-types", - "name" : "prop-types-15.7.2.tgz", - "version" : "15.7.2", - "description" : "Runtime type checking for React props and similar objects.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/prop-types@15.7.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://facebook.github.io/react/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "bdf16e27-ea3d-4124-9fda-6ccf02c8772f" - } ], - "type" : "library", - "bom-ref" : "prop-types-15.7.2.tgz-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-ws-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-ws-25.4-SNAPSHOT-7" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-ws-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-ws-25.4-SNAPSHOT-6" - }, { - "group" : "org.springframework", - "name" : "spring-webmvc-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Web MVC", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "db8f1171041d7091f3de80cffdfb9d6c5fbf3015" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006-2019 Joe Walnes,Copyright 2000-2011 INRIA,Copyright 2002-2025 Pivotal, Inc,Copyright 1999-2009 OW2 Consortium", - "purl" : "pkg:maven/org.springframework/spring-webmvc@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b59e699c-a7eb-44e4-970f-21d2f9614594" - } ], - "type" : "library", - "bom-ref" : "spring-webmvc-6.2.5.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "sca-application-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sca-application-2025.3-SNAPSHOT-2" - }, { - "group" : "com.sonarsource.rpg", - "name" : "sonar-rpg-plugin-3.10.0.5337.sonar-plugin", - "version" : "3.10.0.5337", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "59a3ed660aab3a9f4481013dd655305a0bcfe582" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "db7c3cc6-cabc-4446-9bd7-2c399f6591a0" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-rpg-plugin-3.10.0.5337.sonar-plugin" - }, { - "group" : "org.sonarsource.java", - "name" : "java-frontend-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "afa661cc575898e4ad21801a99f91d6bf0cafe5c" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-frontend@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "766c32f0-72fa-4727-a8b4-f8efd6a44638" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-frontend-8.11.0.38440.jar" - }, { - "group" : "com.microsoft.azure", - "name" : "msal4j-1.19.1.jar", - "version" : "1.19.1", - "description" : "Microsoft Authentication Library for Java gives you the ability to obtain tokens from Azure AD v2 (work and school accounts, MSA) and Azure AD B2C, gaining access to Microsoft Cloud API and any other API secured by Microsoft identities", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5a4f38801720f377a3b1827b296a011be036fd42" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.microsoft.azure/msal4j@1.19.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/AzureAD/microsoft-authentication-library-for-java" - }, { - "type" : "distribution", - "url" : "https://github.com/AzureAD/microsoft-authentication-library-for-java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ec550d4e-6428-4f02-9b95-52cf03297542" - } ], - "type" : "library", - "bom-ref" : "msal4j-1.19.1.jar" - }, { - "group" : "org.elasticsearch.plugin", - "name" : "parent-join-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "This module adds the support parent-child queries and aggregations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "940ccf7a855ca0fa865ffd06a7a0e63272329926" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - }, { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - } ], - "copyright" : "Copyright 2018 MongoDB, Inc,Copyright 2009-2021 Elasticsearch", - "purl" : "pkg:maven/org.elasticsearch.plugin/parent-join-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4dd63c3e-d75a-4b5e-83f8-27fffa0f46e1" - } ], - "type" : "library", - "bom-ref" : "parent-join-client-7.17.28.jar" - }, { - "group" : "org.sonarsource.javascript", - "name" : "javascript-checks-10.21.1.30825.jar", - "version" : "10.21.1.30825", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a4cf7a82e0604af20626f68e1c773e71ae79e54c" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.javascript/javascript-checks@10.21.1.30825", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8ec846d0-faf4-48fc-866f-8cccf5e31fdc" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "javascript-checks-10.21.1.30825.jar" - }, { - "group" : "@types/react-transition-group", - "name" : "react-transition-group-4.4.6.tgz", - "version" : "4.4.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/react-transition-group@4.4.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-transition-group" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "fb9360d2-3659-4a6f-bcab-6d249bdfd665" - } ], - "type" : "library", - "bom-ref" : "react-transition-group-4.4.6.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "scanner-datacenter-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "scanner-datacenter-2025.3-SNAPSHOT" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-core-2.18.3.jar", - "version" : "2.18.3", - "description" : "Core Jackson processing abstractions (aka Streaming API), implementation for JSON", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "78f80c259268200e588aa204dd97ecf09b76916e" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2022 Daniel Lemire,Copyright 2024 Werner Randelshofer, Switzerland,Copyright 2020 Tim Buktu. 2-clause BSD License,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi),FasterXML,Copyright 2021 The fast_float authors,Copyright 2023 Werner Randelshofer, Switzerland", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-core@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-core" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-core" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e3f785d8-dcec-4ce5-9087-5da2c7ac65ef" - } ], - "type" : "library", - "bom-ref" : "jackson-core-2.18.3.jar" - }, { - "group" : "org.checkerframework", - "name" : "checker-qual-3.48.3.jar", - "version" : "3.48.3", - "description" : "checker-qual contains annotations (type qualifiers) that a programmerwrites to specify Java code for type-checking by the Checker Framework.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c48effe7d78de3cf5e8a98c614281ec6a2466a77" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2004 by the Checker Framework developers", - "purl" : "pkg:maven/org.checkerframework/checker-qual@3.48.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://checkerframework.org/" - }, { - "type" : "distribution", - "url" : "https://checkerframework.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2ba65191-2b7b-458e-9cc8-3b826c90292b" - } ], - "type" : "library", - "bom-ref" : "checker-qual-3.48.3.jar" - }, { - "group" : "org.springframework", - "name" : "spring-core-6.1.13.jar", - "version" : "6.1.13", - "description" : "Spring Core", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ddbd765408d2665f47017c8f05a7682012f91da3" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006-2019 Joe Walnes,Copyright 1999-2009 OW2 Consortium,Copyright 2000-2011 INRIA,Copyright 2002-2024 Pivotal, Inc", - "purl" : "pkg:maven/org.springframework/spring-core@6.1.13", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "87704fbf-a1a7-4788-9666-7337f1a8b745" - } ], - "type" : "library", - "bom-ref" : "spring-core-6.1.13.jar" - }, { - "group" : "com.fasterxml.jackson", - "name" : "jackson-bom-2.18.3.pom", - "version" : "2.18.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2185e4c0661969016b3ed6b4206163c45636f8c6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d1223de-ddd1-44c9-a9f8-e6ab03db6691" - } ], - "type" : "library", - "bom-ref" : "jackson-bom-2.18.3.pom-11" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "sca-application-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sca-application-2025.3-SNAPSHOT-3" - }, { - "group" : "com.fasterxml.jackson", - "name" : "jackson-bom-2.18.3.pom", - "version" : "2.18.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2185e4c0661969016b3ed6b4206163c45636f8c6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d1223de-ddd1-44c9-a9f8-e6ab03db6691" - } ], - "type" : "library", - "bom-ref" : "jackson-bom-2.18.3.pom-10" - }, { - "group" : "org.mybatis", - "name" : "mybatis-3.5.19.jar", - "version" : "3.5.19", - "description" : "The MyBatis SQL mapper framework makes it easier to use a relational database with object-oriented applications. MyBatis couples objects with stored procedures or SQL statements using a XML descriptor or annotations. Simplicity is the biggest advantage of the MyBatis data mapper over object relational mapping tools.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "79b20d963e38e66f41431ea49bc22f7cce718142" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2010 Adam Gent,Copyright 2010 The Apache Software Foundation,Copyright 2004 Drew Davidson and Luke Blanshard,Copyright 2009-2025 the original author or authors,MyBatis.org", - "purl" : "pkg:maven/org.mybatis/mybatis@3.5.19", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.mybatis.org/mybatis-3/" - }, { - "type" : "distribution", - "url" : "https://www.mybatis.org/mybatis-3/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "90b14bbe-6d22-497d-8d3d-84d60ebaa783" - } ], - "type" : "library", - "bom-ref" : "mybatis-3.5.19.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-19" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-18" - }, { - "group" : "org.sonarsource.java", - "name" : "java-checks-aws-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "747cffe03dd24da4cb69af94923fad9c98c05150" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-checks-aws@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "94b88f05-dbc8-41b3-8a83-a21d36e9abe7" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-checks-aws-8.11.0.38440.jar" - }, { - "group" : "org.sonarsource.java", - "name" : "sonar-java-symbolic-execution-plugin-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "83d13ead4b2199a7e86d6a8101464b6b350b757c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/sonar-java-symbolic-execution-plugin@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "11151e3c-da8d-42f1-a7ab-bf694f43fa91" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-java-symbolic-execution-plugin-8.11.0.38440.jar" - }, { - "group" : "@radix-ui/react-arrow", - "name" : "react-arrow-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2103721933a8bfc6e53bbfbdc1aaad5fc8ba0dd7" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-arrow@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e29b8b06-5280-4d6f-97da-61ef3fd0632e" - } ], - "type" : "library", - "bom-ref" : "react-arrow-1.1.1.tgz" - }, { - "group" : "@radix-ui/react-slot", - "name" : "react-slot-1.1.2.tgz", - "version" : "1.1.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "daffff7b2bfe99ade63b5168407680b93c00e1c6" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-slot@1.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "54024169-71da-458c-a5cb-45353acf5a38" - } ], - "type" : "library", - "bom-ref" : "react-slot-1.1.2.tgz" - }, { - "group" : "intl-messageformat", - "name" : "intl-messageformat-10.5.14.tgz", - "version" : "10.5.14", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e5bb373f8a37b88fbe647d7b941f3ab2a37ed00a" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2023 Oath Inc", - "purl" : "pkg:npm/intl-messageformat@10.5.14", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/formatjs/formatjs" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4daabb16-0959-41f1-908a-dc14204c85b9" - } ], - "type" : "library", - "bom-ref" : "intl-messageformat-10.5.14.tgz" - }, { - "group" : "which", - "name" : "which-2.0.2.tgz", - "version" : "2.0.2", - "description" : "Like which(1) unix command. Find the first instance of an executable in the PATH.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright Isaac Z", - "purl" : "pkg:npm/which@2.0.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/isaacs/node-which#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "96fadb41-fcd3-4aa8-b60b-a66e8ea63ced" - } ], - "type" : "library", - "bom-ref" : "which-2.0.2.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-github-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-github-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-15" - }, { - "group" : "react-intl", - "name" : "react-intl-6.7.0.tgz", - "version" : "6.7.0", - "description" : "Internationalize React apps. This library provides React components and an API to format dates, numbers, and strings, including pluralization and handling translations.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e84c20424017004f99e1af4e2cbc098f1eaace2e" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2019 Oath Inc", - "purl" : "pkg:npm/react-intl@6.7.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://formatjs.io/docs/react-intl" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-intl/-/react-intl-6.7.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5c51d313-6f2b-472b-a4db-65159a57f6c6" - } ], - "type" : "library", - "bom-ref" : "react-intl-6.7.0.tgz-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-14" - }, { - "group" : "com.sonarsource.security", - "name" : "config-11.1.0.35630.jar", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "64754bd5023abf1f3cff118e798602535f215c26" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "037a1f93-3aa5-465c-a5d0-c6906da5e6a1" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "config-11.1.0.35630.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-17" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-16" - }, { - "group" : "react-intl", - "name" : "react-intl-6.7.0.tgz", - "version" : "6.7.0", - "description" : "Internationalize React apps. This library provides React components and an API to format dates, numbers, and strings, including pluralization and handling translations.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e84c20424017004f99e1af4e2cbc098f1eaace2e" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2019 Oath Inc", - "purl" : "pkg:npm/react-intl@6.7.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://formatjs.io/docs/react-intl" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-intl/-/react-intl-6.7.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5c51d313-6f2b-472b-a4db-65159a57f6c6" - } ], - "type" : "library", - "bom-ref" : "react-intl-6.7.0.tgz-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-11" - }, { - "group" : "org.sonarsource.git.blame", - "name" : "git-files-blame-1.1.0.1835.jar", - "version" : "1.1.0.1835", - "description" : "A git command implemented with JGit that blames multiple files simultaneously", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a25e4e9ec815b29f16f410edf1a6bc1b2c2d91d3" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.sonarsource.git.blame/git-files-blame@1.1.0.1835", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarqube.org/" - }, { - "type" : "distribution", - "url" : "http://www.sonarqube.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b08ca832-76f1-4e19-b8a8-e3ea8b574aeb" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "git-files-blame-1.1.0.1835.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-10" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-13" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-12" - }, { - "group" : "d3-array", - "name" : "d3-array-3.2.3.tgz", - "version" : "3.2.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "39f1f4954e4a09ff69ac597c2d61906b04e84740" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2023 Mike Bostock", - "purl" : "pkg:npm/d3-array@3.2.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-array/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-array/-/d3-array-3.2.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2b888c6d-8a23-44de-849b-0dff57f15275" - } ], - "type" : "library", - "bom-ref" : "d3-array-3.2.3.tgz" - }, { - "group" : "ch.qos.logback.access", - "name" : "logback-access-common-2.0.6.jar", - "version" : "2.0.6", - "description" : "Logback Access Common module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "af41ca96cc86ddeb98561e897aec319d5d833786" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - }, { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - } ], - "copyright" : "QOS.ch", - "purl" : "pkg:maven/ch.qos.logback.access/logback-access-common@2.0.6", - "externalReferences" : [ { - "type" : "website", - "url" : "http://logback.qos.ch" - }, { - "type" : "distribution", - "url" : "http://logback.qos.ch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6a668104-ec5d-4462-b387-ab5c07f1279a" - } ], - "type" : "library", - "bom-ref" : "logback-access-common-2.0.6.jar" - }, { - "group" : "@radix-ui/react-dismissable-layer", - "name" : "react-dismissable-layer-1.1.4.tgz", - "version" : "1.1.4", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6e31ad92e7d9e77548001fd8c04f8561300c02a9" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-dismissable-layer@1.1.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9e5f8759-35c4-4251-a1ba-4b08bf9c1bc8" - } ], - "type" : "library", - "bom-ref" : "react-dismissable-layer-1.1.4.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-29" - }, { - "group" : "org.springdoc", - "name" : "springdoc-openapi-starter-webmvc-api-2.8.6.jar", - "version" : "2.8.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d28bee4cccfebc0ac028c646bb54cac4c151765c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2019-2023 the original author or authors", - "purl" : "pkg:maven/org.springdoc/springdoc-openapi-starter-webmvc-api@2.8.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://springdoc.org/" - }, { - "type" : "distribution", - "url" : "https://springdoc.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "db7c17ef-9778-4a1a-aca0-c0cfd1e3997f" - } ], - "type" : "library", - "bom-ref" : "springdoc-openapi-starter-webmvc-api-2.8.6.jar" - }, { - "group" : "brace-expansion", - "name" : "brace-expansion-2.0.1.tgz", - "version" : "2.0.1", - "description" : "Brace expansion as known from sh/bash", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Julian Gruber <julian@juliangruber.com>,Copyright 2013 Julian Gruber <julian@juliangruber.com>,Copyright 2013 Julian Gruber <julian@juliangruber.com>,Copyright 2013 Julian Gruber <julian@juliangruber.com>", - "purl" : "pkg:npm/brace-expansion@2.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/juliangruber/brace-expansion" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "71eb7226-f487-49d8-af63-f20855df0c95" - } ], - "type" : "library", - "bom-ref" : "brace-expansion-2.0.1.tgz" - }, { - "group" : "@emotion/react", - "name" : "react-11.10.5.tgz", - "version" : "11.10.5", - "description" : "> Simple styling in React.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "95fff612a5de1efa9c0d535384d3cfa115fe175d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/react@11.10.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/react/-/react-11.10.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c677d83e-dfd4-4054-9d3a-4dd9aab9a516" - } ], - "type" : "library", - "bom-ref" : "react-11.10.5.tgz" - }, { - "group" : "is-arrayish", - "name" : "is-arrayish-0.2.1.tgz", - "version" : "0.2.1", - "description" : "Determines if an object can be used as an array", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "77c99840527aa8ecb1a8ba697b80645a7a926a9d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 JD Ballard", - "purl" : "pkg:npm/is-arrayish@0.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/qix-/node-is-arrayish#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ee5b7e89-d508-4fe5-8e98-7da7aad0c78a" - } ], - "type" : "library", - "bom-ref" : "is-arrayish-0.2.1.tgz" - }, { - "group" : "io.micrometer", - "name" : "micrometer-commons-1.14.5.jar", - "version" : "1.14.5", - "description" : "Module containing common code", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6201a40489ccedc9539c5f7a2c84e9e64702bf10" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2001-2019 Copyright,Copyright 2010 Google Inc,Copyright 2013 The Netty Project,Copyright 2017 VMware, Inc,Copyright 2002-2019 Copyright", - "purl" : "pkg:maven/io.micrometer/micrometer-commons@1.14.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/micrometer-metrics/micrometer" - }, { - "type" : "distribution", - "url" : "https://github.com/micrometer-metrics/micrometer" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2097e021-d8bc-4a0d-a545-149b901773ae" - } ], - "type" : "library", - "bom-ref" : "micrometer-commons-1.14.5.jar" - }, { - "group" : "@radix-ui/react-direction", - "name" : "react-direction-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a7d39855f4d077adc2a1922f9c353c5977a09cdc" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-direction@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "da2a61c5-524a-4cd6-8b8d-0ae90046abfd" - } ], - "type" : "library", - "bom-ref" : "react-direction-1.1.0.tgz" - }, { - "group" : "org.springframework", - "name" : "spring-webmvc-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Web MVC", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "db8f1171041d7091f3de80cffdfb9d6c5fbf3015" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006-2019 Joe Walnes,Copyright 2000-2011 INRIA,Copyright 2002-2025 Pivotal, Inc,Copyright 1999-2009 OW2 Consortium", - "purl" : "pkg:maven/org.springframework/spring-webmvc@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b59e699c-a7eb-44e4-970f-21d2f9614594" - } ], - "type" : "library", - "bom-ref" : "spring-webmvc-6.2.5.jar-4" - }, { - "group" : "org.apache.httpcomponents", - "name" : "httpcore-nio-4.4.12.jar", - "version" : "4.4.12", - "description" : "Apache HttpComponents Core (non-blocking I/O)", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "84cd29eca842f31db02987cfedea245af020198b" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2005-2019 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.httpcomponents/httpcore-nio@4.4.12?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.apache.org/" - }, { - "type" : "distribution", - "url" : "http://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "214d754e-fdd0-4f8c-995e-e0c34a229fb8" - } ], - "type" : "library", - "bom-ref" : "httpcore-nio-4.4.12.jar" - }, { - "group" : "org.sonarsource.sslr", - "name" : "sslr-testing-harness-1.24.0.633.jar", - "version" : "1.24.0.633", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8d7635aee825f84cda3fb6235d9938c0d916739c" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.sslr/sslr-testing-harness@1.24.0.633?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "78d89c17-2a0d-4009-a602-5a6b726f60fe" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sslr-testing-harness-1.24.0.633.jar-2" - }, { - "group" : "org.springframework", - "name" : "spring-webmvc-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Web MVC", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "db8f1171041d7091f3de80cffdfb9d6c5fbf3015" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006-2019 Joe Walnes,Copyright 2000-2011 INRIA,Copyright 2002-2025 Pivotal, Inc,Copyright 1999-2009 OW2 Consortium", - "purl" : "pkg:maven/org.springframework/spring-webmvc@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b59e699c-a7eb-44e4-970f-21d2f9614594" - } ], - "type" : "library", - "bom-ref" : "spring-webmvc-6.2.5.jar-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-github-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-github-25.4-SNAPSHOT-2" - }, { - "group" : "d3-array", - "name" : "d3-array-3.2.4.tgz", - "version" : "3.2.4", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "15fec33b237f97ac5d7c986dc77da273a8ed0bb5" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2023 Mike Bostock", - "purl" : "pkg:npm/d3-array@3.2.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-array/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "07cf0997-d488-4a42-9036-6fa399fc633c" - } ], - "type" : "library", - "bom-ref" : "d3-array-3.2.4.tgz" - }, { - "group" : "org.springframework", - "name" : "spring-webmvc-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Web MVC", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "db8f1171041d7091f3de80cffdfb9d6c5fbf3015" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006-2019 Joe Walnes,Copyright 2000-2011 INRIA,Copyright 2002-2025 Pivotal, Inc,Copyright 1999-2009 OW2 Consortium", - "purl" : "pkg:maven/org.springframework/spring-webmvc@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b59e699c-a7eb-44e4-970f-21d2f9614594" - } ], - "type" : "library", - "bom-ref" : "spring-webmvc-6.2.5.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-github-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-github-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-20" - }, { - "group" : "cosmiconfig", - "name" : "cosmiconfig-7.0.1.tgz", - "version" : "7.0.1", - "description" : "Find and load configuration from a package.json property, rc file, or CommonJS module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "714d756522cace867867ccb4474c5d01bbae5d6d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 David Clark,Copyright 2015 David Clark", - "purl" : "pkg:npm/cosmiconfig@7.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/davidtheclark/cosmiconfig#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c120b3f8-1dbd-4709-9cf8-af5dca719688" - } ], - "type" : "library", - "bom-ref" : "cosmiconfig-7.0.1.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-sarif-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-sarif-25.4-SNAPSHOT" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-suggest-8.11.3.jar", - "version" : "8.11.3", - "description" : "Lucene Suggest Module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "88252fbd2640e2e2087fe665523f449484da32b3" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011-2016 Yann Collet,Copyright 1995-2008 International Business Machines Corporation and others,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 2007-2011 Dawid Weiss,Copyright 2009 by www.imdict.net,Copyright 2001-2021 The Apache Software Foundation,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright © 2003,,Copyright 2001-2004 Copyright,The Apache Software Foundation,Copyright 1999-2010 International Business Machines,Copyright 2006 Dawid Weiss,Copyright 2001-2009 Anders Moeller,Copyright 2001 Dr Martin Porter,Copyright 2002 Richard Boulton", - "purl" : "pkg:maven/org.apache.lucene/lucene-suggest@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "10d1e356-da91-4972-8c93-7d5da67f86e8" - } ], - "type" : "library", - "bom-ref" : "lucene-suggest-8.11.3.jar" - }, { - "group" : "com.sonarsource.jcl", - "name" : "sonar-jcl-plugin-1.4.1.1493.sonar-plugin", - "version" : "1.4.1.1493", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5559da9e3ffa001594a48516f11621e5af180a7c" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9de9bb8e-be7e-412c-bdfe-488655ae09df" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-jcl-plugin-1.4.1.1493.sonar-plugin" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-26" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-25" - }, { - "group" : "ch.qos.logback", - "name" : "logback-core-1.5.18.jar", - "version" : "1.5.18", - "description" : "logback-core module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6c0375624f6f36b4e089e2488ba21334a11ef13f" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - }, { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "QOS.ch", - "purl" : "pkg:maven/ch.qos.logback/logback-core@1.5.18", - "externalReferences" : [ { - "type" : "website", - "url" : "http://logback.qos.ch" - }, { - "type" : "distribution", - "url" : "http://logback.qos.ch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e10ef161-4ca9-4305-8e74-ebae5f40e09f" - } ], - "type" : "library", - "bom-ref" : "logback-core-1.5.18.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-28" - }, { - "group" : "com.sonarsource.cobol", - "name" : "sonar-cobol-plugin-5.8.1.8428.sonar-plugin", - "version" : "5.8.1.8428", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "09264342a18cd5b96ba637a2be29efcae0419474" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "df78b10f-897a-4312-8656-ff1605be0eac" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-cobol-plugin-5.8.1.8428.sonar-plugin" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-27" - }, { - "group" : "org.opensaml", - "name" : "opensaml-core-4.3.2.jar", - "version" : "4.3.2", - "description" : "Core", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7aa04172faa578fbe9a356b91a0495d49ed6b851" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-core@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "68b03b82-64c0-451b-8a70-29a5bfaf6de1" - } ], - "type" : "library", - "bom-ref" : "opensaml-core-4.3.2.jar" - }, { - "group" : "com.github.scribejava", - "name" : "scribejava-core-8.3.3.jar", - "version" : "8.3.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4a9b4ed9a6367f95945eb30382a1cc647b390bd5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2010 Pablo Fernandez,Copyright 2010 Pablo Fernandez Permission is hereby granted, free of charge, to any person obtaining a copy of this", - "purl" : "pkg:maven/com.github.scribejava/scribejava-core@8.3.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8fb3d0b7-c9bc-4696-96b3-79f7a61a2731" - } ], - "type" : "library", - "bom-ref" : "scribejava-core-8.3.3.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-22" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-21" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-24" - }, { - "group" : "clipboard", - "name" : "clipboard-2.0.11.tgz", - "version" : "2.0.11", - "description" : "Modern copy to clipboard. No Flash. Just 2kb", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "62180360b97dd668b6b3a84ec226975762a70be5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Zeno Rocha,Copyright Zeno Rocha", - "purl" : "pkg:npm/clipboard@2.0.11", - "externalReferences" : [ { - "type" : "website", - "url" : "https://clipboardjs.com" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5ca3d615-1dee-46e1-b037-452d59244e86" - } ], - "type" : "library", - "bom-ref" : "clipboard-2.0.11.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-23" - }, { - "group" : "com.jcraft", - "name" : "jsch.agentproxy.connector-factory-0.0.9.jar", - "version" : "0.0.9", - "description" : "a proxy to ssh-agent and Pageant in Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ef48f016e1d4a06404fa769e7d316f6e07ad09d1" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2011-2012 Atsuhiko Yamanaka, JCraft,Inc", - "purl" : "pkg:maven/com.jcraft/jsch.agentproxy.connector-factory@0.0.9?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.jcraft.com/" - }, { - "type" : "distribution", - "url" : "http://www.jcraft.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "32a773e6-c358-47dc-8447-d8185163b541" - } ], - "type" : "library", - "bom-ref" : "jsch.agentproxy.connector-factory-0.0.9.jar" - }, { - "group" : "org.codehaus.sonar", - "name" : "sonar-channel-4.2.jar", - "version" : "4.2", - "description" : "Code Channel", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "563e005039400ef439ab6efda80eb2cf1ee09acd" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2008-2013 SonarSource,SonarSource", - "purl" : "pkg:maven/org.codehaus.sonar/sonar-channel@4.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "17052c43-ac52-4dd4-9306-2975ea602768" - } ], - "type" : "library", - "bom-ref" : "sonar-channel-4.2.jar-2" - }, { - "group" : "org.codehaus.sonar", - "name" : "sonar-channel-4.2.jar", - "version" : "4.2", - "description" : "Code Channel", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "563e005039400ef439ab6efda80eb2cf1ee09acd" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2008-2013 SonarSource,SonarSource", - "purl" : "pkg:maven/org.codehaus.sonar/sonar-channel@4.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "17052c43-ac52-4dd4-9306-2975ea602768" - } ], - "type" : "library", - "bom-ref" : "sonar-channel-4.2.jar-3" - }, { - "group" : "emoji-regex", - "name" : "emoji-regex-8.0.0.tgz", - "version" : "8.0.0", - "description" : "A regular expression to match all Emoji-only symbols as per the Unicode Standard.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e818fd69ce5ccfcb404594f842963bf53164cc37" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Mathias Bynens <https://mathiasbynens.be/>", - "purl" : "pkg:npm/emoji-regex@8.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://mths.be/emoji-regex" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "8c0ecfb5-971c-47b0-8e74-fed82e71a675" - } ], - "type" : "library", - "bom-ref" : "emoji-regex-8.0.0.tgz" - }, { - "group" : "@babel/runtime", - "name" : "runtime-7.16.5.tgz", - "version" : "7.16.5", - "description" : "babel's modular runtime helpers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7f3e34bf8bdbbadf03fbb7b1ea0d929569c9487a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/runtime@7.16.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-runtime" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "92405e36-d986-4dc3-9d63-f30f150cfd89" - } ], - "type" : "library", - "bom-ref" : "runtime-7.16.5.tgz" - }, { - "group" : "com.zaxxer", - "name" : "HikariCP-6.2.1.jar", - "version" : "6.2.1", - "description" : "Ultimate JDBC Connection Pool", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2d60b91e74ee4ff10fc9a395d10b3b9c7061ef87" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2013-2014 Brett Wooldridge", - "purl" : "pkg:maven/com.zaxxer/HikariCP@6.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/brettwooldridge/HikariCP" - }, { - "type" : "distribution", - "url" : "https://github.com/brettwooldridge/HikariCP" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "59533565-20e4-4253-9c42-9cc98162e7c9" - } ], - "type" : "library", - "bom-ref" : "HikariCP-6.2.1.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-ws-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-ws-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-ws-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-ws-25.4-SNAPSHOT-2" - }, { - "group" : "select", - "name" : "select-1.1.2.tgz", - "version" : "1.1.2", - "description" : "Programmatically select the text of a HTML element", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0e7350acdec80b1108528786ec1d4418d11b396d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Zeno Rocha", - "purl" : "pkg:npm/select@1.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/zenorocha/select#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/select/-/select-1.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "a41e36ea-2acc-4b3f-becb-ff9de7d8f7a8" - } ], - "type" : "library", - "bom-ref" : "select-1.1.2.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-ws-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-ws-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-ws-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-ws-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-31" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-30" - }, { - "group" : "mime-db", - "name" : "mime-db-1.52.0.tgz", - "version" : "1.52.0", - "description" : "Media Type Database", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bbabcdc02859f4987301c856e3387ce5ec43bf70" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015-2022 Douglas Christopher Wilson <doug@somethingdoug.com>,Copyright 2014 Jonathan Ong <me@jongleberry.com>", - "purl" : "pkg:npm/mime-db@1.52.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/jshttp/mime-db#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "8a4a6109-87d7-4154-b642-6823a25fd694" - } ], - "type" : "library", - "bom-ref" : "mime-db-1.52.0.tgz" - }, { - "group" : "org.elasticsearch.plugin", - "name" : "lang-mustache-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Mustache scripting integration for Elasticsearch", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7fb2cbde7cdbae318b557ddf676732a20b4516f0" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - }, { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch.plugin/lang-mustache-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a65a27c2-4427-44b4-8852-f713d7782c27" - } ], - "type" : "library", - "bom-ref" : "lang-mustache-client-7.17.28.jar" - }, { - "group" : "com.carrotsearch", - "name" : "hppc-0.8.1.jar", - "version" : "0.8.1", - "description" : "High Performance Primitive Collections. Fundamental data structures (maps, sets, lists, stacks, queues) generated for combinations of object and primitive types to conserve JVM memory and speed up execution.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ffc7ba8f289428b9508ab484b8001dea944ae603" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2010-2013 Carrot Search s.c., Boznicza 11/56, Poznan, Poland", - "purl" : "pkg:maven/com.carrotsearch/hppc@0.8.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.carrotsearch.com" - }, { - "type" : "distribution", - "url" : "http://www.carrotsearch.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ea4ca06a-1533-4d51-b5f4-3621f30809c2" - } ], - "type" : "library", - "bom-ref" : "hppc-0.8.1.jar" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-graphs-1.9.0.4841.jar", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "72e72560f957b1f9d99cb8c6e01ea87f41519e11" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "adab3038-f338-4cda-a154-0d3e41b34149" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-graphs-1.9.0.4841.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-37" - }, { - "group" : "csstype", - "name" : "csstype-3.0.10.tgz", - "version" : "3.0.10", - "description" : "Strict TypeScript and Flow types for style based on MDN data", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ad3a7bed70f35b965707c092e5f30b327c290e5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017-2018 Fredrik Nicol", - "purl" : "pkg:npm/csstype@3.0.10", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/frenic/csstype#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "15ca9988-498a-4fdd-99fc-12f65ede4b10" - } ], - "type" : "library", - "bom-ref" : "csstype-3.0.10.tgz" - }, { - "group" : "form-data", - "name" : "form-data-4.0.0.tgz", - "version" : "4.0.0", - "description" : "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "93919daeaf361ee529584b9b31664dc12c9fa452" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2012 Felix Geisendörfer (felix@debuggable.com) and contributors,Copyright 2012 Felix Geisendörfer (felix@debuggable.com) and contributors", - "purl" : "pkg:npm/form-data@4.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/form-data/form-data#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9e857b57-2748-45cc-9188-dff349175158" - } ], - "type" : "library", - "bom-ref" : "form-data-4.0.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-36" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-39" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-38" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-xml-parsing-2.16.0.3141.jar", - "version" : "2.16.0.3141", - "description" : "Logic useful to read and analyze XML files", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d11478e6e38544115dfa891212875ab1fa8e08d0" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-xml-parsing@2.16.0.3141", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e4db2f6c-f188-48b2-88ab-81453e54b43a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-xml-parsing-2.16.0.3141.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-33" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-7" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-xml-parsing-2.16.0.3141.jar", - "version" : "2.16.0.3141", - "description" : "Logic useful to read and analyze XML files", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d11478e6e38544115dfa891212875ab1fa8e08d0" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-xml-parsing@2.16.0.3141", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e4db2f6c-f188-48b2-88ab-81453e54b43a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-xml-parsing-2.16.0.3141.jar-3" - }, { - "group" : "follow-redirects", - "name" : "follow-redirects-1.15.6.tgz", - "version" : "1.15.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Olivier Lalonde <olalonde@gmail.com>, James Talmage <james@talmage.io>, Ruben Verborgh", - "purl" : "pkg:npm/follow-redirects@1.15.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/follow-redirects/follow-redirects" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cab68ce9-ba77-4738-b8a5-eecc81367afd" - } ], - "type" : "library", - "bom-ref" : "follow-redirects-1.15.6.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-32" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-35" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-9" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-34" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-auth-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-auth-25.4-SNAPSHOT-8" - }, { - "group" : "com.sonarsource.iac", - "name" : "sonar-iac-enterprise-plugin-1.44.0.14670.jar", - "version" : "1.44.0.14670", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ad5e442c7b7d489f7524db470e207b8ccfefe926" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "efe89fc0-9c6c-486e-8f23-f5102a37e8ae" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-iac-enterprise-plugin-1.44.0.14670.jar" - }, { - "group" : "de.uni-freiburg.informatik.ultimate", - "name" : "smtinterpol-2.5-1274-g04ecb6c0.jar", - "version" : "2.5-1274-g04ecb6c0", - "description" : "SMTInterpol is an interpolating SMT solver", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c2bd56a427f5ce71248bfebaf9b6266a68d2aa7a" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - }, { - "license" : { - "id" : "GPL-3.0-only", - "url" : "http://gnu.org/licenses/gpl-3.0.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/de.uni-freiburg.informatik.ultimate/smtinterpol@2.5-1274-g04ecb6c0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://ultimate.informatik.uni-freiburg.de" - }, { - "type" : "distribution", - "url" : "https://ultimate.informatik.uni-freiburg.de" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "cfe1ba95-83cb-4b8c-816e-120ce66752f1" - } ], - "type" : "library", - "bom-ref" : "smtinterpol-2.5-1274-g04ecb6c0.jar" - }, { - "group" : "com.auth0", - "name" : "java-jwt-4.5.0.jar", - "version" : "4.5.0", - "description" : "Java client library for the Auth0 platform", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d7004155fe57a107cc40fb6be0132d8ad2530613" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Auth0, Inc", - "purl" : "pkg:maven/com.auth0/java-jwt@4.5.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/auth0/java-jwt" - }, { - "type" : "distribution", - "url" : "https://github.com/auth0/java-jwt" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7adbd609-d8b8-4712-80e9-63684319c0a0" - } ], - "type" : "library", - "bom-ref" : "java-jwt-4.5.0.jar" - }, { - "group" : "@radix-ui/react-alert-dialog", - "name" : "react-alert-dialog-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f49c987b9e4f2bf37005b3864933e2b3beac907a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-alert-dialog@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4ed9d92a-729b-43fa-a7a1-45fc8fa61c4d" - } ], - "type" : "library", - "bom-ref" : "react-alert-dialog-1.1.1.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-api-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-api-25.4-SNAPSHOT-10" - }, { - "group" : "org.tmatesoft.svnkit", - "name" : "svnkit-1.10.11.jar", - "version" : "1.10.11", - "description" : "Java(tm) library to manage Subversion working copies and repositories", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5b191b74bb77af2f755dc11d47badfb7c74ad4b5" - } ], - "licenses" : [ { - "license" : { - "id" : "TMate", - "url" : "https://spdx.org/licenses/TMate.html" - } - } ], - "copyright" : "Copyright 2004-2021 TMate Software", - "purl" : "pkg:maven/org.tmatesoft.svnkit/svnkit@1.10.11", - "externalReferences" : [ { - "type" : "website", - "url" : "https://svnkit.com/" - }, { - "type" : "distribution", - "url" : "https://svnkit.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "97c34e00-414f-481f-9065-e5882b06e3b4" - } ], - "type" : "library", - "bom-ref" : "svnkit-1.10.11.jar-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-application-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-application-25.4-SNAPSHOT-2" - }, { - "group" : "@floating-ui/react-dom", - "name" : "react-dom-2.1.2.tgz", - "version" : "2.1.2", - "description" : "Floating UI for React DOM", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a1349bbf6a0e5cb5ded55d023766f20a4d439a31" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2021 Floating UI contributors", - "purl" : "pkg:npm/%40floating-ui/react-dom@2.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://floating-ui.com/docs/react-dom" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "13cd6f08-61c1-401a-a211-e5b51d02d003" - } ], - "type" : "library", - "bom-ref" : "react-dom-2.1.2.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-common-25.4-SNAPSHOT" - }, { - "group" : "org.apache.commons", - "name" : "commons-collections4-4.4.jar", - "version" : "4.4", - "description" : "The Apache Commons Collections package contains types that extend and augment the Java Collections Framework.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "62ebe7544cb7164d87e0637a2a6a2bdc981395e8" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2001-2019 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.commons/commons-collections4@4.4?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "132154cb-ecce-412a-8870-999dfc17a7db" - } ], - "type" : "library", - "bom-ref" : "commons-collections4-4.4.jar" - }, { - "group" : "org.tmatesoft.svnkit", - "name" : "svnkit-1.10.11.jar", - "version" : "1.10.11", - "description" : "Java(tm) library to manage Subversion working copies and repositories", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5b191b74bb77af2f755dc11d47badfb7c74ad4b5" - } ], - "licenses" : [ { - "license" : { - "id" : "TMate", - "url" : "https://spdx.org/licenses/TMate.html" - } - } ], - "copyright" : "Copyright 2004-2021 TMate Software", - "purl" : "pkg:maven/org.tmatesoft.svnkit/svnkit@1.10.11", - "externalReferences" : [ { - "type" : "website", - "url" : "https://svnkit.com/" - }, { - "type" : "distribution", - "url" : "https://svnkit.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "97c34e00-414f-481f-9065-e5882b06e3b4" - } ], - "type" : "library", - "bom-ref" : "svnkit-1.10.11.jar-2" - }, { - "group" : "org.tmatesoft.svnkit", - "name" : "svnkit-1.10.11.jar", - "version" : "1.10.11", - "description" : "Java(tm) library to manage Subversion working copies and repositories", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5b191b74bb77af2f755dc11d47badfb7c74ad4b5" - } ], - "licenses" : [ { - "license" : { - "id" : "TMate", - "url" : "https://spdx.org/licenses/TMate.html" - } - } ], - "copyright" : "Copyright 2004-2021 TMate Software", - "purl" : "pkg:maven/org.tmatesoft.svnkit/svnkit@1.10.11", - "externalReferences" : [ { - "type" : "website", - "url" : "https://svnkit.com/" - }, { - "type" : "distribution", - "url" : "https://svnkit.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "97c34e00-414f-481f-9065-e5882b06e3b4" - } ], - "type" : "library", - "bom-ref" : "svnkit-1.10.11.jar-3" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-securityreport-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-securityreport-2025.3-SNAPSHOT" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-alm-client-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-alm-client-25.4-SNAPSHOT" - }, { - "group" : "org.apache.commons", - "name" : "commons-exec-1.4.0.jar", - "version" : "1.4.0", - "description" : "Apache Commons Exec is a library to reliably execute external processes from within the JVM.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0e9061b21958bfaf1cb736eb22e36cbf02d8fe9f" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2005-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.commons/commons-exec@1.4.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5da5f53f-037e-4041-a045-36cf8bd78088" - } ], - "type" : "library", - "bom-ref" : "commons-exec-1.4.0.jar" - }, { - "group" : "org.elasticsearch.plugin", - "name" : "mapper-extras-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Adds advanced field mappers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d76e925e6c45ebe1b1439a77f139da892a5577bc" - } ], - "licenses" : [ { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - }, { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch.plugin/mapper-extras-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8a6c5962-157b-4578-bf8e-ff8c4a71e88d" - } ], - "type" : "library", - "bom-ref" : "mapper-extras-client-7.17.28.jar" - }, { - "group" : "@emotion/unitless", - "name" : "unitless-0.10.0.tgz", - "version" : "0.10.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2af2f7c7e5150f497bdabd848ce7b218a27cf745" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2016 Kye Hohenberger,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/unitless@0.10.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c15187d6-d424-410e-84b4-33b8f52bd8ac" - } ], - "type" : "library", - "bom-ref" : "unitless-0.10.0.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "sca-container-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sca-container-2025.3-SNAPSHOT-4" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "sca-container-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sca-container-2025.3-SNAPSHOT-3" - }, { - "group" : "io.swagger.core.v3", - "name" : "swagger-annotations-jakarta-2.2.29.jar", - "version" : "2.2.29", - "description" : "swagger-annotations-jakarta", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e2718102ee6e460c41527ee9a4e0e5ee4ba999df" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2015 (c),Copyright 2015 (c)", - "purl" : "pkg:maven/io.swagger.core.v3/swagger-annotations-jakarta@2.2.29", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/swagger-api/swagger-core" - }, { - "type" : "distribution", - "url" : "https://github.com/swagger-api/swagger-core" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ac813cdc-1896-4476-8fe4-8edbaa85c437" - } ], - "type" : "library", - "bom-ref" : "swagger-annotations-jakarta-2.2.29.jar" - }, { - "group" : "org.springframework.boot", - "name" : "spring-boot-3.4.4.jar", - "version" : "3.4.4", - "description" : "Spring Boot", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f9dbe14c2e5e35a2cd27156802ea6b7c42ab34fd" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2025 VMware, Inc", - "purl" : "pkg:maven/org.springframework.boot/spring-boot@3.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-boot" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-boot" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2f335218-e0ac-483e-8dab-719ce5c0986e" - } ], - "type" : "library", - "bom-ref" : "spring-boot-3.4.4.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "sca-container-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sca-container-2025.3-SNAPSHOT-2" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "provisioning-common-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "provisioning-common-2025.3-SNAPSHOT-4" - }, { - "group" : "com.sonarsource.security", - "name" : "sonar-security-php-frontend-plugin-11.1.0.35630.sonar-plugin", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1240a2010cb779bb3bdd1c86319553e951719f7c" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2f1c1f64-1c73-44ba-8e74-c8fdd6bb862b" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-security-php-frontend-plugin-11.1.0.35630.sonar-plugin-2" - }, { - "group" : "com.sonarsource.python", - "name" : "python-enterprise-checks-5.2.0.20808.jar", - "version" : "5.2.0.20808", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "38cdf4b3ef4c4482a0b9287488c015b21088eb46" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e5609a2a-3527-4561-9370-bb9c4b888c27" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "python-enterprise-checks-5.2.0.20808.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "provisioning-common-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "provisioning-common-2025.3-SNAPSHOT-5" - }, { - "group" : "com.sonarsource.pli", - "name" : "pli-squid-1.16.0.5325.jar", - "version" : "1.16.0.5325", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "91d45632e6e074b028386d53aa4c648fa3034bf8" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "97d805b9-f5f0-445a-aa71-c2200780e229" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "pli-squid-1.16.0.5325.jar" - }, { - "group" : "@isaacs/cliui", - "name" : "cliui-8.0.2.tgz", - "version" : "8.0.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b37667b7bc181c168782259bab42474fbf52b550" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2015 Contributors", - "purl" : "pkg:npm/%40isaacs/cliui@8.0.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/yargs/cliui#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "11684ee2-d561-4216-b44d-20c9baca9a7a" - } ], - "type" : "library", - "bom-ref" : "cliui-8.0.2.tgz" - }, { - "group" : "@radix-ui/react-slot", - "name" : "react-slot-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ab9a0ffae4027db7dc2af503c223c978706affc3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-slot@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e77c97b7-2a92-434c-8c5b-f50f71666e00" - } ], - "type" : "library", - "bom-ref" : "react-slot-1.1.1.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "provisioning-common-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "provisioning-common-2025.3-SNAPSHOT-6" - }, { - "group" : "get-stdin", - "name" : "get-stdin-9.0.0.tgz", - "version" : "9.0.0", - "description" : "Get stdin as a string or buffer", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3983ff82e03d56f1b2ea0d3e60325f39d703a575" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/get-stdin@9.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/get-stdin#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "93412cbe-2baa-401a-be8b-fe2e1fafad1e" - } ], - "type" : "library", - "bom-ref" : "get-stdin-9.0.0.tgz" - }, { - "group" : "org.springframework", - "name" : "spring-core-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Core", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d6786db7122037bf605e54e3b35f262a19b8d502" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2009 OW2 Consortium,Copyright 2002-2025 Pivotal, Inc,Copyright 2000-2011 INRIA,Copyright 2006-2019 Joe Walnes", - "purl" : "pkg:maven/org.springframework/spring-core@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9f627b46-59b1-4347-8181-1aec44039053" - } ], - "type" : "library", - "bom-ref" : "spring-core-6.2.5.jar" - }, { - "group" : "org.codehaus.woodstox", - "name" : "stax2-api-4.2.1.jar", - "version" : "4.2.1", - "description" : "tax2 API is an extension to basic Stax 1.0 API that adds significant new functionality, such as full-featured bi-direction validation interface and high-performance Typed Access API.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a3f7325c52240418c2ba257b103c3c550e140c83" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Copyright 2008 FasterXML LLC <info@fasterxml.com>", - "purl" : "pkg:maven/org.codehaus.woodstox/stax2-api@4.2.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://fasterxml.com" - }, { - "type" : "distribution", - "url" : "http://fasterxml.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8bb0965b-9c24-4650-8f69-dac64ac498a6" - } ], - "type" : "library", - "bom-ref" : "stax2-api-4.2.1.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-es-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-es-25.4-SNAPSHOT" - }, { - "group" : "org.mockito", - "name" : "mockito-core-5.16.1.jar", - "version" : "5.16.1", - "description" : "Mockito mock objects library core API and implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "be8bf71080016b793f32456faff861e2c3a77f62" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2007 Mockito contributors", - "purl" : "pkg:maven/org.mockito/mockito-core@5.16.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/mockito/mockito" - }, { - "type" : "distribution", - "url" : "https://github.com/mockito/mockito" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a013e261-9d0d-49ee-97eb-467799919e9a" - } ], - "type" : "library", - "bom-ref" : "mockito-core-5.16.1.jar" - }, { - "group" : "com.fasterxml.jackson", - "name" : "jackson-bom-2.18.3.pom", - "version" : "2.18.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2185e4c0661969016b3ed6b4206163c45636f8c6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d1223de-ddd1-44c9-a9f8-e6ab03db6691" - } ], - "type" : "library", - "bom-ref" : "jackson-bom-2.18.3.pom-6" - }, { - "group" : "com.fasterxml.jackson", - "name" : "jackson-bom-2.18.3.pom", - "version" : "2.18.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2185e4c0661969016b3ed6b4206163c45636f8c6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d1223de-ddd1-44c9-a9f8-e6ab03db6691" - } ], - "type" : "library", - "bom-ref" : "jackson-bom-2.18.3.pom-7" - }, { - "group" : "com.fasterxml.jackson", - "name" : "jackson-bom-2.18.3.pom", - "version" : "2.18.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2185e4c0661969016b3ed6b4206163c45636f8c6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d1223de-ddd1-44c9-a9f8-e6ab03db6691" - } ], - "type" : "library", - "bom-ref" : "jackson-bom-2.18.3.pom-8" - }, { - "group" : "@babel/code-frame", - "name" : "code-frame-7.0.0.tgz", - "version" : "7.0.0", - "description" : "Generate errors that contain a code frame that point to source locations.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "06e2ab19bdb535385559aabb5ba59729482800f8" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014-2018 Sebastian McKenzie <sebmck@gmail.com>", - "purl" : "pkg:npm/%40babel/code-frame@7.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babeljs.io/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5757ce1d-d906-4e49-9547-4beadddcdae4" - } ], - "type" : "library", - "bom-ref" : "code-frame-7.0.0.tgz" - }, { - "group" : "com.fasterxml.jackson", - "name" : "jackson-bom-2.18.3.pom", - "version" : "2.18.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2185e4c0661969016b3ed6b4206163c45636f8c6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d1223de-ddd1-44c9-a9f8-e6ab03db6691" - } ], - "type" : "library", - "bom-ref" : "jackson-bom-2.18.3.pom-9" - }, { - "group" : "com.google.guava", - "name" : "failureaccess-1.0.3.jar", - "version" : "1.0.3", - "description" : "Contains com.google.common.util.concurrent.internal.InternalFutureFailureAccess and InternalFutures. Most users will never need to use this artifact. Its classes are conceptually a part of Guava, but they're in this separate artifact so that Android libraries can use them without pulling in all of Guava (just as they can use ListenableFuture by depending on the listenablefuture artifact).", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "aeaffd00d57023a2c947393ed251f0354f0985fc" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.google.guava/failureaccess@1.0.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/google/guava" - }, { - "type" : "distribution", - "url" : "https://github.com/google/guava" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4ea9647e-8cd0-4f9e-839d-2dd734ea03b1" - } ], - "type" : "library", - "bom-ref" : "failureaccess-1.0.3.jar" - }, { - "group" : "has-flag", - "name" : "has-flag-3.0.0.tgz", - "version" : "3.0.0", - "description" : "Check if argv has a specific flag", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b5d454dc2199ae225699f3467e5a07f3b955bafd" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com),Copyright Sindre Sorhus", - "purl" : "pkg:npm/has-flag@3.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/has-flag#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "834029e8-0799-47a4-994c-d69ed846088b" - } ], - "type" : "library", - "bom-ref" : "has-flag-3.0.0.tgz" - }, { - "group" : "com.sonarsource.dbd", - "name" : "platform-api-1.36.1.13250.jar", - "version" : "1.36.1.13250", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "44c36bfb1a552f8ab5dae0c292dded7b9e8f5db5" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a6f8499d-4a33-4ebe-acc9-fa5537a7fe11" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "platform-api-1.36.1.13250.jar" - }, { - "group" : "com.nimbusds", - "name" : "nimbus-jose-jwt-10.0.1.jar", - "version" : "10.0.1", - "description" : "Java library for Javascript Object Signing and Encryption (JOSE) and JSON Web Tokens (JWT)", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "372e4d6fc73c96360d0e8967e3dc7bb3dd655fe3" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.nimbusds/nimbus-jose-jwt@10.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://bitbucket.org/connect2id/nimbus-jose-jwt" - }, { - "type" : "distribution", - "url" : "https://bitbucket.org/connect2id/nimbus-jose-jwt" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6eb93925-ea9d-49ab-877f-b820f6ab4800" - } ], - "type" : "library", - "bom-ref" : "nimbus-jose-jwt-10.0.1.jar" - }, { - "group" : "com.fasterxml.jackson", - "name" : "jackson-bom-2.18.3.pom", - "version" : "2.18.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2185e4c0661969016b3ed6b4206163c45636f8c6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d1223de-ddd1-44c9-a9f8-e6ab03db6691" - } ], - "type" : "library", - "bom-ref" : "jackson-bom-2.18.3.pom-2" - }, { - "group" : "com.fasterxml.jackson", - "name" : "jackson-bom-2.18.3.pom", - "version" : "2.18.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2185e4c0661969016b3ed6b4206163c45636f8c6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d1223de-ddd1-44c9-a9f8-e6ab03db6691" - } ], - "type" : "library", - "bom-ref" : "jackson-bom-2.18.3.pom-3" - }, { - "group" : "com.fasterxml.jackson", - "name" : "jackson-bom-2.18.3.pom", - "version" : "2.18.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2185e4c0661969016b3ed6b4206163c45636f8c6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d1223de-ddd1-44c9-a9f8-e6ab03db6691" - } ], - "type" : "library", - "bom-ref" : "jackson-bom-2.18.3.pom-4" - }, { - "group" : "@emotion/utils", - "name" : "utils-1.4.0.tgz", - "version" : "1.4.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "262f1d02aaedb2ec91c83a0955dd47822ad5fbdd" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/utils@1.4.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d60ec03e-8f94-430c-baa3-1beba8cca161" - } ], - "type" : "library", - "bom-ref" : "utils-1.4.0.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "provisioning-common-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "provisioning-common-2025.3-SNAPSHOT-2" - }, { - "group" : "com.fasterxml.jackson", - "name" : "jackson-bom-2.18.3.pom", - "version" : "2.18.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2185e4c0661969016b3ed6b4206163c45636f8c6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d1223de-ddd1-44c9-a9f8-e6ab03db6691" - } ], - "type" : "library", - "bom-ref" : "jackson-bom-2.18.3.pom-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-shutdowner-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-shutdowner-25.4-SNAPSHOT" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "provisioning-common-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "provisioning-common-2025.3-SNAPSHOT-3" - }, { - "group" : "com.fasterxml.jackson.dataformat", - "name" : "jackson-dataformat-xml-2.18.3.jar", - "version" : "2.18.3", - "description" : "Data format extension for Jackson to offer alternative support for serializing POJOs as XML and deserializing XML as pojos.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "665a683773f8a92ea270d87127e198531e39cafa" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.dataformat/jackson-dataformat-xml@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-dataformat-xml" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-dataformat-xml" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dae93cdc-5129-4f34-abdb-37d283964b4b" - } ], - "type" : "library", - "bom-ref" : "jackson-dataformat-xml-2.18.3.jar" - }, { - "group" : "com.sonarsource.abap", - "name" : "abap-squid-3.15.1.6010.jar", - "version" : "3.15.1.6010", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "25bed68c2d8f5e032fcc1169ee7620f6d9dd4e24" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6531d4d8-c10a-4b8e-bc15-7568e3841d2e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "abap-squid-3.15.1.6010.jar" - }, { - "group" : "org.slf4j", - "name" : "log4j-over-slf4j-2.0.17.jar", - "version" : "2.0.17", - "description" : "Log4j implemented over SLF4J", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "55e55c79a0b89ccc9e411049005c02b7514e0cf9" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2004-2022 QOS.ch Sarl,QOS.ch", - "purl" : "pkg:maven/org.slf4j/log4j-over-slf4j@2.0.17", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.slf4j.org" - }, { - "type" : "distribution", - "url" : "http://www.slf4j.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "07f1511b-2ed9-4d11-9e13-48d74bfcdd12" - } ], - "type" : "library", - "bom-ref" : "log4j-over-slf4j-2.0.17.jar" - }, { - "group" : "com.sonarsource.dbd", - "name" : "platform-api-1.36.1.13250.jar", - "version" : "1.36.1.13250", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "44c36bfb1a552f8ab5dae0c292dded7b9e8f5db5" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a6f8499d-4a33-4ebe-acc9-fa5537a7fe11" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "platform-api-1.36.1.13250.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-duplications-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-duplications-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.dotnet", - "name" : "sonar-csharp-core-10.7.0.110445.jar", - "version" : "10.7.0.110445", - "description" : "Shared code between C# plugins", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f83a05a5c596ead52252bf40babb7adaf6329fc7" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.dotnet/sonar-csharp-core@10.7.0.110445", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/SonarSource/sonar-dotnet" - }, { - "type" : "distribution", - "url" : "https://github.com/SonarSource/sonar-dotnet" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "573faf3c-ce1f-4413-a7d9-34fce7849818" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-csharp-core-10.7.0.110445.jar-2" - }, { - "group" : "highlight-words-core", - "name" : "highlight-words-core-1.2.2.tgz", - "version" : "1.2.2", - "description" : "Utility functions shared by react-highlight-words and react-native-highlight-words", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1eff6d7d9f0a22f155042a00791237791b1eeaaa" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Treasure Data", - "purl" : "pkg:npm/highlight-words-core@1.2.2", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/highlight-words-core/-/highlight-words-core-1.2.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b69a3153-0cb9-4657-bd3a-cf00a1b8b70f" - } ], - "type" : "library", - "bom-ref" : "highlight-words-core-1.2.2.tgz" - }, { - "group" : "@babel/runtime", - "name" : "runtime-7.17.9.tgz", - "version" : "7.17.9", - "description" : "babel's modular runtime helpers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d19fbf802d01a8cb6cf053a64e472d42c434ba72" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/runtime@7.17.9", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-runtime" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d8fec3f8-ca0f-41d0-b148-62c5a12edc1c" - } ], - "type" : "library", - "bom-ref" : "runtime-7.17.9.tgz" - }, { - "group" : "com.sonarsource.tsql", - "name" : "tsql-checks-1.14.0.7614.jar", - "version" : "1.14.0.7614", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "004f35c0cfc2335e8ed680893f7f2124c533c574" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "34b00096-f1a5-488a-87af-a8e90fa3440a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "tsql-checks-1.14.0.7614.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "scanner-enterprise-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "scanner-enterprise-2025.3-SNAPSHOT" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-pushapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT" - }, { - "group" : "org.jsoup", - "name" : "jsoup-1.19.1.jar", - "version" : "1.19.1", - "description" : "jsoup is a Java library that simplifies working with real-world HTML and XML. It offers an easy-to-use API for URL fetching, data parsing, extraction, and manipulation using DOM API methods, CSS, and xpath selectors. jsoup implements the WHATWG HTML5 specification, and parses HTML to the same DOM as modern browsers.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0a66ce6265069c29783c30ca7c51ae15b68c36c5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2009-2024 a href,Jonathan Hedley", - "purl" : "pkg:maven/org.jsoup/jsoup@1.19.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://jsoup.org/" - }, { - "type" : "distribution", - "url" : "https://jsoup.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2107196d-0abc-48cf-a607-e383cc85a32a" - } ], - "type" : "library", - "bom-ref" : "jsoup-1.19.1.jar" - }, { - "group" : "@radix-ui/react-dismissable-layer", - "name" : "react-dismissable-layer-1.1.5.tgz", - "version" : "1.1.5", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "96dde2be078c694a621e55e047406c58cd5fe774" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-dismissable-layer@1.1.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c7113d94-8971-4ded-9887-6e59d1b906c5" - } ], - "type" : "library", - "bom-ref" : "react-dismissable-layer-1.1.5.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-25.4-SNAPSHOT" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-duplications-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-duplications-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-duplications-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-duplications-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.java", - "name" : "sonar-java-symbolic-execution-plugin-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "83d13ead4b2199a7e86d6a8101464b6b350b757c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/sonar-java-symbolic-execution-plugin@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "11151e3c-da8d-42f1-a7ab-bf694f43fa91" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-java-symbolic-execution-plugin-8.11.0.38440.jar-2" - }, { - "group" : "@sonarsource/echoes-react", - "name" : "echoes-react-0.10.1.tgz", - "version" : "0.10.1", - "description" : "React implementation of Echoes, SONAR's Design System", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fb95704f67e6060aaeea5529835387051dd54f3d" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2023-2024 SonarSource", - "purl" : "pkg:npm/%40sonarsource/echoes-react@0.10.1", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@sonarsource/echoes-react/-/echoes-react-0.10.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cf25a715-b42c-4d42-b340-3830ce736a36" - } ], - "type" : "library", - "bom-ref" : "echoes-react-0.10.1.tgz" - }, { - "group" : "io.prometheus", - "name" : "simpleclient_tracer_otel-0.16.0.jar", - "version" : "0.16.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "cc3d2b7b7cb6f077e3b1ee1d3e99eb54fddfa151" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2015 The Prometheus Authors", - "purl" : "pkg:maven/io.prometheus/simpleclient_tracer_otel@0.16.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://github.com/prometheus/client_java" - }, { - "type" : "distribution", - "url" : "http://github.com/prometheus/client_java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "97225a10-a242-41f3-9d6d-c11146ec807a" - } ], - "type" : "library", - "bom-ref" : "simpleclient-tracer-otel-0.16.0.jar" - }, { - "group" : "com.google.auto", - "name" : "auto-common-1.2.1.jar", - "version" : "1.2.1", - "description" : "Common utilities for creating annotation processors.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f6da26895f759010f5f170c8044e84c1b17ef83e" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2013 Google LLC,Copyright 2014 Google LLC", - "purl" : "pkg:maven/com.google.auto/auto-common@1.2.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.google.com" - }, { - "type" : "distribution", - "url" : "http://www.google.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "45240114-ad98-45e0-86c5-331b1baa274d" - } ], - "type" : "library", - "bom-ref" : "auto-common-1.2.1.jar" - }, { - "group" : "io.prometheus", - "name" : "simpleclient_servlet-0.16.0.jar", - "version" : "0.16.0", - "description" : "HTTP servlet exporter for the simpleclient.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bb8d80e00618ab8edeaebb6c0287c48d8413c90b" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2015 The Prometheus Authors", - "purl" : "pkg:maven/io.prometheus/simpleclient_servlet@0.16.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://github.com/prometheus/client_java" - }, { - "type" : "distribution", - "url" : "http://github.com/prometheus/client_java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "297d50c5-9048-447f-8307-b68f26d466b6" - } ], - "type" : "library", - "bom-ref" : "simpleclient-servlet-0.16.0.jar" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Standard Library for JVM", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "72812e8a368917ab5c0a5081b56915ffdfec93b7" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4d17c8e7-b160-40cd-893a-5c83ec3ea4de" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-1.9.10.jar-2" - }, { - "group" : "path-key", - "name" : "path-key-3.1.1.tgz", - "version" : "3.1.1", - "description" : "Get the PATH environment variable key cross-platform", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "581f6ade658cbba65a0d3380de7753295054f375" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/path-key@3.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/path-key#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "0baa8a47-a8ef-4f98-b475-c65da2fb6edd" - } ], - "type" : "library", - "bom-ref" : "path-key-3.1.1.tgz" - }, { - "group" : "@radix-ui/react-dropdown-menu", - "name" : "react-dropdown-menu-2.1.1.tgz", - "version" : "2.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3dc578488688250dbbe109d9ff2ca28a9bca27ec" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-dropdown-menu@2.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9e48421a-8a4c-4c01-882e-636d892039ac" - } ], - "type" : "library", - "bom-ref" : "react-dropdown-menu-2.1.1.tgz" - }, { - "group" : "source-map", - "name" : "source-map-0.5.7.tgz", - "version" : "0.5.7", - "description" : "Generates and consumes source maps", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2009-2011 Mozilla Foundation and contributors", - "purl" : "pkg:npm/source-map@0.5.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/mozilla/source-map" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f02d5d57-60f5-46bf-bf3b-5743617940be" - } ], - "type" : "library", - "bom-ref" : "source-map-0.5.7.tgz" - }, { - "group" : "org.springdoc", - "name" : "springdoc-openapi-starter-webmvc-api-2.8.6.jar", - "version" : "2.8.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d28bee4cccfebc0ac028c646bb54cac4c151765c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2019-2023 the original author or authors", - "purl" : "pkg:maven/org.springdoc/springdoc-openapi-starter-webmvc-api@2.8.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://springdoc.org/" - }, { - "type" : "distribution", - "url" : "https://springdoc.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "db7c17ef-9778-4a1a-aca0-c0cfd1e3997f" - } ], - "type" : "library", - "bom-ref" : "springdoc-openapi-starter-webmvc-api-2.8.6.jar-2" - }, { - "group" : "d3-time", - "name" : "d3-time-3.1.0.tgz", - "version" : "3.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9310db56e992e3c0175e1ef385e545e48a9bb5c7" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2022 Mike Bostock", - "purl" : "pkg:npm/d3-time@3.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-time/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4cd5640d-f665-403b-a72a-5e7e9c5b2e4e" - } ], - "type" : "library", - "bom-ref" : "d3-time-3.1.0.tgz-2" - }, { - "group" : "org.springdoc", - "name" : "springdoc-openapi-starter-webmvc-api-2.8.6.jar", - "version" : "2.8.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d28bee4cccfebc0ac028c646bb54cac4c151765c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2019-2023 the original author or authors", - "purl" : "pkg:maven/org.springdoc/springdoc-openapi-starter-webmvc-api@2.8.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://springdoc.org/" - }, { - "type" : "distribution", - "url" : "https://springdoc.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "db7c17ef-9778-4a1a-aca0-c0cfd1e3997f" - } ], - "type" : "library", - "bom-ref" : "springdoc-openapi-starter-webmvc-api-2.8.6.jar-3" - }, { - "group" : "io.dropwizard.metrics", - "name" : "metrics-core-4.2.25.jar", - "version" : "4.2.25", - "description" : "Metrics is a Java library which gives you unparalleled insight into what your code does in production. Metrics provides a powerful toolkit of ways to measure the behavior of critical components in your production environment.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "76162cb1f7a6f902da4f80e5bcf472078e8cd7e1" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/io.dropwizard.metrics/metrics-core@4.2.25?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://metrics.dropwizard.io" - }, { - "type" : "distribution", - "url" : "https://metrics.dropwizard.io" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0757cc3d-bf8a-443d-b2a8-72bb8160b44f" - } ], - "type" : "library", - "bom-ref" : "metrics-core-4.2.25.jar-2" - }, { - "group" : "org.hibernate.validator", - "name" : "hibernate-validator-8.0.2.Final.jar", - "version" : "8.0.2.Final", - "description" : "Hibernate's Jakarta Bean Validation reference implementation.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "220e64815dd87535525331de20570017f899eb13" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.hibernate.validator/hibernate-validator@8.0.2.Final", - "externalReferences" : [ { - "type" : "website", - "url" : "http://hibernate.org/validator" - }, { - "type" : "distribution", - "url" : "http://hibernate.org/validator" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d85cb76-c2a1-4bfd-93a1-90f9917b6c0a" - } ], - "type" : "library", - "bom-ref" : "hibernate-validator-8.0.2.Final.jar" - }, { - "group" : "org.springframework.security", - "name" : "spring-security-saml2-service-provider-6.4.4.jar", - "version" : "6.4.4", - "description" : "Spring Security", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "62f045b45b71e818ad2e91bd3d90d210db463e37" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.springframework.security/spring-security-saml2-service-provider@6.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-security" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-security" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "94852c6c-f4a1-4063-8e6a-46ab9b233e69" - } ], - "type" : "library", - "bom-ref" : "spring-security-saml2-service-provider-6.4.4.jar" - }, { - "group" : "org.elasticsearch", - "name" : "elasticsearch-cli-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :libs:elasticsearch-cli", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b19bb535e6bf3fa7ee2c3ce5cdaf60c7355a6822" - } ], - "licenses" : [ { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - }, { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch/elasticsearch-cli@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "be2a7611-95cb-4571-a374-2093f005064d" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-cli-7.17.28.jar" - }, { - "group" : "com.jcraft", - "name" : "jsch.agentproxy.pageant-0.0.9.jar", - "version" : "0.0.9", - "description" : "a proxy to ssh-agent and Pageant in Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7651361429af009ff18a6ea5c4e5d38ecff7f959" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2011-2012 Atsuhiko Yamanaka, JCraft,Inc", - "purl" : "pkg:maven/com.jcraft/jsch.agentproxy.pageant@0.0.9?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.jcraft.com/" - }, { - "type" : "distribution", - "url" : "http://www.jcraft.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "04b63776-b4fa-400e-a2a9-6293f5708827" - } ], - "type" : "library", - "bom-ref" : "jsch.agentproxy.pageant-0.0.9.jar" - }, { - "group" : "com.sonarsource.cpp", - "name" : "sonar-cfamily-plugin-6.65.0.81949.jar", - "version" : "6.65.0.81949", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b823b9f83714182377697aa44be4f00379e947d3" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "47421a66-0967-475b-b125-987493683808" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-cfamily-plugin-6.65.0.81949.jar" - }, { - "group" : "com.github.scribejava", - "name" : "scribejava-core-8.3.3.jar", - "version" : "8.3.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4a9b4ed9a6367f95945eb30382a1cc647b390bd5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2010 Pablo Fernandez,Copyright 2010 Pablo Fernandez Permission is hereby granted, free of charge, to any person obtaining a copy of this", - "purl" : "pkg:maven/com.github.scribejava/scribejava-core@8.3.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8fb3d0b7-c9bc-4696-96b3-79f7a61a2731" - } ], - "type" : "library", - "bom-ref" : "scribejava-core-8.3.3.jar-2" - }, { - "group" : "org.spdx", - "name" : "spdx-java-model-2_X-1.0.0-RC2.jar", - "version" : "1.0.0-RC2", - "description" : "SPDX model versions 2.0, 2.1, and 2.3", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8886e13b31ded22db62ea8c8c185128480e5f9c1" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.spdx/spdx-java-model-2_X@1.0.0-RC2", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1a3fcae3-5aa4-4913-9c44-9e227520ba13" - } ], - "type" : "library", - "bom-ref" : "spdx-java-model-2-X-1.0.0-RC2.jar" - }, { - "group" : "ansi-styles", - "name" : "ansi-styles-6.2.1.tgz", - "version" : "6.2.1", - "description" : "ANSI escape codes for styling strings in the terminal", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0e62320cf99c21afff3b3012192546aacbfb05c5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com),Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/ansi-styles@6.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/chalk/ansi-styles#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4954b86b-f4ea-4887-b6f1-f03aa67e7fb2" - } ], - "type" : "library", - "bom-ref" : "ansi-styles-6.2.1.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-common-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-common-2025.3-SNAPSHOT" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-databind-2.18.3.jar", - "version" : "2.18.3", - "description" : "General data-binding functionality for Jackson: works on core streaming API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "537e3886263e3b3464385040453e92567fd509e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3a69f1c-e028-4d0e-91e1-4d7694e6f829" - } ], - "type" : "library", - "bom-ref" : "jackson-databind-2.18.3.jar-7" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-databind-2.18.3.jar", - "version" : "2.18.3", - "description" : "General data-binding functionality for Jackson: works on core streaming API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "537e3886263e3b3464385040453e92567fd509e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3a69f1c-e028-4d0e-91e1-4d7694e6f829" - } ], - "type" : "library", - "bom-ref" : "jackson-databind-2.18.3.jar-6" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-databind-2.18.3.jar", - "version" : "2.18.3", - "description" : "General data-binding functionality for Jackson: works on core streaming API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "537e3886263e3b3464385040453e92567fd509e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3a69f1c-e028-4d0e-91e1-4d7694e6f829" - } ], - "type" : "library", - "bom-ref" : "jackson-databind-2.18.3.jar-5" - }, { - "group" : "com.sonarsource.pdfreport", - "name" : "security-report-pdf-generation-2.0.0.184.jar", - "version" : "2.0.0.184", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7cfc29d29fe5b5899a1b798c7bedaa3ffe3ebf01" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8a1af847-0e47-407e-978f-4e585df4e39a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "security-report-pdf-generation-2.0.0.184.jar" - }, { - "group" : "jakarta.el", - "name" : "jakarta.el-api-4.0.0.jar", - "version" : "4.0.0", - "description" : "Jakarta Expression Language defines an expression language for Java applications", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ba9834bd2dba5014072bacbafecffaec1673b0f9" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - }, { - "license" : { - "name" : "GPL-2.0-only WITH Classpath-exception-2.0", - "url" : "http://gnu.org/software/classpath/license.html" - } - } ], - "copyright" : "Copyright 1997-2020 Oracle and/or its affiliates and others,Copyright 2013 Oracle and/or its affiliates", - "purl" : "pkg:maven/jakarta.el/jakarta.el-api@4.0.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.eclipse.org" - }, { - "type" : "distribution", - "url" : "https://www.eclipse.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "484d206c-d23d-4c82-a390-9cea1319d1bc" - } ], - "type" : "library", - "bom-ref" : "jakarta.el-api-4.0.0.jar" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-databind-2.18.3.jar", - "version" : "2.18.3", - "description" : "General data-binding functionality for Jackson: works on core streaming API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "537e3886263e3b3464385040453e92567fd509e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3a69f1c-e028-4d0e-91e1-4d7694e6f829" - } ], - "type" : "library", - "bom-ref" : "jackson-databind-2.18.3.jar-4" - }, { - "group" : "org.springdoc", - "name" : "springdoc-openapi-starter-common-2.8.6.jar", - "version" : "2.8.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "880d794edd3254766e9a12daad41d75add0073d9" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2019-2023 the original author or authors", - "purl" : "pkg:maven/org.springdoc/springdoc-openapi-starter-common@2.8.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://springdoc.org/" - }, { - "type" : "distribution", - "url" : "https://springdoc.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a728fd4b-d0ae-4007-8504-6d338039c917" - } ], - "type" : "library", - "bom-ref" : "springdoc-openapi-starter-common-2.8.6.jar-2" - }, { - "group" : "org.slf4j", - "name" : "slf4j-api-2.0.17.jar", - "version" : "2.0.17", - "description" : "The slf4j API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d9e58ac9c7779ba3bf8142aff6c830617a7fe60f" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2004-2022 QOS.ch Sarl,QOS.ch", - "purl" : "pkg:maven/org.slf4j/slf4j-api@2.0.17", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.slf4j.org" - }, { - "type" : "distribution", - "url" : "http://www.slf4j.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d049af48-95e8-4759-b46d-1f5e40e0f5c0" - } ], - "type" : "library", - "bom-ref" : "slf4j-api-2.0.17.jar" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-databind-2.18.3.jar", - "version" : "2.18.3", - "description" : "General data-binding functionality for Jackson: works on core streaming API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "537e3886263e3b3464385040453e92567fd509e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3a69f1c-e028-4d0e-91e1-4d7694e6f829" - } ], - "type" : "library", - "bom-ref" : "jackson-databind-2.18.3.jar-9" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-databind-2.18.3.jar", - "version" : "2.18.3", - "description" : "General data-binding functionality for Jackson: works on core streaming API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "537e3886263e3b3464385040453e92567fd509e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3a69f1c-e028-4d0e-91e1-4d7694e6f829" - } ], - "type" : "library", - "bom-ref" : "jackson-databind-2.18.3.jar-8" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-regex-parsing-2.16.0.3141.jar", - "version" : "2.16.0.3141", - "description" : "Logic useful to read and analyze regular expressions", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "eccb85df38a197ef9238ba003a7a38fb56beebde" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-regex-parsing@2.16.0.3141", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "04d2d758-4303-4537-8a51-c52c82749d40" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-regex-parsing-2.16.0.3141.jar-2" - }, { - "group" : "org.springframework.security", - "name" : "spring-security-web-6.4.4.jar", - "version" : "6.4.4", - "description" : "Spring Security", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b33b3eba22ef5242caef0cf3c0575b0cc303519b" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.springframework.security/spring-security-web@6.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-security" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-security" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2b27b60d-039c-4601-bdab-2c941e4d51a4" - } ], - "type" : "library", - "bom-ref" : "spring-security-web-6.4.4.jar-2" - }, { - "group" : "com.github.spotbugs", - "name" : "spotbugs-annotations-4.9.3.jar", - "version" : "4.9.3", - "description" : "Annotations the SpotBugs tool supports", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4d362bffcfdfd734999e94d7d98fde678aae71cf" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.github.spotbugs/spotbugs-annotations@4.9.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spotbugs.github.io/" - }, { - "type" : "distribution", - "url" : "https://spotbugs.github.io/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fbd83516-f337-4176-ad3d-ad4bfbebcc4b" - } ], - "type" : "library", - "bom-ref" : "spotbugs-annotations-4.9.3.jar" - }, { - "group" : "org.apache.tomcat", - "name" : "tomcat-annotations-api-10.1.39.jar", - "version" : "10.1.39", - "description" : "Annotations Package", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c251873f97cc08b8365327f72285f0f213f5110f" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2025 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.tomcat/tomcat-annotations-api@10.1.39", - "externalReferences" : [ { - "type" : "website", - "url" : "https://tomcat.apache.org/" - }, { - "type" : "distribution", - "url" : "https://tomcat.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b9643439-0f20-427a-8e4f-6c136da97e4b" - } ], - "type" : "library", - "bom-ref" : "tomcat-annotations-api-10.1.39.jar" - }, { - "group" : "org.springframework.security", - "name" : "spring-security-web-6.4.4.jar", - "version" : "6.4.4", - "description" : "Spring Security", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b33b3eba22ef5242caef0cf3c0575b0cc303519b" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.springframework.security/spring-security-web@6.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-security" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-security" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2b27b60d-039c-4601-bdab-2c941e4d51a4" - } ], - "type" : "library", - "bom-ref" : "spring-security-web-6.4.4.jar-3" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-databind-2.18.3.jar", - "version" : "2.18.3", - "description" : "General data-binding functionality for Jackson: works on core streaming API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "537e3886263e3b3464385040453e92567fd509e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3a69f1c-e028-4d0e-91e1-4d7694e6f829" - } ], - "type" : "library", - "bom-ref" : "jackson-databind-2.18.3.jar-3" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-databind-2.18.3.jar", - "version" : "2.18.3", - "description" : "General data-binding functionality for Jackson: works on core streaming API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "537e3886263e3b3464385040453e92567fd509e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3a69f1c-e028-4d0e-91e1-4d7694e6f829" - } ], - "type" : "library", - "bom-ref" : "jackson-databind-2.18.3.jar-2" - }, { - "group" : "com.fasterxml.jackson.dataformat", - "name" : "jackson-dataformat-yaml-2.18.3.jar", - "version" : "2.18.3", - "description" : "Support for reading and writing YAML-encoded data via Jackson abstractions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "66658356a375664262c227dad09adc51dbc09c54" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fefad014-fcdb-4339-87a1-bb01c273779e" - } ], - "type" : "library", - "bom-ref" : "jackson-dataformat-yaml-2.18.3.jar" - }, { - "group" : "org.kohsuke", - "name" : "github-api-1.327.jar", - "version" : "1.327", - "description" : "GitHub API for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "82c1da388b88856b769db2ebf68b7cd7ae6a17a5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.kohsuke/github-api@1.327", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "17ac24b2-c9fc-49e7-a3ba-2f795f2854dc" - } ], - "type" : "library", - "bom-ref" : "github-api-1.327.jar-2" - }, { - "group" : "io.prometheus", - "name" : "simpleclient-0.16.0.jar", - "version" : "0.16.0", - "description" : "Core instrumentation library for the simpleclient.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "28b0eaf7c500c506976da8d0fc9cad6c278e8d87" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2015 The Prometheus Authors", - "purl" : "pkg:maven/io.prometheus/simpleclient@0.16.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://github.com/prometheus/client_java" - }, { - "type" : "distribution", - "url" : "http://github.com/prometheus/client_java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4ddf1936-ca55-4b1d-81b9-6bd36ac171bb" - } ], - "type" : "library", - "bom-ref" : "simpleclient-0.16.0.jar-2" - }, { - "group" : "org.kohsuke", - "name" : "github-api-1.327.jar", - "version" : "1.327", - "description" : "GitHub API for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "82c1da388b88856b769db2ebf68b7cd7ae6a17a5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.kohsuke/github-api@1.327", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "17ac24b2-c9fc-49e7-a3ba-2f795f2854dc" - } ], - "type" : "library", - "bom-ref" : "github-api-1.327.jar-3" - }, { - "group" : "org.kohsuke", - "name" : "github-api-1.327.jar", - "version" : "1.327", - "description" : "GitHub API for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "82c1da388b88856b769db2ebf68b7cd7ae6a17a5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.kohsuke/github-api@1.327", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "17ac24b2-c9fc-49e7-a3ba-2f795f2854dc" - } ], - "type" : "library", - "bom-ref" : "github-api-1.327.jar-4" - }, { - "group" : "org.kohsuke", - "name" : "github-api-1.327.jar", - "version" : "1.327", - "description" : "GitHub API for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "82c1da388b88856b769db2ebf68b7cd7ae6a17a5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.kohsuke/github-api@1.327", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "17ac24b2-c9fc-49e7-a3ba-2f795f2854dc" - } ], - "type" : "library", - "bom-ref" : "github-api-1.327.jar-5" - }, { - "group" : "@emotion/cache", - "name" : "cache-11.13.1.tgz", - "version" : "11.13.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fecfc54d51810beebf05bf2a161271a1a91895d7" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/cache@11.13.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d7a79164-ac9e-4cf1-8184-554f1e88352b" - } ], - "type" : "library", - "bom-ref" : "cache-11.13.1.tgz" - }, { - "group" : "cross-spawn", - "name" : "cross-spawn-7.0.3.tgz", - "version" : "7.0.3", - "description" : "Cross platform child_process#spawn and child_process#spawnSync", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f73a85b9d5d41d045551c177e2882d4ac85728a6" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2018 Made With MOXY Lda <hello@moxy.studio>,Copyright 2018 Made With MOXY Lda <hello@moxy.studio>", - "purl" : "pkg:npm/cross-spawn@7.0.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/moxystudio/node-cross-spawn" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e4bab952-08b7-469d-b1ac-5fca5d0d6ff4" - } ], - "type" : "library", - "bom-ref" : "cross-spawn-7.0.3.tgz" - }, { - "group" : "@babel/runtime", - "name" : "runtime-7.18.9.tgz", - "version" : "7.18.9", - "description" : "babel's modular runtime helpers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/runtime@7.18.9", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-runtime" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "703cecbf-bcda-416c-8acf-4b2504fbbd1e" - } ], - "type" : "library", - "bom-ref" : "runtime-7.18.9.tgz" - }, { - "group" : "classnames", - "name" : "classnames-2.5.1.tgz", - "version" : "2.5.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ba774c614be0f016da105c858e7159eae8e7687b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2018 Jed Watson,Copyright 2018 Jed Watson", - "purl" : "pkg:npm/classnames@2.5.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/JedWatson/classnames#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "68a3e043-4dcd-4f0d-b482-3153fd491ea4" - } ], - "type" : "library", - "bom-ref" : "classnames-2.5.1.tgz" - }, { - "group" : "@radix-ui/react-roving-focus", - "name" : "react-roving-focus-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b30c59daf7e714c748805bfe11c76f96caaac35e" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-roving-focus@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9def5fe3-6307-4343-8d68-946c6df47891" - } ], - "type" : "library", - "bom-ref" : "react-roving-focus-1.1.0.tgz" - }, { - "group" : "com.github.spotbugs", - "name" : "spotbugs-annotations-4.9.3.jar", - "version" : "4.9.3", - "description" : "Annotations the SpotBugs tool supports", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4d362bffcfdfd734999e94d7d98fde678aae71cf" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.github.spotbugs/spotbugs-annotations@4.9.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spotbugs.github.io/" - }, { - "type" : "distribution", - "url" : "https://spotbugs.github.io/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fbd83516-f337-4176-ad3d-ad4bfbebcc4b" - } ], - "type" : "library", - "bom-ref" : "spotbugs-annotations-4.9.3.jar-3" - }, { - "group" : "@emotion/utils", - "name" : "utils-1.0.0.tgz", - "version" : "1.0.0", - "description" : "internal utils for emotion", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "abe06a83160b10570816c913990245813a2fd6af" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/utils@1.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9a3918b8-ba80-492e-b96c-ac91bb888fb0" - } ], - "type" : "library", - "bom-ref" : "utils-1.0.0.tgz" - }, { - "group" : "com.github.spotbugs", - "name" : "spotbugs-annotations-4.9.3.jar", - "version" : "4.9.3", - "description" : "Annotations the SpotBugs tool supports", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4d362bffcfdfd734999e94d7d98fde678aae71cf" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.github.spotbugs/spotbugs-annotations@4.9.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spotbugs.github.io/" - }, { - "type" : "distribution", - "url" : "https://spotbugs.github.io/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fbd83516-f337-4176-ad3d-ad4bfbebcc4b" - } ], - "type" : "library", - "bom-ref" : "spotbugs-annotations-4.9.3.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-gitlab-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-10" - }, { - "group" : "commons-validator", - "name" : "commons-validator-1.9.0.jar", - "version" : "1.9.0", - "description" : "Apache Commons Validator provides the building blocks for both client side validation and server side data validation. It may be used standalone or with a framework like Struts.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "26e49d333890ccad072eb530a85fceb9c07818df" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2002-2024 The Apache Software Foundation", - "purl" : "pkg:maven/commons-validator/commons-validator@1.9.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2cf77b4c-d764-4f6e-bae5-e66bc93d4fe6" - } ], - "type" : "library", - "bom-ref" : "commons-validator-1.9.0.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-25.4-SNAPSHOT-2" - }, { - "group" : "org.apache.commons", - "name" : "commons-compress-1.27.1.jar", - "version" : "1.27.1", - "description" : "Apache Commons Compress defines an API for working with compression and archive formats. These include bzip2, gzip, pack200, LZMA, XZ, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4, Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a19151084758e2fbb6b41eddaa88e7b8ff4e6599" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2002-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.commons/commons-compress@1.27.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://commons.apache.org/proper/commons-compress/" - }, { - "type" : "distribution", - "url" : "https://commons.apache.org/proper/commons-compress/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2703a519-676c-41f7-8772-e81ea000ed47" - } ], - "type" : "library", - "bom-ref" : "commons-compress-1.27.1.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-25.4-SNAPSHOT-4" - }, { - "group" : "com.sonarsource.security", - "name" : "sonar-security-frontend-commons-11.1.0.35630.jar", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1aee734e7c51037159191f6443ee5ac36ef9b875" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f79cf5da-ac6c-48b4-81d2-727e28570c57" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-security-frontend-commons-11.1.0.35630.jar" - }, { - "group" : "com.sonarsource.plsql", - "name" : "plsql-data-dictionary-3.15.0.7123.jar", - "version" : "3.15.0.7123", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "47162bb2443f41a8a5e32871feefe4000022e05c" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e00a0b8f-9977-44de-8742-7cb1875ac3fc" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "plsql-data-dictionary-3.15.0.7123.jar-2" - }, { - "group" : "punycode.js", - "name" : "punycode.js-2.3.1.tgz", - "version" : "2.3.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6b53e56ad75588234e79f4affa90972c7dd8cdb7" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Mathias Bynens <https://mathiasbynens.be/>", - "purl" : "pkg:npm/punycode.js@2.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://mths.be/punycode" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4b481e82-740c-4c75-8b12-a92fde52c3a2" - } ], - "type" : "library", - "bom-ref" : "punycode.js-2.3.1.tgz" - }, { - "group" : "org.apache.tomcat.embed", - "name" : "tomcat-embed-core-10.1.39.jar", - "version" : "10.1.39", - "description" : "Core Tomcat implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f6acead04214d5aaea82c2639392208df33b3abe" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2025 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.tomcat.embed/tomcat-embed-core@10.1.39", - "externalReferences" : [ { - "type" : "website", - "url" : "https://tomcat.apache.org/" - }, { - "type" : "distribution", - "url" : "https://tomcat.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "aef7efe0-34ab-4ce7-8a65-13802e4b6c2c" - } ], - "type" : "library", - "bom-ref" : "tomcat-embed-core-10.1.39.jar-2" - }, { - "group" : "com.squareup.okio", - "name" : "okio-jvm-3.6.0.jar", - "version" : "3.6.0", - "description" : "A modern I/O library for Android, Java, and Kotlin Multiplatform.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5600569133b7bdefe1daf9ec7f4abeb6d13e1786" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okio/okio-jvm@3.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/square/okio/" - }, { - "type" : "distribution", - "url" : "https://github.com/square/okio/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3d897012-bd5e-41a6-b406-8e2a9a0db6d3" - } ], - "type" : "library", - "bom-ref" : "okio-jvm-3.6.0.jar" - }, { - "group" : "com.sonarsource.jcl", - "name" : "jcl-checks-1.4.1.1493.jar", - "version" : "1.4.1.1493", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "45ebb30de755ae06fba56abe2a63afde07695fdb" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6a736911-2861-4245-b711-5d22a6b961e0" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "jcl-checks-1.4.1.1493.jar" - }, { - "group" : "org.apache.logging.log4j", - "name" : "log4j-api-2.24.3.jar", - "version" : "2.24.3", - "description" : "The logging API of the Log4j project. Library and application code can log through this API. It contains a simple built-in implementation (`SimpleLogger`) for trivial use cases. Production applications are recommended to use Log4j API in combination with a fully-fledged implementation, such as Log4j Core.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b02c125db8b6d295adf72ae6e71af5d83bce2370" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2024 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.logging.log4j/log4j-api@2.24.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://logging.apache.org/log4j/2.x/" - }, { - "type" : "distribution", - "url" : "https://logging.apache.org/log4j/2.x/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2b24e2f5-3df0-4dd1-8d1a-aa632dd8703b" - } ], - "type" : "library", - "bom-ref" : "log4j-api-2.24.3.jar" - }, { - "group" : "org.codehaus.sonar", - "name" : "sonar-channel-4.2.jar", - "version" : "4.2", - "description" : "Code Channel", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "563e005039400ef439ab6efda80eb2cf1ee09acd" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2008-2013 SonarSource,SonarSource", - "purl" : "pkg:maven/org.codehaus.sonar/sonar-channel@4.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "17052c43-ac52-4dd4-9306-2975ea602768" - } ], - "type" : "library", - "bom-ref" : "sonar-channel-4.2.jar" - }, { - "group" : "react-modal", - "name" : "react-modal-3.16.1.tgz", - "version" : "3.16.1", - "description" : "Accessible modal dialog component for React.JS", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "34018528fc206561b1a5467fc3beeaddafb39b2b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Ryan Florence", - "purl" : "pkg:npm/react-modal@3.16.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/reactjs/react-modal" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-modal/-/react-modal-3.16.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f35266ea-926f-4b1e-a2dc-752c1dff2e66" - } ], - "type" : "library", - "bom-ref" : "react-modal-3.16.1.tgz" - }, { - "group" : "foreground-child", - "name" : "foreground-child-3.1.1.tgz", - "version" : "3.1.1", - "description" : "Run a child as if it's the foreground process. Give it stdio. Exit when it exits.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2015-2023 Isaac Z. Schlueter and Contributors", - "purl" : "pkg:npm/foreground-child@3.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/tapjs/foreground-child#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d6ea98bd-c1ea-4f44-a4da-6031958d2066" - } ], - "type" : "library", - "bom-ref" : "foreground-child-3.1.1.tgz" - }, { - "group" : "org.codehaus.woodstox", - "name" : "stax2-api-4.2.2.jar", - "version" : "4.2.2", - "description" : "Stax2 API is an extension to basic Stax 1.0 API that adds significant new functionality, such as full-featured bi-direction validation interface and high-performance Typed Access API.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b0d746cadea928e5264f2ea294ea9a1bf815bbde" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.codehaus.woodstox/stax2-api@4.2.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://fasterxml.com" - }, { - "type" : "distribution", - "url" : "http://fasterxml.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3d184033-389b-4e04-bf47-20bfbc83db68" - } ], - "type" : "library", - "bom-ref" : "stax2-api-4.2.2.jar" - }, { - "group" : "com.networknt", - "name" : "json-schema-validator-1.5.6.jar", - "version" : "1.5.6", - "description" : "A json schema validator that supports draft v4, v6, v7, v2019-09 and v2020-12", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f7dc0f0cb73078cbc2faebeaa3c4825ed133409f" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2016 Network New Technologies Inc", - "purl" : "pkg:maven/com.networknt/json-schema-validator@1.5.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/networknt/json-schema-validator" - }, { - "type" : "distribution", - "url" : "https://github.com/networknt/json-schema-validator" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4d4fd928-d31b-4522-9347-da9d0e26755d" - } ], - "type" : "library", - "bom-ref" : "json-schema-validator-1.5.6.jar" - }, { - "group" : "com.sonarsource.security", - "name" : "sonar-security-java-frontend-plugin-11.1.0.35630.sonar-plugin", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9210920f223e28839addb924171e41a5722cad8d" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "60342cec-6d14-4eec-a904-31732700a6d8" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-security-java-frontend-plugin-11.1.0.35630.sonar-plugin-2" - }, { - "group" : "com.sonarsource.slang", - "name" : "sonar-apex-plugin-1.18.0.198.jar", - "version" : "1.18.0.198", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "886a95da525261df58046849b788d864e2efa3e3" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5c39f56c-2a29-471e-966a-13e706b262d7" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-apex-plugin-1.18.0.198.jar" - }, { - "group" : "supports-color", - "name" : "supports-color-5.5.0.tgz", - "version" : "5.5.0", - "description" : "Detect whether a terminal supports color", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/supports-color@5.5.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/chalk/supports-color#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d6e78ee7-48d2-4d8d-a63e-bc6d45a5689c" - } ], - "type" : "library", - "bom-ref" : "supports-color-5.5.0.tgz" - }, { - "group" : "org.apache.sshd", - "name" : "sshd-common-2.15.0.jar", - "version" : "2.15.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c3a4140b543d5e419d57809562fec297ffea46f5" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2018-2025 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.sshd/sshd-common@2.15.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "53a54ec1-20e1-4da0-a9fa-d459c86f1a79" - } ], - "type" : "library", - "bom-ref" : "sshd-common-2.15.0.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT-3" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT-2" - }, { - "group" : "org.codehaus.woodstox", - "name" : "woodstox-core-lgpl-4.4.1.jar", - "version" : "4.4.1", - "description" : "Woodstox is a high-performance XML processor that implements Stax (JSR-173) and SAX2 APIs", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "367250f96efe58f97ede13e6e55e77760b85ab3a" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "Codehaus", - "purl" : "pkg:maven/org.codehaus.woodstox/woodstox-core-lgpl@4.4.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.codehaus.org/" - }, { - "type" : "distribution", - "url" : "http://www.codehaus.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "51d2d5d2-1bd6-4a09-8f5b-92aa973e43de" - } ], - "type" : "library", - "bom-ref" : "woodstox-core-lgpl-4.4.1.jar" - }, { - "group" : "exenv", - "name" : "exenv-1.2.2.tgz", - "version" : "1.2.2", - "description" : "React's ExecutionEnvironment module extracted for use in other packages & components", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ae78e85d9894158670b03d47bec1f03bd91bb9d" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2013-2015 Facebook, Inc", - "purl" : "pkg:npm/exenv@1.2.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/JedWatson/exenv" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c5b5d731-b2f2-4eab-9231-dfc347732090" - } ], - "type" : "library", - "bom-ref" : "exenv-1.2.2.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sslr", - "name" : "sslr-testing-harness-1.24.0.633.jar", - "version" : "1.24.0.633", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8d7635aee825f84cda3fb6235d9938c0d916739c" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.sslr/sslr-testing-harness@1.24.0.633?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "78d89c17-2a0d-4009-a602-5a6b726f60fe" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sslr-testing-harness-1.24.0.633.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT-4" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT-7" - }, { - "group" : "org.elasticsearch.client", - "name" : "elasticsearch-rest-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :client:rest", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a0c900175316c1084b87829f417dcf6a6c1aa6a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2019 Elastic and contributors,Copyright 2009-2021 Elasticsearch", - "purl" : "pkg:maven/org.elasticsearch.client/elasticsearch-rest-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "418c6519-fcc8-4474-b00c-60478c73b5a9" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-rest-client-7.17.28.jar" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Standard Library for JVM", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "72812e8a368917ab5c0a5081b56915ffdfec93b7" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4d17c8e7-b160-40cd-893a-5c83ec3ea4de" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-1.9.10.jar" - }, { - "group" : "@emotion/cache", - "name" : "cache-11.11.0.tgz", - "version" : "11.11.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/cache@11.11.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e4c8d57f-b1ab-4337-ad8d-0a869d03e74b" - } ], - "type" : "library", - "bom-ref" : "cache-11.11.0.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT-6" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT-9" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-license-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-license-2025.3-SNAPSHOT-8" - }, { - "group" : "org.hibernate.validator", - "name" : "hibernate-validator-8.0.2.Final.jar", - "version" : "8.0.2.Final", - "description" : "Hibernate's Jakarta Bean Validation reference implementation.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "220e64815dd87535525331de20570017f899eb13" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.hibernate.validator/hibernate-validator@8.0.2.Final", - "externalReferences" : [ { - "type" : "website", - "url" : "http://hibernate.org/validator" - }, { - "type" : "distribution", - "url" : "http://hibernate.org/validator" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d85cb76-c2a1-4bfd-93a1-90f9917b6c0a" - } ], - "type" : "library", - "bom-ref" : "hibernate-validator-8.0.2.Final.jar-2" - }, { - "group" : "com.sonarsource.security", - "name" : "sonar-security-csharp-frontend-plugin-11.1.0.35630.sonar-plugin", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2dc123a04cfcf21a543008ebd2f289dc31734b98" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "86da0abf-6cdd-4a54-aa3c-11cc15ccd246" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-security-csharp-frontend-plugin-11.1.0.35630.sonar-plugin" - }, { - "group" : "@emotion/utils", - "name" : "utils-1.2.0.tgz", - "version" : "1.2.0", - "description" : "internal utils for emotion", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9716eaccbc6b5ded2ea5a90d65562609aab0f561" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/utils@1.2.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cbd95b8f-95db-4439-8874-f100036bc5eb" - } ], - "type" : "library", - "bom-ref" : "utils-1.2.0.tgz" - }, { - "group" : "org.hibernate.validator", - "name" : "hibernate-validator-8.0.2.Final.jar", - "version" : "8.0.2.Final", - "description" : "Hibernate's Jakarta Bean Validation reference implementation.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "220e64815dd87535525331de20570017f899eb13" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.hibernate.validator/hibernate-validator@8.0.2.Final", - "externalReferences" : [ { - "type" : "website", - "url" : "http://hibernate.org/validator" - }, { - "type" : "distribution", - "url" : "http://hibernate.org/validator" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d85cb76-c2a1-4bfd-93a1-90f9917b6c0a" - } ], - "type" : "library", - "bom-ref" : "hibernate-validator-8.0.2.Final.jar-3" - }, { - "group" : "org.sonarsource.python", - "name" : "python-commons-5.2.0.20808.jar", - "version" : "5.2.0.20808", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "eab0176d12b4eaf0e303d5872f893d18207acead" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.python/python-commons@5.2.0.20808", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a0560dfc-e6c7-49a2-81e4-dd73c0a4530c" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "python-commons-5.2.0.20808.jar-2" - }, { - "group" : "d3-ease", - "name" : "d3-ease-3.0.1.tgz", - "version" : "3.0.1", - "description" : "Easing functions for smooth animation.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9658ac38a2140d59d346160f1f6c30fda0bd12f4" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock,Copyright 2001 Robert Penner,Copyright 2010-2021 Mike Bostock,Copyright 2001 Robert Penner", - "purl" : "pkg:npm/d3-ease@3.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-ease/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "8ca23646-cb59-4c08-a990-d894231d3899" - } ], - "type" : "library", - "bom-ref" : "d3-ease-3.0.1.tgz" - }, { - "group" : "org.sonarsource.python", - "name" : "sonar-python-plugin-5.2.0.20808.jar", - "version" : "5.2.0.20808", - "description" : "Code Analyzer for Python", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a34d972a1c457650917da9913da19fdab43c7f66" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright 1999-2009 The Apache Software Foundation,Copyright 2022 Daniel Lemire,Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright 2021 The fast_float authors,SonarSource,Copyright 2024 Werner Randelshofer, Switzerland,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright 2020 Tim Buktu. 2-clause BSD License,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.python/sonar-python-plugin@5.2.0.20808", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/python.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/python.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d9f8e910-03b0-44fb-a1c7-035f35e78581" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-python-plugin-5.2.0.20808.jar" - }, { - "group" : "com.ethlo.time", - "name" : "itu-1.10.3.jar", - "version" : "1.10.3", - "description" : "Extremely fast date-time parser and formatter - RFC 3339 (ISO 8601 profile) and W3C format", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3b07194070e37e903549a8011bf53375607205ff" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2017 Morten Haraldsen (ethlo)", - "purl" : "pkg:maven/com.ethlo.time/itu@1.10.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/ethlo/itu" - }, { - "type" : "distribution", - "url" : "https://github.com/ethlo/itu" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fbd740a2-d93f-4f27-8a26-7bfdd8383799" - } ], - "type" : "library", - "bom-ref" : "itu-1.10.3.jar" - }, { - "group" : "net.sf.jopt-simple", - "name" : "jopt-simple-5.0.2.jar", - "version" : "5.0.2", - "description" : "A Java library for parsing command line options", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "98cafc6081d5632b61be2c9e60650b64ddbc637c" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2004-2015 Paul R,Copyright 2004-2015 Paul R,Copyright 2004-2015 Paul R", - "purl" : "pkg:maven/net.sf.jopt-simple/jopt-simple@5.0.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://pholser.github.io/" - }, { - "type" : "distribution", - "url" : "http://pholser.github.io/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6d079dca-f539-4652-8271-d790c5221ab2" - } ], - "type" : "library", - "bom-ref" : "jopt-simple-5.0.2.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-25.4-SNAPSHOT-11" - }, { - "group" : "@radix-ui/react-slot", - "name" : "react-slot-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7c5e48c36ef5496d97b08f1357bb26ed7c714b84" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-slot@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9ddd7217-3ce9-4821-a36f-f1cb1c092cf3" - } ], - "type" : "library", - "bom-ref" : "react-slot-1.1.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-25.4-SNAPSHOT-10" - }, { - "group" : "org.attoparser", - "name" : "attoparser-2.0.7.RELEASE.jar", - "version" : "2.0.7.RELEASE", - "description" : "Powerful, fast and easy to use HTML and XML parser for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e5d0e988d9124139d645bb5872b24dfa23e283cc" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2022 The ATTOPARSER team,Copyright 2012-2022 The ATTOPARSER team", - "purl" : "pkg:maven/org.attoparser/attoparser@2.0.7.RELEASE?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.attoparser.org" - }, { - "type" : "distribution", - "url" : "https://www.attoparser.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "784e6d23-5e02-46e8-80c6-ce07eb6b8ae1" - } ], - "type" : "library", - "bom-ref" : "attoparser-2.0.7.RELEASE.jar" - }, { - "group" : "org.opensaml", - "name" : "opensaml-soap-impl-4.3.2.jar", - "version" : "4.3.2", - "description" : "SOAP Provider Implementations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c982f389aa97b9f9e5d94e898e31717759fd3e27" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-soap-impl@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dadde804-ff55-40e9-94ec-99c00a9a1fcf" - } ], - "type" : "library", - "bom-ref" : "opensaml-soap-impl-4.3.2.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-25.4-SNAPSHOT" - }, { - "group" : "@babel/runtime", - "name" : "runtime-7.17.8.tgz", - "version" : "7.17.8", - "description" : "babel's modular runtime helpers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3e56e4aff81befa55ac3ac6a0967349fd1c5bca2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/runtime@7.17.8", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-runtime" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5bd1397c-5453-4133-8593-d3ed45bbaee3" - } ], - "type" : "library", - "bom-ref" : "runtime-7.17.8.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-saml-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-saml-25.4-SNAPSHOT" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "license-api-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "license-api-2025.3-SNAPSHOT-2" - }, { - "group" : "ch.qos.logback.access", - "name" : "common-2.0.3.jar", - "version" : "2.0.3", - "description" : "Logback Access Common module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "120b5afd7f6b15bbd269dc2072dd694945e6fd7f" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - }, { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "QOS.ch", - "purl" : "pkg:maven/ch.qos.logback.access/common@2.0.3", - "externalReferences" : [ { - "type" : "website", - "url" : "http://logback.qos.ch" - }, { - "type" : "distribution", - "url" : "http://logback.qos.ch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f86aa4d9-8c60-47d6-95d2-178713f3efef" - } ], - "type" : "library", - "bom-ref" : "common-2.0.3.jar" - }, { - "group" : "com.sonarsource.rpg", - "name" : "rpg-checks-3.10.0.5337.jar", - "version" : "3.10.0.5337", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "78bde0d790b9db416857e6e29cd4f3dade05cb7a" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9efce1c1-e7de-460d-b04d-a43c5cf99957" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "rpg-checks-3.10.0.5337.jar" - }, { - "group" : "de.regnis.q.sequence", - "name" : "sequence-library-1.0.4.jar", - "version" : "1.0.4", - "description" : "Textual Diff and Merge Library", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b623e7e429e446ef36c7fd649647586ed49f16aa" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2000-2013 syntevo GmbH, Freilassing, GERMANY", - "purl" : "pkg:maven/de.regnis.q.sequence/sequence-library@1.0.4?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://tmatesoft.com/" - }, { - "type" : "distribution", - "url" : "https://tmatesoft.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0687d1c5-d2a0-4813-8371-89bd4dd92ff2" - } ], - "type" : "library", - "bom-ref" : "sequence-library-1.0.4.jar" - }, { - "group" : "com.sonarsource.jcl", - "name" : "jcl-api-1.4.1.1493.jar", - "version" : "1.4.1.1493", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "509fa471c789206f138a85d41cac1f5b67356a63" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0d9679d8-514d-42c2-bbe7-11ad34a59d27" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "jcl-api-1.4.1.1493.jar" - }, { - "group" : "org.hamcrest", - "name" : "hamcrest-all-1.3.jar", - "version" : "1.3", - "description" : "A self-contained hamcrest jar containing all of the sub-modules in a single artifact.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "63a21ebc981131004ad02e0434e799fd7f3a8d5a" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2000-2006 www.hamcrest.org", - "purl" : "pkg:maven/org.hamcrest/hamcrest-all@1.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/hamcrest/JavaHamcrest" - }, { - "type" : "distribution", - "url" : "https://github.com/hamcrest/JavaHamcrest" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f5f2ad78-28b4-480d-9694-0a5d29be3d77" - } ], - "type" : "library", - "bom-ref" : "hamcrest-all-1.3.jar" - }, { - "group" : "org.sonarsource.python", - "name" : "python-frontend-5.2.0.20808.jar", - "version" : "5.2.0.20808", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5693da1bcce586eaf0bae98ce7587cc622104ab2" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.python/python-frontend@5.2.0.20808", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ea1d5707-5127-4446-9beb-bc29d80ca436" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "python-frontend-5.2.0.20808.jar-3" - }, { - "group" : "org.sonarsource.java", - "name" : "java-jsp-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f5890b92b525c85a5a5f8e5c24bbd6bb452a7a6b" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-jsp@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "faec1c48-3e61-47d3-9fe7-a2b444d8c01b" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-jsp-8.11.0.38440.jar" - }, { - "group" : "org.sonarsource.python", - "name" : "python-frontend-5.2.0.20808.jar", - "version" : "5.2.0.20808", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5693da1bcce586eaf0bae98ce7587cc622104ab2" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.python/python-frontend@5.2.0.20808", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ea1d5707-5127-4446-9beb-bc29d80ca436" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "python-frontend-5.2.0.20808.jar-2" - }, { - "group" : "com.sonarsource.dbd", - "name" : "sonar-dbd-plugin-1.36.1.13250.sonar-plugin", - "version" : "1.36.1.13250", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "83e9d0b95591c46d246baee6be2f7d9733bf7ece" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fced8efa-c4f4-487c-896f-1fc9d3e80e14" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-dbd-plugin-1.36.1.13250.sonar-plugin" - }, { - "group" : "@radix-ui/react-roving-focus", - "name" : "react-roving-focus-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3b3abb1e03646937f28d9ab25e96343667ca6520" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-roving-focus@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ba348eec-68dc-4439-ab09-c6d3f18fdf13" - } ], - "type" : "library", - "bom-ref" : "react-roving-focus-1.1.1.tgz" - }, { - "group" : "net.java.dev.jna", - "name" : "jna-platform-5.6.0.jar", - "version" : "5.6.0", - "description" : "Java Native Access Platform", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d18424ffb8bbfd036d71bcaab9b546858f2ef986" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "Copyright UNSPECIFIED", - "purl" : "pkg:maven/net.java.dev.jna/jna-platform@5.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/java-native-access/jna" - }, { - "type" : "distribution", - "url" : "https://github.com/java-native-access/jna" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "74098102-e94a-422d-a0be-366e7b187bce" - } ], - "type" : "library", - "bom-ref" : "jna-platform-5.6.0.jar-3" - }, { - "group" : "org.sonarsource.flex", - "name" : "flex-checks-2.14.0.5032.jar", - "version" : "2.14.0.5032", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0039df08f354e06b5a99c6f6df4be609fae6c674" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.flex/flex-checks@2.14.0.5032", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b8a27012-939f-4ecf-894d-c5d533c0a7dc" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "flex-checks-2.14.0.5032.jar-2" - }, { - "group" : "react-transition-group", - "name" : "react-transition-group-4.4.2.tgz", - "version" : "4.4.2", - "description" : "A react component toolset for managing animations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8b59a56f09ced7b55cbd53c36768b922890d5470" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2018 React Community,Copyright 2018 React Community,Copyright 2013 Facebook, Inc,Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/react-transition-group@4.4.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/reactjs/react-transition-group#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cb5fd197-1336-425e-a684-9dffc7df2eb9" - } ], - "type" : "library", - "bom-ref" : "react-transition-group-4.4.2.tgz-3" - }, { - "group" : "react-transition-group", - "name" : "react-transition-group-4.4.2.tgz", - "version" : "4.4.2", - "description" : "A react component toolset for managing animations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8b59a56f09ced7b55cbd53c36768b922890d5470" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2018 React Community,Copyright 2018 React Community,Copyright 2013 Facebook, Inc,Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/react-transition-group@4.4.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/reactjs/react-transition-group#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cb5fd197-1336-425e-a684-9dffc7df2eb9" - } ], - "type" : "library", - "bom-ref" : "react-transition-group-4.4.2.tgz-2" - }, { - "group" : "invariant", - "name" : "invariant-2.2.4.tgz", - "version" : "2.2.4", - "description" : "invariant", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "610f3c92c9359ce1db616e538008d23ff35158e6" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/invariant@2.2.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/zertosh/invariant#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "068f4d2d-2044-44e2-89c5-2ac3de916a72" - } ], - "type" : "library", - "bom-ref" : "invariant-2.2.4.tgz" - }, { - "group" : "com.sonarsource.security", - "name" : "monitoring-11.1.0.35630.jar", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b27abd19d6e08078536d854090bb3c7fd4cf2e86" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e755d3f3-4d9d-40c7-a494-bafced03338e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "monitoring-11.1.0.35630.jar-2" - }, { - "group" : "net.java.dev.jna", - "name" : "jna-platform-5.6.0.jar", - "version" : "5.6.0", - "description" : "Java Native Access Platform", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d18424ffb8bbfd036d71bcaab9b546858f2ef986" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "Copyright UNSPECIFIED", - "purl" : "pkg:maven/net.java.dev.jna/jna-platform@5.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/java-native-access/jna" - }, { - "type" : "distribution", - "url" : "https://github.com/java-native-access/jna" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "74098102-e94a-422d-a0be-366e7b187bce" - } ], - "type" : "library", - "bom-ref" : "jna-platform-5.6.0.jar-2" - }, { - "group" : "com.sonarsource.rpg", - "name" : "rpg-checks-testkit-3.10.0.5337.jar", - "version" : "3.10.0.5337", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b2b8c8cdf21d44e8f7138803ebfceb74f9bf2791" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a54bbb11-e1e2-4b05-a0fa-d7f1d0d0af43" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "rpg-checks-testkit-3.10.0.5337.jar" - }, { - "group" : "@formatjs/fast-memoize", - "name" : "fast-memoize-2.2.0.tgz", - "version" : "2.2.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "33bd616d2e486c3e8ef4e68c99648c196887802b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2021 FormatJS", - "purl" : "pkg:npm/%40formatjs/fast-memoize@2.2.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/formatjs/formatjs#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "a0cbdce8-e90e-4a40-bca2-2bba7187fa63" - } ], - "type" : "library", - "bom-ref" : "fast-memoize-2.2.0.tgz" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-analyzer-recognizers-2.16.0.3141.jar", - "version" : "2.16.0.3141", - "description" : "Shared code recognizers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "135bda27fd8c302e41c91988ca055b8b48ba759e" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-analyzer-recognizers@2.16.0.3141", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "bf964831-012f-4b62-8002-47b3f2655dfd" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-analyzer-recognizers-2.16.0.3141.jar-2" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-gitlab-vulnerability-report-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-gitlab-vulnerability-report-2025.3-SNAPSHOT" - }, { - "group" : "org.jacoco", - "name" : "org.jacoco.agent-0.8.11.jar", - "version" : "0.8.11", - "description" : "JaCoCo Agent", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "699ee14f7f0f3ae66dc76e7591799bb97c753155" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - }, { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - }, { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - } ], - "copyright" : "Mountainminds GmbH & Co. KG,Copyright 2009-2023 Mountainminds GmbH", - "purl" : "pkg:maven/org.jacoco/org.jacoco.agent@0.8.11?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://jacoco.org" - }, { - "type" : "distribution", - "url" : "http://jacoco.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e270cc9f-62d4-4bdb-a766-430caa9c2a09" - } ], - "type" : "library", - "bom-ref" : "org.jacoco.agent-0.8.11.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-ai-code-assurance-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-ai-code-assurance-2025.3-SNAPSHOT" - }, { - "group" : "com.sonarsource.dbd", - "name" : "sonar-dbd-java-frontend-plugin-1.36.1.13250.sonar-plugin", - "version" : "1.36.1.13250", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4dbb8a9962c4dfb833d0f5a19e7fea792a8e34d2" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "70e39714-e702-47a1-9bde-dc0e7e3756c7" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-dbd-java-frontend-plugin-1.36.1.13250.sonar-plugin" - }, { - "group" : "org.sonarsource.java", - "name" : "external-reports-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "14e416e31f5c54c2540c555cd1dbf52accd64656" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/external-reports@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0f9df8cf-c737-4daf-b107-61b665d3d9bc" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "external-reports-8.11.0.38440.jar" - }, { - "group" : "com.sonarsource.plsql", - "name" : "plsql-data-dictionary-3.15.0.7123.jar", - "version" : "3.15.0.7123", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "47162bb2443f41a8a5e32871feefe4000022e05c" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e00a0b8f-9977-44de-8742-7cb1875ac3fc" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "plsql-data-dictionary-3.15.0.7123.jar" - }, { - "group" : "org.spdx", - "name" : "java-spdx-library-2.0.0-RC2.jar", - "version" : "2.0.0-RC2", - "description" : "Java library which implements the Java object model for SPDX and provides useful helper functions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "54af06f3d9ae1a7c63b683026f852f8037d0e01e" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.spdx/java-spdx-library@2.0.0-RC2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spdx/Spdx-Java-Library" - }, { - "type" : "distribution", - "url" : "https://github.com/spdx/Spdx-Java-Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "20acc3b0-7646-45c9-826d-76b20e84e7d5" - } ], - "type" : "library", - "bom-ref" : "java-spdx-library-2.0.0-RC2.jar-2" - }, { - "group" : "org.sonarsource.text", - "name" : "sonar-text-plugin-2.21.1.5779.jar", - "version" : "2.21.1.5779", - "description" : "Analyzer for Text Files", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "17e4a820d9aa1b04f32aa0b257483264a88f3171" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - }, { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2024 Werner Randelshofer, Switzerland,Copyright 2022 Daniel Lemire,Copyright 2021 The fast_float authors,Copyright 2020 Tim Buktu. 2-clause BSD License,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.text/sonar-text-plugin@2.21.1.5779", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarqube.org/" - }, { - "type" : "distribution", - "url" : "http://www.sonarqube.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "cc03f52f-a4b3-43ab-910b-f8e6592d3169" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-text-plugin-2.21.1.5779.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-core-25.4-SNAPSHOT-4" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-common-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Common Standard Library", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "dafaf2c27f27c09220cee312df10917d9a5d97ce" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0608cfbc-0409-4781-941c-5760171cc97d" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-common-1.9.10.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-core-25.4-SNAPSHOT-3" - }, { - "group" : "@emotion/use-insertion-effect-with-fallbacks", - "name" : "use-insertion-effect-with-fallbacks-1.0.1.tgz", - "version" : "1.0.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "08de79f54eb3406f9daaf77c76e35313da963963" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/use-insertion-effect-with-fallbacks@1.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1bdc6a29-eea8-4320-8387-e68d670101b1" - } ], - "type" : "library", - "bom-ref" : "use-insertion-effect-with-fallbacks-1.0.1.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-core-25.4-SNAPSHOT-5" - }, { - "group" : "use-isomorphic-layout-effect", - "name" : "use-isomorphic-layout-effect-1.1.2.tgz", - "version" : "1.1.2", - "description" : "A React helper hook for scheduling a layout effect with a fallback to a regular effect for environments where layout effects should not be used (such as server-side rendering).", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "497cefb13d863d687b08477d9e5a164ad8c1a6fb" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Mateusz Burzyński", - "purl" : "pkg:npm/use-isomorphic-layout-effect@1.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/Andarist/use-isomorphic-layout-effect#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "3eb69ae4-c767-4d38-a121-0be914e1fdcf" - } ], - "type" : "library", - "bom-ref" : "use-isomorphic-layout-effect-1.1.2.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-25.4-SNAPSHOT-2" - }, { - "group" : "com.sonarsource.security", - "name" : "sonar-security-java-frontend-plugin-11.1.0.35630.sonar-plugin", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9210920f223e28839addb924171e41a5722cad8d" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "60342cec-6d14-4eec-a904-31732700a6d8" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-security-java-frontend-plugin-11.1.0.35630.sonar-plugin" - }, { - "group" : "org.apache.tomcat.embed", - "name" : "tomcat-embed-core-10.1.39.jar", - "version" : "10.1.39", - "description" : "Core Tomcat implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f6acead04214d5aaea82c2639392208df33b3abe" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2025 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.tomcat.embed/tomcat-embed-core@10.1.39", - "externalReferences" : [ { - "type" : "website", - "url" : "https://tomcat.apache.org/" - }, { - "type" : "distribution", - "url" : "https://tomcat.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "aef7efe0-34ab-4ce7-8a65-13802e4b6c2c" - } ], - "type" : "library", - "bom-ref" : "tomcat-embed-core-10.1.39.jar" - }, { - "group" : "com.sonarsource.text", - "name" : "sonar-text-enterprise-plugin-2.21.1.5779.jar", - "version" : "2.21.1.5779", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4b30195730825c106d5e5c26b088141efb237a0f" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e5c29d06-2b1e-457e-915e-cc395f45ca5f" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-text-enterprise-plugin-2.21.1.5779.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-architecture-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-architecture-2025.3-SNAPSHOT" - }, { - "group" : "@radix-ui/react-presence", - "name" : "react-presence-1.1.2.tgz", - "version" : "1.1.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bb764ed8a9118b7ec4512da5ece306ded8703cdc" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-presence@1.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6ee008e4-9341-473d-a27d-2782c924c400" - } ], - "type" : "library", - "bom-ref" : "react-presence-1.1.2.tgz" - }, { - "group" : "org.opensaml", - "name" : "opensaml-saml-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "SAML Provider API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "04d23cca2ddc72a2b9df94e4e9251fe51d874ce1" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-saml-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3b1689ed-3ffc-4e41-9929-ef02f99778cc" - } ], - "type" : "library", - "bom-ref" : "opensaml-saml-api-4.3.2.jar-3" - }, { - "group" : "color-name", - "name" : "color-name-1.1.4.tgz", - "version" : "1.1.4", - "description" : "A list of color names and its values", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c2a09a87acbde69543de6f63fa3995c826c536a2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Dmitry Ivanov", - "purl" : "pkg:npm/color-name@1.1.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/colorjs/color-name" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5cf25ed6-3e52-4c34-9494-a4d5e77f531d" - } ], - "type" : "library", - "bom-ref" : "color-name-1.1.4.tgz" - }, { - "group" : "org.opensaml", - "name" : "opensaml-saml-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "SAML Provider API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "04d23cca2ddc72a2b9df94e4e9251fe51d874ce1" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-saml-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3b1689ed-3ffc-4e41-9929-ef02f99778cc" - } ], - "type" : "library", - "bom-ref" : "opensaml-saml-api-4.3.2.jar-2" - }, { - "group" : "org.apache.commons", - "name" : "commons-text-1.13.0.jar", - "version" : "1.13.0", - "description" : "Apache Commons Text is a set of utility functions and reusable components for the purpose of processing and manipulating text that should be of use in a Java environment.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ba2ed5521c491cabf7ecdb57f77922561c2e8958" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2014-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.commons/commons-text@1.13.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://commons.apache.org/proper/commons-text" - }, { - "type" : "distribution", - "url" : "https://commons.apache.org/proper/commons-text" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e0a97317-21ee-4560-b77d-9b9ebcc4b9e5" - } ], - "type" : "library", - "bom-ref" : "commons-text-1.13.0.jar" - }, { - "group" : "com.sonarsource.dbd", - "name" : "engine-1.36.1.13250.jar", - "version" : "1.36.1.13250", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bdea6af82413f4679ad114d57e17bb49cd75f8e0" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "20acdac5-c4a1-4e71-87dd-f96cb7365884" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "engine-1.36.1.13250.jar" - }, { - "group" : "org.codehaus.sonar", - "name" : "sonar-colorizer-3.7.jar", - "version" : "3.7", - "description" : "Code syntax highlighter", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "998c022a1d2403adbbee57c9d9e1efc9f0462433" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.codehaus.sonar/sonar-colorizer@3.7?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b7dc9f2b-a7a1-4aee-b4c8-841abefa9bda" - } ], - "type" : "library", - "bom-ref" : "sonar-colorizer-3.7.jar" - }, { - "group" : "org.spdx", - "name" : "java-spdx-library-2.0.0-RC2.jar", - "version" : "2.0.0-RC2", - "description" : "Java library which implements the Java object model for SPDX and provides useful helper functions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "54af06f3d9ae1a7c63b683026f852f8037d0e01e" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.spdx/java-spdx-library@2.0.0-RC2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spdx/Spdx-Java-Library" - }, { - "type" : "distribution", - "url" : "https://github.com/spdx/Spdx-Java-Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "20acc3b0-7646-45c9-826d-76b20e84e7d5" - } ], - "type" : "library", - "bom-ref" : "java-spdx-library-2.0.0-RC2.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-enterprise-server-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-enterprise-server-2025.3-SNAPSHOT" - }, { - "group" : "clsx", - "name" : "clsx-1.1.1.tgz", - "version" : "1.1.1", - "description" : "A tiny (228B) utility for constructing className strings conditionally.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "98b3134f9abbdf23b2663491ace13c5c03a73188" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Luke Edwards <luke.edwards05@gmail.com> (lukeed.com),Copyright Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)", - "purl" : "pkg:npm/clsx@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/lukeed/clsx#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "148237de-36fa-4419-9ae4-62475b16e7e3" - } ], - "type" : "library", - "bom-ref" : "clsx-1.1.1.tgz" - }, { - "group" : "com.fasterxml.jackson", - "name" : "jackson-bom-2.18.3.pom", - "version" : "2.18.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2185e4c0661969016b3ed6b4206163c45636f8c6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d1223de-ddd1-44c9-a9f8-e6ab03db6691" - } ], - "type" : "library", - "bom-ref" : "jackson-bom-2.18.3.pom" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-checks-1.9.0.4841.jar", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b401c6666eb50fb40eb559461ba11b47b4bad5aa" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e7090819-bb03-44d1-a5c1-44a3aa12b1aa" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-checks-1.9.0.4841.jar" - }, { - "group" : "@emotion/react", - "name" : "react-11.11.4.tgz", - "version" : "11.11.4", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3a829cac25c1f00e126408fab7f891f00ecc3c1d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/react@11.11.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "489edb1d-7c54-44a7-9bd3-8592b37516f8" - } ], - "type" : "library", - "bom-ref" : "react-11.11.4.tgz-2" - }, { - "group" : "isexe", - "name" : "isexe-2.0.0.tgz", - "version" : "2.0.0", - "description" : "Minimal module to check if a file is executable.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright Isaac Z. Schlueter and Contributors", - "purl" : "pkg:npm/isexe@2.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/isaacs/isexe#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2fc3a0d2-db8f-4b10-b593-0b522e62272b" - } ], - "type" : "library", - "bom-ref" : "isexe-2.0.0.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "license-common-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "license-common-2025.3-SNAPSHOT" - }, { - "group" : "org.springframework", - "name" : "spring-jcl-6.1.13.jar", - "version" : "6.1.13", - "description" : "Spring Commons Logging Bridge", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "37291ff008a66a9dbf2c98e11bd468cfadaa7ebc" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2002-2024 Pivotal, Inc,Copyright 2006-2019 Joe Walnes,Copyright 2000-2011 INRIA,Copyright 1999-2009 OW2 Consortium", - "purl" : "pkg:maven/org.springframework/spring-jcl@6.1.13", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a143ccc9-5312-4f48-bb2b-ed930be08178" - } ], - "type" : "library", - "bom-ref" : "spring-jcl-6.1.13.jar" - }, { - "group" : "@remix-run/router", - "name" : "router-1.19.2.tgz", - "version" : "1.19.2", - "description" : "Nested/Data-driven/Framework-agnostic Routing", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0c896535473291cb41f152c180bedd5680a3b273" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2020-2021 Remix Software Inc,Copyright 2015-2019 React Training LLC,Copyright 2022-2023 Shopify Inc", - "purl" : "pkg:npm/%40remix-run/router@1.19.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/remix-run/react-router#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@remix-run/router/-/router-1.19.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c628ae7a-15e8-4874-84de-71f7de10d637" - } ], - "type" : "library", - "bom-ref" : "router-1.19.2.tgz" - }, { - "group" : "org.sonarsource.sslr", - "name" : "sslr-core-1.24.0.633.jar", - "version" : "1.24.0.633", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f2b17ad23d5cd2533c01b9cb3332dae18d9e1521" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.sslr/sslr-core@1.24.0.633?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ee2cc5f7-1681-4249-818d-c692483eb583" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sslr-core-1.24.0.633.jar-2" - }, { - "group" : "org.sonarsource.sslr", - "name" : "sslr-core-1.24.0.633.jar", - "version" : "1.24.0.633", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f2b17ad23d5cd2533c01b9cb3332dae18d9e1521" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.sslr/sslr-core@1.24.0.633?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ee2cc5f7-1681-4249-818d-c692483eb583" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sslr-core-1.24.0.633.jar-3" - }, { - "group" : "com.sonarsource.pli", - "name" : "sonar-pli-plugin-1.16.0.5325.sonar-plugin", - "version" : "1.16.0.5325", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7fa8762a103222a7c197ba4654765530a1b01b44" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7080deda-4eb3-4694-9083-abe555334127" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-pli-plugin-1.16.0.5325.sonar-plugin" - }, { - "group" : "@radix-ui/react-navigation-menu", - "name" : "react-navigation-menu-1.2.5.tgz", - "version" : "1.2.5", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c882e2067f1101a9a5f18e05b73b68b2e158a272" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-navigation-menu@1.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cfe84eaf-9d04-4ea9-8135-ae5a8740839f" - } ], - "type" : "library", - "bom-ref" : "react-navigation-menu-1.2.5.tgz" - }, { - "group" : "d3-dispatch", - "name" : "d3-dispatch-3.0.1.tgz", - "version" : "3.0.1", - "description" : "Register named callbacks and call them with arguments.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5fc75284e9c2375c36c839411a0cf550cbfc4d5e" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock,Copyright 2010-2021 Mike Bostock", - "purl" : "pkg:npm/d3-dispatch@3.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-dispatch/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "43bd30c0-42c1-407d-b2f5-055c643eebd3" - } ], - "type" : "library", - "bom-ref" : "d3-dispatch-3.0.1.tgz" - }, { - "group" : "lines-and-columns", - "name" : "lines-and-columns-1.2.4.tgz", - "version" : "1.2.4", - "description" : "Maps lines and columns to character offsets and back.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "eca284f75d2965079309dc0ad9255abb2ebc1632" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Brian Donovan", - "purl" : "pkg:npm/lines-and-columns@1.2.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/eventualbuddha/lines-and-columns#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "99a0e384-47c5-49b4-87cc-37f48b8d5bf8" - } ], - "type" : "library", - "bom-ref" : "lines-and-columns-1.2.4.tgz" - }, { - "group" : "react-style-singleton", - "name" : "react-style-singleton-2.2.3.tgz", - "version" : "2.2.3", - "description" : "Just create a single stylesheet...", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4265608be69a4d70cfe3047f2c6c88b2c3ace388" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Anton Korzunov", - "purl" : "pkg:npm/react-style-singleton@2.2.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/react-style-singleton#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1c362987-72d0-4e17-8a65-eb5659fa40df" - } ], - "type" : "library", - "bom-ref" : "react-style-singleton-2.2.3.tgz" - }, { - "group" : "@types/react", - "name" : "react-18.2.55.tgz", - "version" : "18.2.55", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "38141821b7084404b5013742bc4ae08e44da7a67" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/react@18.2.55", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f846f3f0-de95-40cc-9acb-f89f3e58c5a6" - } ], - "type" : "library", - "bom-ref" : "react-18.2.55.tgz" - }, { - "group" : "memoize-one", - "name" : "memoize-one-6.0.0.tgz", - "version" : "6.0.0", - "description" : "A memoization library which only remembers the latest invocation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b2591b871ed82948aee4727dc6abceeeac8c1045" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2019 Alexander Reardon,Copyright 2019 Alexander Reardon", - "purl" : "pkg:npm/memoize-one@6.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/alexreardon/memoize-one#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9935797b-b9f4-4dc2-b595-c21b2dd5a593" - } ], - "type" : "library", - "bom-ref" : "memoize-one-6.0.0.tgz" - }, { - "group" : "com.jcraft", - "name" : "jsch.agentproxy.svnkit-trilead-ssh2-0.0.9.jar", - "version" : "0.0.9", - "description" : "a proxy to ssh-agent and Pageant in Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3011858150f238b6159983c39418aaa8fa1ada96" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2011-2012 Atsuhiko Yamanaka, JCraft,Inc", - "purl" : "pkg:maven/com.jcraft/jsch.agentproxy.svnkit-trilead-ssh2@0.0.9?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.jcraft.com/" - }, { - "type" : "distribution", - "url" : "http://www.jcraft.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9dbaf64d-5767-4a5b-8206-533c08efc273" - } ], - "type" : "library", - "bom-ref" : "jsch.agentproxy.svnkit-trilead-ssh2-0.0.9.jar" - }, { - "group" : "com.sonarsource.cobol", - "name" : "cobol-checks-5.8.1.8428.jar", - "version" : "5.8.1.8428", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "cb6a137bfdc6c2147865bb951fe76cfc6a984f20" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "10f7874b-01df-43fe-901c-fc756857025e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "cobol-checks-5.8.1.8428.jar" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-misc-8.11.3.jar", - "version" : "8.11.3", - "description" : "Miscellaneous Lucene extensions", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4bd3e1dbb5847fac7a50d9b585e422c9023827f8" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2001 Dr Martin Porter,Copyright 1999-2010 International Business Machines,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright © 2003,,Copyright 2001-2021 The Apache Software Foundation,Copyright 2001-2009 Anders Moeller,Copyright 2001-2004 Copyright,Copyright 2007-2011 Dawid Weiss,Copyright 2002 Richard Boulton,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 1995-2008 International Business Machines Corporation and others,Copyright 2006 Dawid Weiss,The Apache Software Foundation,Copyright 2009 by www.imdict.net,Copyright 2011-2016 Yann Collet", - "purl" : "pkg:maven/org.apache.lucene/lucene-misc@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fe8c2735-34c9-4ab4-a7d9-afa54e53a913" - } ], - "type" : "library", - "bom-ref" : "lucene-misc-8.11.3.jar" - }, { - "group" : "emoji-regex", - "name" : "emoji-regex-9.2.2.tgz", - "version" : "9.2.2", - "description" : "A regular expression to match all Emoji-only symbols as per the Unicode Standard.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Mathias Bynens <https://mathiasbynens.be/>,Copyright Mathias Bynens <https://mathiasbynens.be/>", - "purl" : "pkg:npm/emoji-regex@9.2.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://mths.be/emoji-regex" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "a37f3882-2602-4303-9862-7e03f8ba5b0c" - } ], - "type" : "library", - "bom-ref" : "emoji-regex-9.2.2.tgz" - }, { - "group" : "jakarta.inject", - "name" : "jakarta.inject-api-2.0.1.jar", - "version" : "2.0.1", - "description" : "Jakarta Dependency Injection", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4c28afe1991a941d7702fe1362c365f0a8641d1e" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/jakarta.inject/jakarta.inject-api@2.0.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.eclipse.org" - }, { - "type" : "distribution", - "url" : "https://www.eclipse.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "37e83699-14db-4753-b448-ce4efbe177f3" - } ], - "type" : "library", - "bom-ref" : "jakarta.inject-api-2.0.1.jar" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-2.1.10.jar", - "version" : "2.1.10", - "description" : "Kotlin Standard Library", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d3028429e7151d7a7c1a0d63a4f60eac86a87b91" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@2.1.10", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3d6ec45-e3d4-445c-9829-d4435615c05f" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-2.1.10.jar" - }, { - "group" : "react-lifecycles-compat", - "name" : "react-lifecycles-compat-3.0.4.tgz", - "version" : "3.0.4", - "description" : "Backwards compatibility polyfill for React class components", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4f1a273afdfc8f3488a8c516bfda78f872352362" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/react-lifecycles-compat@3.0.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/reactjs/react-lifecycles-compat#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "860633d8-e316-4daa-b6a6-f63360812070" - } ], - "type" : "library", - "bom-ref" : "react-lifecycles-compat-3.0.4.tgz" - }, { - "group" : "org.apache.httpcomponents", - "name" : "httpasyncclient-4.1.4.jar", - "version" : "4.1.4", - "description" : "Apache HttpComponents AsyncClient", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f3a3240681faae3fa46b573a4c7e50cec9db0d86" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2010-2018 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.httpcomponents/httpasyncclient@4.1.4?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.apache.org/" - }, { - "type" : "distribution", - "url" : "http://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b041e051-e816-464d-9972-5d74220aa70f" - } ], - "type" : "library", - "bom-ref" : "httpasyncclient-4.1.4.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "license-api-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "license-api-2025.3-SNAPSHOT" - }, { - "group" : "com.sonarsource.swift", - "name" : "swift-frontend-4.13.1.8101.jar", - "version" : "4.13.1.8101", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2267549ba12fb4ff86b0b6862c06cc90d0705bed" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4c38cdad-43f8-4073-826e-a7ef075ee7f2" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "swift-frontend-4.13.1.8101.jar" - }, { - "group" : "org.spdx", - "name" : "spdx-jackson-store-2.0.0-RC2.jar", - "version" : "2.0.0-RC2", - "description" : "Storage for SPDX documents utilizing Jackson Databind. This store supports serializing and deserializing files in JSON, YAML and XML formats.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "65d9277e8638ff510269dd677797e2556bc28c2c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.spdx/spdx-jackson-store@2.0.0-RC2", - "externalReferences" : [ { - "type" : "website", - "url" : "http://spdx.org" - }, { - "type" : "distribution", - "url" : "http://spdx.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d0e5cb8-1791-4a41-a6e3-6fe5382064af" - } ], - "type" : "library", - "bom-ref" : "spdx-jackson-store-2.0.0-RC2.jar-4" - }, { - "group" : "d3-interpolate", - "name" : "d3-interpolate-3.0.1.tgz", - "version" : "3.0.1", - "description" : "Interpolate numbers, colors, strings, arrays, objects, whatever!", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock,Copyright 2010-2021 Mike Bostock", - "purl" : "pkg:npm/d3-interpolate@3.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-interpolate/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "27dbb633-fa80-43df-a0d3-844ecee6aea4" - } ], - "type" : "library", - "bom-ref" : "d3-interpolate-3.0.1.tgz" - }, { - "group" : "org.opensaml", - "name" : "opensaml-xmlsec-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "XML Security API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a7467d9618a617dde60745aaf89d0c457ac0caf8" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-xmlsec-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0762b33b-6689-4e72-9891-270bcfe693b2" - } ], - "type" : "library", - "bom-ref" : "opensaml-xmlsec-api-4.3.2.jar-3" - }, { - "group" : "org.sonarsource.xml", - "name" : "sonar-xml-plugin-2.12.0.5749.jar", - "version" : "2.12.0.5749", - "description" : "Code Analyzer for XML", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a0beb90c9e62cca0a2320cd243c6e3b4335c19b8" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright 1999 Sun Microsystems., http://www.sun.com,SonarSource,Copyright 1999-2009 The Apache Software Foundation", - "purl" : "pkg:maven/org.sonarsource.xml/sonar-xml-plugin@2.12.0.5749", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/xml.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/xml.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "315d51be-86ad-47f0-92f9-dfcfe87492c1" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-xml-plugin-2.12.0.5749.jar-2" - }, { - "group" : "org.spdx", - "name" : "spdx-jackson-store-2.0.0-RC2.jar", - "version" : "2.0.0-RC2", - "description" : "Storage for SPDX documents utilizing Jackson Databind. This store supports serializing and deserializing files in JSON, YAML and XML formats.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "65d9277e8638ff510269dd677797e2556bc28c2c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.spdx/spdx-jackson-store@2.0.0-RC2", - "externalReferences" : [ { - "type" : "website", - "url" : "http://spdx.org" - }, { - "type" : "distribution", - "url" : "http://spdx.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d0e5cb8-1791-4a41-a6e3-6fe5382064af" - } ], - "type" : "library", - "bom-ref" : "spdx-jackson-store-2.0.0-RC2.jar-2" - }, { - "group" : "org.spdx", - "name" : "spdx-jackson-store-2.0.0-RC2.jar", - "version" : "2.0.0-RC2", - "description" : "Storage for SPDX documents utilizing Jackson Databind. This store supports serializing and deserializing files in JSON, YAML and XML formats.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "65d9277e8638ff510269dd677797e2556bc28c2c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.spdx/spdx-jackson-store@2.0.0-RC2", - "externalReferences" : [ { - "type" : "website", - "url" : "http://spdx.org" - }, { - "type" : "distribution", - "url" : "http://spdx.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2d0e5cb8-1791-4a41-a6e3-6fe5382064af" - } ], - "type" : "library", - "bom-ref" : "spdx-jackson-store-2.0.0-RC2.jar-3" - }, { - "group" : "@material-symbols/font-400", - "name" : "font-400-0.28.1.tgz", - "version" : "0.28.1", - "description" : "Latest variable icon fonts with weight 400 for Material Symbols.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "611d50bc032c528fa9bdbc29404a7a0c1b7c0582" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40material-symbols/font-400@0.28.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://marella.github.io/material-symbols/demo/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@material-symbols/font-400/-/font-400-0.28.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d5dcd0de-6c83-42c2-9e40-7a3708f67186" - } ], - "type" : "library", - "bom-ref" : "font-400-0.28.1.tgz" - }, { - "group" : "warning", - "name" : "warning-4.0.3.tgz", - "version" : "4.0.3", - "description" : "A mirror of Facebook's Warning", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/warning@4.0.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/BerkeleyTrue/warning" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "aac60be2-8810-47d9-aaf6-b946851df253" - } ], - "type" : "library", - "bom-ref" : "warning-4.0.3.tgz" - }, { - "group" : "@radix-ui/react-use-layout-effect", - "name" : "react-use-layout-effect-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3c2c8ce04827b26a39e442ff4888d9212268bd27" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-use-layout-effect@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "21421c5e-e1ac-492a-ade7-8efe95fe28e0" - } ], - "type" : "library", - "bom-ref" : "react-use-layout-effect-1.1.0.tgz" - }, { - "group" : "@radix-ui/react-menu", - "name" : "react-menu-2.1.1.tgz", - "version" : "2.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bd623ace0e1ae1ac78023a505fec0541d59fb346" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-menu@2.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2508e022-296b-4a4e-be35-afecdc401265" - } ], - "type" : "library", - "bom-ref" : "react-menu-2.1.1.tgz" - }, { - "group" : "org.sonarsource.dotnet", - "name" : "sonar-csharp-plugin-10.7.0.110445.jar", - "version" : "10.7.0.110445", - "description" : "Code Analyzer for C#", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "844b7fd7376830569c362a9b7eac594b909df8a5" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 1999-2009 The Apache Software Foundation,Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,", - "purl" : "pkg:maven/org.sonarsource.dotnet/sonar-csharp-plugin@10.7.0.110445", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/csharp.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/csharp.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "acb97dd7-17b1-427c-8639-afc4a01d4755" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-csharp-plugin-10.7.0.110445.jar" - }, { - "group" : "org.apache.httpcomponents", - "name" : "httpcore-4.4.16.jar", - "version" : "4.4.16", - "description" : "Apache HttpComponents Core (blocking I/O)", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "51cf043c87253c9f58b539c9f7e44c8894223850" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2005-2022 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.httpcomponents/httpcore@4.4.16?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.apache.org/" - }, { - "type" : "distribution", - "url" : "http://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a90e038c-435a-419b-828b-1ba29afe1b6d" - } ], - "type" : "library", - "bom-ref" : "httpcore-4.4.16.jar" - }, { - "group" : "org.sonarsource.jacoco", - "name" : "sonar-jacoco-plugin-1.3.0.1538.jar", - "version" : "1.3.0.1538", - "description" : "SonarQube plugin to import JaCoCo XML coverage reports", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "955a3a1609cbe43f5c1d4cc59b6eae9884b78c48" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.sonarsource.jacoco/sonar-jacoco-plugin@1.3.0.1538?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b34940a4-4ba0-48f6-b287-6cc254d5df69" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-jacoco-plugin-1.3.0.1538.jar" - }, { - "group" : "com.google.code.gson", - "name" : "gson-2.12.1.jar", - "version" : "2.12.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4e773a317740b83b43cfc3d652962856041697cb" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2008 Google LLC", - "purl" : "pkg:maven/com.google.code.gson/gson@2.12.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/google/gson" - }, { - "type" : "distribution", - "url" : "https://github.com/google/gson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e3c6a116-6677-401e-bdae-2a305a4e17fe" - } ], - "type" : "library", - "bom-ref" : "gson-2.12.1.jar" - }, { - "group" : "org.springframework", - "name" : "spring-aop-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring AOP", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9f436be65bf45ee8643d93e6823d6c81e8f9f91a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2006-2019 Joe Walnes,Copyright 2002-2025 Pivotal, Inc,Copyright 2000-2011 INRIA,Copyright 1999-2009 OW2 Consortium", - "purl" : "pkg:maven/org.springframework/spring-aop@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7c3a6bb4-dad2-49b1-8eaa-b4649e322dc0" - } ], - "type" : "library", - "bom-ref" : "spring-aop-6.2.5.jar" - }, { - "group" : "minipass", - "name" : "minipass-7.1.2.tgz", - "version" : "7.1.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "93a9626ce5e5e66bd4db86849e7515e92340a707" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2017-2023 npm, Inc", - "purl" : "pkg:npm/minipass@7.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/isaacs/minipass#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cf803591-c3a2-4757-b173-b7e6697a7ebe" - } ], - "type" : "library", - "bom-ref" : "minipass-7.1.2.tgz" - }, { - "group" : "@emotion/serialize", - "name" : "serialize-1.1.1.tgz", - "version" : "1.1.1", - "description" : "serialization utils for emotion", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0595701b1902feded8a96d293b26be3f5c1a5cf0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/serialize@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "028eaf93-d5af-4c5e-9ca2-c40675b7db4d" - } ], - "type" : "library", - "bom-ref" : "serialize-1.1.1.tgz" - }, { - "group" : "resolve-from", - "name" : "resolve-from-4.0.0.tgz", - "version" : "4.0.0", - "description" : "Resolve the path of a module like `require.resolve()` but from a given path", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus,Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/resolve-from@4.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/resolve-from#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "befca984-a374-4011-8e72-97a16a7890b3" - } ], - "type" : "library", - "bom-ref" : "resolve-from-4.0.0.tgz" - }, { - "group" : "@radix-ui/primitive", - "name" : "primitive-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fc169732d755c7fbad33ba8d0cd7fd10c90dc8e3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/primitive@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "78f82d2a-76ad-47e1-966a-a3ac0a018b73" - } ], - "type" : "library", - "bom-ref" : "primitive-1.1.1.tgz" - }, { - "group" : "com.sonarsource.cobol", - "name" : "cobol-testing-harness-5.8.1.8428.jar", - "version" : "5.8.1.8428", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a24bea154671a7559f340e6637bd5761eac9314" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "743a0f00-22ce-4891-ad69-b141a405a852" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "cobol-testing-harness-5.8.1.8428.jar" - }, { - "group" : "json-parse-even-better-errors", - "name" : "json-parse-even-better-errors-2.3.1.tgz", - "version" : "2.3.1", - "description" : "JSON.parse with context information on error", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7c47805a94319928e05777405dc12e1f7a4ee02d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright npm, Inc,Copyright 2017 Kat Marchán", - "purl" : "pkg:npm/json-parse-even-better-errors@2.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/npm/json-parse-even-better-errors#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "41aa739f-aedb-4869-b149-f43d8dba6d68" - } ], - "type" : "library", - "bom-ref" : "json-parse-even-better-errors-2.3.1.tgz" - }, { - "group" : "org.sonarsource.slang", - "name" : "sonar-ruby-plugin-1.18.0.234.jar", - "version" : "1.18.0.234", - "description" : "Code Analyzer for Ruby", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "099c8f449044927371756baf7ffa0e521e1d9ab6" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright 1995-2013 Jean-loup Gailly and Mark Adler,Copyright 2003-2004 Jim Weirich,Copyright 2007-2018 The JRuby project,Copyright 2008-2009 Petr Kobalicek <kobalicek.petr@gmail.com>,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,Copyright 1993-2013 Yukihiro Matsumoto,Copyright 1993-2013 Yukihiro Matsumoto,Copyright 2000-2011 INRIA,Copyright 2010 Wayne Meissner,Copyright 2002-2012 the original author or authors,Copyright 2000-2011 ymnk,Copyright 2009 Aaron Patterson, et al,Copyright 2000-2006 The Legion Of The Bouncy Castle", - "purl" : "pkg:maven/org.sonarsource.slang/sonar-ruby-plugin@1.18.0.234", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarqube.org/" - }, { - "type" : "distribution", - "url" : "http://www.sonarqube.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "42dd0464-d7d7-430e-9246-d87f2dc0cc55" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-ruby-plugin-1.18.0.234.jar" - }, { - "group" : "chalk", - "name" : "chalk-2.4.2.tgz", - "version" : "2.4.2", - "description" : "Terminal string styling done right", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "cd42541677a54333cf541a49108c1432b44c9424" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/chalk@2.4.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/chalk/chalk#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e46b53ec-9e72-4962-be99-5cf9312dc510" - } ], - "type" : "library", - "bom-ref" : "chalk-2.4.2.tgz" - }, { - "group" : "strip-ansi", - "name" : "strip-ansi-7.1.0.tgz", - "version" : "7.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d5b6568ca689d8561370b0707685d22434faff45" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/strip-ansi@7.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/chalk/strip-ansi#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "fe999348-8918-494b-a36d-2ff2a09b4890" - } ], - "type" : "library", - "bom-ref" : "strip-ansi-7.1.0.tgz" - }, { - "group" : "com.nimbusds", - "name" : "lang-tag-1.7.jar", - "version" : "1.7", - "description" : "Java implementation of \"Tags for Identifying Languages\" (RFC 5646)", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "97c73ecd70bc7e8eefb26c5eea84f251a63f1031" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.nimbusds/lang-tag@1.7?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://connect2id.com/" - }, { - "type" : "distribution", - "url" : "https://connect2id.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8bb7c85a-5eba-4c88-a05a-7f98d93ab243" - } ], - "type" : "library", - "bom-ref" : "lang-tag-1.7.jar" - }, { - "group" : "com.sonarsource.dbd", - "name" : "ir-1.36.1.13250.jar", - "version" : "1.36.1.13250", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "64f01bd0b3b6afbbb637cff0b62b447217cdb14a" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0c504c56-1657-46cb-856f-1d5b643117c6" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "ir-1.36.1.13250.jar-2" - }, { - "group" : "com.nimbusds", - "name" : "oauth2-oidc-sdk-11.23.jar", - "version" : "11.23", - "description" : "OAuth 2.0 SDK with OpenID Connection extensions for developing client and server applications.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "50aa55ffb446c34a9008279810fd780a42eba611" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.nimbusds/oauth2-oidc-sdk@11.23", - "externalReferences" : [ { - "type" : "website", - "url" : "https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions" - }, { - "type" : "distribution", - "url" : "https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a5ebcde3-c7ee-4274-98c8-e5bf664b7a16" - } ], - "type" : "library", - "bom-ref" : "oauth2-oidc-sdk-11.23.jar" - }, { - "group" : "@emotion/serialize", - "name" : "serialize-1.1.2.tgz", - "version" : "1.1.2", - "description" : "serialization utils for emotion", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/serialize@1.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "41b440a8-f03d-43c0-bd03-f5d763c28d59" - } ], - "type" : "library", - "bom-ref" : "serialize-1.1.2.tgz" - }, { - "group" : "com.fasterxml.jackson.dataformat", - "name" : "jackson-dataformat-cbor-2.18.3.jar", - "version" : "2.18.3", - "description" : "Support for reading and writing Concise Binary Object Representation ([CBOR](https://www.rfc-editor.org/info/rfc7049) encoded data using Jackson abstractions (streaming API, data binding, tree model)", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "af8064ba5b2afaf0920943fbfeb6b57f56aad6d8" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.dataformat/jackson-dataformat-cbor@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-dataformats-binary" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-dataformats-binary" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e73cc7a1-45fa-4b57-bc61-883bb84fa844" - } ], - "type" : "library", - "bom-ref" : "jackson-dataformat-cbor-2.18.3.jar" - }, { - "group" : "org.apache.tomcat.embed", - "name" : "tomcat-embed-el-9.0.98.jar", - "version" : "9.0.98", - "description" : "Core Tomcat implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "be2b58fdc2d5eacd54c1e2bfc8613467006d8610" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.tomcat.embed/tomcat-embed-el@9.0.98", - "externalReferences" : [ { - "type" : "website", - "url" : "https://tomcat.apache.org/" - }, { - "type" : "distribution", - "url" : "https://tomcat.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "cd604f26-0b96-4fd3-8dad-4e4b04595d9e" - } ], - "type" : "library", - "bom-ref" : "tomcat-embed-el-9.0.98.jar" - }, { - "group" : "com.fasterxml.jackson.dataformat", - "name" : "jackson-dataformat-smile-2.18.3.jar", - "version" : "2.18.3", - "description" : "Support for reading and writing Smile (\"binary JSON\") encoded data using Jackson abstractions (streaming API, data binding, tree model)", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "082239b024b0f030babd2164ea5f830430d09058" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.dataformat/jackson-dataformat-smile@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-dataformats-binary" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-dataformats-binary" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6c9b114f-da4e-42b6-ba0c-56f2c2032e24" - } ], - "type" : "library", - "bom-ref" : "jackson-dataformat-smile-2.18.3.jar" - }, { - "group" : "string-width", - "name" : "string-width-5.1.2.tgz", - "version" : "5.1.2", - "description" : "Get the visual width of a string - the number of columns required to display it", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "14f8daec6d81e7221d2a357e668cab73bdbca794" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/string-width@5.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/string-width#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ca5e9653-2f42-45ea-b52c-33bfd8349a90" - } ], - "type" : "library", - "bom-ref" : "string-width-5.1.2.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "webapp-assets-2025.3.0.14738.jar", - "version" : "2025.3.0.14738", - "description" : "SonarQube Community Build Web App", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1fe00c310514522447d3227c79cd98e9ecac09de" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - }, { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - }, { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - }, { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2017 Menglin \"Mark\" Xu <mark@remarkablemark.org>,Copyright 2016 Titus Wormer <tituswormer@gmail.com>,Copyright 2020 Titus Wormer <tituswormer@gmail.com>,Copyright 2015 Titus Wormer <mailto:tituswormer@gmail.com>,Copyright 2022-2023 Shopify Inc,Copyright 2014 Titus Wormer <tituswormer@gmail.com>,Copyright 2015-2019 React Training LLC,Copyright 2023 Titus Wormer <tituswormer@gmail.com>,Copyright 2019 highlight.js,Copyright 2021 Sasha Koss and Lesha Koss https://kossnocorp.mit-license.org,Copyright 2021 Andrea Giammarchi, @WebReflection,Copyright 2012 TJ Holowaychuk <tj@vision-media.ca>,Copyright 2017 Titus Wormer <tituswormer@gmail.com>,Copyright 2010-2021 Mike Bostock,Copyright 2015 Titus Wormer <tituswormer@gmail.com>,Copyright 2021 Titus Wormer <tituswormer@gmail.com>,Copyright 2006 Ivan Sagalaev,Copyright Facebook, Inc. and its affiliates,License Copyright:,Copyright 2020-2021 Remix Software Inc,Copyright 2010-2023 Mike Bostock,Copyright 2014 Stefan Thomas", - "purl" : "pkg:maven/org.sonarsource.sonarqube/webapp-assets@2025.3.0.14738", - "externalReferences" : [ { - "type" : "website", - "url" : "https://docs.sonarsource.com/sonarqube-community-build" - }, { - "type" : "distribution", - "url" : "https://docs.sonarsource.com/sonarqube-community-build" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "33c50c60-cd1b-4b3b-9e92-dc434464809a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "webapp-assets-2025.3.0.14738.jar" - }, { - "group" : "@emotion/cache", - "name" : "cache-11.7.1.tgz", - "version" : "11.7.1", - "description" : "emotion's cache", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "08d080e396a42e0037848214e8aa7bf879065539" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/cache@11.7.1", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "840363d5-dc17-4475-8577-68426b90c624" - } ], - "type" : "library", - "bom-ref" : "cache-11.7.1.tgz-2" - }, { - "group" : "io.prometheus", - "name" : "simpleclient_servlet_common-0.16.0.jar", - "version" : "0.16.0", - "description" : "HTTP servlet exporter for the simpleclient.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1d0d74b3506a0b6ac7b5f63735d674a789ffa6bb" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2015 The Prometheus Authors", - "purl" : "pkg:maven/io.prometheus/simpleclient_servlet_common@0.16.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://github.com/prometheus/client_java" - }, { - "type" : "distribution", - "url" : "http://github.com/prometheus/client_java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f02da16f-7f20-4f92-80ad-dc6867794352" - } ], - "type" : "library", - "bom-ref" : "simpleclient-servlet-common-0.16.0.jar" - }, { - "group" : "stylis", - "name" : "stylis-4.2.0.tgz", - "version" : "4.2.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "79daee0208964c8fe695a42fcffcac633a211a51" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2016 Sultan Tarimo", - "purl" : "pkg:npm/stylis@4.2.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/thysultan/stylis.js" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f2902f36-1ea1-4f64-ad09-303b592b5ae3" - } ], - "type" : "library", - "bom-ref" : "stylis-4.2.0.tgz" - }, { - "group" : "valid-url", - "name" : "valid-url-1.0.9.tgz", - "version" : "1.0.9", - "description" : "URI validation functions", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1c14479b40f1397a75782f115e4086447433a200" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Odysseas Tsatalos and oDesk Corporation", - "purl" : "pkg:npm/valid-url@1.0.9", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "8ae599b0-4996-4203-b795-1a2219574288" - } ], - "type" : "library", - "bom-ref" : "valid-url-1.0.9.tgz" - }, { - "group" : "org.assertj", - "name" : "assertj-core-3.27.3.jar", - "version" : "3.27.3", - "description" : "Rich and fluent assertions for testing in Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "31f5d58a202bd5df4993fb10fa2cffd610c20d6f" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.assertj/assertj-core@3.27.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://assertj.github.io/doc/#assertj-core" - }, { - "type" : "distribution", - "url" : "https://assertj.github.io/doc/#assertj-core" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3badfb0e-e4f1-48e5-a961-fa22982fbadc" - } ], - "type" : "library", - "bom-ref" : "assertj-core-3.27.3.jar" - }, { - "group" : "org.tukaani", - "name" : "xz-1.10.jar", - "version" : "1.10", - "description" : "XZ data compression", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1be8166f89e035a56c6bfc67dbc423996fe577e2" - } ], - "licenses" : [ { - "license" : { - "id" : "0BSD", - "url" : "https://spdx.org/licenses/0BSD.html" - } - } ], - "copyright" : "Copyright Text: The XZ for Java authors and contributors,Copyright The XZ for Java authors and contributors", - "purl" : "pkg:maven/org.tukaani/xz@1.10", - "externalReferences" : [ { - "type" : "website", - "url" : "https://tukaani.org/xz/java.html" - }, { - "type" : "distribution", - "url" : "https://tukaani.org/xz/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "501a65e2-7003-4de4-b1d7-8eeb550d5baa" - } ], - "type" : "library", - "bom-ref" : "xz-1.10.jar" - }, { - "group" : "org.springframework.security", - "name" : "spring-security-web-6.4.4.jar", - "version" : "6.4.4", - "description" : "Spring Security", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b33b3eba22ef5242caef0cf3c0575b0cc303519b" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.springframework.security/spring-security-web@6.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-security" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-security" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2b27b60d-039c-4601-bdab-2c941e4d51a4" - } ], - "type" : "library", - "bom-ref" : "spring-security-web-6.4.4.jar" - }, { - "group" : "stylis", - "name" : "stylis-4.1.3.tgz", - "version" : "4.1.3", - "description" : "A Light–weight CSS Preprocessor", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fd2fbe79f5fed17c55269e16ed8da14c84d069f7" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2016 Sultan Tarimo", - "purl" : "pkg:npm/stylis@4.1.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/thysultan/stylis.js" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4d670d32-73c4-43ec-b618-44f0af7ff40b" - } ], - "type" : "library", - "bom-ref" : "stylis-4.1.3.tgz" - }, { - "group" : "react-router-dom", - "name" : "react-router-dom-6.26.2.tgz", - "version" : "6.26.2", - "description" : "Declarative routing for React web applications", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a6e3b0cbd6bfd508e42b9342099d015a0ac59680" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2022-2023 Shopify Inc,Copyright 2015-2019 React Training LLC,Copyright 2020-2021 Remix Software Inc", - "purl" : "pkg:npm/react-router-dom@6.26.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/remix-run/react-router#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "0c8dc82a-e9aa-496b-8360-0cc223ecbe1d" - } ], - "type" : "library", - "bom-ref" : "react-router-dom-6.26.2.tgz" - }, { - "group" : "com.jcraft", - "name" : "jsch.agentproxy.sshagent-0.0.9.jar", - "version" : "0.0.9", - "description" : "a proxy to ssh-agent and Pageant in Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ecca436463287682d16c3fa628bd7cca426cf6f" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2011-2012 Atsuhiko Yamanaka, JCraft,Inc", - "purl" : "pkg:maven/com.jcraft/jsch.agentproxy.sshagent@0.0.9?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.jcraft.com/" - }, { - "type" : "distribution", - "url" : "http://www.jcraft.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e68fd717-b7d3-42a1-877d-3439d4109ab4" - } ], - "type" : "library", - "bom-ref" : "jsch.agentproxy.sshagent-0.0.9.jar" - }, { - "group" : "org.opensaml", - "name" : "opensaml-saml-impl-4.3.2.jar", - "version" : "4.3.2", - "description" : "SAML Provider Implementations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ae0c3b86989f780570bae84f32785e9e049b9b0" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-saml-impl@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8891aeb2-3483-4b6f-80c0-1f46add30ba2" - } ], - "type" : "library", - "bom-ref" : "opensaml-saml-impl-4.3.2.jar" - }, { - "group" : "com.sonarsource.cobol", - "name" : "cobol-squid-5.8.1.8428.jar", - "version" : "5.8.1.8428", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1e50d688567a34daddcb9ec0fcec5349f7871f54" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "197edc4a-59a0-4102-8fbe-d33ef3645fff" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "cobol-squid-5.8.1.8428.jar" - }, { - "group" : "jakarta.xml.bind", - "name" : "jakarta.xml.bind-api-3.0.1.jar", - "version" : "3.0.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5257932df36ff3e4e6de50429dde946490a6a800" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2017-2018 Oracle and/or its affiliates,Copyright 2018-2021 Oracle and/or its affiliates", - "purl" : "pkg:maven/jakarta.xml.bind/jakarta.xml.bind-api@3.0.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.eclipse.org" - }, { - "type" : "distribution", - "url" : "https://www.eclipse.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1f1d6ec1-8159-4879-a7de-6d01b1663ed4" - } ], - "type" : "library", - "bom-ref" : "jakarta.xml.bind-api-3.0.1.jar" - }, { - "group" : "cosmiconfig", - "name" : "cosmiconfig-7.0.1.tgz", - "version" : "7.0.1", - "description" : "Find and load configuration from a package.json property, rc file, or CommonJS module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "714d756522cace867867ccb4474c5d01bbae5d6d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 David Clark,Copyright 2015 David Clark", - "purl" : "pkg:npm/cosmiconfig@7.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/davidtheclark/cosmiconfig#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c120b3f8-1dbd-4709-9cf8-af5dca719688" - } ], - "type" : "library", - "bom-ref" : "cosmiconfig-7.0.1.tgz-2" - }, { - "group" : "react-intl", - "name" : "react-intl-6.7.0.tgz", - "version" : "6.7.0", - "description" : "Internationalize React apps. This library provides React components and an API to format dates, numbers, and strings, including pluralization and handling translations.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e84c20424017004f99e1af4e2cbc098f1eaace2e" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2019 Oath Inc", - "purl" : "pkg:npm/react-intl@6.7.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://formatjs.io/docs/react-intl" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-intl/-/react-intl-6.7.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5c51d313-6f2b-472b-a4db-65159a57f6c6" - } ], - "type" : "library", - "bom-ref" : "react-intl-6.7.0.tgz" - }, { - "group" : "com.sonarsource.security", - "name" : "sonar-security-frontend-commons-11.1.0.35630.jar", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1aee734e7c51037159191f6443ee5ac36ef9b875" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f79cf5da-ac6c-48b4-81d2-727e28570c57" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-security-frontend-commons-11.1.0.35630.jar-2" - }, { - "group" : "argparse", - "name" : "argparse-2.0.1.tgz", - "version" : "2.0.1", - "description" : "CLI arguments parser. Native port of python's argparse.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - } ], - "licenses" : [ { - "license" : { - "id" : "Python-2.0", - "url" : "http://opensource.org/licenses/Python-2.0" - } - } ], - "copyright" : "Copyright (c) null null", - "purl" : "pkg:npm/argparse@2.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/nodeca/argparse#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "bfb7e454-3094-4104-b6bc-f24856c7993f" - } ], - "type" : "library", - "bom-ref" : "argparse-2.0.1.tgz" - }, { - "group" : "tree-changes", - "name" : "tree-changes-0.9.3.tgz", - "version" : "0.9.3", - "description" : "Get changes between two versions of data with similar shape", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "89433ab3b4250c2910d386be1f83912b7144efcc" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2018 Gil Barbara", - "purl" : "pkg:npm/tree-changes@0.9.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/gilbarbara/tree-changes#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/tree-changes/-/tree-changes-0.9.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f0c0ecd5-4d4a-4371-a232-d4c5634b55a0" - } ], - "type" : "library", - "bom-ref" : "tree-changes-0.9.3.tgz" - }, { - "group" : "org.sonarsource.python", - "name" : "python-frontend-5.2.0.20808.jar", - "version" : "5.2.0.20808", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5693da1bcce586eaf0bae98ce7587cc622104ab2" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.python/python-frontend@5.2.0.20808", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ea1d5707-5127-4446-9beb-bc29d80ca436" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "python-frontend-5.2.0.20808.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "backdating-plugin-v1-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "backdating-plugin-v1-2025.3-SNAPSHOT" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-25.4-SNAPSHOT" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-build-tools-1.9.0.4841.jar", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0c86bede915f4719f6fbbdd797b95ba13f6b5701" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b3a77631-f476-49ba-a774-a88007290cc4" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-build-tools-1.9.0.4841.jar" - }, { - "group" : "d3-scale", - "name" : "d3-scale-4.0.2.tgz", - "version" : "4.0.2", - "description" : "Encodings that map abstract data to visual representation.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "82b38e8e8ff7080764f8dcec77bd4be393689396" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2024 Mike Bostock and Observable, Inc.", - "purl" : "pkg:npm/d3-scale@4.0.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-scale/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b2fd8e8a-7a2c-4e52-84f1-eb2d23133c12" - } ], - "type" : "library", - "bom-ref" : "d3-scale-4.0.2.tgz-2" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-2.1.10.jar", - "version" : "2.1.10", - "description" : "Kotlin Standard Library", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d3028429e7151d7a7c1a0d63a4f60eac86a87b91" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@2.1.10", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3d6ec45-e3d4-445c-9829-d4435615c05f" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-2.1.10.jar-2" - }, { - "group" : "com.microsoft.azure", - "name" : "msal4j-1.19.1.jar", - "version" : "1.19.1", - "description" : "Microsoft Authentication Library for Java gives you the ability to obtain tokens from Azure AD v2 (work and school accounts, MSA) and Azure AD B2C, gaining access to Microsoft Cloud API and any other API secured by Microsoft identities", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5a4f38801720f377a3b1827b296a011be036fd42" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.microsoft.azure/msal4j@1.19.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/AzureAD/microsoft-authentication-library-for-java" - }, { - "type" : "distribution", - "url" : "https://github.com/AzureAD/microsoft-authentication-library-for-java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ec550d4e-6428-4f02-9b95-52cf03297542" - } ], - "type" : "library", - "bom-ref" : "msal4j-1.19.1.jar-2" - }, { - "group" : "org.sonarsource.javascript", - "name" : "sonar-javascript-plugin-10.21.1.30825-multi.jar", - "version" : "10.21.1.30825", - "description" : "Code Analyzer for JavaScript/TypeScript/CSS", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4e5d6572ea09d767400a2eada719959ed8d95ac7" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,Copyright 2002-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.sonarsource.javascript/sonar-javascript-plugin@10.21.1.30825", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/javascript.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/javascript.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "27d55ecb-1d79-4d90-a6b7-eb6a29c113da" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-javascript-plugin-10.21.1.30825-multi.jar" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-2.1.10.jar", - "version" : "2.1.10", - "description" : "Kotlin Standard Library", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d3028429e7151d7a7c1a0d63a4f60eac86a87b91" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@2.1.10", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3d6ec45-e3d4-445c-9829-d4435615c05f" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-2.1.10.jar-4" - }, { - "group" : "org.sonarsource.go", - "name" : "sonar-go-plugin-1.21.1.1670.jar", - "version" : "1.21.1.1670", - "description" : "Code Analyzer for Go", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "561b91b816e87e091cb7c502a47bb2c8c3286c63" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,,Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright 1999-2009 The Apache Software Foundation,Copyright 1999-2022 The Apache Software Foundation,Copyright 1999 (c),Copyright 1999 IBM Corporation., http://www.ibm.com", - "purl" : "pkg:maven/org.sonarsource.go/sonar-go-plugin@1.21.1.1670", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarqube.org/" - }, { - "type" : "distribution", - "url" : "http://www.sonarqube.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4cab9489-82b2-4609-8531-e4247f2430f7" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-go-plugin-1.21.1.1670.jar" - }, { - "group" : "@emotion/hash", - "name" : "hash-0.9.2.tgz", - "version" : "0.9.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ff9221b9f58b4dfe61e619a7788734bd63f6898b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright 2016 Kye Hohenberger", - "purl" : "pkg:npm/%40emotion/hash@0.9.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4c9991cd-333f-4d50-8f42-c794e4c47785" - } ], - "type" : "library", - "bom-ref" : "hash-0.9.2.tgz" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-2.1.10.jar", - "version" : "2.1.10", - "description" : "Kotlin Standard Library", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d3028429e7151d7a7c1a0d63a4f60eac86a87b91" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@2.1.10", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3d6ec45-e3d4-445c-9829-d4435615c05f" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-2.1.10.jar-3" - }, { - "group" : "com.github.scribejava", - "name" : "scribejava-java8-8.3.3.jar", - "version" : "8.3.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "32e216f872c4ff6b3a20627d1708794db5761bc0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2010 Pablo Fernandez Permission is hereby granted, free of charge, to any person obtaining a copy of this,Copyright 2010 Pablo Fernandez", - "purl" : "pkg:maven/com.github.scribejava/scribejava-java8@8.3.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d3908429-c573-4aca-b447-0171fdd3a384" - } ], - "type" : "library", - "bom-ref" : "scribejava-java8-8.3.3.jar" - }, { - "group" : "org.springframework", - "name" : "spring-context-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Context", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "237de0c3afca2099ab497cc7464726c02b8ab5c5" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2009 OW2 Consortium,Copyright 2000-2011 INRIA,Copyright 2002-2025 Pivotal, Inc,Copyright 2006-2019 Joe Walnes", - "purl" : "pkg:maven/org.springframework/spring-context@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "683ec1db-b3b2-4865-a481-d5e29c6b74b6" - } ], - "type" : "library", - "bom-ref" : "spring-context-6.2.5.jar-3" - }, { - "group" : "org.springframework", - "name" : "spring-context-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Context", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "237de0c3afca2099ab497cc7464726c02b8ab5c5" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2009 OW2 Consortium,Copyright 2000-2011 INRIA,Copyright 2002-2025 Pivotal, Inc,Copyright 2006-2019 Joe Walnes", - "purl" : "pkg:maven/org.springframework/spring-context@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "683ec1db-b3b2-4865-a481-d5e29c6b74b6" - } ], - "type" : "library", - "bom-ref" : "spring-context-6.2.5.jar-4" - }, { - "group" : "com.sonarsource.swift", - "name" : "sslr-gll-4.13.1.8101.jar", - "version" : "4.13.1.8101", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "37a200913825af3a507b064ca79c1bbc08e841d7" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d1d99e20-6bbc-47c8-999d-c7d579e57b85" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sslr-gll-4.13.1.8101.jar" - }, { - "group" : "org.springframework", - "name" : "spring-context-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Context", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "237de0c3afca2099ab497cc7464726c02b8ab5c5" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2009 OW2 Consortium,Copyright 2000-2011 INRIA,Copyright 2002-2025 Pivotal, Inc,Copyright 2006-2019 Joe Walnes", - "purl" : "pkg:maven/org.springframework/spring-context@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "683ec1db-b3b2-4865-a481-d5e29c6b74b6" - } ], - "type" : "library", - "bom-ref" : "spring-context-6.2.5.jar-2" - }, { - "group" : "org.apache.logging.log4j", - "name" : "log4j-core-2.24.3.jar", - "version" : "2.24.3", - "description" : "A versatile, industrial-grade, and reference implementation of the Log4j API. It bundles a rich set of components to assist various use cases: Appenders targeting files, network sockets, databases, SMTP servers; Layouts that can render CSV, HTML, JSON, Syslog, etc. formatted outputs; Filters that can be configured using log event rates, regular expressions, scripts, time, etc. It contains several extension points to introduce custom components, if needed.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7f6a261243ca767c7f38fd4b542bcde626c8894e" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2005 The Apache Software Foundation,Copyright 2005-2006 Tim Fennell,The Apache Software Foundation,Copyright 1999-2012 Apache Software Foundation", - "purl" : "pkg:maven/org.apache.logging.log4j/log4j-core@2.24.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://logging.apache.org/log4j/2.x/" - }, { - "type" : "distribution", - "url" : "https://logging.apache.org/log4j/2.x/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "457703aa-5d37-41ec-b495-7e3e9679fc23" - } ], - "type" : "library", - "bom-ref" : "log4j-core-2.24.3.jar" - }, { - "group" : "react-select", - "name" : "react-select-5.7.7.tgz", - "version" : "5.7.7", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "dbade9dbf711ef2a181970c10f8ab319ac37fbd0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2022 Jed Watson", - "purl" : "pkg:npm/react-select@5.7.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/JedWatson/react-select/tree/master#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-select/-/react-select-5.7.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e2f118a1-a455-4944-bf6b-255da1d7d538" - } ], - "type" : "library", - "bom-ref" : "react-select-5.7.7.tgz-3" - }, { - "group" : "react-select", - "name" : "react-select-5.7.7.tgz", - "version" : "5.7.7", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "dbade9dbf711ef2a181970c10f8ab319ac37fbd0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2022 Jed Watson", - "purl" : "pkg:npm/react-select@5.7.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/JedWatson/react-select/tree/master#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-select/-/react-select-5.7.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e2f118a1-a455-4944-bf6b-255da1d7d538" - } ], - "type" : "library", - "bom-ref" : "react-select-5.7.7.tgz-2" - }, { - "group" : "org.bouncycastle", - "name" : "bcpkix-jdk18on-1.80.jar", - "version" : "1.80", - "description" : "The Bouncy Castle Java APIs for CMS, PKCS, EAC, TSP, CMP, CRMF, OCSP, and certificate generation. This jar contains APIs for JDK 1.8 and up. The APIs are designed primarily to be used in conjunction with the BC Java provider but may also be used with other providers providing cryptographic services.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5277dfaaef2e92ce1d802499599a0ca7488f86e6" - } ], - "licenses" : [ { - "license" : { - "name" : "Bouncy Castle License", - "url" : "https://www.bouncycastle.org/licence.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.bouncycastle/bcpkix-jdk18on@1.80", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.bouncycastle.org/download/bouncy-castle-java/" - }, { - "type" : "distribution", - "url" : "https://www.bouncycastle.org/download/bouncy-castle-java/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "83aafa68-bb21-41bf-baef-8a6fb217a6ff" - } ], - "type" : "library", - "bom-ref" : "bcpkix-jdk18on-1.80.jar-2" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-analyzer-commons-2.16.0.3141.jar", - "version" : "2.16.0.3141", - "description" : "Logic useful for a language plugin", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "857ce48e5405da233a740cfae697b208e3d22a1b" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-analyzer-commons@2.16.0.3141", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a784c6dd-49c3-4890-92a4-624353f8c8d7" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-analyzer-commons-2.16.0.3141.jar" - }, { - "group" : "react-virtualized", - "name" : "react-virtualized-9.22.5.tgz", - "version" : "9.22.5", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bfb96fed519de378b50d8c0064b92994b3b91620" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Brian Vaughn", - "purl" : "pkg:npm/react-virtualized@9.22.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/bvaughn/react-virtualized" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "807dfde2-9245-42ca-bb0f-062621f38b83" - } ], - "type" : "library", - "bom-ref" : "react-virtualized-9.22.5.tgz" - }, { - "group" : "react-select", - "name" : "react-select-5.7.7.tgz", - "version" : "5.7.7", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "dbade9dbf711ef2a181970c10f8ab319ac37fbd0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2022 Jed Watson", - "purl" : "pkg:npm/react-select@5.7.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/JedWatson/react-select/tree/master#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-select/-/react-select-5.7.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e2f118a1-a455-4944-bf6b-255da1d7d538" - } ], - "type" : "library", - "bom-ref" : "react-select-5.7.7.tgz-4" - }, { - "group" : "net.java.dev.jna", - "name" : "jna-platform-5.6.0.jar", - "version" : "5.6.0", - "description" : "Java Native Access Platform", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d18424ffb8bbfd036d71bcaab9b546858f2ef986" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "Copyright UNSPECIFIED", - "purl" : "pkg:maven/net.java.dev.jna/jna-platform@5.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/java-native-access/jna" - }, { - "type" : "distribution", - "url" : "https://github.com/java-native-access/jna" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "74098102-e94a-422d-a0be-366e7b187bce" - } ], - "type" : "library", - "bom-ref" : "jna-platform-5.6.0.jar" - }, { - "group" : "org.opensaml", - "name" : "opensaml-messaging-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "Messaging API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "311fc2cccbbbebff8c94f3800900f3882e387103" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-messaging-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "72487fab-1020-4c24-92c0-2ae624635ca2" - } ], - "type" : "library", - "bom-ref" : "opensaml-messaging-api-4.3.2.jar" - }, { - "group" : "convert-source-map", - "name" : "convert-source-map-1.8.0.tgz", - "version" : "1.8.0", - "description" : "Converts a source-map from/to different formats and allows adding/changing properties.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f3373c32d21b4d780dd8004514684fb791ca4369" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Thorsten Lorenz,Copyright 2013 Thorsten Lorenz", - "purl" : "pkg:npm/convert-source-map@1.8.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/thlorenz/convert-source-map" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c638b376-bdd9-408f-98d9-06d6bb060521" - } ], - "type" : "library", - "bom-ref" : "convert-source-map-1.8.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-9" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-8" - }, { - "group" : "org.sonarsource.classloader", - "name" : "sonar-classloader-1.1.0.1059.jar", - "version" : "1.1.0.1059", - "description" : "Java classloader toolbox", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "41d387192d1505557f7ba056b9297b917c8bc210" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.classloader/sonar-classloader@1.1.0.1059", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "cb14713c-2967-4b84-a000-c7657ca64305" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-classloader-1.1.0.1059.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-5" - }, { - "group" : "dom-helpers", - "name" : "dom-helpers-5.2.1.tgz", - "version" : "5.2.1", - "description" : "tiny modular DOM lib for ie9+", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d9400536b2bf8225ad98fe052e029451ac40e902" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Jason Quense", - "purl" : "pkg:npm/dom-helpers@5.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/react-bootstrap/dom-helpers#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c8002d50-f4e0-49b7-8c57-f7b1edadcc6c" - } ], - "type" : "library", - "bom-ref" : "dom-helpers-5.2.1.tgz-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-4" - }, { - "group" : "dom-helpers", - "name" : "dom-helpers-5.2.1.tgz", - "version" : "5.2.1", - "description" : "tiny modular DOM lib for ie9+", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d9400536b2bf8225ad98fe052e029451ac40e902" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Jason Quense", - "purl" : "pkg:npm/dom-helpers@5.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/react-bootstrap/dom-helpers#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c8002d50-f4e0-49b7-8c57-f7b1edadcc6c" - } ], - "type" : "library", - "bom-ref" : "dom-helpers-5.2.1.tgz-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-7" - }, { - "group" : "dom-helpers", - "name" : "dom-helpers-5.2.1.tgz", - "version" : "5.2.1", - "description" : "tiny modular DOM lib for ie9+", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d9400536b2bf8225ad98fe052e029451ac40e902" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Jason Quense", - "purl" : "pkg:npm/dom-helpers@5.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/react-bootstrap/dom-helpers#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c8002d50-f4e0-49b7-8c57-f7b1edadcc6c" - } ], - "type" : "library", - "bom-ref" : "dom-helpers-5.2.1.tgz-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-6" - }, { - "group" : "net.minidev", - "name" : "json-smart-2.5.2.jar", - "version" : "2.5.2", - "description" : "JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "95d166b18f95907be0f46cdb9e1c0695eed03387" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011-2024 JSON-SMART authors", - "purl" : "pkg:maven/net.minidev/json-smart@2.5.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://urielch.github.io/" - }, { - "type" : "distribution", - "url" : "https://urielch.github.io/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "afad24a5-65ea-40be-aaca-c20fb25c68e9" - } ], - "type" : "library", - "bom-ref" : "json-smart-2.5.2.jar-2" - }, { - "group" : "org.opensaml", - "name" : "opensaml-saml-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "SAML Provider API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "04d23cca2ddc72a2b9df94e4e9251fe51d874ce1" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-saml-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3b1689ed-3ffc-4e41-9929-ef02f99778cc" - } ], - "type" : "library", - "bom-ref" : "opensaml-saml-api-4.3.2.jar" - }, { - "group" : "org.springframework", - "name" : "spring-expression-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Expression Language (SpEL)", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "cb39181911dabe3b3d9992c4b4da38468726ea72" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2000-2011 INRIA,Copyright 2006-2019 Joe Walnes,Copyright 2002-2025 Pivotal, Inc,Copyright 1999-2009 OW2 Consortium", - "purl" : "pkg:maven/org.springframework/spring-expression@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "47ac4100-78ba-44e1-a237-51701f51ca37" - } ], - "type" : "library", - "bom-ref" : "spring-expression-6.2.5.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-2" - }, { - "group" : "dom-helpers", - "name" : "dom-helpers-5.2.1.tgz", - "version" : "5.2.1", - "description" : "tiny modular DOM lib for ie9+", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d9400536b2bf8225ad98fe052e029451ac40e902" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Jason Quense", - "purl" : "pkg:npm/dom-helpers@5.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/react-bootstrap/dom-helpers#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c8002d50-f4e0-49b7-8c57-f7b1edadcc6c" - } ], - "type" : "library", - "bom-ref" : "dom-helpers-5.2.1.tgz-2" - }, { - "group" : "com.github.erosb", - "name" : "json-sKema-0.21.0.jar", - "version" : "0.21.0", - "description" : "JSON Schema Parser and Validator", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8e0ea4494f3e1aca858d75ca7372e018a5554065" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.github.erosb/json-sKema@0.21.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/erosb/json-sKema" - }, { - "type" : "distribution", - "url" : "https://github.com/erosb/json-sKema" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "024fd5d5-4c2c-4d73-a1c0-03a9a475d35a" - } ], - "type" : "library", - "bom-ref" : "json-sKema-0.21.0.jar-3" - }, { - "group" : "com.github.erosb", - "name" : "json-sKema-0.21.0.jar", - "version" : "0.21.0", - "description" : "JSON Schema Parser and Validator", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8e0ea4494f3e1aca858d75ca7372e018a5554065" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.github.erosb/json-sKema@0.21.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/erosb/json-sKema" - }, { - "type" : "distribution", - "url" : "https://github.com/erosb/json-sKema" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "024fd5d5-4c2c-4d73-a1c0-03a9a475d35a" - } ], - "type" : "library", - "bom-ref" : "json-sKema-0.21.0.jar-2" - }, { - "group" : "color-convert", - "name" : "color-convert-2.0.1.tgz", - "version" : "2.0.1", - "description" : "Plain color conversion functions", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2011-2016 Heather Arthur and Josh Junon,Copyright 2011-2016 Heather Arthur <fayearthur@gmail.com>", - "purl" : "pkg:npm/color-convert@2.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/Qix-/color-convert#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ee2f5439-e8ea-477d-acec-9ccd461ddb26" - } ], - "type" : "library", - "bom-ref" : "color-convert-2.0.1.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-dao-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-dao-25.4-SNAPSHOT" - }, { - "group" : "org.apache.tomcat.embed", - "name" : "tomcat-embed-el-10.1.39.jar", - "version" : "10.1.39", - "description" : "Core Tomcat implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "88ff05c768c4654097ab0a9f2b49368a0877ad76" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2025 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.tomcat.embed/tomcat-embed-el@10.1.39", - "externalReferences" : [ { - "type" : "website", - "url" : "https://tomcat.apache.org/" - }, { - "type" : "distribution", - "url" : "https://tomcat.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "13d7e961-1015-4543-9e59-bfe9e77bd571" - } ], - "type" : "library", - "bom-ref" : "tomcat-embed-el-10.1.39.jar" - }, { - "group" : "org.slf4j", - "name" : "jul-to-slf4j-2.0.17.jar", - "version" : "2.0.17", - "description" : "JUL to SLF4J bridge", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "524cb6ccc2b68a57604750e1ab8b13b5a786a6aa" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "QOS.ch,Copyright 2004-2022 QOS.ch Sarl", - "purl" : "pkg:maven/org.slf4j/jul-to-slf4j@2.0.17", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.slf4j.org" - }, { - "type" : "distribution", - "url" : "http://www.slf4j.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "650fcd38-d758-4340-88db-28eb52869b03" - } ], - "type" : "library", - "bom-ref" : "jul-to-slf4j-2.0.17.jar-2" - }, { - "group" : "io.jsonwebtoken", - "name" : "jjwt-impl-0.12.6.jar", - "version" : "0.12.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ac23673a84b6089e0369fb8ab2c69edd91cd6eb0" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2018 JWTK,jsonwebtoken.io", - "purl" : "pkg:maven/io.jsonwebtoken/jjwt-impl@0.12.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/jwtk/jjwt" - }, { - "type" : "distribution", - "url" : "https://github.com/jwtk/jjwt" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "622f17a2-5847-439a-8937-2c2b51f3fce2" - } ], - "type" : "library", - "bom-ref" : "jjwt-impl-0.12.6.jar" - }, { - "group" : "org.sonarsource.java", - "name" : "java-frontend-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "afa661cc575898e4ad21801a99f91d6bf0cafe5c" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-frontend@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "766c32f0-72fa-4727-a8b4-f8efd6a44638" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-frontend-8.11.0.38440.jar-3" - }, { - "group" : "org.codehaus.woodstox", - "name" : "woodstox-core-lgpl-4.4.1.jar", - "version" : "4.4.1", - "description" : "Woodstox is a high-performance XML processor that implements Stax (JSR-173) and SAX2 APIs", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "367250f96efe58f97ede13e6e55e77760b85ab3a" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "Codehaus", - "purl" : "pkg:maven/org.codehaus.woodstox/woodstox-core-lgpl@4.4.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.codehaus.org/" - }, { - "type" : "distribution", - "url" : "http://www.codehaus.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "51d2d5d2-1bd6-4a09-8f5b-92aa973e43de" - } ], - "type" : "library", - "bom-ref" : "woodstox-core-lgpl-4.4.1.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-telemetry-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-telemetry-core-25.4-SNAPSHOT" - }, { - "group" : "react-highlight-words", - "name" : "react-highlight-words-0.20.0.tgz", - "version" : "0.20.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c60bfff5d14678c8f0e8fbe4bdcf083e6c70d507" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Treasure Data", - "purl" : "pkg:npm/react-highlight-words@0.20.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/bvaughn/react-highlight-words#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-highlight-words/-/react-highlight-words-0.20.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "397a2c0b-e172-471a-a2e2-8b0eaf31fdbc" - } ], - "type" : "library", - "bom-ref" : "react-highlight-words-0.20.0.tgz" - }, { - "group" : "com.sonarsource.text", - "name" : "sonar-text-developer-plugin-2.21.1.5779.jar", - "version" : "2.21.1.5779", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5c4975c78e19ce26c766ae46d868c306773592df" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "907b1e63-3c49-4900-bc71-bfecd1f4bc4e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-text-developer-plugin-2.21.1.5779.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-core-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.java", - "name" : "java-frontend-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "afa661cc575898e4ad21801a99f91d6bf0cafe5c" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-frontend@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "766c32f0-72fa-4727-a8b4-f8efd6a44638" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-frontend-8.11.0.38440.jar-2" - }, { - "group" : "org.sonarsource.update-center", - "name" : "sonar-update-center-common-1.35.0.2835.jar", - "version" : "1.35.0.2835", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "68cd0869db3196447e52d8fc1b9762e88820c459" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.update-center/sonar-update-center-common@1.35.0.2835", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.org" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dfdde452-cbe5-4c97-b0cb-db0a39f75d86" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-update-center-common-1.35.0.2835.jar-2" - }, { - "group" : "io.swagger.core.v3", - "name" : "swagger-models-jakarta-2.2.29.jar", - "version" : "2.2.29", - "description" : "swagger-models-jakarta", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2225e869eb78ddd039dd5abc2e5c9bd9abca2114" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2015 (c),Copyright 2015 (c)", - "purl" : "pkg:maven/io.swagger.core.v3/swagger-models-jakarta@2.2.29", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/swagger-api/swagger-core" - }, { - "type" : "distribution", - "url" : "https://github.com/swagger-api/swagger-core" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5ce8ca2c-c5d8-4c25-bf94-7629c1c6cf83" - } ], - "type" : "library", - "bom-ref" : "swagger-models-jakarta-2.2.29.jar" - }, { - "group" : "org.elasticsearch", - "name" : "elasticsearch-secure-sm-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :libs:elasticsearch-secure-sm", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1080f7dcc90cb2c27dffd3ee1f58b09a9489a858" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - }, { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch/elasticsearch-secure-sm@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "274ea6b5-ff41-4bae-a22a-bf306f350a6d" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-secure-sm-7.17.28.jar" - }, { - "group" : "@radix-ui/primitive", - "name" : "primitive-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "42ef83b3b56dccad5d703ae8c42919a68798bbe2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/primitive@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "7b985e96-d586-44ea-a6d2-031b08adef1f" - } ], - "type" : "library", - "bom-ref" : "primitive-1.1.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-process-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-process-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-process-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-process-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-process-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-process-25.4-SNAPSHOT-7" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-process-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-process-25.4-SNAPSHOT-8" - }, { - "group" : "com.google.errorprone", - "name" : "error_prone_annotations-2.36.0.jar", - "version" : "2.36.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "227d4d4957ccc3dc5761bd897e3a0ee587e750a7" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2015 The Error Prone Authors", - "purl" : "pkg:maven/com.google.errorprone/error_prone_annotations@2.36.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://errorprone.info" - }, { - "type" : "distribution", - "url" : "https://errorprone.info" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "bc5ce820-ad20-4b44-ae13-e0eeb39ad1a8" - } ], - "type" : "library", - "bom-ref" : "error-prone-annotations-2.36.0.jar" - }, { - "group" : "react-remove-scroll-bar", - "name" : "react-remove-scroll-bar-2.3.6.tgz", - "version" : "2.3.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3e585e9d163be84a010180b18721e851ac81a29c" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/react-remove-scroll-bar@2.3.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/react-remove-scroll-bar#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "293d5e19-5823-4762-b211-78e2a91705a8" - } ], - "type" : "library", - "bom-ref" : "react-remove-scroll-bar-2.3.6.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-process-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-process-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-process-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-process-25.4-SNAPSHOT-3" - }, { - "group" : "@radix-ui/react-use-escape-keydown", - "name" : "react-use-escape-keydown-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "31a5b87c3b726504b74e05dac1edce7437b98754" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-use-escape-keydown@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "71d2437f-7714-4c51-8cd0-39ffc75e4bee" - } ], - "type" : "library", - "bom-ref" : "react-use-escape-keydown-1.1.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-process-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-process-25.4-SNAPSHOT-4" - }, { - "group" : "org.json", - "name" : "json-20250107.jar", - "version" : "20250107", - "description" : "JSON is a light-weight, language independent, data interchange format. See http://www.JSON.org/ The files in this package implement JSON encoders/decoders in Java. It also includes the capability to convert between JSON and XML, HTTP headers, Cookies, and CDL. This is a reference implementation. There are a large number of JSON packages in Java. Perhaps someday the Java community will standardize on one. Until then, choose carefully.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a1b5f0b5a1ce018b93a691c57ffc7d141b3a10f1" - } ], - "licenses" : [ { - "license" : { - "id" : "CC-PDDC", - "url" : "http://creativecommons.org/licenses/publicdomain/" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.json/json@20250107", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/douglascrockford/JSON-java" - }, { - "type" : "distribution", - "url" : "https://github.com/douglascrockford/JSON-java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "23568a0e-3f34-4ecc-8b88-de6c7db519d6" - } ], - "type" : "library", - "bom-ref" : "json-20250107.jar" - }, { - "group" : "@emotion/styled", - "name" : "styled-11.13.0.tgz", - "version" : "11.13.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "633fd700db701472c7a5dbef54d6f9834e9fb190" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/styled@11.13.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d92f1813-b912-4001-bff8-41a92e78278a" - } ], - "type" : "library", - "bom-ref" : "styled-11.13.0.tgz-2" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-util-1.9.0.4841.jar", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4c8fcd1bc126bd7b3ca758e620a907bcc51abd6b" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e3077c2f-8816-491c-a159-d109af3681f9" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-util-1.9.0.4841.jar" - }, { - "group" : "@babel/highlight", - "name" : "highlight-7.16.10.tgz", - "version" : "7.16.10", - "description" : "Syntax highlight JavaScript strings for output in terminals.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "744f2eb81579d6eea753c227b0f570ad785aba88" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors,Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/highlight@7.16.10", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-highlight" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "899059d3-bf97-447b-bbee-aef31d309071" - } ], - "type" : "library", - "bom-ref" : "highlight-7.16.10.tgz" - }, { - "group" : "delegate", - "name" : "delegate-3.2.0.tgz", - "version" : "3.2.0", - "description" : "Lightweight event delegation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b66b71c3158522e8ab5744f720d8ca0c2af59166" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Zeno Rocha", - "purl" : "pkg:npm/delegate@3.2.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/zenorocha/delegate#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6f01dfab-9d30-4782-90e1-27cdd1eed4ba" - } ], - "type" : "library", - "bom-ref" : "delegate-3.2.0.tgz" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-regex-parsing-2.16.0.3141.jar", - "version" : "2.16.0.3141", - "description" : "Logic useful to read and analyze regular expressions", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "eccb85df38a197ef9238ba003a7a38fb56beebde" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-regex-parsing@2.16.0.3141", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "04d2d758-4303-4537-8a51-c52c82749d40" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-regex-parsing-2.16.0.3141.jar" - }, { - "group" : "@emotion/unitless", - "name" : "unitless-0.8.1.tgz", - "version" : "0.8.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "182b5a4704ef8ad91bde93f7a860a88fd92c79a3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2016 Kye Hohenberger,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/unitless@0.8.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9650ede9-dd21-4f2e-b187-e0ab0d0010c4" - } ], - "type" : "library", - "bom-ref" : "unitless-0.8.1.tgz" - }, { - "group" : "ansi-styles", - "name" : "ansi-styles-3.2.1.tgz", - "version" : "3.2.1", - "description" : "ANSI escape codes for styling strings in the terminal", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "41fbb20243e50b12be0f04b8dedbf07520ce841d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/ansi-styles@3.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/chalk/ansi-styles#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e85bd791-c081-49fa-8e8a-714a80d0e163" - } ], - "type" : "library", - "bom-ref" : "ansi-styles-3.2.1.tgz" - }, { - "group" : "shebang-command", - "name" : "shebang-command-2.0.0.tgz", - "version" : "2.0.0", - "description" : "Get the command from a shebang", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Kevin Mårtensson <kevinmartensson@gmail.com> (github.com/kevva)", - "purl" : "pkg:npm/shebang-command@2.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/kevva/shebang-command#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ee926ad2-28eb-41f5-b79d-853b6d923bb3" - } ], - "type" : "library", - "bom-ref" : "shebang-command-2.0.0.tgz" - }, { - "group" : "org.apache.commons", - "name" : "commons-lang3-3.17.0.jar", - "version" : "3.17.0", - "description" : "Apache Commons Lang, a package of Java utility classes for the classes that are in java.lang's hierarchy, or are considered to be so standard as to justify existence in java.lang. The code is tested using the latest revision of the JDK for supported LTS releases: 8, 11, 17 and 21 currently. See https://github.com/apache/commons-lang/blob/master/.github/workflows/maven.yml Please ensure your build environment is up-to-date and kindly report any build issues.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b17d2136f0460dcc0d2016ceefca8723bdf4ee70" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2001-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.commons/commons-lang3@3.17.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://commons.apache.org/proper/commons-lang/" - }, { - "type" : "distribution", - "url" : "https://commons.apache.org/proper/commons-lang/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fe3e17b9-1748-4cd7-9813-e335194c4516" - } ], - "type" : "library", - "bom-ref" : "commons-lang3-3.17.0.jar" - }, { - "group" : "com.sonarsource.plugins.vb", - "name" : "vb-squid-2.14.0.5475.jar", - "version" : "2.14.0.5475", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "672ca9808ae5e806ccfe662633288eccb7458fbb" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f1e873f5-1b9f-4cb9-8e58-e984ed85c042" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "vb-squid-2.14.0.5475.jar" - }, { - "group" : "react-transition-group", - "name" : "react-transition-group-4.4.5.tgz", - "version" : "4.4.5", - "description" : "A react component toolset for managing animations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e53d4e3f3344da8521489fbef8f2581d42becdd1" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2013 Facebook, Inc,Copyright 2018 React Community,Copyright 2018 React Community,Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/react-transition-group@4.4.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/reactjs/react-transition-group#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "28401760-9278-4794-b982-746f71661e5a" - } ], - "type" : "library", - "bom-ref" : "react-transition-group-4.4.5.tgz" - }, { - "group" : "@floating-ui/core", - "name" : "core-1.6.8.tgz", - "version" : "1.6.8", - "description" : "Positioning library for floating elements: tooltips, popovers, dropdowns, and more", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "aa43561be075815879305965020f492cdb43da12" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2021 Floating UI contributors", - "purl" : "pkg:npm/%40floating-ui/core@1.6.8", - "externalReferences" : [ { - "type" : "website", - "url" : "https://floating-ui.com" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "673a1e7c-2f59-4ac7-a932-aee027876851" - } ], - "type" : "library", - "bom-ref" : "core-1.6.8.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-7" - }, { - "group" : "org.jacoco", - "name" : "org.jacoco.core-0.8.11.jar", - "version" : "0.8.11", - "description" : "JaCoCo Core", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ea73c899b5d6cde2a0a5e0ca29268b37622845d" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - }, { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - } ], - "copyright" : "Copyright 2009-2023 Mountainminds GmbH,Mountainminds GmbH & Co. KG", - "purl" : "pkg:maven/org.jacoco/org.jacoco.core@0.8.11?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://jacoco.org" - }, { - "type" : "distribution", - "url" : "http://jacoco.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "915b7086-0db0-4f75-b5be-5e622dbb5136" - } ], - "type" : "library", - "bom-ref" : "org.jacoco.core-0.8.11.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-8" - }, { - "group" : "org.apache.httpcomponents", - "name" : "httpclient-4.5.14.jar", - "version" : "4.5.14", - "description" : "Apache HttpComponents Client", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1194890e6f56ec29177673f2f12d0b8e627dec98" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 1999-2022 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.httpcomponents/httpclient@4.5.14?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.apache.org/" - }, { - "type" : "distribution", - "url" : "http://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b91ea689-593e-4526-89d5-10d695ebd561" - } ], - "type" : "library", - "bom-ref" : "httpclient-4.5.14.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-4" - }, { - "group" : "d3-drag", - "name" : "d3-drag-3.0.0.tgz", - "version" : "3.0.0", - "description" : "Drag and drop SVG, HTML or Canvas using mouse or touch input.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "994aae9cd23c719f53b5e10e3a0a6108c69607ba" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock", - "purl" : "pkg:npm/d3-drag@3.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-drag/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1093fc41-a40a-437c-be94-9af9c179f3ae" - } ], - "type" : "library", - "bom-ref" : "d3-drag-3.0.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-main-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-main-25.4-SNAPSHOT-2" - }, { - "group" : "io.jsonwebtoken", - "name" : "jjwt-api-0.12.6.jar", - "version" : "0.12.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "478886a888f6add04937baf0361144504a024967" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2018 JWTK,jsonwebtoken.io", - "purl" : "pkg:maven/io.jsonwebtoken/jjwt-api@0.12.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/jwtk/jjwt" - }, { - "type" : "distribution", - "url" : "https://github.com/jwtk/jjwt" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d017db95-e9c4-4e38-912f-a03dc212ab86" - } ], - "type" : "library", - "bom-ref" : "jjwt-api-0.12.6.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-2" - }, { - "group" : "is-core-module", - "name" : "is-core-module-2.10.0.tgz", - "version" : "2.10.0", - "description" : "Is this specifier a node.js core module?", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9012ede0a91c69587e647514e1d5277019e728ed" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Dave Justice", - "purl" : "pkg:npm/is-core-module@2.10.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/inspect-js/is-core-module" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ba999b50-e401-456c-baa4-ccec9a45a5a5" - } ], - "type" : "library", - "bom-ref" : "is-core-module-2.10.0.tgz" - }, { - "group" : "org.codehaus.staxmate", - "name" : "staxmate-2.0.1.jar", - "version" : "2.0.1", - "description" : "StaxMate is a light-weight framework that adds convenience to streaming XML-processing without significant additional overhead. It builds on top of a Stax (JSR-173) compliant XML processors such as Woodstox or Sjsxp (default Stax implementation of JDK 1.6) and offers two basic abstractions: Cursors, which build on XMLStreamReaders and Output objects, which build on XMLStreamWriters.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b0b767fbc22683d7bf26a14ae1c5817561e21d00" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Codehaus", - "purl" : "pkg:maven/org.codehaus.staxmate/staxmate@2.0.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.codehaus.org/" - }, { - "type" : "distribution", - "url" : "http://www.codehaus.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e09f3dc6-5660-4199-a9a3-b20d3b0cd164" - } ], - "type" : "library", - "bom-ref" : "staxmate-2.0.1.jar-3" - }, { - "group" : "org.codehaus.staxmate", - "name" : "staxmate-2.0.1.jar", - "version" : "2.0.1", - "description" : "StaxMate is a light-weight framework that adds convenience to streaming XML-processing without significant additional overhead. It builds on top of a Stax (JSR-173) compliant XML processors such as Woodstox or Sjsxp (default Stax implementation of JDK 1.6) and offers two basic abstractions: Cursors, which build on XMLStreamReaders and Output objects, which build on XMLStreamWriters.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b0b767fbc22683d7bf26a14ae1c5817561e21d00" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Codehaus", - "purl" : "pkg:maven/org.codehaus.staxmate/staxmate@2.0.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.codehaus.org/" - }, { - "type" : "distribution", - "url" : "http://www.codehaus.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e09f3dc6-5660-4199-a9a3-b20d3b0cd164" - } ], - "type" : "library", - "bom-ref" : "staxmate-2.0.1.jar-2" - }, { - "group" : "com.fasterxml.jackson.datatype", - "name" : "jackson-datatype-jsr310-2.18.3.jar", - "version" : "2.18.3", - "description" : "Add-on module to support JSR-310 (Java 8 Date & Time API) data types.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "cc57924cccf42fc852081c36215272f84ffcd991" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jsr310@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-modules-java8" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-modules-java8" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "21f82b07-bd06-431e-901f-0e1f95dd5e0a" - } ], - "type" : "library", - "bom-ref" : "jackson-datatype-jsr310-2.18.3.jar-2" - }, { - "group" : "path-type", - "name" : "path-type-4.0.0.tgz", - "version" : "4.0.0", - "description" : "Check if a path is a file, directory, or symlink", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus,Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/path-type@4.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/path-type#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9eb518f1-8547-4cc2-8515-79de64d952be" - } ], - "type" : "library", - "bom-ref" : "path-type-4.0.0.tgz" - }, { - "group" : "org.ow2.asm", - "name" : "asm-9.6.jar", - "version" : "9.6", - "description" : "ASM, a very small and fast Java bytecode manipulation framework", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "aa205cf0a06dbd8e04ece91c0b37c3f5d567546a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "OW2,Copyright 2011-2012 Bull S.A.S", - "purl" : "pkg:maven/org.ow2.asm/asm@9.6?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.ow2.org/" - }, { - "type" : "distribution", - "url" : "http://www.ow2.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4ed2ec69-7a30-435a-8634-2d73f2d459bc" - } ], - "type" : "library", - "bom-ref" : "asm-9.6.jar" - }, { - "group" : "tiny-emitter", - "name" : "tiny-emitter-2.1.0.tgz", - "version" : "2.1.0", - "description" : "A tiny (less than 1k) event emitter library", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1d1a56edfc51c43e863cbb5382a72330e3555423" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Scott Corgan", - "purl" : "pkg:npm/tiny-emitter@2.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/scottcorgan/tiny-emitter#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "371139a4-58ce-4478-a959-c173eff87ea8" - } ], - "type" : "library", - "bom-ref" : "tiny-emitter-2.1.0.tgz" - }, { - "group" : "@material-symbols/font-400", - "name" : "font-400-0.23.0.tgz", - "version" : "0.23.0", - "description" : "Latest variable icon fonts with weight 400 for Material Symbols.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "44aea667ac3ce8dc982373299f81ea00560a6746" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40material-symbols/font-400@0.23.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://marella.github.io/material-symbols/demo/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@material-symbols/font-400/-/font-400-0.23.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "583d0fe3-b534-4ce5-86f9-620dd632f0aa" - } ], - "type" : "library", - "bom-ref" : "font-400-0.23.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-core-25.4-SNAPSHOT-9" - }, { - "group" : "org.sonarsource.dotnet", - "name" : "sonar-dotnet-core-10.7.0.110445.jar", - "version" : "10.7.0.110445", - "description" : "Share code between C# and VB.NET plugins", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "440f4bef8140aaab15f40077f4d5391f3ba12f80" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.dotnet/sonar-dotnet-core@10.7.0.110445", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/SonarSource/sonar-dotnet" - }, { - "type" : "distribution", - "url" : "https://github.com/SonarSource/sonar-dotnet" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a9a13598-d87c-4d0c-99ad-69addfabbae7" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-dotnet-core-10.7.0.110445.jar-2" - }, { - "group" : "@types/trusted-types", - "name" : "trusted-types-2.0.7.tgz", - "version" : "2.0.7", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "baccb07a970b91707df3a3e8ba6896c57ead2d11" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/trusted-types@2.0.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/trusted-types" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "fade1991-eebb-4693-89e0-4fe6cf65b465" - } ], - "type" : "library", - "bom-ref" : "trusted-types-2.0.7.tgz" - }, { - "group" : "com.sonarsource.abap", - "name" : "abap-squid-3.15.1.6010.jar", - "version" : "3.15.1.6010", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "25bed68c2d8f5e032fcc1169ee7620f6d9dd4e24" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6531d4d8-c10a-4b8e-bc15-7568e3841d2e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "abap-squid-3.15.1.6010.jar-2" - }, { - "group" : "com.github.package-url", - "name" : "packageurl-java-1.5.0.jar", - "version" : "1.5.0", - "description" : "The official Java implementation of the PackageURL specification. PackageURL (purl) is a minimal specification for describing a package via a \"mostly universal\" URL.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e6bf530f52feab911f4032604ca0b8216f7ff337" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.github.package-url/packageurl-java@1.5.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/package-url/packageurl-java" - }, { - "type" : "distribution", - "url" : "https://github.com/package-url/packageurl-java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "670bc57f-9e7f-48ac-aa13-d92ab85b31cc" - } ], - "type" : "library", - "bom-ref" : "packageurl-java-1.5.0.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-markdown-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-markdown-25.4-SNAPSHOT-2" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-java-frontend-plugin-1.9.0.4841.sonar-plugin", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "aedf6df3269966a8d2fc4ae2b5eaffa114358b69" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b707c40d-c013-48f7-a658-649eabc2bb66" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-java-frontend-plugin-1.9.0.4841.sonar-plugin" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-markdown-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-markdown-25.4-SNAPSHOT-3" - }, { - "group" : "markdownlint-micromark", - "name" : "markdownlint-micromark-0.1.10.tgz", - "version" : "0.1.10", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a77a1a70adad9eac18ff412baf36a0c2189875d7" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright David Anson", - "purl" : "pkg:npm/markdownlint-micromark@0.1.10", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/DavidAnson/markdownlint" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.10.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "937004f7-95ba-498b-bd02-0537475fba02" - } ], - "type" : "library", - "bom-ref" : "markdownlint-micromark-0.1.10.tgz" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-config-io-1.9.0.4841.jar", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "68f34473e948972d10914bbe20a3eb51004b70ba" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6efe0c1a-3ed6-4c3e-86b4-b0fea47b218a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-config-io-1.9.0.4841.jar-2" - }, { - "group" : "xerces", - "name" : "xercesImpl-2.12.2.jar", - "version" : "2.12.2", - "description" : "Xerces2 provides high performance, fully compliant XML parsers in the Apache Xerces family. This new version of Xerces continues to build upon the Xerces Native Interface (XNI), a complete framework for building parser components and configurations that is extremely modular and easy to program. The Apache Xerces2 parser is the reference implementation of XNI but other parser components, configurations, and parsers can be written using the Xerces Native Interface. For complete design and implementation documents, refer to the XNI Manual. Xerces2 provides fully conforming XML Schema 1.0 and 1.1 processors. An experimental implementation of the \"XML Schema Definition Language (XSD): Component Designators (SCD) Candidate Recommendation (January 2010)\" is also provided for evaluation. For more information, refer to the XML Schema page. Xerces2 also provides a complete implementation of the Document Object Model Level 3 Core and Load/Save W3C Recommendations and provides a complete implementation of the XML Inclusions (XInclude) W3C Recommendation. It also provides support for OASIS XML Catalogs v1.1. Xerces2 is able to parse documents written according to the XML 1.1 Recommendation, except that it does not yet provide an option to enable normalization checking as described in section 2.13 of this specification. It also handles namespaces according to the XML Namespaces 1.1 Recommendation, and will correctly serialize XML 1.1 documents if the DOM level 3 load/save APIs are in use.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f051f988aa2c9b4d25d05f95742ab0cc3ed789e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright 1999 (c),Copyright 1999-2022 The Apache Software Foundation,Copyright 1999 IBM Corporation., http://www.ibm.com", - "purl" : "pkg:maven/xerces/xercesImpl@2.12.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://xerces.apache.org/xerces2-j/" - }, { - "type" : "distribution", - "url" : "https://xerces.apache.org/xerces2-j/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9c1768f1-c91a-4cee-abda-41b8e890109e" - } ], - "type" : "library", - "bom-ref" : "xercesImpl-2.12.2.jar" - }, { - "group" : "@emotion/hash", - "name" : "hash-0.9.1.tgz", - "version" : "0.9.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4ffb0055f7ef676ebc3a5a91fb621393294e2f43" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright 2016 Kye Hohenberger", - "purl" : "pkg:npm/%40emotion/hash@0.9.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "7f957ce8-b3e1-433d-9f7c-ef9ff9e6f052" - } ], - "type" : "library", - "bom-ref" : "hash-0.9.1.tgz" - }, { - "group" : "net.minidev", - "name" : "json-smart-2.5.2.jar", - "version" : "2.5.2", - "description" : "JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "95d166b18f95907be0f46cdb9e1c0695eed03387" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011-2024 JSON-SMART authors", - "purl" : "pkg:maven/net.minidev/json-smart@2.5.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://urielch.github.io/" - }, { - "type" : "distribution", - "url" : "https://urielch.github.io/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "afad24a5-65ea-40be-aaca-c20fb25c68e9" - } ], - "type" : "library", - "bom-ref" : "json-smart-2.5.2.jar" - }, { - "group" : "@emotion/sheet", - "name" : "sheet-1.4.0.tgz", - "version" : "1.4.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c9299c34d248bc26e82563735f78953d2efca83c" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/sheet@1.4.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2380a611-6b6e-4dce-80f4-06f29c7d63f8" - } ], - "type" : "library", - "bom-ref" : "sheet-1.4.0.tgz" - }, { - "group" : "org.apache.sshd", - "name" : "sshd-common-2.15.0.jar", - "version" : "2.15.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c3a4140b543d5e419d57809562fec297ffea46f5" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2018-2025 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.sshd/sshd-common@2.15.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "53a54ec1-20e1-4da0-a9fa-d459c86f1a79" - } ], - "type" : "library", - "bom-ref" : "sshd-common-2.15.0.jar-2" - }, { - "group" : "io.jsonwebtoken", - "name" : "jjwt-impl-0.12.6.jar", - "version" : "0.12.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ac23673a84b6089e0369fb8ab2c69edd91cd6eb0" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2018 JWTK,jsonwebtoken.io", - "purl" : "pkg:maven/io.jsonwebtoken/jjwt-impl@0.12.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/jwtk/jjwt" - }, { - "type" : "distribution", - "url" : "https://github.com/jwtk/jjwt" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "622f17a2-5847-439a-8937-2c2b51f3fce2" - } ], - "type" : "library", - "bom-ref" : "jjwt-impl-0.12.6.jar-2" - }, { - "group" : "org.ow2.asm", - "name" : "asm-tree-9.6.jar", - "version" : "9.6", - "description" : "Tree API of ASM, a very small and fast Java bytecode manipulation framework", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c0cdda9d211e965d2a4448aa3fd86110f2f8c2de" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011-2012 Bull S.A.S,OW2", - "purl" : "pkg:maven/org.ow2.asm/asm-tree@9.6?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.ow2.org/" - }, { - "type" : "distribution", - "url" : "http://www.ow2.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4fb50b7c-46aa-46ee-a6fa-272fbc807ac1" - } ], - "type" : "library", - "bom-ref" : "asm-tree-9.6.jar" - }, { - "group" : "org.sonarsource.javascript", - "name" : "api-10.21.1.30825.jar", - "version" : "10.21.1.30825", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "52ab033271268c4fe5c3df60716a744527f76c50" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.javascript/api@10.21.1.30825", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4c04a7fa-35fb-46a7-bbf2-f46e6ec8f7ff" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "api-10.21.1.30825.jar" - }, { - "group" : "org.spdx", - "name" : "spdx-java-core-1.0.0-RC2.jar", - "version" : "1.0.0-RC2", - "description" : "Core libraries for SPDX", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "22ee97b9449e985c8970706bcbdfb729e01e0e58" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.spdx/spdx-java-core@1.0.0-RC2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spdx/spdx-java-core" - }, { - "type" : "distribution", - "url" : "https://github.com/spdx/spdx-java-core" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b95ae4d8-ed8f-4114-ba53-c1d84dbf9cb2" - } ], - "type" : "library", - "bom-ref" : "spdx-java-core-1.0.0-RC2.jar" - }, { - "group" : "minimist", - "name" : "minimist-1.2.8.tgz", - "version" : "1.2.8", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c1a464e7693302e082a075cee0c057741ac4772c" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "2013 James Halliday and contributors", - "purl" : "pkg:npm/minimist@1.2.8", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/minimistjs/minimist" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1e3ffa30-0ed8-497a-a0a9-83dcaf7fffe8" - } ], - "type" : "library", - "bom-ref" : "minimist-1.2.8.tgz" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-plugin-1.9.0.4841.sonar-plugin", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b3578eba3bf9f7ad5ca23dca122c20a4e991c7a2" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f112a9cc-c89e-42af-a297-c8b4241305d1" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-plugin-1.9.0.4841.sonar-plugin" - }, { - "group" : "@emotion/is-prop-valid", - "name" : "is-prop-valid-1.3.0.tgz", - "version" : "1.3.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bd84ba972195e8a2d42462387581560ef780e4e2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/is-prop-valid@1.3.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2a78b49a-c620-4f77-9c37-6da170e4667e" - } ], - "type" : "library", - "bom-ref" : "is-prop-valid-1.3.0.tgz" - }, { - "group" : "org.apache.ant", - "name" : "ant-1.10.14.jar", - "version" : "1.10.14", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1edce9bbfa60dfd51f010879c78f4421dafae7a7" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "ANTLR-PD", - "url" : "http://www.antlr2.org/license.html" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2002 Landmark,Copyright 1999-2023 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.ant/ant@1.10.14?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1ab585db-e4a9-4dfa-9b22-68e31920ed95" - } ], - "type" : "library", - "bom-ref" : "ant-1.10.14.jar" - }, { - "group" : "react-is", - "name" : "react-is-16.8.6.tgz", - "version" : "16.8.6", - "description" : "Brand checking of React Elements.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Facebook, Inc. and its affiliates", - "purl" : "pkg:npm/react-is@16.8.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://reactjs.org/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "7127a22d-80f0-41a7-9a93-8580e209996e" - } ], - "type" : "library", - "bom-ref" : "react-is-16.8.6.tgz" - }, { - "group" : "com.squareup.okio", - "name" : "okio-3.6.0.jar", - "version" : "3.6.0", - "description" : "A modern I/O library for Android, Java, and Kotlin Multiplatform.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8bf9683c80762d7dd47db12b68e99abea2a7ae05" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okio/okio@3.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/square/okio/" - }, { - "type" : "distribution", - "url" : "https://github.com/square/okio/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ebdb4e2a-126c-496d-9e3d-4993c9ddd2a2" - } ], - "type" : "library", - "bom-ref" : "okio-3.6.0.jar" - }, { - "group" : "@floating-ui/core", - "name" : "core-1.2.6.tgz", - "version" : "1.2.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d21ace437cc919cdd8f1640302fa8851e65e75c0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2021 Floating UI contributors", - "purl" : "pkg:npm/%40floating-ui/core@1.2.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://floating-ui.com" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "7cdfad35-c2af-4adb-8d57-79d84b12dc45" - } ], - "type" : "library", - "bom-ref" : "core-1.2.6.tgz" - }, { - "group" : "memoize-one", - "name" : "memoize-one-4.0.3.tgz", - "version" : "4.0.3", - "description" : "A memoization library which only remembers the latest invocation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "cdfdd942853f1a1b4c71c5336b8c49da0bf0273c" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Alexander Reardon", - "purl" : "pkg:npm/memoize-one@4.0.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/alexreardon/memoize-one#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/memoize-one/-/memoize-one-4.0.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b787f168-e3f3-4f09-b731-3a538446579b" - } ], - "type" : "library", - "bom-ref" : "memoize-one-4.0.3.tgz" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-util-1.9.0.4841.jar", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4c8fcd1bc126bd7b3ca758e620a907bcc51abd6b" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e3077c2f-8816-491c-a159-d109af3681f9" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-util-1.9.0.4841.jar-2" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "scanner-developer-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "scanner-developer-2025.3-SNAPSHOT" - }, { - "group" : "ch.qos.logback", - "name" : "logback-classic-1.5.18.jar", - "version" : "1.5.18", - "description" : "logback-classic module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fc371f3fc97a639de2d67947cffb7518ec5e3d40" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - }, { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - } ], - "copyright" : "QOS.ch", - "purl" : "pkg:maven/ch.qos.logback/logback-classic@1.5.18", - "externalReferences" : [ { - "type" : "website", - "url" : "http://logback.qos.ch" - }, { - "type" : "distribution", - "url" : "http://logback.qos.ch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "abfb1ae5-c2ad-4e65-b7ba-41fe062802c6" - } ], - "type" : "library", - "bom-ref" : "logback-classic-1.5.18.jar-2" - }, { - "group" : "@radix-ui/react-focus-guards", - "name" : "react-focus-guards-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8635edd346304f8b42cae86b05912b61aef27afe" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-focus-guards@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5a1b523d-51be-4b9f-9dca-0e6f85323f88" - } ], - "type" : "library", - "bom-ref" : "react-focus-guards-1.1.1.tgz" - }, { - "group" : "error-ex", - "name" : "error-ex-1.3.2.tgz", - "version" : "1.3.2", - "description" : "Easy error subclassing and stack customization", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 JD Ballard", - "purl" : "pkg:npm/error-ex@1.3.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/qix-/node-error-ex#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "039ebf6e-184c-46a4-8ad6-ab598f9b884c" - } ], - "type" : "library", - "bom-ref" : "error-ex-1.3.2.tgz" - }, { - "group" : "@radix-ui/react-collection", - "name" : "react-collection-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f18af78e46454a2360d103c2251773028b7724ed" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-collection@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ba25ddb1-fa81-49e5-9f1f-9611243bc011" - } ], - "type" : "library", - "bom-ref" : "react-collection-1.1.0.tgz" - }, { - "group" : "com.fasterxml.jackson.datatype", - "name" : "jackson-datatype-jsr310-2.18.3.jar", - "version" : "2.18.3", - "description" : "Add-on module to support JSR-310 (Java 8 Date & Time API) data types.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "cc57924cccf42fc852081c36215272f84ffcd991" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jsr310@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-modules-java8" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-modules-java8" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "21f82b07-bd06-431e-901f-0e1f95dd5e0a" - } ], - "type" : "library", - "bom-ref" : "jackson-datatype-jsr310-2.18.3.jar" - }, { - "group" : "com.sonarsource.security", - "name" : "monitoring-11.1.0.35630.jar", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b27abd19d6e08078536d854090bb3c7fd4cf2e86" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e755d3f3-4d9d-40c7-a494-bafced03338e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "monitoring-11.1.0.35630.jar" - }, { - "group" : "jaxen", - "name" : "jaxen-1.1.4.jar", - "version" : "1.1.4", - "description" : "Jaxen is a universal Java XPath engine.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8c06a96cf9150ded75c28b7087ed821a93270c41" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Codehaus", - "purl" : "pkg:maven/jaxen/jaxen@1.1.4?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://codehaus.org" - }, { - "type" : "distribution", - "url" : "http://codehaus.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a41484ee-288c-48ff-a390-013d887fadb1" - } ], - "type" : "library", - "bom-ref" : "jaxen-1.1.4.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-protocol-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-protocol-25.4-SNAPSHOT" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-scim-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-scim-2025.3-SNAPSHOT" - }, { - "group" : "org.slf4j", - "name" : "jul-to-slf4j-2.0.17.jar", - "version" : "2.0.17", - "description" : "JUL to SLF4J bridge", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "524cb6ccc2b68a57604750e1ab8b13b5a786a6aa" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "QOS.ch,Copyright 2004-2022 QOS.ch Sarl", - "purl" : "pkg:maven/org.slf4j/jul-to-slf4j@2.0.17", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.slf4j.org" - }, { - "type" : "distribution", - "url" : "http://www.slf4j.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "650fcd38-d758-4340-88db-28eb52869b03" - } ], - "type" : "library", - "bom-ref" : "jul-to-slf4j-2.0.17.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-common-25.4-SNAPSHOT-2" - }, { - "group" : "@radix-ui/react-focus-guards", - "name" : "react-focus-guards-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8e9abb472a9a394f59a1b45f3dd26cfe3fc6da13" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-focus-guards@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "fb18ad06-3ab8-49b1-a283-bc7357f08d49" - } ], - "type" : "library", - "bom-ref" : "react-focus-guards-1.1.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-common-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-common-25.4-SNAPSHOT-4" - }, { - "group" : "org.opensaml", - "name" : "opensaml-storage-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "Storage API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bc0f8dcd32bc5195bd7a4a5dc06db0944abbe8c4" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-storage-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "cd62bb6d-71de-435e-9935-9f29182e19a5" - } ], - "type" : "library", - "bom-ref" : "opensaml-storage-api-4.3.2.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT" - }, { - "group" : "d3-time-format", - "name" : "d3-time-format-4.1.0.tgz", - "version" : "4.1.0", - "description" : "A JavaScript time formatter and parser inspired by strftime and strptime.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2024 Mike Bostock and Observable, Inc.", - "purl" : "pkg:npm/d3-time-format@4.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-time-format/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "7aeaa684-a448-49a4-8bc6-0e7ab681a4cd" - } ], - "type" : "library", - "bom-ref" : "d3-time-format-4.1.0.tgz-2" - }, { - "group" : "@formatjs/ecma402-abstract", - "name" : "ecma402-abstract-2.0.0.tgz", - "version" : "2.0.0", - "description" : "A collection of implementation for ECMAScript abstract operations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "39197ab90b1c78b7342b129a56a7acdb8f512e17" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2023 FormatJS", - "purl" : "pkg:npm/%40formatjs/ecma402-abstract@2.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/formatjs/formatjs" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e74d4459-57b1-4709-b159-ae6121f334fd" - } ], - "type" : "library", - "bom-ref" : "ecma402-abstract-2.0.0.tgz" - }, { - "group" : "parse-json", - "name" : "parse-json-5.2.0.tgz", - "version" : "5.2.0", - "description" : "Parse JSON with more helpful errors", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c76fc66dee54231c962b22bcc8a72cf2f99753cd" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/parse-json@5.2.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/parse-json#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "91198ec1-2350-4462-ba7f-a4136fd185d4" - } ], - "type" : "library", - "bom-ref" : "parse-json-5.2.0.tgz" - }, { - "group" : "org.sonarsource.java", - "name" : "java-checks-common-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "84ce67a2e820976b7459c2011e19006fd05455d2" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-checks-common@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "766154cb-8cf8-43a5-b625-ba598a9ddccb" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-checks-common-8.11.0.38440.jar-2" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-analyzer-test-commons-2.14.0.3087.jar", - "version" : "2.14.0.3087", - "description" : "Logic useful to test a language analyzer", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "566356ed572245be7d4487332de0ee5321d7b516" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-analyzer-test-commons@2.14.0.3087", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "784f2389-34cb-4e00-9c6a-7e1c934b934b" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-analyzer-test-commons-2.14.0.3087.jar-2" - }, { - "group" : "org.opensaml", - "name" : "opensaml-xmlsec-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "XML Security API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a7467d9618a617dde60745aaf89d0c457ac0caf8" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-xmlsec-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0762b33b-6689-4e72-9891-270bcfe693b2" - } ], - "type" : "library", - "bom-ref" : "opensaml-xmlsec-api-4.3.2.jar-2" - }, { - "group" : "react-transition-group", - "name" : "react-transition-group-4.4.2.tgz", - "version" : "4.4.2", - "description" : "A react component toolset for managing animations", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8b59a56f09ced7b55cbd53c36768b922890d5470" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2018 React Community,Copyright 2018 React Community,Copyright 2013 Facebook, Inc,Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/react-transition-group@4.4.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/reactjs/react-transition-group#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cb5fd197-1336-425e-a684-9dffc7df2eb9" - } ], - "type" : "library", - "bom-ref" : "react-transition-group-4.4.2.tgz" - }, { - "group" : "com.microsoft.sqlserver", - "name" : "mssql-jdbc-12.10.0.jre11.jar", - "version" : "12.10.0.jre11", - "description" : "Microsoft JDBC Driver for SQL Server.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5f1b09d67cd03170d87d5e288638c851632488e1" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.microsoft.sqlserver/mssql-jdbc@12.10.0.jre11", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/Microsoft/mssql-jdbc" - }, { - "type" : "distribution", - "url" : "https://github.com/Microsoft/mssql-jdbc" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7d593230-5fcf-4478-bae0-635e0e2e1cde" - } ], - "type" : "library", - "bom-ref" : "mssql-jdbc-12.10.0.jre11.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ce-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ce-common-25.4-SNAPSHOT" - }, { - "group" : "internmap", - "name" : "internmap-2.0.3.tgz", - "version" : "2.0.3", - "description" : "Map and Set with automatic key interning", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6685f23755e43c524e251d29cbc97248e3061009" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2021 Mike Bostock", - "purl" : "pkg:npm/internmap@2.0.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/mbostock/internmap/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "42396cd7-03f0-4df7-a604-5edab7ac77cc" - } ], - "type" : "library", - "bom-ref" : "internmap-2.0.3.tgz" - }, { - "group" : "com.sonarsource.plsql", - "name" : "sonar-plsql-plugin-3.15.0.7123.sonar-plugin", - "version" : "3.15.0.7123", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "da9f2e408e4bacf17b8769d14199bfcbb2fbc44a" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d1a80937-3a11-4885-b91e-f36a4295998b" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-plsql-plugin-3.15.0.7123.sonar-plugin" - }, { - "group" : "date-fns", - "name" : "date-fns-4.1.0.tgz", - "version" : "4.1.0", - "description" : "Modern JavaScript date utility library", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "64b3d83fff5aa80438f5b1a633c2e83b8a1c2d14" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sasha Koss,Copyright 2021 Sasha Koss and Lesha Koss https://kossnocorp.mit-license.org", - "purl" : "pkg:npm/date-fns@4.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/date-fns/date-fns#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1d36b2e5-2f8d-4995-8527-49f88887ef9b" - } ], - "type" : "library", - "bom-ref" : "date-fns-4.1.0.tgz" - }, { - "group" : "@babel/code-frame", - "name" : "code-frame-7.16.7.tgz", - "version" : "7.16.7", - "description" : "Generate errors that contain a code frame that point to source locations.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "44416b6bd7624b998f5b1af5d470856c40138789" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors,Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/code-frame@7.16.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-code-frame" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "77a797de-ff4b-4090-a8df-0897eb380dbf" - } ], - "type" : "library", - "bom-ref" : "code-frame-7.16.7.tgz" - }, { - "group" : "org.apache.commons", - "name" : "commons-email2-jakarta-2.0.0-M1.jar", - "version" : "2.0.0-M1", - "description" : "Apache Commons Email provides an API for sending email, simplifying the JavaMail Javax API.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e9bce9c8aaa5e90f94c4a4209b5e2970fe301c6a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2001-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.commons/commons-email2-jakarta@2.0.0-M1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0251940c-417f-4c45-b450-9b0779e9434d" - } ], - "type" : "library", - "bom-ref" : "commons-email2-jakarta-2.0.0-M1.jar" - }, { - "group" : "object-assign", - "name" : "object-assign-4.1.1.tgz", - "version" : "4.1.1", - "description" : "ES2015 `Object.assign()` ponyfill", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2109adc7965887cfc05cbbd442cac8bfbb360863" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com),Copyright Sindre Sorhus", - "purl" : "pkg:npm/object-assign@4.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/object-assign#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "0e7bdc16-4783-48e2-a9f6-bbc27a6e2677" - } ], - "type" : "library", - "bom-ref" : "object-assign-4.1.1.tgz" - }, { - "group" : "org.sonarsource.python", - "name" : "python-checks-5.2.0.20808.jar", - "version" : "5.2.0.20808", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7de761b0b91e136b735213a199ac5887bd54dfab" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.python/python-checks@5.2.0.20808", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dd14cf7d-2bf2-4a2d-8f3d-a1b9202857dd" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "python-checks-5.2.0.20808.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-enterprise-server-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-enterprise-server-2025.3-SNAPSHOT-2" - }, { - "group" : "hoist-non-react-statics", - "name" : "hoist-non-react-statics-3.3.2.tgz", - "version" : "3.3.2", - "description" : "Copies non-react specific statics from a child component to a parent component", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Copyright 2015 Yahoo!", - "purl" : "pkg:npm/hoist-non-react-statics@3.3.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/mridgway/hoist-non-react-statics#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9001fc1d-eaa8-436e-b66a-bb5fcdf3cfe7" - } ], - "type" : "library", - "bom-ref" : "hoist-non-react-statics-3.3.2.tgz" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-highlighter-8.11.3.jar", - "version" : "8.11.3", - "description" : "This is the highlighter for apache lucene java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "213d092ae56000544cdaf05eee34e400f5546ed4" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011-2016 Yann Collet,Copyright 2007-2011 Dawid Weiss,Copyright 2001-2004 Copyright,Copyright 2001-2009 Anders Moeller,Copyright 2006 Dawid Weiss,Copyright 1999-2010 International Business Machines,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 2001-2021 The Apache Software Foundation,Copyright 2001 Dr Martin Porter,Copyright © 2003,,Copyright 2002 Richard Boulton,Copyright 1995-2008 International Business Machines Corporation and others,Copyright 2009 by www.imdict.net,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.lucene/lucene-highlighter@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ba13b0ad-2917-4926-9f55-95422d98e9af" - } ], - "type" : "library", - "bom-ref" : "lucene-highlighter-8.11.3.jar" - }, { - "group" : "react-dom", - "name" : "react-dom-18.3.1.tgz", - "version" : "18.3.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c2265d79511b57d479b3dd3fdfa51536494c5cb4" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Facebook, Inc. and its affiliates", - "purl" : "pkg:npm/react-dom@18.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://reactjs.org/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "070023be-6813-48e3-bbcb-9d9d83668885" - } ], - "type" : "library", - "bom-ref" : "react-dom-18.3.1.tgz" - }, { - "group" : "regenerator-runtime", - "name" : "regenerator-runtime-0.13.5.tgz", - "version" : "0.13.5", - "description" : "Runtime for Regenerator-compiled generator and async functions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d878a1d094b4306d10b9096484b33ebd55e26697" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Facebook, Inc", - "purl" : "pkg:npm/regenerator-runtime@0.13.5", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "8ff45586-77d5-4c8d-b085-24c2a3af7c84" - } ], - "type" : "library", - "bom-ref" : "regenerator-runtime-0.13.5.tgz" - }, { - "group" : "@floating-ui/dom", - "name" : "dom-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "66aa747e15894910869bf9144fc54fc7d6e9f975" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2021 Floating UI contributors,Copyright 2021 Floating UI contributors", - "purl" : "pkg:npm/%40floating-ui/dom@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://floating-ui.com" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e1fa1d38-fb03-476e-8154-b4b458f956f9" - } ], - "type" : "library", - "bom-ref" : "dom-1.1.1.tgz" - }, { - "group" : "org.sonarsource.xml", - "name" : "sonar-xml-plugin-2.12.0.5749.jar", - "version" : "2.12.0.5749", - "description" : "Code Analyzer for XML", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a0beb90c9e62cca0a2320cd243c6e3b4335c19b8" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright 1999 Sun Microsystems., http://www.sun.com,SonarSource,Copyright 1999-2009 The Apache Software Foundation", - "purl" : "pkg:maven/org.sonarsource.xml/sonar-xml-plugin@2.12.0.5749", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/xml.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/xml.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "315d51be-86ad-47f0-92f9-dfcfe87492c1" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-xml-plugin-2.12.0.5749.jar" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-config-io-1.9.0.4841.jar", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "68f34473e948972d10914bbe20a3eb51004b70ba" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6efe0c1a-3ed6-4c3e-86b4-b0fea47b218a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-config-io-1.9.0.4841.jar" - }, { - "group" : "@gilbarbara/deep-equal", - "name" : "deep-equal-0.3.1.tgz", - "version" : "0.3.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9c72ed0b2e6f8edb1580217e28d78b5b03ad4aee" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2022 Gil Barbara", - "purl" : "pkg:npm/%40gilbarbara/deep-equal@0.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/gilbarbara/deep-equal#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@gilbarbara/deep-equal/-/deep-equal-0.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "525b4cfd-71c6-4026-9cd6-e1b17854067a" - } ], - "type" : "library", - "bom-ref" : "deep-equal-0.3.1.tgz" - }, { - "group" : "com.sonarsource.dbd", - "name" : "platform-1.36.1.13250.jar", - "version" : "1.36.1.13250", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "349f5aecf7fdd990d37d309a40c625f39abc0188" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "c95e05fe-2d9d-4cfa-ad86-96e50b68c382" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "platform-1.36.1.13250.jar" - }, { - "group" : "org.sonarsource.javascript", - "name" : "css-10.21.1.30825.jar", - "version" : "10.21.1.30825", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fc3622d524366ba804400f80d3cb1a5b0153a892" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.javascript/css@10.21.1.30825", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "59322aeb-764c-48fa-8aa7-4960c57acaa6" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "css-10.21.1.30825.jar" - }, { - "group" : "org.sonarsource.dotnet", - "name" : "sonar-csharp-plugin-10.7.0.110445.jar", - "version" : "10.7.0.110445", - "description" : "Code Analyzer for C#", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "844b7fd7376830569c362a9b7eac594b909df8a5" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 1999-2009 The Apache Software Foundation,Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,", - "purl" : "pkg:maven/org.sonarsource.dotnet/sonar-csharp-plugin@10.7.0.110445", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/csharp.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/csharp.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "acb97dd7-17b1-427c-8639-afc4a01d4755" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-csharp-plugin-10.7.0.110445.jar-2" - }, { - "group" : "tslib", - "name" : "tslib-2.8.1.tgz", - "version" : "2.8.1", - "description" : "Runtime library for TypeScript helper functions", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "612efe4ed235d567e8aba5f2a5fab70280ade83f" - } ], - "licenses" : [ { - "license" : { - "id" : "0BSD", - "url" : "https://spdx.org/licenses/0BSD.html" - } - } ], - "copyright" : "Copyright Microsoft Corporation,Copyright Microsoft Corporation", - "purl" : "pkg:npm/tslib@2.8.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.typescriptlang.org/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "998449d2-4bcf-4cd7-995f-3c8e560b58e4" - } ], - "type" : "library", - "bom-ref" : "tslib-2.8.1.tgz" - }, { - "group" : "com.sonarsource.plsql", - "name" : "plsql-checks-3.15.0.7123.jar", - "version" : "3.15.0.7123", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "172494894c7b8e929b2454abea7785a8d0aadc62" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b787678b-4518-4e7b-94e3-1f365a7b174c" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "plsql-checks-3.15.0.7123.jar-2" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-sca-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-sca-2025.3-SNAPSHOT-3" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-sca-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-sca-2025.3-SNAPSHOT-2" - }, { - "group" : "@babel/runtime", - "name" : "runtime-7.16.3.tgz", - "version" : "7.16.3", - "description" : "babel's modular runtime helpers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b86f0db02a04187a3c17caa77de69840165d42d5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors,Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/runtime@7.16.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-runtime" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "41d0b8b6-009c-4f59-884d-79bf23395d3b" - } ], - "type" : "library", - "bom-ref" : "runtime-7.16.3.tgz" - }, { - "group" : "@emotion/hash", - "name" : "hash-0.9.0.tgz", - "version" : "0.9.0", - "description" : "A MurmurHash2 implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c5153d50401ee3c027a57a177bc269b16d889cb7" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2016 Kye Hohenberger,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/hash@0.9.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "40c97dba-ec03-444c-9e68-28bba7a1de90" - } ], - "type" : "library", - "bom-ref" : "hash-0.9.0.tgz" - }, { - "group" : "@emotion/sheet", - "name" : "sheet-1.1.0.tgz", - "version" : "1.1.0", - "description" : "emotion's stylesheet", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "56d99c41f0a1cda2726a05aa6a20afd4c63e58d2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/sheet@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "da776a1c-2d63-41d1-9d44-6ad8d37f0ff1" - } ], - "type" : "library", - "bom-ref" : "sheet-1.1.0.tgz" - }, { - "group" : "org.sonarsource.api.plugin", - "name" : "sonar-plugin-api-11.3.0.2824.jar", - "version" : "11.3.0.2824", - "description" : "Plugin API for SonarQube, SonarCloud and SonarLint", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b41b466867cabe30dc8214303c9e202c35987ec8" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2002-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.sonarsource.api.plugin/sonar-plugin-api@11.3.0.2824", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.sonarqube.org/" - }, { - "type" : "distribution", - "url" : "https://www.sonarqube.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "41bb1300-af8f-4b68-a07e-a45e9a0d85f2" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-plugin-api-11.3.0.2824.jar-2" - }, { - "group" : "@radix-ui/react-presence", - "name" : "react-presence-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "227d84d20ca6bfe7da97104b1a8b48a833bfb478" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-presence@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f69b7089-b597-4aae-9706-ff2222c8408c" - } ], - "type" : "library", - "bom-ref" : "react-presence-1.1.0.tgz" - }, { - "group" : "linkify-it", - "name" : "linkify-it-5.0.0.tgz", - "version" : "5.0.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9ef238bfa6dc70bd8e7f9572b52d369af569b421" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Vitaly Puzrin", - "purl" : "pkg:npm/linkify-it@5.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/markdown-it/linkify-it#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "a5b67154-40ca-44e7-9d1c-552ad3d3bfbe" - } ], - "type" : "library", - "bom-ref" : "linkify-it-5.0.0.tgz" - }, { - "group" : "string-width", - "name" : "string-width-5.1.2.tgz", - "version" : "5.1.2", - "description" : "Get the visual width of a string - the number of columns required to display it", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "14f8daec6d81e7221d2a357e668cab73bdbca794" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/string-width@5.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/string-width#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ca5e9653-2f42-45ea-b52c-33bfd8349a90" - } ], - "type" : "library", - "bom-ref" : "string-width-5.1.2.tgz-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-protocol-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-protocol-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-protocol-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-protocol-25.4-SNAPSHOT-3" - }, { - "group" : "com.zaxxer", - "name" : "HikariCP-6.2.1.jar", - "version" : "6.2.1", - "description" : "Ultimate JDBC Connection Pool", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2d60b91e74ee4ff10fc9a395d10b3b9c7061ef87" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2013-2014 Brett Wooldridge", - "purl" : "pkg:maven/com.zaxxer/HikariCP@6.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/brettwooldridge/HikariCP" - }, { - "type" : "distribution", - "url" : "https://github.com/brettwooldridge/HikariCP" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "59533565-20e4-4253-9c42-9cc98162e7c9" - } ], - "type" : "library", - "bom-ref" : "HikariCP-6.2.1.jar-2" - }, { - "group" : "org.opensaml", - "name" : "opensaml-xmlsec-impl-4.3.2.jar", - "version" : "4.3.2", - "description" : "XML Security Implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "78d70309495819d4d0670ef1476a4d7321b166a6" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-xmlsec-impl@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9b6890d9-536b-46f0-b2e9-dd6e9975d846" - } ], - "type" : "library", - "bom-ref" : "opensaml-xmlsec-impl-4.3.2.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-protocol-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-protocol-25.4-SNAPSHOT-4" - }, { - "group" : "io.lacuna", - "name" : "bifurcan-0.1.0.jar", - "version" : "0.1.0", - "description" : "impure functional data structures", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0c470063c40f4d64f86dbc4f8fd876e90e73c7e5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/io.lacuna/bifurcan@0.1.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/lacuna/bifurcan" - }, { - "type" : "distribution", - "url" : "https://github.com/lacuna/bifurcan" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d6686bec-bb3c-4c64-9dfd-dfec641d76db" - } ], - "type" : "library", - "bom-ref" : "bifurcan-0.1.0.jar" - }, { - "group" : "org.sonarsource.dotnet", - "name" : "sonar-vbnet-core-10.7.0.110445.jar", - "version" : "10.7.0.110445", - "description" : "Shared code between VB.NET plugins", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a597df03f1805a11f4814d2bff46ded446f30b1f" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.dotnet/sonar-vbnet-core@10.7.0.110445", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/SonarSource/sonar-dotnet" - }, { - "type" : "distribution", - "url" : "https://github.com/SonarSource/sonar-dotnet" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "45b7b76b-d08c-4795-9e02-4f819b35e6da" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-vbnet-core-10.7.0.110445.jar" - }, { - "group" : "react-remove-scroll-bar", - "name" : "react-remove-scroll-bar-2.3.8.tgz", - "version" : "2.3.8", - "description" : "Removes body scroll without content _shake_", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "99c20f908ee467b385b68a3469b4a3e750012223" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/react-remove-scroll-bar@2.3.8", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/react-remove-scroll-bar#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "5d5c3fbb-7333-4195-b8c5-ddc4f5e1a055" - } ], - "type" : "library", - "bom-ref" : "react-remove-scroll-bar-2.3.8.tgz" - }, { - "group" : "react-day-picker", - "name" : "react-day-picker-8.10.1.tgz", - "version" : "8.10.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4762ec298865919b93ec09ba69621580835b8e80" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014-2024 Giampaolo Bellavite <io@gpbl.dev> and contributors", - "purl" : "pkg:npm/react-day-picker@8.10.1", - "externalReferences" : [ { - "type" : "website", - "url" : "http://react-day-picker.js.org" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "93c37d50-ecd3-4089-b883-5102585778d4" - } ], - "type" : "library", - "bom-ref" : "react-day-picker-8.10.1.tgz" - }, { - "group" : "mime-types", - "name" : "mime-types-2.1.35.tgz", - "version" : "2.1.35", - "description" : "The ultimate javascript content-type utility.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "381a871b62a734450660ae3deee44813f70d959a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Douglas Christopher Wilson <doug@somethingdoug.com>,Copyright 2014 Jonathan Ong <me@jongleberry.com>", - "purl" : "pkg:npm/mime-types@2.1.35", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/jshttp/mime-types#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "12856dde-2f2d-4c9e-bd46-ea6332f10ba5" - } ], - "type" : "library", - "bom-ref" : "mime-types-2.1.35.tgz" - }, { - "group" : "is-lite", - "name" : "is-lite-0.8.2.tgz", - "version" : "0.8.2", - "description" : "A tiny javascript type testing tool", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "26ab98b32aae8cc8b226593b9a641d2bf4bd3b6a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2019 Gil Barbara \"gilbarbara@gmail.com\" (mailto:gilbarbara@gmail.com)\" (https://github.com/gilbarbara),Copyright 2018 Gil Barbara", - "purl" : "pkg:npm/is-lite@0.8.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/gilbarbara/is-lite#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/is-lite/-/is-lite-0.8.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "3d7d5127-4ebd-4021-81a8-8a65b9094104" - } ], - "type" : "library", - "bom-ref" : "is-lite-0.8.2.tgz" - }, { - "group" : "balanced-match", - "name" : "balanced-match-1.0.0.tgz", - "version" : "1.0.0", - "description" : "Match balanced character pairs, like \"{\" and \"}\"", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "89b4d199ab2bee49de164ea02b89ce462d71b767" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Julian Gruber <julian@juliangruber.com>", - "purl" : "pkg:npm/balanced-match@1.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/juliangruber/balanced-match" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cd930120-d2dd-4e0f-aa3f-52266ee4e0b9" - } ], - "type" : "library", - "bom-ref" : "balanced-match-1.0.0.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-monitoring-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-monitoring-2025.3-SNAPSHOT" - }, { - "group" : "dompurify", - "name" : "dompurify-3.2.4.tgz", - "version" : "3.2.4", - "description" : "DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It's written in JavaScript and works in all modern browsers (Safari, Opera (15+), Internet Explorer (10+), Firefox and Chrome - as well as almost anything else usin", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "af5a5a11407524431456cf18836c55d13441cd8e" - } ], - "licenses" : [ { - "license" : { - "id" : "MPL-2.0", - "url" : "http://mozilla.org/MPL/2.0/index.html" - } - }, { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2025 Dr", - "purl" : "pkg:npm/dompurify@3.2.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/cure53/DOMPurify" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1703573c-9c52-450e-a6bf-b98bb5b0d68c" - } ], - "type" : "library", - "bom-ref" : "dompurify-3.2.4.tgz" - }, { - "group" : "org.jetbrains.kotlin", - "name" : "kotlin-stdlib-jdk7-1.9.10.jar", - "version" : "1.9.10", - "description" : "Kotlin Standard Library JDK 7 extension", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bc5bfc2690338defd5195b05c57562f2194eeb10" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.10?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://kotlinlang.org/" - }, { - "type" : "distribution", - "url" : "https://kotlinlang.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2a529f62-a94a-4a6e-a528-3be93ee72c5f" - } ], - "type" : "library", - "bom-ref" : "kotlin-stdlib-jdk7-1.9.10.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-gitlab-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-gitlab-25.4-SNAPSHOT" - }, { - "group" : "org.opensaml", - "name" : "opensaml-profile-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "Profile API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e4885283f8f79213170a14822f9806211ff7ca8d" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-profile-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2fd34190-f3d1-42f3-b873-5f11094fb005" - } ], - "type" : "library", - "bom-ref" : "opensaml-profile-api-4.3.2.jar" - }, { - "group" : "org.yaml", - "name" : "snakeyaml-2.4.jar", - "version" : "2.4", - "description" : "YAML 1.1 parser and emitter for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e0666b825b796f85521f02360e77f4c92c5a7a07" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.yaml/snakeyaml@2.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://bitbucket.org/snakeyaml/snakeyaml" - }, { - "type" : "distribution", - "url" : "https://bitbucket.org/snakeyaml/snakeyaml" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f955c091-588a-4342-8e27-31b8364db2ec" - } ], - "type" : "library", - "bom-ref" : "snakeyaml-2.4.jar" - }, { - "group" : "org.sonarsource.java", - "name" : "java-surefire-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4aaef3ec004b5b8f5c7976031562c5dac2ec6178" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-surefire@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "781302a2-f0cb-4f63-9e6f-be31e9c34532" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-surefire-8.11.0.38440.jar" - }, { - "group" : "it.unimi.dsi", - "name" : "fastutil-8.5.13.jar", - "version" : "8.5.13", - "description" : "fastutil extends the Java Collections Framework by providing type-specific maps, sets, lists, and queues with a small memory footprint and fast access and insertion; it provides also big (64-bit) arrays, sets and lists, sorting algorithms, fast, practical I/O classes for binary and text files, and facilities for memory mapping large files. Note that if you have both this jar and fastutil-core.jar in your dependencies, fastutil-core.jar should be excluded.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7d1178e207e85b8990347d30f9d1d620cad858f4" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/it.unimi.dsi/fastutil@8.5.13?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://fastutil.di.unimi.it/" - }, { - "type" : "distribution", - "url" : "http://fastutil.di.unimi.it/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "eab687fc-45c8-4f71-aed3-b97c85c18ae5" - } ], - "type" : "library", - "bom-ref" : "fastutil-8.5.13.jar" - }, { - "group" : "com.sonarsource.dbd", - "name" : "engine-1.36.1.13250.jar", - "version" : "1.36.1.13250", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bdea6af82413f4679ad114d57e17bb49cd75f8e0" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "20acdac5-c4a1-4e71-87dd-f96cb7365884" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "engine-1.36.1.13250.jar-2" - }, { - "group" : "use-sidecar", - "name" : "use-sidecar-1.1.2.tgz", - "version" : "1.1.2", - "description" : "Sidecar code splitting utils", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Anton Korzunov,Copyright 2017 Anton Korzunov", - "purl" : "pkg:npm/use-sidecar@1.1.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/use-sidecar" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "ee8e03fc-2bc1-464d-98f6-699ad1107559" - } ], - "type" : "library", - "bom-ref" : "use-sidecar-1.1.2.tgz" - }, { - "group" : "org.sonarsource.dotnet", - "name" : "sonar-vbnet-plugin-10.7.0.110445.jar", - "version" : "10.7.0.110445", - "description" : "Code Analyzer for VB.NET", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ce37c949a4e5305cb1e641cb029d65f007fa5d22" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 1999 Sun Microsystems., http://www.sun.com,SonarSource,Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,,Copyright 1999-2009 The Apache Software Foundation,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.dotnet/sonar-vbnet-plugin@10.7.0.110445", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/vbnet.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/vbnet.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2a0d8a63-63d3-416e-92ce-51424ec8c6ea" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-vbnet-plugin-10.7.0.110445.jar" - }, { - "group" : "@types/parse-json", - "name" : "parse-json-4.0.0.tgz", - "version" : "4.0.0", - "description" : "TypeScript definitions for parse-json", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/parse-json@4.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "80d74d38-1c5e-4ff9-bd55-c4dc7b12f87f" - } ], - "type" : "library", - "bom-ref" : "parse-json-4.0.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT" - }, { - "group" : "com.fasterxml.jackson.dataformat", - "name" : "jackson-dataformat-toml-2.18.3.jar", - "version" : "2.18.3", - "description" : "Support for reading and writing TOML-encoded data via Jackson abstractions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "336d144daa471ab11a7672f68565b6afb6914ced" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.dataformat/jackson-dataformat-toml@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fb697e5e-063f-42b4-8e3b-75dad142876e" - } ], - "type" : "library", - "bom-ref" : "jackson-dataformat-toml-2.18.3.jar" - }, { - "group" : "@babel/runtime", - "name" : "runtime-7.18.9.tgz", - "version" : "7.18.9", - "description" : "babel's modular runtime helpers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/runtime@7.18.9", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-runtime" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "703cecbf-bcda-416c-8acf-4b2504fbbd1e" - } ], - "type" : "library", - "bom-ref" : "runtime-7.18.9.tgz-3" - }, { - "group" : "@babel/runtime", - "name" : "runtime-7.18.9.tgz", - "version" : "7.18.9", - "description" : "babel's modular runtime helpers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/runtime@7.18.9", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-runtime" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "703cecbf-bcda-416c-8acf-4b2504fbbd1e" - } ], - "type" : "library", - "bom-ref" : "runtime-7.18.9.tgz-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-16" - }, { - "group" : "@emotion/memoize", - "name" : "memoize-0.9.0.tgz", - "version" : "0.9.0", - "description" : "emotion's memoize utility", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "745969d649977776b43fc7648c556aaa462b4102" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/memoize@0.9.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "73cf0cf1-df0f-4396-9b99-1e10251b704e" - } ], - "type" : "library", - "bom-ref" : "memoize-0.9.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-15" - }, { - "group" : "io.prometheus", - "name" : "simpleclient-0.16.0.jar", - "version" : "0.16.0", - "description" : "Core instrumentation library for the simpleclient.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "28b0eaf7c500c506976da8d0fc9cad6c278e8d87" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2015 The Prometheus Authors", - "purl" : "pkg:maven/io.prometheus/simpleclient@0.16.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://github.com/prometheus/client_java" - }, { - "type" : "distribution", - "url" : "http://github.com/prometheus/client_java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4ddf1936-ca55-4b1d-81b9-6bd36ac171bb" - } ], - "type" : "library", - "bom-ref" : "simpleclient-0.16.0.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-10" - }, { - "group" : "com.github.scribejava", - "name" : "scribejava-apis-8.3.3.jar", - "version" : "8.3.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0298af304ea01e420110b9d6880f2bef9c41bc8b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2010 Pablo Fernandez,Copyright 2010 Pablo Fernandez Permission is hereby granted, free of charge, to any person obtaining a copy of this", - "purl" : "pkg:maven/com.github.scribejava/scribejava-apis@8.3.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0df94331-fdab-446f-bb49-a5f99ddd4f39" - } ], - "type" : "library", - "bom-ref" : "scribejava-apis-8.3.3.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-14" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-13" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-12" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-11" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-25.4-SNAPSHOT-9" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-25.4-SNAPSHOT-7" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-25.4-SNAPSHOT-8" - }, { - "group" : "org.elasticsearch.plugin", - "name" : "aggs-matrix-stats-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Adds aggregations whose input are a list of numeric fields and output includes a matrix.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9e3e0c544553ddc7eb5400ee92a902c93ad3f98f" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - }, { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - } ], - "copyright" : "Copyright 2018 MongoDB, Inc,Copyright 2009-2021 Elasticsearch", - "purl" : "pkg:maven/org.elasticsearch.plugin/aggs-matrix-stats-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d2b1f591-27c5-4363-b240-dd351cf22f2a" - } ], - "type" : "library", - "bom-ref" : "aggs-matrix-stats-client-7.17.28.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-process-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-process-25.4-SNAPSHOT" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-25.4-SNAPSHOT-2" - }, { - "group" : "com.fasterxml.woodstox", - "name" : "woodstox-core-7.0.0.jar", - "version" : "7.0.0", - "description" : "Woodstox is a high-performance XML processor that implements Stax (JSR-173), SAX2 and Stax2 APIs", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "beb19c02e7e28a8a4acf4a9cc8c3280ec3b94722" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.fasterxml.woodstox/woodstox-core@7.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "http://fasterxml.com" - }, { - "type" : "distribution", - "url" : "http://fasterxml.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5409df14-d78c-45ce-9895-3af65c93e233" - } ], - "type" : "library", - "bom-ref" : "woodstox-core-7.0.0.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-25.4-SNAPSHOT-3" - }, { - "group" : "com.sun.activation", - "name" : "jakarta.activation-2.0.1.jar", - "version" : "2.0.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "828b80e886a52bb09fe41ff410b10b342f533ce1" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2018 Oracle and/or its affiliates,Copyright 1997-2021 Oracle and/or its affiliates", - "purl" : "pkg:maven/com.sun.activation/jakarta.activation@2.0.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.eclipse.org" - }, { - "type" : "distribution", - "url" : "https://www.eclipse.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2a163d17-1d85-42b0-be98-d1e290ffcf2c" - } ], - "type" : "library", - "bom-ref" : "jakarta.activation-2.0.1.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-scanner-engine-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-scanner-engine-25.4-SNAPSHOT-4" - }, { - "group" : "d3-timer", - "name" : "d3-timer-3.0.1.tgz", - "version" : "3.0.1", - "description" : "An efficient queue capable of managing thousands of concurrent animations.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6284d2a2708285b1abb7e201eda4380af35e63b0" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2021 Mike Bostock,Copyright 2010-2021 Mike Bostock", - "purl" : "pkg:npm/d3-timer@3.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-timer/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6ef49f66-3fb9-4f39-ae48-81d6fd826c8e" - } ], - "type" : "library", - "bom-ref" : "d3-timer-3.0.1.tgz" - }, { - "group" : "prop-types", - "name" : "prop-types-15.8.1.tgz", - "version" : "15.8.1", - "description" : "Runtime type checking for React props and similar objects.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "67d87bf1a694f48435cf332c24af10214a3140b5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Facebook, Inc,Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/prop-types@15.8.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://facebook.github.io/react/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "60178e0e-d363-4c55-a935-b464dceea180" - } ], - "type" : "library", - "bom-ref" : "prop-types-15.8.1.tgz-2" - }, { - "group" : "@radix-ui/react-focus-scope", - "name" : "react-focus-scope-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5c602115d1db1c4fcfa0fae4c3b09bb8919853cb" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-focus-scope@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f4891a9f-1f1b-4c1e-8354-2024fcff5f4c" - } ], - "type" : "library", - "bom-ref" : "react-focus-scope-1.1.1.tgz" - }, { - "group" : "org.sonarsource.slang", - "name" : "sonar-scala-plugin-1.18.0.266.jar", - "version" : "1.18.0.266", - "description" : "Code Analyzer for Scala", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a863895fe360288d39d9fac6c94edd4e68f98a68" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 1999-2009 The Apache Software Foundation,Copyright 1999 (c),Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright 1999-2022 The Apache Software Foundation,Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 1999 Sun Microsystems., http://www.sun.com", - "purl" : "pkg:maven/org.sonarsource.slang/sonar-scala-plugin@1.18.0.266", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarqube.org/" - }, { - "type" : "distribution", - "url" : "http://www.sonarqube.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d8f899af-4439-4d36-bf29-9200cc1ae878" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-scala-plugin-1.18.0.266.jar" - }, { - "group" : "com.sonarsource.architecture", - "name" : "sonar-architecture-build-tools-1.9.0.4841.jar", - "version" : "1.9.0.4841", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0c86bede915f4719f6fbbdd797b95ba13f6b5701" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b3a77631-f476-49ba-a774-a88007290cc4" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-architecture-build-tools-1.9.0.4841.jar-2" - }, { - "group" : "dom-helpers", - "name" : "dom-helpers-5.2.1.tgz", - "version" : "5.2.1", - "description" : "tiny modular DOM lib for ie9+", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d9400536b2bf8225ad98fe052e029451ac40e902" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Jason Quense", - "purl" : "pkg:npm/dom-helpers@5.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/react-bootstrap/dom-helpers#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c8002d50-f4e0-49b7-8c57-f7b1edadcc6c" - } ], - "type" : "library", - "bom-ref" : "dom-helpers-5.2.1.tgz" - }, { - "group" : "@types/scheduler", - "name" : "scheduler-0.16.2.tgz", - "version" : "0.16.2", - "description" : "TypeScript definitions for scheduler", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a62f89525723dde24ba1b01b092bf5df8ad4d39" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/scheduler@0.16.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/scheduler" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "61d04fa0-79ba-4ec6-9d2a-1e8e79aea8cd" - } ], - "type" : "library", - "bom-ref" : "scheduler-0.16.2.tgz" - }, { - "group" : "entities", - "name" : "entities-4.5.0.tgz", - "version" : "4.5.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "Copyright Felix Böhm", - "purl" : "pkg:npm/entities@4.5.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/fb55/entities#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1ff918db-bef6-4de5-84ac-cafd30756792" - } ], - "type" : "library", - "bom-ref" : "entities-4.5.0.tgz" - }, { - "group" : "org.thymeleaf", - "name" : "thymeleaf-spring6-3.1.3.RELEASE.jar", - "version" : "3.1.3.RELEASE", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4b276ea2bd536a18e44b40ff1d9f4848965ff59c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011-2022 The THYMELEAF team,Copyright 2011-2022 The THYMELEAF team", - "purl" : "pkg:maven/org.thymeleaf/thymeleaf-spring6@3.1.3.RELEASE", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.thymeleaf.org" - }, { - "type" : "distribution", - "url" : "http://www.thymeleaf.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7c13d13b-6af8-4d37-a282-455fffc5fb34" - } ], - "type" : "library", - "bom-ref" : "thymeleaf-spring6-3.1.3.RELEASE.jar" - }, { - "group" : "org.sonarsource.flex", - "name" : "flex-squid-2.14.0.5032.jar", - "version" : "2.14.0.5032", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b4baf59112c7c84bbec45b542ee8524cde9f0387" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.flex/flex-squid@2.14.0.5032", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5db5e600-0cd1-4451-8138-19c4b08b28b6" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "flex-squid-2.14.0.5032.jar" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "webapp-assets-enterprise-2025.3.0.14738.jar", - "version" : "2025.3.0.14738", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3f89f4c58971916a39c646d794e22943801fa867" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "194cb825-59c8-40c7-9138-cd288ef018f7" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "webapp-assets-enterprise-2025.3.0.14738.jar" - }, { - "group" : "org.sonarsource.java", - "name" : "jdt-package-1.3.0.89.jar", - "version" : "1.3.0.89", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "76008c8bf12bd13df04b243ac907689377c614ac" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.java/jdt-package@1.3.0.89", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "809c4de3-7b50-4ce1-a9d5-0d5e7218c1af" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "jdt-package-1.3.0.89.jar" - }, { - "group" : "@formatjs/intl-listformat", - "name" : "intl-listformat-7.5.7.tgz", - "version" : "7.5.7", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "125e05105fabd1ae5f11881d6ab74484f2098ee4" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2023 FormatJS", - "purl" : "pkg:npm/%40formatjs/intl-listformat@7.5.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/formatjs/formatjs" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.5.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1f54d08d-7f02-4ae4-8145-0cdee19cbcbb" - } ], - "type" : "library", - "bom-ref" : "intl-listformat-7.5.7.tgz" - }, { - "group" : "org.apache.pdfbox", - "name" : "fontbox-3.0.4.jar", - "version" : "3.0.4", - "description" : "The Apache FontBox library is an open source Java tool to obtain low level information from font files. FontBox is a subproject of Apache PDFBox.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c962ddd72b28fe781ad068bd5bd2b268ad56119e" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011 Lohit Fonts Project contributors,Copyright 2006-2007 www.fontbox.org,The Apache Software Foundation,Copyright 2006-2007 www.fontbox.org,Copyright 2017 Unicode, Inc,Copyright 2008-2024 The Apache Software Foundation,Copyright 2011-2024 font Copyright", - "purl" : "pkg:maven/org.apache.pdfbox/fontbox@3.0.4", - "externalReferences" : [ { - "type" : "website", - "url" : "http://pdfbox.apache.org/" - }, { - "type" : "distribution", - "url" : "http://pdfbox.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1732d5b2-8d47-4ff4-897c-a023e7f5eb35" - } ], - "type" : "library", - "bom-ref" : "fontbox-3.0.4.jar" - }, { - "group" : "com.sonarsource.pli", - "name" : "pli-checks-1.16.0.5325.jar", - "version" : "1.16.0.5325", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "394238150404a0f49f2ecbd3bb620f0574606096" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5fac1171-9bf0-4751-a1ff-0feb7bd5f674" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "pli-checks-1.16.0.5325.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-alm-client-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-alm-client-25.4-SNAPSHOT-11" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-alm-client-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-alm-client-25.4-SNAPSHOT-10" - }, { - "group" : "org.eclipse.jgit", - "name" : "org.eclipse.jgit-7.2.0.202503040940-r.jar", - "version" : "7.2.0.202503040940-r", - "description" : "Repository access and algorithms", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8d9379845e9d37b58b187abbab2f7a6b63b59f65" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - }, { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2009 Google Inc,Copyright 2009 Igor Fedorenko <igor@ifedorenko.com>,Copyright 2008 Imran M Yousuf <imyousuf@smartitengineering.com>,Copyright 2010 Matthias Sohn <matthias.sohn@sap.com> and others", - "purl" : "pkg:maven/org.eclipse.jgit/org.eclipse.jgit@7.2.0.202503040940-r", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.eclipse.org/jgit/" - }, { - "type" : "distribution", - "url" : "https://www.eclipse.org/jgit/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "c23e329a-deb6-4710-bc7a-bb76e1d9be12" - } ], - "type" : "library", - "bom-ref" : "org.eclipse.jgit-7.2.0.202503040940-r.jar" - }, { - "group" : "detect-node-es", - "name" : "detect-node-es-1.1.0.tgz", - "version" : "1.1.0", - "description" : "Detect Node.JS (as opposite to browser environment). ESM modification", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "163acdf643330caa0b4cd7c21e7ee7755d6fa493" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Ilya Kantor", - "purl" : "pkg:npm/detect-node-es@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/thekashey/detect-node" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "a34b7253-aee1-49af-8f07-d8570dc5f606" - } ], - "type" : "library", - "bom-ref" : "detect-node-es-1.1.0.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-fix-suggestions-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-fix-suggestions-2025.3-SNAPSHOT" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-core-2.18.3.jar", - "version" : "2.18.3", - "description" : "Core Jackson processing abstractions (aka Streaming API), implementation for JSON", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "78f80c259268200e588aa204dd97ecf09b76916e" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2022 Daniel Lemire,Copyright 2024 Werner Randelshofer, Switzerland,Copyright 2020 Tim Buktu. 2-clause BSD License,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi),FasterXML,Copyright 2021 The fast_float authors,Copyright 2023 Werner Randelshofer, Switzerland", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-core@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-core" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-core" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e3f785d8-dcec-4ce5-9087-5da2c7ac65ef" - } ], - "type" : "library", - "bom-ref" : "jackson-core-2.18.3.jar-2" - }, { - "group" : "@formatjs/intl-localematcher", - "name" : "intl-localematcher-0.5.4.tgz", - "version" : "0.5.4", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "caa71f2e40d93e37d58be35cfffe57865f2b366f" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2023 FormatJS", - "purl" : "pkg:npm/%40formatjs/intl-localematcher@0.5.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/formatjs/formatjs#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6e5af185-6c28-4110-b3f3-ed88499cab24" - } ], - "type" : "library", - "bom-ref" : "intl-localematcher-0.5.4.tgz" - }, { - "group" : "com.google.code.findbugs", - "name" : "jsr305-3.0.2.jar", - "version" : "3.0.2", - "description" : "JSR305 Annotations for Findbugs", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "25ea2e8b0c338a877313bd4672d3fe056ea78f0d" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright (c)", - "purl" : "pkg:maven/com.google.code.findbugs/jsr305@3.0.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://findbugs.sourceforge.net/" - }, { - "type" : "distribution", - "url" : "http://findbugs.sourceforge.net/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7ec37a38-9b53-4f7c-b61e-b9a4f0945086" - } ], - "type" : "library", - "bom-ref" : "jsr305-3.0.2.jar" - }, { - "group" : "com.fasterxml.staxmate", - "name" : "staxmate-2.4.1.jar", - "version" : "2.4.1", - "description" : "StaxMate is a light-weight framework that adds convenience to streaming XML-processing without significant additional overhead. It builds on top of a Stax (JSR-173) compliant XML processors such as Woodstox or Sjsxp (default Stax implementation of JDK 1.6) and offers two basic abstractions: Cursors, which build on XMLStreamReaders and Output objects, which build on XMLStreamWriters.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a61f6c66e732c05ca5d75269ac5d2ea288d22c9" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.fasterxml.staxmate/staxmate@2.4.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f50233a6-b6e6-43dd-a8ac-3630b3fc2e5c" - } ], - "type" : "library", - "bom-ref" : "staxmate-2.4.1.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-14" - }, { - "group" : "net.bytebuddy", - "name" : "byte-buddy-agent-1.15.11.jar", - "version" : "1.15.11", - "description" : "The Byte Buddy agent offers convenience for attaching an agent to the local or a remote VM.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a38b16385e867f59a641330f0362ebe742788ed8" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2014 Present Rafael Winterhalter", - "purl" : "pkg:maven/net.bytebuddy/byte-buddy-agent@1.15.11", - "externalReferences" : [ { - "type" : "website", - "url" : "https://bytebuddy.net" - }, { - "type" : "distribution", - "url" : "https://bytebuddy.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b0b612d0-abc5-4016-9314-8d81cc8c674c" - } ], - "type" : "library", - "bom-ref" : "byte-buddy-agent-1.15.11.jar" - }, { - "group" : "com.fasterxml.staxmate", - "name" : "staxmate-2.4.1.jar", - "version" : "2.4.1", - "description" : "StaxMate is a light-weight framework that adds convenience to streaming XML-processing without significant additional overhead. It builds on top of a Stax (JSR-173) compliant XML processors such as Woodstox or Sjsxp (default Stax implementation of JDK 1.6) and offers two basic abstractions: Cursors, which build on XMLStreamReaders and Output objects, which build on XMLStreamWriters.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a61f6c66e732c05ca5d75269ac5d2ea288d22c9" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.fasterxml.staxmate/staxmate@2.4.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f50233a6-b6e6-43dd-a8ac-3630b3fc2e5c" - } ], - "type" : "library", - "bom-ref" : "staxmate-2.4.1.jar-4" - }, { - "group" : "com.fasterxml.staxmate", - "name" : "staxmate-2.4.1.jar", - "version" : "2.4.1", - "description" : "StaxMate is a light-weight framework that adds convenience to streaming XML-processing without significant additional overhead. It builds on top of a Stax (JSR-173) compliant XML processors such as Woodstox or Sjsxp (default Stax implementation of JDK 1.6) and offers two basic abstractions: Cursors, which build on XMLStreamReaders and Output objects, which build on XMLStreamWriters.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a61f6c66e732c05ca5d75269ac5d2ea288d22c9" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-2-Clause", - "url" : "http://opensource.org/licenses/bsd-license" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.fasterxml.staxmate/staxmate@2.4.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f50233a6-b6e6-43dd-a8ac-3630b3fc2e5c" - } ], - "type" : "library", - "bom-ref" : "staxmate-2.4.1.jar-3" - }, { - "group" : "org.jacoco", - "name" : "org.jacoco.report-0.8.11.jar", - "version" : "0.8.11", - "description" : "JaCoCo Report", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "177b88cc906c3251250cef5ef9bbdda548cdc1c5" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - }, { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - }, { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Mountainminds GmbH & Co. KG,Copyright 2009-2023 Mountainminds GmbH", - "purl" : "pkg:maven/org.jacoco/org.jacoco.report@0.8.11?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://jacoco.org" - }, { - "type" : "distribution", - "url" : "http://jacoco.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "633d23b3-21f1-4a16-b2ff-d9f2a130e738" - } ], - "type" : "library", - "bom-ref" : "org.jacoco.report-0.8.11.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-11" - }, { - "group" : "org.sonarsource.java", - "name" : "java-checks-aws-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "747cffe03dd24da4cb69af94923fad9c98c05150" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-checks-aws@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "94b88f05-dbc8-41b3-8a83-a21d36e9abe7" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-checks-aws-8.11.0.38440.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-10" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-13" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-migration-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-migration-25.4-SNAPSHOT-12" - }, { - "group" : "org.elasticsearch.client", - "name" : "elasticsearch-rest-high-level-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :client:rest-high-level", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3dc9666247572e95ce960f4f7f98d17a59035ba9" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch.client/elasticsearch-rest-high-level-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "893ed0c0-2e1c-45c3-9e56-9628ae74162d" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-4" - }, { - "group" : "strip-ansi", - "name" : "strip-ansi-6.0.1.tgz", - "version" : "6.0.1", - "description" : "Strip ANSI escape codes from a string", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9e26c63d30f53443e9489495b2105d37b67a85d9" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com),Copyright Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)", - "purl" : "pkg:npm/strip-ansi@6.0.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/chalk/strip-ansi#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f5ded613-8881-4b49-a517-9ba632679e1b" - } ], - "type" : "library", - "bom-ref" : "strip-ansi-6.0.1.tgz" - }, { - "group" : "org.elasticsearch.client", - "name" : "elasticsearch-rest-high-level-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :client:rest-high-level", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3dc9666247572e95ce960f4f7f98d17a59035ba9" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch.client/elasticsearch-rest-high-level-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "893ed0c0-2e1c-45c3-9e56-9628ae74162d" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-5" - }, { - "group" : "org.elasticsearch.client", - "name" : "elasticsearch-rest-high-level-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :client:rest-high-level", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3dc9666247572e95ce960f4f7f98d17a59035ba9" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch.client/elasticsearch-rest-high-level-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "893ed0c0-2e1c-45c3-9e56-9628ae74162d" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-6" - }, { - "group" : "org.elasticsearch.client", - "name" : "elasticsearch-rest-high-level-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :client:rest-high-level", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3dc9666247572e95ce960f4f7f98d17a59035ba9" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch.client/elasticsearch-rest-high-level-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "893ed0c0-2e1c-45c3-9e56-9628ae74162d" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-7" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-developer-scanner-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-developer-scanner-2025.3-SNAPSHOT" - }, { - "group" : "com.sonarsource.security", - "name" : "ucfg-11.1.0.35630.jar", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d50433183ac8f2cafa8cc544f2d6190edb74e301" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ec22915b-4961-42ca-9481-b48cfde4f02a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "ucfg-11.1.0.35630.jar-2" - }, { - "group" : "d3-shape", - "name" : "d3-shape-3.2.0.tgz", - "version" : "3.2.0", - "description" : "Graphical primitives for visualization, such as lines and areas.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2010-2022 Mike Bostock", - "purl" : "pkg:npm/d3-shape@3.2.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-shape/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "3ad5585d-fbd1-4087-9d79-fc2aae6de986" - } ], - "type" : "library", - "bom-ref" : "d3-shape-3.2.0.tgz" - }, { - "group" : "@types/prop-types", - "name" : "prop-types-15.7.1.tgz", - "version" : "15.7.1", - "description" : "TypeScript definitions for prop-types", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f1a11e7babb0c3cad68100be381d1e064c68f1f6" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/prop-types@15.7.1", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c8530afb-9278-4cbe-aa1c-98c52668ce5f" - } ], - "type" : "library", - "bom-ref" : "prop-types-15.7.1.tgz" - }, { - "group" : "org.elasticsearch.client", - "name" : "elasticsearch-rest-high-level-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :client:rest-high-level", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3dc9666247572e95ce960f4f7f98d17a59035ba9" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch.client/elasticsearch-rest-high-level-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "893ed0c0-2e1c-45c3-9e56-9628ae74162d" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-2" - }, { - "group" : "io.jsonwebtoken", - "name" : "jjwt-jackson-0.12.6.jar", - "version" : "0.12.6", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f141e0c1136ba17f2632858238a31ae05642dbf8" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "jsonwebtoken.io,Copyright 2018 JWTK", - "purl" : "pkg:maven/io.jsonwebtoken/jjwt-jackson@0.12.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/jwtk/jjwt" - }, { - "type" : "distribution", - "url" : "https://github.com/jwtk/jjwt" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7d5509ba-0817-44da-bc3c-262d42988eb9" - } ], - "type" : "library", - "bom-ref" : "jjwt-jackson-0.12.6.jar" - }, { - "group" : "org.elasticsearch.client", - "name" : "elasticsearch-rest-high-level-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :client:rest-high-level", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3dc9666247572e95ce960f4f7f98d17a59035ba9" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch.client/elasticsearch-rest-high-level-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "893ed0c0-2e1c-45c3-9e56-9628ae74162d" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-3" - }, { - "group" : "com.sonarsource.plugins.vb", - "name" : "vb-checks-2.14.0.5475.jar", - "version" : "2.14.0.5475", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ffc28592ca68b271ae5ec235fff837b6af5f9fce" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "47fa23d3-3e7f-4669-9a69-c3646bd874a7" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "vb-checks-2.14.0.5475.jar" - }, { - "group" : "com.sonarsource.plsql", - "name" : "plsql-api-3.15.0.7123.jar", - "version" : "3.15.0.7123", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8e0fb9b575e719652f79ca7fcaa2f130b2867514" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "16c159e3-a673-4556-8fe8-875ab245c55e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "plsql-api-3.15.0.7123.jar-2" - }, { - "group" : "proxy-from-env", - "name" : "proxy-from-env-1.1.0.tgz", - "version" : "1.1.0", - "description" : "Offers getProxyForUrl to get the proxy URL for a URL, respecting the *_PROXY (e.g. HTTP_PROXY) and NO_PROXY environment variables.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e102f16ca355424865755d2c9e8ea4f24d58c3e2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2016-2018 Rob Wu <rob@robwu.nl>", - "purl" : "pkg:npm/proxy-from-env@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/Rob--W/proxy-from-env#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "fb4b7262-9242-41b0-bf39-78f678e5dc83" - } ], - "type" : "library", - "bom-ref" : "proxy-from-env-1.1.0.tgz" - }, { - "group" : "use-sidecar", - "name" : "use-sidecar-1.1.3.tgz", - "version" : "1.1.3", - "description" : "Sidecar code splitting utils", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "10e7fd897d130b896e2c546c63a5e8233d00efdb" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Anton Korzunov", - "purl" : "pkg:npm/use-sidecar@1.1.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/use-sidecar" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "41373661-5117-4b18-9cd0-18778a47a3a9" - } ], - "type" : "library", - "bom-ref" : "use-sidecar-1.1.3.tgz" - }, { - "group" : "babel-plugin-macros", - "name" : "babel-plugin-macros-3.1.0.tgz", - "version" : "3.1.0", - "description" : "Allows you to build compile-time libraries", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9ef6dc74deb934b4db344dc973ee851d148c50c1" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2020 Kent C", - "purl" : "pkg:npm/babel-plugin-macros@3.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/kentcdodds/babel-plugin-macros#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2750871a-ce96-451a-a359-78a76af54aca" - } ], - "type" : "library", - "bom-ref" : "babel-plugin-macros-3.1.0.tgz" - }, { - "group" : "org.sonarsource.sslr", - "name" : "sslr-xpath-1.24.0.633.jar", - "version" : "1.24.0.633", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ba0474ce01e2fd5d692c77f003a399085f6091f9" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.sslr/sslr-xpath@1.24.0.633?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d699f92b-80ab-48a6-9d44-767465fdb51a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sslr-xpath-1.24.0.633.jar" - }, { - "group" : "org.sonarsource.java", - "name" : "sonar-java-plugin-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "Code Analyzer for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "35825edc1d14592741be3991fdb2fb0db3de8805" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - }, { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2000-2011 INRIA,Copyright 2006-2019 Joe Walnes,Copyright 1999-2009 OW2 Consortium,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright 1999-2009 The Apache Software Foundation,Copyright 2002-2024 Pivotal, Inc,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright 1999 IBM Corporation., http://www.ibm.com,SonarSource,Copyright 2000 World Wide Web Consortium, http://www.w3.org", - "purl" : "pkg:maven/org.sonarsource.java/sonar-java-plugin@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "beeb5151-899c-49a5-a042-08e868eba07e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-java-plugin-8.11.0.38440.jar-2" - }, { - "group" : "org.bouncycastle", - "name" : "bcprov-jdk18on-1.80.jar", - "version" : "1.80", - "description" : "The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains the JCA/JCE provider and low-level API for the BC Java version 1.80 for Java 8 and later.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e22100b41042decf09cab914a5af8d2c57b5ac4a" - } ], - "licenses" : [ { - "license" : { - "name" : "Bouncy Castle License", - "url" : "https://www.bouncycastle.org/licence.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.bouncycastle/bcprov-jdk18on@1.80", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.bouncycastle.org/download/bouncy-castle-java/" - }, { - "type" : "distribution", - "url" : "https://www.bouncycastle.org/download/bouncy-castle-java/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "972400fa-084c-4245-b738-4f4f7902c040" - } ], - "type" : "library", - "bom-ref" : "bcprov-jdk18on-1.80.jar" - }, { - "group" : "@mantine/hooks", - "name" : "hooks-7.12.2.tgz", - "version" : "7.12.2", - "description" : "A collection of 50+ hooks for state and UI management", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f8e6a8345bb0892d8d1f5d1dc544a568572b79f4" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40mantine/hooks@7.12.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://mantine.dev" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.12.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "41ee614e-7d41-4a89-874a-2a53c07c2432" - } ], - "type" : "library", - "bom-ref" : "hooks-7.12.2.tgz" - }, { - "group" : "com.google.guava", - "name" : "guava-33.4.5-jre.jar", - "version" : "33.4.5-jre", - "description" : "Guava is a suite of core and expanded libraries that include utility classes, Google's collections, I/O classes, and much more.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4e3ee57a4974ec2077a395dfa1ae4adbb9a4a858" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.google.guava/guava@33.4.5-jre", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/google/guava" - }, { - "type" : "distribution", - "url" : "https://github.com/google/guava" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9bd8f71e-06a3-4294-84f6-49db4ac1f9a7" - } ], - "type" : "library", - "bom-ref" : "guava-33.4.5-jre.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-bitbucket-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-bitbucket-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-core-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-core-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-core-25.4-SNAPSHOT-2" - }, { - "group" : "org.jacoco", - "name" : "org.jacoco.core-0.8.11.jar", - "version" : "0.8.11", - "description" : "JaCoCo Core", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2ea73c899b5d6cde2a0a5e0ca29268b37622845d" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - }, { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - } ], - "copyright" : "Copyright 2009-2023 Mountainminds GmbH,Mountainminds GmbH & Co. KG", - "purl" : "pkg:maven/org.jacoco/org.jacoco.core@0.8.11?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://jacoco.org" - }, { - "type" : "distribution", - "url" : "http://jacoco.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "915b7086-0db0-4f75-b5be-5e622dbb5136" - } ], - "type" : "library", - "bom-ref" : "org.jacoco.core-0.8.11.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-core-25.4-SNAPSHOT-3" - }, { - "group" : "@emotion/memoize", - "name" : "memoize-0.7.5.tgz", - "version" : "0.7.5", - "description" : "emotion's memoize utility", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2c40f81449a4e554e9fc6396910ed4843ec2be50" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/memoize@0.7.5", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "0c2d73f4-9356-4d88-b638-55fc2c33936c" - } ], - "type" : "library", - "bom-ref" : "memoize-0.7.5.tgz" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-analyzer-test-commons-2.14.0.3087.jar", - "version" : "2.14.0.3087", - "description" : "Logic useful to test a language analyzer", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "566356ed572245be7d4487332de0ee5321d7b516" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-analyzer-test-commons@2.14.0.3087", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "784f2389-34cb-4e00-9c6a-7e1c934b934b" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-analyzer-test-commons-2.14.0.3087.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-core-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.git.blame", - "name" : "git-files-blame-1.1.0.1835.jar", - "version" : "1.1.0.1835", - "description" : "A git command implemented with JGit that blames multiple files simultaneously", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a25e4e9ec815b29f16f410edf1a6bc1b2c2d91d3" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.sonarsource.git.blame/git-files-blame@1.1.0.1835", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarqube.org/" - }, { - "type" : "distribution", - "url" : "http://www.sonarqube.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b08ca832-76f1-4e19-b8a8-e3ea8b574aeb" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "git-files-blame-1.1.0.1835.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-18" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-19" - }, { - "group" : "org.cryptacular", - "name" : "cryptacular-1.2.5.jar", - "version" : "1.2.5", - "description" : "The spectacular complement to the Bouncy Castle crypto API for Java.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a8a4542bac306650a4299825e6217001aadbc11c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.cryptacular/cryptacular@1.2.5?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.cryptacular.org" - }, { - "type" : "distribution", - "url" : "http://www.cryptacular.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "08112c0d-ded5-4fe3-af47-2a4bacf7af20" - } ], - "type" : "library", - "bom-ref" : "cryptacular-1.2.5.jar" - }, { - "group" : "com.squareup.okhttp3", - "name" : "okhttp-4.12.0.jar", - "version" : "4.12.0", - "description" : "Square’s meticulous HTTP client for Java and Kotlin.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2f4525d4a200e97e1b87449c2cd9bd2e25b7e8cd" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okhttp3/okhttp@4.12.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://square.github.io/okhttp/" - }, { - "type" : "distribution", - "url" : "https://square.github.io/okhttp/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "bb7a12e6-02a3-4f32-b811-9e3e6a314172" - } ], - "type" : "library", - "bom-ref" : "okhttp-4.12.0.jar-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-16" - }, { - "group" : "org.elasticsearch", - "name" : "elasticsearch-plugin-classloader-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :libs:elasticsearch-plugin-classloader", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ac180d5853b0d4cfbbbf8fd79b3272d388b8f180" - } ], - "licenses" : [ { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - }, { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - } ], - "copyright" : "Copyright 2009-2021 Elasticsearch,Copyright 2018 MongoDB, Inc", - "purl" : "pkg:maven/org.elasticsearch/elasticsearch-plugin-classloader@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "829296c9-1e75-4a40-8080-025b811c5ca8" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-plugin-classloader-7.17.28.jar" - }, { - "group" : "org.springframework.boot", - "name" : "spring-boot-autoconfigure-3.4.4.jar", - "version" : "3.4.4", - "description" : "Spring Boot AutoConfigure", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5ebc8c0682374768ee6eac9acf12f41e76762207" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2012-2025 VMware, Inc", - "purl" : "pkg:maven/org.springframework.boot/spring-boot-autoconfigure@3.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-boot" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-boot" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "911765da-3070-456e-94d9-846be39119fc" - } ], - "type" : "library", - "bom-ref" : "spring-boot-autoconfigure-3.4.4.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-17" - }, { - "group" : "com.hazelcast", - "name" : "hazelcast-5.4.0.jar", - "version" : "5.4.0", - "description" : "Core Hazelcast Module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "91f9e08c36d8a3c3d0c389b974321159874f3b68" - } ], - "licenses" : [ { - "license" : { - "name" : "GPL", - "url" : "https://www.gnu.org/licenses/gpl.html" - } - }, { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - }, { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright Laws of the United States,Copyright 2008-2024 Hazelcast, Inc,Copyright 2006-2022 Joe Walnes,Copyright 2008-2024 Hazelcast, Inc", - "purl" : "pkg:maven/com.hazelcast/hazelcast@5.4.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.hazelcast.com/" - }, { - "type" : "distribution", - "url" : "http://www.hazelcast.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d3bde627-ad72-4d02-ba7e-43dee7511035" - } ], - "type" : "library", - "bom-ref" : "hazelcast-5.4.0.jar" - }, { - "group" : "com.sonarsource.pdfreport", - "name" : "security-report-pdf-generation-2.0.0.184.jar", - "version" : "2.0.0.184", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7cfc29d29fe5b5899a1b798c7bedaa3ffe3ebf01" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8a1af847-0e47-407e-978f-4e585df4e39a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "security-report-pdf-generation-2.0.0.184.jar-2" - }, { - "group" : "com.squareup.okhttp3", - "name" : "okhttp-4.12.0.jar", - "version" : "4.12.0", - "description" : "Square’s meticulous HTTP client for Java and Kotlin.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2f4525d4a200e97e1b87449c2cd9bd2e25b7e8cd" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okhttp3/okhttp@4.12.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://square.github.io/okhttp/" - }, { - "type" : "distribution", - "url" : "https://square.github.io/okhttp/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "bb7a12e6-02a3-4f32-b811-9e3e6a314172" - } ], - "type" : "library", - "bom-ref" : "okhttp-4.12.0.jar-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-14" - }, { - "group" : "com.squareup.okhttp3", - "name" : "okhttp-4.12.0.jar", - "version" : "4.12.0", - "description" : "Square’s meticulous HTTP client for Java and Kotlin.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2f4525d4a200e97e1b87449c2cd9bd2e25b7e8cd" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okhttp3/okhttp@4.12.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://square.github.io/okhttp/" - }, { - "type" : "distribution", - "url" : "https://square.github.io/okhttp/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "bb7a12e6-02a3-4f32-b811-9e3e6a314172" - } ], - "type" : "library", - "bom-ref" : "okhttp-4.12.0.jar-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-15" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-application-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-application-25.4-SNAPSHOT" - }, { - "group" : "org.sonarsource.flex", - "name" : "sonar-flex-plugin-2.14.0.5032.jar", - "version" : "2.14.0.5032", - "description" : "Code Quality and Security for Flex / ActionScript", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "947045318587d79d7e0d46dec509ead87c375e8b" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - }, { - "license" : { - "id" : "LGPL-2.1-or-later", - "url" : "https://spdx.org/licenses/LGPL-2.1-or-later.html" - } - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.flex/sonar-flex-plugin@2.14.0.5032", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/flex.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/flex.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d4d77ca0-994e-425f-aa66-ca8dab508f4b" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-flex-plugin-2.14.0.5032.jar-3" - }, { - "group" : "org.sonarsource.javascript", - "name" : "bridge-10.21.1.30825.jar", - "version" : "10.21.1.30825", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "16a560469d53c24f6f94c37bf96f3630fa239a82" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.javascript/bridge@10.21.1.30825", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2a8a4317-584d-46af-914b-c5cd981312ae" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "bridge-10.21.1.30825.jar-2" - }, { - "group" : "com.squareup.okhttp3", - "name" : "okhttp-4.12.0.jar", - "version" : "4.12.0", - "description" : "Square’s meticulous HTTP client for Java and Kotlin.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2f4525d4a200e97e1b87449c2cd9bd2e25b7e8cd" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okhttp3/okhttp@4.12.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://square.github.io/okhttp/" - }, { - "type" : "distribution", - "url" : "https://square.github.io/okhttp/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "bb7a12e6-02a3-4f32-b811-9e3e6a314172" - } ], - "type" : "library", - "bom-ref" : "okhttp-4.12.0.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-12" - }, { - "group" : "org.sonarsource.flex", - "name" : "sonar-flex-plugin-2.14.0.5032.jar", - "version" : "2.14.0.5032", - "description" : "Code Quality and Security for Flex / ActionScript", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "947045318587d79d7e0d46dec509ead87c375e8b" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - }, { - "license" : { - "id" : "LGPL-2.1-or-later", - "url" : "https://spdx.org/licenses/LGPL-2.1-or-later.html" - } - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.flex/sonar-flex-plugin@2.14.0.5032", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/flex.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/flex.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d4d77ca0-994e-425f-aa66-ca8dab508f4b" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-flex-plugin-2.14.0.5032.jar-2" - }, { - "group" : "com.squareup.okhttp3", - "name" : "okhttp-4.12.0.jar", - "version" : "4.12.0", - "description" : "Square’s meticulous HTTP client for Java and Kotlin.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2f4525d4a200e97e1b87449c2cd9bd2e25b7e8cd" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okhttp3/okhttp@4.12.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://square.github.io/okhttp/" - }, { - "type" : "distribution", - "url" : "https://square.github.io/okhttp/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "bb7a12e6-02a3-4f32-b811-9e3e6a314172" - } ], - "type" : "library", - "bom-ref" : "okhttp-4.12.0.jar-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-13" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-10" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-11" - }, { - "group" : "com.github.erosb", - "name" : "json-sKema-0.21.0.jar", - "version" : "0.21.0", - "description" : "JSON Schema Parser and Validator", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8e0ea4494f3e1aca858d75ca7372e018a5554065" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.github.erosb/json-sKema@0.21.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/erosb/json-sKema" - }, { - "type" : "distribution", - "url" : "https://github.com/erosb/json-sKema" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "024fd5d5-4c2c-4d73-a1c0-03a9a475d35a" - } ], - "type" : "library", - "bom-ref" : "json-sKema-0.21.0.jar" - }, { - "group" : "string-width-cjs", - "name" : "string-width-cjs-4.2.3.tgz", - "version" : "4.2.3", - "description" : "NONE", - "licenses" : [ { - "license" : { - "name" : "Suspected MIT" - } - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "279c5ed5-735c-449f-bc76-ba95513b9bcc" - } ], - "type" : "library", - "bom-ref" : "string-width-cjs-4.2.3.tgz" - }, { - "group" : "org.ow2.asm", - "name" : "asm-tree-9.6.jar", - "version" : "9.6", - "description" : "Tree API of ASM, a very small and fast Java bytecode manipulation framework", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c0cdda9d211e965d2a4448aa3fd86110f2f8c2de" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011-2012 Bull S.A.S,OW2", - "purl" : "pkg:maven/org.ow2.asm/asm-tree@9.6?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.ow2.org/" - }, { - "type" : "distribution", - "url" : "http://www.ow2.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "4fb50b7c-46aa-46ee-a6fa-272fbc807ac1" - } ], - "type" : "library", - "bom-ref" : "asm-tree-9.6.jar-2" - }, { - "group" : "org.sonarsource.java", - "name" : "java-surefire-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4aaef3ec004b5b8f5c7976031562c5dac2ec6178" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-surefire@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "781302a2-f0cb-4f63-9e6f-be31e9c34532" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-surefire-8.11.0.38440.jar-2" - }, { - "group" : "com.sonarsource.abap", - "name" : "abap-checks-3.15.1.6010.jar", - "version" : "3.15.1.6010", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6d453295f1534603912c2674c7be04a2e082470b" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f7ce3e98-9cc7-45d6-8d3e-c1b277079ca6" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "abap-checks-3.15.1.6010.jar" - }, { - "group" : "@radix-ui/react-use-callback-ref", - "name" : "react-use-callback-ref-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bce938ca413675bc937944b0d01ef6f4a6dc5bf1" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-use-callback-ref@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "bfd2362b-4d43-4c26-9da0-d013f483bb03" - } ], - "type" : "library", - "bom-ref" : "react-use-callback-ref-1.1.0.tgz" - }, { - "group" : "org.spdx", - "name" : "spdx-java-core-1.0.0-RC2.jar", - "version" : "1.0.0-RC2", - "description" : "Core libraries for SPDX", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "22ee97b9449e985c8970706bcbdfb729e01e0e58" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.spdx/spdx-java-core@1.0.0-RC2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spdx/spdx-java-core" - }, { - "type" : "distribution", - "url" : "https://github.com/spdx/spdx-java-core" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b95ae4d8-ed8f-4114-ba53-c1d84dbf9cb2" - } ], - "type" : "library", - "bom-ref" : "spdx-java-core-1.0.0-RC2.jar-2" - }, { - "group" : "com.sonarsource.swift", - "name" : "sonar-swift-plugin-4.13.1.8101.sonar-plugin", - "version" : "4.13.1.8101", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0a99b77f82886ba5e35652307fe5be32433f1d0c" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7269b667-d197-4938-85e6-e5c9d128be35" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-swift-plugin-4.13.1.8101.sonar-plugin" - }, { - "group" : "@types/react", - "name" : "react-18.2.55.tgz", - "version" : "18.2.55", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "38141821b7084404b5013742bc4ae08e44da7a67" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/react@18.2.55", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f846f3f0-de95-40cc-9acb-f89f3e58c5a6" - } ], - "type" : "library", - "bom-ref" : "react-18.2.55.tgz-2" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "sca-application-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sca-application-2025.3-SNAPSHOT" - }, { - "group" : "org.apache.pdfbox", - "name" : "pdfbox-3.0.4.jar", - "version" : "3.0.4", - "description" : "The Apache PDFBox library is an open source Java tool for working with PDF documents.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2faa45ecc79c272044f0f4dc48a7222645fcd468" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2008-2016 Harald Kuhr,Copyright 2011 Lohit Fonts Project contributors,Copyright 2010 Google Corporation,Copyright 2002-2010 Adobe Systems Incorporated,Copyright 1991-2015 Unicode, Inc,Copyright 1990-2009 Adobe Systems Incorporated,Copyright 2002-2007 www.pdfbox.org,Copyright 1997-2010 Adobe Systems Incorporated,Copyright 2002-2024 The Apache Software Foundation,Copyright 2002-2007 www.pdfbox.org,Copyright 2008-2016 Harald Kuhr,Copyright 2012 Red Hat, Inc,Copyright 1997-2007 Adobe Systems Incorporated,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.pdfbox/pdfbox@3.0.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b86020af-cf65-4ddf-8da7-7143d0120c48" - } ], - "type" : "library", - "bom-ref" : "pdfbox-3.0.4.jar-2" - }, { - "group" : "@types/react", - "name" : "react-18.2.55.tgz", - "version" : "18.2.55", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "38141821b7084404b5013742bc4ae08e44da7a67" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/react@18.2.55", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f846f3f0-de95-40cc-9acb-f89f3e58c5a6" - } ], - "type" : "library", - "bom-ref" : "react-18.2.55.tgz-4" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-ce-workers-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-ce-workers-2025.3-SNAPSHOT" - }, { - "group" : "@types/react", - "name" : "react-18.2.55.tgz", - "version" : "18.2.55", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "38141821b7084404b5013742bc4ae08e44da7a67" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/react@18.2.55", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f846f3f0-de95-40cc-9acb-f89f3e58c5a6" - } ], - "type" : "library", - "bom-ref" : "react-18.2.55.tgz-3" - }, { - "group" : "@babel/plugin-syntax-jsx", - "name" : "plugin-syntax-jsx-7.18.6.tgz", - "version" : "7.18.6", - "description" : "Allow parsing of jsx", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a8feef63b010150abd97f1649ec296e849943ca0" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/plugin-syntax-jsx@7.18.6", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-plugin-syntax-jsx" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b02ff3b9-fbee-4e92-a39a-2a6587883c9b" - } ], - "type" : "library", - "bom-ref" : "plugin-syntax-jsx-7.18.6.tgz" - }, { - "group" : "delayed-stream", - "name" : "delayed-stream-1.0.0.tgz", - "version" : "1.0.0", - "description" : "Buffers events from a stream until you are ready to handle them.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "df3ae199acadfb7d440aaae0b29e2272b24ec619" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2011 Debuggable Limited <felix@debuggable.com>", - "purl" : "pkg:npm/delayed-stream@1.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/felixge/node-delayed-stream" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "010f2669-14e8-4395-9e55-5b66fffa58c9" - } ], - "type" : "library", - "bom-ref" : "delayed-stream-1.0.0.tgz" - }, { - "group" : "jsonc-parser", - "name" : "jsonc-parser-3.3.1.tgz", - "version" : "3.3.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f2a524b4f7fd11e3d791e559977ad60b98b798b4" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft,Copyright 2018 Microsoft", - "purl" : "pkg:npm/jsonc-parser@3.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/microsoft/node-jsonc-parser#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "03a7db13-1c2e-4055-9e10-3f8c5dd45697" - } ], - "type" : "library", - "bom-ref" : "jsonc-parser-3.3.1.tgz" - }, { - "group" : "net.sf.trove4j", - "name" : "core-3.1.0.jar", - "version" : "3.1.0", - "description" : "High performance collections for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5fd0207b685536b29dd65c86f4b3bf89befb885c" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/net.sf.trove4j/core@3.1.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://bitbucket.org/trove4j/trove/src/master/" - }, { - "type" : "distribution", - "url" : "https://bitbucket.org/trove4j/trove/src/master/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7e923529-6b2f-438b-b681-47cdf16ef061" - } ], - "type" : "library", - "bom-ref" : "core-3.1.0.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ws-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ws-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-ws-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-ws-25.4-SNAPSHOT-2" - }, { - "group" : "org.apache.ant", - "name" : "ant-launcher-1.10.14.jar", - "version" : "1.10.14", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8d2268288496b0541a2640f2ee07fe3de1a02301" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 1999-2023 The Apache Software Foundation,Copyright 2002 Landmark", - "purl" : "pkg:maven/org.apache.ant/ant-launcher@1.10.14?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "c7a83745-ad6f-4f7f-8c20-28fd97cc99f5" - } ], - "type" : "library", - "bom-ref" : "ant-launcher-1.10.14.jar" - }, { - "group" : "@radix-ui/react-focus-scope", - "name" : "react-focus-scope-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ebe2891a298e0a33ad34daab2aad8dea31caf0b2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-focus-scope@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "3add7583-5da0-4f68-ad77-910cc0dcb699" - } ], - "type" : "library", - "bom-ref" : "react-focus-scope-1.1.0.tgz" - }, { - "group" : "@radix-ui/react-tooltip", - "name" : "react-tooltip-1.1.7.tgz", - "version" : "1.1.7", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2984dc0374874029b7ea8a1987f23247b3334b2a" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-tooltip@1.1.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "bf61f9b9-b0c9-44ef-b584-002d78c91d72" - } ], - "type" : "library", - "bom-ref" : "react-tooltip-1.1.7.tgz" - }, { - "group" : "org.sonarsource.java", - "name" : "java-checks-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9c5551ef2a705171fed754dd4112e144cf6c063a" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-checks@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3a5055de-430a-4032-81cb-6d5a03f654a4" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-checks-8.11.0.38440.jar-3" - }, { - "group" : "org.sonarsource.java", - "name" : "java-checks-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "9c5551ef2a705171fed754dd4112e144cf6c063a" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.java/java-checks@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3a5055de-430a-4032-81cb-6d5a03f654a4" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "java-checks-8.11.0.38440.jar-2" - }, { - "group" : "js-yaml", - "name" : "js-yaml-4.1.0.tgz", - "version" : "4.1.0", - "description" : "YAML 1.2 parser and serializer", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c1fb65f8f5017901cdd2c951864ba18458a10602" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2011-2015 by Vitaly Puzrin,Copyright 2011-2015 by Vitaly Puzrin", - "purl" : "pkg:npm/js-yaml@4.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/nodeca/js-yaml#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "13e9335f-4e08-416b-9afc-2cafe5e373de" - } ], - "type" : "library", - "bom-ref" : "js-yaml-4.1.0.tgz" - }, { - "group" : "com.sonarsource.security", - "name" : "ucfg-11.1.0.35630.jar", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d50433183ac8f2cafa8cc544f2d6190edb74e301" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ec22915b-4961-42ca-9481-b48cfde4f02a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "ucfg-11.1.0.35630.jar" - }, { - "group" : "jackspeak", - "name" : "jackspeak-4.0.2.tgz", - "version" : "4.0.2", - "description" : "A very strict and proper argument parser.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "11f9468a3730c6ff6f56823a820d7e3be9bef015" - } ], - "licenses" : [ { - "license" : { - "id" : "BlueOak-1.0.0", - "url" : "https://blueoakcouncil.org/license/1.0.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/jackspeak@4.0.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/isaacs/jackspeak#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "518a3683-b841-492e-8b3e-55008d3f6be8" - } ], - "type" : "library", - "bom-ref" : "jackspeak-4.0.2.tgz" - }, { - "group" : "org.springframework", - "name" : "spring-expression-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Expression Language (SpEL)", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "cb39181911dabe3b3d9992c4b4da38468726ea72" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2000-2011 INRIA,Copyright 2006-2019 Joe Walnes,Copyright 2002-2025 Pivotal, Inc,Copyright 1999-2009 OW2 Consortium", - "purl" : "pkg:maven/org.springframework/spring-expression@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "47ac4100-78ba-44e1-a237-51701f51ca37" - } ], - "type" : "library", - "bom-ref" : "spring-expression-6.2.5.jar-2" - }, { - "group" : "@emotion/styled", - "name" : "styled-11.13.0.tgz", - "version" : "11.13.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "633fd700db701472c7a5dbef54d6f9834e9fb190" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/styled@11.13.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d92f1813-b912-4001-bff8-41a92e78278a" - } ], - "type" : "library", - "bom-ref" : "styled-11.13.0.tgz" - }, { - "group" : "commander", - "name" : "commander-12.1.0.tgz", - "version" : "12.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "01423b36f501259fdaac4d0e4d60c96c991585d3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2011 TJ Holowaychuk <tj@vision-media.ca>,Copyright 2011 TJ Holowaychuk <tj@vision-media.ca>", - "purl" : "pkg:npm/commander@12.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/tj/commander.js#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "bbf98817-3f94-46bc-84c5-1dde280e5c0c" - } ], - "type" : "library", - "bom-ref" : "commander-12.1.0.tgz" - }, { - "group" : "org.apache.pdfbox", - "name" : "pdfbox-3.0.4.jar", - "version" : "3.0.4", - "description" : "The Apache PDFBox library is an open source Java tool for working with PDF documents.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2faa45ecc79c272044f0f4dc48a7222645fcd468" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2008-2016 Harald Kuhr,Copyright 2011 Lohit Fonts Project contributors,Copyright 2010 Google Corporation,Copyright 2002-2010 Adobe Systems Incorporated,Copyright 1991-2015 Unicode, Inc,Copyright 1990-2009 Adobe Systems Incorporated,Copyright 2002-2007 www.pdfbox.org,Copyright 1997-2010 Adobe Systems Incorporated,Copyright 2002-2024 The Apache Software Foundation,Copyright 2002-2007 www.pdfbox.org,Copyright 2008-2016 Harald Kuhr,Copyright 2012 Red Hat, Inc,Copyright 1997-2007 Adobe Systems Incorporated,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.pdfbox/pdfbox@3.0.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b86020af-cf65-4ddf-8da7-7143d0120c48" - } ], - "type" : "library", - "bom-ref" : "pdfbox-3.0.4.jar" - }, { - "group" : "@babel/runtime", - "name" : "runtime-7.21.5.tgz", - "version" : "7.21.5", - "description" : "babel's modular runtime helpers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8492dddda9644ae3bda3b45eabe87382caee7200" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/runtime@7.21.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-runtime" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "62fd65a8-0acf-424c-b705-5e763e14653c" - } ], - "type" : "library", - "bom-ref" : "runtime-7.21.5.tgz-2" - }, { - "group" : "com.google.auto.service", - "name" : "auto-service-1.1.1.jar", - "version" : "1.1.1", - "description" : "Provider-configuration files for ServiceLoader.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bfeb4c40087b49e23700f074807d3f2a6d36d2d1" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2013 Google LLC", - "purl" : "pkg:maven/com.google.auto.service/auto-service@1.1.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.google.com" - }, { - "type" : "distribution", - "url" : "http://www.google.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a48aa747-020a-4d05-b17b-02d8b59194ab" - } ], - "type" : "library", - "bom-ref" : "auto-service-1.1.1.jar" - }, { - "group" : "d3-path", - "name" : "d3-path-3.1.0.tgz", - "version" : "3.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "22df939032fb5a71ae8b1800d61ddb7851c42526" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2015-2022 Mike Bostock", - "purl" : "pkg:npm/d3-path@3.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://d3js.org/d3-path/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cda33251-c3f0-4db9-8bf7-985eaf328cbe" - } ], - "type" : "library", - "bom-ref" : "d3-path-3.1.0.tgz" - }, { - "group" : "com.squareup.okhttp3", - "name" : "okhttp-4.12.0.jar", - "version" : "4.12.0", - "description" : "Square’s meticulous HTTP client for Java and Kotlin.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2f4525d4a200e97e1b87449c2cd9bd2e25b7e8cd" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okhttp3/okhttp@4.12.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://square.github.io/okhttp/" - }, { - "type" : "distribution", - "url" : "https://square.github.io/okhttp/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "bb7a12e6-02a3-4f32-b811-9e3e6a314172" - } ], - "type" : "library", - "bom-ref" : "okhttp-4.12.0.jar" - }, { - "group" : "com.github.stephenc.jcip", - "name" : "jcip-annotations-1.0-1.jar", - "version" : "1.0-1", - "description" : "A clean room implementation of the JCIP Annotations based entirely on the specification provided by the javadocs.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ef31541dd28ae2cefdd17c7ebf352d93e9058c63" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright (c) ,Copyright UNSPECIFIED", - "purl" : "pkg:maven/com.github.stephenc.jcip/jcip-annotations@1.0-1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://stephenc.github.com/jcip-annotations" - }, { - "type" : "distribution", - "url" : "http://stephenc.github.com/jcip-annotations" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "225590d0-40a0-4841-9980-fcbc01c0aa87" - } ], - "type" : "library", - "bom-ref" : "jcip-annotations-1.0-1.jar" - }, { - "group" : "org.apache.commons", - "name" : "commons-csv-1.14.0.jar", - "version" : "1.14.0", - "description" : "The Apache Commons CSV library provides a simple interface for reading and writing CSV files of various types.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c7cc057084126ea93617b2b809abf82432d8f9f5" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2005-2025 The Apache Software Foundation,The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.commons/commons-csv@1.14.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://commons.apache.org/proper/commons-csv/" - }, { - "type" : "distribution", - "url" : "https://commons.apache.org/proper/commons-csv/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "323216ca-5a8a-46fc-80c8-be068f31ca72" - } ], - "type" : "library", - "bom-ref" : "commons-csv-1.14.0.jar-2" - }, { - "group" : "@tanstack/query-core", - "name" : "query-core-5.56.2.tgz", - "version" : "5.56.2", - "description" : "The framework agnostic core that powers TanStack Query", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2def2fb0290cd2836bbb08afb0c175595bb8109b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2021 Tanner Linsley", - "purl" : "pkg:npm/%40tanstack/query-core@5.56.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://tanstack.com/query" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.56.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1fff9ba6-e3fe-435a-9cf4-46be31278083" - } ], - "type" : "library", - "bom-ref" : "query-core-5.56.2.tgz" - }, { - "group" : "axios", - "name" : "axios-1.8.2.tgz", - "version" : "1.8.2", - "description" : "Promise based HTTP client for the browser and node.js", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fabe06e241dfe83071d4edfbcaa7b1c3a40f7979" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Matt Zabriskie & Collaborators", - "purl" : "pkg:npm/axios@1.8.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://axios-http.com" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6adf97ac-0db7-42a4-b553-fe730ad05827" - } ], - "type" : "library", - "bom-ref" : "axios-1.8.2.tgz" - }, { - "group" : "@babel/types", - "name" : "types-7.17.0.tgz", - "version" : "7.17.0", - "description" : "Babel Types is a Lodash-esque utility library for AST nodes", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a826e368bccb6b3d84acd76acad5c0d87342390b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors,Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/types@7.17.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-types" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cf00cfb9-9488-4294-bdf0-9b46e6cd7246" - } ], - "type" : "library", - "bom-ref" : "types-7.17.0.tgz" - }, { - "group" : "org.eclipse.jgit", - "name" : "org.eclipse.jgit-7.2.0.202503040940-r.jar", - "version" : "7.2.0.202503040940-r", - "description" : "Repository access and algorithms", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8d9379845e9d37b58b187abbab2f7a6b63b59f65" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - }, { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2009 Google Inc,Copyright 2009 Igor Fedorenko <igor@ifedorenko.com>,Copyright 2008 Imran M Yousuf <imyousuf@smartitengineering.com>,Copyright 2010 Matthias Sohn <matthias.sohn@sap.com> and others", - "purl" : "pkg:maven/org.eclipse.jgit/org.eclipse.jgit@7.2.0.202503040940-r", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.eclipse.org/jgit/" - }, { - "type" : "distribution", - "url" : "https://www.eclipse.org/jgit/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "c23e329a-deb6-4710-bc7a-bb76e1d9be12" - } ], - "type" : "library", - "bom-ref" : "org.eclipse.jgit-7.2.0.202503040940-r.jar-2" - }, { - "group" : "@radix-ui/react-checkbox", - "name" : "react-checkbox-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a559c4303957d797acee99914480b755aa1f27d6" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-checkbox@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d172eede-4b3c-4558-9b52-947887835a0d" - } ], - "type" : "library", - "bom-ref" : "react-checkbox-1.1.1.tgz" - }, { - "group" : "com.sonarsource.swift", - "name" : "swift-checks-4.13.1.8101.jar", - "version" : "4.13.1.8101", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "07f8cfc0b78b0584f7c733edd386fefe4e2ac3f1" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "97fea462-eb43-4467-8898-ad70025f13fb" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "swift-checks-4.13.1.8101.jar" - }, { - "group" : "org.opensaml", - "name" : "opensaml-security-impl-4.3.2.jar", - "version" : "4.3.2", - "description" : "Security Implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b6b4bfebf895797c75d449755aff21ecc9f2da24" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-security-impl@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "eb05fb4f-d378-49ba-9c7b-80a1bda047da" - } ], - "type" : "library", - "bom-ref" : "opensaml-security-impl-4.3.2.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-29" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-telemetry-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-telemetry-25.4-SNAPSHOT" - }, { - "group" : "@babel/helper-module-imports", - "name" : "helper-module-imports-7.16.7.tgz", - "version" : "7.16.7", - "description" : "Babel helper functions for inserting module loads", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "25612a8091a999704461c8a222d0efec5d091437" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors,Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/helper-module-imports@7.16.7", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-helper-module-imports" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "6afb77b8-efe6-4482-aa46-cbbb9e96a9f6" - } ], - "type" : "library", - "bom-ref" : "helper-module-imports-7.16.7.tgz" - }, { - "group" : "com.sonarsource.plsql", - "name" : "plsql-checks-3.15.0.7123.jar", - "version" : "3.15.0.7123", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "172494894c7b8e929b2454abea7785a8d0aadc62" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b787678b-4518-4e7b-94e3-1f365a7b174c" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "plsql-checks-3.15.0.7123.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-27" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-28" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-25" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-26" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-23" - }, { - "group" : "@babel/runtime", - "name" : "runtime-7.21.5.tgz", - "version" : "7.21.5", - "description" : "babel's modular runtime helpers", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8492dddda9644ae3bda3b45eabe87382caee7200" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/runtime@7.21.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://babel.dev/docs/en/next/babel-runtime" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "62fd65a8-0acf-424c-b705-5e763e14653c" - } ], - "type" : "library", - "bom-ref" : "runtime-7.21.5.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-24" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-21" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-common-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-22" - }, { - "group" : "io.swagger.core.v3", - "name" : "swagger-core-jakarta-2.2.29.jar", - "version" : "2.2.29", - "description" : "swagger-core-jakarta", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ad7a3b076125ecd61aa19cfe802d174d57f29f10" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2015 (c),Copyright 2015 (c)", - "purl" : "pkg:maven/io.swagger.core.v3/swagger-core-jakarta@2.2.29", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/swagger-api/swagger-core" - }, { - "type" : "distribution", - "url" : "https://github.com/swagger-api/swagger-core" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "29f52367-878f-4f1c-a560-9fe077eb624b" - } ], - "type" : "library", - "bom-ref" : "swagger-core-jakarta-2.2.29.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-common-25.4-SNAPSHOT-3" - }, { - "group" : "prop-types", - "name" : "prop-types-15.7.2.tgz", - "version" : "15.7.2", - "description" : "Runtime type checking for React props and similar objects.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Facebook, Inc", - "purl" : "pkg:npm/prop-types@15.7.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://facebook.github.io/react/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "bdf16e27-ea3d-4124-9fda-6ccf02c8772f" - } ], - "type" : "library", - "bom-ref" : "prop-types-15.7.2.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-20" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-common-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-common-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-alm-client-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-alm-client-25.4-SNAPSHOT-8" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-alm-client-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-alm-client-25.4-SNAPSHOT-9" - }, { - "group" : "com.sonarsource.cobol", - "name" : "cobol-preprocessor-5.8.1.8428.jar", - "version" : "5.8.1.8428", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "dbd525f72a9a2309cb364963920c6364ced2aac0" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a09255c0-eaa7-4721-98f4-1f18e95eff9e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "cobol-preprocessor-5.8.1.8428.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-alm-client-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-alm-client-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-alm-client-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-alm-client-25.4-SNAPSHOT-7" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-alm-client-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-alm-client-25.4-SNAPSHOT-4" - }, { - "group" : "com.fasterxml.jackson.dataformat", - "name" : "jackson-dataformat-yaml-2.18.3.jar", - "version" : "2.18.3", - "description" : "Support for reading and writing YAML-encoded data via Jackson abstractions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "66658356a375664262c227dad09adc51dbc09c54" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fefad014-fcdb-4339-87a1-bb01c273779e" - } ], - "type" : "library", - "bom-ref" : "jackson-dataformat-yaml-2.18.3.jar-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-alm-client-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-alm-client-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.java", - "name" : "sonar-java-plugin-8.11.0.38440.jar", - "version" : "8.11.0.38440", - "description" : "Code Analyzer for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "35825edc1d14592741be3991fdb2fb0db3de8805" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - }, { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2000-2011 INRIA,Copyright 2006-2019 Joe Walnes,Copyright 1999-2009 OW2 Consortium,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright 1999-2009 The Apache Software Foundation,Copyright 2002-2024 Pivotal, Inc,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright 1999 IBM Corporation., http://www.ibm.com,SonarSource,Copyright 2000 World Wide Web Consortium, http://www.w3.org", - "purl" : "pkg:maven/org.sonarsource.java/sonar-java-plugin@8.11.0.38440", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/java.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "beeb5151-899c-49a5-a042-08e868eba07e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-java-plugin-8.11.0.38440.jar" - }, { - "group" : "regenerator-runtime", - "name" : "regenerator-runtime-0.13.11.tgz", - "version" : "0.13.11", - "description" : "Runtime for Regenerator-compiled generator and async functions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f6dca3e7ceec20590d07ada785636a90cdca17f9" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Facebook, Inc", - "purl" : "pkg:npm/regenerator-runtime@0.13.11", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/facebook/regenerator/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "cab1788f-17f0-48c9-8406-8055157593f3" - } ], - "type" : "library", - "bom-ref" : "regenerator-runtime-0.13.11.tgz" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-grouping-8.11.3.jar", - "version" : "8.11.3", - "description" : "Lucene Grouping Module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e3ecf5a5059df6e55f14291b51ed67b4d9d8da93" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright 2001 Dr Martin Porter,Copyright 2001-2021 The Apache Software Foundation,Copyright 1995-2008 International Business Machines Corporation and others,Copyright 2006 Dawid Weiss,Copyright 2001-2004 Copyright,Copyright 2007-2011 Dawid Weiss,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 2001-2009 Anders Moeller,Copyright © 2003,,Copyright 2011-2016 Yann Collet,Copyright 1999-2010 International Business Machines,Copyright 2002 Richard Boulton,Copyright 2009 by www.imdict.net", - "purl" : "pkg:maven/org.apache.lucene/lucene-grouping@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "283bdfb5-1a0c-419d-b935-34d5c5c7c987" - } ], - "type" : "library", - "bom-ref" : "lucene-grouping-8.11.3.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-alm-client-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-alm-client-25.4-SNAPSHOT-2" - }, { - "group" : "org.assertj", - "name" : "assertj-core-3.27.3.jar", - "version" : "3.27.3", - "description" : "Rich and fluent assertions for testing in Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "31f5d58a202bd5df4993fb10fa2cffd610c20d6f" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.assertj/assertj-core@3.27.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://assertj.github.io/doc/#assertj-core" - }, { - "type" : "distribution", - "url" : "https://assertj.github.io/doc/#assertj-core" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "3badfb0e-e4f1-48e5-a961-fa22982fbadc" - } ], - "type" : "library", - "bom-ref" : "assertj-core-3.27.3.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-alm-client-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-alm-client-25.4-SNAPSHOT-3" - }, { - "group" : "org.springframework", - "name" : "spring-context-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Context", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "237de0c3afca2099ab497cc7464726c02b8ab5c5" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 1999-2009 OW2 Consortium,Copyright 2000-2011 INRIA,Copyright 2002-2025 Pivotal, Inc,Copyright 2006-2019 Joe Walnes", - "purl" : "pkg:maven/org.springframework/spring-context@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "683ec1db-b3b2-4865-a481-d5e29c6b74b6" - } ], - "type" : "library", - "bom-ref" : "spring-context-6.2.5.jar" - }, { - "group" : "org.apache.commons", - "name" : "commons-email2-core-2.0.0-M1.jar", - "version" : "2.0.0-M1", - "description" : "Apache Commons Email provides an API for sending email, simplifying the JavaMail Javax API.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "725c832f248436338bd94b237e818a34040311ff" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 2001-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.commons/commons-email2-core@2.0.0-M1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "670a68ad-aef1-4923-aab5-5a7432de728b" - } ], - "type" : "library", - "bom-ref" : "commons-email2-core-2.0.0-M1.jar" - }, { - "group" : "javax.xml.stream", - "name" : "stax-api-1.0-2.jar", - "version" : "1.0-2", - "description" : "StAX is a standard XML processing API that allows you to stream XML data from and to your application.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d6337b0de8b25e53e81b922352fbea9f9f57ba0b" - } ], - "licenses" : [ { - "license" : { - "id" : "CDDL-1.1", - "url" : "http://glassfish.java.net/public/CDDL+GPL_1_1.html" - } - } ], - "copyright" : "Unspecified Copyright", - "purl" : "pkg:maven/javax.xml.stream/stax-api@1.0-2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "c1388da0-e507-4b95-9b60-4fe86ca8d1dc" - } ], - "type" : "library", - "bom-ref" : "stax-api-1.0-2.jar" - }, { - "group" : "com.sonarsource.plugins.vb", - "name" : "sonar-vb-plugin-2.14.0.5475.sonar-plugin", - "version" : "2.14.0.5475", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3ca328c35483dc20523e25579161e22c96cef42d" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2ca033a4-04a1-40c6-95bc-d8654ad088d8" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-vb-plugin-2.14.0.5475.sonar-plugin" - }, { - "group" : "org.cyclonedx", - "name" : "cyclonedx-core-java-10.2.1.jar", - "version" : "10.2.1", - "description" : "The CycloneDX core module provides a model representation of the BOM along with utilities to assist in creating, parsing, and validating BOMs.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5ca18d4f460429ce5e6117efa428707873f69f9b" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - }, { - "license" : { - "name" : "GPL-2.0-only WITH Classpath-exception-2.0", - "url" : "http://gnu.org/software/classpath/license.html" - } - }, { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - }, { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - }, { - "license" : { - "id" : "CDDL-1.1", - "url" : "http://glassfish.java.net/public/CDDL+GPL_1_1.html" - } - }, { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "OWASP Foundation,Copyright 1987 Regents of the University of California,Copyright 2001 David Giffin,Copyright 1998-2003 Carnegie Mellon University,Copyright 1994-2021 The FreeBSD Project,Copyright 2000 The Apache Software Foundation,Copyright 1995-1996 Joseph Arceneaux,Copyright 1986-1995 Ian F. Darwin,Copyright various years] The Regents of the University of California,Copyright 2013 ukasz Stelmach,Copyright 2001 David Ingamells,Copyright yyyy, yyyy> The Open Group,Copyright 1988 Richard M. Stallman),Copyright 2003 The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy),Copyright 1989-2014 Free Software,Copyright 2015 Tim Hentenaar,Copyright 2002 March,Copyright 2000 W3Works, LLC,Copyright 1999 Carlo Wood,Copyright 2000 Carsten Haitzler and various contributors (see AUTHORS),Copyright 1995-2001 Corporation for National Research Initiatives,Copyright 2008-2014 Oracle and/or its affiliates,Copyright 2001-2013 Oracle and/or its affiliates,Copyright 1987 Regents of the University of California,Copyright OWASP Foundation,Copyright 2011 Deusty, LLC,Copyright 1995-1996 Systemics Ltd,Copyright 1999-2001 Jim Knoble,Copyright 1994-2009 Sun Microsystems, Inc,Copyright 1997 Justin T. Gibbs,Copyright notices,Copyright 1990-1997 The Regents of the University of California,Copyright 2001-2007 The Flex Project,Copyright 1995-1999 The Apache Group,Copyright 2003-2005 Sun Microsystems, Inc,Portions of this text are reprinted and reproduced in electronic form in the FreeBSD manual pages, from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology — Portable Operating System Interface (POSIX), The Open Group Base Specifications Is,Copyright 1989 M. Stephenson),Copyright 2003-2005 Tom Wu", - "purl" : "pkg:maven/org.cyclonedx/cyclonedx-core-java@10.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/CycloneDX/cyclonedx-core-java" - }, { - "type" : "distribution", - "url" : "https://github.com/CycloneDX/cyclonedx-core-java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "cdb2a2f2-47df-4b89-8185-93c8b4cf5d5c" - } ], - "type" : "library", - "bom-ref" : "cyclonedx-core-java-10.2.1.jar-2" - }, { - "group" : "com.sonarsource.cobol", - "name" : "cobol-squid-5.8.1.8428.jar", - "version" : "5.8.1.8428", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1e50d688567a34daddcb9ec0fcec5349f7871f54" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "197edc4a-59a0-4102-8fbe-d33ef3645fff" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "cobol-squid-5.8.1.8428.jar-2" - }, { - "group" : "com.google.protobuf", - "name" : "protobuf-java-4.30.1.jar", - "version" : "4.30.1", - "description" : "Core Protocol Buffers library. Protocol Buffers are a way of encoding structured data in an efficient yet extensible format.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "32da07e90d9bbd5f38e16c4d162aaf3a2512c4b1" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.google.protobuf/protobuf-java@4.30.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://developers.google.com/protocol-buffers/" - }, { - "type" : "distribution", - "url" : "https://developers.google.com/protocol-buffers/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "90e4a21d-fe7c-47f6-aa92-23ac2c4ec14d" - } ], - "type" : "library", - "bom-ref" : "protobuf-java-4.30.1.jar" - }, { - "group" : "org.opensaml", - "name" : "opensaml-security-impl-4.3.2.jar", - "version" : "4.3.2", - "description" : "Security Implementation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b6b4bfebf895797c75d449755aff21ecc9f2da24" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-security-impl@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "eb05fb4f-d378-49ba-9c7b-80a1bda047da" - } ], - "type" : "library", - "bom-ref" : "opensaml-security-impl-4.3.2.jar" - }, { - "group" : "combined-stream", - "name" : "combined-stream-1.0.8.tgz", - "version" : "1.0.8", - "description" : "A stream that emits multiple other streams one after another.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c3d45a8b34fd730631a110a8a2520682b31d5a7f" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2011 Debuggable Limited <felix@debuggable.com>", - "purl" : "pkg:npm/combined-stream@1.0.8", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/felixge/node-combined-stream" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "77c9ddd3-c30d-4225-90c9-0ced4acd97a8" - } ], - "type" : "library", - "bom-ref" : "combined-stream-1.0.8.tgz" - }, { - "group" : "com.fasterxml.jackson.dataformat", - "name" : "jackson-dataformat-xml-2.18.3.jar", - "version" : "2.18.3", - "description" : "Data format extension for Jackson to offer alternative support for serializing POJOs as XML and deserializing XML as pojos.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "665a683773f8a92ea270d87127e198531e39cafa" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.dataformat/jackson-dataformat-xml@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-dataformat-xml" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-dataformat-xml" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dae93cdc-5129-4f34-abdb-37d283964b4b" - } ], - "type" : "library", - "bom-ref" : "jackson-dataformat-xml-2.18.3.jar-2" - }, { - "group" : "com.fasterxml.jackson.dataformat", - "name" : "jackson-dataformat-yaml-2.18.3.jar", - "version" : "2.18.3", - "description" : "Support for reading and writing YAML-encoded data via Jackson abstractions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "66658356a375664262c227dad09adc51dbc09c54" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fefad014-fcdb-4339-87a1-bb01c273779e" - } ], - "type" : "library", - "bom-ref" : "jackson-dataformat-yaml-2.18.3.jar-3" - }, { - "group" : "com.fasterxml.jackson.dataformat", - "name" : "jackson-dataformat-yaml-2.18.3.jar", - "version" : "2.18.3", - "description" : "Support for reading and writing YAML-encoded data via Jackson abstractions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "66658356a375664262c227dad09adc51dbc09c54" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fefad014-fcdb-4339-87a1-bb01c273779e" - } ], - "type" : "library", - "bom-ref" : "jackson-dataformat-yaml-2.18.3.jar-2" - }, { - "group" : "com.fasterxml.jackson.dataformat", - "name" : "jackson-dataformat-xml-2.18.3.jar", - "version" : "2.18.3", - "description" : "Data format extension for Jackson to offer alternative support for serializing POJOs as XML and deserializing XML as pojos.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "665a683773f8a92ea270d87127e198531e39cafa" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.dataformat/jackson-dataformat-xml@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-dataformat-xml" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-dataformat-xml" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dae93cdc-5129-4f34-abdb-37d283964b4b" - } ], - "type" : "library", - "bom-ref" : "jackson-dataformat-xml-2.18.3.jar-3" - }, { - "group" : "org.opensaml", - "name" : "opensaml-soap-api-4.3.2.jar", - "version" : "4.3.2", - "description" : "SOAP Provider API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6814eae932019ddc9a4e1b66ae42b01783a0bc3a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/org.opensaml/opensaml-soap-api@4.3.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "81b9354e-fd7f-4752-be31-d610d81032a5" - } ], - "type" : "library", - "bom-ref" : "opensaml-soap-api-4.3.2.jar" - }, { - "group" : "org.bouncycastle", - "name" : "bcpkix-jdk18on-1.80.jar", - "version" : "1.80", - "description" : "The Bouncy Castle Java APIs for CMS, PKCS, EAC, TSP, CMP, CRMF, OCSP, and certificate generation. This jar contains APIs for JDK 1.8 and up. The APIs are designed primarily to be used in conjunction with the BC Java provider but may also be used with other providers providing cryptographic services.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5277dfaaef2e92ce1d802499599a0ca7488f86e6" - } ], - "licenses" : [ { - "license" : { - "name" : "Bouncy Castle License", - "url" : "https://www.bouncycastle.org/licence.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.bouncycastle/bcpkix-jdk18on@1.80", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.bouncycastle.org/download/bouncy-castle-java/" - }, { - "type" : "distribution", - "url" : "https://www.bouncycastle.org/download/bouncy-castle-java/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "83aafa68-bb21-41bf-baef-8a6fb217a6ff" - } ], - "type" : "library", - "bom-ref" : "bcpkix-jdk18on-1.80.jar" - }, { - "group" : "@emotion/weak-memoize", - "name" : "weak-memoize-0.2.5.tgz", - "version" : "0.2.5", - "description" : "A memoization function that uses a WeakMap", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8eed982e2ee6f7f4e44c253e12962980791efd46" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/weak-memoize@0.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "9c9a1894-0917-4ef4-8203-9805ce37717b" - } ], - "type" : "library", - "bom-ref" : "weak-memoize-0.2.5.tgz" - }, { - "group" : "org.apache.httpcomponents", - "name" : "httpclient-4.5.14.jar", - "version" : "4.5.14", - "description" : "Apache HttpComponents Client", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1194890e6f56ec29177673f2f12d0b8e627dec98" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "The Apache Software Foundation,Copyright 1999-2022 The Apache Software Foundation", - "purl" : "pkg:maven/org.apache.httpcomponents/httpclient@4.5.14?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.apache.org/" - }, { - "type" : "distribution", - "url" : "http://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b91ea689-593e-4526-89d5-10d695ebd561" - } ], - "type" : "library", - "bom-ref" : "httpclient-4.5.14.jar" - }, { - "group" : "org.tmatesoft.sqljet", - "name" : "sqljet-1.1.15.jar", - "version" : "1.1.15", - "description" : "Java(tm) library to manage sqlite databases", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3262b9ec45ea10c19856ff1003580160a8680df5" - } ], - "licenses" : [ { - "license" : { - "id" : "GPL-3.0-only", - "url" : "http://gnu.org/licenses/gpl-3.0.html" - } - } ], - "copyright" : "Copyright 1996 or similar laws prohibiting or restricting circumvention of such measures", - "purl" : "pkg:maven/org.tmatesoft.sqljet/sqljet@1.1.15?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://sqljet.com/" - }, { - "type" : "distribution", - "url" : "https://sqljet.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0fa16c39-7230-44e3-8a98-dab5c043b342" - } ], - "type" : "library", - "bom-ref" : "sqljet-1.1.15.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-pushapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-5" - }, { - "group" : "react-style-singleton", - "name" : "react-style-singleton-2.2.1.tgz", - "version" : "2.2.1", - "description" : "Just create a single stylesheet...", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f99e420492b2d8f34d38308ff660b60d0b1205b4" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/react-style-singleton@2.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/react-style-singleton#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "4b5621f2-0302-4d0c-87d7-7e1f3d40f592" - } ], - "type" : "library", - "bom-ref" : "react-style-singleton-2.2.1.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-pushapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-pushapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-3" - }, { - "group" : "react-modal", - "name" : "react-modal-3.16.1.tgz", - "version" : "3.16.1", - "description" : "Accessible modal dialog component for React.JS", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "34018528fc206561b1a5467fc3beeaddafb39b2b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Ryan Florence", - "purl" : "pkg:npm/react-modal@3.16.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/reactjs/react-modal" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-modal/-/react-modal-3.16.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f35266ea-926f-4b1e-a2dc-752c1dff2e66" - } ], - "type" : "library", - "bom-ref" : "react-modal-3.16.1.tgz-2" - }, { - "group" : "com.sonarsource.plsql", - "name" : "plsql-api-3.15.0.7123.jar", - "version" : "3.15.0.7123", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8e0fb9b575e719652f79ca7fcaa2f130b2867514" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "16c159e3-a673-4556-8fe8-875ab245c55e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "plsql-api-3.15.0.7123.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-pushapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-2" - }, { - "group" : "@emotion/react", - "name" : "react-11.11.0.tgz", - "version" : "11.11.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "408196b7ef8729d8ad08fc061b03b046d1460e02" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/react@11.11.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/react/-/react-11.11.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1f063afc-0113-46a4-a911-8ec9d309793a" - } ], - "type" : "library", - "bom-ref" : "react-11.11.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-pushapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-7" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-pushapi-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-6" - }, { - "group" : "@emotion/use-insertion-effect-with-fallbacks", - "name" : "use-insertion-effect-with-fallbacks-1.1.0.tgz", - "version" : "1.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a818a0b2c481efba0cf34e5ab1e0cb2dcb9dfaf" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/use-insertion-effect-with-fallbacks@1.1.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "136ef7df-0edf-410e-b0e8-abd0dfc7ddfd" - } ], - "type" : "library", - "bom-ref" : "use-insertion-effect-with-fallbacks-1.1.0.tgz" - }, { - "group" : "org.sonarsource.api.plugin", - "name" : "sonar-plugin-api-11.3.0.2824.jar", - "version" : "11.3.0.2824", - "description" : "Plugin API for SonarQube, SonarCloud and SonarLint", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b41b466867cabe30dc8214303c9e202c35987ec8" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 2002-2024 The Apache Software Foundation", - "purl" : "pkg:maven/org.sonarsource.api.plugin/sonar-plugin-api@11.3.0.2824", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.sonarqube.org/" - }, { - "type" : "distribution", - "url" : "https://www.sonarqube.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "41bb1300-af8f-4b68-a07e-a45e9a0d85f2" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-plugin-api-11.3.0.2824.jar" - }, { - "group" : "com.google.auto.service", - "name" : "auto-service-annotations-1.1.1.jar", - "version" : "1.1.1", - "description" : "Provider-configuration files for ServiceLoader.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "da12a15cd058ba90a0ff55357fb521161af4736d" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2013 Google LLC", - "purl" : "pkg:maven/com.google.auto.service/auto-service-annotations@1.1.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.google.com" - }, { - "type" : "distribution", - "url" : "http://www.google.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f443219b-9480-406f-aa12-7738d4568f9c" - } ], - "type" : "library", - "bom-ref" : "auto-service-annotations-1.1.1.jar" - }, { - "group" : "com.datadoghq", - "name" : "dd-java-agent-1.30.1.jar", - "version" : "1.30.1", - "description" : "dd-java-agent", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d102a10d0964208aa06f415c445c961170abfd47" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2011 Mike Samuel et al", - "purl" : "pkg:maven/com.datadoghq/dd-java-agent@1.30.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/datadog/dd-trace-java" - }, { - "type" : "distribution", - "url" : "https://github.com/datadog/dd-trace-java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6d259b7b-6c0b-4228-ac3b-dddb631b8851" - } ], - "type" : "library", - "bom-ref" : "dd-java-agent-1.30.1.jar" - }, { - "group" : "com.sonarsource.security", - "name" : "sonar-security-plugin-11.1.0.35630.sonar-plugin", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bb5aed064500ec2bf90ca3750d6e5aa9011d68d5" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "56a77007-36dd-48fa-8fe5-0ca1d94c368e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-security-plugin-11.1.0.35630.sonar-plugin" - }, { - "group" : "org.springframework", - "name" : "spring-beans-6.2.5.jar", - "version" : "6.2.5", - "description" : "Spring Beans", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6f8eb671d9905da5a73bc9ab7e703e9fed6a0c3f" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2002-2025 Pivotal, Inc,Copyright 1999-2009 OW2 Consortium,Copyright 2006-2019 Joe Walnes,Copyright 2000-2011 INRIA", - "purl" : "pkg:maven/org.springframework/spring-beans@6.2.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/spring-projects/spring-framework" - }, { - "type" : "distribution", - "url" : "https://github.com/spring-projects/spring-framework" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "66cf18dd-e5e8-4b37-a001-4d81db6803f7" - } ], - "type" : "library", - "bom-ref" : "spring-beans-6.2.5.jar" - }, { - "group" : "react-modal", - "name" : "react-modal-3.16.1.tgz", - "version" : "3.16.1", - "description" : "Accessible modal dialog component for React.JS", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "34018528fc206561b1a5467fc3beeaddafb39b2b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Ryan Florence", - "purl" : "pkg:npm/react-modal@3.16.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/reactjs/react-modal" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-modal/-/react-modal-3.16.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f35266ea-926f-4b1e-a2dc-752c1dff2e66" - } ], - "type" : "library", - "bom-ref" : "react-modal-3.16.1.tgz-3" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-common-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-common-2025.3-SNAPSHOT-2" - }, { - "group" : "com.sonarsource.security", - "name" : "sonar-security-plugin-11.1.0.35630.sonar-plugin", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "bb5aed064500ec2bf90ca3750d6e5aa9011d68d5" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "56a77007-36dd-48fa-8fe5-0ca1d94c368e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-security-plugin-11.1.0.35630.sonar-plugin-2" - }, { - "group" : "com.nimbusds", - "name" : "content-type-2.3.jar", - "version" : "2.3", - "description" : "Java library for Content (Media) Type representation", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e3aa0be212d7a42839a8f3f506f5b990bcce0222" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.nimbusds/content-type@2.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://connect2id.com" - }, { - "type" : "distribution", - "url" : "https://connect2id.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "72adc417-3fef-453d-9e6a-fbce0d3ffbb4" - } ], - "type" : "library", - "bom-ref" : "content-type-2.3.jar" - }, { - "group" : "org.cryptacular", - "name" : "cryptacular-1.2.5.jar", - "version" : "1.2.5", - "description" : "The spectacular complement to the Bouncy Castle crypto API for Java.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a8a4542bac306650a4299825e6217001aadbc11c" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.cryptacular/cryptacular@1.2.5?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.cryptacular.org" - }, { - "type" : "distribution", - "url" : "http://www.cryptacular.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "08112c0d-ded5-4fe3-af47-2a4bacf7af20" - } ], - "type" : "library", - "bom-ref" : "cryptacular-1.2.5.jar-2" - }, { - "group" : "com.yworks", - "name" : "annotation-4.1.1.jar", - "version" : "4.1.1", - "description" : "The open-source Java obfuscation tool working with Ant and Gradle by yWorks - the diagramming experts", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1f7852dcd94afcc4daefb9b815940b6ed5c97d2d" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.yworks/annotation@4.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/yWorks/yGuard" - }, { - "type" : "distribution", - "url" : "https://github.com/yWorks/yGuard" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "16a008a4-6d78-4981-8014-2d22abb2ce08" - } ], - "type" : "library", - "bom-ref" : "annotation-4.1.1.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-ldap-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-ldap-25.4-SNAPSHOT" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT-3" - }, { - "group" : "com.auth0", - "name" : "java-jwt-4.5.0.jar", - "version" : "4.5.0", - "description" : "Java client library for the Auth0 platform", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d7004155fe57a107cc40fb6be0132d8ad2530613" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Auth0, Inc", - "purl" : "pkg:maven/com.auth0/java-jwt@4.5.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/auth0/java-jwt" - }, { - "type" : "distribution", - "url" : "https://github.com/auth0/java-jwt" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7adbd609-d8b8-4712-80e9-63684319c0a0" - } ], - "type" : "library", - "bom-ref" : "java-jwt-4.5.0.jar-2" - }, { - "group" : "com.sonarsource.dbd", - "name" : "ir-1.36.1.13250.jar", - "version" : "1.36.1.13250", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "64f01bd0b3b6afbbb637cff0b62b447217cdb14a" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0c504c56-1657-46cb-856f-1d5b643117c6" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "ir-1.36.1.13250.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT-5" - }, { - "group" : "net.shibboleth.utilities", - "name" : "java-support-8.4.2.jar", - "version" : "8.4.2", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "465664648ce3f261da4c1ee32e1082cceba1f495" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Shibboleth Consortium", - "purl" : "pkg:maven/net.shibboleth.utilities/java-support@8.4.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://shibboleth.net" - }, { - "type" : "distribution", - "url" : "https://shibboleth.net" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dbfed0b7-0732-41bd-b682-60cc744c3634" - } ], - "type" : "library", - "bom-ref" : "java-support-8.4.2.jar-2" - }, { - "group" : "org.sonarsource.flex", - "name" : "sonar-flex-plugin-2.14.0.5032.jar", - "version" : "2.14.0.5032", - "description" : "Code Quality and Security for Flex / ActionScript", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "947045318587d79d7e0d46dec509ead87c375e8b" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - }, { - "license" : { - "id" : "LGPL-2.1-or-later", - "url" : "https://spdx.org/licenses/LGPL-2.1-or-later.html" - } - } ], - "copyright" : "Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,SonarSource", - "purl" : "pkg:maven/org.sonarsource.flex/sonar-flex-plugin@2.14.0.5032", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/flex.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/flex.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d4d77ca0-994e-425f-aa66-ca8dab508f4b" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-flex-plugin-2.14.0.5032.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT-6" - }, { - "group" : "com.github.scribejava", - "name" : "scribejava-apis-8.3.3.jar", - "version" : "8.3.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0298af304ea01e420110b9d6880f2bef9c41bc8b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2010 Pablo Fernandez,Copyright 2010 Pablo Fernandez Permission is hereby granted, free of charge, to any person obtaining a copy of this", - "purl" : "pkg:maven/com.github.scribejava/scribejava-apis@8.3.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0df94331-fdab-446f-bb49-a5f99ddd4f39" - } ], - "type" : "library", - "bom-ref" : "scribejava-apis-8.3.3.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-core-25.4-SNAPSHOT" - }, { - "group" : "com.github.scribejava", - "name" : "scribejava-apis-8.3.3.jar", - "version" : "8.3.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0298af304ea01e420110b9d6880f2bef9c41bc8b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2010 Pablo Fernandez,Copyright 2010 Pablo Fernandez Permission is hereby granted, free of charge, to any person obtaining a copy of this", - "purl" : "pkg:maven/com.github.scribejava/scribejava-apis@8.3.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0df94331-fdab-446f-bb49-a5f99ddd4f39" - } ], - "type" : "library", - "bom-ref" : "scribejava-apis-8.3.3.jar-4" - }, { - "group" : "com.github.scribejava", - "name" : "scribejava-apis-8.3.3.jar", - "version" : "8.3.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0298af304ea01e420110b9d6880f2bef9c41bc8b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2010 Pablo Fernandez,Copyright 2010 Pablo Fernandez Permission is hereby granted, free of charge, to any person obtaining a copy of this", - "purl" : "pkg:maven/com.github.scribejava/scribejava-apis@8.3.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0df94331-fdab-446f-bb49-a5f99ddd4f39" - } ], - "type" : "library", - "bom-ref" : "scribejava-apis-8.3.3.jar-3" - }, { - "group" : "com.github.scribejava", - "name" : "scribejava-apis-8.3.3.jar", - "version" : "8.3.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0298af304ea01e420110b9d6880f2bef9c41bc8b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2010 Pablo Fernandez,Copyright 2010 Pablo Fernandez Permission is hereby granted, free of charge, to any person obtaining a copy of this", - "purl" : "pkg:maven/com.github.scribejava/scribejava-apis@8.3.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0df94331-fdab-446f-bb49-a5f99ddd4f39" - } ], - "type" : "library", - "bom-ref" : "scribejava-apis-8.3.3.jar-6" - }, { - "group" : "com.github.scribejava", - "name" : "scribejava-apis-8.3.3.jar", - "version" : "8.3.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0298af304ea01e420110b9d6880f2bef9c41bc8b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2010 Pablo Fernandez,Copyright 2010 Pablo Fernandez Permission is hereby granted, free of charge, to any person obtaining a copy of this", - "purl" : "pkg:maven/com.github.scribejava/scribejava-apis@8.3.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0df94331-fdab-446f-bb49-a5f99ddd4f39" - } ], - "type" : "library", - "bom-ref" : "scribejava-apis-8.3.3.jar-5" - }, { - "group" : "@emotion/serialize", - "name" : "serialize-1.3.1.tgz", - "version" : "1.3.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "490b660178f43d2de8e92b278b51079d726c05c3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/serialize@1.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "75d38be9-6efc-45d6-9fd7-05f07b6fa103" - } ], - "type" : "library", - "bom-ref" : "serialize-1.3.1.tgz-2" - }, { - "group" : "org.sonarsource.analyzer-commons", - "name" : "sonar-performance-measure-2.16.0.3141.jar", - "version" : "2.16.0.3141", - "description" : "Logic to capture a hierarchy of performance measures, save it into a file, and merge files", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "530ba83dcd3380e545ce1caba67891c4d55d0ac0" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.analyzer-commons/sonar-performance-measure@2.16.0.3141", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1aa29900-cb2a-4cb2-86f2-77ef1e0eab3e" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-performance-measure-2.16.0.3141.jar" - }, { - "group" : "@emotion/serialize", - "name" : "serialize-1.3.1.tgz", - "version" : "1.3.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "490b660178f43d2de8e92b278b51079d726c05c3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/serialize@1.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "75d38be9-6efc-45d6-9fd7-05f07b6fa103" - } ], - "type" : "library", - "bom-ref" : "serialize-1.3.1.tgz-3" - }, { - "group" : "com.github.scribejava", - "name" : "scribejava-apis-8.3.3.jar", - "version" : "8.3.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0298af304ea01e420110b9d6880f2bef9c41bc8b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2010 Pablo Fernandez,Copyright 2010 Pablo Fernandez Permission is hereby granted, free of charge, to any person obtaining a copy of this", - "purl" : "pkg:maven/com.github.scribejava/scribejava-apis@8.3.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0df94331-fdab-446f-bb49-a5f99ddd4f39" - } ], - "type" : "library", - "bom-ref" : "scribejava-apis-8.3.3.jar-7" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-api-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-api-25.4-SNAPSHOT-7" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-api-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-api-25.4-SNAPSHOT-6" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-api-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-api-25.4-SNAPSHOT-5" - }, { - "group" : "org.cyclonedx", - "name" : "cyclonedx-core-java-10.2.1.jar", - "version" : "10.2.1", - "description" : "The CycloneDX core module provides a model representation of the BOM along with utilities to assist in creating, parsing, and validating BOMs.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5ca18d4f460429ce5e6117efa428707873f69f9b" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - }, { - "license" : { - "name" : "GPL-2.0-only WITH Classpath-exception-2.0", - "url" : "http://gnu.org/software/classpath/license.html" - } - }, { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - }, { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - }, { - "license" : { - "id" : "CDDL-1.1", - "url" : "http://glassfish.java.net/public/CDDL+GPL_1_1.html" - } - }, { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "OWASP Foundation,Copyright 1987 Regents of the University of California,Copyright 2001 David Giffin,Copyright 1998-2003 Carnegie Mellon University,Copyright 1994-2021 The FreeBSD Project,Copyright 2000 The Apache Software Foundation,Copyright 1995-1996 Joseph Arceneaux,Copyright 1986-1995 Ian F. Darwin,Copyright various years] The Regents of the University of California,Copyright 2013 ukasz Stelmach,Copyright 2001 David Ingamells,Copyright yyyy, yyyy> The Open Group,Copyright 1988 Richard M. Stallman),Copyright 2003 The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy),Copyright 1989-2014 Free Software,Copyright 2015 Tim Hentenaar,Copyright 2002 March,Copyright 2000 W3Works, LLC,Copyright 1999 Carlo Wood,Copyright 2000 Carsten Haitzler and various contributors (see AUTHORS),Copyright 1995-2001 Corporation for National Research Initiatives,Copyright 2008-2014 Oracle and/or its affiliates,Copyright 2001-2013 Oracle and/or its affiliates,Copyright 1987 Regents of the University of California,Copyright OWASP Foundation,Copyright 2011 Deusty, LLC,Copyright 1995-1996 Systemics Ltd,Copyright 1999-2001 Jim Knoble,Copyright 1994-2009 Sun Microsystems, Inc,Copyright 1997 Justin T. Gibbs,Copyright notices,Copyright 1990-1997 The Regents of the University of California,Copyright 2001-2007 The Flex Project,Copyright 1995-1999 The Apache Group,Copyright 2003-2005 Sun Microsystems, Inc,Portions of this text are reprinted and reproduced in electronic form in the FreeBSD manual pages, from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology — Portable Operating System Interface (POSIX), The Open Group Base Specifications Is,Copyright 1989 M. Stephenson),Copyright 2003-2005 Tom Wu", - "purl" : "pkg:maven/org.cyclonedx/cyclonedx-core-java@10.2.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/CycloneDX/cyclonedx-core-java" - }, { - "type" : "distribution", - "url" : "https://github.com/CycloneDX/cyclonedx-core-java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "cdb2a2f2-47df-4b89-8185-93c8b4cf5d5c" - } ], - "type" : "library", - "bom-ref" : "cyclonedx-core-java-10.2.1.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-api-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-api-25.4-SNAPSHOT-4" - }, { - "group" : "com.sonarsource.security", - "name" : "config-11.1.0.35630.jar", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "64754bd5023abf1f3cff118e798602535f215c26" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "037a1f93-3aa5-465c-a5d0-c6906da5e6a1" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "config-11.1.0.35630.jar-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-api-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-api-25.4-SNAPSHOT-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-api-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-api-25.4-SNAPSHOT-2" - }, { - "group" : "com.github.spullara.mustache.java", - "name" : "compiler-0.9.6.jar", - "version" : "0.9.6", - "description" : "Implementation of mustache.js for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1b8707299c34406ed0ba40bbf8513352ac4765c9" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2019 The Apache Software Foundation, Licensed under the <a class=\"white\" href=\"/licen,Copyright 2010 RightTime, Inc", - "purl" : "pkg:maven/com.github.spullara.mustache.java/compiler@0.9.6?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://github.com/spullara/mustache.java" - }, { - "type" : "distribution", - "url" : "http://github.com/spullara/mustache.java" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "7b8a6b0f-7f90-437a-b761-c3381c5f2dad" - } ], - "type" : "library", - "bom-ref" : "compiler-0.9.6.jar" - }, { - "group" : "@babel/helper-validator-identifier", - "name" : "helper-validator-identifier-7.16.7.tgz", - "version" : "7.16.7", - "description" : "Validate identifier/keywords name", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e8c602438c4a8195751243da9031d1607d247cad" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Sebastian McKenzie and other contributors,Copyright 2014 Sebastian McKenzie and other contributors", - "purl" : "pkg:npm/%40babel/helper-validator-identifier@7.16.7", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2ca777cb-0e5a-4da9-b016-405aa0470064" - } ], - "type" : "library", - "bom-ref" : "helper-validator-identifier-7.16.7.tgz" - }, { - "group" : "org.apache.lucene", - "name" : "lucene-spatial3d-8.11.3.jar", - "version" : "8.11.3", - "description" : "Lucene Spatial shapes implemented using 3D planar geometry", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e9f211a34ad5f5295608e41741177adda2796cfe" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2002 Richard Boulton,The Apache Software Foundation,Copyright 2001-2004 Copyright,Copyright 2001-2009 Anders Moeller,Copyright 2006 Dawid Weiss,Copyright 2007-2011 Dawid Weiss,Copyright 2010 Jean-Philippe Barrette-LaPierre, <jpb@rrette.com>,Copyright © 2003,,Copyright 2001 Dr Martin Porter,Copyright 2011 Zygmunt Saloni, WÅ�odzimierz GruszczyÅ�ski,,Copyright 1999-2010 International Business Machines,Copyright 2009 by www.imdict.net,Copyright 2001-2021 The Apache Software Foundation,Copyright 2011-2016 Yann Collet,Copyright 1995-2008 International Business Machines Corporation and others", - "purl" : "pkg:maven/org.apache.lucene/lucene-spatial3d@8.11.3?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.apache.org/" - }, { - "type" : "distribution", - "url" : "https://www.apache.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d7a81b61-8339-49e1-aab0-04cd21be1aeb" - } ], - "type" : "library", - "bom-ref" : "lucene-spatial3d-8.11.3.jar" - }, { - "group" : "ch.qos.logback.access", - "name" : "logback-access-tomcat-2.0.6.jar", - "version" : "2.0.6", - "description" : "Logback Access Tomcat Module module", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b00ba64b92437c26c74707be502d26e1ae7cdda4" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-2.1-only", - "url" : "http://opensource.org/licenses/lgpl-2.1" - } - }, { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - } ], - "copyright" : "QOS.ch", - "purl" : "pkg:maven/ch.qos.logback.access/logback-access-tomcat@2.0.6", - "externalReferences" : [ { - "type" : "website", - "url" : "http://logback.qos.ch" - }, { - "type" : "distribution", - "url" : "http://logback.qos.ch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "c889483b-29b2-48c8-a5fe-193b77d17baa" - } ], - "type" : "library", - "bom-ref" : "logback-access-tomcat-2.0.6.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-db-core-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-db-core-25.4-SNAPSHOT" - }, { - "group" : "com.sonarsource.security", - "name" : "symbolic-analysis-11.1.0.35630.jar", - "version" : "11.1.0.35630", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "613d4551a5edcb3e27b5f2b337319ca27f58fd7f" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6bad0b67-ce48-42ea-956d-801b568298b0" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "symbolic-analysis-11.1.0.35630.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT" - }, { - "group" : "@emotion/cache", - "name" : "cache-11.11.0.tgz", - "version" : "11.11.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/cache@11.11.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e4c8d57f-b1ab-4337-ad8d-0a869d03e74b" - } ], - "type" : "library", - "bom-ref" : "cache-11.11.0.tgz-2" - }, { - "group" : "org.elasticsearch", - "name" : "elasticsearch-lz4-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :libs:elasticsearch-lz4", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6ab7c50a26d37107a7949e02604ce1d60d0dc329" - } ], - "licenses" : [ { - "license" : { - "name" : "Server Side Public License", - "url" : "https://www.mongodb.com/licensing/server-side-public-license" - } - }, { - "license" : { - "id" : "Elastic-2.0", - "url" : "https://spdx.org/licenses/Elastic-2.0.html" - } - } ], - "copyright" : "Copyright 2018 MongoDB, Inc,Copyright 2009-2021 Elasticsearch", - "purl" : "pkg:maven/org.elasticsearch/elasticsearch-lz4@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "dd65dfdc-5f80-426c-870f-2f4909b9c4bb" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-lz4-7.17.28.jar" - }, { - "group" : "asynckit", - "name" : "asynckit-0.4.0.tgz", - "version" : "0.4.0", - "description" : "Minimal async jobs utility library, with streams support", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2016 Alex Indigo", - "purl" : "pkg:npm/asynckit@0.4.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/alexindigo/asynckit#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d43e0fa1-da2b-486b-b018-bfd49936d2ca" - } ], - "type" : "library", - "bom-ref" : "asynckit-0.4.0.tgz" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-gitlab-provisioning-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-gitlab-provisioning-2025.3-SNAPSHOT" - }, { - "group" : "@floating-ui/core", - "name" : "core-1.1.1.tgz", - "version" : "1.1.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "cf8b4cdd8987c687329a6099561764d8a16f2f22" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2021 Floating UI contributors,Copyright 2021 Floating UI contributors", - "purl" : "pkg:npm/%40floating-ui/core@1.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://floating-ui.com" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@floating-ui/core/-/core-1.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "e8d50b79-308a-4fd0-a5ac-7ed50e70bfb4" - } ], - "type" : "library", - "bom-ref" : "core-1.1.1.tgz" - }, { - "group" : "com.fasterxml.jackson.dataformat", - "name" : "jackson-dataformat-toml-2.18.3.jar", - "version" : "2.18.3", - "description" : "Support for reading and writing TOML-encoded data via Jackson abstractions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "336d144daa471ab11a7672f68565b6afb6914ced" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.dataformat/jackson-dataformat-toml@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-dataformats-text" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fb697e5e-063f-42b4-8e3b-75dad142876e" - } ], - "type" : "library", - "bom-ref" : "jackson-dataformat-toml-2.18.3.jar-2" - }, { - "group" : "@emotion/use-insertion-effect-with-fallbacks", - "name" : "use-insertion-effect-with-fallbacks-1.0.0.tgz", - "version" : "1.0.0", - "description" : "A wrapper package that uses `useInsertionEffect` or a fallback for it", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ffadaec35dbb7885bd54de3fa267ab2f860294df" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors,Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/use-insertion-effect-with-fallbacks@1.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "b6600fc3-73c7-44d0-87e4-4e7612a6e7a6" - } ], - "type" : "library", - "bom-ref" : "use-insertion-effect-with-fallbacks-1.0.0.tgz" - }, { - "group" : "com.github.victools", - "name" : "jsonschema-generator-4.37.0.jar", - "version" : "4.37.0", - "description" : "Java JSON Schema Generator – creating a JSON Schema (Draft 6, Draft 7 or Draft 2019-09) from your Java classes", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ec28160ed810268595d124fdb990a66123259d89" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.github.victools/jsonschema-generator@4.37.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/victools/jsonschema-generator" - }, { - "type" : "distribution", - "url" : "https://github.com/victools/jsonschema-generator" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "0c6c0c82-68c3-4044-be55-8cf52dd762e5" - } ], - "type" : "library", - "bom-ref" : "jsonschema-generator-4.37.0.jar" - }, { - "group" : "com.squareup.okio", - "name" : "okio-3.6.0.jar", - "version" : "3.6.0", - "description" : "A modern I/O library for Android, Java, and Kotlin Multiplatform.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8bf9683c80762d7dd47db12b68e99abea2a7ae05" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okio/okio@3.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/square/okio/" - }, { - "type" : "distribution", - "url" : "https://github.com/square/okio/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ebdb4e2a-126c-496d-9e3d-4993c9ddd2a2" - } ], - "type" : "library", - "bom-ref" : "okio-3.6.0.jar-4" - }, { - "group" : "com.squareup.okio", - "name" : "okio-3.6.0.jar", - "version" : "3.6.0", - "description" : "A modern I/O library for Android, Java, and Kotlin Multiplatform.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8bf9683c80762d7dd47db12b68e99abea2a7ae05" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okio/okio@3.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/square/okio/" - }, { - "type" : "distribution", - "url" : "https://github.com/square/okio/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ebdb4e2a-126c-496d-9e3d-4993c9ddd2a2" - } ], - "type" : "library", - "bom-ref" : "okio-3.6.0.jar-3" - }, { - "group" : "strip-json-comments", - "name" : "strip-json-comments-3.1.1.tgz", - "version" : "3.1.1", - "description" : "Strip comments from JSON. Lets you use comments in your JSON files!", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "31f1281b3832630434831c310c01cccda8cbe006" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com),Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)", - "purl" : "pkg:npm/strip-json-comments@3.1.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/sindresorhus/strip-json-comments#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "12942f5d-2b7a-46e6-8780-2880974f790a" - } ], - "type" : "library", - "bom-ref" : "strip-json-comments-3.1.1.tgz" - }, { - "group" : "com.sun.mail", - "name" : "jakarta.mail-2.0.1.jar", - "version" : "2.0.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "96d3645f02a92bcc5e7ae1ff037151e44179f230" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - }, { - "license" : { - "name" : "GPL-2.0-only WITH Classpath-exception-2.0", - "url" : "http://gnu.org/software/classpath/license.html" - } - } ], - "copyright" : "Copyright 2021 Oracle", - "purl" : "pkg:maven/com.sun.mail/jakarta.mail@2.0.1?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.oracle.com" - }, { - "type" : "distribution", - "url" : "http://www.oracle.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "fd152972-1141-4c7e-a955-2b34a9887b85" - } ], - "type" : "library", - "bom-ref" : "jakarta.mail-2.0.1.jar" - }, { - "group" : "com.squareup.okio", - "name" : "okio-3.6.0.jar", - "version" : "3.6.0", - "description" : "A modern I/O library for Android, Java, and Kotlin Multiplatform.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8bf9683c80762d7dd47db12b68e99abea2a7ae05" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okio/okio@3.6.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/square/okio/" - }, { - "type" : "distribution", - "url" : "https://github.com/square/okio/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ebdb4e2a-126c-496d-9e3d-4993c9ddd2a2" - } ], - "type" : "library", - "bom-ref" : "okio-3.6.0.jar-2" - }, { - "group" : "lodash", - "name" : "lodash-4.17.21.tgz", - "version" : "4.17.21", - "description" : "Lodash modular utilities.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "679591c564c3bffaae8454cf0b3df370c3d6911c" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright OpenJS Foundation and other contributors <https://openjsf.org/>,Copyright OpenJS Foundation and other contributors <https://openjsf.org/>", - "purl" : "pkg:npm/lodash@4.17.21", - "externalReferences" : [ { - "type" : "website", - "url" : "https://lodash.com/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1bee866f-8aa8-4037-a733-2163296d317a" - } ], - "type" : "library", - "bom-ref" : "lodash-4.17.21.tgz" - }, { - "group" : "org.sonarsource.sslr", - "name" : "sslr-toolkit-1.24.0.633.jar", - "version" : "1.24.0.633", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "27ed611d462cdd0bf5387d8335721149b9e3e29b" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.sslr/sslr-toolkit@1.24.0.633?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "48dceb34-ccd6-45ea-88ff-7b2387a8ffe2" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sslr-toolkit-1.24.0.633.jar" - }, { - "group" : "org.springframework.security", - "name" : "spring-security-saml2-service-provider-6.4.4.jar", - "version" : "6.4.4", - "description" : "Spring Security", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "62f045b45b71e818ad2e91bd3d90d210db463e37" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.springframework.security/spring-security-saml2-service-provider@6.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-security" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-security" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "94852c6c-f4a1-4063-8e6a-46ab9b233e69" - } ], - "type" : "library", - "bom-ref" : "spring-security-saml2-service-provider-6.4.4.jar-5" - }, { - "group" : "com.sonarsource.dotnet", - "name" : "sonar-vbnet-enterprise-plugin-10.7.0.110445.sonar-plugin", - "version" : "10.7.0.110445", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f520ea0b1c62395d2c3e6ec91471a0c5197def09" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "8066bf82-6b59-4c8b-8354-0cfd97767f43" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-vbnet-enterprise-plugin-10.7.0.110445.sonar-plugin" - }, { - "group" : "org.springframework.security", - "name" : "spring-security-saml2-service-provider-6.4.4.jar", - "version" : "6.4.4", - "description" : "Spring Security", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "62f045b45b71e818ad2e91bd3d90d210db463e37" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.springframework.security/spring-security-saml2-service-provider@6.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-security" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-security" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "94852c6c-f4a1-4063-8e6a-46ab9b233e69" - } ], - "type" : "library", - "bom-ref" : "spring-security-saml2-service-provider-6.4.4.jar-6" - }, { - "group" : "xml-apis", - "name" : "xml-apis-1.4.01.jar", - "version" : "1.4.01", - "description" : "xml-commons provides an Apache-hosted set of DOM, SAX, and JAXP interfaces for use in other xml-based projects. Our hope is that we can standardize on both a common version and packaging scheme for these critical XML standards interfaces to make the lives of both our developers and users easier. The External Components portion of xml-commons contains interfaces that are defined by external standards organizations. For DOM, that's the W3C; for SAX it's David Megginson and sax.sourceforge.net; for JAXP it's Sun.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "3789d9fada2d3d458c4ba2de349d48780f381ee3" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - }, { - "license" : { - "id" : "SAX-PD", - "url" : "http://spdx.org/licenses/SAX-PD" - } - }, { - "license" : { - "id" : "W3C", - "url" : "http://www.opensource.org/licenses/W3C" - } - } ], - "copyright" : "Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright 1999-2009 The Apache Software Foundation,Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright Status", - "purl" : "pkg:maven/xml-apis/xml-apis@1.4.01?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ebcc4fac-3987-45fe-83bb-5510e98ed867" - } ], - "type" : "library", - "bom-ref" : "xml-apis-1.4.01.jar" - }, { - "group" : "org.sonarsource.sslr", - "name" : "sslr-xpath-1.24.0.633.jar", - "version" : "1.24.0.633", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ba0474ce01e2fd5d692c77f003a399085f6091f9" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "SonarSource", - "purl" : "pkg:maven/org.sonarsource.sslr/sslr-xpath@1.24.0.633?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarsource.com" - }, { - "type" : "distribution", - "url" : "http://www.sonarsource.com" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d699f92b-80ab-48a6-9d44-767465fdb51a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sslr-xpath-1.24.0.633.jar-2" - }, { - "group" : "org.springframework.security", - "name" : "spring-security-saml2-service-provider-6.4.4.jar", - "version" : "6.4.4", - "description" : "Spring Security", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "62f045b45b71e818ad2e91bd3d90d210db463e37" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.springframework.security/spring-security-saml2-service-provider@6.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-security" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-security" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "94852c6c-f4a1-4063-8e6a-46ab9b233e69" - } ], - "type" : "library", - "bom-ref" : "spring-security-saml2-service-provider-6.4.4.jar-3" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-github-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-github-25.4-SNAPSHOT" - }, { - "group" : "org.springframework.security", - "name" : "spring-security-saml2-service-provider-6.4.4.jar", - "version" : "6.4.4", - "description" : "Spring Security", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "62f045b45b71e818ad2e91bd3d90d210db463e37" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.springframework.security/spring-security-saml2-service-provider@6.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-security" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-security" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "94852c6c-f4a1-4063-8e6a-46ab9b233e69" - } ], - "type" : "library", - "bom-ref" : "spring-security-saml2-service-provider-6.4.4.jar-4" - }, { - "group" : "org.springframework.security", - "name" : "spring-security-saml2-service-provider-6.4.4.jar", - "version" : "6.4.4", - "description" : "Spring Security", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "62f045b45b71e818ad2e91bd3d90d210db463e37" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.springframework.security/spring-security-saml2-service-provider@6.4.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://spring.io/projects/spring-security" - }, { - "type" : "distribution", - "url" : "https://spring.io/projects/spring-security" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "94852c6c-f4a1-4063-8e6a-46ab9b233e69" - } ], - "type" : "library", - "bom-ref" : "spring-security-saml2-service-provider-6.4.4.jar-2" - }, { - "group" : "com.squareup.okhttp3", - "name" : "logging-interceptor-4.12.0.jar", - "version" : "4.12.0", - "description" : "Square’s meticulous HTTP client for Java and Kotlin.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "e922c1f14d365c0f2bed140cc0825e18462c2778" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.squareup.okhttp3/logging-interceptor@4.12.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://square.github.io/okhttp/" - }, { - "type" : "distribution", - "url" : "https://square.github.io/okhttp/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f1f89dde-bf65-4472-b6d6-7aefe61aad78" - } ], - "type" : "library", - "bom-ref" : "logging-interceptor-4.12.0.jar-2" - }, { - "group" : "@radix-ui/react-menu", - "name" : "react-menu-2.1.5.tgz", - "version" : "2.1.5", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0c2e7a368771b6061e7f3692f18240917547ef7f" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-menu@2.1.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "23d38083-d3cb-41c2-9d45-f87f08d78b7b" - } ], - "type" : "library", - "bom-ref" : "react-menu-2.1.5.tgz" - }, { - "group" : "com.jcraft", - "name" : "jsch.agentproxy.usocket-jna-0.0.9.jar", - "version" : "0.0.9", - "description" : "a proxy to ssh-agent and Pageant in Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "100522438a57b4c0d15db112fc8a08d17f48080a" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright 2011-2012 Atsuhiko Yamanaka, JCraft,Inc", - "purl" : "pkg:maven/com.jcraft/jsch.agentproxy.usocket-jna@0.0.9?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.jcraft.com/" - }, { - "type" : "distribution", - "url" : "http://www.jcraft.com/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "316b1d10-893c-4b3d-aaa4-96d1406a9f12" - } ], - "type" : "library", - "bom-ref" : "jsch.agentproxy.usocket-jna-0.0.9.jar" - }, { - "group" : "org.sonarsource.plugins.cayc", - "name" : "sonar-cayc-plugin-2.4.0.2018.jar", - "version" : "2.4.0.2018", - "description" : "Demonstrates the value of Clean as You Code methodology", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "4d43ee0e1667790d88f5a7bea32c2895aecf370c" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/org.sonarsource.plugins.cayc/sonar-cayc-plugin@2.4.0.2018", - "externalReferences" : [ { - "type" : "website", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - }, { - "type" : "distribution", - "url" : "http://docs.sonarqube.org/display/PLUG/Plugin+Library" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "1b183754-d47c-450a-a402-250c115be73a" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-cayc-plugin-2.4.0.2018.jar" - }, { - "group" : "junit", - "name" : "junit-4.13.2.jar", - "version" : "4.13.2", - "description" : "JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-1.0", - "url" : "http://opensource.org/licenses/eclipse-1.0.php" - } - } ], - "copyright" : "JUnit", - "purl" : "pkg:maven/junit/junit@4.13.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.junit.org" - }, { - "type" : "distribution", - "url" : "http://www.junit.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a1e71c9c-757f-44d4-b60d-48c6d7ed845c" - } ], - "type" : "library", - "bom-ref" : "junit-4.13.2.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-common-25.4-SNAPSHOT-3" - }, { - "group" : "com.sonarsource.sonarqube", - "name" : "core-extension-sca-2025.3-SNAPSHOT", - "version" : "2025.3-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "core-extension-sca-2025.3-SNAPSHOT" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-api-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-api-25.4-SNAPSHOT-9" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-common-25.4-SNAPSHOT-2" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-webserver-api-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-webserver-api-25.4-SNAPSHOT-8" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-auth-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-auth-common-25.4-SNAPSHOT-4" - }, { - "group" : "jakarta.annotation", - "name" : "jakarta.annotation-api-3.0.0.jar", - "version" : "3.0.0", - "description" : "Jakarta Annotations API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "54f928fadec906a99d558536756d171917b9d936" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - }, { - "license" : { - "name" : "GPL-2.0-only WITH Classpath-exception-2.0", - "url" : "http://gnu.org/software/classpath/license.html" - } - } ], - "copyright" : "Copyright 2012-2024 Oracle and/or its affiliates,Eclipse Foundation", - "purl" : "pkg:maven/jakarta.annotation/jakarta.annotation-api@3.0.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.eclipse.org" - }, { - "type" : "distribution", - "url" : "https://www.eclipse.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b9703eb7-b5a5-47ce-9a69-e6348aa859a5" - } ], - "type" : "library", - "bom-ref" : "jakarta.annotation-api-3.0.0.jar" - }, { - "group" : "jakarta.servlet", - "name" : "jakarta.servlet-api-6.1.0.jar", - "version" : "6.1.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1169a246913fe3823782af7943e7a103634867c5" - } ], - "licenses" : [ { - "license" : { - "id" : "EPL-2.0", - "url" : "http://www.eclipse.org/legal/epl-v20.html" - } - }, { - "license" : { - "name" : "GPL-2.0-only WITH Classpath-exception-2.0", - "url" : "http://gnu.org/software/classpath/license.html" - } - } ], - "copyright" : "Eclipse Foundation,Copyright 1997-2024 Oracle and/or its affiliates and others", - "purl" : "pkg:maven/jakarta.servlet/jakarta.servlet-api@6.1.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.eclipse.org" - }, { - "type" : "distribution", - "url" : "https://www.eclipse.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "a7ad69a0-737b-4e0d-bb01-2cc4175be845" - } ], - "type" : "library", - "bom-ref" : "jakarta.servlet-api-6.1.0.jar" - }, { - "group" : "io.micrometer", - "name" : "micrometer-observation-1.14.5.jar", - "version" : "1.14.5", - "description" : "Module containing Observation related code", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b23dff6bf07a29f67fdae8f3f3f8f1c78fa7b126" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2010 Google Inc,Copyright 2017 VMware, Inc,Copyright 2002-2019 Copyright,Copyright 2001-2019 Copyright,Copyright 2013 The Netty Project", - "purl" : "pkg:maven/io.micrometer/micrometer-observation@1.14.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/micrometer-metrics/micrometer" - }, { - "type" : "distribution", - "url" : "https://github.com/micrometer-metrics/micrometer" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "b022725b-4693-43ef-9d90-9be402d66b00" - } ], - "type" : "library", - "bom-ref" : "micrometer-observation-1.14.5.jar" - }, { - "group" : "org.sonarsource.dotnet", - "name" : "sonar-vbnet-plugin-10.7.0.110445.jar", - "version" : "10.7.0.110445", - "description" : "Code Analyzer for VB.NET", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "ce37c949a4e5305cb1e641cb029d65f007fa5d22" - } ], - "licenses" : [ { - "license" : { - "id" : "LGPL-3.0-only", - "url" : "http://www.gnu.org/copyleft/lesser.html" - } - } ], - "copyright" : "Copyright 1999 Sun Microsystems., http://www.sun.com,SonarSource,Copyright 2000 World Wide Web Consortium, http://www.w3.org,Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,,Copyright 1999-2009 The Apache Software Foundation,Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner", - "purl" : "pkg:maven/org.sonarsource.dotnet/sonar-vbnet-plugin@10.7.0.110445", - "externalReferences" : [ { - "type" : "website", - "url" : "http://redirect.sonarsource.com/plugins/vbnet.html" - }, { - "type" : "distribution", - "url" : "http://redirect.sonarsource.com/plugins/vbnet.html" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "2a0d8a63-63d3-416e-92ce-51424ec8c6ea" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-vbnet-plugin-10.7.0.110445.jar-2" - }, { - "group" : "react-remove-scroll", - "name" : "react-remove-scroll-2.6.3.tgz", - "version" : "2.6.3", - "description" : "Disables scroll outside of `children` node.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "df02cde56d5f2731e058531f8ffd7f9adec91ac2" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2017 Anton Korzunov", - "purl" : "pkg:npm/react-remove-scroll@2.6.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/theKashey/react-remove-scroll#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "224cf357-c2ab-46a4-ad6c-bf2d242dc6e2" - } ], - "type" : "library", - "bom-ref" : "react-remove-scroll-2.6.3.tgz" - }, { - "group" : "color-name", - "name" : "color-name-1.1.3.tgz", - "version" : "1.1.3", - "description" : "A list of color names and its values", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a7d0558bd89c42f795dd42328f740831ca53bc25" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2015 Dmitry Ivanov", - "purl" : "pkg:npm/color-name@1.1.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/dfcreative/color-name" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "fa8f53e2-5340-4f21-af19-86d547da6054" - } ], - "type" : "library", - "bom-ref" : "color-name-1.1.3.tgz" - }, { - "group" : "yaml", - "name" : "yaml-1.10.2.tgz", - "version" : "1.10.2", - "description" : "JavaScript parser and stringifier for YAML", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "2301c5ffbf12b467de8da2333a459e29e7920e4b" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2018 Eemeli Aro <eemeli@gmail.com>", - "purl" : "pkg:npm/yaml@1.10.2", - "externalReferences" : [ { - "type" : "website", - "url" : "https://eemeli.org/yaml/v1/" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "11c38f64-7aaf-4b9d-a40a-4733b273fc92" - } ], - "type" : "library", - "bom-ref" : "yaml-1.10.2.tgz" - }, { - "group" : "regenerator-runtime", - "name" : "regenerator-runtime-0.13.9.tgz", - "version" : "0.13.9", - "description" : "Runtime for Regenerator-compiled generator and async functions.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "8925742a98ffd90814988d7566ad30ca3b263b52" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Facebook, Inc,Copyright 2015 ECMAScript", - "purl" : "pkg:npm/regenerator-runtime@0.13.9", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "d4ba9826-d41c-4a8a-8f17-5a944a220b49" - } ], - "type" : "library", - "bom-ref" : "regenerator-runtime-0.13.9.tgz" - }, { - "group" : "org.elasticsearch.client", - "name" : "elasticsearch-rest-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :client:rest", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a0c900175316c1084b87829f417dcf6a6c1aa6a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2019 Elastic and contributors,Copyright 2009-2021 Elasticsearch", - "purl" : "pkg:maven/org.elasticsearch.client/elasticsearch-rest-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "418c6519-fcc8-4474-b00c-60478c73b5a9" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-rest-client-7.17.28.jar-4" - }, { - "group" : "deep-extend", - "name" : "deep-extend-0.6.0.tgz", - "version" : "0.6.0", - "description" : "Recursive object extending", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013-2018 Viacheslav Lotsmanov", - "purl" : "pkg:npm/deep-extend@0.6.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/unclechu/node-deep-extend" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "a5270bec-4e21-419b-aa5f-0777f97d9b24" - } ], - "type" : "library", - "bom-ref" : "deep-extend-0.6.0.tgz" - }, { - "group" : "mime-types", - "name" : "mime-types-2.1.24.tgz", - "version" : "2.1.24", - "description" : "The ultimate javascript content-type utility.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b6f8d0b3e951efb77dedeca194cff6d16f676f81" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Jonathan Ong <me@jongleberry.com>,Copyright 2015 Douglas Christopher Wilson <doug@somethingdoug.com>", - "purl" : "pkg:npm/mime-types@2.1.24", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/jshttp/mime-types#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "91df6032-478f-4d3c-8b11-ab847018fae2" - } ], - "type" : "library", - "bom-ref" : "mime-types-2.1.24.tgz" - }, { - "group" : "@emotion/serialize", - "name" : "serialize-1.3.1.tgz", - "version" : "1.3.1", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "490b660178f43d2de8e92b278b51079d726c05c3" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Emotion team and other contributors", - "purl" : "pkg:npm/%40emotion/serialize@1.3.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/emotion-js/emotion/tree/main#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "75d38be9-6efc-45d6-9fd7-05f07b6fa103" - } ], - "type" : "library", - "bom-ref" : "serialize-1.3.1.tgz" - }, { - "group" : "org.elasticsearch.client", - "name" : "elasticsearch-rest-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :client:rest", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a0c900175316c1084b87829f417dcf6a6c1aa6a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2019 Elastic and contributors,Copyright 2009-2021 Elasticsearch", - "purl" : "pkg:maven/org.elasticsearch.client/elasticsearch-rest-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "418c6519-fcc8-4474-b00c-60478c73b5a9" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-rest-client-7.17.28.jar-2" - }, { - "group" : "org.elasticsearch.client", - "name" : "elasticsearch-rest-client-7.17.28.jar", - "version" : "7.17.28", - "description" : "Elasticsearch subproject :client:rest", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1a0c900175316c1084b87829f417dcf6a6c1aa6a" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2019 Elastic and contributors,Copyright 2009-2021 Elasticsearch", - "purl" : "pkg:maven/org.elasticsearch.client/elasticsearch-rest-client@7.17.28", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/elastic/elasticsearch" - }, { - "type" : "distribution", - "url" : "https://github.com/elastic/elasticsearch" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "418c6519-fcc8-4474-b00c-60478c73b5a9" - } ], - "type" : "library", - "bom-ref" : "elasticsearch-rest-client-7.17.28.jar-3" - }, { - "group" : "@radix-ui/react-checkbox", - "name" : "react-checkbox-1.1.3.tgz", - "version" : "1.1.3", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "0e2ab913fddf3c88603625f7a9457d73882c8a32" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-checkbox@1.1.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f555467c-86a0-4afa-927d-dca20c122fc3" - } ], - "type" : "library", - "bom-ref" : "react-checkbox-1.1.3.tgz" - }, { - "group" : "jakarta.validation", - "name" : "jakarta.validation-api-3.0.2.jar", - "version" : "3.0.2", - "description" : "Jakarta Bean Validation API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "92b6631659ba35ca09e44874d3eb936edfeee532" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Eclipse Foundation", - "purl" : "pkg:maven/jakarta.validation/jakarta.validation-api@3.0.2?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.eclipse.org" - }, { - "type" : "distribution", - "url" : "https://www.eclipse.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "6c4ed96b-c12b-4a94-9d72-7a46b2934dbe" - } ], - "type" : "library", - "bom-ref" : "jakarta.validation-api-3.0.2.jar" - }, { - "group" : "@types/prop-types", - "name" : "prop-types-15.7.4.tgz", - "version" : "15.7.4", - "description" : "TypeScript definitions for prop-types", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "fcf7205c25dff795ee79af1e30da2c9790808f11" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright Microsoft Corporation", - "purl" : "pkg:npm/%40types/prop-types@15.7.4", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/prop-types" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "1a49f1fe-9162-481d-804f-48769804b496" - } ], - "type" : "library", - "bom-ref" : "prop-types-15.7.4.tgz" - }, { - "group" : "org.ow2.asm", - "name" : "asm-9.0.jar", - "version" : "9.0", - "description" : "ASM, a very small and fast Java bytecode manipulation framework", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "af582ff60bc567c42d931500c3fdc20e0141ddf9" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "OW2,Copyright 2000-2011 INRIA", - "purl" : "pkg:maven/org.ow2.asm/asm@9.0?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.ow2.org/" - }, { - "type" : "distribution", - "url" : "http://www.ow2.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "e7dccca1-6280-4461-8650-aa0cdfef5d0f" - } ], - "type" : "library", - "bom-ref" : "asm-9.0.jar" - }, { - "group" : "org.ow2.asm", - "name" : "asm-9.7.1.jar", - "version" : "9.7.1", - "description" : "ASM, a very small and fast Java bytecode manipulation framework", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "f0ed132a49244b042cd0e15702ab9f2ce3cc8436" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2000-2011 INRIA,Copyright 2011-2012 Bull S.A.S,OW2", - "purl" : "pkg:maven/org.ow2.asm/asm@9.7.1", - "externalReferences" : [ { - "type" : "website", - "url" : "http://asm.ow2.io/" - }, { - "type" : "distribution", - "url" : "http://asm.ow2.io/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "9614e68b-3c93-4b26-b99d-e954522ab269" - } ], - "type" : "library", - "bom-ref" : "asm-9.7.1.jar" - }, { - "group" : "@radix-ui/react-dialog", - "name" : "react-dialog-1.1.5.tgz", - "version" : "1.1.5", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "1bb2880e6b0ef9d9d0d9f440e1414c94bbacb55b" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:npm/%40radix-ui/react-dialog@1.1.5", - "externalReferences" : [ { - "type" : "website", - "url" : "https://radix-ui.com/primitives" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.5.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "97eda938-6d85-4c6b-a26e-e8e6e0f27684" - } ], - "type" : "library", - "bom-ref" : "react-dialog-1.1.5.tgz" - }, { - "group" : "com.sonarsource.dart", - "name" : "sonar-dart-plugin-1.1.0.2133.jar", - "version" : "1.1.0.2133", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a705fa671efce0080f48c8a60269a587e086af8b" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "706f1ccf-e2c1-422c-b991-479d4994bd49" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-dart-plugin-1.1.0.2133.jar" - }, { - "group" : "supports-preserve-symlinks-flag", - "name" : "supports-preserve-symlinks-flag-1.0.0.tgz", - "version" : "1.0.0", - "description" : "Determine if the current node version supports the `--preserve-symlinks` flag.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6eda4bd344a3c94aea376d4cc31bc77311039e09" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2022 Inspect JS", - "purl" : "pkg:npm/supports-preserve-symlinks-flag@1.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/inspect-js/node-supports-preserve-symlinks-flag#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "2ad51528-c1c8-4216-a843-75d3f4c35b82" - } ], - "type" : "library", - "bom-ref" : "supports-preserve-symlinks-flag-1.0.0.tgz" - }, { - "group" : "com.fasterxml.jackson.core", - "name" : "jackson-databind-2.18.3.jar", - "version" : "2.18.3", - "description" : "General data-binding functionality for Jackson: works on core streaming API", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "537e3886263e3b3464385040453e92567fd509e2" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "FasterXML,Copyright 2007 Tatu Saloranta (tatu.saloranta@iki.fi)", - "purl" : "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f3a69f1c-e028-4d0e-91e1-4d7694e6f829" - } ], - "type" : "library", - "bom-ref" : "jackson-databind-2.18.3.jar" - }, { - "group" : "joda-time", - "name" : "joda-time-2.12.6.jar", - "version" : "2.12.6", - "description" : "Date and time library to replace JDK date handling", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "b32a7e04d494f4272afa947f426f3b463ee03956" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Joda.org", - "purl" : "pkg:maven/joda-time/joda-time@2.12.6?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "https://www.joda.org" - }, { - "type" : "distribution", - "url" : "https://www.joda.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "5936a0d8-0f23-458c-9b3c-e54b6e0a390c" - } ], - "type" : "library", - "bom-ref" : "joda-time-2.12.6.jar" - }, { - "group" : "resolve", - "name" : "resolve-1.22.1.tgz", - "version" : "1.22.1", - "description" : "resolve like require.resolve() on behalf of files asynchronously and synchronously", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "27cb2ebb53f91abb49470a928bba7558066ac177" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2012 James Halliday", - "purl" : "pkg:npm/resolve@1.22.1", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/browserify/resolve#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "386f5f0f-5115-475a-902d-0006a25174f4" - } ], - "type" : "library", - "bom-ref" : "resolve-1.22.1.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-9" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-8" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-7" - }, { - "group" : "org.unbescape", - "name" : "unbescape-1.1.6.RELEASE.jar", - "version" : "1.1.6.RELEASE", - "description" : "Advanced yet easy-to-use escape/unescape library for Java", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "7b90360afb2b860e09e8347112800d12c12b2a13" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "Copyright 2014-2017 The UNBESCAPE team (http://www.unbescape.org) -->,Copyright 2014-2017 The UNBESCAPE team (http://www.unbescape.org),Copyright 2014-2017 The UNBESCAPE team (http://www.unbescape.org),Copyright 2014-2017 The UNBESCAPE team (http://www.unbescape.org)", - "purl" : "pkg:maven/org.unbescape/unbescape@1.1.6.RELEASE?type=jar", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.unbescape.org" - }, { - "type" : "distribution", - "url" : "http://www.unbescape.org" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "ac2bbf52-d6e9-445b-8444-44116c261c72" - } ], - "type" : "library", - "bom-ref" : "unbescape-1.1.6.RELEASE.jar" - }, { - "group" : "com.fasterxml.jackson.datatype", - "name" : "jackson-datatype-jdk8-2.18.3.jar", - "version" : "2.18.3", - "description" : "Add-on module for Jackson (https://github.com/FasterXML/jackson) to support JDK 8 data types.", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "621558295660935134b171ce2b0d9ad6842ec2ff" - } ], - "licenses" : [ { - "license" : { - "id" : "Apache-2.0", - "url" : "http://apache.org/licenses/LICENSE-2.0" - } - } ], - "copyright" : "NONE", - "purl" : "pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jdk8@2.18.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/FasterXML/jackson-modules-java8" - }, { - "type" : "distribution", - "url" : "https://github.com/FasterXML/jackson-modules-java8" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "303c249c-81ee-4daa-a299-281ad89a8133" - } ], - "type" : "library", - "bom-ref" : "jackson-datatype-jdk8-2.18.3.jar" - }, { - "group" : "org.sonarsource.kotlin", - "name" : "sonar-kotlin-plugin-3.0.1.6889.jar", - "version" : "3.0.1.6889", - "description" : "Code Analyzer for Kotlin", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "028ada1ab2208371546a9b5c0a492083877d8e54" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "Copyright (c) World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University),Copyright 1999 Sun Microsystems., http://www.sun.com,Copyright 1999-2009 The Apache Software Foundation,Copyright 1999 IBM Corporation., http://www.ibm.com,Copyright 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,,Copyright 2004 by the Checker Framework developers,Copyright employing, using, or engaging artificial intelligence technology that is not part of the Program to ingest, interpret, analyze, train on, or interact with the data provided by the Program, or to engage with the Program in any manner,Copyright 2000 World Wide Web Consortium, http://www.w3.org", - "purl" : "pkg:maven/org.sonarsource.kotlin/sonar-kotlin-plugin@3.0.1.6889", - "externalReferences" : [ { - "type" : "website", - "url" : "http://www.sonarqube.org/" - }, { - "type" : "distribution", - "url" : "http://www.sonarqube.org/" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "006735b1-486b-4334-9a06-c654608ef10c" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-kotlin-plugin-3.0.1.6889.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-2" - }, { - "group" : "has", - "name" : "has-1.0.3.tgz", - "version" : "1.0.3", - "description" : "Object.prototype.hasOwnProperty.call shortcut", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2013 Thiago de Arruda", - "purl" : "pkg:npm/has@1.0.3", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/tarruda/has" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "22e4a777-5e08-45d6-884a-a9dc23441385" - } ], - "type" : "library", - "bom-ref" : "has-1.0.3.tgz" - }, { - "group" : "com.sonarsource.abap", - "name" : "sonar-abap-plugin-3.15.1.6010.sonar-plugin", - "version" : "3.15.1.6010", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d71c124b60b4f8e75b19188db508947d9b135681" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f0db2830-c719-42b0-baa6-e3b340c463a6" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-abap-plugin-3.15.1.6010.sonar-plugin" - }, { - "group" : "glob", - "name" : "glob-11.0.0.tgz", - "version" : "11.0.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "6031df0d7b65eaa1ccb9b29b5ced16cea658e77e" - } ], - "licenses" : [ { - "license" : { - "id" : "ISC", - "url" : "http://www.opensource.org/licenses/ISC" - } - } ], - "copyright" : "Copyright 2009-2023 Isaac Z. Schlueter and Contributors", - "purl" : "pkg:npm/glob@11.0.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/isaacs/node-glob#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "086798e6-4248-4c4a-9055-bfda1e228c50" - } ], - "type" : "library", - "bom-ref" : "glob-11.0.0.tgz" - }, { - "group" : "smol-toml", - "name" : "smol-toml-1.3.0.tgz", - "version" : "1.3.0", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "5200e251fffadbb72570c84e9776d2a3eca48143" - } ], - "licenses" : [ { - "license" : { - "id" : "BSD-3-Clause", - "url" : "http://www.opensource.org/licenses/BSD-3-Clause" - } - } ], - "copyright" : "Copyright Squirrel Chat et al., All rights reserved", - "purl" : "pkg:npm/smol-toml@1.3.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/squirrelchat/smol-toml#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "c9f95c02-787b-4cb9-afda-e3e77854a2d6" - } ], - "type" : "library", - "bom-ref" : "smol-toml-1.3.0.tgz" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-6" - }, { - "group" : "com.sonarsource.cpp", - "name" : "sonar-cfamily-dependencies-plugin-6.65.0.81949.jar", - "version" : "6.65.0.81949", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "59e7258a6eb2ce3eb2e3795c7f3398eb859127d0" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "d54b6a1f-102b-41b6-b105-b84a93e96816" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-cfamily-dependencies-plugin-6.65.0.81949.jar" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-5" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-4" - }, { - "group" : "org.sonarsource.sonarqube", - "name" : "sonar-server-common-25.4-SNAPSHOT", - "version" : "25.4-SNAPSHOT", - "description" : "NONE", - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "type" : "library", - "bom-ref" : "sonar-server-common-25.4-SNAPSHOT-3" - }, { - "group" : "mime-db", - "name" : "mime-db-1.40.0.tgz", - "version" : "1.40.0", - "description" : "Media Type Database", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "a65057e998db090f732a68f6c276d387d4126c32" - } ], - "licenses" : [ { - "license" : { - "id" : "MIT", - "url" : "http://www.opensource.org/licenses/MIT" - } - } ], - "copyright" : "Copyright 2014 Jonathan Ong me@jongleberry.com", - "purl" : "pkg:npm/mime-db@1.40.0", - "externalReferences" : [ { - "type" : "website", - "url" : "https://github.com/jshttp/mime-db#readme" - }, { - "type" : "distribution", - "url" : "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "NODE_PACKAGED_MODULE" - }, { - "name" : "pkgUuid", - "value" : "f60c858c-30fc-4e75-a280-0dcb9a9a0ccf" - } ], - "type" : "library", - "bom-ref" : "mime-db-1.40.0.tgz" - }, { - "group" : "com.sonarsource.abap", - "name" : "sonar-abap-plugin-3.15.1.6010.sonar-plugin", - "version" : "3.15.1.6010", - "description" : "NONE", - "hashes" : [ { - "alg" : "SHA-1", - "content" : "d71c124b60b4f8e75b19188db508947d9b135681" - } ], - "licenses" : [ { - "expression" : "NONE" - } ], - "copyright" : "NONE", - "externalReferences" : [ { - "type" : "website", - "url" : "NONE" - }, { - "type" : "distribution", - "url" : "NONE" - } ], - "properties" : [ { - "name" : "pkgType", - "value" : "MAVEN_ARTIFACT" - }, { - "name" : "pkgUuid", - "value" : "f0db2830-c719-42b0-baa6-e3b340c463a6" - }, { - "name" : "isProprietary", - "value" : "true" - } ], - "type" : "library", - "bom-ref" : "sonar-abap-plugin-3.15.1.6010.sonar-plugin-2" - } ], - "dependencies" : [ { - "ref" : "sslr-core-1.24.0.633.jar", - "dependsOn" : [ ] - }, { - "ref" : "abap-squid-3.15.1.6010.jar", - "dependsOn" : [ "sslr-core-1.24.0.633.jar" ] - }, { - "ref" : "sonar-analyzer-commons-2.16.0.3141.jar", - "dependsOn" : [ ] - }, { - "ref" : "abap-squid-3.15.1.6010.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-analyzer-recognizers-2.16.0.3141.jar", - "dependsOn" : [ ] - }, { - "ref" : "commons-lang-2.6.jar", - "dependsOn" : [ ] - }, { - "ref" : "abap-checks-3.15.1.6010.jar", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "abap-squid-3.15.1.6010.jar-2", "sonar-analyzer-recognizers-2.16.0.3141.jar", "commons-lang-2.6.jar" ] - }, { - "ref" : "sonar-abap-plugin-3.15.1.6010.sonar-plugin", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "abap-squid-3.15.1.6010.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "abap-checks-3.15.1.6010.jar" ] - }, { - "ref" : "jsr305-3.0.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "asm-9.7.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "sslr-core-1.24.0.633.jar-2", - "dependsOn" : [ "jsr305-3.0.2.jar", "asm-9.7.1.jar" ] - }, { - "ref" : "sonar-abap-plugin-3.15.1.6010.sonar-plugin-2", - "dependsOn" : [ "sslr-core-1.24.0.633.jar-2", "abap-squid-3.15.1.6010.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "abap-checks-3.15.1.6010.jar" ] - }, { - "ref" : "api-10.21.1.30825.jar", - "dependsOn" : [ "jsr305-3.0.2.jar" ] - }, { - "ref" : "slf4j-api-2.0.17.jar", - "dependsOn" : [ ] - }, { - "ref" : "gson-2.12.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "api-10.21.1.30825.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "javascript-checks-10.21.1.30825.jar", - "dependsOn" : [ "gson-2.12.1.jar", "api-10.21.1.30825.jar-2", "sonar-analyzer-commons-2.16.0.3141.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "commons-codec-1.18.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "commons-lang3-3.17.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "commons-io-2.18.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "commons-compress-1.27.1.jar", - "dependsOn" : [ "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "xz-1.10.jar", - "dependsOn" : [ ] - }, { - "ref" : "protobuf-java-4.30.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "bridge-10.21.1.30825.jar", - "dependsOn" : [ "gson-2.12.1.jar", "commons-compress-1.27.1.jar", "xz-1.10.jar", "api-10.21.1.30825.jar-2", "protobuf-java-4.30.1.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "bridge-10.21.1.30825.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "css-10.21.1.30825.jar", - "dependsOn" : [ "gson-2.12.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "jsr305-3.0.2.jar", "bridge-10.21.1.30825.jar-2", "commons-io-2.18.0.jar", "sslr-core-1.24.0.633.jar" ] - }, { - "ref" : "sonar-javascript-plugin-10.21.1.30825-multi.jar", - "dependsOn" : [ "api-10.21.1.30825.jar", "slf4j-api-2.0.17.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "jsr305-3.0.2.jar", "javascript-checks-10.21.1.30825.jar", "bridge-10.21.1.30825.jar", "commons-io-2.18.0.jar", "css-10.21.1.30825.jar" ] - }, { - "ref" : "sonar-architecture-util-1.9.0.4841.jar", - "dependsOn" : [ ] - }, { - "ref" : "jspecify-1.0.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "fastutil-8.5.13.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-architecture-udg-io-1.9.0.4841.jar", - "dependsOn" : [ "protobuf-java-4.30.1.jar", "sonar-architecture-util-1.9.0.4841.jar", "jspecify-1.0.0.jar", "fastutil-8.5.13.jar" ] - }, { - "ref" : "sonar-architecture-checks-1.9.0.4841.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-architecture-java-frontend-plugin-1.9.0.4841.sonar-plugin", - "dependsOn" : [ "sonar-architecture-udg-io-1.9.0.4841.jar", "jspecify-1.0.0.jar", "sonar-architecture-checks-1.9.0.4841.jar", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "jdom2-2.0.6.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-architecture-config-io-1.9.0.4841.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-architecture-udg-io-1.9.0.4841.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-architecture-graphs-1.9.0.4841.jar", - "dependsOn" : [ "jdom2-2.0.6.1.jar", "sonar-architecture-config-io-1.9.0.4841.jar", "sonar-architecture-udg-io-1.9.0.4841.jar-2", "gson-2.12.1.jar", "sonar-architecture-util-1.9.0.4841.jar", "jspecify-1.0.0.jar" ] - }, { - "ref" : "sonar-architecture-build-tools-1.9.0.4841.jar", - "dependsOn" : [ ] - }, { - "ref" : "jackson-databind-2.18.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "jackson-dataformat-yaml-2.18.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-architecture-config-io-1.9.0.4841.jar-2", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "sonar-architecture-util-1.9.0.4841.jar", "jspecify-1.0.0.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-architecture-build-tools-1.9.0.4841.jar", "fastutil-8.5.13.jar", "jackson-dataformat-yaml-2.18.3.jar" ] - }, { - "ref" : "sonar-architecture-checks-1.9.0.4841.jar-2", - "dependsOn" : [ "sonar-architecture-graphs-1.9.0.4841.jar", "sonar-architecture-util-1.9.0.4841.jar", "jspecify-1.0.0.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-architecture-build-tools-1.9.0.4841.jar", "fastutil-8.5.13.jar", "sonar-architecture-config-io-1.9.0.4841.jar-2" ] - }, { - "ref" : "sonar-architecture-java-frontend-plugin-1.9.0.4841.sonar-plugin-2", - "dependsOn" : [ "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-architecture-udg-io-1.9.0.4841.jar", "jspecify-1.0.0.jar", "sonar-architecture-checks-1.9.0.4841.jar-2" ] - }, { - "ref" : "java-spdx-library-2.0.0-RC2.jar", - "dependsOn" : [ ] - }, { - "ref" : "json-20250107.jar", - "dependsOn" : [ ] - }, { - "ref" : "jackson-bom-2.18.3.pom", - "dependsOn" : [ ] - }, { - "ref" : "jackson-core-2.18.3.jar", - "dependsOn" : [ "jackson-bom-2.18.3.pom" ] - }, { - "ref" : "stax2-api-4.2.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "jackson-core-2.18.3.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "woodstox-core-7.0.0.jar", - "dependsOn" : [ "stax2-api-4.2.2.jar" ] - }, { - "ref" : "jackson-annotations-2.18.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "jackson-dataformat-xml-2.18.3.jar", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "stax2-api-4.2.2.jar", "jackson-core-2.18.3.jar-2", "woodstox-core-7.0.0.jar", "jackson-bom-2.18.3.pom", "jackson-annotations-2.18.3.jar" ] - }, { - "ref" : "snakeyaml-2.4.jar", - "dependsOn" : [ ] - }, { - "ref" : "jackson-dataformat-yaml-2.18.3.jar-2", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-bom-2.18.3.pom", "snakeyaml-2.4.jar" ] - }, { - "ref" : "spdx-jackson-store-2.0.0-RC2.jar", - "dependsOn" : [ "java-spdx-library-2.0.0-RC2.jar", "jackson-databind-2.18.3.jar", "json-20250107.jar", "gson-2.12.1.jar", "jackson-core-2.18.3.jar", "jackson-dataformat-xml-2.18.3.jar", "jackson-dataformat-yaml-2.18.3.jar-2" ] - }, { - "ref" : "jackson-dataformat-xml-2.18.3.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "jackson-datatype-jsr310-2.18.3.jar", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-bom-2.18.3.pom", "jackson-annotations-2.18.3.jar" ] - }, { - "ref" : "jackson-bom-2.18.3.pom-2", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-dataformat-xml-2.18.3.jar-2", "jackson-dataformat-yaml-2.18.3.jar", "jackson-annotations-2.18.3.jar", "jackson-datatype-jsr310-2.18.3.jar" ] - }, { - "ref" : "jackson-annotations-2.18.3.jar-2", - "dependsOn" : [ "jackson-bom-2.18.3.pom" ] - }, { - "ref" : "jackson-databind-2.18.3.jar-2", - "dependsOn" : [ "jackson-core-2.18.3.jar-2", "jackson-bom-2.18.3.pom-2", "jackson-annotations-2.18.3.jar-2" ] - }, { - "ref" : "error-prone-annotations-2.36.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "gson-2.12.1.jar-2", - "dependsOn" : [ "error-prone-annotations-2.36.0.jar" ] - }, { - "ref" : "spdx-jackson-store-2.0.0-RC2.jar-2", - "dependsOn" : [ "jackson-dataformat-yaml-2.18.3.jar-2", "java-spdx-library-2.0.0-RC2.jar", "jackson-databind-2.18.3.jar-2", "json-20250107.jar", "gson-2.12.1.jar-2", "jackson-core-2.18.3.jar", "jackson-dataformat-xml-2.18.3.jar" ] - }, { - "ref" : "jakarta.el-api-4.0.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "jakarta.el-4.0.2.jar", - "dependsOn" : [ "jakarta.el-api-4.0.0.jar" ] - }, { - "ref" : "asm-9.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "sslr-core-1.24.0.633.jar-3", - "dependsOn" : [ "jsr305-3.0.2.jar", "asm-9.0.jar", "asm-9.7.1.jar" ] - }, { - "ref" : "sonar-analyzer-recognizers-2.16.0.3141.jar-2", - "dependsOn" : [ "jsr305-3.0.2.jar" ] - }, { - "ref" : "sonar-html-plugin-3.19.0.5695.jar", - "dependsOn" : [ "sonar-analyzer-commons-2.16.0.3141.jar", "jakarta.el-4.0.2.jar", "sslr-core-1.24.0.633.jar-3", "sonar-analyzer-recognizers-2.16.0.3141.jar-2" ] - }, { - "ref" : "tsql-frontend-1.14.0.7614.jar", - "dependsOn" : [ ] - }, { - "ref" : "tsql-checks-1.14.0.7614.jar", - "dependsOn" : [ "sonar-analyzer-commons-2.16.0.3141.jar", "tsql-frontend-1.14.0.7614.jar" ] - }, { - "ref" : "guava-33.4.5-jre.jar", - "dependsOn" : [ ] - }, { - "ref" : "auto-common-1.2.1.jar", - "dependsOn" : [ "guava-33.4.5-jre.jar" ] - }, { - "ref" : "auto-service-annotations-1.1.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "auto-service-1.1.1.jar", - "dependsOn" : [ "auto-common-1.2.1.jar", "guava-33.4.5-jre.jar", "auto-service-annotations-1.1.1.jar" ] - }, { - "ref" : "tsql-frontend-1.14.0.7614.jar-2", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "auto-service-1.1.1.jar" ] - }, { - "ref" : "sonar-tsql-plugin-1.14.0.7614.sonar-plugin", - "dependsOn" : [ "tsql-checks-1.14.0.7614.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "tsql-frontend-1.14.0.7614.jar-2" ] - }, { - "ref" : "simpleclient-0.16.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "simpleclient-common-0.16.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "simpleclient-servlet-common-0.16.0.jar", - "dependsOn" : [ "simpleclient-0.16.0.jar", "simpleclient-common-0.16.0.jar" ] - }, { - "ref" : "simpleclient-servlet-0.16.0.jar", - "dependsOn" : [ "simpleclient-servlet-common-0.16.0.jar", "simpleclient-common-0.16.0.jar", "simpleclient-0.16.0.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "spotbugs-annotations-4.9.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "lz4-java-1.8.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "mybatis-3.5.19.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-plugin-api-11.3.0.2824.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-process-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "sonar-plugin-api-impl-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "logback-classic-1.5.18.jar", - "dependsOn" : [ ] - }, { - "ref" : "logback-core-1.5.18.jar", - "dependsOn" : [ ] - }, { - "ref" : "HikariCP-6.2.1.jar", - "dependsOn" : [ "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sonar-db-core-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-process-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-io-2.18.0.jar", "logback-classic-1.5.18.jar", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "HikariCP-6.2.1.jar" ] - }, { - "ref" : "sonar-db-dao-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "lz4-java-1.8.0.jar", "commons-io-2.18.0.jar", "sonar-db-migration-25.4-SNAPSHOT", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-db-core-25.4-SNAPSHOT" ] - }, { - "ref" : "stax2-api-4.2.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "staxmate-2.4.1.jar", - "dependsOn" : [ "stax2-api-4.2.1.jar" ] - }, { - "ref" : "sonar-db-core-25.4-SNAPSHOT-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-telemetry-core-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-2", - "dependsOn" : [ "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "staxmate-2.4.1.jar", "guava-33.4.5-jre.jar", "sonar-db-core-25.4-SNAPSHOT-2", "sonar-telemetry-core-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "sonar-db-dao-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "lz4-java-1.8.0.jar", "commons-io-2.18.0.jar", "sonar-db-migration-25.4-SNAPSHOT-2", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-db-core-25.4-SNAPSHOT" ] - }, { - "ref" : "commons-csv-1.14.0.jar", - "dependsOn" : [ "commons-codec-1.18.0.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "hamcrest-core-1.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "junit-4.13.2.jar", - "dependsOn" : [ "hamcrest-core-1.3.jar" ] - }, { - "ref" : "sonar-plugin-api-impl-25.4-SNAPSHOT-2", - "dependsOn" : [ "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "commons-csv-1.14.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spotbugs-annotations-4.9.3.jar", "junit-4.13.2.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "jul-to-slf4j-2.0.17.jar", - "dependsOn" : [ "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "failureaccess-1.0.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "guava-33.4.5-jre.jar-2", - "dependsOn" : [ "failureaccess-1.0.3.jar", "jspecify-1.0.0.jar", "error-prone-annotations-2.36.0.jar" ] - }, { - "ref" : "sonar-classloader-1.1.0.1059.jar", - "dependsOn" : [ ] - }, { - "ref" : "jakarta.annotation-api-3.0.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "jakarta.inject-api-2.0.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-update-center-common-1.35.0.2835.jar", - "dependsOn" : [ "slf4j-api-2.0.17.jar", "commons-lang-2.6.jar" ] - }, { - "ref" : "commons-exec-1.4.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "micrometer-commons-1.14.5.jar", - "dependsOn" : [ ] - }, { - "ref" : "micrometer-observation-1.14.5.jar", - "dependsOn" : [ "micrometer-commons-1.14.5.jar" ] - }, { - "ref" : "spring-beans-6.2.5.jar", - "dependsOn" : [ ] - }, { - "ref" : "spring-core-6.2.5.jar", - "dependsOn" : [ ] - }, { - "ref" : "spring-aop-6.2.5.jar", - "dependsOn" : [ "spring-beans-6.2.5.jar", "spring-core-6.2.5.jar" ] - }, { - "ref" : "spring-beans-6.2.5.jar-2", - "dependsOn" : [ "spring-core-6.2.5.jar" ] - }, { - "ref" : "spring-expression-6.2.5.jar", - "dependsOn" : [ "spring-core-6.2.5.jar" ] - }, { - "ref" : "spring-jcl-6.2.5.jar", - "dependsOn" : [ ] - }, { - "ref" : "spring-core-6.2.5.jar-2", - "dependsOn" : [ "spring-jcl-6.2.5.jar" ] - }, { - "ref" : "spring-context-6.2.5.jar", - "dependsOn" : [ "micrometer-observation-1.14.5.jar", "spring-aop-6.2.5.jar", "spring-beans-6.2.5.jar-2", "spring-expression-6.2.5.jar", "spring-core-6.2.5.jar-2" ] - }, { - "ref" : "okhttp-4.12.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-ws-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "sonar-sarif-25.4-SNAPSHOT", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "logback-classic-1.5.18.jar-2", - "dependsOn" : [ "logback-core-1.5.18.jar", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar" ] - }, { - "ref" : "commons-text-1.13.0.jar", - "dependsOn" : [ "commons-lang3-3.17.0.jar" ] - }, { - "ref" : "sonar-telemetry-core-25.4-SNAPSHOT-2", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-3", - "dependsOn" : [ "guava-33.4.5-jre.jar", "sonar-db-core-25.4-SNAPSHOT-2", "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "staxmate-2.4.1.jar" ] - }, { - "ref" : "sonar-ce-task-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "jul-to-slf4j-2.0.17.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-scanner-protocol-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "sonar-ce-common-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-ce-task-25.4-SNAPSHOT", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "jul-to-slf4j-2.0.17.jar-2", "slf4j-api-2.0.17.jar", "sonar-scanner-protocol-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "hazelcast-5.4.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-process-25.4-SNAPSHOT-2", - "dependsOn" : [ "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "jul-to-slf4j-2.0.17.jar-2", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "hazelcast-5.4.0.jar", "spotbugs-annotations-4.9.3.jar", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "commons-io-2.18.0.jar", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar" ] - }, { - "ref" : "scribejava-core-8.3.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-channel-4.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-markdown-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-channel-4.2.jar", "commons-lang3-3.17.0.jar" ] - }, { - "ref" : "sonar-db-dao-25.4-SNAPSHOT-3", - "dependsOn" : [ ] - }, { - "ref" : "commons-email2-core-2.0.0-M1.jar", - "dependsOn" : [ ] - }, { - "ref" : "jakarta.activation-2.0.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "jakarta.mail-2.0.1.jar", - "dependsOn" : [ "jakarta.activation-2.0.1.jar" ] - }, { - "ref" : "commons-email2-jakarta-2.0.0-M1.jar", - "dependsOn" : [ "commons-email2-core-2.0.0-M1.jar", "jakarta.mail-2.0.1.jar" ] - }, { - "ref" : "bcprov-jdk18on-1.80.jar", - "dependsOn" : [ ] - }, { - "ref" : "scribejava-apis-8.3.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "compiler-0.9.6.jar", - "dependsOn" : [ ] - }, { - "ref" : "lang-mustache-client-7.17.28.jar", - "dependsOn" : [ "compiler-0.9.6.jar" ] - }, { - "ref" : "rank-eval-client-7.17.28.jar", - "dependsOn" : [ ] - }, { - "ref" : "aggs-matrix-stats-client-7.17.28.jar", - "dependsOn" : [ ] - }, { - "ref" : "mapper-extras-client-7.17.28.jar", - "dependsOn" : [ ] - }, { - "ref" : "parent-join-client-7.17.28.jar", - "dependsOn" : [ ] - }, { - "ref" : "log4j-api-2.24.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "lucene-queries-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "lucene-highlighter-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-core-7.17.28.jar", - "dependsOn" : [ ] - }, { - "ref" : "jopt-simple-5.0.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-cli-7.17.28.jar", - "dependsOn" : [ "elasticsearch-core-7.17.28.jar", "jopt-simple-5.0.2.jar" ] - }, { - "ref" : "jna-5.10.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "lucene-spatial3d-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "jackson-dataformat-smile-2.18.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "jackson-dataformat-cbor-2.18.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-x-content-7.17.28.jar", - "dependsOn" : [ "elasticsearch-core-7.17.28.jar", "jackson-core-2.18.3.jar-2", "jackson-dataformat-yaml-2.18.3.jar", "jackson-dataformat-smile-2.18.3.jar", "jackson-dataformat-cbor-2.18.3.jar", "snakeyaml-2.4.jar" ] - }, { - "ref" : "lucene-grouping-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "HdrHistogram-2.1.9.jar", - "dependsOn" : [ ] - }, { - "ref" : "lucene-core-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "lucene-suggest-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-geo-7.17.28.jar", - "dependsOn" : [ ] - }, { - "ref" : "joda-time-2.12.6.jar", - "dependsOn" : [ ] - }, { - "ref" : "lucene-analyzers-common-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "t-digest-3.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "lucene-memory-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "lucene-misc-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "hppc-0.8.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-plugin-classloader-7.17.28.jar", - "dependsOn" : [ ] - }, { - "ref" : "lucene-backward-codecs-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "lucene-queryparser-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "lucene-join-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-lz4-7.17.28.jar", - "dependsOn" : [ "elasticsearch-core-7.17.28.jar", "lz4-java-1.8.0.jar" ] - }, { - "ref" : "lucene-sandbox-8.11.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-secure-sm-7.17.28.jar", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-7.17.28.jar", - "dependsOn" : [ "log4j-api-2.24.3.jar", "lucene-queries-8.11.3.jar", "lucene-highlighter-8.11.3.jar", "elasticsearch-cli-7.17.28.jar", "jna-5.10.0.jar", "lucene-spatial3d-8.11.3.jar", "elasticsearch-x-content-7.17.28.jar", "lucene-grouping-8.11.3.jar", "HdrHistogram-2.1.9.jar", "lucene-core-8.11.3.jar", "lucene-suggest-8.11.3.jar", "elasticsearch-geo-7.17.28.jar", "joda-time-2.12.6.jar", "lucene-analyzers-common-8.11.3.jar", "t-digest-3.2.jar", "lucene-memory-8.11.3.jar", "lucene-misc-8.11.3.jar", "hppc-0.8.1.jar", "elasticsearch-plugin-classloader-7.17.28.jar", "lucene-backward-codecs-8.11.3.jar", "lucene-queryparser-8.11.3.jar", "lucene-join-8.11.3.jar", "elasticsearch-lz4-7.17.28.jar", "lucene-sandbox-8.11.3.jar", "elasticsearch-secure-sm-7.17.28.jar", "elasticsearch-core-7.17.28.jar" ] - }, { - "ref" : "httpcore-4.4.12.jar", - "dependsOn" : [ ] - }, { - "ref" : "httpcore-4.4.16.jar", - "dependsOn" : [ ] - }, { - "ref" : "httpclient-4.5.14.jar", - "dependsOn" : [ "commons-codec-1.18.0.jar", "httpcore-4.4.16.jar" ] - }, { - "ref" : "commons-logging-1.3.5.jar", - "dependsOn" : [ ] - }, { - "ref" : "httpcore-nio-4.4.12.jar", - "dependsOn" : [ ] - }, { - "ref" : "httpasyncclient-4.1.4.jar", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-rest-client-7.17.28.jar", - "dependsOn" : [ "httpcore-4.4.12.jar", "httpclient-4.5.14.jar", "commons-codec-1.18.0.jar", "httpcore-4.4.16.jar", "commons-logging-1.3.5.jar", "httpcore-nio-4.4.12.jar", "httpasyncclient-4.1.4.jar" ] - }, { - "ref" : "elasticsearch-rest-high-level-client-7.17.28.jar", - "dependsOn" : [ "lang-mustache-client-7.17.28.jar", "rank-eval-client-7.17.28.jar", "aggs-matrix-stats-client-7.17.28.jar", "mapper-extras-client-7.17.28.jar", "parent-join-client-7.17.28.jar", "elasticsearch-7.17.28.jar", "elasticsearch-rest-client-7.17.28.jar" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-2", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT", "sonar-ws-25.4-SNAPSHOT", "sonar-db-migration-25.4-SNAPSHOT", "jackson-databind-2.18.3.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar" ] - }, { - "ref" : "core-3.1.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-ce-task-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "jul-to-slf4j-2.0.17.jar-2", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "diffutils-1.3.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-scanner-protocol-25.4-SNAPSHOT-2", - "dependsOn" : [ "gson-2.12.1.jar", "commons-lang3-3.17.0.jar", "protobuf-java-4.30.1.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-channel-4.2.jar-2", - "dependsOn" : [ "commons-io-2.18.0.jar", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sonar-duplications-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "spotbugs-annotations-4.9.3.jar", "sonar-channel-4.2.jar-2" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "jul-to-slf4j-2.0.17.jar", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT-2", "commons-text-1.13.0.jar", "sonar-db-migration-25.4-SNAPSHOT-3", "commons-io-2.18.0.jar", "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-2", "sonar-server-common-25.4-SNAPSHOT-2", "sonar-db-dao-25.4-SNAPSHOT-3", "core-3.1.0.jar", "sonar-ce-task-25.4-SNAPSHOT-2", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "diffutils-1.3.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "sonar-duplications-25.4-SNAPSHOT" ] - }, { - "ref" : "httpclient-4.5.14.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-rest-client-7.17.28.jar-2", - "dependsOn" : [ "httpcore-4.4.12.jar", "httpclient-4.5.14.jar-2", "commons-codec-1.18.0.jar", "httpcore-4.4.16.jar", "commons-logging-1.3.5.jar", "httpcore-nio-4.4.12.jar", "httpasyncclient-4.1.4.jar" ] - }, { - "ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-2", - "dependsOn" : [ "lang-mustache-client-7.17.28.jar", "rank-eval-client-7.17.28.jar", "aggs-matrix-stats-client-7.17.28.jar", "mapper-extras-client-7.17.28.jar", "elasticsearch-rest-client-7.17.28.jar-2", "parent-join-client-7.17.28.jar", "elasticsearch-7.17.28.jar" ] - }, { - "ref" : "jackson-bom-2.18.3.pom-3", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-dataformat-yaml-2.18.3.jar-2", "jackson-dataformat-smile-2.18.3.jar", "jackson-dataformat-cbor-2.18.3.jar", "jackson-annotations-2.18.3.jar", "jackson-datatype-jsr310-2.18.3.jar" ] - }, { - "ref" : "jackson-databind-2.18.3.jar-3", - "dependsOn" : [ "jackson-core-2.18.3.jar", "jackson-bom-2.18.3.pom-3", "jackson-annotations-2.18.3.jar-2" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-3", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT", "sonar-ws-25.4-SNAPSHOT", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-2", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-db-migration-25.4-SNAPSHOT", "jackson-databind-2.18.3.jar-3" ] - }, { - "ref" : "staxmate-2.4.1.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-4", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "staxmate-2.4.1.jar-2", "guava-33.4.5-jre.jar", "sonar-db-core-25.4-SNAPSHOT-2", "sonar-telemetry-core-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-process-25.4-SNAPSHOT-2", "commons-io-2.18.0.jar", "sonar-ce-common-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "core-3.1.0.jar", "sonar-ce-task-25.4-SNAPSHOT-2", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "diffutils-1.3.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "sonar-duplications-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "jul-to-slf4j-2.0.17.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT-2", "commons-text-1.13.0.jar", "sonar-db-migration-25.4-SNAPSHOT-4" ] - }, { - "ref" : "org.eclipse.jgit-7.2.0.202503040940-r.jar", - "dependsOn" : [ ] - }, { - "ref" : "git-files-blame-1.1.0.1835.jar", - "dependsOn" : [ "org.eclipse.jgit-7.2.0.202503040940-r.jar", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "scribejava-java8-8.3.3.jar", - "dependsOn" : [ "jackson-databind-2.18.3.jar" ] - }, { - "ref" : "scribejava-core-8.3.3.jar-2", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "scribejava-java8-8.3.3.jar" ] - }, { - "ref" : "elasticsearch-rest-client-7.17.28.jar-3", - "dependsOn" : [ "httpcore-4.4.12.jar", "httpclient-4.5.14.jar-2", "commons-codec-1.18.0.jar", "commons-logging-1.3.5.jar", "httpcore-nio-4.4.12.jar", "httpasyncclient-4.1.4.jar" ] - }, { - "ref" : "elasticsearch-7.17.28.jar-2", - "dependsOn" : [ "lucene-join-8.11.3.jar", "elasticsearch-lz4-7.17.28.jar", "lucene-sandbox-8.11.3.jar", "elasticsearch-secure-sm-7.17.28.jar", "elasticsearch-core-7.17.28.jar", "log4j-api-2.24.3.jar", "lucene-queries-8.11.3.jar", "lucene-highlighter-8.11.3.jar", "elasticsearch-cli-7.17.28.jar", "jna-5.10.0.jar", "lucene-spatial3d-8.11.3.jar", "elasticsearch-x-content-7.17.28.jar", "lucene-grouping-8.11.3.jar", "HdrHistogram-2.1.9.jar", "lucene-core-8.11.3.jar", "lucene-suggest-8.11.3.jar", "elasticsearch-geo-7.17.28.jar", "joda-time-2.12.6.jar", "lucene-analyzers-common-8.11.3.jar", "t-digest-3.2.jar", "lucene-memory-8.11.3.jar", "lucene-misc-8.11.3.jar", "hppc-0.8.1.jar", "lucene-backward-codecs-8.11.3.jar", "lucene-queryparser-8.11.3.jar" ] - }, { - "ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-3", - "dependsOn" : [ "lang-mustache-client-7.17.28.jar", "rank-eval-client-7.17.28.jar", "aggs-matrix-stats-client-7.17.28.jar", "mapper-extras-client-7.17.28.jar", "elasticsearch-rest-client-7.17.28.jar-3", "parent-join-client-7.17.28.jar", "elasticsearch-7.17.28.jar-2" ] - }, { - "ref" : "sonar-telemetry-core-25.4-SNAPSHOT-3", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "scribejava-apis-8.3.3.jar-2", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "scribejava-core-8.3.3.jar" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-4", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT", "sonar-ws-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-3", "sonar-db-migration-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-3", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-db-dao-25.4-SNAPSHOT-4", - "dependsOn" : [ "sonar-db-migration-25.4-SNAPSHOT", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-db-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "lz4-java-1.8.0.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-plugin-api-11.3.0.2824.jar-2", - "dependsOn" : [ "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "spotbugs-annotations-4.9.3.jar-2", - "dependsOn" : [ "jsr305-3.0.2.jar" ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-5", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "staxmate-2.4.1.jar", "guava-33.4.5-jre.jar", "sonar-db-core-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-process-25.4-SNAPSHOT-2", "commons-io-2.18.0.jar", "sonar-ce-common-25.4-SNAPSHOT", "sonar-duplications-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT-4", "sonar-db-dao-25.4-SNAPSHOT-4", "core-3.1.0.jar", "sonar-ce-task-25.4-SNAPSHOT-2", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "diffutils-1.3.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "jul-to-slf4j-2.0.17.jar", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar-2", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "sonar-db-migration-25.4-SNAPSHOT-5" ] - }, { - "ref" : "spring-context-6.2.5.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar-2", "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-db-core-25.4-SNAPSHOT-3", - "dependsOn" : [ "commons-io-2.18.0.jar", "logback-classic-1.5.18.jar-2", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "HikariCP-6.2.1.jar", "sonar-process-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "sonar-db-dao-25.4-SNAPSHOT-5", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "lz4-java-1.8.0.jar", "commons-io-2.18.0.jar", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-db-core-25.4-SNAPSHOT-3", "sonar-db-migration-25.4-SNAPSHOT-3" ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-6", - "dependsOn" : [ "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "staxmate-2.4.1.jar", "guava-33.4.5-jre.jar", "sonar-db-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "sonar-db-dao-25.4-SNAPSHOT-6", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "lz4-java-1.8.0.jar", "commons-io-2.18.0.jar", "sonar-db-migration-25.4-SNAPSHOT-6", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-db-core-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-db-dao-25.4-SNAPSHOT-7", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "lz4-java-1.8.0.jar", "commons-io-2.18.0.jar", "sonar-db-migration-25.4-SNAPSHOT-3", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-db-core-25.4-SNAPSHOT" ] - }, { - "ref" : "jsoup-1.19.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "spdx-java-core-1.0.0-RC2.jar", - "dependsOn" : [ "commons-lang3-3.17.0.jar", "slf4j-api-2.0.17.jar", "jsoup-1.19.1.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "spdx-java-core-1.0.0-RC2.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "spdx-java-model-3-0-1.0.0-RC2.jar", - "dependsOn" : [ "spdx-java-core-1.0.0-RC2.jar-2", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "spdx-java-model-2-X-1.0.0-RC2.jar", - "dependsOn" : [ "gson-2.12.1.jar", "spdx-java-core-1.0.0-RC2.jar-2" ] - }, { - "ref" : "java-spdx-library-2.0.0-RC2.jar-2", - "dependsOn" : [ "gson-2.12.1.jar", "commons-lang3-3.17.0.jar", "spdx-java-core-1.0.0-RC2.jar", "spdx-java-model-3-0-1.0.0-RC2.jar", "slf4j-api-2.0.17.jar", "jsoup-1.19.1.jar", "spdx-java-model-2-X-1.0.0-RC2.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "ucfg-11.1.0.35630.jar", - "dependsOn" : [ ] - }, { - "ref" : "config-11.1.0.35630.jar", - "dependsOn" : [ "ucfg-11.1.0.35630.jar", "gson-2.12.1.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "bifurcan-0.1.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "monitoring-11.1.0.35630.jar", - "dependsOn" : [ ] - }, { - "ref" : "config-11.1.0.35630.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-regex-parsing-2.16.0.3141.jar", - "dependsOn" : [ "jsr305-3.0.2.jar" ] - }, { - "ref" : "symbolic-analysis-11.1.0.35630.jar", - "dependsOn" : [ "ucfg-11.1.0.35630.jar", "gson-2.12.1.jar", "bifurcan-0.1.0.jar", "jsr305-3.0.2.jar", "monitoring-11.1.0.35630.jar", "config-11.1.0.35630.jar-2", "sonar-regex-parsing-2.16.0.3141.jar" ] - }, { - "ref" : "monitoring-11.1.0.35630.jar-2", - "dependsOn" : [ "gson-2.12.1.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "jackson-dataformat-toml-2.18.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "jackson-datatype-jdk8-2.18.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "jackson-bom-2.18.3.pom-4", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-dataformat-toml-2.18.3.jar", "jackson-datatype-jdk8-2.18.3.jar", "jackson-dataformat-yaml-2.18.3.jar", "jackson-dataformat-cbor-2.18.3.jar", "jackson-dataformat-smile-2.18.3.jar", "jackson-annotations-2.18.3.jar", "jackson-datatype-jsr310-2.18.3.jar" ] - }, { - "ref" : "jackson-dataformat-yaml-2.18.3.jar-3", - "dependsOn" : [ "snakeyaml-2.4.jar", "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar", "jackson-bom-2.18.3.pom-4" ] - }, { - "ref" : "sonar-security-plugin-11.1.0.35630.sonar-plugin", - "dependsOn" : [ "config-11.1.0.35630.jar", "symbolic-analysis-11.1.0.35630.jar", "ucfg-11.1.0.35630.jar", "gson-2.12.1.jar", "protobuf-java-4.30.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "jsr305-3.0.2.jar", "monitoring-11.1.0.35630.jar-2", "jackson-dataformat-yaml-2.18.3.jar-3" ] - }, { - "ref" : "jackson-bom-2.18.3.pom-5", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-dataformat-toml-2.18.3.jar", "jackson-datatype-jdk8-2.18.3.jar", "jackson-dataformat-yaml-2.18.3.jar", "jackson-dataformat-xml-2.18.3.jar-2", "jackson-dataformat-cbor-2.18.3.jar", "jackson-dataformat-smile-2.18.3.jar", "jackson-annotations-2.18.3.jar", "jackson-datatype-jsr310-2.18.3.jar" ] - }, { - "ref" : "jackson-dataformat-yaml-2.18.3.jar-4", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-bom-2.18.3.pom-5", "snakeyaml-2.4.jar" ] - }, { - "ref" : "sonar-regex-parsing-2.16.0.3141.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "symbolic-analysis-11.1.0.35630.jar-2", - "dependsOn" : [ "gson-2.12.1.jar", "bifurcan-0.1.0.jar", "jsr305-3.0.2.jar", "monitoring-11.1.0.35630.jar", "config-11.1.0.35630.jar-2", "sonar-regex-parsing-2.16.0.3141.jar-2", "ucfg-11.1.0.35630.jar" ] - }, { - "ref" : "sonar-security-plugin-11.1.0.35630.sonar-plugin-2", - "dependsOn" : [ "gson-2.12.1.jar", "protobuf-java-4.30.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "jsr305-3.0.2.jar", "monitoring-11.1.0.35630.jar-2", "jackson-dataformat-yaml-2.18.3.jar-4", "config-11.1.0.35630.jar", "symbolic-analysis-11.1.0.35630.jar-2", "ucfg-11.1.0.35630.jar" ] - }, { - "ref" : "sonar-scanner-protocol-25.4-SNAPSHOT-3", - "dependsOn" : [ "gson-2.12.1.jar-2", "commons-lang3-3.17.0.jar", "protobuf-java-4.30.1.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "ir-1.36.1.13250.jar", - "dependsOn" : [ ] - }, { - "ref" : "jdt-package-1.3.0.89.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-dbd-java-frontend-plugin-1.36.1.13250.sonar-plugin", - "dependsOn" : [ "ir-1.36.1.13250.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "jdt-package-1.3.0.89.jar" ] - }, { - "ref" : "js-tokens-4.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "loose-envify-1.4.0.tgz", - "dependsOn" : [ "js-tokens-4.0.0.tgz" ] - }, { - "ref" : "react-18.3.1.tgz", - "dependsOn" : [ "loose-envify-1.4.0.tgz" ] - }, { - "ref" : "classmate-1.7.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "jsonschema-generator-4.37.0.jar", - "dependsOn" : [ "classmate-1.7.0.jar", "jackson-databind-2.18.3.jar", "slf4j-api-2.0.17.jar", "jackson-core-2.18.3.jar-2" ] - }, { - "ref" : "sonar-architecture-build-tools-1.9.0.4841.jar-2", - "dependsOn" : [ "gson-2.12.1.jar", "jsonschema-generator-4.37.0.jar", "jspecify-1.0.0.jar" ] - }, { - "ref" : "jackson-databind-2.18.3.jar-4", - "dependsOn" : [ "jackson-core-2.18.3.jar-2", "jackson-bom-2.18.3.pom", "jackson-annotations-2.18.3.jar-2" ] - }, { - "ref" : "sonar-architecture-util-1.9.0.4841.jar-2", - "dependsOn" : [ "jspecify-1.0.0.jar", "fastutil-8.5.13.jar" ] - }, { - "ref" : "sonar-architecture-plugin-1.9.0.4841.sonar-plugin", - "dependsOn" : [ "jspecify-1.0.0.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-architecture-build-tools-1.9.0.4841.jar-2", "fastutil-8.5.13.jar", "jackson-dataformat-yaml-2.18.3.jar", "jackson-databind-2.18.3.jar-4", "sonar-architecture-util-1.9.0.4841.jar-2", "sonar-architecture-checks-1.9.0.4841.jar-2" ] - }, { - "ref" : "sonar-dotnet-core-10.7.0.110445.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-vbnet-core-10.7.0.110445.jar", - "dependsOn" : [ "sonar-dotnet-core-10.7.0.110445.jar" ] - }, { - "ref" : "sonar-vbnet-enterprise-plugin-10.7.0.110445.sonar-plugin", - "dependsOn" : [ "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-vbnet-core-10.7.0.110445.jar", "sonar-dotnet-core-10.7.0.110445.jar" ] - }, { - "ref" : "sonar-architecture-plugin-1.9.0.4841.sonar-plugin-2", - "dependsOn" : [ "fastutil-8.5.13.jar", "jackson-dataformat-yaml-2.18.3.jar", "jackson-databind-2.18.3.jar-4", "sonar-architecture-util-1.9.0.4841.jar-2", "sonar-architecture-checks-1.9.0.4841.jar", "jspecify-1.0.0.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-architecture-build-tools-1.9.0.4841.jar-2" ] - }, { - "ref" : "sonar-ce-common-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "jul-to-slf4j-2.0.17.jar", "slf4j-api-2.0.17.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-ce-task-25.4-SNAPSHOT-2" ] - }, { - "ref" : "simpleclient-tracer-common-0.16.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "simpleclient-tracer-otel-agent-0.16.0.jar", - "dependsOn" : [ "simpleclient-tracer-common-0.16.0.jar" ] - }, { - "ref" : "simpleclient-tracer-otel-0.16.0.jar", - "dependsOn" : [ "simpleclient-tracer-common-0.16.0.jar" ] - }, { - "ref" : "simpleclient-0.16.0.jar-2", - "dependsOn" : [ "simpleclient-tracer-otel-agent-0.16.0.jar", "simpleclient-tracer-otel-0.16.0.jar" ] - }, { - "ref" : "simpleclient-common-0.16.0.jar-2", - "dependsOn" : [ "simpleclient-0.16.0.jar-2" ] - }, { - "ref" : "valid-url-1.0.9.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-router-6.26.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "router-1.19.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-router-dom-6.26.2.tgz", - "dependsOn" : [ "react-router-6.26.2.tgz", "router-1.19.2.tgz" ] - }, { - "ref" : "jackson-bom-2.18.3.pom-6", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-dataformat-xml-2.18.3.jar-2", "jackson-dataformat-yaml-2.18.3.jar", "jackson-dataformat-smile-2.18.3.jar", "jackson-dataformat-cbor-2.18.3.jar", "jackson-annotations-2.18.3.jar", "jackson-datatype-jsr310-2.18.3.jar" ] - }, { - "ref" : "jackson-databind-2.18.3.jar-5", - "dependsOn" : [ "jackson-core-2.18.3.jar-2", "jackson-bom-2.18.3.pom-6", "jackson-annotations-2.18.3.jar-2" ] - }, { - "ref" : "sonar-sarif-25.4-SNAPSHOT-2", - "dependsOn" : [ "jackson-databind-2.18.3.jar-5", "jsr305-3.0.2.jar" ] - }, { - "ref" : "jackson-bom-2.18.3.pom-7", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-annotations-2.18.3.jar" ] - }, { - "ref" : "jackson-databind-2.18.3.jar-6", - "dependsOn" : [ "jackson-core-2.18.3.jar", "jackson-bom-2.18.3.pom-7", "jackson-annotations-2.18.3.jar-2" ] - }, { - "ref" : "sonar-sarif-25.4-SNAPSHOT-3", - "dependsOn" : [ "jackson-databind-2.18.3.jar-6", "jsr305-3.0.2.jar" ] - }, { - "ref" : "kotlin-stdlib-jdk8-1.9.10.jar", - "dependsOn" : [ ] - }, { - "ref" : "logging-interceptor-4.12.0.jar", - "dependsOn" : [ "kotlin-stdlib-jdk8-1.9.10.jar", "okhttp-4.12.0.jar" ] - }, { - "ref" : "sonar-ws-25.4-SNAPSHOT-2", - "dependsOn" : [ "logging-interceptor-4.12.0.jar", "gson-2.12.1.jar", "sonar-plugin-api-11.3.0.2824.jar", "protobuf-java-4.30.1.jar", "jakarta.annotation-api-3.0.0.jar", "spotbugs-annotations-4.9.3.jar", "okhttp-4.12.0.jar" ] - }, { - "ref" : "kotlin-stdlib-common-1.9.10.jar", - "dependsOn" : [ ] - }, { - "ref" : "annotations-13.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "kotlin-stdlib-1.9.10.jar", - "dependsOn" : [ "kotlin-stdlib-common-1.9.10.jar", "annotations-13.0.jar" ] - }, { - "ref" : "kotlin-stdlib-1.9.10.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "kotlin-stdlib-jdk7-1.9.10.jar", - "dependsOn" : [ "kotlin-stdlib-1.9.10.jar-2" ] - }, { - "ref" : "kotlin-stdlib-jdk8-1.9.10.jar-2", - "dependsOn" : [ "kotlin-stdlib-1.9.10.jar", "kotlin-stdlib-jdk7-1.9.10.jar" ] - }, { - "ref" : "logging-interceptor-4.12.0.jar-2", - "dependsOn" : [ "kotlin-stdlib-jdk8-1.9.10.jar-2", "okhttp-4.12.0.jar" ] - }, { - "ref" : "okio-jvm-3.6.0.jar", - "dependsOn" : [ "kotlin-stdlib-common-1.9.10.jar", "kotlin-stdlib-jdk8-1.9.10.jar" ] - }, { - "ref" : "okio-3.6.0.jar", - "dependsOn" : [ "okio-jvm-3.6.0.jar" ] - }, { - "ref" : "okhttp-4.12.0.jar-2", - "dependsOn" : [ "okio-3.6.0.jar", "kotlin-stdlib-jdk8-1.9.10.jar" ] - }, { - "ref" : "sonar-ws-25.4-SNAPSHOT-3", - "dependsOn" : [ "logging-interceptor-4.12.0.jar-2", "gson-2.12.1.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "protobuf-java-4.30.1.jar", "jakarta.annotation-api-3.0.0.jar", "spotbugs-annotations-4.9.3.jar-2", "okhttp-4.12.0.jar-2" ] - }, { - "ref" : "react-focus-scope-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-compose-refs-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-id-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-primitive-2.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "detect-node-es-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "use-sidecar-1.1.3.tgz", - "dependsOn" : [ "detect-node-es-1.1.0.tgz" ] - }, { - "ref" : "use-callback-ref-1.3.3.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-style-singleton-2.2.3.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-remove-scroll-bar-2.3.8.tgz", - "dependsOn" : [ "react-style-singleton-2.2.3.tgz" ] - }, { - "ref" : "tslib-2.8.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "get-nonce-1.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-style-singleton-2.2.3.tgz-2", - "dependsOn" : [ "get-nonce-1.0.1.tgz" ] - }, { - "ref" : "react-remove-scroll-2.6.3.tgz", - "dependsOn" : [ "use-sidecar-1.1.3.tgz", "use-callback-ref-1.3.3.tgz", "react-remove-scroll-bar-2.3.8.tgz", "tslib-2.8.1.tgz", "react-style-singleton-2.2.3.tgz-2" ] - }, { - "ref" : "react-focus-guards-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "primitive-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-use-escape-keydown-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-dismissable-layer-1.1.4.tgz", - "dependsOn" : [ "react-use-escape-keydown-1.1.0.tgz" ] - }, { - "ref" : "aria-hidden-1.2.4.tgz", - "dependsOn" : [ "tslib-2.8.1.tgz" ] - }, { - "ref" : "react-context-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "core-1.6.8.tgz", - "dependsOn" : [ ] - }, { - "ref" : "utils-0.2.8.tgz", - "dependsOn" : [ ] - }, { - "ref" : "dom-1.6.12.tgz", - "dependsOn" : [ "core-1.6.8.tgz", "utils-0.2.8.tgz" ] - }, { - "ref" : "react-dom-2.1.2.tgz", - "dependsOn" : [ "dom-1.6.12.tgz" ] - }, { - "ref" : "react-arrow-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-use-rect-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "rect-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-popper-1.2.1.tgz", - "dependsOn" : [ "react-dom-2.1.2.tgz", "react-arrow-1.1.1.tgz", "react-use-rect-1.1.0.tgz", "rect-1.1.0.tgz" ] - }, { - "ref" : "react-use-controllable-state-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-portal-1.1.3.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-presence-1.1.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-popover-1.1.5.tgz", - "dependsOn" : [ "react-focus-scope-1.1.1.tgz", "react-compose-refs-1.1.1.tgz", "react-id-1.1.0.tgz", "react-primitive-2.0.1.tgz", "react-remove-scroll-2.6.3.tgz", "react-focus-guards-1.1.1.tgz", "primitive-1.1.1.tgz", "react-dismissable-layer-1.1.4.tgz", "aria-hidden-1.2.4.tgz", "react-context-1.1.1.tgz", "react-popper-1.2.1.tgz", "react-use-controllable-state-1.1.0.tgz", "react-portal-1.1.3.tgz", "react-presence-1.1.2.tgz" ] - }, { - "ref" : "react-visually-hidden-1.1.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-use-layout-effect-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-slot-1.1.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-primitive-2.0.2.tgz", - "dependsOn" : [ "react-slot-1.1.2.tgz" ] - }, { - "ref" : "react-collection-1.1.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-use-callback-ref-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-use-previous-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-dismissable-layer-1.1.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-direction-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-navigation-menu-1.2.5.tgz", - "dependsOn" : [ "react-visually-hidden-1.1.2.tgz", "react-use-layout-effect-1.1.0.tgz", "react-primitive-2.0.2.tgz", "react-collection-1.1.2.tgz", "react-use-callback-ref-1.1.0.tgz", "react-use-previous-1.1.0.tgz", "react-dismissable-layer-1.1.5.tgz", "react-direction-1.1.0.tgz" ] - }, { - "ref" : "react-collection-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-roving-focus-1.1.1.tgz", - "dependsOn" : [ "react-collection-1.1.1.tgz" ] - }, { - "ref" : "react-use-size-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-radio-group-1.2.2.tgz", - "dependsOn" : [ "react-roving-focus-1.1.1.tgz", "react-use-size-1.1.0.tgz" ] - }, { - "ref" : "react-menu-2.1.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-dropdown-menu-2.1.5.tgz", - "dependsOn" : [ "react-menu-2.1.5.tgz" ] - }, { - "ref" : "react-checkbox-1.1.3.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-dialog-1.1.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "font-400-0.28.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "hooks-7.12.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-visually-hidden-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-alert-dialog-1.1.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-tooltip-1.1.7.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-slot-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "echoes-react-0.16.1.tgz", - "dependsOn" : [ "react-popover-1.1.5.tgz", "react-navigation-menu-1.2.5.tgz", "react-radio-group-1.2.2.tgz", "react-dropdown-menu-2.1.5.tgz", "react-checkbox-1.1.3.tgz", "react-dialog-1.1.5.tgz", "font-400-0.28.1.tgz", "hooks-7.12.2.tgz", "react-visually-hidden-1.1.1.tgz", "react-alert-dialog-1.1.5.tgz", "react-tooltip-1.1.7.tgz", "react-slot-1.1.1.tgz" ] - }, { - "ref" : "sslr-testing-harness-1.24.0.633.jar", - "dependsOn" : [ ] - }, { - "ref" : "cobol-api-5.8.1.8428.jar", - "dependsOn" : [ ] - }, { - "ref" : "cobol-preprocessor-5.8.1.8428.jar", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "sslr-testing-harness-1.24.0.633.jar", "cobol-api-5.8.1.8428.jar" ] - }, { - "ref" : "cobol-squid-5.8.1.8428.jar", - "dependsOn" : [ "cobol-preprocessor-5.8.1.8428.jar", "sslr-core-1.24.0.633.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "cobol-api-5.8.1.8428.jar" ] - }, { - "ref" : "cobol-squid-5.8.1.8428.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "cobol-syntax-highlighter-5.8.1.8428.jar", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "cobol-squid-5.8.1.8428.jar-2", "cobol-api-5.8.1.8428.jar" ] - }, { - "ref" : "sslr-xpath-1.24.0.633.jar", - "dependsOn" : [ ] - }, { - "ref" : "cobol-database-5.8.1.8428.jar", - "dependsOn" : [ ] - }, { - "ref" : "cobol-checks-5.8.1.8428.jar", - "dependsOn" : [ "guava-33.4.5-jre.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sslr-xpath-1.24.0.633.jar", "cobol-database-5.8.1.8428.jar", "cobol-api-5.8.1.8428.jar", "cobol-squid-5.8.1.8428.jar-2" ] - }, { - "ref" : "commons-csv-1.14.0.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "cobol-database-5.8.1.8428.jar-2", - "dependsOn" : [ "commons-csv-1.14.0.jar-2", "guava-33.4.5-jre.jar", "cobol-squid-5.8.1.8428.jar-2" ] - }, { - "ref" : "cobol-api-5.8.1.8428.jar-2", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar" ] - }, { - "ref" : "byte-buddy-1.15.11.jar", - "dependsOn" : [ ] - }, { - "ref" : "byte-buddy-agent-1.15.11.jar", - "dependsOn" : [ ] - }, { - "ref" : "objenesis-3.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "mockito-core-5.16.1.jar", - "dependsOn" : [ "byte-buddy-1.15.11.jar", "byte-buddy-agent-1.15.11.jar", "objenesis-3.3.jar" ] - }, { - "ref" : "hamcrest-all-1.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-analyzer-test-commons-2.14.0.3087.jar", - "dependsOn" : [ ] - }, { - "ref" : "assertj-core-3.27.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "junit-4.13.2.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-colorizer-3.7.jar", - "dependsOn" : [ "sonar-channel-4.2.jar", "guava-33.4.5-jre.jar" ] - }, { - "ref" : "sslr-toolkit-1.24.0.633.jar", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "sslr-xpath-1.24.0.633.jar", "sonar-colorizer-3.7.jar" ] - }, { - "ref" : "sslr-testing-harness-1.24.0.633.jar-2", - "dependsOn" : [ "hamcrest-all-1.3.jar", "junit-4.13.2.jar-2", "sslr-toolkit-1.24.0.633.jar", "sslr-core-1.24.0.633.jar" ] - }, { - "ref" : "cobol-testing-harness-5.8.1.8428.jar", - "dependsOn" : [ "mockito-core-5.16.1.jar", "hamcrest-all-1.3.jar", "sonar-analyzer-test-commons-2.14.0.3087.jar", "assertj-core-3.27.3.jar", "junit-4.13.2.jar-2", "cobol-api-5.8.1.8428.jar", "cobol-squid-5.8.1.8428.jar-2", "sslr-core-1.24.0.633.jar", "sslr-testing-harness-1.24.0.633.jar-2" ] - }, { - "ref" : "sonar-cobol-plugin-5.8.1.8428.sonar-plugin", - "dependsOn" : [ "cobol-squid-5.8.1.8428.jar", "guava-33.4.5-jre.jar", "cobol-syntax-highlighter-5.8.1.8428.jar", "cobol-checks-5.8.1.8428.jar", "cobol-database-5.8.1.8428.jar-2", "cobol-api-5.8.1.8428.jar-2", "cobol-testing-harness-5.8.1.8428.jar" ] - }, { - "ref" : "log4j-to-slf4j-2.24.3.jar", - "dependsOn" : [ "log4j-api-2.24.3.jar", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "jakarta.servlet-api-6.1.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-es-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "sonar-webserver-auth-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-server-common-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "react-day-picker-8.10.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "jjwt-api-0.12.6.jar", - "dependsOn" : [ ] - }, { - "ref" : "jjwt-impl-0.12.6.jar", - "dependsOn" : [ "jjwt-api-0.12.6.jar" ] - }, { - "ref" : "sonar-process-25.4-SNAPSHOT-3", - "dependsOn" : [ "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "jul-to-slf4j-2.0.17.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "hazelcast-5.4.0.jar", "spotbugs-annotations-4.9.3.jar", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-webserver-api-25.4-SNAPSHOT", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar", "jjwt-impl-0.12.6.jar", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "jakarta.servlet-api-6.1.0.jar", "jjwt-api-0.12.6.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-3", "sonar-plugin-api-impl-25.4-SNAPSHOT-2" ] - }, { - "ref" : "jjwt-impl-0.12.6.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-api-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "jakarta.servlet-api-6.1.0.jar", "jjwt-api-0.12.6.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jjwt-impl-0.12.6.jar-2" ] - }, { - "ref" : "use-insertion-effect-with-fallbacks-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "is-prop-valid-1.3.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "utils-1.4.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "babel-plugin-11.12.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "serialize-1.3.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "styled-11.13.0.tgz", - "dependsOn" : [ "use-insertion-effect-with-fallbacks-1.1.0.tgz", "is-prop-valid-1.3.0.tgz", "utils-1.4.0.tgz", "babel-plugin-11.12.0.tgz", "serialize-1.3.1.tgz" ] - }, { - "ref" : "babel-plugin-11.12.0.tgz-2", - "dependsOn" : [ "serialize-1.3.1.tgz" ] - }, { - "ref" : "styled-11.13.0.tgz-2", - "dependsOn" : [ "use-insertion-effect-with-fallbacks-1.1.0.tgz", "is-prop-valid-1.3.0.tgz", "utils-1.4.0.tgz", "babel-plugin-11.12.0.tgz-2", "serialize-1.3.1.tgz" ] - }, { - "ref" : "sonar-security-frontend-commons-11.1.0.35630.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-security-php-frontend-plugin-11.1.0.35630.sonar-plugin", - "dependsOn" : [ "ucfg-11.1.0.35630.jar", "gson-2.12.1.jar", "sonar-security-frontend-commons-11.1.0.35630.jar", "protobuf-java-4.30.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "jackson-bom-2.18.3.pom-8", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-dataformat-yaml-2.18.3.jar", "jackson-dataformat-smile-2.18.3.jar", "jackson-dataformat-cbor-2.18.3.jar", "jackson-annotations-2.18.3.jar" ] - }, { - "ref" : "jackson-databind-2.18.3.jar-7", - "dependsOn" : [ "jackson-core-2.18.3.jar", "jackson-bom-2.18.3.pom-8", "jackson-annotations-2.18.3.jar-2" ] - }, { - "ref" : "scribejava-apis-8.3.3.jar-3", - "dependsOn" : [ "jackson-databind-2.18.3.jar-7", "scribejava-core-8.3.3.jar" ] - }, { - "ref" : "ucfg-11.1.0.35630.jar-2", - "dependsOn" : [ "protobuf-java-4.30.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "sonar-security-frontend-commons-11.1.0.35630.jar-2", - "dependsOn" : [ "gson-2.12.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-security-php-frontend-plugin-11.1.0.35630.sonar-plugin-2", - "dependsOn" : [ "ucfg-11.1.0.35630.jar-2", "gson-2.12.1.jar", "sonar-security-frontend-commons-11.1.0.35630.jar-2", "protobuf-java-4.30.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "scribejava-apis-8.3.3.jar-4", - "dependsOn" : [ "jackson-databind-2.18.3.jar-6", "scribejava-core-8.3.3.jar" ] - }, { - "ref" : "sonar-auth-common-25.4-SNAPSHOT", - "dependsOn" : [ "scribejava-apis-8.3.3.jar", "spotbugs-annotations-4.9.3.jar", "scribejava-core-8.3.3.jar" ] - }, { - "ref" : "spotbugs-annotations-4.9.3.jar-3", - "dependsOn" : [ "logback-core-1.5.18.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "scribejava-apis-8.3.3.jar-5", - "dependsOn" : [ "scribejava-core-8.3.3.jar", "jackson-databind-2.18.3.jar-3" ] - }, { - "ref" : "sonar-auth-common-25.4-SNAPSHOT-2", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar-3", "scribejava-core-8.3.3.jar-2", "scribejava-apis-8.3.3.jar-5" ] - }, { - "ref" : "okhttp-4.12.0.jar-3", - "dependsOn" : [ "okio-3.6.0.jar", "kotlin-stdlib-jdk8-1.9.10.jar-2" ] - }, { - "ref" : "sonar-webserver-api-25.4-SNAPSHOT-3", - "dependsOn" : [ ] - }, { - "ref" : "bcutil-jdk18on-1.80.jar", - "dependsOn" : [ "bcprov-jdk18on-1.80.jar" ] - }, { - "ref" : "bcpkix-jdk18on-1.80.jar", - "dependsOn" : [ "bcutil-jdk18on-1.80.jar" ] - }, { - "ref" : "sonar-auth-common-25.4-SNAPSHOT-3", - "dependsOn" : [ ] - }, { - "ref" : "sonar-auth-github-25.4-SNAPSHOT", - "dependsOn" : [ "gson-2.12.1.jar", "scribejava-apis-8.3.3.jar", "sonar-auth-common-25.4-SNAPSHOT-3", "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "scribejava-core-8.3.3.jar", "okhttp-4.12.0.jar" ] - }, { - "ref" : "java-jwt-4.5.0.jar", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar" ] - }, { - "ref" : "github-api-1.327.jar", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "commons-lang3-3.17.0.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-auth-gitlab-25.4-SNAPSHOT", - "dependsOn" : [ "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "scribejava-core-8.3.3.jar", "okhttp-4.12.0.jar", "gson-2.12.1.jar", "scribejava-apis-8.3.3.jar", "sonar-auth-common-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-alm-client-25.4-SNAPSHOT", - "dependsOn" : [ "okhttp-4.12.0.jar-3", "gson-2.12.1.jar-2", "commons-codec-1.18.0.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "bcpkix-jdk18on-1.80.jar", "sonar-auth-github-25.4-SNAPSHOT", "java-jwt-4.5.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "github-api-1.327.jar", "sonar-auth-gitlab-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-alm-client-25.4-SNAPSHOT-2", - "dependsOn" : [ "java-jwt-4.5.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "okhttp-4.12.0.jar", "github-api-1.327.jar", "sonar-auth-gitlab-25.4-SNAPSHOT-2", "gson-2.12.1.jar", "commons-codec-1.18.0.jar", "sonar-webserver-api-25.4-SNAPSHOT-2", "sonar-plugin-api-11.3.0.2824.jar-2", "guava-33.4.5-jre.jar", "bcpkix-jdk18on-1.80.jar", "sonar-auth-github-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-alm-client-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT", "okhttp-4.12.0.jar", "gson-2.12.1.jar-2", "commons-codec-1.18.0.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "bcpkix-jdk18on-1.80.jar", "sonar-auth-github-25.4-SNAPSHOT", "java-jwt-4.5.0.jar", "github-api-1.327.jar", "sonar-auth-gitlab-25.4-SNAPSHOT" ] - }, { - "ref" : "jjwt-jackson-0.12.6.jar", - "dependsOn" : [ "jackson-databind-2.18.3.jar-7", "jjwt-api-0.12.6.jar" ] - }, { - "ref" : "sonar-markdown-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-channel-4.2.jar-2", "commons-lang3-3.17.0.jar" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-5", - "dependsOn" : [ "sonar-db-migration-25.4-SNAPSHOT-5", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-3", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-3", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-4" ] - }, { - "ref" : "sonar-webserver-api-25.4-SNAPSHOT-4", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar-2", "jakarta.servlet-api-6.1.0.jar", "jjwt-api-0.12.6.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT-5", "sonar-process-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jjwt-impl-0.12.6.jar" ] - }, { - "ref" : "core-extension-developer-server-2025.3-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "license-common-2025.3-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "core-extension-gitlab-provisioning-2025.3-SNAPSHOT", - "dependsOn" : [ "core-extension-developer-server-2025.3-SNAPSHOT", "license-common-2025.3-SNAPSHOT", "core-extension-license-2025.3-SNAPSHOT" ] - }, { - "ref" : "rpg-api-3.10.0.5337.jar", - "dependsOn" : [ "jsr305-3.0.2.jar" ] - }, { - "ref" : "rpg-analyzer-3.10.0.5337.jar", - "dependsOn" : [ "rpg-api-3.10.0.5337.jar", "guava-33.4.5-jre.jar" ] - }, { - "ref" : "rpg-checks-3.10.0.5337.jar", - "dependsOn" : [ "guava-33.4.5-jre.jar", "rpg-analyzer-3.10.0.5337.jar" ] - }, { - "ref" : "rpg-analyzer-3.10.0.5337.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "rpg-checks-testkit-3.10.0.5337.jar", - "dependsOn" : [ "rpg-analyzer-3.10.0.5337.jar-2", "assertj-core-3.27.3.jar" ] - }, { - "ref" : "sonar-rpg-plugin-3.10.0.5337.sonar-plugin", - "dependsOn" : [ "sonar-analyzer-commons-2.16.0.3141.jar", "rpg-checks-3.10.0.5337.jar", "rpg-checks-testkit-3.10.0.5337.jar" ] - }, { - "ref" : "ir-1.36.1.13250.jar-2", - "dependsOn" : [ "protobuf-java-4.30.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-dbd-python-frontend-plugin-1.36.1.13250.sonar-plugin", - "dependsOn" : [ "sonar-analyzer-commons-2.16.0.3141.jar", "ir-1.36.1.13250.jar-2" ] - }, { - "ref" : "JavaEWAH-1.2.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "org.eclipse.jgit-7.2.0.202503040940-r.jar-2", - "dependsOn" : [ "commons-codec-1.18.0.jar", "JavaEWAH-1.2.3.jar", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sonar-sarif-25.4-SNAPSHOT-4", - "dependsOn" : [ ] - }, { - "ref" : "sonar-update-center-common-1.35.0.2835.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-scanner-protocol-25.4-SNAPSHOT-4", - "dependsOn" : [ "commons-lang3-3.17.0.jar", "gson-2.12.1.jar", "sonar-core-25.4-SNAPSHOT", "protobuf-java-4.30.1.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sequence-library-1.0.4.jar", - "dependsOn" : [ ] - }, { - "ref" : "trilead-ssh2-1.0.0-build222.jar", - "dependsOn" : [ ] - }, { - "ref" : "antlr-runtime-3.4.jar", - "dependsOn" : [ ] - }, { - "ref" : "sqljet-1.1.15.jar", - "dependsOn" : [ "antlr-runtime-3.4.jar" ] - }, { - "ref" : "jcl-over-slf4j-2.0.17.jar", - "dependsOn" : [ ] - }, { - "ref" : "sshd-common-2.15.0.jar", - "dependsOn" : [ "jcl-over-slf4j-2.0.17.jar", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sshd-common-2.15.0.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sshd-core-2.15.0.jar", - "dependsOn" : [ "slf4j-api-2.0.17.jar", "sshd-common-2.15.0.jar-2", "jcl-over-slf4j-2.0.17.jar" ] - }, { - "ref" : "jsch.agentproxy.core-0.0.9.jar", - "dependsOn" : [ ] - }, { - "ref" : "jsch.agentproxy.svnkit-trilead-ssh2-0.0.9.jar", - "dependsOn" : [ "jsch.agentproxy.core-0.0.9.jar", "trilead-ssh2-1.0.0-build222.jar" ] - }, { - "ref" : "jna-platform-5.6.0.jar", - "dependsOn" : [ "jna-5.10.0.jar" ] - }, { - "ref" : "jsch.agentproxy.usocket-jna-0.0.9.jar", - "dependsOn" : [ "jsch.agentproxy.core-0.0.9.jar" ] - }, { - "ref" : "jsch.agentproxy.pageant-0.0.9.jar", - "dependsOn" : [ "jsch.agentproxy.core-0.0.9.jar" ] - }, { - "ref" : "jsch.agentproxy.usocket-nc-0.0.9.jar", - "dependsOn" : [ "jsch.agentproxy.core-0.0.9.jar" ] - }, { - "ref" : "jsch.agentproxy.sshagent-0.0.9.jar", - "dependsOn" : [ "jsch.agentproxy.core-0.0.9.jar" ] - }, { - "ref" : "jsch.agentproxy.connector-factory-0.0.9.jar", - "dependsOn" : [ "jsch.agentproxy.usocket-jna-0.0.9.jar", "jsch.agentproxy.pageant-0.0.9.jar", "jsch.agentproxy.usocket-nc-0.0.9.jar", "jsch.agentproxy.sshagent-0.0.9.jar", "jsch.agentproxy.core-0.0.9.jar" ] - }, { - "ref" : "svnkit-1.10.11.jar", - "dependsOn" : [ "sequence-library-1.0.4.jar", "trilead-ssh2-1.0.0-build222.jar", "lz4-java-1.8.0.jar", "sqljet-1.1.15.jar", "sshd-common-2.15.0.jar", "sshd-core-2.15.0.jar", "jsch.agentproxy.svnkit-trilead-ssh2-0.0.9.jar", "jna-5.10.0.jar", "jna-platform-5.6.0.jar", "jsch.agentproxy.connector-factory-0.0.9.jar" ] - }, { - "ref" : "log4j-over-slf4j-2.0.17.jar", - "dependsOn" : [ "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "commons-text-1.13.0.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-duplications-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-channel-4.2.jar-2", "sonar-plugin-api-11.3.0.2824.jar" ] - }, { - "ref" : "jcl-over-slf4j-2.0.17.jar-2", - "dependsOn" : [ "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sslcontext-kickstart-9.1.0.jar", - "dependsOn" : [ "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sonar-scanner-engine-25.4-SNAPSHOT", - "dependsOn" : [ "org.eclipse.jgit-7.2.0.202503040940-r.jar-2", "sonar-sarif-25.4-SNAPSHOT-4", "sonar-update-center-common-1.35.0.2835.jar-2", "logback-core-1.5.18.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-4", "commons-csv-1.14.0.jar-2", "git-files-blame-1.1.0.1835.jar", "protobuf-java-4.30.1.jar", "sonar-core-25.4-SNAPSHOT", "jul-to-slf4j-2.0.17.jar-2", "svnkit-1.10.11.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "log4j-over-slf4j-2.0.17.jar", "logback-classic-1.5.18.jar", "commons-text-1.13.0.jar-2", "gson-2.12.1.jar", "commons-codec-1.18.0.jar", "staxmate-2.4.1.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-duplications-25.4-SNAPSHOT-2", "spring-context-6.2.5.jar-2", "jakarta.annotation-api-3.0.0.jar", "bcprov-jdk18on-1.80.jar", "slf4j-api-2.0.17.jar", "jcl-over-slf4j-2.0.17.jar-2", "commons-lang3-3.17.0.jar", "sonar-ws-25.4-SNAPSHOT", "okhttp-4.12.0.jar", "sslcontext-kickstart-9.1.0.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "core-extension-developer-scanner-2025.3-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "scanner-developer-2025.3-SNAPSHOT", - "dependsOn" : [ "sonar-scanner-engine-25.4-SNAPSHOT", "core-extension-developer-scanner-2025.3-SNAPSHOT" ] - }, { - "ref" : "security-report-pdf-generation-2.0.0.184.jar", - "dependsOn" : [ ] - }, { - "ref" : "core-extension-securityreport-2025.3-SNAPSHOT", - "dependsOn" : [ "security-report-pdf-generation-2.0.0.184.jar" ] - }, { - "ref" : "core-extension-scim-2025.3-SNAPSHOT", - "dependsOn" : [ "core-extension-license-2025.3-SNAPSHOT", "license-common-2025.3-SNAPSHOT" ] - }, { - "ref" : "pdfbox-3.0.4.jar", - "dependsOn" : [ ] - }, { - "ref" : "security-report-pdf-generation-2.0.0.184.jar-2", - "dependsOn" : [ "commons-lang3-3.17.0.jar", "guava-33.4.5-jre.jar", "pdfbox-3.0.4.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "spring-webmvc-6.2.5.jar", - "dependsOn" : [ ] - }, { - "ref" : "hibernate-validator-8.0.2.Final.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-common-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "springdoc-openapi-starter-webmvc-api-2.8.6.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT", - "dependsOn" : [ "spring-webmvc-6.2.5.jar", "hibernate-validator-8.0.2.Final.jar", "sonar-webserver-common-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "springdoc-openapi-starter-webmvc-api-2.8.6.jar" ] - }, { - "ref" : "spring-aop-6.2.5.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "micrometer-observation-1.14.5.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "spring-web-6.2.5.jar", - "dependsOn" : [ "micrometer-observation-1.14.5.jar-2", "spring-beans-6.2.5.jar", "spring-core-6.2.5.jar" ] - }, { - "ref" : "spring-expression-6.2.5.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "spring-webmvc-6.2.5.jar-2", - "dependsOn" : [ "spring-aop-6.2.5.jar-2", "spring-web-6.2.5.jar", "spring-beans-6.2.5.jar", "spring-expression-6.2.5.jar-2", "spring-context-6.2.5.jar-2", "spring-core-6.2.5.jar" ] - }, { - "ref" : "classmate-1.5.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "jakarta.validation-api-3.0.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "jboss-logging-3.4.3.Final.jar", - "dependsOn" : [ ] - }, { - "ref" : "hibernate-validator-8.0.2.Final.jar-2", - "dependsOn" : [ "classmate-1.5.1.jar", "jakarta.validation-api-3.0.2.jar", "jboss-logging-3.4.3.Final.jar" ] - }, { - "ref" : "swagger-models-jakarta-2.2.29.jar", - "dependsOn" : [ "jackson-annotations-2.18.3.jar" ] - }, { - "ref" : "swagger-annotations-jakarta-2.2.29.jar", - "dependsOn" : [ ] - }, { - "ref" : "jakarta.xml.bind-api-3.0.1.jar", - "dependsOn" : [ "jakarta.activation-2.0.1.jar" ] - }, { - "ref" : "jackson-datatype-jsr310-2.18.3.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "swagger-core-jakarta-2.2.29.jar", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "swagger-models-jakarta-2.2.29.jar", "commons-lang3-3.17.0.jar", "slf4j-api-2.0.17.jar", "jakarta.validation-api-3.0.2.jar", "swagger-annotations-jakarta-2.2.29.jar", "jakarta.xml.bind-api-3.0.1.jar", "jackson-dataformat-yaml-2.18.3.jar", "jackson-annotations-2.18.3.jar", "snakeyaml-2.4.jar", "jackson-datatype-jsr310-2.18.3.jar-2" ] - }, { - "ref" : "spring-boot-3.4.4.jar", - "dependsOn" : [ "spring-context-6.2.5.jar-2", "spring-core-6.2.5.jar" ] - }, { - "ref" : "spring-boot-autoconfigure-3.4.4.jar", - "dependsOn" : [ "spring-boot-3.4.4.jar" ] - }, { - "ref" : "springdoc-openapi-starter-common-2.8.6.jar", - "dependsOn" : [ "swagger-core-jakarta-2.2.29.jar", "spring-boot-autoconfigure-3.4.4.jar" ] - }, { - "ref" : "springdoc-openapi-starter-webmvc-api-2.8.6.jar-2", - "dependsOn" : [ "spring-webmvc-6.2.5.jar", "springdoc-openapi-starter-common-2.8.6.jar" ] - }, { - "ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT-2", - "dependsOn" : [ "spring-webmvc-6.2.5.jar-2", "hibernate-validator-8.0.2.Final.jar-2", "sonar-webserver-common-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "springdoc-openapi-starter-webmvc-api-2.8.6.jar-2" ] - }, { - "ref" : "jna-5.6.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "jna-platform-5.6.0.jar-2", - "dependsOn" : [ "jna-5.6.0.jar" ] - }, { - "ref" : "svnkit-1.10.11.jar-2", - "dependsOn" : [ "sequence-library-1.0.4.jar", "trilead-ssh2-1.0.0-build222.jar", "lz4-java-1.8.0.jar", "sqljet-1.1.15.jar", "jna-5.6.0.jar", "sshd-common-2.15.0.jar", "sshd-core-2.15.0.jar", "jsch.agentproxy.svnkit-trilead-ssh2-0.0.9.jar", "jna-platform-5.6.0.jar-2", "jsch.agentproxy.connector-factory-0.0.9.jar" ] - }, { - "ref" : "sonar-duplications-25.4-SNAPSHOT-3", - "dependsOn" : [ ] - }, { - "ref" : "sonar-scanner-engine-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-scanner-protocol-25.4-SNAPSHOT", "commons-csv-1.14.0.jar-2", "sslcontext-kickstart-9.1.0.jar", "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-update-center-common-1.35.0.2835.jar-2", "logback-core-1.5.18.jar", "svnkit-1.10.11.jar-2", "sonar-plugin-api-impl-25.4-SNAPSHOT", "staxmate-2.4.1.jar-2", "gson-2.12.1.jar", "git-files-blame-1.1.0.1835.jar", "protobuf-java-4.30.1.jar", "sonar-core-25.4-SNAPSHOT", "jul-to-slf4j-2.0.17.jar-2", "spring-context-6.2.5.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "log4j-over-slf4j-2.0.17.jar", "sonar-duplications-25.4-SNAPSHOT-3", "commons-text-1.13.0.jar-2", "commons-codec-1.18.0.jar", "logback-classic-1.5.18.jar", "slf4j-api-2.0.17.jar", "jakarta.annotation-api-3.0.0.jar", "commons-lang3-3.17.0.jar", "bcprov-jdk18on-1.80.jar", "jcl-over-slf4j-2.0.17.jar-2", "sonar-sarif-25.4-SNAPSHOT-4", "org.eclipse.jgit-7.2.0.202503040940-r.jar-2" ] - }, { - "ref" : "sonar-scanner-engine-shaded-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-scanner-engine-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-webserver-ws-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-common-25.4-SNAPSHOT-2", - "dependsOn" : [ "guava-33.4.5-jre.jar", "sonar-webserver-auth-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-webserver-ws-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3" ] - }, { - "ref" : "spring-webmvc-6.2.5.jar-3", - "dependsOn" : [ "spring-aop-6.2.5.jar", "spring-web-6.2.5.jar", "spring-beans-6.2.5.jar-2", "spring-expression-6.2.5.jar", "spring-context-6.2.5.jar-2", "spring-core-6.2.5.jar-2" ] - }, { - "ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-webserver-common-25.4-SNAPSHOT-2", "sonar-db-dao-25.4-SNAPSHOT-3", "springdoc-openapi-starter-webmvc-api-2.8.6.jar-2", "spring-webmvc-6.2.5.jar-3", "hibernate-validator-8.0.2.Final.jar-2" ] - }, { - "ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT-4", - "dependsOn" : [ "spring-webmvc-6.2.5.jar-2", "hibernate-validator-8.0.2.Final.jar-2", "sonar-webserver-common-25.4-SNAPSHOT-2", "sonar-db-dao-25.4-SNAPSHOT-3", "springdoc-openapi-starter-webmvc-api-2.8.6.jar-2" ] - }, { - "ref" : "git-files-blame-1.1.0.1835.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "staxmate-2.4.1.jar-3", - "dependsOn" : [ "stax2-api-4.2.2.jar" ] - }, { - "ref" : "sonar-scanner-engine-25.4-SNAPSHOT-3", - "dependsOn" : [ "git-files-blame-1.1.0.1835.jar-2", "jul-to-slf4j-2.0.17.jar-2", "protobuf-java-4.30.1.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "svnkit-1.10.11.jar", "sonar-duplications-25.4-SNAPSHOT-3", "spring-context-6.2.5.jar-2", "log4j-over-slf4j-2.0.17.jar", "commons-codec-1.18.0.jar", "logback-classic-1.5.18.jar", "staxmate-2.4.1.jar-3", "gson-2.12.1.jar", "jakarta.annotation-api-3.0.0.jar", "spotbugs-annotations-4.9.3.jar", "slf4j-api-2.0.17.jar", "jcl-over-slf4j-2.0.17.jar-2", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "org.eclipse.jgit-7.2.0.202503040940-r.jar-2", "sonar-sarif-25.4-SNAPSHOT-4", "commons-io-2.18.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT", "sonar-ws-25.4-SNAPSHOT", "okhttp-4.12.0.jar", "logback-core-1.5.18.jar", "commons-csv-1.14.0.jar", "sonar-update-center-common-1.35.0.2835.jar-2" ] - }, { - "ref" : "sonar-plugin-api-impl-25.4-SNAPSHOT-3", - "dependsOn" : [ "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "commons-csv-1.14.0.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "spotbugs-annotations-4.9.3.jar", "junit-4.13.2.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-4", - "dependsOn" : [ "commons-exec-1.4.0.jar", "sonar-update-center-common-1.35.0.2835.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "commons-lang3-3.17.0.jar", "okhttp-4.12.0.jar", "spring-context-6.2.5.jar-2", "sonar-ws-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "sonar-classloader-1.1.0.1059.jar", "protobuf-java-4.30.1.jar", "slf4j-api-2.0.17.jar", "jakarta.annotation-api-3.0.0.jar", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "logback-core-1.5.18.jar", "jakarta.inject-api-2.0.1.jar", "sonar-sarif-25.4-SNAPSHOT-4", "commons-codec-1.18.0.jar", "logback-classic-1.5.18.jar", "guava-33.4.5-jre.jar", "gson-2.12.1.jar" ] - }, { - "ref" : "sonar-scanner-engine-25.4-SNAPSHOT-4", - "dependsOn" : [ "svnkit-1.10.11.jar-2", "sonar-plugin-api-impl-25.4-SNAPSHOT-3", "jul-to-slf4j-2.0.17.jar", "sonar-core-25.4-SNAPSHOT-4", "gson-2.12.1.jar-2", "staxmate-2.4.1.jar", "git-files-blame-1.1.0.1835.jar", "protobuf-java-4.30.1.jar", "log4j-over-slf4j-2.0.17.jar", "commons-text-1.13.0.jar", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "sonar-duplications-25.4-SNAPSHOT", "sonar-ws-25.4-SNAPSHOT-2", "sslcontext-kickstart-9.1.0.jar", "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "commons-csv-1.14.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "sonar-update-center-common-1.35.0.2835.jar", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "bcprov-jdk18on-1.80.jar", "jcl-over-slf4j-2.0.17.jar-2", "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "org.eclipse.jgit-7.2.0.202503040940-r.jar-2", "slf4j-api-2.0.17.jar", "jakarta.annotation-api-3.0.0.jar", "spotbugs-annotations-4.9.3.jar-2", "sonar-sarif-25.4-SNAPSHOT-3" ] - }, { - "ref" : "sonar-plugin-api-impl-25.4-SNAPSHOT-4", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar-2", "spotbugs-annotations-4.9.3.jar", "junit-4.13.2.jar", "commons-io-2.18.0.jar", "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "commons-csv-1.14.0.jar" ] - }, { - "ref" : "core-extension-ce-workers-2025.3-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-api-25.4-SNAPSHOT-5", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "jakarta.servlet-api-6.1.0.jar", "jjwt-api-0.12.6.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jjwt-impl-0.12.6.jar" ] - }, { - "ref" : "jna-platform-5.6.0.jar-3", - "dependsOn" : [ "jna-5.10.0.jar", "jna-5.6.0.jar" ] - }, { - "ref" : "svnkit-1.10.11.jar-3", - "dependsOn" : [ "jsch.agentproxy.svnkit-trilead-ssh2-0.0.9.jar", "sqljet-1.1.15.jar", "jna-5.10.0.jar", "jna-5.6.0.jar", "jna-platform-5.6.0.jar-3", "jsch.agentproxy.connector-factory-0.0.9.jar", "trilead-ssh2-1.0.0-build222.jar", "lz4-java-1.8.0.jar", "sshd-common-2.15.0.jar", "sshd-core-2.15.0.jar", "sequence-library-1.0.4.jar" ] - }, { - "ref" : "staxmate-2.4.1.jar-4", - "dependsOn" : [ "stax2-api-4.2.1.jar", "stax2-api-4.2.2.jar" ] - }, { - "ref" : "sonar-scanner-engine-25.4-SNAPSHOT-5", - "dependsOn" : [ "log4j-over-slf4j-2.0.17.jar", "commons-text-1.13.0.jar", "logback-classic-1.5.18.jar-2", "sonar-duplications-25.4-SNAPSHOT", "bcprov-jdk18on-1.80.jar", "jcl-over-slf4j-2.0.17.jar-2", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "org.eclipse.jgit-7.2.0.202503040940-r.jar-2", "jakarta.annotation-api-3.0.0.jar", "spotbugs-annotations-4.9.3.jar-2", "slf4j-api-2.0.17.jar", "sonar-sarif-25.4-SNAPSHOT-2", "svnkit-1.10.11.jar-3", "sonar-plugin-api-impl-25.4-SNAPSHOT-3", "protobuf-java-4.30.1.jar", "jul-to-slf4j-2.0.17.jar", "sonar-core-25.4-SNAPSHOT-4", "gson-2.12.1.jar-2", "commons-codec-1.18.0.jar", "staxmate-2.4.1.jar-4", "git-files-blame-1.1.0.1835.jar", "sonar-ws-25.4-SNAPSHOT-2", "sslcontext-kickstart-9.1.0.jar", "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "sonar-update-center-common-1.35.0.2835.jar", "logback-core-1.5.18.jar", "commons-csv-1.14.0.jar" ] - }, { - "ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-4", - "dependsOn" : [ "mapper-extras-client-7.17.28.jar", "lang-mustache-client-7.17.28.jar", "rank-eval-client-7.17.28.jar", "aggs-matrix-stats-client-7.17.28.jar", "elasticsearch-rest-client-7.17.28.jar-3", "parent-join-client-7.17.28.jar", "elasticsearch-7.17.28.jar" ] - }, { - "ref" : "jackson-databind-2.18.3.jar-8", - "dependsOn" : [ "jackson-core-2.18.3.jar-2", "jackson-bom-2.18.3.pom-8", "jackson-annotations-2.18.3.jar-2" ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-7", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "staxmate-2.4.1.jar", "guava-33.4.5-jre.jar", "sonar-db-core-25.4-SNAPSHOT", "sonar-telemetry-core-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-6", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "jackson-databind-2.18.3.jar-8", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-4", "sonar-db-migration-25.4-SNAPSHOT-7" ] - }, { - "ref" : "sonar-webserver-api-25.4-SNAPSHOT-6", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar-2", "jjwt-impl-0.12.6.jar", "sonar-process-25.4-SNAPSHOT-3", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "sonar-server-common-25.4-SNAPSHOT-6", "jakarta.servlet-api-6.1.0.jar", "jjwt-api-0.12.6.jar", "sonar-core-25.4-SNAPSHOT-2", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar-2" ] - }, { - "ref" : "react-collection-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-roving-focus-1.1.0.tgz", - "dependsOn" : [ "react-collection-1.1.0.tgz" ] - }, { - "ref" : "react-radio-group-1.2.0.tgz", - "dependsOn" : [ "react-direction-1.1.0.tgz", "react-roving-focus-1.1.0.tgz", "react-use-previous-1.1.0.tgz", "react-use-size-1.1.0.tgz" ] - }, { - "ref" : "use-callback-ref-1.3.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "invariant-2.2.4.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-style-singleton-2.2.1.tgz", - "dependsOn" : [ "get-nonce-1.0.1.tgz", "invariant-2.2.4.tgz" ] - }, { - "ref" : "react-remove-scroll-bar-2.3.6.tgz", - "dependsOn" : [ ] - }, { - "ref" : "use-sidecar-1.1.2.tgz", - "dependsOn" : [ "detect-node-es-1.1.0.tgz" ] - }, { - "ref" : "react-remove-scroll-2.5.7.tgz", - "dependsOn" : [ "use-callback-ref-1.3.2.tgz", "react-style-singleton-2.2.1.tgz", "tslib-2.8.1.tgz", "react-remove-scroll-bar-2.3.6.tgz", "use-sidecar-1.1.2.tgz" ] - }, { - "ref" : "react-focus-guards-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-focus-scope-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-dialog-1.1.1.tgz", - "dependsOn" : [ "react-remove-scroll-2.5.7.tgz", "react-focus-guards-1.1.0.tgz", "react-focus-scope-1.1.0.tgz", "aria-hidden-1.2.4.tgz" ] - }, { - "ref" : "react-visually-hidden-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-menu-2.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-dropdown-menu-2.1.1.tgz", - "dependsOn" : [ "react-menu-2.1.1.tgz" ] - }, { - "ref" : "react-popover-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-slot-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-alert-dialog-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-checkbox-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "font-400-0.23.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-presence-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-dismissable-layer-1.1.0.tgz", - "dependsOn" : [ "react-use-escape-keydown-1.1.0.tgz", "react-use-callback-ref-1.1.0.tgz" ] - }, { - "ref" : "primitive-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-context-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-primitive-2.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-portal-1.1.1.tgz", - "dependsOn" : [ "react-use-layout-effect-1.1.0.tgz" ] - }, { - "ref" : "react-arrow-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-popper-1.2.0.tgz", - "dependsOn" : [ "react-dom-2.1.2.tgz", "react-use-rect-1.1.0.tgz", "rect-1.1.0.tgz", "react-arrow-1.1.0.tgz" ] - }, { - "ref" : "react-compose-refs-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-tooltip-1.1.2.tgz", - "dependsOn" : [ "react-presence-1.1.0.tgz", "react-use-controllable-state-1.1.0.tgz", "react-dismissable-layer-1.1.0.tgz", "primitive-1.1.0.tgz", "react-id-1.1.0.tgz", "react-context-1.1.0.tgz", "react-primitive-2.0.0.tgz", "react-portal-1.1.1.tgz", "react-popper-1.2.0.tgz", "react-compose-refs-1.1.0.tgz" ] - }, { - "ref" : "echoes-react-0.10.1.tgz", - "dependsOn" : [ "react-radio-group-1.2.0.tgz", "react-dialog-1.1.1.tgz", "hooks-7.12.2.tgz", "react-visually-hidden-1.1.0.tgz", "react-dropdown-menu-2.1.1.tgz", "react-popover-1.1.1.tgz", "react-slot-1.1.0.tgz", "react-alert-dialog-1.1.1.tgz", "react-checkbox-1.1.1.tgz", "font-400-0.23.0.tgz", "react-tooltip-1.1.2.tgz" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-7", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-4", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "jackson-databind-2.18.3.jar-7", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-db-migration-25.4-SNAPSHOT-7" ] - }, { - "ref" : "sonar-webserver-api-25.4-SNAPSHOT-7", - "dependsOn" : [ "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jjwt-impl-0.12.6.jar", "sonar-process-25.4-SNAPSHOT-3", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "jakarta.servlet-api-6.1.0.jar", "jjwt-api-0.12.6.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT-7" ] - }, { - "ref" : "sonar-scanner-engine-25.4-SNAPSHOT-6", - "dependsOn" : [ "protobuf-java-4.30.1.jar", "git-files-blame-1.1.0.1835.jar-2", "jul-to-slf4j-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "svnkit-1.10.11.jar-2", "log4j-over-slf4j-2.0.17.jar", "logback-classic-1.5.18.jar", "gson-2.12.1.jar", "commons-codec-1.18.0.jar", "staxmate-2.4.1.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-duplications-25.4-SNAPSHOT", "spring-context-6.2.5.jar-2", "jakarta.annotation-api-3.0.0.jar", "spotbugs-annotations-4.9.3.jar", "slf4j-api-2.0.17.jar", "jcl-over-slf4j-2.0.17.jar-2", "commons-lang3-3.17.0.jar", "org.eclipse.jgit-7.2.0.202503040940-r.jar-2", "sonar-sarif-25.4-SNAPSHOT-4", "sonar-ws-25.4-SNAPSHOT", "okhttp-4.12.0.jar", "logback-core-1.5.18.jar", "commons-csv-1.14.0.jar-2", "sonar-update-center-common-1.35.0.2835.jar-2", "commons-io-2.18.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT" ] - }, { - "ref" : "core-extension-gitlab-vulnerability-report-2025.3-SNAPSHOT", - "dependsOn" : [ "core-extension-license-2025.3-SNAPSHOT", "license-common-2025.3-SNAPSHOT" ] - }, { - "ref" : "elasticsearch-rest-client-7.17.28.jar-4", - "dependsOn" : [ "httpclient-4.5.14.jar-2", "commons-codec-1.18.0.jar", "httpcore-4.4.16.jar", "commons-logging-1.3.5.jar", "httpcore-nio-4.4.12.jar", "httpasyncclient-4.1.4.jar" ] - }, { - "ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-5", - "dependsOn" : [ "lang-mustache-client-7.17.28.jar", "rank-eval-client-7.17.28.jar", "aggs-matrix-stats-client-7.17.28.jar", "mapper-extras-client-7.17.28.jar", "elasticsearch-7.17.28.jar-2", "elasticsearch-rest-client-7.17.28.jar-4", "parent-join-client-7.17.28.jar" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-8", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "sonar-db-migration-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-3", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-5" ] - }, { - "ref" : "sonar-webserver-api-25.4-SNAPSHOT-8", - "dependsOn" : [ "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jjwt-impl-0.12.6.jar", "sonar-process-25.4-SNAPSHOT-3", "jakarta.servlet-api-6.1.0.jar", "jjwt-api-0.12.6.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT-8", "sonar-plugin-api-11.3.0.2824.jar-2", "guava-33.4.5-jre.jar-2" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-5", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT", "sonar-update-center-common-1.35.0.2835.jar-2", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "commons-exec-1.4.0.jar", "spring-context-6.2.5.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "commons-io-2.18.0.jar", "okhttp-4.12.0.jar", "protobuf-java-4.30.1.jar", "jakarta.annotation-api-3.0.0.jar", "sonar-classloader-1.1.0.1059.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar", "jakarta.inject-api-2.0.1.jar", "spotbugs-annotations-4.9.3.jar", "sonar-sarif-25.4-SNAPSHOT-4", "commons-codec-1.18.0.jar", "logback-classic-1.5.18.jar", "guava-33.4.5-jre.jar-2", "gson-2.12.1.jar" ] - }, { - "ref" : "sonar-scanner-engine-25.4-SNAPSHOT-7", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT-2", "okhttp-4.12.0.jar-3", "sslcontext-kickstart-9.1.0.jar", "commons-io-2.18.0.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-csv-1.14.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "logback-core-1.5.18.jar", "svnkit-1.10.11.jar-2", "jcl-over-slf4j-2.0.17.jar-2", "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "slf4j-api-2.0.17.jar", "jakarta.annotation-api-3.0.0.jar", "spotbugs-annotations-4.9.3.jar-2", "commons-lang3-3.17.0.jar", "bcprov-jdk18on-1.80.jar", "org.eclipse.jgit-7.2.0.202503040940-r.jar-2", "sonar-sarif-25.4-SNAPSHOT-3", "sonar-plugin-api-impl-25.4-SNAPSHOT-3", "sonar-core-25.4-SNAPSHOT-5", "staxmate-2.4.1.jar", "git-files-blame-1.1.0.1835.jar", "protobuf-java-4.30.1.jar", "jul-to-slf4j-2.0.17.jar", "commons-text-1.13.0.jar", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "sonar-duplications-25.4-SNAPSHOT", "log4j-over-slf4j-2.0.17.jar" ] - }, { - "ref" : "sonar-iac-enterprise-plugin-1.44.0.14670.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-8", - "dependsOn" : [ "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "staxmate-2.4.1.jar-2", "guava-33.4.5-jre.jar", "sonar-db-core-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-4", - "dependsOn" : [ "core-3.1.0.jar", "sonar-ce-task-25.4-SNAPSHOT-2", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "diffutils-1.3.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "sonar-duplications-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT-4", "jul-to-slf4j-2.0.17.jar", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar-2", "sonar-plugin-api-impl-25.4-SNAPSHOT-3", "sonar-db-dao-25.4-SNAPSHOT-4", "sonar-db-migration-25.4-SNAPSHOT-8", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "commons-io-2.18.0.jar", "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-scanner-engine-25.4-SNAPSHOT-8", - "dependsOn" : [ "commons-codec-1.18.0.jar", "logback-classic-1.5.18.jar", "staxmate-2.4.1.jar-4", "gson-2.12.1.jar", "git-files-blame-1.1.0.1835.jar", "jcl-over-slf4j-2.0.17.jar-2", "spring-context-6.2.5.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "log4j-over-slf4j-2.0.17.jar", "sonar-duplications-25.4-SNAPSHOT-3", "commons-text-1.13.0.jar-2", "org.eclipse.jgit-7.2.0.202503040940-r.jar-2", "slf4j-api-2.0.17.jar", "jakarta.annotation-api-3.0.0.jar", "commons-lang3-3.17.0.jar", "bcprov-jdk18on-1.80.jar", "sonar-sarif-25.4-SNAPSHOT-4", "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-update-center-common-1.35.0.2835.jar-2", "logback-core-1.5.18.jar", "sonar-scanner-protocol-25.4-SNAPSHOT", "commons-csv-1.14.0.jar-2", "sslcontext-kickstart-9.1.0.jar", "protobuf-java-4.30.1.jar", "sonar-core-25.4-SNAPSHOT", "jul-to-slf4j-2.0.17.jar-2", "svnkit-1.10.11.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT" ] - }, { - "ref" : "core-extension-common-2025.3-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "core-extension-sca-2025.3-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "scanner-enterprise-2025.3-SNAPSHOT", - "dependsOn" : [ "sonar-scanner-engine-25.4-SNAPSHOT-8", "core-extension-common-2025.3-SNAPSHOT", "core-extension-sca-2025.3-SNAPSHOT", "core-extension-developer-scanner-2025.3-SNAPSHOT" ] - }, { - "ref" : "sonar-scanner-engine-25.4-SNAPSHOT-9", - "dependsOn" : [ "sslcontext-kickstart-9.1.0.jar", "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "commons-csv-1.14.0.jar-2", "sonar-update-center-common-1.35.0.2835.jar-2", "sonar-scanner-protocol-25.4-SNAPSHOT-4", "logback-core-1.5.18.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "svnkit-1.10.11.jar", "staxmate-2.4.1.jar-4", "git-files-blame-1.1.0.1835.jar", "jul-to-slf4j-2.0.17.jar-2", "protobuf-java-4.30.1.jar", "log4j-over-slf4j-2.0.17.jar", "logback-classic-1.5.18.jar", "commons-text-1.13.0.jar-2", "gson-2.12.1.jar", "commons-codec-1.18.0.jar", "jcl-over-slf4j-2.0.17.jar-2", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-duplications-25.4-SNAPSHOT-2", "spring-context-6.2.5.jar-2", "org.eclipse.jgit-7.2.0.202503040940-r.jar-2", "sonar-sarif-25.4-SNAPSHOT-4", "jakarta.annotation-api-3.0.0.jar", "bcprov-jdk18on-1.80.jar", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "scanner-datacenter-2025.3-SNAPSHOT", - "dependsOn" : [ "core-extension-common-2025.3-SNAPSHOT", "core-extension-sca-2025.3-SNAPSHOT", "core-extension-developer-scanner-2025.3-SNAPSHOT", "sonar-scanner-engine-25.4-SNAPSHOT-9" ] - }, { - "ref" : "sonar-ce-common-25.4-SNAPSHOT-3", - "dependsOn" : [ ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-5", - "dependsOn" : [ "diffutils-1.3.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT", "sonar-duplications-25.4-SNAPSHOT-3", "sonar-server-common-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-process-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "commons-text-1.13.0.jar", "sonar-db-migration-25.4-SNAPSHOT", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "jul-to-slf4j-2.0.17.jar-2", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-4", "core-3.1.0.jar", "sonar-ce-task-25.4-SNAPSHOT", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar" ] - }, { - "ref" : "HikariCP-6.2.1.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-db-core-25.4-SNAPSHOT-4", - "dependsOn" : [ "logback-classic-1.5.18.jar", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "HikariCP-6.2.1.jar-2", "sonar-process-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-9", - "dependsOn" : [ "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "staxmate-2.4.1.jar", "guava-33.4.5-jre.jar", "sonar-db-core-25.4-SNAPSHOT-4", "sonar-telemetry-core-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-6", - "dependsOn" : [ "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "diffutils-1.3.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "sonar-duplications-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "sonar-db-dao-25.4-SNAPSHOT-4", "core-3.1.0.jar", "sonar-ce-task-25.4-SNAPSHOT-2", "sonar-db-migration-25.4-SNAPSHOT-9", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "jul-to-slf4j-2.0.17.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-text-1.13.0.jar" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-7", - "dependsOn" : [ "sonar-server-common-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-2", "commons-io-2.18.0.jar", "protobuf-java-4.30.1.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "sonar-db-dao-25.4-SNAPSHOT-3", "core-3.1.0.jar", "sonar-ce-task-25.4-SNAPSHOT", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "diffutils-1.3.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "sonar-duplications-25.4-SNAPSHOT", "commons-text-1.13.0.jar", "sonar-db-migration-25.4-SNAPSHOT-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "jul-to-slf4j-2.0.17.jar", "guava-33.4.5-jre.jar" ] - }, { - "ref" : "sonar-auth-ldap-25.4-SNAPSHOT", - "dependsOn" : [ "commons-lang3-3.17.0.jar", "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-9", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "jackson-databind-2.18.3.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-4", "sonar-db-migration-25.4-SNAPSHOT-7" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-6", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2" ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-2", - "dependsOn" : [ "jjwt-impl-0.12.6.jar", "sonar-process-25.4-SNAPSHOT-3", "sonar-plugin-api-11.3.0.2824.jar-2", "jjwt-jackson-0.12.6.jar", "jakarta.servlet-api-6.1.0.jar", "sonar-auth-ldap-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar", "sonar-server-common-25.4-SNAPSHOT-9", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar-2", "sonar-webserver-api-25.4-SNAPSHOT-2", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar-2", "sonar-core-25.4-SNAPSHOT-6" ] - }, { - "ref" : "jjwt-jackson-0.12.6.jar-2", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jjwt-api-0.12.6.jar" ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-server-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-3", "jjwt-impl-0.12.6.jar", "spotbugs-annotations-4.9.3.jar", "sonar-webserver-api-25.4-SNAPSHOT-2", "sonar-plugin-api-11.3.0.2824.jar", "jjwt-jackson-0.12.6.jar-2", "jakarta.servlet-api-6.1.0.jar", "sonar-auth-ldap-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar", "sonar-core-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-4", - "dependsOn" : [ "sonar-process-25.4-SNAPSHOT-3", "jjwt-impl-0.12.6.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "sonar-core-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-plugin-api-11.3.0.2824.jar", "jjwt-jackson-0.12.6.jar-2", "jakarta.servlet-api-6.1.0.jar", "sonar-auth-ldap-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar", "sonar-server-common-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-5", - "dependsOn" : [ "jjwt-impl-0.12.6.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "sonar-core-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-plugin-api-11.3.0.2824.jar", "jjwt-jackson-0.12.6.jar-2", "jakarta.servlet-api-6.1.0.jar", "sonar-auth-ldap-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar", "sonar-server-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-8", - "dependsOn" : [ "sonar-duplications-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-process-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "jul-to-slf4j-2.0.17.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-4", "core-3.1.0.jar", "sonar-ce-task-25.4-SNAPSHOT", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "diffutils-1.3.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "commons-text-1.13.0.jar", "sonar-db-migration-25.4-SNAPSHOT-9", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2" ] - }, { - "ref" : "kotlin-stdlib-common-2.1.10.pom", - "dependsOn" : [ ] - }, { - "ref" : "okio-jvm-3.6.0.jar-2", - "dependsOn" : [ "kotlin-stdlib-common-2.1.10.pom", "kotlin-stdlib-common-1.9.10.jar", "kotlin-stdlib-jdk8-1.9.10.jar" ] - }, { - "ref" : "okio-3.6.0.jar-2", - "dependsOn" : [ "okio-jvm-3.6.0.jar-2" ] - }, { - "ref" : "kotlin-stdlib-2.1.10.jar", - "dependsOn" : [ ] - }, { - "ref" : "kotlin-stdlib-jdk7-1.9.10.jar-2", - "dependsOn" : [ "kotlin-stdlib-1.9.10.jar-2", "kotlin-stdlib-2.1.10.jar" ] - }, { - "ref" : "kotlin-stdlib-jdk8-1.9.10.jar-3", - "dependsOn" : [ "kotlin-stdlib-1.9.10.jar", "kotlin-stdlib-jdk7-1.9.10.jar-2", "kotlin-stdlib-2.1.10.jar" ] - }, { - "ref" : "okhttp-4.12.0.jar-4", - "dependsOn" : [ "okio-3.6.0.jar-2", "kotlin-stdlib-jdk8-1.9.10.jar-3" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-7", - "dependsOn" : [ "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-4", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-8", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-9", - "dependsOn" : [ "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "sonar-sarif-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-10", - "dependsOn" : [ "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-11", - "dependsOn" : [ "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-12", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-13", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "sonar-sarif-25.4-SNAPSHOT-3", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-14", - "dependsOn" : [ "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-15", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar-2", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-4", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-16", - "dependsOn" : [ "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-17", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-sarif-25.4-SNAPSHOT-3" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-18", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-4", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2" ] - }, { - "ref" : "kotlin-stdlib-common-2.1.10.pom-2", - "dependsOn" : [ "kotlin-stdlib-2.1.10.jar" ] - }, { - "ref" : "okio-jvm-3.6.0.jar-3", - "dependsOn" : [ "kotlin-stdlib-common-2.1.10.pom-2", "kotlin-stdlib-common-1.9.10.jar", "kotlin-stdlib-jdk8-1.9.10.jar" ] - }, { - "ref" : "okio-3.6.0.jar-3", - "dependsOn" : [ "okio-jvm-3.6.0.jar-3" ] - }, { - "ref" : "kotlin-stdlib-jdk7-1.9.10.jar-3", - "dependsOn" : [ ] - }, { - "ref" : "kotlin-stdlib-2.1.10.jar-2", - "dependsOn" : [ "kotlin-stdlib-common-2.1.10.pom", "kotlin-stdlib-jdk8-1.9.10.jar", "kotlin-stdlib-jdk7-1.9.10.jar-3", "annotations-13.0.jar" ] - }, { - "ref" : "kotlin-stdlib-jdk8-1.9.10.jar-4", - "dependsOn" : [ "kotlin-stdlib-1.9.10.jar", "kotlin-stdlib-jdk7-1.9.10.jar-2", "kotlin-stdlib-2.1.10.jar-2" ] - }, { - "ref" : "okhttp-4.12.0.jar-5", - "dependsOn" : [ "okio-3.6.0.jar-3", "kotlin-stdlib-jdk8-1.9.10.jar-4" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-19", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar-2", "okhttp-4.12.0.jar-5", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT" ] - }, { - "ref" : "trusted-types-2.0.7.tgz", - "dependsOn" : [ ] - }, { - "ref" : "dompurify-3.2.4.tgz", - "dependsOn" : [ "trusted-types-2.0.7.tgz" ] - }, { - "ref" : "lodash-4.17.21.tgz", - "dependsOn" : [ ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-20", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT-3" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-21", - "dependsOn" : [ "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-22", - "dependsOn" : [ "spring-context-6.2.5.jar", "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-23", - "dependsOn" : [ "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar-2", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "sonar-sarif-25.4-SNAPSHOT-3", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar-2" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-24", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT-2", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-25", - "dependsOn" : [ "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "sonar-sarif-25.4-SNAPSHOT-3", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar" ] - }, { - "ref" : "date-fns-4.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "sonar-sarif-25.4-SNAPSHOT-5", - "dependsOn" : [ "jsr305-3.0.2.jar", "jackson-databind-2.18.3.jar-3" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-26", - "dependsOn" : [ "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "sonar-sarif-25.4-SNAPSHOT-5" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-27", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-28", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar-2", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT-5" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-29", - "dependsOn" : [ "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar-2", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2" ] - }, { - "ref" : "d3-selection-3.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "sonar-sarif-25.4-SNAPSHOT-6", - "dependsOn" : [ "jsr305-3.0.2.jar", "jackson-databind-2.18.3.jar-7" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-30", - "dependsOn" : [ "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-sarif-25.4-SNAPSHOT-6" ] - }, { - "ref" : "weak-memoize-0.4.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "sheet-1.4.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "memoize-0.9.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "stylis-4.2.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "cache-11.13.1.tgz", - "dependsOn" : [ "weak-memoize-0.4.0.tgz", "sheet-1.4.0.tgz", "memoize-0.9.0.tgz", "stylis-4.2.0.tgz" ] - }, { - "ref" : "is-arrayish-0.2.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "error-ex-1.3.2.tgz", - "dependsOn" : [ "is-arrayish-0.2.1.tgz" ] - }, { - "ref" : "lines-and-columns-1.2.4.tgz", - "dependsOn" : [ ] - }, { - "ref" : "json-parse-even-better-errors-2.3.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "has-flag-3.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "supports-color-5.5.0.tgz", - "dependsOn" : [ "has-flag-3.0.0.tgz" ] - }, { - "ref" : "color-name-1.1.3.tgz", - "dependsOn" : [ ] - }, { - "ref" : "color-convert-1.9.3.tgz", - "dependsOn" : [ "color-name-1.1.3.tgz" ] - }, { - "ref" : "ansi-styles-3.2.1.tgz", - "dependsOn" : [ "color-convert-1.9.3.tgz" ] - }, { - "ref" : "escape-string-regexp-1.0.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "chalk-2.4.2.tgz", - "dependsOn" : [ "supports-color-5.5.0.tgz", "ansi-styles-3.2.1.tgz", "escape-string-regexp-1.0.5.tgz" ] - }, { - "ref" : "esutils-2.0.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "highlight-7.5.0.tgz", - "dependsOn" : [ "chalk-2.4.2.tgz", "js-tokens-4.0.0.tgz", "esutils-2.0.2.tgz" ] - }, { - "ref" : "code-frame-7.0.0.tgz", - "dependsOn" : [ "highlight-7.5.0.tgz" ] - }, { - "ref" : "parse-json-5.2.0.tgz", - "dependsOn" : [ "error-ex-1.3.2.tgz", "lines-and-columns-1.2.4.tgz", "json-parse-even-better-errors-2.3.1.tgz", "code-frame-7.0.0.tgz" ] - }, { - "ref" : "resolve-from-4.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "callsites-3.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "parent-module-1.0.1.tgz", - "dependsOn" : [ "callsites-3.1.0.tgz" ] - }, { - "ref" : "import-fresh-3.3.0.tgz", - "dependsOn" : [ "resolve-from-4.0.0.tgz", "parent-module-1.0.1.tgz" ] - }, { - "ref" : "parse-json-4.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "yaml-1.10.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "path-type-4.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "cosmiconfig-7.0.1.tgz", - "dependsOn" : [ "parse-json-5.2.0.tgz", "import-fresh-3.3.0.tgz", "parse-json-4.0.0.tgz", "yaml-1.10.2.tgz", "path-type-4.0.0.tgz" ] - }, { - "ref" : "runtime-7.18.9.tgz", - "dependsOn" : [ ] - }, { - "ref" : "function-bind-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "has-1.0.3.tgz", - "dependsOn" : [ "function-bind-1.1.1.tgz" ] - }, { - "ref" : "is-core-module-2.10.0.tgz", - "dependsOn" : [ "has-1.0.3.tgz" ] - }, { - "ref" : "path-parse-1.0.7.tgz", - "dependsOn" : [ ] - }, { - "ref" : "supports-preserve-symlinks-flag-1.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "resolve-1.22.1.tgz", - "dependsOn" : [ "is-core-module-2.10.0.tgz", "path-parse-1.0.7.tgz", "supports-preserve-symlinks-flag-1.0.0.tgz" ] - }, { - "ref" : "babel-plugin-macros-3.1.0.tgz", - "dependsOn" : [ "cosmiconfig-7.0.1.tgz", "runtime-7.18.9.tgz", "resolve-1.22.1.tgz" ] - }, { - "ref" : "source-map-0.5.7.tgz", - "dependsOn" : [ ] - }, { - "ref" : "safe-buffer-5.1.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "convert-source-map-1.8.0.tgz", - "dependsOn" : [ "safe-buffer-5.1.2.tgz" ] - }, { - "ref" : "helper-validator-identifier-7.16.7.tgz", - "dependsOn" : [ ] - }, { - "ref" : "to-fast-properties-2.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "types-7.16.8.tgz", - "dependsOn" : [ "helper-validator-identifier-7.16.7.tgz", "to-fast-properties-2.0.0.tgz" ] - }, { - "ref" : "helper-module-imports-7.16.7.tgz", - "dependsOn" : [ "types-7.16.8.tgz" ] - }, { - "ref" : "find-root-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "escape-string-regexp-4.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "babel-plugin-11.12.0.tgz-3", - "dependsOn" : [ "babel-plugin-macros-3.1.0.tgz", "serialize-1.3.1.tgz", "source-map-0.5.7.tgz", "convert-source-map-1.8.0.tgz", "helper-module-imports-7.16.7.tgz", "find-root-1.1.0.tgz", "escape-string-regexp-4.0.0.tgz" ] - }, { - "ref" : "regenerator-runtime-0.13.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "runtime-7.18.9.tgz-2", - "dependsOn" : [ "regenerator-runtime-0.13.5.tgz" ] - }, { - "ref" : "hoist-non-react-statics-3.3.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "hash-0.9.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "unitless-0.10.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "serialize-1.3.1.tgz-2", - "dependsOn" : [ "hash-0.9.2.tgz", "unitless-0.10.0.tgz" ] - }, { - "ref" : "weak-memoize-0.3.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-11.11.4.tgz", - "dependsOn" : [ "cache-11.13.1.tgz", "babel-plugin-11.12.0.tgz-3", "runtime-7.18.9.tgz-2", "hoist-non-react-statics-3.3.2.tgz", "serialize-1.3.1.tgz-2", "use-insertion-effect-with-fallbacks-1.1.0.tgz", "utils-1.4.0.tgz", "weak-memoize-0.3.1.tgz" ] - }, { - "ref" : "sonar-apex-plugin-1.18.0.198.jar", - "dependsOn" : [ ] - }, { - "ref" : "octicons-react-19.11.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "use-insertion-effect-with-fallbacks-1.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "utils-1.2.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "serialize-1.3.1.tgz-3", - "dependsOn" : [ "hash-0.9.2.tgz", "unitless-0.10.0.tgz", "memoize-0.9.0.tgz" ] - }, { - "ref" : "sheet-1.2.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "memoize-0.8.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "cache-11.11.0.tgz", - "dependsOn" : [ "stylis-4.2.0.tgz", "sheet-1.2.2.tgz", "memoize-0.8.1.tgz" ] - }, { - "ref" : "types-7.17.0.tgz", - "dependsOn" : [ "helper-validator-identifier-7.16.7.tgz", "to-fast-properties-2.0.0.tgz" ] - }, { - "ref" : "helper-module-imports-7.16.7.tgz-2", - "dependsOn" : [ "types-7.17.0.tgz" ] - }, { - "ref" : "hash-0.9.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "highlight-7.16.10.tgz", - "dependsOn" : [ "js-tokens-4.0.0.tgz", "chalk-2.4.2.tgz" ] - }, { - "ref" : "code-frame-7.16.7.tgz", - "dependsOn" : [ "highlight-7.16.10.tgz" ] - }, { - "ref" : "parse-json-5.2.0.tgz-2", - "dependsOn" : [ "code-frame-7.16.7.tgz", "error-ex-1.3.2.tgz", "lines-and-columns-1.2.4.tgz", "json-parse-even-better-errors-2.3.1.tgz" ] - }, { - "ref" : "cosmiconfig-7.0.1.tgz-2", - "dependsOn" : [ "import-fresh-3.3.0.tgz", "parse-json-4.0.0.tgz", "yaml-1.10.2.tgz", "path-type-4.0.0.tgz", "parse-json-5.2.0.tgz-2" ] - }, { - "ref" : "babel-plugin-macros-3.1.0.tgz-2", - "dependsOn" : [ "resolve-1.22.1.tgz", "runtime-7.18.9.tgz", "cosmiconfig-7.0.1.tgz-2" ] - }, { - "ref" : "unitless-0.8.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "serialize-1.1.2.tgz", - "dependsOn" : [ "unitless-0.8.1.tgz" ] - }, { - "ref" : "babel-plugin-11.11.0.tgz", - "dependsOn" : [ "helper-module-imports-7.16.7.tgz-2", "find-root-1.1.0.tgz", "escape-string-regexp-4.0.0.tgz", "source-map-0.5.7.tgz", "convert-source-map-1.8.0.tgz", "hash-0.9.1.tgz", "babel-plugin-macros-3.1.0.tgz-2", "serialize-1.1.2.tgz" ] - }, { - "ref" : "regenerator-runtime-0.13.9.tgz", - "dependsOn" : [ ] - }, { - "ref" : "runtime-7.18.9.tgz-3", - "dependsOn" : [ "regenerator-runtime-0.13.9.tgz" ] - }, { - "ref" : "react-11.11.4.tgz-2", - "dependsOn" : [ "weak-memoize-0.3.1.tgz", "use-insertion-effect-with-fallbacks-1.0.1.tgz", "utils-1.2.1.tgz", "serialize-1.3.1.tgz-3", "cache-11.11.0.tgz", "babel-plugin-11.11.0.tgz", "runtime-7.18.9.tgz-3", "hoist-non-react-statics-3.3.2.tgz" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-31", - "dependsOn" : [ "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar" ] - }, { - "ref" : "spring-context-6.2.5.jar-3", - "dependsOn" : [ "micrometer-observation-1.14.5.jar", "spring-aop-6.2.5.jar-2", "spring-beans-6.2.5.jar", "spring-expression-6.2.5.jar-2", "spring-core-6.2.5.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-32", - "dependsOn" : [ "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar-3", "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT-6", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2" ] - }, { - "ref" : "sonar-iac-plugin-1.44.0.14670.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-text-plugin-2.21.1.5779.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-33", - "dependsOn" : [ "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "sonar-sarif-25.4-SNAPSHOT-3" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-34", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "sonar-sarif-25.4-SNAPSHOT", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar" ] - }, { - "ref" : "vb-squid-2.14.0.5475.jar", - "dependsOn" : [ ] - }, { - "ref" : "vb-checks-2.14.0.5475.jar", - "dependsOn" : [ "vb-squid-2.14.0.5475.jar" ] - }, { - "ref" : "vb-squid-2.14.0.5475.jar-2", - "dependsOn" : [ "sslr-core-1.24.0.633.jar" ] - }, { - "ref" : "sonar-vb-plugin-2.14.0.5475.sonar-plugin", - "dependsOn" : [ "vb-checks-2.14.0.5475.jar", "vb-squid-2.14.0.5475.jar-2", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-35", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "sonar-sarif-25.4-SNAPSHOT-6", "logback-classic-1.5.18.jar-2" ] - }, { - "ref" : "query-core-5.56.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-query-5.56.2.tgz", - "dependsOn" : [ "query-core-5.56.2.tgz" ] - }, { - "ref" : "d3-drag-3.0.0.tgz", - "dependsOn" : [ "d3-selection-3.0.0.tgz" ] - }, { - "ref" : "d3-interpolate-3.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "d3-dispatch-3.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "d3-ease-3.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "d3-timer-3.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "d3-transition-3.0.1.tgz", - "dependsOn" : [ "d3-ease-3.0.1.tgz", "d3-timer-3.0.1.tgz" ] - }, { - "ref" : "d3-zoom-3.0.0.tgz", - "dependsOn" : [ "d3-drag-3.0.0.tgz", "d3-interpolate-3.0.1.tgz", "d3-dispatch-3.0.1.tgz", "d3-selection-3.0.0.tgz", "d3-transition-3.0.1.tgz" ] - }, { - "ref" : "sonar-ruby-plugin-1.18.0.234.jar", - "dependsOn" : [ ] - }, { - "ref" : "echoes-react-0.15.2.tgz", - "dependsOn" : [ "react-alert-dialog-1.1.5.tgz", "react-slot-1.1.1.tgz", "react-tooltip-1.1.7.tgz", "react-popover-1.1.5.tgz", "react-dropdown-menu-2.1.5.tgz", "react-dialog-1.1.5.tgz", "font-400-0.28.1.tgz", "react-checkbox-1.1.3.tgz", "react-visually-hidden-1.1.1.tgz", "hooks-7.12.2.tgz", "react-radio-group-1.2.2.tgz", "react-navigation-menu-1.2.5.tgz" ] - }, { - "ref" : "opensaml-saml-api-4.3.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-messaging-api-4.3.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "cryptacular-1.2.5.jar", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-security-api-4.3.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-core-4.3.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "java-support-8.4.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-security-impl-4.3.2.jar", - "dependsOn" : [ "opensaml-messaging-api-4.3.2.jar", "cryptacular-1.2.5.jar", "commons-codec-1.18.0.jar", "opensaml-security-api-4.3.2.jar", "opensaml-core-4.3.2.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "java-support-8.4.2.jar" ] - }, { - "ref" : "java-support-8.4.2.jar-2", - "dependsOn" : [ "commons-codec-1.18.0.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "velocity-engine-core-2.3.jar", - "dependsOn" : [ "commons-lang3-3.17.0.jar", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "opensaml-xmlsec-api-4.3.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-soap-api-4.3.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-profile-api-4.3.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-soap-impl-4.3.2.jar", - "dependsOn" : [ "opensaml-messaging-api-4.3.2.jar", "opensaml-xmlsec-api-4.3.2.jar", "httpclient-4.5.14.jar-2", "opensaml-soap-api-4.3.2.jar", "opensaml-core-4.3.2.jar", "httpcore-4.4.16.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "opensaml-profile-api-4.3.2.jar", "java-support-8.4.2.jar" ] - }, { - "ref" : "opensaml-soap-api-4.3.2.jar-2", - "dependsOn" : [ "opensaml-messaging-api-4.3.2.jar", "opensaml-xmlsec-api-4.3.2.jar", "httpclient-4.5.14.jar-2", "opensaml-security-api-4.3.2.jar", "opensaml-core-4.3.2.jar", "httpcore-4.4.16.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "java-support-8.4.2.jar" ] - }, { - "ref" : "bcpkix-jdk18on-1.80.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-security-api-4.3.2.jar-2", - "dependsOn" : [ "bcprov-jdk18on-1.80.jar", "opensaml-core-4.3.2.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "bcpkix-jdk18on-1.80.jar-2", "jsr305-3.0.2.jar", "java-support-8.4.2.jar", "opensaml-messaging-api-4.3.2.jar", "cryptacular-1.2.5.jar", "httpclient-4.5.14.jar-2", "commons-codec-1.18.0.jar" ] - }, { - "ref" : "cryptacular-1.2.5.jar-2", - "dependsOn" : [ "bcprov-jdk18on-1.80.jar" ] - }, { - "ref" : "opensaml-security-impl-4.3.2.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-xmlsec-impl-4.3.2.jar", - "dependsOn" : [ "opensaml-messaging-api-4.3.2.jar", "opensaml-xmlsec-api-4.3.2.jar", "cryptacular-1.2.5.jar-2", "opensaml-security-api-4.3.2.jar", "opensaml-core-4.3.2.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "opensaml-security-impl-4.3.2.jar-2", "java-support-8.4.2.jar" ] - }, { - "ref" : "opensaml-messaging-api-4.3.2.jar-2", - "dependsOn" : [ "httpclient-4.5.14.jar-2", "opensaml-core-4.3.2.jar", "httpcore-4.4.16.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "java-support-8.4.2.jar" ] - }, { - "ref" : "opensaml-xmlsec-api-4.3.2.jar-2", - "dependsOn" : [ "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "java-support-8.4.2.jar", "opensaml-messaging-api-4.3.2.jar", "opensaml-security-api-4.3.2.jar", "opensaml-core-4.3.2.jar", "guava-33.4.5-jre.jar" ] - }, { - "ref" : "opensaml-storage-api-4.3.2.jar", - "dependsOn" : [ "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "java-support-8.4.2.jar" ] - }, { - "ref" : "metrics-core-4.2.25.jar", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-core-4.3.2.jar-2", - "dependsOn" : [ "commons-codec-1.18.0.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "java-support-8.4.2.jar", "metrics-core-4.2.25.jar" ] - }, { - "ref" : "opensaml-profile-api-4.3.2.jar-2", - "dependsOn" : [ "opensaml-messaging-api-4.3.2.jar", "opensaml-core-4.3.2.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "java-support-8.4.2.jar", "metrics-core-4.2.25.jar" ] - }, { - "ref" : "metrics-core-4.2.25.jar-2", - "dependsOn" : [ "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "opensaml-saml-impl-4.3.2.jar", - "dependsOn" : [ "httpcore-4.4.16.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "opensaml-saml-api-4.3.2.jar", "opensaml-security-impl-4.3.2.jar", "java-support-8.4.2.jar-2", "velocity-engine-core-2.3.jar", "httpclient-4.5.14.jar", "opensaml-soap-impl-4.3.2.jar", "opensaml-soap-api-4.3.2.jar-2", "commons-codec-1.18.0.jar", "opensaml-security-api-4.3.2.jar-2", "opensaml-xmlsec-impl-4.3.2.jar", "opensaml-messaging-api-4.3.2.jar-2", "opensaml-xmlsec-api-4.3.2.jar-2", "opensaml-storage-api-4.3.2.jar", "opensaml-core-4.3.2.jar-2", "jsr305-3.0.2.jar", "opensaml-profile-api-4.3.2.jar-2", "metrics-core-4.2.25.jar-2" ] - }, { - "ref" : "opensaml-saml-api-4.3.2.jar-2", - "dependsOn" : [ "opensaml-messaging-api-4.3.2.jar", "opensaml-xmlsec-api-4.3.2.jar", "opensaml-soap-api-4.3.2.jar", "commons-codec-1.18.0.jar", "opensaml-security-api-4.3.2.jar", "opensaml-core-4.3.2.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "opensaml-profile-api-4.3.2.jar", "java-support-8.4.2.jar" ] - }, { - "ref" : "spring-security-crypto-6.4.4.jar", - "dependsOn" : [ ] - }, { - "ref" : "spring-security-core-6.4.4.jar", - "dependsOn" : [ "micrometer-observation-1.14.5.jar-2", "spring-aop-6.2.5.jar-2", "spring-beans-6.2.5.jar", "spring-expression-6.2.5.jar-2", "spring-context-6.2.5.jar-2", "spring-security-crypto-6.4.4.jar", "spring-core-6.2.5.jar" ] - }, { - "ref" : "spring-web-6.2.4.jar", - "dependsOn" : [ "micrometer-observation-1.14.5.jar-2", "spring-beans-6.2.5.jar", "spring-core-6.2.5.jar" ] - }, { - "ref" : "spring-security-web-6.4.4.jar", - "dependsOn" : [ "spring-security-core-6.4.4.jar", "spring-core-6.2.5.jar", "spring-web-6.2.4.jar", "spring-aop-6.2.5.jar-2", "spring-beans-6.2.5.jar", "spring-expression-6.2.5.jar-2", "spring-context-6.2.5.jar-2" ] - }, { - "ref" : "spring-security-saml2-service-provider-6.4.4.jar", - "dependsOn" : [ "opensaml-saml-impl-4.3.2.jar", "opensaml-saml-api-4.3.2.jar-2", "spring-security-web-6.4.4.jar" ] - }, { - "ref" : "okio-jvm-3.6.0.jar-4", - "dependsOn" : [ "kotlin-stdlib-common-2.1.10.pom", "kotlin-stdlib-jdk8-1.9.10.jar" ] - }, { - "ref" : "okio-3.6.0.jar-4", - "dependsOn" : [ "okio-jvm-3.6.0.jar-4" ] - }, { - "ref" : "okhttp-4.12.0.jar-6", - "dependsOn" : [ "okio-3.6.0.jar-4", "kotlin-stdlib-jdk8-1.9.10.jar" ] - }, { - "ref" : "sonar-auth-saml-25.4-SNAPSHOT", - "dependsOn" : [ "json-20250107.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "spring-security-saml2-service-provider-6.4.4.jar", "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "okhttp-4.12.0.jar-6" ] - }, { - "ref" : "sonar-auth-github-25.4-SNAPSHOT-2", - "dependsOn" : [ "gson-2.12.1.jar", "scribejava-apis-8.3.3.jar-2", "sonar-auth-common-25.4-SNAPSHOT-3", "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar" ] - }, { - "ref" : "jfreechart-1.5.5.jar", - "dependsOn" : [ ] - }, { - "ref" : "pdfbox-io-3.0.4.jar", - "dependsOn" : [ ] - }, { - "ref" : "fontbox-3.0.4.jar", - "dependsOn" : [ "commons-logging-1.3.5.jar", "pdfbox-io-3.0.4.jar" ] - }, { - "ref" : "pdfbox-io-3.0.4.jar-2", - "dependsOn" : [ "commons-logging-1.3.5.jar" ] - }, { - "ref" : "pdfbox-3.0.4.jar-2", - "dependsOn" : [ "fontbox-3.0.4.jar", "commons-logging-1.3.5.jar", "pdfbox-io-3.0.4.jar-2" ] - }, { - "ref" : "core-extension-enterprise-server-2025.3-SNAPSHOT", - "dependsOn" : [ "jfreechart-1.5.5.jar", "pdfbox-3.0.4.jar-2" ] - }, { - "ref" : "license-api-2025.3-SNAPSHOT", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "license-api-2025.3-SNAPSHOT-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-vbnet-plugin-10.7.0.110445.jar", - "dependsOn" : [ "sonar-vbnet-core-10.7.0.110445.jar", "sonar-dotnet-core-10.7.0.110445.jar", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-auth-saml-25.4-SNAPSHOT-2", - "dependsOn" : [ "json-20250107.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "okhttp-4.12.0.jar" ] - }, { - "ref" : "xmlsec-2.3.4.jar", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-saml-api-4.3.2.jar-3", - "dependsOn" : [ "opensaml-messaging-api-4.3.2.jar", "opensaml-xmlsec-api-4.3.2.jar", "opensaml-soap-api-4.3.2.jar", "commons-codec-1.18.0.jar", "opensaml-security-api-4.3.2.jar", "opensaml-core-4.3.2.jar", "guava-33.4.5-jre.jar", "xmlsec-2.3.4.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "opensaml-profile-api-4.3.2.jar", "java-support-8.4.2.jar" ] - }, { - "ref" : "spring-web-6.2.5.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "spring-security-web-6.4.4.jar-2", - "dependsOn" : [ "spring-core-6.2.5.jar", "spring-aop-6.2.5.jar-2", "spring-web-6.2.5.jar-2", "spring-beans-6.2.5.jar", "spring-expression-6.2.5.jar-2", "spring-context-6.2.5.jar-2", "spring-security-core-6.4.4.jar" ] - }, { - "ref" : "xmlsec-2.3.4.jar-2", - "dependsOn" : [ "commons-codec-1.18.0.jar", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "opensaml-xmlsec-api-4.3.2.jar-3", - "dependsOn" : [ "opensaml-messaging-api-4.3.2.jar", "opensaml-security-api-4.3.2.jar", "opensaml-core-4.3.2.jar", "guava-33.4.5-jre.jar", "xmlsec-2.3.4.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "java-support-8.4.2.jar" ] - }, { - "ref" : "opensaml-xmlsec-impl-4.3.2.jar-2", - "dependsOn" : [ "opensaml-messaging-api-4.3.2.jar", "opensaml-xmlsec-api-4.3.2.jar", "cryptacular-1.2.5.jar-2", "opensaml-security-api-4.3.2.jar", "opensaml-core-4.3.2.jar", "guava-33.4.5-jre.jar", "xmlsec-2.3.4.jar", "slf4j-api-2.0.17.jar", "jsr305-3.0.2.jar", "opensaml-security-impl-4.3.2.jar-2", "java-support-8.4.2.jar" ] - }, { - "ref" : "opensaml-saml-impl-4.3.2.jar-2", - "dependsOn" : [ "xmlsec-2.3.4.jar-2", "jsr305-3.0.2.jar", "opensaml-profile-api-4.3.2.jar-2", "metrics-core-4.2.25.jar-2", "httpcore-4.4.16.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "opensaml-saml-api-4.3.2.jar", "opensaml-security-impl-4.3.2.jar", "java-support-8.4.2.jar-2", "velocity-engine-core-2.3.jar", "httpclient-4.5.14.jar", "opensaml-storage-api-4.3.2.jar", "opensaml-core-4.3.2.jar-2", "opensaml-soap-api-4.3.2.jar-2", "commons-codec-1.18.0.jar", "opensaml-security-api-4.3.2.jar-2", "opensaml-messaging-api-4.3.2.jar-2", "opensaml-xmlsec-api-4.3.2.jar-3", "opensaml-soap-impl-4.3.2.jar", "opensaml-xmlsec-impl-4.3.2.jar-2" ] - }, { - "ref" : "spring-security-saml2-service-provider-6.4.4.jar-2", - "dependsOn" : [ "opensaml-saml-api-4.3.2.jar-3", "spring-security-web-6.4.4.jar-2", "opensaml-saml-impl-4.3.2.jar-2" ] - }, { - "ref" : "sonar-auth-saml-25.4-SNAPSHOT-3", - "dependsOn" : [ "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "okhttp-4.12.0.jar", "json-20250107.jar", "sonar-webserver-api-25.4-SNAPSHOT-2", "spring-security-saml2-service-provider-6.4.4.jar-2" ] - }, { - "ref" : "sonar-shutdowner-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "sonar-jacoco-plugin-1.3.0.1538.jar", - "dependsOn" : [ ] - }, { - "ref" : "spring-security-saml2-service-provider-6.4.4.jar-3", - "dependsOn" : [ "spring-security-web-6.4.4.jar", "opensaml-saml-api-4.3.2.jar-3", "opensaml-saml-impl-4.3.2.jar-2" ] - }, { - "ref" : "sonar-auth-saml-25.4-SNAPSHOT-4", - "dependsOn" : [ "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "okhttp-4.12.0.jar", "json-20250107.jar", "sonar-webserver-api-25.4-SNAPSHOT-5", "spring-security-saml2-service-provider-6.4.4.jar-3" ] - }, { - "ref" : "provisioning-common-2025.3-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "eddsa-0.3.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "svnkit-1.10.11.jar-4", - "dependsOn" : [ "sequence-library-1.0.4.jar", "lz4-java-1.8.0.jar", "trilead-ssh2-1.0.0-build222.jar", "eddsa-0.3.0.jar", "jna-platform-5.6.0.jar", "jsch.agentproxy.connector-factory-0.0.9.jar", "jsch.agentproxy.svnkit-trilead-ssh2-0.0.9.jar", "jna-5.10.0.jar", "sqljet-1.1.15.jar", "sshd-common-2.15.0.jar", "sshd-core-2.15.0.jar" ] - }, { - "ref" : "sonar-scanner-engine-25.4-SNAPSHOT-10", - "dependsOn" : [ "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar-2", "commons-csv-1.14.0.jar-2", "sonar-scanner-protocol-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "okhttp-4.12.0.jar", "sonar-ws-25.4-SNAPSHOT", "git-files-blame-1.1.0.1835.jar-2", "protobuf-java-4.30.1.jar", "jul-to-slf4j-2.0.17.jar-2", "sonar-core-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT", "svnkit-1.10.11.jar-4", "sonar-sarif-25.4-SNAPSHOT-4", "org.eclipse.jgit-7.2.0.202503040940-r.jar-2", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "spotbugs-annotations-4.9.3.jar", "commons-lang3-3.17.0.jar", "jcl-over-slf4j-2.0.17.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar-2", "sonar-duplications-25.4-SNAPSHOT-3", "log4j-over-slf4j-2.0.17.jar", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "staxmate-2.4.1.jar-2" ] - }, { - "ref" : "core-extension-developer-scanner-2025.3-SNAPSHOT-2", - "dependsOn" : [ "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "license-api-2025.3-SNAPSHOT-2", "sonar-scanner-protocol-25.4-SNAPSHOT", "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-scanner-engine-25.4-SNAPSHOT-10" ] - }, { - "ref" : "jackson-bom-2.18.3.pom-9", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-dataformat-yaml-2.18.3.jar", "jackson-dataformat-smile-2.18.3.jar", "jackson-dataformat-cbor-2.18.3.jar", "jackson-annotations-2.18.3.jar", "jackson-datatype-jsr310-2.18.3.jar" ] - }, { - "ref" : "jackson-databind-2.18.3.jar-9", - "dependsOn" : [ "jackson-core-2.18.3.jar", "jackson-bom-2.18.3.pom-9", "jackson-annotations-2.18.3.jar-2" ] - }, { - "ref" : "github-api-1.327.jar-2", - "dependsOn" : [ "jackson-databind-2.18.3.jar-9", "commons-lang3-3.17.0.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-9", - "dependsOn" : [ "sonar-server-common-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-process-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "jul-to-slf4j-2.0.17.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "core-3.1.0.jar", "sonar-ce-task-25.4-SNAPSHOT", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "diffutils-1.3.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT", "sonar-duplications-25.4-SNAPSHOT", "commons-text-1.13.0.jar", "sonar-db-migration-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "core-extension-developer-server-2025.3-SNAPSHOT-2", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar-2", "license-api-2025.3-SNAPSHOT", "provisioning-common-2025.3-SNAPSHOT", "jjwt-api-0.12.6.jar", "sonar-auth-github-25.4-SNAPSHOT-2", "core-extension-developer-scanner-2025.3-SNAPSHOT-2", "github-api-1.327.jar-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-9", "sonar-webserver-webapi-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "spotbugs-annotations-4.9.3.jar-3", "sonar-db-dao-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-auth-github-25.4-SNAPSHOT-3", - "dependsOn" : [ ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", - "dependsOn" : [ ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT-2", - "dependsOn" : [ "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", "guava-33.4.5-jre.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "sonar-ce-task-25.4-SNAPSHOT", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-plugin-api-11.3.0.2824.jar", "license-api-2025.3-SNAPSHOT-2", "license-common-2025.3-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT" ] - }, { - "ref" : "license-common-2025.3-SNAPSHOT-2", - "dependsOn" : [ "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "provisioning-common-2025.3-SNAPSHOT-2", - "dependsOn" : [ "sonar-auth-common-25.4-SNAPSHOT-3", "core-extension-license-2025.3-SNAPSHOT-2", "license-common-2025.3-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-webserver-webapi-v2-25.4-SNAPSHOT-2" ] - }, { - "ref" : "core-extension-developer-server-2025.3-SNAPSHOT-3", - "dependsOn" : [ "jjwt-api-0.12.6.jar", "sonar-auth-github-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "sonar-webserver-webapi-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "license-api-2025.3-SNAPSHOT-2", "provisioning-common-2025.3-SNAPSHOT-2", "sonar-plugin-api-11.3.0.2824.jar", "github-api-1.327.jar", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", "core-extension-developer-scanner-2025.3-SNAPSHOT-2" ] - }, { - "ref" : "core-extension-developer-server-2025.3-SNAPSHOT-4", - "dependsOn" : [ "sonar-webserver-webapi-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "license-api-2025.3-SNAPSHOT", "provisioning-common-2025.3-SNAPSHOT", "jjwt-api-0.12.6.jar", "sonar-auth-github-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar-3", "sonar-db-dao-25.4-SNAPSHOT", "core-extension-developer-scanner-2025.3-SNAPSHOT-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-9", "github-api-1.327.jar-2" ] - }, { - "ref" : "sonar-auth-saml-25.4-SNAPSHOT-5", - "dependsOn" : [ "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "okhttp-4.12.0.jar", "json-20250107.jar", "sonar-webserver-api-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-3", - "dependsOn" : [ "gson-2.12.1.jar", "scribejava-apis-8.3.3.jar-2", "sonar-auth-common-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-10", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-3", "sonar-db-migration-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-3", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-10", - "dependsOn" : [ "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "staxmate-2.4.1.jar-2", "guava-33.4.5-jre.jar", "sonar-db-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-11", - "dependsOn" : [ "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-process-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "jul-to-slf4j-2.0.17.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "core-3.1.0.jar", "sonar-ce-task-25.4-SNAPSHOT", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "sonar-plugin-api-11.3.0.2824.jar", "diffutils-1.3.0.jar", "sonar-scanner-protocol-25.4-SNAPSHOT", "sonar-duplications-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT-10", "sonar-db-migration-25.4-SNAPSHOT-10" ] - }, { - "ref" : "core-extension-enterprise-server-2025.3-SNAPSHOT-2", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "license-api-2025.3-SNAPSHOT", "sonar-auth-ldap-25.4-SNAPSHOT", "sonar-auth-github-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-ws-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "pdfbox-3.0.4.jar-2", "sonar-auth-saml-25.4-SNAPSHOT-5", "sonar-auth-gitlab-25.4-SNAPSHOT-3", "staxmate-2.4.1.jar", "core-extension-developer-server-2025.3-SNAPSHOT-3", "jfreechart-1.5.5.jar", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-11" ] - }, { - "ref" : "sonar-dart-plugin-1.1.0.2133.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT-5", - "dependsOn" : [ ] - }, { - "ref" : "provisioning-common-2025.3-SNAPSHOT-3", - "dependsOn" : [ "sonar-auth-common-25.4-SNAPSHOT", "core-extension-license-2025.3-SNAPSHOT", "license-common-2025.3-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-webserver-webapi-v2-25.4-SNAPSHOT-5" ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT-3", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "license-api-2025.3-SNAPSHOT-2", "license-common-2025.3-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", "guava-33.4.5-jre.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "sonar-ce-task-25.4-SNAPSHOT", "sonar-webserver-api-25.4-SNAPSHOT-2" ] - }, { - "ref" : "provisioning-common-2025.3-SNAPSHOT-4", - "dependsOn" : [ "license-common-2025.3-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-webserver-webapi-v2-25.4-SNAPSHOT-2", "sonar-auth-common-25.4-SNAPSHOT", "core-extension-license-2025.3-SNAPSHOT-3" ] - }, { - "ref" : "python-frontend-5.2.0.20808.jar", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "sslr-core-1.24.0.633.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-regex-parsing-2.16.0.3141.jar-2" ] - }, { - "ref" : "python-frontend-5.2.0.20808.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "python-checks-5.2.0.20808.jar", - "dependsOn" : [ ] - }, { - "ref" : "python-enterprise-checks-5.2.0.20808.jar", - "dependsOn" : [ "python-frontend-5.2.0.20808.jar-2", "gson-2.12.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "python-checks-5.2.0.20808.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "jackson-datatype-jdk8-2.18.3.jar-2", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-bom-2.18.3.pom" ] - }, { - "ref" : "staxmate-2.0.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-performance-measure-2.16.0.3141.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-xml-parsing-2.16.0.3141.jar", - "dependsOn" : [ ] - }, { - "ref" : "jackson-dataformat-toml-2.18.3.jar-2", - "dependsOn" : [ "jackson-core-2.18.3.jar-2", "jackson-bom-2.18.3.pom", "jackson-databind-2.18.3.jar" ] - }, { - "ref" : "python-commons-5.2.0.20808.jar", - "dependsOn" : [ "jackson-datatype-jdk8-2.18.3.jar-2", "staxmate-2.0.1.jar", "sonar-performance-measure-2.16.0.3141.jar", "python-checks-5.2.0.20808.jar", "commons-lang-2.6.jar", "sonar-xml-parsing-2.16.0.3141.jar", "python-frontend-5.2.0.20808.jar-2", "sonar-analyzer-commons-2.16.0.3141.jar", "jackson-dataformat-toml-2.18.3.jar-2" ] - }, { - "ref" : "sonar-python-enterprise-plugin-5.2.0.20808.sonar-plugin", - "dependsOn" : [ "python-frontend-5.2.0.20808.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "python-enterprise-checks-5.2.0.20808.jar", "python-commons-5.2.0.20808.jar" ] - }, { - "ref" : "python-frontend-5.2.0.20808.jar-3", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "sslr-core-1.24.0.633.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-regex-parsing-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-python-enterprise-plugin-5.2.0.20808.sonar-plugin-2", - "dependsOn" : [ "python-frontend-5.2.0.20808.jar-3", "sonar-analyzer-commons-2.16.0.3141.jar", "python-enterprise-checks-5.2.0.20808.jar", "python-commons-5.2.0.20808.jar" ] - }, { - "ref" : "sonar-csharp-core-10.7.0.110445.jar", - "dependsOn" : [ "sonar-dotnet-core-10.7.0.110445.jar" ] - }, { - "ref" : "sonar-dotnet-core-10.7.0.110445.jar-2", - "dependsOn" : [ "sonar-xml-parsing-2.16.0.3141.jar", "gson-2.12.1.jar", "protobuf-java-4.30.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-csharp-enterprise-plugin-10.7.0.110445.sonar-plugin", - "dependsOn" : [ "sonar-csharp-core-10.7.0.110445.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-dotnet-core-10.7.0.110445.jar-2" ] - }, { - "ref" : "plsql-api-3.15.0.7123.jar", - "dependsOn" : [ ] - }, { - "ref" : "plsql-data-dictionary-3.15.0.7123.jar", - "dependsOn" : [ "plsql-api-3.15.0.7123.jar" ] - }, { - "ref" : "plsql-squid-3.15.0.7123.jar", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "plsql-data-dictionary-3.15.0.7123.jar", "plsql-api-3.15.0.7123.jar" ] - }, { - "ref" : "plsql-data-dictionary-3.15.0.7123.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "jaxen-1.1.4.jar", - "dependsOn" : [ ] - }, { - "ref" : "sslr-xpath-1.24.0.633.jar-2", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "jaxen-1.1.4.jar" ] - }, { - "ref" : "plsql-squid-3.15.0.7123.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "plsql-checks-3.15.0.7123.jar", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "plsql-data-dictionary-3.15.0.7123.jar-2", "commons-lang3-3.17.0.jar", "sslr-xpath-1.24.0.633.jar-2", "plsql-squid-3.15.0.7123.jar-2", "plsql-api-3.15.0.7123.jar" ] - }, { - "ref" : "plsql-api-3.15.0.7123.jar-2", - "dependsOn" : [ "sslr-core-1.24.0.633.jar" ] - }, { - "ref" : "sonar-plsql-plugin-3.15.0.7123.sonar-plugin", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "plsql-squid-3.15.0.7123.jar", "plsql-checks-3.15.0.7123.jar", "plsql-api-3.15.0.7123.jar-2" ] - }, { - "ref" : "plsql-checks-3.15.0.7123.jar-2", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "plsql-data-dictionary-3.15.0.7123.jar-2", "commons-lang3-3.17.0.jar", "sslr-xpath-1.24.0.633.jar", "plsql-squid-3.15.0.7123.jar-2", "plsql-api-3.15.0.7123.jar" ] - }, { - "ref" : "sonar-plsql-plugin-3.15.0.7123.sonar-plugin-2", - "dependsOn" : [ "sslr-core-1.24.0.633.jar-2", "sonar-analyzer-commons-2.16.0.3141.jar", "plsql-squid-3.15.0.7123.jar", "plsql-checks-3.15.0.7123.jar-2", "plsql-api-3.15.0.7123.jar-2" ] - }, { - "ref" : "sonar-auth-common-25.4-SNAPSHOT-4", - "dependsOn" : [ "scribejava-apis-8.3.3.jar", "scribejava-core-8.3.3.jar" ] - }, { - "ref" : "provisioning-common-2025.3-SNAPSHOT-5", - "dependsOn" : [ "sonar-auth-common-25.4-SNAPSHOT-4", "core-extension-license-2025.3-SNAPSHOT", "license-common-2025.3-SNAPSHOT" ] - }, { - "ref" : "core-extension-developer-server-2025.3-SNAPSHOT-5", - "dependsOn" : [ "github-api-1.327.jar", "provisioning-common-2025.3-SNAPSHOT-5" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-11", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "sonar-db-migration-25.4-SNAPSHOT", "jackson-databind-2.18.3.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-4" ] - }, { - "ref" : "scribejava-apis-8.3.3.jar-6", - "dependsOn" : [ "jackson-databind-2.18.3.jar-8", "scribejava-core-8.3.3.jar" ] - }, { - "ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-4", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar-3", "sonar-server-common-25.4-SNAPSHOT-11", "gson-2.12.1.jar-2", "scribejava-apis-8.3.3.jar-6", "sonar-auth-common-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT-2" ] - }, { - "ref" : "logback-access-common-2.0.6.jar", - "dependsOn" : [ "logback-core-1.5.18.jar", "jakarta.servlet-api-6.1.0.jar" ] - }, { - "ref" : "logback-access-tomcat-2.0.6.jar", - "dependsOn" : [ "logback-core-1.5.18.jar", "logback-access-common-2.0.6.jar" ] - }, { - "ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-5", - "dependsOn" : [ "gson-2.12.1.jar", "scribejava-apis-8.3.3.jar-2", "sonar-auth-common-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar-4" ] - }, { - "ref" : "sonar-channel-4.2.jar-3", - "dependsOn" : [ "commons-io-2.18.0.jar" ] - }, { - "ref" : "java-frontend-8.11.0.38440.jar", - "dependsOn" : [ "jdt-package-1.3.0.89.jar", "sslr-core-1.24.0.633.jar", "commons-lang3-3.17.0.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-performance-measure-2.16.0.3141.jar", "sonar-regex-parsing-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-performance-measure-2.16.0.3141.jar-2", - "dependsOn" : [ "gson-2.12.1.jar", "jsr305-3.0.2.jar" ] - }, { - "ref" : "sonar-java-symbolic-execution-plugin-8.11.0.38440.jar", - "dependsOn" : [ "java-frontend-8.11.0.38440.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-performance-measure-2.16.0.3141.jar-2" ] - }, { - "ref" : "sonar-auth-bitbucket-25.4-SNAPSHOT", - "dependsOn" : [ "gson-2.12.1.jar", "scribejava-apis-8.3.3.jar", "sonar-auth-common-25.4-SNAPSHOT-3", "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "scribejava-core-8.3.3.jar", "okhttp-4.12.0.jar" ] - }, { - "ref" : "javax.annotation-api-1.3.2.jar", - "dependsOn" : [ ] - }, { - "ref" : "sslr-gll-4.13.1.8101.jar", - "dependsOn" : [ "sslr-core-1.24.0.633.jar" ] - }, { - "ref" : "swift-frontend-4.13.1.8101.jar", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "javax.annotation-api-1.3.2.jar", "sslr-gll-4.13.1.8101.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "asm-9.7.1.jar" ] - }, { - "ref" : "swift-frontend-4.13.1.8101.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "swift-checks-4.13.1.8101.jar", - "dependsOn" : [ "sonar-analyzer-recognizers-2.16.0.3141.jar", "swift-frontend-4.13.1.8101.jar-2", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-swift-plugin-4.13.1.8101.sonar-plugin", - "dependsOn" : [ "gson-2.12.1.jar-2", "swift-frontend-4.13.1.8101.jar", "swift-checks-4.13.1.8101.jar", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "checker-qual-3.48.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "postgresql-42.7.5.jar", - "dependsOn" : [ "checker-qual-3.48.3.jar" ] - }, { - "ref" : "provisioning-common-2025.3-SNAPSHOT-6", - "dependsOn" : [ "sonar-auth-common-25.4-SNAPSHOT", "core-extension-license-2025.3-SNAPSHOT", "license-common-2025.3-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-webserver-webapi-v2-25.4-SNAPSHOT-2" ] - }, { - "ref" : "github-api-1.327.jar-3", - "dependsOn" : [ "commons-lang3-3.17.0.jar", "commons-io-2.18.0.jar", "jackson-databind-2.18.3.jar-3" ] - }, { - "ref" : "core-extension-developer-server-2025.3-SNAPSHOT-6", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar-3", "sonar-db-dao-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "jjwt-api-0.12.6.jar", "sonar-auth-github-25.4-SNAPSHOT-2", "provisioning-common-2025.3-SNAPSHOT-6", "sonar-plugin-api-11.3.0.2824.jar-2", "license-api-2025.3-SNAPSHOT", "core-extension-developer-scanner-2025.3-SNAPSHOT-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-9", "github-api-1.327.jar-3" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-12", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "jackson-databind-2.18.3.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-4", "commons-email2-jakarta-2.0.0-M1.jar", "sonar-db-migration-25.4-SNAPSHOT-7" ] - }, { - "ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-6", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar-2", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-server-common-25.4-SNAPSHOT-12", "gson-2.12.1.jar", "scribejava-apis-8.3.3.jar-2", "sonar-auth-common-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-markdown-25.4-SNAPSHOT-3", - "dependsOn" : [ ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-13", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-3", "sonar-ws-25.4-SNAPSHOT", "sonar-db-migration-25.4-SNAPSHOT", "jackson-databind-2.18.3.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-2" ] - }, { - "ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-7", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar-4", "jakarta.servlet-api-6.1.0.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT-13", "gson-2.12.1.jar-2", "scribejava-apis-8.3.3.jar-5", "sonar-auth-common-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-11", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "staxmate-2.4.1.jar", "guava-33.4.5-jre.jar", "sonar-db-core-25.4-SNAPSHOT-4", "sonar-telemetry-core-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-telemetry-core-25.4-SNAPSHOT-4", - "dependsOn" : [ "jackson-databind-2.18.3.jar-6", "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-12", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar", "commons-codec-1.18.0.jar", "commons-lang3-3.17.0.jar", "staxmate-2.4.1.jar", "guava-33.4.5-jre.jar", "sonar-db-core-25.4-SNAPSHOT-2", "sonar-telemetry-core-25.4-SNAPSHOT-4", "sonar-core-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-3" ] - }, { - "ref" : "common-2.0.3.jar", - "dependsOn" : [ "jakarta.servlet-api-6.1.0.jar", "logback-core-1.5.18.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-36", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "sonar-sarif-25.4-SNAPSHOT-6", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-37", - "dependsOn" : [ "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT-4", "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-38", - "dependsOn" : [ "commons-exec-1.4.0.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "spring-context-6.2.5.jar", "okhttp-4.12.0.jar-3", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT-3", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-classloader-1.1.0.1059.jar", "jakarta.annotation-api-3.0.0.jar", "slf4j-api-2.0.17.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "jakarta.inject-api-2.0.1.jar", "logback-core-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar" ] - }, { - "ref" : "sonar-process-25.4-SNAPSHOT-4", - "dependsOn" : [ "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "jul-to-slf4j-2.0.17.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT-38", "logback-classic-1.5.18.jar", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "hazelcast-5.4.0.jar", "spotbugs-annotations-4.9.3.jar", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-process-25.4-SNAPSHOT-5", - "dependsOn" : [ "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "jul-to-slf4j-2.0.17.jar-2", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "hazelcast-5.4.0.jar", "spotbugs-annotations-4.9.3.jar", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "tomcat-annotations-api-10.1.39.jar", - "dependsOn" : [ ] - }, { - "ref" : "tomcat-embed-core-10.1.39.jar", - "dependsOn" : [ "tomcat-annotations-api-10.1.39.jar" ] - }, { - "ref" : "sonar-cayc-plugin-2.4.0.2018.jar", - "dependsOn" : [ ] - }, { - "ref" : "d3-array-3.2.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "d3-time-3.0.0.tgz", - "dependsOn" : [ "d3-array-3.2.0.tgz" ] - }, { - "ref" : "d3-format-3.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "d3-time-3.0.0.tgz-2", - "dependsOn" : [ ] - }, { - "ref" : "d3-time-format-4.1.0.tgz", - "dependsOn" : [ "d3-time-3.0.0.tgz-2" ] - }, { - "ref" : "d3-color-3.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "d3-interpolate-3.0.1.tgz-2", - "dependsOn" : [ "d3-color-3.1.0.tgz" ] - }, { - "ref" : "d3-scale-4.0.2.tgz", - "dependsOn" : [ "d3-time-3.0.0.tgz", "d3-format-3.1.0.tgz", "d3-time-format-4.1.0.tgz", "d3-array-3.2.0.tgz", "d3-interpolate-3.0.1.tgz-2" ] - }, { - "ref" : "d3-array-3.2.3.tgz", - "dependsOn" : [ ] - }, { - "ref" : "d3-time-3.1.0.tgz", - "dependsOn" : [ "d3-array-3.2.3.tgz" ] - }, { - "ref" : "d3-time-3.1.0.tgz-2", - "dependsOn" : [ ] - }, { - "ref" : "d3-time-format-4.1.0.tgz-2", - "dependsOn" : [ "d3-time-3.1.0.tgz-2" ] - }, { - "ref" : "d3-scale-4.0.2.tgz-2", - "dependsOn" : [ "d3-time-3.1.0.tgz", "d3-format-3.1.0.tgz", "d3-time-format-4.1.0.tgz-2", "d3-array-3.2.3.tgz", "d3-interpolate-3.0.1.tgz-2" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-14", - "dependsOn" : [ "sonar-db-migration-25.4-SNAPSHOT-7", "jackson-databind-2.18.3.jar-7", "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT-2", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-4", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-15", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-3", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar", "sonar-db-migration-25.4-SNAPSHOT", "jackson-databind-2.18.3.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-16", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar", "jackson-databind-2.18.3.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-4", "sonar-db-migration-25.4-SNAPSHOT-9" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-17", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar-3", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT-2", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "jackson-databind-2.18.3.jar-7", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-4", "sonar-db-migration-25.4-SNAPSHOT-7" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-18", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT", "sonar-ws-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "sonar-db-migration-25.4-SNAPSHOT", "jackson-databind-2.18.3.jar-7" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-19", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar", "sonar-process-25.4-SNAPSHOT-3", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "jackson-databind-2.18.3.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-4", "sonar-db-migration-25.4-SNAPSHOT-7" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-20", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT-2", "elasticsearch-rest-high-level-client-7.17.28.jar-3", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT-3", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-4", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "sonar-db-migration-25.4-SNAPSHOT-5" ] - }, { - "ref" : "sonar-telemetry-core-25.4-SNAPSHOT-5", - "dependsOn" : [ "jackson-databind-2.18.3.jar-7", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar-3", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "backdating-plugin-v1-2025.3-SNAPSHOT", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-21", - "dependsOn" : [ "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "sonar-db-migration-25.4-SNAPSHOT", "jackson-databind-2.18.3.jar-7", "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT", "sonar-ws-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-telemetry-core-25.4-SNAPSHOT-6", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-process-25.4-SNAPSHOT", "jackson-databind-2.18.3.jar-6" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-22", - "dependsOn" : [ "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar-2", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar-2", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-2", "sonar-db-migration-25.4-SNAPSHOT", "jackson-databind-2.18.3.jar-8" ] - }, { - "ref" : "sonar-ce-task-25.4-SNAPSHOT-3", - "dependsOn" : [ "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-11.3.0.2824.jar", "guava-33.4.5-jre.jar", "jul-to-slf4j-2.0.17.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT-22" ] - }, { - "ref" : "core-extension-developer-scanner-2025.3-SNAPSHOT-3", - "dependsOn" : [ "license-api-2025.3-SNAPSHOT-2" ] - }, { - "ref" : "sonar-scanner-engine-25.4-SNAPSHOT-11", - "dependsOn" : [ ] - }, { - "ref" : "core-extension-developer-scanner-2025.3-SNAPSHOT-4", - "dependsOn" : [ "sonar-scanner-protocol-25.4-SNAPSHOT", "okhttp-4.12.0.jar", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "gson-2.12.1.jar", "guava-33.4.5-jre.jar-2", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-scanner-engine-25.4-SNAPSHOT-11", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "license-api-2025.3-SNAPSHOT" ] - }, { - "ref" : "core-extension-developer-scanner-2025.3-SNAPSHOT-5", - "dependsOn" : [ "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "license-api-2025.3-SNAPSHOT-2", "sonar-scanner-protocol-25.4-SNAPSHOT", "okhttp-4.12.0.jar-4", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-scanner-engine-25.4-SNAPSHOT-10" ] - }, { - "ref" : "core-extension-fix-suggestions-2025.3-SNAPSHOT", - "dependsOn" : [ "core-extension-license-2025.3-SNAPSHOT", "jsoup-1.19.1.jar", "license-common-2025.3-SNAPSHOT" ] - }, { - "ref" : "sonar-db-core-25.4-SNAPSHOT-5", - "dependsOn" : [ "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "mybatis-3.5.19.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "HikariCP-6.2.1.jar", "sonar-process-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "commons-io-2.18.0.jar", "logback-classic-1.5.18.jar-2" ] - }, { - "ref" : "sonar-php-plugin-3.45.0.12991.jar", - "dependsOn" : [ ] - }, { - "ref" : "hibernate-validator-8.0.2.Final.jar-3", - "dependsOn" : [ "classmate-1.7.0.jar", "classmate-1.5.1.jar", "jakarta.validation-api-3.0.2.jar", "jboss-logging-3.4.3.Final.jar" ] - }, { - "ref" : "spdx-jackson-store-2.0.0-RC2.jar-3", - "dependsOn" : [ ] - }, { - "ref" : "cyclonedx-core-java-10.2.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "sca-container-2025.3-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "sca-application-2025.3-SNAPSHOT", - "dependsOn" : [ "spring-webmvc-6.2.5.jar-2", "java-spdx-library-2.0.0-RC2.jar", "hibernate-validator-8.0.2.Final.jar-3", "commons-lang3-3.17.0.jar", "spdx-jackson-store-2.0.0-RC2.jar-3", "guava-33.4.5-jre.jar", "cyclonedx-core-java-10.2.1.jar", "sca-container-2025.3-SNAPSHOT", "springdoc-openapi-starter-webmvc-api-2.8.6.jar-2" ] - }, { - "ref" : "python-checks-5.2.0.20808.jar-2", - "dependsOn" : [ "python-frontend-5.2.0.20808.jar-2", "gson-2.12.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-python-plugin-5.2.0.20808.jar", - "dependsOn" : [ "sonar-xml-parsing-2.16.0.3141.jar", "python-frontend-5.2.0.20808.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "staxmate-2.0.1.jar", "sonar-performance-measure-2.16.0.3141.jar", "python-checks-5.2.0.20808.jar-2", "commons-lang-2.6.jar", "python-commons-5.2.0.20808.jar" ] - }, { - "ref" : "sonar-webserver-core-25.4-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "sonar-telemetry-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-webserver-core-25.4-SNAPSHOT" ] - }, { - "ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-6", - "dependsOn" : [ ] - }, { - "ref" : "sonar-main-25.4-SNAPSHOT", - "dependsOn" : [ "commons-io-2.18.0.jar", "logback-classic-1.5.18.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "hazelcast-5.4.0.jar", "spotbugs-annotations-4.9.3.jar", "snakeyaml-2.4.jar", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "log4j-api-2.24.3.jar", "sonar-process-25.4-SNAPSHOT", "log4j-to-slf4j-2.24.3.jar", "elasticsearch-rest-high-level-client-7.17.28.jar-6" ] - }, { - "ref" : "sonar-process-25.4-SNAPSHOT-6", - "dependsOn" : [ "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar-2", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "jul-to-slf4j-2.0.17.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "hazelcast-5.4.0.jar", "spotbugs-annotations-4.9.3.jar", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-process-25.4-SNAPSHOT-7", - "dependsOn" : [ "logback-classic-1.5.18.jar-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "jul-to-slf4j-2.0.17.jar", "slf4j-api-2.0.17.jar", "sonar-core-25.4-SNAPSHOT", "hazelcast-5.4.0.jar", "spotbugs-annotations-4.9.3.jar", "logback-core-1.5.18.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sca-application-2025.3-SNAPSHOT-2", - "dependsOn" : [ "java-spdx-library-2.0.0-RC2.jar", "hibernate-validator-8.0.2.Final.jar-2", "commons-lang3-3.17.0.jar", "spdx-jackson-store-2.0.0-RC2.jar-3", "guava-33.4.5-jre.jar", "cyclonedx-core-java-10.2.1.jar", "sca-container-2025.3-SNAPSHOT", "springdoc-openapi-starter-webmvc-api-2.8.6.jar-2", "spring-webmvc-6.2.5.jar-2" ] - }, { - "ref" : "org.jacoco.agent-0.8.11.jar", - "dependsOn" : [ ] - }, { - "ref" : "webapp-assets-2025.3.0.14738.jar", - "dependsOn" : [ ] - }, { - "ref" : "webapp-assets-enterprise-2025.3.0.14738.jar", - "dependsOn" : [ ] - }, { - "ref" : "dd-java-agent-1.30.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "woodstox-core-6.4.0.jar", - "dependsOn" : [ "stax2-api-4.2.1.jar" ] - }, { - "ref" : "xml-apis-1.4.01.jar", - "dependsOn" : [ ] - }, { - "ref" : "xercesImpl-2.12.2.jar", - "dependsOn" : [ "xml-apis-1.4.01.jar" ] - }, { - "ref" : "sonar-xml-parsing-2.16.0.3141.jar-2", - "dependsOn" : [ "woodstox-core-6.4.0.jar", "xercesImpl-2.12.2.jar", "jsr305-3.0.2.jar", "xml-apis-1.4.01.jar" ] - }, { - "ref" : "sonar-xml-plugin-2.12.0.5749.jar", - "dependsOn" : [ "sonar-xml-parsing-2.16.0.3141.jar-2", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-analyzer-test-commons-2.14.0.3087.jar-2", - "dependsOn" : [ "junit-4.13.2.jar-2", "jsr305-3.0.2.jar" ] - }, { - "ref" : "jcl-api-1.4.1.1493.jar", - "dependsOn" : [ ] - }, { - "ref" : "jcl-frontend-1.4.1.1493.jar", - "dependsOn" : [ "jcl-api-1.4.1.1493.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sslr-core-1.24.0.633.jar" ] - }, { - "ref" : "jcl-frontend-1.4.1.1493.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "jcl-checks-1.4.1.1493.jar", - "dependsOn" : [ "jcl-frontend-1.4.1.1493.jar-2", "jcl-api-1.4.1.1493.jar", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "jcl-api-1.4.1.1493.jar-2", - "dependsOn" : [ "jsr305-3.0.2.jar" ] - }, { - "ref" : "assertj-core-3.27.3.jar-2", - "dependsOn" : [ "byte-buddy-1.15.11.jar" ] - }, { - "ref" : "jcl-checks-testkit-1.4.1.1493.jar", - "dependsOn" : [ "sonar-analyzer-test-commons-2.14.0.3087.jar", "jcl-frontend-1.4.1.1493.jar-2", "assertj-core-3.27.3.jar-2" ] - }, { - "ref" : "sonar-jcl-plugin-1.4.1.1493.sonar-plugin", - "dependsOn" : [ "sonar-analyzer-test-commons-2.14.0.3087.jar-2", "sonar-analyzer-commons-2.16.0.3141.jar", "jcl-frontend-1.4.1.1493.jar", "jcl-checks-1.4.1.1493.jar", "jcl-api-1.4.1.1493.jar-2", "jcl-checks-testkit-1.4.1.1493.jar" ] - }, { - "ref" : "swagger-core-jakarta-2.2.29.jar-2", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "swagger-models-jakarta-2.2.29.jar", "commons-lang3-3.17.0.jar", "slf4j-api-2.0.17.jar", "jakarta.validation-api-3.0.2.jar", "swagger-annotations-jakarta-2.2.29.jar", "jakarta.xml.bind-api-3.0.1.jar", "jackson-dataformat-yaml-2.18.3.jar-2", "jackson-annotations-2.18.3.jar-2", "snakeyaml-2.4.jar", "jackson-datatype-jsr310-2.18.3.jar" ] - }, { - "ref" : "springdoc-openapi-starter-common-2.8.6.jar-2", - "dependsOn" : [ "swagger-core-jakarta-2.2.29.jar-2", "spring-boot-autoconfigure-3.4.4.jar" ] - }, { - "ref" : "springdoc-openapi-starter-webmvc-api-2.8.6.jar-3", - "dependsOn" : [ "springdoc-openapi-starter-common-2.8.6.jar-2", "spring-webmvc-6.2.5.jar" ] - }, { - "ref" : "github-api-1.327.jar-4", - "dependsOn" : [ "commons-lang3-3.17.0.jar", "commons-io-2.18.0.jar", "jackson-databind-2.18.3.jar-8" ] - }, { - "ref" : "commons-collections4-4.4.jar", - "dependsOn" : [ ] - }, { - "ref" : "itu-1.10.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "json-schema-validator-1.5.6.jar", - "dependsOn" : [ "jackson-databind-2.18.3.jar", "slf4j-api-2.0.17.jar", "itu-1.10.3.jar", "jackson-dataformat-yaml-2.18.3.jar" ] - }, { - "ref" : "packageurl-java-1.5.0.jar", - "dependsOn" : [ ] - }, { - "ref" : "cyclonedx-core-java-10.2.1.jar-2", - "dependsOn" : [ "commons-codec-1.18.0.jar", "commons-collections4-4.4.jar", "commons-lang3-3.17.0.jar", "json-schema-validator-1.5.6.jar", "jackson-dataformat-xml-2.18.3.jar-2", "packageurl-java-1.5.0.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "guava-33.4.5-jre.jar-3", - "dependsOn" : [ "failureaccess-1.0.3.jar", "jspecify-1.0.0.jar" ] - }, { - "ref" : "mssql-jdbc-12.10.0.jre11.jar", - "dependsOn" : [ ] - }, { - "ref" : "accessors-smart-2.5.2.jar", - "dependsOn" : [ "asm-9.7.1.jar" ] - }, { - "ref" : "json-smart-2.5.2.jar", - "dependsOn" : [ "accessors-smart-2.5.2.jar" ] - }, { - "ref" : "nimbus-jose-jwt-10.0.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "json-smart-2.5.2.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "lang-tag-1.7.jar", - "dependsOn" : [ ] - }, { - "ref" : "content-type-2.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "jcip-annotations-1.0-1.jar", - "dependsOn" : [ ] - }, { - "ref" : "oauth2-oidc-sdk-11.23.jar", - "dependsOn" : [ "nimbus-jose-jwt-10.0.1.jar", "json-smart-2.5.2.jar-2", "lang-tag-1.7.jar", "content-type-2.3.jar", "jcip-annotations-1.0-1.jar" ] - }, { - "ref" : "jackson-bom-2.18.3.pom-10", - "dependsOn" : [ "jackson-dataformat-smile-2.18.3.jar", "jackson-annotations-2.18.3.jar", "jackson-datatype-jsr310-2.18.3.jar", "jackson-databind-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-dataformat-toml-2.18.3.jar", "jackson-datatype-jdk8-2.18.3.jar", "jackson-dataformat-yaml-2.18.3.jar-2", "jackson-dataformat-cbor-2.18.3.jar" ] - }, { - "ref" : "jackson-databind-2.18.3.jar-10", - "dependsOn" : [ "jackson-annotations-2.18.3.jar-2", "jackson-core-2.18.3.jar", "jackson-bom-2.18.3.pom-10" ] - }, { - "ref" : "msal4j-1.19.1.jar", - "dependsOn" : [ "json-smart-2.5.2.jar", "slf4j-api-2.0.17.jar", "oauth2-oidc-sdk-11.23.jar", "jackson-databind-2.18.3.jar-10" ] - }, { - "ref" : "spring-web-6.2.5.jar-3", - "dependsOn" : [ "micrometer-observation-1.14.5.jar", "spring-beans-6.2.5.jar", "spring-core-6.2.5.jar" ] - }, { - "ref" : "spring-context-6.2.5.jar-4", - "dependsOn" : [ "micrometer-observation-1.14.5.jar-2", "spring-aop-6.2.5.jar-2", "spring-beans-6.2.5.jar", "spring-expression-6.2.5.jar-2", "spring-core-6.2.5.jar" ] - }, { - "ref" : "spring-webmvc-6.2.5.jar-4", - "dependsOn" : [ "spring-aop-6.2.5.jar", "spring-web-6.2.5.jar-3", "spring-beans-6.2.5.jar-2", "spring-expression-6.2.5.jar", "spring-context-6.2.5.jar-4", "spring-core-6.2.5.jar-2" ] - }, { - "ref" : "spring-security-web-6.4.4.jar-3", - "dependsOn" : [ "spring-aop-6.2.5.jar", "spring-beans-6.2.5.jar-2", "spring-expression-6.2.5.jar", "spring-context-6.2.5.jar-2", "spring-security-core-6.4.4.jar", "spring-core-6.2.5.jar-2", "spring-web-6.2.4.jar" ] - }, { - "ref" : "opensaml-security-api-4.3.2.jar-3", - "dependsOn" : [ "commons-codec-1.18.0.jar", "bcprov-jdk18on-1.80.jar", "opensaml-core-4.3.2.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "bcpkix-jdk18on-1.80.jar", "jsr305-3.0.2.jar", "java-support-8.4.2.jar", "opensaml-messaging-api-4.3.2.jar", "cryptacular-1.2.5.jar", "httpclient-4.5.14.jar-2" ] - }, { - "ref" : "opensaml-saml-impl-4.3.2.jar-3", - "dependsOn" : [ "httpclient-4.5.14.jar", "opensaml-storage-api-4.3.2.jar", "opensaml-core-4.3.2.jar-2", "xmlsec-2.3.4.jar-2", "jsr305-3.0.2.jar", "opensaml-profile-api-4.3.2.jar-2", "metrics-core-4.2.25.jar-2", "httpcore-4.4.16.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "opensaml-saml-api-4.3.2.jar", "opensaml-security-impl-4.3.2.jar", "java-support-8.4.2.jar-2", "velocity-engine-core-2.3.jar", "opensaml-soap-impl-4.3.2.jar", "opensaml-soap-api-4.3.2.jar-2", "commons-codec-1.18.0.jar", "opensaml-security-api-4.3.2.jar-3", "opensaml-xmlsec-impl-4.3.2.jar-2", "opensaml-messaging-api-4.3.2.jar-2", "opensaml-xmlsec-api-4.3.2.jar-3" ] - }, { - "ref" : "spring-security-saml2-service-provider-6.4.4.jar-4", - "dependsOn" : [ "opensaml-saml-api-4.3.2.jar-3", "spring-security-web-6.4.4.jar-3", "opensaml-saml-impl-4.3.2.jar-3" ] - }, { - "ref" : "commons-digester-2.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "commons-validator-1.9.0.jar", - "dependsOn" : [ "commons-digester-2.1.jar", "commons-logging-1.3.5.jar" ] - }, { - "ref" : "kotlin-stdlib-jdk8-1.9.10.jar-5", - "dependsOn" : [ "kotlin-stdlib-jdk7-1.9.10.jar-3", "kotlin-stdlib-2.1.10.jar" ] - }, { - "ref" : "kotlin-stdlib-jdk7-1.9.10.jar-4", - "dependsOn" : [ "kotlin-stdlib-2.1.10.jar" ] - }, { - "ref" : "kotlin-stdlib-2.1.10.jar-3", - "dependsOn" : [ "kotlin-stdlib-common-2.1.10.pom-2", "kotlin-stdlib-jdk8-1.9.10.jar-5", "kotlin-stdlib-jdk7-1.9.10.jar-4", "annotations-13.0.jar" ] - }, { - "ref" : "json-sKema-0.21.0.jar", - "dependsOn" : [ "commons-validator-1.9.0.jar", "kotlin-stdlib-2.1.10.jar-3", "snakeyaml-2.4.jar" ] - }, { - "ref" : "protoc-4.30.1.exe", - "dependsOn" : [ ] - }, { - "ref" : "asm-9.6.jar", - "dependsOn" : [ ] - }, { - "ref" : "asm-tree-9.6.jar", - "dependsOn" : [ "asm-9.6.jar" ] - }, { - "ref" : "asm-tree-9.6.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "asm-commons-9.6.jar", - "dependsOn" : [ "asm-9.6.jar", "asm-tree-9.6.jar-2" ] - }, { - "ref" : "org.jacoco.core-0.8.11.jar", - "dependsOn" : [ "asm-9.6.jar", "asm-tree-9.6.jar", "asm-commons-9.6.jar" ] - }, { - "ref" : "org.jacoco.core-0.8.11.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "org.jacoco.report-0.8.11.jar", - "dependsOn" : [ "org.jacoco.core-0.8.11.jar-2" ] - }, { - "ref" : "org.jacoco.ant-0.8.11.jar", - "dependsOn" : [ "org.jacoco.agent-0.8.11.jar", "org.jacoco.core-0.8.11.jar", "org.jacoco.report-0.8.11.jar" ] - }, { - "ref" : "pli-squid-1.16.0.5325.jar", - "dependsOn" : [ "sslr-core-1.24.0.633.jar" ] - }, { - "ref" : "pli-squid-1.16.0.5325.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "pli-checks-1.16.0.5325.jar", - "dependsOn" : [ "sslr-xpath-1.24.0.633.jar-2", "sslr-core-1.24.0.633.jar", "pli-squid-1.16.0.5325.jar-2" ] - }, { - "ref" : "sonar-pli-plugin-1.16.0.5325.sonar-plugin", - "dependsOn" : [ "pli-squid-1.16.0.5325.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "pli-checks-1.16.0.5325.jar" ] - }, { - "ref" : "sonar-cfamily-plugin-6.65.0.81949.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-cfamily-dependencies-plugin-6.65.0.81949.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-kotlin-plugin-3.0.1.6889.jar", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-8.16.3-no-jdk.tar.gz", - "dependsOn" : [ ] - }, { - "ref" : "sonar-text-enterprise-plugin-2.21.1.5779.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-text-developer-plugin-2.21.1.5779.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-6", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "gson-2.12.1.jar", "sonar-auth-ldap-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "jjwt-impl-0.12.6.jar-2", "sonar-process-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar" ] - }, { - "ref" : "sonar-webserver-ws-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "tomcat-embed-core-10.1.39.jar", "jakarta.servlet-api-6.1.0.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-ws-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-webserver-auth-25.4-SNAPSHOT", "json-20250107.jar", "sonar-webserver-ws-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar" ] - }, { - "ref" : "java-jwt-4.5.0.jar-2", - "dependsOn" : [ "jackson-core-2.18.3.jar-2", "jackson-databind-2.18.3.jar" ] - }, { - "ref" : "sonar-alm-client-25.4-SNAPSHOT-4", - "dependsOn" : [ "java-jwt-4.5.0.jar-2", "okhttp-4.12.0.jar", "sonar-ws-25.4-SNAPSHOT", "github-api-1.327.jar", "sonar-auth-gitlab-25.4-SNAPSHOT", "sonar-webserver-api-25.4-SNAPSHOT-3", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "sonar-auth-github-25.4-SNAPSHOT", "bcpkix-jdk18on-1.80.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-webserver-auth-25.4-SNAPSHOT-6", "sonar-webserver-common-25.4-SNAPSHOT-2", "sonar-webserver-es-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "jakarta.servlet-api-6.1.0.jar", "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-2", "simpleclient-servlet-0.16.0.jar", "sonar-webserver-ws-25.4-SNAPSHOT-2", "sonar-auth-saml-25.4-SNAPSHOT-2", "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-alm-client-25.4-SNAPSHOT-4", "sonar-ce-task-25.4-SNAPSHOT", "simpleclient-common-0.16.0.jar-2", "guava-33.4.5-jre.jar" ] - }, { - "ref" : "kotlin-stdlib-2.1.10.jar-4", - "dependsOn" : [ "annotations-13.0.jar", "kotlin-stdlib-jdk7-1.9.10.jar-3", "kotlin-stdlib-jdk8-1.9.10.jar", "kotlin-stdlib-common-2.1.10.pom-2" ] - }, { - "ref" : "json-sKema-0.21.0.jar-2", - "dependsOn" : [ "commons-validator-1.9.0.jar", "kotlin-stdlib-2.1.10.jar-4", "snakeyaml-2.4.jar" ] - }, { - "ref" : "tomcat-embed-core-10.1.39.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-ws-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "tomcat-embed-core-10.1.39.jar-2", "jakarta.servlet-api-6.1.0.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-ws-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT" ] - }, { - "ref" : "opensaml-saml-impl-4.3.2.jar-4", - "dependsOn" : [ "java-support-8.4.2.jar-2", "opensaml-storage-api-4.3.2.jar", "httpclient-4.5.14.jar-2", "velocity-engine-core-2.3.jar", "opensaml-core-4.3.2.jar-2", "opensaml-profile-api-4.3.2.jar-2", "jsr305-3.0.2.jar", "metrics-core-4.2.25.jar-2", "opensaml-messaging-api-4.3.2.jar-2", "opensaml-xmlsec-api-4.3.2.jar-2", "opensaml-soap-impl-4.3.2.jar", "opensaml-soap-api-4.3.2.jar-2", "opensaml-security-api-4.3.2.jar-2", "commons-codec-1.18.0.jar", "opensaml-security-impl-4.3.2.jar", "opensaml-saml-api-4.3.2.jar", "slf4j-api-2.0.17.jar", "guava-33.4.5-jre.jar", "httpcore-4.4.16.jar", "opensaml-xmlsec-impl-4.3.2.jar" ] - }, { - "ref" : "spring-security-saml2-service-provider-6.4.4.jar-5", - "dependsOn" : [ "spring-security-web-6.4.4.jar", "opensaml-saml-api-4.3.2.jar-2", "opensaml-saml-impl-4.3.2.jar-4" ] - }, { - "ref" : "sonar-auth-saml-25.4-SNAPSHOT-6", - "dependsOn" : [ "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "okhttp-4.12.0.jar", "spring-security-saml2-service-provider-6.4.4.jar-5", "sonar-webserver-api-25.4-SNAPSHOT-3", "json-20250107.jar" ] - }, { - "ref" : "jjwt-jackson-0.12.6.jar-3", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-7", - "dependsOn" : [ "sonar-webserver-api-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "gson-2.12.1.jar", "sonar-auth-ldap-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "jjwt-jackson-0.12.6.jar-3", "sonar-plugin-api-11.3.0.2824.jar", "jjwt-impl-0.12.6.jar-2", "sonar-process-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar" ] - }, { - "ref" : "sonar-alm-client-25.4-SNAPSHOT-5", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-common-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-alm-client-25.4-SNAPSHOT-5", "sonar-auth-gitlab-25.4-SNAPSHOT-2", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-webserver-ws-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-webserver-auth-25.4-SNAPSHOT", "guava-33.4.5-jre.jar" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-ce-task-25.4-SNAPSHOT-2", "sonar-alm-client-25.4-SNAPSHOT-4", "commons-text-1.13.0.jar", "simpleclient-common-0.16.0.jar-2", "guava-33.4.5-jre.jar", "json-sKema-0.21.0.jar-2", "simpleclient-servlet-0.16.0.jar", "sonar-webserver-ws-25.4-SNAPSHOT-3", "sonar-auth-saml-25.4-SNAPSHOT-6", "sonar-webserver-auth-25.4-SNAPSHOT-7", "sonar-webserver-common-25.4-SNAPSHOT-3", "sonar-webserver-es-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "jakarta.servlet-api-6.1.0.jar", "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-auth-saml-25.4-SNAPSHOT-7", - "dependsOn" : [ ] - }, { - "ref" : "github-api-1.327.jar-5", - "dependsOn" : [ ] - }, { - "ref" : "sonar-alm-client-25.4-SNAPSHOT-6", - "dependsOn" : [ "bcpkix-jdk18on-1.80.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "sonar-auth-gitlab-25.4-SNAPSHOT-2", "github-api-1.327.jar-5", "okhttp-4.12.0.jar", "sonar-ws-25.4-SNAPSHOT", "java-jwt-4.5.0.jar-2", "sonar-auth-github-25.4-SNAPSHOT-3" ] - }, { - "ref" : "sonar-auth-ldap-25.4-SNAPSHOT-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-8", - "dependsOn" : [ "jjwt-impl-0.12.6.jar", "sonar-process-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar", "sonar-auth-ldap-25.4-SNAPSHOT-2", "jakarta.servlet-api-6.1.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "gson-2.12.1.jar" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-4", - "dependsOn" : [ "guava-33.4.5-jre.jar", "sonar-webserver-common-25.4-SNAPSHOT-2", "sonar-webserver-es-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "jakarta.servlet-api-6.1.0.jar", "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-2", "simpleclient-servlet-0.16.0.jar", "simpleclient-common-0.16.0.jar-2", "sonar-webserver-ws-25.4-SNAPSHOT-2", "sonar-auth-saml-25.4-SNAPSHOT-7", "sonar-ce-task-25.4-SNAPSHOT-2", "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-alm-client-25.4-SNAPSHOT-6", "sonar-webserver-auth-25.4-SNAPSHOT-8" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-5", - "dependsOn" : [ "sonar-webserver-common-25.4-SNAPSHOT-2", "sonar-webserver-es-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "jakarta.servlet-api-6.1.0.jar", "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "sonar-auth-saml-25.4-SNAPSHOT-7", "sonar-alm-client-25.4-SNAPSHOT-4", "sonar-ce-task-25.4-SNAPSHOT", "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "sonar-webserver-auth-25.4-SNAPSHOT-6", "simpleclient-common-0.16.0.jar-2", "guava-33.4.5-jre.jar", "simpleclient-servlet-0.16.0.jar", "sonar-webserver-ws-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-6", - "dependsOn" : [ "sonar-webserver-auth-25.4-SNAPSHOT-6", "sonar-webserver-common-25.4-SNAPSHOT-2", "sonar-webserver-es-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-scanner-protocol-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-webserver-ws-25.4-SNAPSHOT-2", "sonar-auth-saml-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "sonar-alm-client-25.4-SNAPSHOT-4", "sonar-ce-task-25.4-SNAPSHOT", "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "guava-33.4.5-jre.jar", "simpleclient-servlet-0.16.0.jar", "simpleclient-common-0.16.0.jar-2" ] - }, { - "ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-8", - "dependsOn" : [ "jakarta.servlet-api-6.1.0.jar", "sonar-auth-common-25.4-SNAPSHOT-3", "scribejava-apis-8.3.3.jar", "gson-2.12.1.jar", "okhttp-4.12.0.jar", "scribejava-core-8.3.3.jar", "spotbugs-annotations-4.9.3.jar", "sonar-server-common-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-alm-client-25.4-SNAPSHOT-7", - "dependsOn" : [ "java-jwt-4.5.0.jar-2", "sonar-auth-github-25.4-SNAPSHOT-3", "bcpkix-jdk18on-1.80.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "okhttp-4.12.0.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-auth-gitlab-25.4-SNAPSHOT-8", "github-api-1.327.jar-5", "sonar-webserver-api-25.4-SNAPSHOT-3", "commons-codec-1.18.0.jar", "gson-2.12.1.jar" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-7", - "dependsOn" : [ "sonar-webserver-auth-25.4-SNAPSHOT-6", "sonar-webserver-common-25.4-SNAPSHOT-2", "sonar-webserver-es-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "jakarta.servlet-api-6.1.0.jar", "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-2", "simpleclient-common-0.16.0.jar-2", "guava-33.4.5-jre.jar", "sonar-webserver-ws-25.4-SNAPSHOT-2", "simpleclient-servlet-0.16.0.jar", "sonar-auth-saml-25.4-SNAPSHOT-2", "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-alm-client-25.4-SNAPSHOT-7", "sonar-ce-task-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-8", - "dependsOn" : [ "sonar-webserver-auth-25.4-SNAPSHOT-5", "sonar-webserver-common-25.4-SNAPSHOT-3", "sonar-webserver-es-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-scanner-protocol-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-alm-client-25.4-SNAPSHOT-7", "sonar-ce-task-25.4-SNAPSHOT", "json-sKema-0.21.0.jar-2", "sonar-webserver-ws-25.4-SNAPSHOT-2", "sonar-auth-saml-25.4-SNAPSHOT-6", "commons-text-1.13.0.jar-2", "simpleclient-servlet-0.16.0.jar", "simpleclient-common-0.16.0.jar-2", "guava-33.4.5-jre.jar" ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-9", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "gson-2.12.1.jar", "jakarta.servlet-api-6.1.0.jar", "jjwt-jackson-0.12.6.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "jjwt-impl-0.12.6.jar-2", "sonar-process-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar", "sonar-auth-ldap-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-9", - "dependsOn" : [ "sonar-webserver-auth-25.4-SNAPSHOT-9", "sonar-webserver-common-25.4-SNAPSHOT-3", "sonar-webserver-es-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-scanner-protocol-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-process-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "commons-text-1.13.0.jar-2", "simpleclient-servlet-0.16.0.jar", "simpleclient-common-0.16.0.jar-2", "json-sKema-0.21.0.jar-2", "sonar-webserver-ws-25.4-SNAPSHOT-2", "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-auth-saml-25.4-SNAPSHOT-7", "sonar-alm-client-25.4-SNAPSHOT-6", "sonar-ce-task-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-alm-client-25.4-SNAPSHOT-8", - "dependsOn" : [ "okhttp-4.12.0.jar", "github-api-1.327.jar", "sonar-auth-gitlab-25.4-SNAPSHOT-8", "bcpkix-jdk18on-1.80.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "sonar-auth-github-25.4-SNAPSHOT", "sonar-ws-25.4-SNAPSHOT", "java-jwt-4.5.0.jar-2" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-10", - "dependsOn" : [ "sonar-webserver-auth-25.4-SNAPSHOT-6", "sonar-webserver-common-25.4-SNAPSHOT-2", "sonar-webserver-es-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "jakarta.servlet-api-6.1.0.jar", "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-2", "sonar-webserver-ws-25.4-SNAPSHOT-2", "sonar-auth-saml-25.4-SNAPSHOT-2", "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-alm-client-25.4-SNAPSHOT-8", "sonar-ce-task-25.4-SNAPSHOT", "simpleclient-common-0.16.0.jar-2", "guava-33.4.5-jre.jar", "simpleclient-servlet-0.16.0.jar" ] - }, { - "ref" : "sonar-go-plugin-1.21.1.1670.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-go-enterprise-plugin-1.21.1.1670.jar", - "dependsOn" : [ ] - }, { - "ref" : "core-extension-github-provisioning-2025.3-SNAPSHOT", - "dependsOn" : [ "core-extension-developer-server-2025.3-SNAPSHOT", "core-extension-license-2025.3-SNAPSHOT", "license-common-2025.3-SNAPSHOT" ] - }, { - "ref" : "core-extension-ha-2025.3-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "opensaml-saml-impl-4.3.2.jar-5", - "dependsOn" : [ "opensaml-messaging-api-4.3.2.jar-2", "opensaml-xmlsec-api-4.3.2.jar-3", "opensaml-soap-impl-4.3.2.jar", "opensaml-soap-api-4.3.2.jar-2", "commons-codec-1.18.0.jar", "opensaml-security-api-4.3.2.jar-2", "opensaml-saml-api-4.3.2.jar", "slf4j-api-2.0.17.jar", "guava-33.4.5-jre.jar", "httpcore-4.4.16.jar", "opensaml-xmlsec-impl-4.3.2.jar-2", "opensaml-security-impl-4.3.2.jar", "velocity-engine-core-2.3.jar", "java-support-8.4.2.jar-2", "opensaml-storage-api-4.3.2.jar", "httpclient-4.5.14.jar-2", "xmlsec-2.3.4.jar-2", "opensaml-core-4.3.2.jar-2", "opensaml-profile-api-4.3.2.jar-2", "jsr305-3.0.2.jar", "metrics-core-4.2.25.jar-2" ] - }, { - "ref" : "spring-security-saml2-service-provider-6.4.4.jar-6", - "dependsOn" : [ "opensaml-saml-impl-4.3.2.jar-5", "spring-security-web-6.4.4.jar-2", "opensaml-saml-api-4.3.2.jar-3" ] - }, { - "ref" : "sonar-auth-saml-25.4-SNAPSHOT-8", - "dependsOn" : [ "sonar-webserver-api-25.4-SNAPSHOT-2", "json-20250107.jar", "spring-security-saml2-service-provider-6.4.4.jar-6", "okhttp-4.12.0.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar" ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-13", - "dependsOn" : [ "commons-codec-1.18.0.jar", "sonar-db-core-25.4-SNAPSHOT-4", "guava-33.4.5-jre.jar", "staxmate-2.4.1.jar-2", "commons-lang3-3.17.0.jar", "sonar-telemetry-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-process-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-12", - "dependsOn" : [ "sonar-scanner-protocol-25.4-SNAPSHOT-2", "diffutils-1.3.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "mybatis-3.5.19.jar", "commons-lang3-3.17.0.jar", "sonar-ce-task-25.4-SNAPSHOT", "core-3.1.0.jar", "sonar-duplications-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-server-common-25.4-SNAPSHOT", "sonar-db-migration-25.4-SNAPSHOT-13", "commons-text-1.13.0.jar", "protobuf-java-4.30.1.jar", "guava-33.4.5-jre.jar", "jul-to-slf4j-2.0.17.jar-2", "gson-2.12.1.jar", "commons-codec-1.18.0.jar", "sonar-db-dao-25.4-SNAPSHOT-4", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-2", - "dependsOn" : [ ] - }, { - "ref" : "h2-2.3.232.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-es-25.4-SNAPSHOT-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-webserver-core-25.4-SNAPSHOT-2", - "dependsOn" : [ "jjwt-jackson-0.12.6.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-webserver-pushapi-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "HikariCP-6.2.1.jar-2", "slf4j-api-2.0.17.jar", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", "h2-2.3.232.jar", "sonar-db-migration-25.4-SNAPSHOT", "logback-classic-1.5.18.jar", "sonar-process-25.4-SNAPSHOT", "sonar-duplications-25.4-SNAPSHOT-3", "jjwt-api-0.12.6.jar", "sonar-update-center-common-1.35.0.2835.jar-2", "logback-core-1.5.18.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "tomcat-embed-core-10.1.39.jar-2", "jul-to-slf4j-2.0.17.jar-2", "protobuf-java-4.30.1.jar", "gson-2.12.1.jar", "sonar-server-common-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT", "common-2.0.3.jar", "sonar-webserver-es-25.4-SNAPSHOT-2", "log4j-api-2.24.3.jar", "sonar-ce-task-25.4-SNAPSHOT", "sonar-ws-25.4-SNAPSHOT", "sonar-markdown-25.4-SNAPSHOT", "jjwt-impl-0.12.6.jar", "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3" ] - }, { - "ref" : "simpleclient-common-0.16.0.jar-3", - "dependsOn" : [ "simpleclient-0.16.0.jar" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-11", - "dependsOn" : [ "sonar-webserver-pushapi-25.4-SNAPSHOT-2", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-auth-saml-25.4-SNAPSHOT-7", "sonar-webserver-ws-25.4-SNAPSHOT", "sonar-webserver-common-25.4-SNAPSHOT-3", "sonar-webserver-auth-25.4-SNAPSHOT", "sonar-alm-client-25.4-SNAPSHOT-5", "sonar-ce-task-25.4-SNAPSHOT", "sonar-webserver-es-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-scanner-protocol-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "guava-33.4.5-jre.jar", "commons-text-1.13.0.jar-2", "simpleclient-servlet-0.16.0.jar", "simpleclient-common-0.16.0.jar-3", "json-sKema-0.21.0.jar-2" ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-10", - "dependsOn" : [ "sonar-webserver-api-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "gson-2.12.1.jar", "jjwt-impl-0.12.6.jar-2", "sonar-process-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar", "sonar-auth-ldap-25.4-SNAPSHOT-2", "jakarta.servlet-api-6.1.0.jar", "jjwt-jackson-0.12.6.jar-3", "sonar-plugin-api-11.3.0.2824.jar" ] - }, { - "ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-webserver-auth-25.4-SNAPSHOT-10", "json-20250107.jar", "sonar-webserver-ws-25.4-SNAPSHOT-3", "jakarta.servlet-api-6.1.0.jar" ] - }, { - "ref" : "sonar-alm-client-25.4-SNAPSHOT-9", - "dependsOn" : [ "okhttp-4.12.0.jar", "sonar-ws-25.4-SNAPSHOT", "github-api-1.327.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "sonar-auth-gitlab-25.4-SNAPSHOT-2", "java-jwt-4.5.0.jar-2", "sonar-auth-github-25.4-SNAPSHOT-3", "bcpkix-jdk18on-1.80.jar", "guava-33.4.5-jre.jar" ] - }, { - "ref" : "sonar-webserver-monitoring-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "simpleclient-0.16.0.jar-2", "sonar-alm-client-25.4-SNAPSHOT-9", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-webserver-pushapi-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-webserver-25.4-SNAPSHOT", - "dependsOn" : [ "guava-33.4.5-jre.jar-2", "logback-access-tomcat-2.0.6.jar", "sonar-core-25.4-SNAPSHOT", "tomcat-embed-core-10.1.39.jar", "sonar-auth-saml-25.4-SNAPSHOT-8", "sonar-auth-gitlab-25.4-SNAPSHOT-3", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-12", "sonar-webserver-core-25.4-SNAPSHOT-2", "sonar-telemetry-25.4-SNAPSHOT", "sonar-auth-bitbucket-25.4-SNAPSHOT", "sonar-auth-ldap-25.4-SNAPSHOT", "sonar-auth-github-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT-11", "sonar-process-25.4-SNAPSHOT", "sonar-webserver-pushapi-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-webserver-monitoring-25.4-SNAPSHOT", "sonar-webserver-webapi-v2-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-main-25.4-SNAPSHOT-2", - "dependsOn" : [ "logback-classic-1.5.18.jar", "log4j-api-2.24.3.jar", "commons-lang3-3.17.0.jar", "logback-core-1.5.18.jar", "snakeyaml-2.4.jar", "hazelcast-5.4.0.jar", "sonar-core-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar", "guava-33.4.5-jre.jar", "commons-io-2.18.0.jar", "elasticsearch-rest-high-level-client-7.17.28.jar-6", "log4j-to-slf4j-2.24.3.jar", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "flex-squid-2.14.0.5032.jar", - "dependsOn" : [ ] - }, { - "ref" : "flex-checks-2.14.0.5032.jar", - "dependsOn" : [ "sslr-xpath-1.24.0.633.jar", "flex-squid-2.14.0.5032.jar", "sonar-analyzer-recognizers-2.16.0.3141.jar" ] - }, { - "ref" : "stax-api-1.0-2.jar", - "dependsOn" : [ ] - }, { - "ref" : "woodstox-core-lgpl-4.4.1.jar", - "dependsOn" : [ "stax2-api-4.2.1.jar", "stax-api-1.0-2.jar" ] - }, { - "ref" : "flex-squid-2.14.0.5032.jar-2", - "dependsOn" : [ "sslr-core-1.24.0.633.jar" ] - }, { - "ref" : "stax-api-1.0.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "staxmate-2.0.1.jar-2", - "dependsOn" : [ "stax-api-1.0.1.jar", "stax2-api-4.2.1.jar" ] - }, { - "ref" : "sonar-flex-plugin-2.14.0.5032.jar", - "dependsOn" : [ "flex-checks-2.14.0.5032.jar", "woodstox-core-lgpl-4.4.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "flex-squid-2.14.0.5032.jar-2", "staxmate-2.0.1.jar-2" ] - }, { - "ref" : "msal4j-1.19.1.jar-2", - "dependsOn" : [ "oauth2-oidc-sdk-11.23.jar", "json-smart-2.5.2.jar", "jackson-databind-2.18.3.jar", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sonar-html-plugin-3.19.0.5695.jar-2", - "dependsOn" : [ "jakarta.el-4.0.2.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-analyzer-recognizers-2.16.0.3141.jar-2", "sslr-core-1.24.0.633.jar" ] - }, { - "ref" : "sonar-scanner-engine-shaded-25.4-SNAPSHOT-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-csharp-core-10.7.0.110445.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-csharp-plugin-10.7.0.110445.jar", - "dependsOn" : [ "sonar-dotnet-core-10.7.0.110445.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-csharp-core-10.7.0.110445.jar-2" ] - }, { - "ref" : "sonar-vbnet-core-10.7.0.110445.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-vbnet-plugin-10.7.0.110445.jar-2", - "dependsOn" : [ "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-vbnet-core-10.7.0.110445.jar-2", "sonar-dotnet-core-10.7.0.110445.jar" ] - }, { - "ref" : "java-checks-8.11.0.38440.jar", - "dependsOn" : [ ] - }, { - "ref" : "java-checks-aws-8.11.0.38440.jar", - "dependsOn" : [ ] - }, { - "ref" : "check-list-8.11.0.38440.jar", - "dependsOn" : [ "java-checks-8.11.0.38440.jar", "gson-2.12.1.jar", "java-checks-aws-8.11.0.38440.jar" ] - }, { - "ref" : "java-checks-common-8.11.0.38440.jar", - "dependsOn" : [ ] - }, { - "ref" : "java-frontend-8.11.0.38440.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "java-checks-aws-8.11.0.38440.jar-2", - "dependsOn" : [ "java-checks-common-8.11.0.38440.jar", "commons-lang3-3.17.0.jar", "sonar-analyzer-recognizers-2.16.0.3141.jar", "java-frontend-8.11.0.38440.jar-2" ] - }, { - "ref" : "tomcat-embed-el-10.1.39.jar", - "dependsOn" : [ ] - }, { - "ref" : "tomcat-embed-jasper-10.1.39.jar", - "dependsOn" : [ "tomcat-embed-el-10.1.39.jar", "tomcat-embed-core-10.1.39.jar-2" ] - }, { - "ref" : "java-jsp-8.11.0.38440.jar", - "dependsOn" : [ "tomcat-embed-jasper-10.1.39.jar", "java-frontend-8.11.0.38440.jar-2" ] - }, { - "ref" : "java-surefire-8.11.0.38440.jar", - "dependsOn" : [ "java-frontend-8.11.0.38440.jar-2", "sonar-xml-parsing-2.16.0.3141.jar", "staxmate-2.4.1.jar-2" ] - }, { - "ref" : "java-checks-common-8.11.0.38440.jar-2", - "dependsOn" : [ "commons-lang3-3.17.0.jar", "sonar-analyzer-recognizers-2.16.0.3141.jar", "java-frontend-8.11.0.38440.jar-2" ] - }, { - "ref" : "java-checks-8.11.0.38440.jar-2", - "dependsOn" : [ "java-frontend-8.11.0.38440.jar-2", "java-checks-common-8.11.0.38440.jar-2", "spring-expression-6.2.5.jar-2", "commons-lang3-3.17.0.jar", "sonar-analyzer-recognizers-2.16.0.3141.jar" ] - }, { - "ref" : "external-reports-8.11.0.38440.jar", - "dependsOn" : [ "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-xml-parsing-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-java-plugin-8.11.0.38440.jar", - "dependsOn" : [ "check-list-8.11.0.38440.jar", "java-checks-aws-8.11.0.38440.jar-2", "java-jsp-8.11.0.38440.jar", "java-surefire-8.11.0.38440.jar", "sonar-xml-parsing-2.16.0.3141.jar", "java-checks-8.11.0.38440.jar-2", "sonar-analyzer-commons-2.16.0.3141.jar", "external-reports-8.11.0.38440.jar", "java-frontend-8.11.0.38440.jar-2", "sonar-performance-measure-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-process-25.4-SNAPSHOT-8", - "dependsOn" : [ "jul-to-slf4j-2.0.17.jar", "protobuf-java-4.30.1.jar", "guava-33.4.5-jre.jar", "gson-2.12.1.jar", "commons-codec-1.18.0.jar", "logback-classic-1.5.18.jar", "commons-io-2.18.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "commons-lang3-3.17.0.jar", "logback-core-1.5.18.jar", "hazelcast-5.4.0.jar", "sonar-core-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "java-frontend-8.11.0.38440.jar-3", - "dependsOn" : [ "sonar-regex-parsing-2.16.0.3141.jar-2", "sonar-performance-measure-2.16.0.3141.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "commons-lang3-3.17.0.jar", "sslr-core-1.24.0.633.jar", "jdt-package-1.3.0.89.jar" ] - }, { - "ref" : "sonar-java-symbolic-execution-plugin-8.11.0.38440.jar-2", - "dependsOn" : [ "sonar-analyzer-commons-2.16.0.3141.jar", "java-frontend-8.11.0.38440.jar-3", "sonar-performance-measure-2.16.0.3141.jar-2" ] - }, { - "ref" : "sonar-ce-common-25.4-SNAPSHOT-4", - "dependsOn" : [ "jul-to-slf4j-2.0.17.jar-2", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-ce-task-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sonar-ce-task-25.4-SNAPSHOT-4", - "dependsOn" : [ "jul-to-slf4j-2.0.17.jar-2", "guava-33.4.5-jre.jar", "sonar-server-common-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-23", - "dependsOn" : [ "commons-email2-jakarta-2.0.0-M1.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "sonar-core-25.4-SNAPSHOT", "sonar-telemetry-core-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar", "scribejava-core-8.3.3.jar", "commons-io-2.18.0.jar", "elasticsearch-rest-high-level-client-7.17.28.jar-6", "sonar-process-25.4-SNAPSHOT", "scribejava-apis-8.3.3.jar", "sonar-plugin-api-11.3.0.2824.jar", "commons-lang3-3.17.0.jar", "bcprov-jdk18on-1.80.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-markdown-25.4-SNAPSHOT-3", "okhttp-4.12.0.jar", "guava-33.4.5-jre.jar", "jackson-databind-2.18.3.jar", "sonar-db-migration-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-ce-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-ce-common-25.4-SNAPSHOT-4", "sonar-ws-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "sonar-process-25.4-SNAPSHOT", "protobuf-java-4.30.1.jar", "guava-33.4.5-jre.jar", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", "sonar-ce-task-25.4-SNAPSHOT-4", "sonar-plugin-api-impl-25.4-SNAPSHOT", "hazelcast-5.4.0.jar", "HikariCP-6.2.1.jar", "sonar-core-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT-23", "sonar-plugin-api-11.3.0.2824.jar" ] - }, { - "ref" : "python-commons-5.2.0.20808.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "sonar-python-plugin-5.2.0.20808.jar-2", - "dependsOn" : [ "python-frontend-5.2.0.20808.jar-2", "sonar-xml-parsing-2.16.0.3141.jar", "python-commons-5.2.0.20808.jar-2", "python-checks-5.2.0.20808.jar-2", "sonar-performance-measure-2.16.0.3141.jar", "staxmate-2.0.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "commons-lang-2.6.jar" ] - }, { - "ref" : "sonar-auth-saml-25.4-SNAPSHOT-9", - "dependsOn" : [ "spring-security-saml2-service-provider-6.4.4.jar-6" ] - }, { - "ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-9", - "dependsOn" : [ "scribejava-core-8.3.3.jar-2", "sonar-server-common-25.4-SNAPSHOT", "sonar-auth-common-25.4-SNAPSHOT-3", "scribejava-apis-8.3.3.jar-2", "gson-2.12.1.jar" ] - }, { - "ref" : "sonar-webserver-core-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", "jjwt-jackson-0.12.6.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-webserver-pushapi-25.4-SNAPSHOT-2", "HikariCP-6.2.1.jar-2", "slf4j-api-2.0.17.jar", "jul-to-slf4j-2.0.17.jar-2", "protobuf-java-4.30.1.jar", "gson-2.12.1.jar", "sonar-db-migration-25.4-SNAPSHOT", "logback-classic-1.5.18.jar", "sonar-process-25.4-SNAPSHOT", "sonar-duplications-25.4-SNAPSHOT-3", "jjwt-api-0.12.6.jar", "sonar-webserver-es-25.4-SNAPSHOT-2", "log4j-api-2.24.3.jar", "sonar-ce-task-25.4-SNAPSHOT", "sonar-update-center-common-1.35.0.2835.jar-2", "logback-core-1.5.18.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "tomcat-embed-core-10.1.39.jar-2", "jjwt-impl-0.12.6.jar", "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-server-common-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT", "common-2.0.3.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-markdown-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-webserver-webapi-v2-25.4-SNAPSHOT-6", - "dependsOn" : [ "springdoc-openapi-starter-webmvc-api-2.8.6.jar-2", "sonar-db-dao-25.4-SNAPSHOT-3", "sonar-webserver-common-25.4-SNAPSHOT", "hibernate-validator-8.0.2.Final.jar-3", "spring-webmvc-6.2.5.jar-2" ] - }, { - "ref" : "sonar-telemetry-core-25.4-SNAPSHOT-7", - "dependsOn" : [ "sonar-process-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "jackson-databind-2.18.3.jar" ] - }, { - "ref" : "sonar-telemetry-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "sonar-telemetry-core-25.4-SNAPSHOT-7", "sonar-webserver-core-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-auth-ldap-25.4-SNAPSHOT-3", - "dependsOn" : [ "commons-lang3-3.17.0.jar" ] - }, { - "ref" : "sonar-auth-bitbucket-25.4-SNAPSHOT-2", - "dependsOn" : [ "scribejava-core-8.3.3.jar", "sonar-auth-common-25.4-SNAPSHOT-3", "scribejava-apis-8.3.3.jar", "gson-2.12.1.jar" ] - }, { - "ref" : "sonar-webserver-es-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "sonar-server-common-25.4-SNAPSHOT", "sonar-webserver-auth-25.4-SNAPSHOT", "guava-33.4.5-jre.jar" ] - }, { - "ref" : "json-sKema-0.21.0.jar-3", - "dependsOn" : [ "snakeyaml-2.4.jar", "kotlin-stdlib-2.1.10.jar", "commons-validator-1.9.0.jar" ] - }, { - "ref" : "sonar-webserver-common-25.4-SNAPSHOT-4", - "dependsOn" : [ "sonar-db-dao-25.4-SNAPSHOT-3", "sonar-webserver-ws-25.4-SNAPSHOT", "sonar-webserver-auth-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "sonar-alm-client-25.4-SNAPSHOT-5", "sonar-auth-gitlab-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-12", - "dependsOn" : [ "sonar-webserver-es-25.4-SNAPSHOT-3", "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-scanner-protocol-25.4-SNAPSHOT", "simpleclient-servlet-0.16.0.jar", "simpleclient-common-0.16.0.jar-3", "guava-33.4.5-jre.jar", "commons-text-1.13.0.jar-2", "json-sKema-0.21.0.jar-3", "sonar-webserver-common-25.4-SNAPSHOT-4", "sonar-webserver-auth-25.4-SNAPSHOT", "sonar-alm-client-25.4-SNAPSHOT-5", "sonar-ce-task-25.4-SNAPSHOT", "sonar-webserver-pushapi-25.4-SNAPSHOT-2", "sonar-db-dao-25.4-SNAPSHOT-3", "sonar-auth-saml-25.4-SNAPSHOT-7", "sonar-webserver-ws-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-auth-github-25.4-SNAPSHOT-4", - "dependsOn" : [ "scribejava-core-8.3.3.jar", "sonar-server-common-25.4-SNAPSHOT", "sonar-auth-common-25.4-SNAPSHOT-3", "scribejava-apis-8.3.3.jar", "gson-2.12.1.jar" ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-11", - "dependsOn" : [ "jjwt-api-0.12.6.jar", "sonar-auth-ldap-25.4-SNAPSHOT-2", "jjwt-jackson-0.12.6.jar-3", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "gson-2.12.1.jar", "jjwt-impl-0.12.6.jar-2", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-webserver-ws-25.4-SNAPSHOT-4", - "dependsOn" : [ "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-ws-25.4-SNAPSHOT", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar" ] - }, { - "ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-4", - "dependsOn" : [ "json-20250107.jar", "sonar-webserver-auth-25.4-SNAPSHOT-11", "sonar-webserver-ws-25.4-SNAPSHOT-4", "jakarta.servlet-api-6.1.0.jar" ] - }, { - "ref" : "sonar-webserver-api-25.4-SNAPSHOT-9", - "dependsOn" : [ "jjwt-impl-0.12.6.jar-2", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar" ] - }, { - "ref" : "sonar-webserver-monitoring-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "simpleclient-0.16.0.jar-2", "sonar-webserver-api-25.4-SNAPSHOT-9", "sonar-webserver-pushapi-25.4-SNAPSHOT-2", "sonar-alm-client-25.4-SNAPSHOT-6" ] - }, { - "ref" : "sonar-webserver-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-auth-saml-25.4-SNAPSHOT-9", "sonar-auth-gitlab-25.4-SNAPSHOT-9", "logback-access-tomcat-2.0.6.jar", "sonar-core-25.4-SNAPSHOT", "tomcat-embed-core-10.1.39.jar", "guava-33.4.5-jre.jar", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", "sonar-webserver-core-25.4-SNAPSHOT-3", "sonar-webserver-webapi-v2-25.4-SNAPSHOT-6", "sonar-telemetry-25.4-SNAPSHOT-2", "sonar-auth-ldap-25.4-SNAPSHOT-3", "sonar-auth-bitbucket-25.4-SNAPSHOT-2", "sonar-webserver-webapi-25.4-SNAPSHOT-12", "sonar-process-25.4-SNAPSHOT", "sonar-auth-github-25.4-SNAPSHOT-4", "sonar-webserver-pushapi-25.4-SNAPSHOT-4", "sonar-webserver-monitoring-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sonar-scala-plugin-1.18.0.266.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-application-25.4-SNAPSHOT", - "dependsOn" : [ "sonar-main-25.4-SNAPSHOT-2", "sonar-flex-plugin-2.14.0.5032.jar", "msal4j-1.19.1.jar-2", "sonar-ruby-plugin-1.18.0.234.jar", "sonar-html-plugin-3.19.0.5695.jar-2", "sonar-scanner-engine-shaded-25.4-SNAPSHOT-2", "sonar-csharp-plugin-10.7.0.110445.jar", "sonar-core-25.4-SNAPSHOT", "sonar-php-plugin-3.45.0.12991.jar", "h2-2.3.232.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "sonar-vbnet-plugin-10.7.0.110445.jar-2", "sonar-java-plugin-8.11.0.38440.jar", "mssql-jdbc-12.10.0.jre11.jar", "sonar-xml-plugin-2.12.0.5749.jar", "sonar-process-25.4-SNAPSHOT-8", "sonar-javascript-plugin-10.21.1.30825-multi.jar", "sonar-java-symbolic-execution-plugin-8.11.0.38440.jar-2", "sonar-go-plugin-1.21.1.1670.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-jacoco-plugin-1.3.0.1538.jar", "sonar-ce-25.4-SNAPSHOT", "sonar-kotlin-plugin-3.0.1.6889.jar", "sonar-text-plugin-2.21.1.5779.jar", "sonar-python-plugin-5.2.0.20808.jar-2", "sonar-cayc-plugin-2.4.0.2018.jar", "postgresql-42.7.5.jar", "elasticsearch-rest-high-level-client-7.17.28.jar", "sonar-webserver-25.4-SNAPSHOT-2", "slf4j-api-2.0.17.jar", "sonar-iac-plugin-1.44.0.14670.jar", "sonar-scala-plugin-1.18.0.266.jar" ] - }, { - "ref" : "core-extension-common-2025.3-SNAPSHOT-2", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT" ] - }, { - "ref" : "core-extension-ai-code-assurance-2025.3-SNAPSHOT", - "dependsOn" : [ "core-extension-license-2025.3-SNAPSHOT", "license-common-2025.3-SNAPSHOT" ] - }, { - "ref" : "core-extension-architecture-2025.3-SNAPSHOT", - "dependsOn" : [ ] - }, { - "ref" : "woodstox-core-lgpl-4.4.1.jar-2", - "dependsOn" : [ "stax2-api-4.2.2.jar", "stax-api-1.0-2.jar", "stax2-api-4.2.1.jar" ] - }, { - "ref" : "staxmate-2.0.1.jar-3", - "dependsOn" : [ "stax-api-1.0.1.jar", "stax2-api-4.2.1.jar", "stax2-api-4.2.2.jar" ] - }, { - "ref" : "sonar-flex-plugin-2.14.0.5032.jar-2", - "dependsOn" : [ "woodstox-core-lgpl-4.4.1.jar-2", "sonar-analyzer-commons-2.16.0.3141.jar", "flex-squid-2.14.0.5032.jar-2", "staxmate-2.0.1.jar-3", "flex-checks-2.14.0.5032.jar" ] - }, { - "ref" : "sonar-webserver-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-webserver-pushapi-25.4-SNAPSHOT-4", "sonar-webserver-monitoring-25.4-SNAPSHOT-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", "logback-access-tomcat-2.0.6.jar", "sonar-core-25.4-SNAPSHOT", "tomcat-embed-core-10.1.39.jar", "guava-33.4.5-jre.jar", "sonar-auth-saml-25.4-SNAPSHOT-9", "sonar-auth-gitlab-25.4-SNAPSHOT-9", "sonar-webserver-webapi-v2-25.4-SNAPSHOT", "sonar-webserver-core-25.4-SNAPSHOT-3", "sonar-telemetry-25.4-SNAPSHOT-2", "sonar-auth-bitbucket-25.4-SNAPSHOT-2", "sonar-auth-github-25.4-SNAPSHOT-4", "sonar-auth-ldap-25.4-SNAPSHOT-3", "sonar-webserver-webapi-25.4-SNAPSHOT-12", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-xml-parsing-2.16.0.3141.jar-3", - "dependsOn" : [ "xercesImpl-2.12.2.jar", "jsr305-3.0.2.jar", "xml-apis-1.4.01.jar", "woodstox-core-6.4.0.jar", "woodstox-core-7.0.0.jar" ] - }, { - "ref" : "sonar-xml-plugin-2.12.0.5749.jar-2", - "dependsOn" : [ "sonar-xml-parsing-2.16.0.3141.jar-3", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-application-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-text-plugin-2.21.1.5779.jar", "msal4j-1.19.1.jar-2", "sonar-ruby-plugin-1.18.0.234.jar", "sonar-html-plugin-3.19.0.5695.jar-2", "sonar-scanner-engine-shaded-25.4-SNAPSHOT-2", "sonar-python-plugin-5.2.0.20808.jar-2", "sonar-cayc-plugin-2.4.0.2018.jar", "postgresql-42.7.5.jar", "elasticsearch-rest-high-level-client-7.17.28.jar", "sonar-vbnet-plugin-10.7.0.110445.jar-2", "sonar-java-plugin-8.11.0.38440.jar", "mssql-jdbc-12.10.0.jre11.jar", "sonar-main-25.4-SNAPSHOT-2", "sonar-flex-plugin-2.14.0.5032.jar-2", "sonar-webserver-25.4-SNAPSHOT-3", "slf4j-api-2.0.17.jar", "sonar-iac-plugin-1.44.0.14670.jar", "sonar-scala-plugin-1.18.0.266.jar", "sonar-xml-plugin-2.12.0.5749.jar-2", "sonar-javascript-plugin-10.21.1.30825-multi.jar", "sonar-process-25.4-SNAPSHOT", "sonar-csharp-plugin-10.7.0.110445.jar", "sonar-core-25.4-SNAPSHOT", "sonar-php-plugin-3.45.0.12991.jar", "h2-2.3.232.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "sonar-java-symbolic-execution-plugin-8.11.0.38440.jar-2", "sonar-go-plugin-1.21.1.1670.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-jacoco-plugin-1.3.0.1538.jar", "sonar-kotlin-plugin-3.0.1.6889.jar", "sonar-ce-25.4-SNAPSHOT" ] - }, { - "ref" : "react-innertext-1.1.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "deep-equal-0.3.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "type-fest-4.20.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "is-lite-0.8.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "deep-equal-0.1.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "tree-changes-0.9.3.tgz", - "dependsOn" : [ "deep-equal-0.1.2.tgz" ] - }, { - "ref" : "popper.js-1.16.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "prop-types-15.8.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-floater-0.7.9.tgz", - "dependsOn" : [ "is-lite-0.8.2.tgz", "tree-changes-0.9.3.tgz", "popper.js-1.16.1.tgz", "prop-types-15.8.1.tgz" ] - }, { - "ref" : "is-lite-1.2.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "tree-changes-0.11.2.tgz", - "dependsOn" : [ "is-lite-1.2.1.tgz" ] - }, { - "ref" : "react-is-16.13.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "scroll-3.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "deepmerge-4.3.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "deep-diff-1.0.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "scrollparent-2.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-joyride-2.8.2.tgz", - "dependsOn" : [ "react-innertext-1.1.5.tgz", "deep-equal-0.3.1.tgz", "type-fest-4.20.1.tgz", "react-floater-0.7.9.tgz", "tree-changes-0.11.2.tgz", "react-is-16.13.1.tgz", "scroll-3.0.1.tgz", "deepmerge-4.3.1.tgz", "deep-diff-1.0.2.tgz", "is-lite-1.2.1.tgz", "scrollparent-2.1.0.tgz" ] - }, { - "ref" : "delegate-3.2.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "good-listener-1.2.2.tgz", - "dependsOn" : [ "delegate-3.2.0.tgz" ] - }, { - "ref" : "tiny-emitter-2.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "select-1.1.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "clipboard-2.0.11.tgz", - "dependsOn" : [ "good-listener-1.2.2.tgz", "tiny-emitter-2.1.0.tgz", "select-1.1.2.tgz" ] - }, { - "ref" : "smtinterpol-2.5-1274-g04ecb6c0.jar", - "dependsOn" : [ ] - }, { - "ref" : "platform-api-1.36.1.13250.jar", - "dependsOn" : [ ] - }, { - "ref" : "engine-1.36.1.13250.jar", - "dependsOn" : [ "ir-1.36.1.13250.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "smtinterpol-2.5-1274-g04ecb6c0.jar", "platform-api-1.36.1.13250.jar" ] - }, { - "ref" : "engine-1.36.1.13250.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "platform-1.36.1.13250.jar", - "dependsOn" : [ "ir-1.36.1.13250.jar", "platform-api-1.36.1.13250.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "jspecify-1.0.0.jar", "engine-1.36.1.13250.jar-2" ] - }, { - "ref" : "platform-api-1.36.1.13250.jar-2", - "dependsOn" : [ "ir-1.36.1.13250.jar", "jspecify-1.0.0.jar" ] - }, { - "ref" : "sonar-dbd-plugin-1.36.1.13250.sonar-plugin", - "dependsOn" : [ "engine-1.36.1.13250.jar", "platform-1.36.1.13250.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "platform-api-1.36.1.13250.jar-2", "ir-1.36.1.13250.jar" ] - }, { - "ref" : "sonar-webserver-api-25.4-SNAPSHOT-10", - "dependsOn" : [ "jakarta.servlet-api-6.1.0.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-process-25.4-SNAPSHOT-2", "sonar-server-common-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar", "jjwt-impl-0.12.6.jar", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-alm-client-25.4-SNAPSHOT-10", - "dependsOn" : [ "bcpkix-jdk18on-1.80.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "sonar-auth-github-25.4-SNAPSHOT", "okhttp-4.12.0.jar", "sonar-ws-25.4-SNAPSHOT", "java-jwt-4.5.0.jar", "github-api-1.327.jar", "sonar-auth-gitlab-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-5", - "dependsOn" : [ "sonar-webserver-ws-25.4-SNAPSHOT-2", "jakarta.servlet-api-6.1.0.jar", "sonar-webserver-auth-25.4-SNAPSHOT-6", "json-20250107.jar" ] - }, { - "ref" : "sonar-webserver-monitoring-25.4-SNAPSHOT-3", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar-2", "simpleclient-0.16.0.jar-2", "sonar-webserver-api-25.4-SNAPSHOT-10", "sonar-alm-client-25.4-SNAPSHOT-10", "sonar-webserver-pushapi-25.4-SNAPSHOT-5" ] - }, { - "ref" : "log4j-core-2.24.3.jar", - "dependsOn" : [ ] - }, { - "ref" : "elasticsearch-7.17.28.jar-3", - "dependsOn" : [ "log4j-api-2.24.3.jar", "elasticsearch-core-7.17.28.jar", "elasticsearch-secure-sm-7.17.28.jar", "lucene-sandbox-8.11.3.jar", "elasticsearch-lz4-7.17.28.jar", "lucene-join-8.11.3.jar", "elasticsearch-cli-7.17.28.jar", "lucene-highlighter-8.11.3.jar", "lucene-queries-8.11.3.jar", "elasticsearch-x-content-7.17.28.jar", "lucene-spatial3d-8.11.3.jar", "jna-5.10.0.jar", "joda-time-2.12.6.jar", "elasticsearch-geo-7.17.28.jar", "lucene-suggest-8.11.3.jar", "lucene-core-8.11.3.jar", "HdrHistogram-2.1.9.jar", "lucene-grouping-8.11.3.jar", "lucene-queryparser-8.11.3.jar", "log4j-core-2.24.3.jar", "lucene-backward-codecs-8.11.3.jar", "hppc-0.8.1.jar", "lucene-misc-8.11.3.jar", "lucene-memory-8.11.3.jar", "t-digest-3.2.jar", "lucene-analyzers-common-8.11.3.jar" ] - }, { - "ref" : "elasticsearch-rest-high-level-client-7.17.28.jar-7", - "dependsOn" : [ "rank-eval-client-7.17.28.jar", "lang-mustache-client-7.17.28.jar", "mapper-extras-client-7.17.28.jar", "aggs-matrix-stats-client-7.17.28.jar", "parent-join-client-7.17.28.jar", "elasticsearch-rest-client-7.17.28.jar-3", "elasticsearch-7.17.28.jar-3" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-24", - "dependsOn" : [ "okhttp-4.12.0.jar", "scribejava-core-8.3.3.jar-2", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-markdown-25.4-SNAPSHOT", "sonar-telemetry-core-25.4-SNAPSHOT-3", "slf4j-api-2.0.17.jar", "guava-33.4.5-jre.jar", "sonar-db-migration-25.4-SNAPSHOT", "commons-email2-jakarta-2.0.0-M1.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-7", "sonar-process-25.4-SNAPSHOT", "scribejava-apis-8.3.3.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "commons-lang3-3.17.0.jar", "bcprov-jdk18on-1.80.jar" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-13", - "dependsOn" : [ "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-2", "commons-io-2.18.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "mybatis-3.5.19.jar", "commons-lang3-3.17.0.jar", "sonar-server-common-25.4-SNAPSHOT-24", "sonar-duplications-25.4-SNAPSHOT-3", "sonar-scanner-protocol-25.4-SNAPSHOT", "diffutils-1.3.0.jar", "sonar-db-migration-25.4-SNAPSHOT-8", "commons-codec-1.18.0.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar", "protobuf-java-4.30.1.jar", "guava-33.4.5-jre.jar", "jul-to-slf4j-2.0.17.jar-2", "gson-2.12.1.jar", "sonar-db-dao-25.4-SNAPSHOT-4", "sonar-ce-task-25.4-SNAPSHOT-2", "core-3.1.0.jar" ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-12", - "dependsOn" : [ "sonar-auth-ldap-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "jjwt-impl-0.12.6.jar", "sonar-process-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "gson-2.12.1.jar" ] - }, { - "ref" : "sonar-webserver-ws-25.4-SNAPSHOT-5", - "dependsOn" : [ "sonar-webserver-api-25.4-SNAPSHOT-2", "sonar-plugin-api-11.3.0.2824.jar", "sonar-ws-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "tomcat-embed-core-10.1.39.jar", "jakarta.servlet-api-6.1.0.jar", "guava-33.4.5-jre.jar" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-13", - "dependsOn" : [ "sonar-webserver-common-25.4-SNAPSHOT-2", "sonar-webserver-es-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-scanner-protocol-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-auth-saml-25.4-SNAPSHOT-2", "sonar-ce-task-25.4-SNAPSHOT", "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-alm-client-25.4-SNAPSHOT-4", "sonar-webserver-auth-25.4-SNAPSHOT-12", "simpleclient-common-0.16.0.jar-2", "guava-33.4.5-jre.jar", "simpleclient-servlet-0.16.0.jar", "sonar-webserver-ws-25.4-SNAPSHOT-5" ] - }, { - "ref" : "sca-container-2025.3-SNAPSHOT-2", - "dependsOn" : [ "okhttp-4.12.0.jar", "jsr305-3.0.2.jar", "mybatis-3.5.19.jar" ] - }, { - "ref" : "core-extension-sca-2025.3-SNAPSHOT-2", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "spdx-jackson-store-2.0.0-RC2.jar", "sca-application-2025.3-SNAPSHOT-2", "java-spdx-library-2.0.0-RC2.jar-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-13", "sonar-webserver-webapi-v2-25.4-SNAPSHOT", "license-common-2025.3-SNAPSHOT-2", "cyclonedx-core-java-10.2.1.jar-2", "sonar-core-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT-13", "sca-container-2025.3-SNAPSHOT-2" ] - }, { - "ref" : "clsx-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "runtime-7.16.3.tgz", - "dependsOn" : [ ] - }, { - "ref" : "runtime-7.16.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "dom-helpers-5.2.1.tgz", - "dependsOn" : [ "runtime-7.16.5.tgz" ] - }, { - "ref" : "react-lifecycles-compat-3.0.4.tgz", - "dependsOn" : [ ] - }, { - "ref" : "loose-envify-1.4.0.tgz-2", - "dependsOn" : [ ] - }, { - "ref" : "react-virtualized-9.22.5.tgz", - "dependsOn" : [ "clsx-1.1.1.tgz", "runtime-7.16.3.tgz", "dom-helpers-5.2.1.tgz", "react-lifecycles-compat-3.0.4.tgz", "loose-envify-1.4.0.tgz-2" ] - }, { - "ref" : "object-assign-4.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-is-16.8.6.tgz", - "dependsOn" : [ ] - }, { - "ref" : "prop-types-15.7.2.tgz", - "dependsOn" : [ "object-assign-4.1.1.tgz", "react-is-16.8.6.tgz", "loose-envify-1.4.0.tgz-2" ] - }, { - "ref" : "exenv-1.2.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "warning-4.0.3.tgz", - "dependsOn" : [ "loose-envify-1.4.0.tgz-2" ] - }, { - "ref" : "react-modal-3.16.1.tgz", - "dependsOn" : [ "prop-types-15.7.2.tgz", "exenv-1.2.2.tgz", "warning-4.0.3.tgz", "react-lifecycles-compat-3.0.4.tgz" ] - }, { - "ref" : "prop-types-15.8.1.tgz-2", - "dependsOn" : [ "object-assign-4.1.1.tgz", "loose-envify-1.4.0.tgz-2" ] - }, { - "ref" : "react-modal-3.16.1.tgz-2", - "dependsOn" : [ "exenv-1.2.2.tgz", "warning-4.0.3.tgz", "react-lifecycles-compat-3.0.4.tgz", "prop-types-15.8.1.tgz-2" ] - }, { - "ref" : "internmap-2.0.3.tgz", - "dependsOn" : [ ] - }, { - "ref" : "d3-array-3.2.4.tgz", - "dependsOn" : [ "internmap-2.0.3.tgz" ] - }, { - "ref" : "prop-types-15.7.2.tgz-2", - "dependsOn" : [ "object-assign-4.1.1.tgz", "react-is-16.8.6.tgz" ] - }, { - "ref" : "react-modal-3.16.1.tgz-3", - "dependsOn" : [ "prop-types-15.7.2.tgz-2", "exenv-1.2.2.tgz", "warning-4.0.3.tgz", "react-lifecycles-compat-3.0.4.tgz" ] - }, { - "ref" : "sonar-alm-client-25.4-SNAPSHOT-11", - "dependsOn" : [ "sonar-auth-gitlab-25.4-SNAPSHOT-2", "github-api-1.327.jar", "sonar-webserver-api-25.4-SNAPSHOT-2", "commons-codec-1.18.0.jar", "gson-2.12.1.jar", "bcpkix-jdk18on-1.80.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-auth-github-25.4-SNAPSHOT-4", "sonar-ws-25.4-SNAPSHOT-2", "java-jwt-4.5.0.jar", "okhttp-4.12.0.jar-3" ] - }, { - "ref" : "jackson-bom-2.18.3.pom-11", - "dependsOn" : [ "jackson-dataformat-smile-2.18.3.jar", "jackson-dataformat-yaml-2.18.3.jar", "jackson-core-2.18.3.jar-2", "jackson-databind-2.18.3.jar", "jackson-datatype-jsr310-2.18.3.jar-2", "jackson-annotations-2.18.3.jar", "jackson-dataformat-cbor-2.18.3.jar" ] - }, { - "ref" : "jackson-databind-2.18.3.jar-11", - "dependsOn" : [ "jackson-bom-2.18.3.pom-11", "jackson-core-2.18.3.jar-2", "jackson-annotations-2.18.3.jar" ] - }, { - "ref" : "scribejava-apis-8.3.3.jar-7", - "dependsOn" : [ "jackson-databind-2.18.3.jar-11", "scribejava-core-8.3.3.jar" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-25", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-plugin-api-11.3.0.2824.jar", "commons-lang3-3.17.0.jar", "bcprov-jdk18on-1.80.jar", "commons-email2-jakarta-2.0.0-M1.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "sonar-process-25.4-SNAPSHOT", "scribejava-apis-8.3.3.jar", "okhttp-4.12.0.jar", "scribejava-core-8.3.3.jar", "commons-io-2.18.0.jar", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "sonar-telemetry-core-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar", "guava-33.4.5-jre.jar", "jackson-databind-2.18.3.jar", "sonar-db-migration-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-auth-gitlab-25.4-SNAPSHOT-10", - "dependsOn" : [ "scribejava-core-8.3.3.jar-2", "gson-2.12.1.jar-2", "scribejava-apis-8.3.3.jar-7", "sonar-auth-common-25.4-SNAPSHOT-4", "sonar-server-common-25.4-SNAPSHOT-25" ] - }, { - "ref" : "sonar-webserver-common-25.4-SNAPSHOT-5", - "dependsOn" : [ "sonar-alm-client-25.4-SNAPSHOT-11", "sonar-auth-gitlab-25.4-SNAPSHOT-10", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar-2", "sonar-webserver-auth-25.4-SNAPSHOT-4", "guava-33.4.5-jre.jar-2", "sonar-webserver-ws-25.4-SNAPSHOT-2", "jakarta.servlet-api-6.1.0.jar" ] - }, { - "ref" : "sca-application-2025.3-SNAPSHOT-3", - "dependsOn" : [ ] - }, { - "ref" : "woodstox-core-7.0.0.jar-2", - "dependsOn" : [ ] - }, { - "ref" : "jackson-dataformat-xml-2.18.3.jar-3", - "dependsOn" : [ "jackson-annotations-2.18.3.jar", "jackson-bom-2.18.3.pom", "woodstox-core-7.0.0.jar-2", "jackson-core-2.18.3.jar-2", "stax2-api-4.2.2.jar", "jackson-databind-2.18.3.jar" ] - }, { - "ref" : "spdx-jackson-store-2.0.0-RC2.jar-4", - "dependsOn" : [ "jackson-dataformat-yaml-2.18.3.jar", "jackson-core-2.18.3.jar", "gson-2.12.1.jar", "json-20250107.jar", "jackson-databind-2.18.3.jar", "java-spdx-library-2.0.0-RC2.jar", "jackson-dataformat-xml-2.18.3.jar-3" ] - }, { - "ref" : "core-extension-sca-2025.3-SNAPSHOT-3", - "dependsOn" : [ "cyclonedx-core-java-10.2.1.jar-2", "license-common-2025.3-SNAPSHOT", "sca-application-2025.3-SNAPSHOT-3", "sca-container-2025.3-SNAPSHOT", "java-spdx-library-2.0.0-RC2.jar-2", "spdx-jackson-store-2.0.0-RC2.jar-4" ] - }, { - "ref" : "sonar-webserver-ws-25.4-SNAPSHOT-6", - "dependsOn" : [ "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-ws-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "tomcat-embed-core-10.1.39.jar", "jakarta.servlet-api-6.1.0.jar" ] - }, { - "ref" : "highlight-words-core-1.2.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "memoize-one-4.0.3.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-highlight-words-0.20.0.tgz", - "dependsOn" : [ "highlight-words-core-1.2.2.tgz", "memoize-one-4.0.3.tgz", "prop-types-15.8.1.tgz" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-39", - "dependsOn" : [ "sonar-sarif-25.4-SNAPSHOT", "sonar-classloader-1.1.0.1059.jar", "protobuf-java-4.30.1.jar", "guava-33.4.5-jre.jar", "gson-2.12.1.jar", "commons-codec-1.18.0.jar", "logback-classic-1.5.18.jar", "sonar-update-center-common-1.35.0.2835.jar", "logback-core-1.5.18.jar", "jakarta.inject-api-2.0.1.jar", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar", "jakarta.annotation-api-3.0.0.jar", "spring-context-6.2.5.jar", "sonar-plugin-api-11.3.0.2824.jar", "commons-lang3-3.17.0.jar", "commons-exec-1.4.0.jar", "sonar-ws-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "okhttp-4.12.0.jar" ] - }, { - "ref" : "sonar-webserver-ws-25.4-SNAPSHOT-7", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "sonar-webserver-api-25.4-SNAPSHOT-2", "sonar-core-25.4-SNAPSHOT-39", "tomcat-embed-core-10.1.39.jar", "jakarta.servlet-api-6.1.0.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar-2", "sonar-plugin-api-impl-25.4-SNAPSHOT-2" ] - }, { - "ref" : "ant-launcher-1.10.14.jar", - "dependsOn" : [ ] - }, { - "ref" : "ant-1.10.14.jar", - "dependsOn" : [ "ant-launcher-1.10.14.jar" ] - }, { - "ref" : "annotation-4.1.1.jar", - "dependsOn" : [ ] - }, { - "ref" : "yguard-4.1.1.jar", - "dependsOn" : [ "ant-1.10.14.jar", "annotation-4.1.1.jar", "asm-9.6.jar" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-14", - "dependsOn" : [ "sonar-auth-saml-25.4-SNAPSHOT-6", "sonar-webserver-ws-25.4-SNAPSHOT", "simpleclient-common-0.16.0.jar-2", "guava-33.4.5-jre.jar", "commons-text-1.13.0.jar-2", "simpleclient-servlet-0.16.0.jar", "json-sKema-0.21.0.jar-2", "sonar-webserver-common-25.4-SNAPSHOT-3", "sonar-webserver-auth-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-scanner-protocol-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-webserver-es-25.4-SNAPSHOT-2", "sonar-alm-client-25.4-SNAPSHOT-4", "sonar-ce-task-25.4-SNAPSHOT", "sonar-webserver-pushapi-25.4-SNAPSHOT-2", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "d3-path-3.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "d3-shape-3.2.0.tgz", - "dependsOn" : [ "d3-path-3.1.0.tgz" ] - }, { - "ref" : "sonar-security-csharp-frontend-plugin-11.1.0.35630.sonar-plugin", - "dependsOn" : [ "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-26", - "dependsOn" : [ "sonar-db-migration-25.4-SNAPSHOT", "jackson-databind-2.18.3.jar", "guava-33.4.5-jre.jar", "slf4j-api-2.0.17.jar", "sonar-telemetry-core-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "commons-email2-jakarta-2.0.0-M1.jar", "bcprov-jdk18on-1.80.jar", "commons-lang3-3.17.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "scribejava-apis-8.3.3.jar", "sonar-process-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-6", "commons-io-2.18.0.jar", "scribejava-core-8.3.3.jar", "okhttp-4.12.0.jar", "sonar-markdown-25.4-SNAPSHOT-3", "sonar-ws-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-ce-25.4-SNAPSHOT-2", - "dependsOn" : [ "sonar-ce-common-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT-2", "sonar-plugin-api-11.3.0.2824.jar", "sonar-server-common-25.4-SNAPSHOT-26", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", "guava-33.4.5-jre.jar", "protobuf-java-4.30.1.jar", "sonar-core-25.4-SNAPSHOT", "HikariCP-6.2.1.jar", "hazelcast-5.4.0.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-ce-task-25.4-SNAPSHOT-2" ] - }, { - "ref" : "sca-container-2025.3-SNAPSHOT-3", - "dependsOn" : [ "mybatis-3.5.19.jar", "jsr305-3.0.2.jar", "okhttp-4.12.0.jar-5" ] - }, { - "ref" : "sonar-csharp-plugin-10.7.0.110445.jar-2", - "dependsOn" : [ "sonar-csharp-core-10.7.0.110445.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-dotnet-core-10.7.0.110445.jar-2" ] - }, { - "ref" : "sca-container-2025.3-SNAPSHOT-4", - "dependsOn" : [ "mybatis-3.5.19.jar", "jsr305-3.0.2.jar", "okhttp-4.12.0.jar-3" ] - }, { - "ref" : "sonar-security-python-frontend-plugin-11.1.0.35630.sonar-plugin", - "dependsOn" : [ "sslr-core-1.24.0.633.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "sonar-security-frontend-commons-11.1.0.35630.jar", "ucfg-11.1.0.35630.jar" ] - }, { - "ref" : "fast-memoize-2.2.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "intl-messageformat-10.5.14.tgz", - "dependsOn" : [ "fast-memoize-2.2.0.tgz" ] - }, { - "ref" : "prop-types-15.7.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "csstype-3.0.10.tgz", - "dependsOn" : [ ] - }, { - "ref" : "scheduler-0.16.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-18.2.55.tgz", - "dependsOn" : [ "prop-types-15.7.1.tgz", "csstype-3.0.10.tgz", "scheduler-0.16.2.tgz" ] - }, { - "ref" : "intl-localematcher-0.5.4.tgz", - "dependsOn" : [ ] - }, { - "ref" : "intl-listformat-7.5.7.tgz", - "dependsOn" : [ "intl-localematcher-0.5.4.tgz" ] - }, { - "ref" : "react-18.2.55.tgz-2", - "dependsOn" : [ ] - }, { - "ref" : "hoist-non-react-statics-3.3.1.tgz", - "dependsOn" : [ "hoist-non-react-statics-3.3.2.tgz", "react-18.2.55.tgz-2" ] - }, { - "ref" : "intl-2.10.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-is-16.10.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "hoist-non-react-statics-3.3.2.tgz-2", - "dependsOn" : [ "react-is-16.10.1.tgz" ] - }, { - "ref" : "icu-skeleton-parser-1.8.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "icu-messageformat-parser-2.7.8.tgz", - "dependsOn" : [ "icu-skeleton-parser-1.8.2.tgz" ] - }, { - "ref" : "intl-displaynames-6.6.8.tgz", - "dependsOn" : [ ] - }, { - "ref" : "ecma402-abstract-2.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "tslib-2.5.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-intl-6.7.0.tgz", - "dependsOn" : [ "intl-messageformat-10.5.14.tgz", "react-18.2.55.tgz", "intl-listformat-7.5.7.tgz", "hoist-non-react-statics-3.3.1.tgz", "intl-2.10.5.tgz", "hoist-non-react-statics-3.3.2.tgz-2", "icu-messageformat-parser-2.7.8.tgz", "intl-displaynames-6.6.8.tgz", "ecma402-abstract-2.0.0.tgz", "tslib-2.5.0.tgz" ] - }, { - "ref" : "csstype-3.0.11.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-18.2.55.tgz-3", - "dependsOn" : [ "scheduler-0.16.2.tgz", "prop-types-15.7.1.tgz", "csstype-3.0.11.tgz" ] - }, { - "ref" : "react-intl-6.7.0.tgz-2", - "dependsOn" : [ "react-18.2.55.tgz-3", "intl-listformat-7.5.7.tgz", "icu-messageformat-parser-2.7.8.tgz", "intl-displaynames-6.6.8.tgz", "ecma402-abstract-2.0.0.tgz", "intl-messageformat-10.5.14.tgz", "tslib-2.5.0.tgz", "hoist-non-react-statics-3.3.1.tgz", "intl-2.10.5.tgz", "hoist-non-react-statics-3.3.2.tgz-2" ] - }, { - "ref" : "d3-hierarchy-3.1.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "jsonc-parser-3.3.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "minimist-1.2.8.tgz", - "dependsOn" : [ ] - }, { - "ref" : "deep-extend-0.6.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "ini-4.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "strip-json-comments-3.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "run-con-1.3.2.tgz", - "dependsOn" : [ "minimist-1.2.8.tgz", "deep-extend-0.6.0.tgz", "ini-4.1.1.tgz", "strip-json-comments-3.1.1.tgz" ] - }, { - "ref" : "uc.micro-2.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "mdurl-2.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "punycode.js-2.3.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "uc.micro-2.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "linkify-it-5.0.0.tgz", - "dependsOn" : [ "uc.micro-2.0.0.tgz" ] - }, { - "ref" : "entities-4.5.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "markdown-it-14.1.0.tgz", - "dependsOn" : [ "uc.micro-2.1.0.tgz", "mdurl-2.0.0.tgz", "punycode.js-2.3.1.tgz", "linkify-it-5.0.0.tgz", "entities-4.5.0.tgz" ] - }, { - "ref" : "markdownlint-micromark-0.1.10.tgz", - "dependsOn" : [ ] - }, { - "ref" : "markdownlint-0.35.0.tgz", - "dependsOn" : [ "markdown-it-14.1.0.tgz", "markdownlint-micromark-0.1.10.tgz" ] - }, { - "ref" : "argparse-2.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "js-yaml-4.1.0.tgz", - "dependsOn" : [ "argparse-2.0.1.tgz" ] - }, { - "ref" : "commander-12.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "smol-toml-1.3.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "jsonpointer-5.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "ignore-6.0.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "ansi-regex-5.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "strip-ansi-cjs-6.0.1.tgz", - "dependsOn" : [ "ansi-regex-5.0.1.tgz" ] - }, { - "ref" : "string-width-5.1.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "ansi-styles-6.2.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "wrap-ansi-8.1.0.tgz", - "dependsOn" : [ "string-width-5.1.2.tgz", "ansi-styles-6.2.1.tgz" ] - }, { - "ref" : "string-width-4.2.3.tgz", - "dependsOn" : [ ] - }, { - "ref" : "color-name-1.1.4.tgz", - "dependsOn" : [ ] - }, { - "ref" : "color-convert-2.0.1.tgz", - "dependsOn" : [ "color-name-1.1.4.tgz" ] - }, { - "ref" : "ansi-styles-4.3.0.tgz", - "dependsOn" : [ "color-convert-2.0.1.tgz" ] - }, { - "ref" : "strip-ansi-6.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "wrap-ansi-cjs-7.0.0.tgz", - "dependsOn" : [ "string-width-4.2.3.tgz", "ansi-styles-4.3.0.tgz", "strip-ansi-6.0.1.tgz" ] - }, { - "ref" : "ansi-regex-6.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "strip-ansi-7.1.0.tgz", - "dependsOn" : [ "ansi-regex-6.0.1.tgz" ] - }, { - "ref" : "emoji-regex-8.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "is-fullwidth-code-point-3.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "string-width-cjs-4.2.3.tgz", - "dependsOn" : [ "emoji-regex-8.0.0.tgz", "strip-ansi-6.0.1.tgz", "is-fullwidth-code-point-3.0.0.tgz" ] - }, { - "ref" : "eastasianwidth-0.2.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "emoji-regex-9.2.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "string-width-5.1.2.tgz-2", - "dependsOn" : [ "eastasianwidth-0.2.0.tgz", "emoji-regex-9.2.2.tgz" ] - }, { - "ref" : "cliui-8.0.2.tgz", - "dependsOn" : [ "strip-ansi-cjs-6.0.1.tgz", "wrap-ansi-8.1.0.tgz", "wrap-ansi-cjs-7.0.0.tgz", "strip-ansi-7.1.0.tgz", "string-width-cjs-4.2.3.tgz", "string-width-5.1.2.tgz-2" ] - }, { - "ref" : "jackspeak-4.0.2.tgz", - "dependsOn" : [ "cliui-8.0.2.tgz" ] - }, { - "ref" : "minipass-7.1.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "minimatch-10.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "lru-cache-11.0.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "path-scurry-2.0.0.tgz", - "dependsOn" : [ "lru-cache-11.0.1.tgz" ] - }, { - "ref" : "package-json-from-dist-1.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "signal-exit-4.0.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "shebang-regex-3.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "shebang-command-2.0.0.tgz", - "dependsOn" : [ "shebang-regex-3.0.0.tgz" ] - }, { - "ref" : "isexe-2.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "which-2.0.2.tgz", - "dependsOn" : [ "isexe-2.0.0.tgz" ] - }, { - "ref" : "path-key-3.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "cross-spawn-7.0.3.tgz", - "dependsOn" : [ "shebang-command-2.0.0.tgz", "which-2.0.2.tgz", "path-key-3.1.1.tgz" ] - }, { - "ref" : "foreground-child-3.1.1.tgz", - "dependsOn" : [ "signal-exit-4.0.2.tgz", "cross-spawn-7.0.3.tgz" ] - }, { - "ref" : "glob-11.0.0.tgz", - "dependsOn" : [ "jackspeak-4.0.2.tgz", "minipass-7.1.2.tgz", "minimatch-10.0.1.tgz", "path-scurry-2.0.0.tgz", "package-json-from-dist-1.0.0.tgz", "foreground-child-3.1.1.tgz" ] - }, { - "ref" : "get-stdin-9.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "balanced-match-1.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "brace-expansion-2.0.1.tgz", - "dependsOn" : [ "balanced-match-1.0.0.tgz" ] - }, { - "ref" : "minimatch-10.0.1.tgz-2", - "dependsOn" : [ "brace-expansion-2.0.1.tgz" ] - }, { - "ref" : "markdownlint-cli-0.42.0.tgz", - "dependsOn" : [ "jsonc-parser-3.3.1.tgz", "run-con-1.3.2.tgz", "markdownlint-0.35.0.tgz", "js-yaml-4.1.0.tgz", "commander-12.1.0.tgz", "smol-toml-1.3.0.tgz", "jsonpointer-5.0.1.tgz", "ignore-6.0.2.tgz", "glob-11.0.0.tgz", "get-stdin-9.0.0.tgz", "minimatch-10.0.1.tgz-2" ] - }, { - "ref" : "prop-types-15.7.4.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-18.2.55.tgz-4", - "dependsOn" : [ "scheduler-0.16.2.tgz", "prop-types-15.7.4.tgz", "csstype-3.0.11.tgz" ] - }, { - "ref" : "hoist-non-react-statics-3.3.2.tgz-3", - "dependsOn" : [ "react-is-16.13.1.tgz" ] - }, { - "ref" : "react-intl-6.7.0.tgz-3", - "dependsOn" : [ "react-18.2.55.tgz-4", "intl-listformat-7.5.7.tgz", "icu-messageformat-parser-2.7.8.tgz", "intl-displaynames-6.6.8.tgz", "ecma402-abstract-2.0.0.tgz", "intl-messageformat-10.5.14.tgz", "tslib-2.5.0.tgz", "hoist-non-react-statics-3.3.1.tgz", "intl-2.10.5.tgz", "hoist-non-react-statics-3.3.2.tgz-3" ] - }, { - "ref" : "sonar-db-dao-25.4-SNAPSHOT-8", - "dependsOn" : [ "sonar-db-migration-25.4-SNAPSHOT", "lz4-java-1.8.0.jar", "sonar-core-25.4-SNAPSHOT", "sonar-db-core-25.4-SNAPSHOT-2", "protobuf-java-4.30.1.jar", "guava-33.4.5-jre.jar", "sonar-plugin-api-11.3.0.2824.jar", "mybatis-3.5.19.jar", "commons-lang3-3.17.0.jar", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-db-core-25.4-SNAPSHOT-6", - "dependsOn" : [ "sonar-process-25.4-SNAPSHOT", "HikariCP-6.2.1.jar-2", "slf4j-api-2.0.17.jar", "guava-33.4.5-jre.jar", "mybatis-3.5.19.jar", "commons-lang3-3.17.0.jar", "logback-core-1.5.18.jar", "logback-classic-1.5.18.jar", "commons-io-2.18.0.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-db-migration-25.4-SNAPSHOT-14", - "dependsOn" : [ "sonar-db-core-25.4-SNAPSHOT-6", "guava-33.4.5-jre.jar", "staxmate-2.4.1.jar-2", "commons-lang3-3.17.0.jar", "commons-codec-1.18.0.jar", "sonar-process-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "sonar-telemetry-core-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-14", - "dependsOn" : [ "sonar-db-dao-25.4-SNAPSHOT-8", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar", "protobuf-java-4.30.1.jar", "guava-33.4.5-jre.jar", "sonar-scanner-protocol-25.4-SNAPSHOT", "diffutils-1.3.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "mybatis-3.5.19.jar", "commons-lang3-3.17.0.jar", "sonar-ce-task-25.4-SNAPSHOT", "core-3.1.0.jar", "commons-io-2.18.0.jar", "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-server-common-25.4-SNAPSHOT", "sonar-duplications-25.4-SNAPSHOT-3", "sonar-db-migration-25.4-SNAPSHOT-14", "commons-text-1.13.0.jar-2", "jul-to-slf4j-2.0.17.jar-2", "gson-2.12.1.jar", "commons-codec-1.18.0.jar" ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT-4", - "dependsOn" : [ "license-common-2025.3-SNAPSHOT", "license-api-2025.3-SNAPSHOT-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-14" ] - }, { - "ref" : "sonar-security-js-frontend-plugin-11.1.0.35630.sonar-plugin", - "dependsOn" : [ "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT-5", - "dependsOn" : [ "sonar-ce-task-25.4-SNAPSHOT-2", "sonar-webserver-api-25.4-SNAPSHOT-5", "sonar-server-common-25.4-SNAPSHOT-18", "license-common-2025.3-SNAPSHOT", "license-api-2025.3-SNAPSHOT", "sonar-plugin-api-11.3.0.2824.jar-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-9", "guava-33.4.5-jre.jar-2", "sonar-db-dao-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar-3", "sonar-core-25.4-SNAPSHOT", "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-ws-25.4-SNAPSHOT-2", "commons-io-2.18.0.jar" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-15", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-server-common-25.4-SNAPSHOT", "sonar-db-migration-25.4-SNAPSHOT-14", "commons-text-1.13.0.jar-2", "commons-codec-1.18.0.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar", "protobuf-java-4.30.1.jar", "guava-33.4.5-jre.jar", "jul-to-slf4j-2.0.17.jar-2", "gson-2.12.1.jar", "sonar-db-dao-25.4-SNAPSHOT-8", "sonar-plugin-api-11.3.0.2824.jar", "mybatis-3.5.19.jar", "commons-lang3-3.17.0.jar", "sonar-ce-task-25.4-SNAPSHOT", "core-3.1.0.jar", "sonar-duplications-25.4-SNAPSHOT-2", "sonar-scanner-protocol-25.4-SNAPSHOT-4", "diffutils-1.3.0.jar" ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT-6", - "dependsOn" : [ "license-common-2025.3-SNAPSHOT", "license-api-2025.3-SNAPSHOT-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-15" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-16", - "dependsOn" : [ "sonar-duplications-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT", "diffutils-1.3.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "mybatis-3.5.19.jar", "commons-lang3-3.17.0.jar", "sonar-ce-task-25.4-SNAPSHOT", "core-3.1.0.jar", "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-server-common-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "sonar-db-migration-25.4-SNAPSHOT-2", "commons-text-1.13.0.jar", "guava-33.4.5-jre.jar", "jul-to-slf4j-2.0.17.jar", "gson-2.12.1.jar-2", "commons-codec-1.18.0.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar", "protobuf-java-4.30.1.jar", "sonar-db-dao-25.4-SNAPSHOT-3" ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT-7", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT-2", "commons-io-2.18.0.jar", "sonar-webserver-webapi-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar-3", "sonar-db-dao-25.4-SNAPSHOT", "sonar-ce-task-25.4-SNAPSHOT-2", "sonar-webserver-api-25.4-SNAPSHOT-5", "license-api-2025.3-SNAPSHOT", "sonar-plugin-api-11.3.0.2824.jar-2", "sonar-server-common-25.4-SNAPSHOT-18", "license-common-2025.3-SNAPSHOT", "sonar-core-25.4-SNAPSHOT-6", "guava-33.4.5-jre.jar-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-16" ] - }, { - "ref" : "scheduler-0.23.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-dom-18.3.1.tgz", - "dependsOn" : [ "scheduler-0.23.2.tgz" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-17", - "dependsOn" : [ "commons-text-1.13.0.jar", "sonar-db-migration-25.4-SNAPSHOT-2", "guava-33.4.5-jre.jar", "jul-to-slf4j-2.0.17.jar", "gson-2.12.1.jar", "commons-codec-1.18.0.jar", "sonar-ce-task-25.4-SNAPSHOT", "core-3.1.0.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar", "protobuf-java-4.30.1.jar", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "diffutils-1.3.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "mybatis-3.5.19.jar", "commons-lang3-3.17.0.jar", "sonar-duplications-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-15", - "dependsOn" : [ "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-scanner-protocol-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "simpleclient-servlet-0.16.0.jar", "simpleclient-common-0.16.0.jar-3", "guava-33.4.5-jre.jar", "sonar-auth-saml-25.4-SNAPSHOT-2", "sonar-webserver-ws-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-webserver-common-25.4-SNAPSHOT-2", "sonar-webserver-auth-25.4-SNAPSHOT", "sonar-alm-client-25.4-SNAPSHOT-5", "sonar-ce-task-25.4-SNAPSHOT", "sonar-webserver-pushapi-25.4-SNAPSHOT-2", "sonar-webserver-es-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-27", - "dependsOn" : [ "sonar-markdown-25.4-SNAPSHOT", "okhttp-4.12.0.jar", "scribejava-core-8.3.3.jar-2", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-telemetry-core-25.4-SNAPSHOT-2", "slf4j-api-2.0.17.jar", "guava-33.4.5-jre.jar", "bcprov-jdk18on-1.80.jar", "commons-email2-jakarta-2.0.0-M1.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "sonar-process-25.4-SNAPSHOT", "scribejava-apis-8.3.3.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "commons-lang3-3.17.0.jar", "jackson-databind-2.18.3.jar-8", "sonar-db-migration-25.4-SNAPSHOT" ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT-8", - "dependsOn" : [ "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-17", "sonar-ws-25.4-SNAPSHOT-2", "commons-io-2.18.0.jar", "sonar-webserver-webapi-25.4-SNAPSHOT-15", "guava-33.4.5-jre.jar-2", "sonar-db-dao-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar-3", "sonar-core-25.4-SNAPSHOT", "sonar-ce-task-25.4-SNAPSHOT-2", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-server-common-25.4-SNAPSHOT-27", "license-common-2025.3-SNAPSHOT", "license-api-2025.3-SNAPSHOT" ] - }, { - "ref" : "runtime-7.21.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "dom-helpers-5.2.1.tgz-2", - "dependsOn" : [ "runtime-7.21.5.tgz" ] - }, { - "ref" : "react-transition-group-4.4.5.tgz", - "dependsOn" : [ "dom-helpers-5.2.1.tgz-2", "prop-types-15.8.1.tgz", "runtime-7.21.5.tgz" ] - }, { - "ref" : "react-transition-group-4.4.6.tgz", - "dependsOn" : [ ] - }, { - "ref" : "core-1.2.6.tgz", - "dependsOn" : [ ] - }, { - "ref" : "dom-1.2.8.tgz", - "dependsOn" : [ "core-1.2.6.tgz" ] - }, { - "ref" : "use-isomorphic-layout-effect-1.1.2.tgz", - "dependsOn" : [ ] - }, { - "ref" : "regenerator-runtime-0.13.11.tgz", - "dependsOn" : [ ] - }, { - "ref" : "runtime-7.21.5.tgz-2", - "dependsOn" : [ "regenerator-runtime-0.13.11.tgz" ] - }, { - "ref" : "memoize-one-6.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "react-11.11.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "cache-11.11.0.tgz-2", - "dependsOn" : [ ] - }, { - "ref" : "react-select-5.7.7.tgz", - "dependsOn" : [ "react-transition-group-4.4.5.tgz", "react-transition-group-4.4.6.tgz", "dom-1.2.8.tgz", "use-isomorphic-layout-effect-1.1.2.tgz", "runtime-7.21.5.tgz-2", "prop-types-15.8.1.tgz", "memoize-one-6.0.0.tgz", "react-11.11.0.tgz", "cache-11.11.0.tgz-2" ] - }, { - "ref" : "runtime-7.17.9.tgz", - "dependsOn" : [ ] - }, { - "ref" : "dom-helpers-5.2.1.tgz-3", - "dependsOn" : [ "runtime-7.17.9.tgz" ] - }, { - "ref" : "prop-types-15.7.2.tgz-3", - "dependsOn" : [ ] - }, { - "ref" : "react-transition-group-4.4.2.tgz", - "dependsOn" : [ "dom-helpers-5.2.1.tgz-3", "prop-types-15.7.2.tgz-3", "runtime-7.17.9.tgz" ] - }, { - "ref" : "react-transition-group-4.4.5.tgz-2", - "dependsOn" : [ ] - }, { - "ref" : "core-1.1.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "dom-1.1.1.tgz", - "dependsOn" : [ "core-1.1.1.tgz" ] - }, { - "ref" : "weak-memoize-0.3.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "unitless-0.8.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "serialize-1.1.1.tgz", - "dependsOn" : [ "unitless-0.8.0.tgz" ] - }, { - "ref" : "utils-1.2.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "use-insertion-effect-with-fallbacks-1.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "sheet-1.2.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "cache-11.10.5.tgz", - "dependsOn" : [ "sheet-1.2.1.tgz" ] - }, { - "ref" : "stylis-4.1.3.tgz", - "dependsOn" : [ ] - }, { - "ref" : "hash-0.9.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "memoize-0.8.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "helper-plugin-utils-7.18.9.tgz", - "dependsOn" : [ ] - }, { - "ref" : "plugin-syntax-jsx-7.18.6.tgz", - "dependsOn" : [ "helper-plugin-utils-7.18.9.tgz" ] - }, { - "ref" : "babel-plugin-11.10.5.tgz", - "dependsOn" : [ "stylis-4.1.3.tgz", "hash-0.9.0.tgz", "memoize-0.8.0.tgz", "plugin-syntax-jsx-7.18.6.tgz" ] - }, { - "ref" : "react-11.10.5.tgz", - "dependsOn" : [ "weak-memoize-0.3.0.tgz", "serialize-1.1.1.tgz", "utils-1.2.0.tgz", "use-insertion-effect-with-fallbacks-1.0.0.tgz", "cache-11.10.5.tgz", "babel-plugin-11.10.5.tgz" ] - }, { - "ref" : "stylis-4.0.13.tgz", - "dependsOn" : [ ] - }, { - "ref" : "weak-memoize-0.2.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "utils-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "sheet-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "memoize-0.7.5.tgz", - "dependsOn" : [ ] - }, { - "ref" : "cache-11.7.1.tgz", - "dependsOn" : [ "stylis-4.0.13.tgz", "weak-memoize-0.2.5.tgz", "utils-1.1.0.tgz", "sheet-1.1.0.tgz", "memoize-0.7.5.tgz" ] - }, { - "ref" : "react-select-5.7.7.tgz-2", - "dependsOn" : [ "runtime-7.17.9.tgz", "prop-types-15.8.1.tgz", "memoize-one-6.0.0.tgz", "use-isomorphic-layout-effect-1.1.2.tgz", "react-transition-group-4.4.2.tgz", "react-transition-group-4.4.5.tgz-2", "dom-1.1.1.tgz", "react-11.10.5.tgz", "cache-11.7.1.tgz" ] - }, { - "ref" : "runtime-7.17.8.tgz", - "dependsOn" : [ ] - }, { - "ref" : "dom-helpers-5.2.1.tgz-4", - "dependsOn" : [ "runtime-7.17.8.tgz" ] - }, { - "ref" : "prop-types-15.7.2.tgz-4", - "dependsOn" : [ "react-is-16.8.6.tgz" ] - }, { - "ref" : "react-transition-group-4.4.2.tgz-2", - "dependsOn" : [ "dom-helpers-5.2.1.tgz-4", "prop-types-15.7.2.tgz-4", "runtime-7.17.8.tgz" ] - }, { - "ref" : "react-select-5.7.7.tgz-3", - "dependsOn" : [ "runtime-7.17.8.tgz", "prop-types-15.8.1.tgz", "memoize-one-6.0.0.tgz", "dom-1.1.1.tgz", "use-isomorphic-layout-effect-1.1.2.tgz", "cache-11.7.1.tgz", "react-transition-group-4.4.2.tgz-2", "react-transition-group-4.4.5.tgz-2", "react-11.10.5.tgz" ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-28", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT", "sonar-markdown-25.4-SNAPSHOT", "okhttp-4.12.0.jar", "scribejava-core-8.3.3.jar", "commons-io-2.18.0.jar", "commons-email2-jakarta-2.0.0-M1.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "sonar-process-25.4-SNAPSHOT", "scribejava-apis-8.3.3.jar", "sonar-plugin-api-11.3.0.2824.jar", "commons-lang3-3.17.0.jar", "bcprov-jdk18on-1.80.jar", "sonar-telemetry-core-25.4-SNAPSHOT-2", "slf4j-api-2.0.17.jar", "guava-33.4.5-jre.jar", "jackson-databind-2.18.3.jar", "sonar-db-migration-25.4-SNAPSHOT" ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT-9", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT-2", "commons-io-2.18.0.jar", "sonar-webserver-webapi-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "guava-33.4.5-jre.jar-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", "sonar-ce-task-25.4-SNAPSHOT-2", "sonar-db-dao-25.4-SNAPSHOT-3", "sonar-webserver-api-25.4-SNAPSHOT-5", "license-common-2025.3-SNAPSHOT", "license-api-2025.3-SNAPSHOT-2", "sonar-plugin-api-11.3.0.2824.jar", "sonar-server-common-25.4-SNAPSHOT-28" ] - }, { - "ref" : "utils-1.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "cache-11.7.1.tgz-2", - "dependsOn" : [ "sheet-1.1.0.tgz", "memoize-0.7.5.tgz", "stylis-4.0.13.tgz", "weak-memoize-0.2.5.tgz", "utils-1.0.0.tgz" ] - }, { - "ref" : "dom-helpers-5.2.1.tgz-5", - "dependsOn" : [ ] - }, { - "ref" : "react-transition-group-4.4.2.tgz-3", - "dependsOn" : [ "dom-helpers-5.2.1.tgz-5", "prop-types-15.7.2.tgz-3", "runtime-7.17.8.tgz" ] - }, { - "ref" : "react-select-5.7.7.tgz-4", - "dependsOn" : [ "runtime-7.17.8.tgz", "prop-types-15.8.1.tgz", "memoize-one-6.0.0.tgz", "dom-1.1.1.tgz", "use-isomorphic-layout-effect-1.1.2.tgz", "cache-11.7.1.tgz-2", "react-transition-group-4.4.2.tgz-3", "react-transition-group-4.4.5.tgz-2", "react-11.10.5.tgz" ] - }, { - "ref" : "classnames-2.5.1.tgz", - "dependsOn" : [ ] - }, { - "ref" : "sonar-server-common-25.4-SNAPSHOT-29", - "dependsOn" : [ "jackson-databind-2.18.3.jar-3", "sonar-db-migration-25.4-SNAPSHOT", "scribejava-core-8.3.3.jar-2", "commons-io-2.18.0.jar", "sonar-ws-25.4-SNAPSHOT", "sonar-markdown-25.4-SNAPSHOT", "okhttp-4.12.0.jar", "slf4j-api-2.0.17.jar", "guava-33.4.5-jre.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "sonar-telemetry-core-25.4-SNAPSHOT-2", "scribejava-apis-8.3.3.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "commons-lang3-3.17.0.jar", "bcprov-jdk18on-1.80.jar", "commons-email2-jakarta-2.0.0-M1.jar", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-core-25.4-SNAPSHOT-40", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT", "commons-io-2.18.0.jar", "sonar-sarif-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "gson-2.12.1.jar", "commons-codec-1.18.0.jar", "logback-classic-1.5.18.jar-2", "logback-core-1.5.18.jar", "jakarta.inject-api-2.0.1.jar", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "slf4j-api-2.0.17.jar", "jakarta.annotation-api-3.0.0.jar", "sonar-classloader-1.1.0.1059.jar", "protobuf-java-4.30.1.jar", "spring-context-6.2.5.jar-3", "sonar-plugin-api-11.3.0.2824.jar", "commons-lang3-3.17.0.jar", "commons-exec-1.4.0.jar", "sonar-update-center-common-1.35.0.2835.jar", "okhttp-4.12.0.jar-3" ] - }, { - "ref" : "sonar-webserver-webapi-25.4-SNAPSHOT-16", - "dependsOn" : [ "sonar-webserver-es-25.4-SNAPSHOT", "sonar-webserver-common-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-scanner-protocol-25.4-SNAPSHOT", "jakarta.servlet-api-6.1.0.jar", "sonar-process-25.4-SNAPSHOT", "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-alm-client-25.4-SNAPSHOT-4", "sonar-ce-task-25.4-SNAPSHOT", "sonar-webserver-auth-25.4-SNAPSHOT-6", "simpleclient-common-0.16.0.jar-2", "guava-33.4.5-jre.jar", "sonar-webserver-ws-25.4-SNAPSHOT-2", "simpleclient-servlet-0.16.0.jar", "sonar-auth-saml-25.4-SNAPSHOT-2" ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT-10", - "dependsOn" : [ "sonar-db-dao-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar-3", "sonar-ce-task-25.4-SNAPSHOT-2", "sonar-webserver-api-25.4-SNAPSHOT-5", "sonar-server-common-25.4-SNAPSHOT-29", "license-common-2025.3-SNAPSHOT", "license-api-2025.3-SNAPSHOT", "sonar-plugin-api-11.3.0.2824.jar-2", "sonar-core-25.4-SNAPSHOT-40", "guava-33.4.5-jre.jar-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-7", "sonar-ws-25.4-SNAPSHOT-2", "commons-io-2.18.0.jar", "sonar-webserver-webapi-25.4-SNAPSHOT-16" ] - }, { - "ref" : "follow-redirects-1.15.6.tgz", - "dependsOn" : [ ] - }, { - "ref" : "proxy-from-env-1.1.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "asynckit-0.4.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "mime-db-1.40.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "mime-types-2.1.24.tgz", - "dependsOn" : [ "mime-db-1.40.0.tgz" ] - }, { - "ref" : "delayed-stream-1.0.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "combined-stream-1.0.8.tgz", - "dependsOn" : [ "delayed-stream-1.0.0.tgz" ] - }, { - "ref" : "form-data-4.0.0.tgz", - "dependsOn" : [ "asynckit-0.4.0.tgz", "mime-types-2.1.24.tgz", "combined-stream-1.0.8.tgz" ] - }, { - "ref" : "axios-1.8.2.tgz", - "dependsOn" : [ "follow-redirects-1.15.6.tgz", "proxy-from-env-1.1.0.tgz", "form-data-4.0.0.tgz" ] - }, { - "ref" : "mime-db-1.52.0.tgz", - "dependsOn" : [ ] - }, { - "ref" : "mime-types-2.1.35.tgz", - "dependsOn" : [ "mime-db-1.52.0.tgz" ] - }, { - "ref" : "form-data-4.0.0.tgz-2", - "dependsOn" : [ "asynckit-0.4.0.tgz", "mime-types-2.1.35.tgz", "combined-stream-1.0.8.tgz" ] - }, { - "ref" : "axios-1.8.2.tgz-2", - "dependsOn" : [ "proxy-from-env-1.1.0.tgz", "form-data-4.0.0.tgz-2", "follow-redirects-1.15.6.tgz" ] - }, { - "ref" : "attoparser-2.0.7.RELEASE.jar", - "dependsOn" : [ ] - }, { - "ref" : "unbescape-1.1.6.RELEASE.jar", - "dependsOn" : [ ] - }, { - "ref" : "thymeleaf-3.1.3.RELEASE.jar", - "dependsOn" : [ "attoparser-2.0.7.RELEASE.jar", "unbescape-1.1.6.RELEASE.jar" ] - }, { - "ref" : "thymeleaf-spring6-3.1.3.RELEASE.jar", - "dependsOn" : [ "thymeleaf-3.1.3.RELEASE.jar" ] - }, { - "ref" : "tomcat-embed-el-9.0.98.jar", - "dependsOn" : [ ] - }, { - "ref" : "sonar-security-java-frontend-plugin-11.1.0.35630.sonar-plugin", - "dependsOn" : [ "thymeleaf-spring6-3.1.3.RELEASE.jar", "ucfg-11.1.0.35630.jar", "commons-text-1.13.0.jar", "tomcat-embed-el-10.1.39.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "spring-context-6.2.5.jar-2", "tomcat-embed-el-9.0.98.jar", "sonar-security-frontend-commons-11.1.0.35630.jar" ] - }, { - "ref" : "sonar-security-java-frontend-plugin-11.1.0.35630.sonar-plugin-2", - "dependsOn" : [ "commons-text-1.13.0.jar", "thymeleaf-spring6-3.1.3.RELEASE.jar", "ucfg-11.1.0.35630.jar-2", "spring-context-6.2.5.jar", "tomcat-embed-el-9.0.98.jar", "sonar-security-frontend-commons-11.1.0.35630.jar-2", "tomcat-embed-el-10.1.39.jar", "sonar-analyzer-commons-2.16.0.3141.jar" ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT-11", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar-2", "sonar-server-common-25.4-SNAPSHOT-28", "license-common-2025.3-SNAPSHOT", "license-api-2025.3-SNAPSHOT", "guava-33.4.5-jre.jar-2", "sonar-db-dao-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "sonar-ce-task-25.4-SNAPSHOT-2", "sonar-webserver-api-25.4-SNAPSHOT-5", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-9", "sonar-ws-25.4-SNAPSHOT-2", "commons-io-2.18.0.jar", "sonar-webserver-webapi-25.4-SNAPSHOT" ] - }, { - "ref" : "core-extension-monitoring-2025.3-SNAPSHOT", - "dependsOn" : [ "core-extension-license-2025.3-SNAPSHOT", "license-common-2025.3-SNAPSHOT" ] - }, { - "ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-6", - "dependsOn" : [ "sonar-webserver-auth-25.4-SNAPSHOT-7", "json-20250107.jar", "sonar-webserver-ws-25.4-SNAPSHOT-3", "jakarta.servlet-api-6.1.0.jar" ] - }, { - "ref" : "flex-checks-2.14.0.5032.jar-2", - "dependsOn" : [ "sslr-xpath-1.24.0.633.jar-2", "flex-squid-2.14.0.5032.jar", "sonar-analyzer-recognizers-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-flex-plugin-2.14.0.5032.jar-3", - "dependsOn" : [ "woodstox-core-lgpl-4.4.1.jar", "sonar-analyzer-commons-2.16.0.3141.jar", "staxmate-2.0.1.jar-2", "flex-checks-2.14.0.5032.jar-2", "flex-squid-2.14.0.5032.jar-2" ] - }, { - "ref" : "core-extension-license-2025.3-SNAPSHOT-12", - "dependsOn" : [ "sonar-ws-25.4-SNAPSHOT-2", "commons-io-2.18.0.jar", "sonar-webserver-webapi-25.4-SNAPSHOT-16", "sonar-server-common-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10", "sonar-webserver-api-25.4-SNAPSHOT-5", "sonar-ce-task-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT", "license-common-2025.3-SNAPSHOT-2", "license-api-2025.3-SNAPSHOT", "sonar-plugin-api-11.3.0.2824.jar" ] - }, { - "ref" : "sonar-webserver-auth-25.4-SNAPSHOT-13", - "dependsOn" : [ "sonar-core-25.4-SNAPSHOT", "guava-33.4.5-jre.jar", "gson-2.12.1.jar", "jakarta.servlet-api-6.1.0.jar", "jjwt-jackson-0.12.6.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "spotbugs-annotations-4.9.3.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT", "jjwt-api-0.12.6.jar", "sonar-auth-ldap-25.4-SNAPSHOT", "jjwt-impl-0.12.6.jar-2", "sonar-process-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-webserver-pushapi-25.4-SNAPSHOT-7", - "dependsOn" : [ "sonar-webserver-auth-25.4-SNAPSHOT-13", "json-20250107.jar", "sonar-webserver-ws-25.4-SNAPSHOT-2", "jakarta.servlet-api-6.1.0.jar" ] - }, { - "ref" : "java-surefire-8.11.0.38440.jar-2", - "dependsOn" : [ "staxmate-2.4.1.jar", "java-frontend-8.11.0.38440.jar-2", "sonar-xml-parsing-2.16.0.3141.jar" ] - }, { - "ref" : "spring-jcl-6.1.13.jar", - "dependsOn" : [ ] - }, { - "ref" : "spring-core-6.1.13.jar", - "dependsOn" : [ "spring-jcl-6.1.13.jar" ] - }, { - "ref" : "spring-expression-6.1.13.jar", - "dependsOn" : [ "spring-core-6.1.13.jar" ] - }, { - "ref" : "java-checks-8.11.0.38440.jar-3", - "dependsOn" : [ "java-checks-common-8.11.0.38440.jar-2", "spring-expression-6.2.5.jar-2", "commons-lang3-3.17.0.jar", "sonar-analyzer-recognizers-2.16.0.3141.jar", "java-frontend-8.11.0.38440.jar-2", "spring-expression-6.1.13.jar" ] - }, { - "ref" : "sonar-java-plugin-8.11.0.38440.jar-2", - "dependsOn" : [ "check-list-8.11.0.38440.jar", "java-jsp-8.11.0.38440.jar", "sonar-xml-parsing-2.16.0.3141.jar", "external-reports-8.11.0.38440.jar", "java-frontend-8.11.0.38440.jar-2", "java-surefire-8.11.0.38440.jar-2", "java-checks-8.11.0.38440.jar-3", "sonar-analyzer-commons-2.16.0.3141.jar", "java-checks-aws-8.11.0.38440.jar-2", "sonar-performance-measure-2.16.0.3141.jar" ] - }, { - "ref" : "sonar-webserver-core-25.4-SNAPSHOT-4", - "dependsOn" : [ "jjwt-jackson-0.12.6.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "sonar-webserver-api-25.4-SNAPSHOT-3", "sonar-webserver-pushapi-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "protobuf-java-4.30.1.jar", "gson-2.12.1.jar", "h2-2.3.232.jar", "sonar-db-migration-25.4-SNAPSHOT", "logback-classic-1.5.18.jar", "sonar-process-25.4-SNAPSHOT", "sonar-duplications-25.4-SNAPSHOT-3", "jjwt-api-0.12.6.jar", "log4j-api-2.24.3.jar", "sonar-ce-task-25.4-SNAPSHOT", "sonar-update-center-common-1.35.0.2835.jar-2", "logback-core-1.5.18.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "tomcat-embed-core-10.1.39.jar-2", "jul-to-slf4j-2.0.17.jar-2", "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-server-common-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT", "common-2.0.3.jar", "sonar-webserver-es-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "sonar-markdown-25.4-SNAPSHOT", "jjwt-impl-0.12.6.jar", "HikariCP-6.2.1.jar", "slf4j-api-2.0.17.jar", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-10" ] - }, { - "ref" : "sonar-duplications-25.4-SNAPSHOT-4", - "dependsOn" : [ "sonar-plugin-api-11.3.0.2824.jar", "sonar-channel-4.2.jar", "spotbugs-annotations-4.9.3.jar" ] - }, { - "ref" : "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-18", - "dependsOn" : [ "commons-io-2.18.0.jar", "sonar-process-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-server-common-25.4-SNAPSHOT", "sonar-duplications-25.4-SNAPSHOT-3", "sonar-scanner-protocol-25.4-SNAPSHOT", "diffutils-1.3.0.jar", "sonar-plugin-api-11.3.0.2824.jar", "slf4j-api-2.0.17.jar", "protobuf-java-4.30.1.jar", "guava-33.4.5-jre.jar", "jul-to-slf4j-2.0.17.jar-2", "gson-2.12.1.jar", "commons-codec-1.18.0.jar", "sonar-db-migration-25.4-SNAPSHOT", "commons-text-1.13.0.jar-2", "mybatis-3.5.19.jar", "commons-lang3-3.17.0.jar", "sonar-ce-task-25.4-SNAPSHOT", "core-3.1.0.jar", "sonar-db-dao-25.4-SNAPSHOT-3", "sonar-plugin-api-impl-25.4-SNAPSHOT", "spotbugs-annotations-4.9.3.jar", "sonar-core-25.4-SNAPSHOT" ] - }, { - "ref" : "sonar-webserver-core-25.4-SNAPSHOT-5", - "dependsOn" : [ "sonar-webserver-api-25.4-SNAPSHOT-2", "sonar-webserver-pushapi-25.4-SNAPSHOT-2", "spotbugs-annotations-4.9.3.jar", "HikariCP-6.2.1.jar", "slf4j-api-2.0.17.jar", "sonar-duplications-25.4-SNAPSHOT-4", "jjwt-api-0.12.6.jar", "jjwt-jackson-0.12.6.jar-2", "sonar-plugin-api-11.3.0.2824.jar", "jul-to-slf4j-2.0.17.jar-2", "protobuf-java-4.30.1.jar", "gson-2.12.1.jar", "h2-2.3.232.jar", "sonar-db-migration-25.4-SNAPSHOT", "logback-classic-1.5.18.jar", "sonar-process-25.4-SNAPSHOT", "log4j-api-2.24.3.jar", "sonar-ce-task-25.4-SNAPSHOT", "sonar-update-center-common-1.35.0.2835.jar-2", "logback-core-1.5.18.jar", "sonar-plugin-api-impl-25.4-SNAPSHOT", "sonar-core-25.4-SNAPSHOT", "tomcat-embed-core-10.1.39.jar", "sonar-webserver-webapi-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-3", "sonar-server-common-25.4-SNAPSHOT", "sonar-scanner-protocol-25.4-SNAPSHOT", "common-2.0.3.jar", "sonar-webserver-es-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT", "sonar-markdown-25.4-SNAPSHOT-3", "jjwt-impl-0.12.6.jar", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-18" ] - }, { - "ref" : "57347c6f-d4da-49af-b497-5e8003e2b3dd", - "dependsOn" : [ "sonar-abap-plugin-3.15.1.6010.sonar-plugin", "sonar-abap-plugin-3.15.1.6010.sonar-plugin-2", "sonar-javascript-plugin-10.21.1.30825-multi.jar", "sonar-architecture-java-frontend-plugin-1.9.0.4841.sonar-plugin", "sonar-architecture-java-frontend-plugin-1.9.0.4841.sonar-plugin-2", "spdx-jackson-store-2.0.0-RC2.jar", "spdx-jackson-store-2.0.0-RC2.jar-2", "sonar-html-plugin-3.19.0.5695.jar", "sonar-tsql-plugin-1.14.0.7614.sonar-plugin", "simpleclient-servlet-0.16.0.jar", "sonar-db-dao-25.4-SNAPSHOT", "sonar-db-dao-25.4-SNAPSHOT-2", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-2", "git-files-blame-1.1.0.1835.jar", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-3", "sonar-db-dao-25.4-SNAPSHOT-4", "sonar-db-dao-25.4-SNAPSHOT-5", "sonar-db-dao-25.4-SNAPSHOT-6", "sonar-db-dao-25.4-SNAPSHOT-7", "java-spdx-library-2.0.0-RC2.jar-2", "sonar-security-plugin-11.1.0.35630.sonar-plugin", "sonar-security-plugin-11.1.0.35630.sonar-plugin-2", "sonar-scanner-protocol-25.4-SNAPSHOT-2", "sonar-scanner-protocol-25.4-SNAPSHOT-3", "sonar-duplications-25.4-SNAPSHOT", "sonar-dbd-java-frontend-plugin-1.36.1.13250.sonar-plugin", "scribejava-core-8.3.3.jar-2", "react-18.3.1.tgz", "sonar-architecture-plugin-1.9.0.4841.sonar-plugin", "sonar-vbnet-enterprise-plugin-10.7.0.110445.sonar-plugin", "sonar-architecture-plugin-1.9.0.4841.sonar-plugin-2", "sonar-ce-common-25.4-SNAPSHOT", "sonar-ce-common-25.4-SNAPSHOT-2", "HikariCP-6.2.1.jar", "json-20250107.jar", "simpleclient-common-0.16.0.jar-2", "log4j-api-2.24.3.jar", "valid-url-1.0.9.tgz", "react-router-dom-6.26.2.tgz", "sonar-sarif-25.4-SNAPSHOT-2", "sonar-sarif-25.4-SNAPSHOT-3", "sonar-ws-25.4-SNAPSHOT-2", "sonar-ws-25.4-SNAPSHOT-3", "echoes-react-0.16.1.tgz", "sonar-cobol-plugin-5.8.1.8428.sonar-plugin", "log4j-to-slf4j-2.24.3.jar", "sonar-webserver-es-25.4-SNAPSHOT", "react-day-picker-8.10.1.tgz", "sonar-webserver-api-25.4-SNAPSHOT", "sonar-webserver-api-25.4-SNAPSHOT-2", "styled-11.13.0.tgz", "styled-11.13.0.tgz-2", "sonar-security-php-frontend-plugin-11.1.0.35630.sonar-plugin", "scribejava-apis-8.3.3.jar-3", "sonar-security-php-frontend-plugin-11.1.0.35630.sonar-plugin-2", "scribejava-apis-8.3.3.jar-4", "sonar-auth-common-25.4-SNAPSHOT", "scribejava-apis-8.3.3.jar-2", "sonar-auth-common-25.4-SNAPSHOT-2", "sonar-alm-client-25.4-SNAPSHOT", "sonar-alm-client-25.4-SNAPSHOT-2", "sonar-alm-client-25.4-SNAPSHOT-3", "jjwt-jackson-0.12.6.jar", "sonar-webserver-api-25.4-SNAPSHOT-4", "core-extension-gitlab-provisioning-2025.3-SNAPSHOT", "sonar-rpg-plugin-3.10.0.5337.sonar-plugin", "sonar-dbd-python-frontend-plugin-1.36.1.13250.sonar-plugin", "scanner-developer-2025.3-SNAPSHOT", "core-extension-securityreport-2025.3-SNAPSHOT", "sonar-update-center-common-1.35.0.2835.jar", "core-extension-scim-2025.3-SNAPSHOT", "security-report-pdf-generation-2.0.0.184.jar-2", "sonar-webserver-webapi-v2-25.4-SNAPSHOT", "sonar-webserver-webapi-v2-25.4-SNAPSHOT-2", "sonar-scanner-engine-shaded-25.4-SNAPSHOT", "sonar-webserver-webapi-v2-25.4-SNAPSHOT-3", "sonar-webserver-webapi-v2-25.4-SNAPSHOT-4", "sonar-plugin-api-impl-25.4-SNAPSHOT-2", "sonar-scanner-engine-25.4-SNAPSHOT-3", "sonar-plugin-api-impl-25.4-SNAPSHOT-3", "sonar-scanner-engine-25.4-SNAPSHOT-4", "sonar-plugin-api-impl-25.4-SNAPSHOT-4", "core-extension-ce-workers-2025.3-SNAPSHOT", "sonar-webserver-api-25.4-SNAPSHOT-5", "sonar-scanner-engine-25.4-SNAPSHOT-5", "sonar-webserver-api-25.4-SNAPSHOT-6", "echoes-react-0.10.1.tgz", "sonar-webserver-api-25.4-SNAPSHOT-7", "sonar-scanner-engine-25.4-SNAPSHOT-6", "svnkit-1.10.11.jar-2", "core-extension-gitlab-vulnerability-report-2025.3-SNAPSHOT", "sonar-webserver-api-25.4-SNAPSHOT-8", "sonar-scanner-engine-25.4-SNAPSHOT-7", "sonar-iac-enterprise-plugin-1.44.0.14670.jar", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-4", "scanner-enterprise-2025.3-SNAPSHOT", "scanner-datacenter-2025.3-SNAPSHOT", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-5", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-6", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-7", "sonar-webserver-auth-25.4-SNAPSHOT-2", "sonar-webserver-auth-25.4-SNAPSHOT-3", "sonar-webserver-auth-25.4-SNAPSHOT-4", "sonar-webserver-auth-25.4-SNAPSHOT-5", "sonar-ce-task-projectanalysis-25.4-SNAPSHOT-8", "sonar-core-25.4-SNAPSHOT-7", "sonar-core-25.4-SNAPSHOT-8", "sonar-core-25.4-SNAPSHOT-9", "sonar-core-25.4-SNAPSHOT-10", "sonar-core-25.4-SNAPSHOT-11", "sonar-core-25.4-SNAPSHOT-6", "sonar-core-25.4-SNAPSHOT-12", "sonar-core-25.4-SNAPSHOT-13", "sonar-core-25.4-SNAPSHOT-14", "sonar-core-25.4-SNAPSHOT-15", "sonar-core-25.4-SNAPSHOT-16", "sonar-core-25.4-SNAPSHOT-17", "sonar-core-25.4-SNAPSHOT-18", "sonar-core-25.4-SNAPSHOT-19", "bcpkix-jdk18on-1.80.jar", "dompurify-3.2.4.tgz", "lodash-4.17.21.tgz", "sonar-core-25.4-SNAPSHOT-20", "sonar-core-25.4-SNAPSHOT-21", "sonar-core-25.4-SNAPSHOT-22", "sonar-core-25.4-SNAPSHOT-23", "sonar-core-25.4-SNAPSHOT-24", "sonar-core-25.4-SNAPSHOT-25", "date-fns-4.1.0.tgz", "jjwt-impl-0.12.6.jar", "sonar-core-25.4-SNAPSHOT-26", "sonar-core-25.4-SNAPSHOT-27", "sonar-core-25.4-SNAPSHOT-28", "sonar-core-25.4-SNAPSHOT-29", "d3-selection-3.0.0.tgz", "sonar-core-25.4-SNAPSHOT-5", "sonar-core-25.4-SNAPSHOT-30", "react-11.11.4.tgz", "sonar-apex-plugin-1.18.0.198.jar", "octicons-react-19.11.0.tgz", "commons-io-2.18.0.jar", "react-11.11.4.tgz-2", "sonar-core-25.4-SNAPSHOT-31", "sonar-core-25.4-SNAPSHOT-32", "sonar-iac-plugin-1.44.0.14670.jar", "sonar-text-plugin-2.21.1.5779.jar", "sonar-core-25.4-SNAPSHOT-33", "sonar-core-25.4-SNAPSHOT-34", "sonar-vb-plugin-2.14.0.5475.sonar-plugin", "sonar-core-25.4-SNAPSHOT-35", "react-query-5.56.2.tgz", "d3-zoom-3.0.0.tgz", "commons-exec-1.4.0.jar", "sonar-ruby-plugin-1.18.0.234.jar", "echoes-react-0.15.2.tgz", "sonar-auth-saml-25.4-SNAPSHOT", "sonar-auth-github-25.4-SNAPSHOT", "hibernate-validator-8.0.2.Final.jar-2", "sonar-auth-github-25.4-SNAPSHOT-2", "core-extension-enterprise-server-2025.3-SNAPSHOT", "license-api-2025.3-SNAPSHOT", "license-api-2025.3-SNAPSHOT-2", "sonar-plugin-api-11.3.0.2824.jar-2", "sonar-vbnet-plugin-10.7.0.110445.jar", "sonar-auth-saml-25.4-SNAPSHOT-2", "sonar-auth-saml-25.4-SNAPSHOT-3", "sonar-shutdowner-25.4-SNAPSHOT", "sonar-jacoco-plugin-1.3.0.1538.jar", "sonar-auth-saml-25.4-SNAPSHOT-4", "core-extension-developer-server-2025.3-SNAPSHOT-2", "core-extension-developer-server-2025.3-SNAPSHOT-3", "core-extension-developer-server-2025.3-SNAPSHOT-4", "core-extension-enterprise-server-2025.3-SNAPSHOT-2", "sonar-dart-plugin-1.1.0.2133.jar", "provisioning-common-2025.3-SNAPSHOT-3", "provisioning-common-2025.3-SNAPSHOT-4", "sonar-python-enterprise-plugin-5.2.0.20808.sonar-plugin", "sonar-python-enterprise-plugin-5.2.0.20808.sonar-plugin-2", "sonar-csharp-enterprise-plugin-10.7.0.110445.sonar-plugin", "sonar-plsql-plugin-3.15.0.7123.sonar-plugin", "sonar-plsql-plugin-3.15.0.7123.sonar-plugin-2", "core-extension-developer-server-2025.3-SNAPSHOT-5", "sonar-auth-gitlab-25.4-SNAPSHOT-4", "logback-access-tomcat-2.0.6.jar", "sonar-auth-gitlab-25.4-SNAPSHOT-5", "sonar-channel-4.2.jar-3", "sonar-markdown-25.4-SNAPSHOT-2", "sonar-markdown-25.4-SNAPSHOT", "sonar-java-symbolic-execution-plugin-8.11.0.38440.jar", "sonar-auth-bitbucket-25.4-SNAPSHOT", "sonar-swift-plugin-4.13.1.8101.sonar-plugin", "sonar-channel-4.2.jar-2", "postgresql-42.7.5.jar", "core-extension-developer-server-2025.3-SNAPSHOT-6", "sonar-auth-gitlab-25.4-SNAPSHOT-6", "sonar-auth-gitlab-25.4-SNAPSHOT-7", "sonar-db-migration-25.4-SNAPSHOT-11", "sonar-db-migration-25.4-SNAPSHOT-12", "sonar-db-migration-25.4-SNAPSHOT-3", "sonar-db-migration-25.4-SNAPSHOT-7", "common-2.0.3.jar", "sonar-core-25.4-SNAPSHOT-36", "sonar-core-25.4-SNAPSHOT-37", "sonar-process-25.4-SNAPSHOT-3", "sonar-process-25.4-SNAPSHOT-4", "sonar-process-25.4-SNAPSHOT-5", "sonar-auth-ldap-25.4-SNAPSHOT", "diffutils-1.3.0.jar", "tomcat-embed-core-10.1.39.jar", "bcprov-jdk18on-1.80.jar", "sonar-cayc-plugin-2.4.0.2018.jar", "d3-scale-4.0.2.tgz", "d3-scale-4.0.2.tgz-2", "sonar-server-common-25.4-SNAPSHOT-14", "sonar-server-common-25.4-SNAPSHOT-15", "sonar-server-common-25.4-SNAPSHOT-16", "sonar-server-common-25.4-SNAPSHOT-9", "sonar-server-common-25.4-SNAPSHOT-17", "sonar-server-common-25.4-SNAPSHOT-18", "sonar-server-common-25.4-SNAPSHOT-19", "sonar-server-common-25.4-SNAPSHOT-20", "sonar-telemetry-core-25.4-SNAPSHOT-5", "backdating-plugin-v1-2025.3-SNAPSHOT", "sonar-server-common-25.4-SNAPSHOT-21", "sonar-ce-task-25.4-SNAPSHOT-2", "sonar-telemetry-core-25.4-SNAPSHOT-2", "sonar-telemetry-core-25.4-SNAPSHOT-6", "sonar-ce-task-25.4-SNAPSHOT-3", "core-extension-developer-scanner-2025.3-SNAPSHOT-3", "core-extension-developer-scanner-2025.3-SNAPSHOT-4", "core-extension-developer-scanner-2025.3-SNAPSHOT-5", "core-extension-fix-suggestions-2025.3-SNAPSHOT", "sonar-db-core-25.4-SNAPSHOT", "sonar-db-core-25.4-SNAPSHOT-5", "sonar-server-common-25.4-SNAPSHOT-7", "sonar-php-plugin-3.45.0.12991.jar", "license-common-2025.3-SNAPSHOT-2", "sca-application-2025.3-SNAPSHOT", "sonar-python-plugin-5.2.0.20808.jar", "sonar-telemetry-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-2", "sonar-main-25.4-SNAPSHOT", "sonar-process-25.4-SNAPSHOT-6", "sonar-process-25.4-SNAPSHOT-7", "sca-application-2025.3-SNAPSHOT-2", "org.jacoco.agent-0.8.11.jar", "webapp-assets-2025.3.0.14738.jar", "webapp-assets-enterprise-2025.3.0.14738.jar", "dd-java-agent-1.30.1.jar", "sonar-xml-plugin-2.12.0.5749.jar", "sonar-jcl-plugin-1.4.1.1493.sonar-plugin", "commons-lang3-3.17.0.jar", "spotbugs-annotations-4.9.3.jar-2", "spotbugs-annotations-4.9.3.jar-3", "spring-context-6.2.5.jar", "snakeyaml-2.4.jar", "pdfbox-3.0.4.jar-2", "slf4j-api-2.0.17.jar", "elasticsearch-rest-high-level-client-7.17.28.jar", "elasticsearch-rest-high-level-client-7.17.28.jar-4", "commons-csv-1.14.0.jar", "jsoup-1.19.1.jar", "springdoc-openapi-starter-webmvc-api-2.8.6.jar-2", "springdoc-openapi-starter-webmvc-api-2.8.6.jar-3", "protobuf-java-4.30.1.jar", "org.eclipse.jgit-7.2.0.202503040940-r.jar-2", "commons-codec-1.18.0.jar", "logback-classic-1.5.18.jar-2", "jul-to-slf4j-2.0.17.jar", "github-api-1.327.jar-3", "github-api-1.327.jar-4", "gson-2.12.1.jar-2", "java-jwt-4.5.0.jar", "cyclonedx-core-java-10.2.1.jar-2", "guava-33.4.5-jre.jar-2", "guava-33.4.5-jre.jar-3", "jackson-databind-2.18.3.jar-6", "mssql-jdbc-12.10.0.jre11.jar", "jackson-databind-2.18.3.jar-7", "msal4j-1.19.1.jar", "spring-webmvc-6.2.5.jar-4", "sslcontext-kickstart-9.1.0.jar", "log4j-over-slf4j-2.0.17.jar", "spring-security-saml2-service-provider-6.4.4.jar-4", "json-sKema-0.21.0.jar", "jcl-over-slf4j-2.0.17.jar-2", "protoc-4.30.1.exe", "logback-core-1.5.18.jar", "org.jacoco.ant-0.8.11.jar", "jakarta.servlet-api-6.1.0.jar", "sonar-pli-plugin-1.16.0.5325.sonar-plugin", "logging-interceptor-4.12.0.jar-2", "okhttp-4.12.0.jar-3", "sonar-cfamily-plugin-6.65.0.81949.jar", "sonar-cfamily-dependencies-plugin-6.65.0.81949.jar", "okhttp-4.12.0.jar-2", "sonar-kotlin-plugin-3.0.1.6889.jar", "junit-4.13.2.jar", "elasticsearch-8.16.3-no-jdk.tar.gz", "sonar-text-enterprise-plugin-2.21.1.5779.jar", "sonar-text-developer-plugin-2.21.1.5779.jar", "sonar-webserver-webapi-25.4-SNAPSHOT-2", "sonar-webserver-webapi-25.4-SNAPSHOT-3", "sonar-webserver-webapi-25.4-SNAPSHOT-4", "sonar-webserver-webapi-25.4-SNAPSHOT-5", "sonar-webserver-webapi-25.4-SNAPSHOT-6", "sonar-webserver-webapi-25.4-SNAPSHOT-7", "sonar-webserver-webapi-25.4-SNAPSHOT-8", "sonar-webserver-webapi-25.4-SNAPSHOT-9", "sonar-webserver-webapi-25.4-SNAPSHOT-10", "sonar-go-plugin-1.21.1.1670.jar", "sonar-go-enterprise-plugin-1.21.1.1670.jar", "core-extension-github-provisioning-2025.3-SNAPSHOT", "core-extension-ha-2025.3-SNAPSHOT", "sonar-webserver-25.4-SNAPSHOT", "sonar-application-25.4-SNAPSHOT", "h2-2.3.232.jar", "jfreechart-1.5.5.jar", "core-extension-common-2025.3-SNAPSHOT", "core-extension-common-2025.3-SNAPSHOT-2", "core-extension-ai-code-assurance-2025.3-SNAPSHOT", "core-extension-architecture-2025.3-SNAPSHOT", "sonar-application-25.4-SNAPSHOT-2", "staxmate-2.4.1.jar", "sonar-classloader-1.1.0.1059.jar", "commons-email2-jakarta-2.0.0-M1.jar", "react-joyride-2.8.2.tgz", "clipboard-2.0.11.tgz", "sonar-dbd-plugin-1.36.1.13250.sonar-plugin", "sonar-webserver-monitoring-25.4-SNAPSHOT", "jsr305-3.0.2.jar", "sonar-webserver-monitoring-25.4-SNAPSHOT-3", "core-extension-sca-2025.3-SNAPSHOT-2", "react-virtualized-9.22.5.tgz", "react-modal-3.16.1.tgz", "react-modal-3.16.1.tgz-2", "d3-array-3.2.4.tgz", "react-modal-3.16.1.tgz-3", "lz4-java-1.8.0.jar", "sonar-webserver-common-25.4-SNAPSHOT-3", "sonar-webserver-common-25.4-SNAPSHOT-5", "core-extension-sca-2025.3-SNAPSHOT-3", "sonar-webserver-ws-25.4-SNAPSHOT-2", "sonar-webserver-ws-25.4-SNAPSHOT-6", "react-highlight-words-0.20.0.tgz", "sonar-webserver-ws-25.4-SNAPSHOT-7", "yguard-4.1.1.jar", "sonar-webserver-webapi-25.4-SNAPSHOT-14", "d3-shape-3.2.0.tgz", "simpleclient-0.16.0.jar-2", "sonar-webserver-webapi-25.4-SNAPSHOT-11", "sonar-webserver-webapi-25.4-SNAPSHOT-13", "sonar-security-csharp-frontend-plugin-11.1.0.35630.sonar-plugin", "sca-container-2025.3-SNAPSHOT-2", "sonar-ce-25.4-SNAPSHOT-2", "sca-container-2025.3-SNAPSHOT-3", "sonar-csharp-plugin-10.7.0.110445.jar-2", "sca-container-2025.3-SNAPSHOT-4", "sonar-security-python-frontend-plugin-11.1.0.35630.sonar-plugin", "react-intl-6.7.0.tgz", "react-intl-6.7.0.tgz-2", "mybatis-3.5.19.jar", "sonar-scala-plugin-1.18.0.266.jar", "d3-hierarchy-3.1.2.tgz", "jakarta.inject-api-2.0.1.jar", "markdownlint-cli-0.42.0.tgz", "react-intl-6.7.0.tgz-3", "core-extension-license-2025.3-SNAPSHOT-4", "sonar-security-js-frontend-plugin-11.1.0.35630.sonar-plugin", "core-extension-license-2025.3-SNAPSHOT-5", "core-extension-license-2025.3-SNAPSHOT-6", "core-extension-license-2025.3-SNAPSHOT-7", "react-dom-18.3.1.tgz", "core-extension-license-2025.3-SNAPSHOT-8", "react-select-5.7.7.tgz", "react-select-5.7.7.tgz-2", "react-select-5.7.7.tgz-3", "core-extension-license-2025.3-SNAPSHOT-9", "react-select-5.7.7.tgz-4", "jakarta.annotation-api-3.0.0.jar", "hazelcast-5.4.0.jar", "classnames-2.5.1.tgz", "core-3.1.0.jar", "jjwt-api-0.12.6.jar", "commons-text-1.13.0.jar", "core-extension-license-2025.3-SNAPSHOT-10", "axios-1.8.2.tgz", "axios-1.8.2.tgz-2", "sonar-security-java-frontend-plugin-11.1.0.35630.sonar-plugin", "sonar-security-java-frontend-plugin-11.1.0.35630.sonar-plugin-2", "core-extension-license-2025.3-SNAPSHOT-11", "core-extension-monitoring-2025.3-SNAPSHOT", "sonar-webserver-pushapi-25.4-SNAPSHOT-6", "sonar-flex-plugin-2.14.0.5032.jar-3", "core-extension-license-2025.3-SNAPSHOT-12", "sonar-webserver-pushapi-25.4-SNAPSHOT", "sonar-webserver-pushapi-25.4-SNAPSHOT-7", "sonar-webserver-pushapi-25.4-SNAPSHOT-3", "sonar-java-plugin-8.11.0.38440.jar-2", "sonar-webserver-core-25.4-SNAPSHOT-4", "sonar-webserver-core-25.4-SNAPSHOT-5" ] - } ], - "vulnerabilities" : [ { - "id" : "CVE-2024-21538", - "source" : { - "name" : "NVD", - "url" : "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2024-21538" - }, - "ratings" : [ { - "score" : 7.5, - "severity" : "high", - "method" : "CVSSv3", - "vector" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H/E:P" - } ], - "analysis" : { - "state" : "exploitable", - "response" : [ "will_not_fix", "update" ], - "detail" : "SonarQube is not vulnerable to the ReDoS as this package is only used during the development and testing phases." - }, - "affects" : [ { - "ref" : "cross-spawn-7.0.3.tgz" - } ] - }, { - "id" : "CVE-2025-27789", - "source" : { - "name" : "NVD", - "url" : "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2025-27789" - }, - "ratings" : [ { - "score" : 6.2, - "severity" : "medium", - "method" : "CVSSv3", - "vector" : "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" - } ], - "analysis" : { - "state" : "exploitable", - "response" : [ "will_not_fix" ], - "detail" : "SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases." - }, - "affects" : [ { - "ref" : "runtime-7.17.9.tgz" - } ] - }, { - "id" : "CVE-2025-27789", - "source" : { - "name" : "NVD", - "url" : "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2025-27789" - }, - "ratings" : [ { - "score" : 6.2, - "severity" : "medium", - "method" : "CVSSv3", - "vector" : "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" - } ], - "analysis" : { - "state" : "exploitable", - "response" : [ "will_not_fix" ], - "detail" : "SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases." - }, - "affects" : [ { - "ref" : "runtime-7.17.8.tgz" - } ] - }, { - "id" : "CVE-2025-27789", - "source" : { - "name" : "NVD", - "url" : "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2025-27789" - }, - "ratings" : [ { - "score" : 6.2, - "severity" : "medium", - "method" : "CVSSv3", - "vector" : "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" - } ], - "analysis" : { - "state" : "exploitable", - "response" : [ "will_not_fix" ], - "detail" : "SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases." - }, - "affects" : [ { - "ref" : "runtime-7.16.5.tgz" - } ] - }, { - "id" : "CVE-2025-27789", - "source" : { - "name" : "NVD", - "url" : "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2025-27789" - }, - "ratings" : [ { - "score" : 6.2, - "severity" : "medium", - "method" : "CVSSv3", - "vector" : "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" - } ], - "analysis" : { - "state" : "exploitable", - "response" : [ "will_not_fix" ], - "detail" : "SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases." - }, - "affects" : [ { - "ref" : "runtime-7.16.3.tgz" - } ] - }, { - "id" : "CVE-2025-27789", - "source" : { - "name" : "NVD", - "url" : "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2025-27789" - }, - "ratings" : [ { - "score" : 6.2, - "severity" : "medium", - "method" : "CVSSv3", - "vector" : "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" - } ], - "analysis" : { - "state" : "exploitable", - "response" : [ "will_not_fix" ], - "detail" : "SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases." - }, - "affects" : [ { - "ref" : "runtime-7.21.5.tgz-2" - }, { - "ref" : "runtime-7.21.5.tgz" - } ] - }, { - "id" : "CVE-2025-27789", - "source" : { - "name" : "NVD", - "url" : "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2025-27789" - }, - "ratings" : [ { - "score" : 6.2, - "severity" : "medium", - "method" : "CVSSv3", - "vector" : "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" - } ], - "analysis" : { - "state" : "exploitable", - "response" : [ "will_not_fix" ], - "detail" : "SonarQube does not use a replace method call with named groups with untrusted strings in both the sonar-enterprise and transitive sonarqube-webapp codebases." - }, - "affects" : [ { - "ref" : "runtime-7.18.9.tgz" - }, { - "ref" : "runtime-7.18.9.tgz-3" - }, { - "ref" : "runtime-7.18.9.tgz-2" - } ] - }, { - "id" : "CVE-2020-36843", - "source" : { - "name" : "NVD", - "url" : "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-36843" - }, - "ratings" : [ { - "score" : 4.3, - "severity" : "medium", - "method" : "CVSSv3", - "vector" : "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N" - } ], - "analysis" : { - "state" : "exploitable", - "response" : [ "will_not_fix" ], - "detail" : "SonarQube application does not use this library and it has been removed" - }, - "affects" : [ { - "ref" : "eddsa-0.3.0.jar" - } ] - } ] -}
\ No newline at end of file diff --git a/sonar-core/src/main/java/org/sonar/core/config/AiCodefixPropertyDefinitions.java b/sonar-core/src/main/java/org/sonar/core/config/AiCodefixPropertyDefinitions.java new file mode 100644 index 00000000000..328cfb94813 --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/config/AiCodefixPropertyDefinitions.java @@ -0,0 +1,47 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.core.config; + +import java.util.List; +import org.sonar.api.PropertyType; +import org.sonar.api.config.PropertyDefinition; + +import static org.sonar.api.config.PropertyDefinition.builder; + +public class AiCodefixPropertyDefinitions { + public static final String PROP_AI_CODEFIX_HIDDEN = "sonar.ai.codefix.hidden"; + public static final String AI_CODE_CATEGORY = "ai_codefix"; + + private AiCodefixPropertyDefinitions() { + // only static stuff + } + + public static List<PropertyDefinition> all() { + return List.of( + builder(PROP_AI_CODEFIX_HIDDEN) + .name("AI Codefix feature hidden") + .description("Defines if the AI Codefix feature should be hidden across the product, including its marketing content.") + .type(PropertyType.BOOLEAN) + .hidden() + .category(AI_CODE_CATEGORY) + .defaultValue(Boolean.toString(false)) + .build()); + } +} diff --git a/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java b/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java index e4055f7c1b1..beb314cae1e 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java +++ b/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java @@ -66,6 +66,7 @@ public class CorePropertyDefinitions { defs.addAll(PurgeProperties.all()); defs.addAll(ScannerProperties.all()); defs.addAll(MQRModeProperties.all()); + defs.addAll(AiCodefixPropertyDefinitions.all()); defs.addAll(asList( PropertyDefinition.builder(CoreProperties.MODULE_LEVEL_ARCHIVED_SETTINGS) diff --git a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java index c26edf6709e..c8e1a7fa4a8 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java @@ -28,7 +28,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Date; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; @@ -518,25 +517,6 @@ public class DefaultIssue implements Issue, Trackable { return this; } - /** - * @deprecated since 9.4, attribute was already not returning any element since 5.2 - */ - @Deprecated - @Override - @CheckForNull - public String attribute(String key) { - return null; - } - - /** - * @deprecated since 9.4, attribute was already not returning any element since 5.2 - */ - @Deprecated - @Override - public Map<String, String> attributes() { - return new HashMap<>(); - } - @Override @CheckForNull public String authorLogin() { diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/roots/SetRootRequest.java b/sonar-core/src/main/java/org/sonar/core/scadata/DefaultScaDataSourceImpl.java index d7b7b2a74c7..24276ae7a53 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/roots/SetRootRequest.java +++ b/sonar-core/src/main/java/org/sonar/core/scadata/DefaultScaDataSourceImpl.java @@ -17,31 +17,25 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.ws.client.roots; +package org.sonar.core.scadata; -import jakarta.annotation.Generated; +import jakarta.annotation.Priority; +import org.sonar.api.server.ServerSide; + +import java.util.OptionalInt; /** - * This is part of the internal API. - * This is a POST request. - * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/roots/set_root">Further information about this action online (including a response example)</a> - * @since 6.2 + * Default implementation of {@link ScaDataSource} that provides default, no-op values + * when SCA extension is not available. */ -@Generated("sonar-ws-generator") -public class SetRootRequest { - - private String login; - - /** - * This is a mandatory parameter. - * Example value: "admin" - */ - public SetRootRequest setLogin(String login) { - this.login = login; - return this; +@ServerSide +@Priority(2) +public class DefaultScaDataSourceImpl implements ScaDataSource { + public int getVulnerabilityCount(String componentUuid) { + return 0; } - public String getLogin() { - return login; + public OptionalInt getVulnerabilityRating(String componentUuid) { + return OptionalInt.empty(); } } diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/roots/UnsetRootRequest.java b/sonar-core/src/main/java/org/sonar/core/scadata/ScaDataSource.java index 0d4ebef768b..10b56d79b9c 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/roots/UnsetRootRequest.java +++ b/sonar-core/src/main/java/org/sonar/core/scadata/ScaDataSource.java @@ -17,31 +17,17 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.ws.client.roots; +package org.sonar.core.scadata; -import jakarta.annotation.Generated; - -/** - * This is part of the internal API. - * This is a POST request. - * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/roots/unset_root">Further information about this action online (including a response example)</a> - * @since 6.2 - */ -@Generated("sonar-ws-generator") -public class UnsetRootRequest { - - private String login; +import java.util.OptionalInt; +public interface ScaDataSource { /** - * This is a mandatory parameter. - * Example value: "admin" + * The component UUID could be a regular project, or it could be an application. + * It is not yet resolved to a list of real branches. + * @param componentUuid the component UUID + * @return count of how many vulnerabilities */ - public UnsetRootRequest setLogin(String login) { - this.login = login; - return this; - } - - public String getLogin() { - return login; - } + int getVulnerabilityCount(String componentUuid); + OptionalInt getVulnerabilityRating(String componentUuid); } diff --git a/sonar-core/src/main/java/org/sonar/core/scadata/package-info.java b/sonar-core/src/main/java/org/sonar/core/scadata/package-info.java new file mode 100644 index 00000000000..f0dba2ec833 --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/scadata/package-info.java @@ -0,0 +1,20 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.core.scadata; diff --git a/sonar-core/src/test/java/org/sonar/core/scadata/DefaultScaDataSourceImplTest.java b/sonar-core/src/test/java/org/sonar/core/scadata/DefaultScaDataSourceImplTest.java new file mode 100644 index 00000000000..08c6a38f324 --- /dev/null +++ b/sonar-core/src/test/java/org/sonar/core/scadata/DefaultScaDataSourceImplTest.java @@ -0,0 +1,48 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.core.scadata; + +import org.junit.Test; +import java.util.OptionalInt; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.mock; + +public class DefaultScaDataSourceImplTest { + private final DefaultScaDataSourceImpl dataSource = mock(DefaultScaDataSourceImpl.class); + + @Test + public void getVulnerabilityCount_defaultsToZero() { + String componentUuid = "component-uuid"; + + int vulnerabilityCount = dataSource.getVulnerabilityCount(componentUuid); + + assertEquals(0, vulnerabilityCount); + } + + @Test + public void getVulnerabilityRating_defaultsToEmpty() { + String componentUuid = "component-uuid"; + + OptionalInt vulnerabilityRating = dataSource.getVulnerabilityRating(componentUuid); + + assertEquals(OptionalInt.empty(), vulnerabilityRating); + } +} diff --git a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/DefaultIndexedFile.java b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/DefaultIndexedFile.java index c170fccd935..686d37d8b5d 100644 --- a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/DefaultIndexedFile.java +++ b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/DefaultIndexedFile.java @@ -50,22 +50,24 @@ public class DefaultIndexedFile extends DefaultInputComponent implements Indexed private final Path absolutePath; private final SensorStrategy sensorStrategy; private final String oldRelativeFilePath; + private final boolean hidden; + private final URI uri; /** * Testing purposes only! */ public DefaultIndexedFile(String projectKey, Path baseDir, String relativePath, @Nullable String language) { this(baseDir.resolve(relativePath), projectKey, relativePath, relativePath, Type.MAIN, language, intGenerator.getAndIncrement(), - new SensorStrategy(), null); + new SensorStrategy(), null, false); } public DefaultIndexedFile(Path absolutePath, String projectKey, String projectRelativePath, String moduleRelativePath, Type type, @Nullable String language, int batchId, - SensorStrategy sensorStrategy) { - this(absolutePath, projectKey, projectRelativePath, moduleRelativePath, type, language, batchId, sensorStrategy, null); + SensorStrategy sensorStrategy, boolean hidden) { + this(absolutePath, projectKey, projectRelativePath, moduleRelativePath, type, language, batchId, sensorStrategy, null, hidden); } public DefaultIndexedFile(Path absolutePath, String projectKey, String projectRelativePath, String moduleRelativePath, Type type, @Nullable String language, int batchId, - SensorStrategy sensorStrategy, @Nullable String oldRelativeFilePath) { + SensorStrategy sensorStrategy, @Nullable String oldRelativeFilePath, boolean hidden) { super(batchId); this.projectKey = projectKey; this.projectRelativePath = checkSanitize(projectRelativePath); @@ -74,13 +76,15 @@ public class DefaultIndexedFile extends DefaultInputComponent implements Indexed this.language = language; this.sensorStrategy = sensorStrategy; this.absolutePath = absolutePath; + this.uri = absolutePath.toUri(); this.oldRelativeFilePath = oldRelativeFilePath; + this.hidden = hidden; validateKeyLength(); } static String checkSanitize(String relativePath) { String sanitized = PathUtils.sanitize(relativePath); - if(sanitized == null) { + if (sanitized == null) { throw new IllegalArgumentException(String.format("The path '%s' must sanitize to a non-null value", relativePath)); } return sanitized; @@ -185,7 +189,12 @@ public class DefaultIndexedFile extends DefaultInputComponent implements Indexed } @Override + public boolean isHidden() { + return hidden; + } + + @Override public URI uri() { - return path().toUri(); + return uri; } } diff --git a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java index 79917fcf37c..e1d0cbbb0fd 100644 --- a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java +++ b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java @@ -73,7 +73,6 @@ public class DefaultInputFile extends DefaultInputComponent implements InputFile private BitSet executableLines; private boolean markedAsUnchanged; - public DefaultInputFile(DefaultIndexedFile indexedFile, Consumer<DefaultInputFile> metadataGenerator, Consumer<DefaultInputFile> scmStatusGenerator) { this(indexedFile, metadataGenerator, null, scmStatusGenerator); } @@ -99,7 +98,7 @@ public class DefaultInputFile extends DefaultInputComponent implements InputFile } private void checkScmStatus() { - if(status == null) { + if (status == null) { scmStatusGenerator.accept(this); } } @@ -108,7 +107,7 @@ public class DefaultInputFile extends DefaultInputComponent implements InputFile public InputStream inputStream() throws IOException { return contents != null ? new ByteArrayInputStream(contents.getBytes(charset())) : new BOMInputStream(Files.newInputStream(path()), - ByteOrderMark.UTF_8, ByteOrderMark.UTF_16LE, ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_32LE, ByteOrderMark.UTF_32BE); + ByteOrderMark.UTF_8, ByteOrderMark.UTF_16LE, ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_32LE, ByteOrderMark.UTF_32BE); } public boolean isMarkedAsUnchanged() { @@ -212,6 +211,11 @@ public class DefaultInputFile extends DefaultInputComponent implements InputFile return indexedFile.type(); } + @Override + public boolean isHidden() { + return indexedFile.isHidden(); + } + /** * Component key (without branch). */ @@ -236,7 +240,7 @@ public class DefaultInputFile extends DefaultInputComponent implements InputFile @Override public Status status() { checkScmStatus(); - if(status == null) { + if (status == null) { // scm might not be available, fallback to using hashes in the metadata checkMetadata(); } diff --git a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/TestInputFileBuilder.java b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/TestInputFileBuilder.java index d2f303e1a01..de7a194d9ff 100644 --- a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/TestInputFileBuilder.java +++ b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/TestInputFileBuilder.java @@ -74,6 +74,7 @@ public class TestInputFileBuilder { private int lastValidOffset = -1; private boolean publish = true; private String contents; + private boolean hidden = false; /** * Create a InputFile identified by the given project key and relative path. @@ -206,6 +207,11 @@ public class TestInputFileBuilder { return this; } + public TestInputFileBuilder setHidden(boolean isHiddenFile) { + this.hidden = isHiddenFile; + return this; + } + public TestInputFileBuilder setMetadata(Metadata metadata) { this.setLines(metadata.lines()); this.setLastValidOffset(metadata.lastValidOffset()); @@ -227,7 +233,8 @@ public class TestInputFileBuilder { projectBaseDir = moduleBaseDir; } String projectRelativePath = projectBaseDir.relativize(absolutePath).toString(); - DefaultIndexedFile indexedFile = new DefaultIndexedFile(absolutePath, projectKey, projectRelativePath, relativePath, type, language, id, new SensorStrategy(), oldRelativePath); + DefaultIndexedFile indexedFile = new DefaultIndexedFile(absolutePath, projectKey, projectRelativePath, relativePath, type, language, id, new SensorStrategy(), oldRelativePath, + hidden); DefaultInputFile inputFile = new DefaultInputFile(indexedFile, f -> f.setMetadata(new Metadata(lines, nonBlankLines, hash, originalLineStartOffsets, originalLineEndOffsets, lastValidOffset)), contents, f -> {}); diff --git a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/ChangedFilePredicate.java b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/ChangedFilePredicate.java index 7e981e82f77..c3c38969ce4 100644 --- a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/ChangedFilePredicate.java +++ b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/ChangedFilePredicate.java @@ -24,15 +24,9 @@ import org.sonar.api.batch.fs.InputFile; public class ChangedFilePredicate implements FilePredicate { - private final FilePredicate originalPredicate; - - public ChangedFilePredicate(FilePredicate originalPredicate) { - this.originalPredicate = originalPredicate; - } - @Override public boolean apply(InputFile inputFile) { - return originalPredicate.apply(inputFile) && InputFile.Status.SAME != inputFile.status(); + return InputFile.Status.SAME != inputFile.status(); } } diff --git a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/FileExtensionPredicate.java b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/FileExtensionPredicate.java index 29e387b97b2..91ca9258621 100644 --- a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/FileExtensionPredicate.java +++ b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/FileExtensionPredicate.java @@ -59,4 +59,9 @@ public class FileExtensionPredicate extends AbstractFilePredicate { private static String lowercase(String extension) { return extension.toLowerCase(Locale.ENGLISH); } + + @Override + public int priority() { + return USE_INDEX; + } } diff --git a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/FilenamePredicate.java b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/FilenamePredicate.java index 39856a3583e..a32f3c88cb9 100644 --- a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/FilenamePredicate.java +++ b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/FilenamePredicate.java @@ -42,4 +42,8 @@ public class FilenamePredicate extends AbstractFilePredicate { return index.getFilesByName(filename); } + @Override + public int priority() { + return USE_INDEX; + } } diff --git a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/NonHiddenFilesPredicate.java b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/NonHiddenFilesPredicate.java new file mode 100644 index 00000000000..4b467e6dba5 --- /dev/null +++ b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/fs/internal/predicates/NonHiddenFilesPredicate.java @@ -0,0 +1,32 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.api.batch.fs.internal.predicates; + +import org.sonar.api.batch.fs.FilePredicate; +import org.sonar.api.batch.fs.InputFile; + +public class NonHiddenFilesPredicate implements FilePredicate { + + @Override + public boolean apply(InputFile inputFile) { + return !inputFile.isHidden(); + } + +} diff --git a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/sensor/internal/DefaultSensorDescriptor.java b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/sensor/internal/DefaultSensorDescriptor.java index de03ccc6d83..b4cf659ac06 100644 --- a/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/sensor/internal/DefaultSensorDescriptor.java +++ b/sonar-plugin-api-impl/src/main/java/org/sonar/api/batch/sensor/internal/DefaultSensorDescriptor.java @@ -27,18 +27,16 @@ import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; - import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.sensor.SensorDescriptor; import org.sonar.api.config.Configuration; public class DefaultSensorDescriptor implements SensorDescriptor { public static final Set<String> HARDCODED_INDEPENDENT_FILE_SENSORS = Collections.unmodifiableSet(Stream.of( - "CSS Metrics", - "CSS Rules", - "HTML", - "XML Sensor" - ).collect(Collectors.toSet())); + "CSS Metrics", + "CSS Rules", + "HTML", + "XML Sensor").collect(Collectors.toSet())); private String name; private String[] languages = new String[0]; @@ -47,6 +45,7 @@ public class DefaultSensorDescriptor implements SensorDescriptor { private boolean global = false; private Predicate<Configuration> configurationPredicate; private boolean processesFilesIndependently = false; + private boolean processesHiddenFiles = false; public String name() { return name; @@ -77,6 +76,10 @@ public class DefaultSensorDescriptor implements SensorDescriptor { return processesFilesIndependently; } + public boolean isProcessesHiddenFiles() { + return processesHiddenFiles; + } + @Override public DefaultSensorDescriptor name(String name) { // TODO: Remove this hardcoded list once all plugins will implement the new API "processFilesIndependently" @@ -132,4 +135,10 @@ public class DefaultSensorDescriptor implements SensorDescriptor { this.processesFilesIndependently = true; return this; } + + @Override + public SensorDescriptor processesHiddenFiles() { + this.processesHiddenFiles = true; + return this; + } } diff --git a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/DefaultIndexedFileTest.java b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/DefaultIndexedFileTest.java index 1c52a520e54..ecc98c43d9c 100644 --- a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/DefaultIndexedFileTest.java +++ b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/DefaultIndexedFileTest.java @@ -43,4 +43,14 @@ public class DefaultIndexedFileTest { .isInstanceOf(IllegalArgumentException.class) .hasMessageContaining(invalidPath); } + + @Test + public void uri_should_be_cached() { + String projectKey = "12345"; + Path baseDir = Paths.get(""); + String path = "foo/bar"; + + DefaultIndexedFile file = new DefaultIndexedFile(projectKey, baseDir, path, null); + Assertions.assertThat(file.uri()).isSameAs(file.uri()); + } } diff --git a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/fs/DefaultInputFileTest.java b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/fs/DefaultInputFileTest.java index c6d21de0ede..51a34b2087e 100644 --- a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/fs/DefaultInputFileTest.java +++ b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/fs/DefaultInputFileTest.java @@ -73,7 +73,7 @@ public class DefaultInputFileTest { baseDir = temp.newFolder().toPath(); sensorStrategy = new SensorStrategy(); indexedFile = new DefaultIndexedFile(baseDir.resolve(PROJECT_RELATIVE_PATH), "ABCDE", PROJECT_RELATIVE_PATH, MODULE_RELATIVE_PATH, InputFile.Type.TEST, "php", 0, - sensorStrategy); + sensorStrategy, false); } @Test @@ -111,6 +111,7 @@ public class DefaultInputFileTest { assertThat(new File(inputFile.absolutePath())).isAbsolute(); assertThat(inputFile.language()).isEqualTo("php"); assertThat(inputFile.status()).isEqualTo(InputFile.Status.ADDED); + assertThat(inputFile.isHidden()).isFalse(); assertThat(inputFile.type()).isEqualTo(InputFile.Type.TEST); assertThat(inputFile.lines()).isEqualTo(42); assertThat(inputFile.charset()).isEqualTo(StandardCharsets.ISO_8859_1); @@ -130,7 +131,7 @@ public class DefaultInputFileTest { public void test_moved_file() { DefaultIndexedFile indexedFileForMovedFile = new DefaultIndexedFile(baseDir.resolve(PROJECT_RELATIVE_PATH), "ABCDE", PROJECT_RELATIVE_PATH, MODULE_RELATIVE_PATH, InputFile.Type.TEST, "php", 0, - sensorStrategy, OLD_RELATIVE_PATH); + sensorStrategy, OLD_RELATIVE_PATH, false); Metadata metadata = new Metadata(42, 42, "", new int[0], new int[0], 10); DefaultInputFile inputFile = new DefaultInputFile(indexedFileForMovedFile, f -> f.setMetadata(metadata), NO_OP) .setStatus(InputFile.Status.ADDED) @@ -255,7 +256,7 @@ public class DefaultInputFileTest { Metadata metadata = new Metadata(2, 2, "", new int[] {0, 10}, new int[] {8, 15}, 16); DefaultInputFile file = new DefaultInputFile(new DefaultIndexedFile("ABCDE", Paths.get("module"), MODULE_RELATIVE_PATH, null), f -> f.setMetadata(metadata), f -> { - }); + }); assertThat(file.newPointer(0).line()).isOne(); assertThat(file.newPointer(0).lineOffset()).isZero(); @@ -366,4 +367,14 @@ public class DefaultInputFileTest { private static final Consumer<DefaultInputFile> NO_OP = f -> { }; + + @Test + public void test_hidden() { + DefaultIndexedFile hiddenIndexedFile = new DefaultIndexedFile(baseDir.resolve(PROJECT_RELATIVE_PATH), "ABCDE", PROJECT_RELATIVE_PATH, MODULE_RELATIVE_PATH, InputFile.Type.TEST, + "php", 0, + sensorStrategy, true); + DefaultInputFile inputFile = new DefaultInputFile(hiddenIndexedFile, NO_OP, NO_OP); + + assertThat(inputFile.isHidden()).isTrue(); + } } diff --git a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/fs/TestInputFileBuilderTest.java b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/fs/TestInputFileBuilderTest.java index a211903be85..970456eb99f 100644 --- a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/fs/TestInputFileBuilderTest.java +++ b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/fs/TestInputFileBuilderTest.java @@ -55,12 +55,14 @@ public class TestInputFileBuilderTest { DefaultInputFile file = TestInputFileBuilder.create("module", new File("baseDir"), new File("baseDir", "path")) .setStatus(Status.SAME) .setType(Type.MAIN) + .setHidden(true) .build(); assertThat(file.type()).isEqualTo(Type.MAIN); assertThat(file.status()).isEqualTo(Status.SAME); assertThat(file.isPublished()).isTrue(); assertThat(file.type()).isEqualTo(Type.MAIN); + assertThat(file.isHidden()).isTrue(); assertThat(file.relativePath()).isEqualTo("path"); assertThat(file.absolutePath()).isEqualTo("baseDir/path"); diff --git a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/ChangedFilePredicateTest.java b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/ChangedFilePredicateTest.java index 33da3b1755a..33f085344d2 100644 --- a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/ChangedFilePredicateTest.java +++ b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/ChangedFilePredicateTest.java @@ -21,74 +21,42 @@ package org.sonar.api.batch.fs.internal.predicates; import org.assertj.core.api.Assertions; import org.junit.Test; -import org.sonar.api.batch.fs.FilePredicate; import org.sonar.api.batch.fs.InputFile; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class ChangedFilePredicateTest { - private final FilePredicate predicate = mock(FilePredicate.class); private final InputFile inputFile = mock(InputFile.class); - private final ChangedFilePredicate underTest = new ChangedFilePredicate(predicate); + private final ChangedFilePredicate underTest = new ChangedFilePredicate(); @Test - public void apply_when_file_is_changed_and_predicate_is_true() { + public void apply_when_file_is_changed() { when(inputFile.status()).thenReturn(InputFile.Status.CHANGED); - when(predicate.apply(inputFile)).thenReturn(true); Assertions.assertThat(underTest.apply(inputFile)).isTrue(); - verify(predicate, times(1)).apply(any()); - verify(inputFile, times(1)).status(); + verify(inputFile).status(); } @Test - public void apply_when_file_is_added_and_predicate_is_true() { + public void apply_when_file_is_added() { when(inputFile.status()).thenReturn(InputFile.Status.ADDED); - when(predicate.apply(inputFile)).thenReturn(true); Assertions.assertThat(underTest.apply(inputFile)).isTrue(); - verify(predicate, times(1)).apply(any()); - verify(inputFile, times(1)).status(); + verify(inputFile).status(); } @Test - public void do_not_apply_when_file_is_same_and_predicate_is_true() { + public void do_not_apply_when_file_is_same() { when(inputFile.status()).thenReturn(InputFile.Status.SAME); - when(predicate.apply(inputFile)).thenReturn(true); Assertions.assertThat(underTest.apply(inputFile)).isFalse(); - verify(predicate, times(1)).apply(any()); - verify(inputFile, times(1)).status(); + verify(inputFile).status(); } - - @Test - public void predicate_is_evaluated_before_file_status() { - when(predicate.apply(inputFile)).thenReturn(false); - - Assertions.assertThat(underTest.apply(inputFile)).isFalse(); - - verify(inputFile, never()).status(); - } - - @Test - public void do_not_apply_when_file_is_same_and_predicate_is_false() { - when(inputFile.status()).thenReturn(InputFile.Status.SAME); - when(predicate.apply(inputFile)).thenReturn(true); - - Assertions.assertThat(underTest.apply(inputFile)).isFalse(); - - verify(predicate, times(1)).apply(any()); - verify(inputFile, times(1)).status(); - } - } diff --git a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/FileExtensionPredicateTest.java b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/FileExtensionPredicateTest.java index 83ccb9da164..392d823e541 100644 --- a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/FileExtensionPredicateTest.java +++ b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/FileExtensionPredicateTest.java @@ -19,7 +19,6 @@ */ package org.sonar.api.batch.fs.internal.predicates; -import java.io.IOException; import org.junit.Test; import org.sonar.api.batch.fs.InputFile; @@ -31,14 +30,14 @@ import static org.sonar.api.batch.fs.internal.predicates.FileExtensionPredicate. public class FileExtensionPredicateTest { @Test - public void should_match_correct_extension() throws IOException { + public void should_match_correct_extension() { FileExtensionPredicate predicate = new FileExtensionPredicate("bat"); assertThat(predicate.apply(mockWithName("prog.bat"))).isTrue(); assertThat(predicate.apply(mockWithName("prog.bat.bat"))).isTrue(); } @Test - public void should_not_match_incorrect_extension() throws IOException { + public void should_not_match_incorrect_extension() { FileExtensionPredicate predicate = new FileExtensionPredicate("bat"); assertThat(predicate.apply(mockWithName("prog.batt"))).isFalse(); assertThat(predicate.apply(mockWithName("prog.abat"))).isFalse(); @@ -49,7 +48,7 @@ public class FileExtensionPredicateTest { } @Test - public void should_match_correct_extension_case_insensitively() throws IOException { + public void should_match_correct_extension_case_insensitively() { FileExtensionPredicate predicate = new FileExtensionPredicate("jAVa"); assertThat(predicate.apply(mockWithName("Program.java"))).isTrue(); assertThat(predicate.apply(mockWithName("Program.JAVA"))).isTrue(); @@ -64,7 +63,12 @@ public class FileExtensionPredicateTest { assertThat(getExtension(".")).isEmpty(); } - private InputFile mockWithName(String filename) throws IOException { + @Test + public void should_have_use_index_priority() { + assertThat(new FileExtensionPredicate("bat").priority()).isEqualTo(AbstractFilePredicate.USE_INDEX); + } + + private InputFile mockWithName(String filename) { InputFile inputFile = mock(InputFile.class); when(inputFile.filename()).thenReturn(filename); return inputFile; diff --git a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/FilenamePredicateTest.java b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/FilenamePredicateTest.java index 2393d9cfa9e..30bc1e5f61e 100644 --- a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/FilenamePredicateTest.java +++ b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/FilenamePredicateTest.java @@ -59,4 +59,12 @@ public class FilenamePredicateTest { assertThat(new FilenamePredicate(filename).get(index)).containsOnly(inputFile); } + @Test + public void should_have_use_index_priority() { + String filename = "some name"; + InputFile inputFile = mock(InputFile.class); + when(inputFile.filename()).thenReturn(filename); + + assertThat(new FilenamePredicate(filename).priority()).isEqualTo(AbstractFilePredicate.USE_INDEX); + } } diff --git a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/NonHiddenFilesPredicateTest.java b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/NonHiddenFilesPredicateTest.java new file mode 100644 index 00000000000..a5a09a97567 --- /dev/null +++ b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/fs/internal/predicates/NonHiddenFilesPredicateTest.java @@ -0,0 +1,53 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.api.batch.fs.internal.predicates; + +import org.assertj.core.api.Assertions; +import org.junit.Test; +import org.sonar.api.batch.fs.InputFile; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class NonHiddenFilesPredicateTest { + + private final InputFile inputFile = mock(InputFile.class); + + private final NonHiddenFilesPredicate underTest = new NonHiddenFilesPredicate(); + + @Test + public void apply_when_file_is_not_hidden() { + when(inputFile.isHidden()).thenReturn(false); + + Assertions.assertThat(underTest.apply(inputFile)).isTrue(); + + verify(inputFile).isHidden(); + } + + @Test + public void do_not_apply_when_file_is_hidden() { + when(inputFile.isHidden()).thenReturn(true); + + Assertions.assertThat(underTest.apply(inputFile)).isFalse(); + + verify(inputFile).isHidden(); + } +} diff --git a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/sensor/internal/DefaultSensorDescriptorTest.java b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/sensor/internal/DefaultSensorDescriptorTest.java index 07064a1f30f..1d35506deb9 100644 --- a/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/sensor/internal/DefaultSensorDescriptorTest.java +++ b/sonar-plugin-api-impl/src/test/java/org/sonar/api/batch/sensor/internal/DefaultSensorDescriptorTest.java @@ -36,13 +36,14 @@ public class DefaultSensorDescriptorTest { public void describe_defaults() { DefaultSensorDescriptor descriptor = new DefaultSensorDescriptor(); descriptor - .name("Foo"); + .name("Foo"); assertThat(descriptor.name()).isEqualTo("Foo"); assertThat(descriptor.languages()).isEmpty(); assertThat(descriptor.type()).isNull(); assertThat(descriptor.ruleRepositories()).isEmpty(); assertThat(descriptor.isProcessesFilesIndependently()).isFalse(); + assertThat(descriptor.isProcessesHiddenFiles()).isFalse(); } @Test @@ -54,7 +55,8 @@ public class DefaultSensorDescriptorTest { .onlyOnFileType(InputFile.Type.MAIN) .onlyWhenConfiguration(c -> c.hasKey("sonar.foo.reportPath2") && c.hasKey("sonar.foo.reportPath")) .createIssuesForRuleRepository("java-java") - .processesFilesIndependently(); + .processesFilesIndependently() + .processesHiddenFiles(); assertThat(descriptor.name()).isEqualTo("Foo"); assertThat(descriptor.languages()).containsOnly("java"); @@ -66,6 +68,7 @@ public class DefaultSensorDescriptorTest { assertThat(descriptor.configurationPredicate().test(settings.asConfig())).isTrue(); assertThat(descriptor.ruleRepositories()).containsOnly("java-java"); assertThat(descriptor.isProcessesFilesIndependently()).isTrue(); + assertThat(descriptor.isProcessesHiddenFiles()).isTrue(); } @Test diff --git a/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/analysisdata/AnalysisDataIT.java b/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/analysisdata/AnalysisDataIT.java index 7f56cb87cce..94ccedfa946 100644 --- a/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/analysisdata/AnalysisDataIT.java +++ b/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/analysisdata/AnalysisDataIT.java @@ -63,6 +63,6 @@ public class AnalysisDataIT { // then List<ScannerReport.AnalysisData> analysisData = result.analysisData(); assertThat(analysisData) - .anyMatch(data -> data.getKey().equals("architecture.file_graph." + Xoo.KEY)); + .anyMatch(data -> data.getKey().startsWith("architecture.graph.")); } } diff --git a/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/fs/FileSystemMediumIT.java b/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/fs/FileSystemMediumIT.java index 0a1ecff943b..54ea65cc3be 100644 --- a/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/fs/FileSystemMediumIT.java +++ b/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/fs/FileSystemMediumIT.java @@ -28,14 +28,21 @@ import java.nio.file.Files; import java.nio.file.LinkOption; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.List; +import java.util.Map; import java.util.Random; +import java.util.Set; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.SystemUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.OS; import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.io.TempDir; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.slf4j.event.Level; import org.sonar.api.CoreProperties; import org.sonar.api.SonarEdition; @@ -49,6 +56,7 @@ import org.sonar.api.utils.System2; import org.sonar.scanner.mediumtest.AnalysisResult; import org.sonar.scanner.mediumtest.ScannerMediumTester; import org.sonar.scanner.mediumtest.ScannerMediumTester.AnalysisBuilder; +import org.sonar.scanner.protocol.output.ScannerReport; import org.sonar.xoo.XooPlugin; import org.sonar.xoo.global.DeprecatedGlobalSensor; import org.sonar.xoo.global.GlobalProjectSensor; @@ -59,7 +67,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.tuple; import static org.assertj.core.api.AssertionsForClassTypes.catchThrowableOfType; -import static org.junit.jupiter.api.Assumptions.assumeFalse; import static org.junit.jupiter.api.Assumptions.assumeTrue; import static org.slf4j.event.Level.DEBUG; @@ -150,7 +157,7 @@ class FileSystemMediumIT { .build()) .execute(); - assertThat(logTester.logs()).contains("2 files indexed"); + assertThat(logTester.logs()).anyMatch(log -> log.startsWith("2 files indexed (done) | time=")); assertThat(logTester.logs()).contains("'src/sample.xoo' generated metadata with charset 'UTF-8'"); assertThat(String.join("\n", logTester.logs())).doesNotContain("'src/sample.java' generated metadata"); } @@ -173,7 +180,7 @@ class FileSystemMediumIT { .build()) .execute(); - assertThat(logTester.logs()).contains("2 files indexed"); + assertThat(logTester.logs()).anyMatch(log -> log.startsWith("2 files indexed (done) | time=")); assertThat(logTester.logs()).contains("'src/sample.xoo' generated metadata with charset 'UTF-8'"); assertThat(logTester.logs()).contains("'src/sample.java' generated metadata with charset 'UTF-8'"); } @@ -200,7 +207,7 @@ class FileSystemMediumIT { .execute(); assertThat(logTester.logs()).containsAnyOf("'src/main/sample.java' indexed with no language", "'src\\main\\sample.java' indexed with no language"); - assertThat(logTester.logs()).contains("3 files indexed"); + assertThat(logTester.logs()).anyMatch(log -> log.startsWith("3 files indexed (done) | time=")); assertThat(logTester.logs()).contains("'src/main/sample.xoo' generated metadata with charset 'UTF-8'"); assertThat(logTester.logs()).doesNotContain("'src/main/sample.java' generated metadata", "'src\\main\\sample.java' generated metadata"); assertThat(logTester.logs()).doesNotContain("'src/test/sample.java' generated metadata", "'src\\test\\sample.java' generated metadata"); @@ -231,7 +238,7 @@ class FileSystemMediumIT { .build()) .execute(); - assertThat(logTester.logs()).contains("1 file indexed"); + assertThat(logTester.logs()).anyMatch(log -> log.startsWith("1 file indexed (done) | time=")); assertThat(logTester.logs()).contains("'src/sample.unknown' indexed with no language"); assertThat(logTester.logs()).contains("'src/sample.unknown' generated metadata with charset 'UTF-8'"); DefaultInputFile inputFile = (DefaultInputFile) result.inputFile("src/sample.unknown"); @@ -456,6 +463,7 @@ class FileSystemMediumIT { } @Test + @DisabledOnOs(OS.WINDOWS) void analysisDoesNotFailOnBrokenSymlink() throws IOException { prepareBrokenSymlinkTestScenario(); @@ -465,6 +473,7 @@ class FileSystemMediumIT { } @Test + @DisabledOnOs(OS.WINDOWS) void analysisWarnsAndIgnoresBrokenSymlink() throws IOException { Path link = prepareBrokenSymlinkTestScenario(); @@ -477,8 +486,8 @@ class FileSystemMediumIT { } @Test + @DisabledOnOs(OS.WINDOWS) void analysisIgnoresSymbolicLinkWithTargetOutsideBaseDir() throws IOException { - assumeFalse(SystemUtils.IS_OS_WINDOWS); File srcDir = new File(baseDir, "src"); assertThat(srcDir.mkdir()).isTrue(); @@ -497,14 +506,28 @@ class FileSystemMediumIT { } @Test + @DisabledOnOs(OS.WINDOWS) + void analysisIgnoresSymbolicLinkWithRelativeTargetOutsideBaseDir() throws IOException { + File srcDir = new File(baseDir, "src"); + assertThat(srcDir.mkdir()).isTrue(); + + File otherDir = createDirectory(temp.toPath().resolve("other_dir")).toFile(); + writeFile(otherDir, "target_outside.xoo"); + + Path linkPath = srcDir.toPath().resolve("target_link"); + Path link = Files.createSymbolicLink(linkPath, Paths.get("../../other_dir/target_outside.xoo")); + + tester.newAnalysis().properties(builder.build()).execute(); + + String logMessage = String.format("File '%s' is ignored. It is a symbolic link targeting a file not located in project basedir.", link.toRealPath(LinkOption.NOFOLLOW_LINKS)); + assertThat(logTester.logs(Level.WARN)).contains(logMessage); + } + + @Test + @DisabledOnOs(OS.WINDOWS) void analysisIgnoresSymbolicLinkWithTargetOutsideModule() throws IOException { - assumeFalse(SystemUtils.IS_OS_WINDOWS); - File baseDirModuleA = new File(baseDir, "module_a"); - File baseDirModuleB = new File(baseDir, "module_b"); - File srcDirA = new File(baseDirModuleA, "src"); - assertThat(srcDirA.mkdirs()).isTrue(); - File srcDirB = new File(baseDirModuleB, "src"); - assertThat(srcDirB.mkdirs()).isTrue(); + File srcDirA = createModuleWithSubdirectory("module_a", "src"); + File srcDirB = createModuleWithSubdirectory("module_b", "src"); File target = writeFile(srcDirA, "target.xoo", "Sample xoo\ncontent"); Path link = Paths.get(srcDirB.getPath(), "target_link.xoo"); @@ -524,13 +547,55 @@ class FileSystemMediumIT { } @Test + @DisabledOnOs(OS.WINDOWS) + void analysisIgnoresSymbolicLinkWithRelativeTargetOutsideModule() throws IOException { + File srcA = createModuleWithSubdirectory("module_a", "src"); + File srcB = createModuleWithSubdirectory("module_b", "src"); + + Path target = srcB.toPath().resolve("target.xoo"); + FileUtils.write(target.toFile(), "Sample xoo\ncontent", StandardCharsets.UTF_8); + Path link = srcA.toPath().resolve("target_link"); + Files.createSymbolicLink(link, Paths.get("../../module_b/src/target.xoo")); + + builder = ImmutableMap.<String, String>builder() + .put("sonar.projectBaseDir", baseDir.getAbsolutePath()) + .put("sonar.projectKey", "com.foo.project") + .put("sonar.modules", "module_a,module_b"); + + AnalysisResult result = tester.newAnalysis().properties(builder.build()).execute(); + + String logMessage = String.format("File '%s' is ignored. It is a symbolic link targeting a file not located in module basedir.", link.toRealPath(LinkOption.NOFOLLOW_LINKS)); + assertThat(logTester.logs(Level.INFO)).contains(logMessage); + InputFile fileA = result.inputFile("module_b/src/target.xoo"); + assertThat(fileA).isNotNull(); + } + + @Test + @DisabledOnOs(OS.WINDOWS) + void analysisDoesNotIgnoreSymbolicLinkWithRelativePath() throws IOException { + File src = createModuleWithSubdirectory("module_a", "src"); + Path target = src.toPath().resolve("target.xoo"); + FileUtils.write(target.toFile(), "Sample xoo\ncontent", StandardCharsets.UTF_8); + Path link = src.toPath().resolve("target_link"); + Files.createSymbolicLink(link, Paths.get("target.xoo")); + + builder = ImmutableMap.<String, String>builder() + .put("sonar.projectBaseDir", baseDir.getAbsolutePath()) + .put("sonar.projectKey", "com.foo.project") + .put("sonar.modules", "module_a"); + + AnalysisResult result = tester.newAnalysis().properties(builder.build()).execute(); + + InputFile targetFile = result.inputFile("module_a/src/target.xoo"); + assertThat(targetFile).isNotNull(); + String logMessage = String.format("File '%s' is ignored. It is a symbolic link targeting a file that does not exist.", link.toRealPath(LinkOption.NOFOLLOW_LINKS)); + assertThat(logTester.logs(Level.WARN)).doesNotContain(logMessage); + } + + @Test void test_inclusions_on_multi_modules() throws IOException { - File baseDirModuleA = new File(baseDir, "moduleA"); - File baseDirModuleB = new File(baseDir, "moduleB"); - File srcDirA = new File(baseDirModuleA, "tests"); - assertThat(srcDirA.mkdirs()).isTrue(); - File srcDirB = new File(baseDirModuleB, "tests"); - assertThat(srcDirB.mkdirs()).isTrue(); + File srcDirA = createModuleWithSubdirectory("moduleA", "tests"); + File srcDirB = createModuleWithSubdirectory("moduleB", "tests"); writeFile(srcDirA, "sampleTestA.xoo", "Sample xoo\ncontent"); writeFile(srcDirB, "sampleTestB.xoo", "Sample xoo\ncontent"); @@ -571,12 +636,8 @@ class FileSystemMediumIT { @Test void test_module_level_inclusions_override_parent_on_multi_modules() throws IOException { - File baseDirModuleA = new File(baseDir, "moduleA"); - File baseDirModuleB = new File(baseDir, "moduleB"); - File srcDirA = new File(baseDirModuleA, "src"); - assertThat(srcDirA.mkdirs()).isTrue(); - File srcDirB = new File(baseDirModuleB, "src"); - assertThat(srcDirB.mkdirs()).isTrue(); + File srcDirA = createModuleWithSubdirectory("moduleA", "src"); + File srcDirB = createModuleWithSubdirectory("moduleB", "src"); writeFile(srcDirA, "sampleA.xoo", "Sample xoo\ncontent"); writeFile(srcDirB, "sampleB.xoo", "Sample xoo\ncontent"); @@ -608,12 +669,8 @@ class FileSystemMediumIT { @Test void warn_user_for_outdated_scanner_side_inherited_exclusions_for_multi_module_project() throws IOException { - File baseDirModuleA = new File(baseDir, "moduleA"); - File baseDirModuleB = new File(baseDir, "moduleB"); - File srcDirA = new File(baseDirModuleA, "src"); - assertThat(srcDirA.mkdirs()).isTrue(); - File srcDirB = new File(baseDirModuleB, "src"); - assertThat(srcDirB.mkdirs()).isTrue(); + File srcDirA = createModuleWithSubdirectory("moduleA", "src"); + File srcDirB = createModuleWithSubdirectory("moduleB", "src"); writeFile(srcDirA, "sample.xoo", "Sample xoo\ncontent"); writeFile(srcDirB, "sample.xoo", "Sample xoo\ncontent"); @@ -641,12 +698,8 @@ class FileSystemMediumIT { @Test void support_global_server_side_exclusions_for_multi_module_project() throws IOException { - File baseDirModuleA = new File(baseDir, "moduleA"); - File baseDirModuleB = new File(baseDir, "moduleB"); - File srcDirA = new File(baseDirModuleA, "src"); - assertThat(srcDirA.mkdirs()).isTrue(); - File srcDirB = new File(baseDirModuleB, "src"); - assertThat(srcDirB.mkdirs()).isTrue(); + File srcDirA = createModuleWithSubdirectory("moduleA", "src"); + File srcDirB = createModuleWithSubdirectory("moduleB", "src"); writeFile(srcDirA, "sample.xoo", "Sample xoo\ncontent"); writeFile(srcDirB, "sample.xoo", "Sample xoo\ncontent"); @@ -671,12 +724,8 @@ class FileSystemMediumIT { @Test void support_global_server_side_global_exclusions_for_multi_module_project() throws IOException { - File baseDirModuleA = new File(baseDir, "moduleA"); - File baseDirModuleB = new File(baseDir, "moduleB"); - File srcDirA = new File(baseDirModuleA, "src"); - assertThat(srcDirA.mkdirs()).isTrue(); - File srcDirB = new File(baseDirModuleB, "src"); - assertThat(srcDirB.mkdirs()).isTrue(); + File srcDirA = createModuleWithSubdirectory("moduleA", "src"); + File srcDirB = createModuleWithSubdirectory("moduleB", "src"); writeFile(srcDirA, "sample.xoo", "Sample xoo\ncontent"); writeFile(srcDirB, "sample.xoo", "Sample xoo\ncontent"); @@ -701,12 +750,8 @@ class FileSystemMediumIT { @Test void warn_user_for_outdated_server_side_inherited_exclusions_for_multi_module_project() throws IOException { - File baseDirModuleA = new File(baseDir, "moduleA"); - File baseDirModuleB = new File(baseDir, "moduleB"); - File srcDirA = new File(baseDirModuleA, "src"); - assertThat(srcDirA.mkdirs()).isTrue(); - File srcDirB = new File(baseDirModuleB, "src"); - assertThat(srcDirB.mkdirs()).isTrue(); + File srcDirA = createModuleWithSubdirectory("moduleA", "src"); + File srcDirB = createModuleWithSubdirectory("moduleB", "src"); writeFile(srcDirA, "sample.xoo", "Sample xoo\ncontent"); writeFile(srcDirB, "sample.xoo", "Sample xoo\ncontent"); @@ -979,12 +1024,8 @@ class FileSystemMediumIT { @Test void log_all_exclusions_properties_per_modules() throws IOException { - File baseDirModuleA = new File(baseDir, "moduleA"); - File baseDirModuleB = new File(baseDir, "moduleB"); - File srcDirA = new File(baseDirModuleA, "src"); - assertThat(srcDirA.mkdirs()).isTrue(); - File srcDirB = new File(baseDirModuleB, "src"); - assertThat(srcDirB.mkdirs()).isTrue(); + File srcDirA = createModuleWithSubdirectory("moduleA", "src"); + File srcDirB = createModuleWithSubdirectory("moduleB", "src"); writeFile(srcDirA, "sample.xoo", "Sample xoo\ncontent"); writeFile(srcDirB, "sample.xoo", "Sample xoo\ncontent"); @@ -1013,7 +1054,7 @@ class FileSystemMediumIT { " Excluded sources for coverage: **/coverage.exclusions", " Excluded sources for duplication: **/cpd.exclusions", "Indexing files of module 'moduleA'", - " Base dir: " + baseDirModuleA.toPath().toRealPath(LinkOption.NOFOLLOW_LINKS), + " Base dir: " + srcDirA.toPath().getParent().toRealPath(LinkOption.NOFOLLOW_LINKS), " Included sources: **/global.inclusions", " Excluded sources: **/global.exclusions, **/global.test.inclusions", " Included tests: **/global.test.inclusions", @@ -1021,7 +1062,7 @@ class FileSystemMediumIT { " Excluded sources for coverage: **/coverage.exclusions", " Excluded sources for duplication: **/cpd.exclusions", "Indexing files of module 'moduleB'", - " Base dir: " + baseDirModuleB.toPath().toRealPath(LinkOption.NOFOLLOW_LINKS), + " Base dir: " + srcDirB.toPath().getParent().toRealPath(LinkOption.NOFOLLOW_LINKS), " Included sources: **/global.inclusions", " Excluded sources: **/global.exclusions, **/global.test.inclusions", " Included tests: **/global.test.inclusions", @@ -1147,7 +1188,7 @@ class FileSystemMediumIT { .build()) .execute(); - assertThat(logTester.logs()).contains("1 file indexed"); + assertThat(logTester.logs()).anyMatch(log -> log.startsWith("1 file indexed (done) | time=")); assertThat(result.inputFile("sample.xoo")).isNotNull(); } @@ -1314,6 +1355,157 @@ class FileSystemMediumIT { .hasMessageEndingWith("Failed to preprocess files"); } + @ParameterizedTest + @ValueSource(booleans = { + true, + false + }) + void shouldScanAndAnalyzeAllHiddenFiles(boolean setHiddenFileScanningExplicitly) throws IOException { + prepareHiddenFileProject(); + File projectDir = new File("test-resources/mediumtest/xoo/sample-with-hidden-files"); + AnalysisBuilder analysisBuilder = tester + .addRules(new XooRulesDefinition()) + .addActiveRule("xoo", "OneIssuePerFile", null, "Issue Per File", "MAJOR", null, "xoo") + .newAnalysis(new File(projectDir, "sonar-project.properties")) + .property("sonar.oneIssuePerFile.enableHiddenFileProcessing", "true"); + + if (setHiddenFileScanningExplicitly) { + // default is assumed to be false, here we set it explicitly + analysisBuilder.property("sonar.scanner.excludeHiddenFiles", "false"); + } + + AnalysisResult result = analysisBuilder.execute(); + + for (Map.Entry<String, Boolean> pathToHiddenStatus : hiddenFileProjectExpectedHiddenStatus().entrySet()) { + String filePath = pathToHiddenStatus.getKey(); + boolean expectedIsHidden = pathToHiddenStatus.getValue(); + assertHiddenFileScan(result, filePath, expectedIsHidden, true); + // we expect the sensor to process all files, regardless of visibility + assertFileIssue(result, filePath, true); + } + assertThat(result.inputFiles()).hasSize(10); + } + + @Test + void shouldScanAllFilesAndOnlyAnalyzeNonHiddenFiles() throws IOException { + prepareHiddenFileProject(); + File projectDir = new File("test-resources/mediumtest/xoo/sample-with-hidden-files"); + AnalysisResult result = tester + .addRules(new XooRulesDefinition()) + .addActiveRule("xoo", "OneIssuePerFile", null, "Issue Per File", "MAJOR", null, "xoo") + .newAnalysis(new File(projectDir, "sonar-project.properties")) + .property("sonar.oneIssuePerFile.enableHiddenFileProcessing", "false") + .execute(); + + for (Map.Entry<String, Boolean> pathToHiddenStatus : hiddenFileProjectExpectedHiddenStatus().entrySet()) { + String filePath = pathToHiddenStatus.getKey(); + boolean expectedHiddenStatus = pathToHiddenStatus.getValue(); + assertHiddenFileScan(result, filePath, expectedHiddenStatus, true); + // sensor should not process hidden files, we only expect issues on non-hidden files + assertFileIssue(result, filePath, !expectedHiddenStatus); + } + assertThat(result.inputFiles()).hasSize(10); + } + + @ParameterizedTest + @ValueSource(booleans = { + true, + false + }) + void shouldNotScanAndAnalyzeHiddenFilesWhenHiddenFileScanningIsDisabled(boolean sensorHiddenFileProcessingEnabled) throws IOException { + prepareHiddenFileProject(); + File projectDir = new File("test-resources/mediumtest/xoo/sample-with-hidden-files"); + AnalysisResult result = tester + .addRules(new XooRulesDefinition()) + .addActiveRule("xoo", "OneIssuePerFile", null, "Issue Per File", "MAJOR", null, "xoo") + .newAnalysis(new File(projectDir, "sonar-project.properties")) + .property("sonar.scanner.excludeHiddenFiles", "true") + // hidden files are not scanned, so issues can't be raised on them regardless if the sensor wants to process them + .property("sonar.oneIssuePerFile.enableHiddenFileProcessing", String.valueOf(sensorHiddenFileProcessingEnabled)) + .execute(); + + for (Map.Entry<String, Boolean> pathToHiddenStatus : hiddenFileProjectExpectedHiddenStatus().entrySet()) { + String filePath = pathToHiddenStatus.getKey(); + boolean expectedHiddenStatus = pathToHiddenStatus.getValue(); + assertHiddenFileScan(result, filePath, expectedHiddenStatus, false); + if (!expectedHiddenStatus) { + assertFileIssue(result, filePath, true); + } + } + assertThat(result.inputFiles()).hasSize(1); + } + + @Test + void hiddenFilesAssignedToALanguageShouldNotBePublishedByDefault() throws IOException { + tester + .addRules(new XooRulesDefinition()); + + File srcDir = new File(baseDir, "src"); + assertThat(srcDir.mkdir()).isTrue(); + + File hiddenFile = writeFile(srcDir, ".xoo", "Sample xoo\ncontent"); + setFileAsHiddenOnWindows(hiddenFile.toPath()); + File hiddenFileWithoutLanguage = writeFile(srcDir, ".bar", "Sample bar\ncontent"); + setFileAsHiddenOnWindows(hiddenFileWithoutLanguage.toPath()); + writeFile(srcDir, "file.xoo", "Sample xoo\ncontent"); + + AnalysisResult result = tester.newAnalysis() + .properties(builder + .put("sonar.sources", "src") + .build()) + .execute(); + + DefaultInputFile hiddenInputFile = (DefaultInputFile) result.inputFile("src/.xoo"); + + assertThat(hiddenInputFile).isNotNull(); + assertThat(hiddenInputFile.isPublished()).isFalse(); + assertThatThrownBy(() -> result.getReportComponent(hiddenInputFile)) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("Unable to find report for component"); + + DefaultInputFile hiddenInputFileWithoutLanguage = (DefaultInputFile) result.inputFile("src/.bar"); + assertThat(hiddenInputFileWithoutLanguage).isNotNull(); + assertThat(hiddenInputFileWithoutLanguage.isPublished()).isFalse(); + assertThatThrownBy(() -> result.getReportComponent(hiddenInputFileWithoutLanguage)) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("Unable to find report for component"); + + DefaultInputFile visibleInputFile = (DefaultInputFile) result.inputFile("src/file.xoo"); + assertThat(visibleInputFile).isNotNull(); + assertThat(visibleInputFile.isPublished()).isTrue(); + assertThat(result.getReportComponent(visibleInputFile)).isNotNull(); + } + + @Test + void shouldDetectHiddenFilesFromMultipleModules() throws IOException { + File srcDirA = createModuleWithSubdirectory("moduleA", "src"); + File srcDirB = createModuleWithSubdirectory("moduleB", "src"); + + File fileModuleA = writeFile(srcDirA, ".xoo", "Sample xoo\ncontent"); + setFileAsHiddenOnWindows(fileModuleA.toPath()); + File fileModuleB = writeFile(srcDirB, ".xoo", "Sample xoo\ncontent"); + setFileAsHiddenOnWindows(fileModuleB.toPath()); + + AnalysisResult result = tester.newAnalysis() + .properties(ImmutableMap.<String, String>builder() + .put("sonar.projectBaseDir", baseDir.getAbsolutePath()) + .put("sonar.projectKey", "com.foo.project") + .put("sonar.sources", "src") + .put("sonar.modules", "moduleA,moduleB") + .build()) + .execute(); + + assertHiddenFileScan(result, "moduleA/src/.xoo", true, true); + assertHiddenFileScan(result, "moduleB/src/.xoo", true, true); + } + + private File createModuleWithSubdirectory(String moduleName, String subDirName) { + File moduleBaseDir = new File(baseDir, moduleName); + File srcDir = moduleBaseDir.toPath().resolve(subDirName).toFile(); + assertThat(srcDir.mkdirs()).isTrue(); + return srcDir; + } + private static void assertAnalysedFiles(AnalysisResult result, String... files) { assertThat(result.inputFiles().stream().map(InputFile::toString).toList()).contains(files); } @@ -1341,7 +1533,6 @@ class FileSystemMediumIT { } private Path prepareBrokenSymlinkTestScenario() throws IOException { - assumeFalse(SystemUtils.IS_OS_WINDOWS); File srcDir = new File(baseDir, "src"); assertThat(srcDir.mkdir()).isTrue(); @@ -1353,4 +1544,69 @@ class FileSystemMediumIT { return link; } + private Map<String, Boolean> hiddenFileProjectExpectedHiddenStatus() { + return Map.of( + "xources/.hidden/.xoo", true, + "xources/.hidden/Class.xoo", true, + "xources/.hidden/.nestedHidden/.xoo", true, + "xources/.hidden/.nestedHidden/Class.xoo", true, + "xources/.hidden/.nestedHidden/visibleInHiddenFolder/.xoo", true, + "xources/.hidden/.nestedHidden/visibleInHiddenFolder/Class.xoo", true, + "xources/nonHidden/.xoo", true, + "xources/nonHidden/Class.xoo", false, + "xources/nonHidden/.hiddenInVisibleFolder/.xoo", true, + "xources/nonHidden/.hiddenInVisibleFolder/Class.xoo", true); + } + + private static void prepareHiddenFileProject() throws IOException { + if (!SystemUtils.IS_OS_WINDOWS) { + return; + } + + // On Windows, we need to set the hidden attribute on the file system + Set<String> dirAndFilesToHideOnWindows = Set.of( + "xources/.hidden", + "xources/.hidden/.xoo", + "xources/.hidden/.nestedHidden", + "xources/.hidden/.nestedHidden/.xoo", + "xources/.hidden/.nestedHidden/visibleInHiddenFolder/.xoo", + "xources/nonHidden/.xoo", + "xources/nonHidden/.hiddenInVisibleFolder", + "xources/nonHidden/.hiddenInVisibleFolder/.xoo"); + + for (String path : dirAndFilesToHideOnWindows) { + Path pathFromResources = Path.of("test-resources/mediumtest/xoo/sample-with-hidden-files", path); + setFileAsHiddenOnWindows(pathFromResources); + } + } + + private static void setFileAsHiddenOnWindows(Path path) throws IOException { + if (SystemUtils.IS_OS_WINDOWS) { + Files.setAttribute(path, "dos:hidden", true, LinkOption.NOFOLLOW_LINKS); + } + } + + private static void assertHiddenFileScan(AnalysisResult result, String filePath, boolean expectedHiddenStatus, boolean hiddenFilesShouldBeScanned) { + InputFile file = result.inputFile(filePath); + + if (!hiddenFilesShouldBeScanned && expectedHiddenStatus) { + assertThat(file).isNull(); + } else { + assertThat(file).withFailMessage(String.format("File \"%s\" was not analyzed", filePath)).isNotNull(); + assertThat(file.isHidden()) + .withFailMessage(String.format("Expected file \"%s\" hidden status to be \"%s\", however was \"%s\"", filePath, expectedHiddenStatus, file.isHidden())) + .isEqualTo(expectedHiddenStatus); + } + } + + private static void assertFileIssue(AnalysisResult result, String filePath, boolean expectToHaveIssue) { + InputFile file = result.inputFile(filePath); + assertThat(file).isNotNull(); + List<ScannerReport.Issue> issues = result.issuesFor(file); + if (expectToHaveIssue) { + assertThat(issues).hasSize(1); + } else { + assertThat(issues).isEmpty(); + } + } } diff --git a/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/scm/ScmMediumIT.java b/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/scm/ScmMediumIT.java index e1a158bfac9..904e09cc5c5 100644 --- a/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/scm/ScmMediumIT.java +++ b/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/scm/ScmMediumIT.java @@ -241,7 +241,7 @@ public class ScmMediumIT { assertThat(getChangesets(baseDir, NO_BLAME_SCM_ON_SERVER_XOO)).isNull(); // 5 .xoo files + 3 .scm files, but only 4 marked for publishing. 1 file is SAME so not included in the total - assertThat(logTester.logs()).containsSubsequence("8 files indexed"); + assertThat(logTester.logs()).anyMatch(s -> s.startsWith("8 files indexed (done) | time=")); assertThat(logTester.logs()).containsSubsequence("SCM Publisher 4 source files to be analyzed"); assertThat(logTester.logs().stream().anyMatch(s -> Pattern.matches("SCM Publisher 3/4 source files have been analyzed \\(done\\) \\| time=[0-9]+ms", s))).isTrue(); assertThat(logTester.logs()).containsSubsequence(MISSING_BLAME_INFORMATION_FOR_THE_FOLLOWING_FILES, " * src/no_blame_scm_on_server.xoo"); diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerMain.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerMain.java index 0fe2c3ad479..7e27a45e4cf 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerMain.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerMain.java @@ -32,6 +32,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; import javax.annotation.CheckForNull; +import javax.annotation.Nullable; import org.jetbrains.annotations.NotNull; import org.slf4j.LoggerFactory; import org.sonar.api.utils.MessageException; @@ -67,8 +68,8 @@ public class ScannerMain { LOG.info("SonarScanner Engine completed successfully"); return 0; - } catch (Exception e) { - handleException(e); + } catch (Throwable throwable) { + handleException(throwable); return 1; } } @@ -87,30 +88,28 @@ public class ScannerMain { return sb.toString(); } - private static void handleException(Exception e) { - var messageException = unwrapMessageException(e); + private static void handleException(Throwable throwable) { + var messageException = unwrapMessageException(throwable); if (messageException.isPresent()) { // Don't show the stacktrace for a message exception to not pollute the logs if (LoggerFactory.getLogger(ScannerMain.class).isDebugEnabled()) { - LOG.error(messageException.get(), e); + LOG.error(messageException.get(), throwable); } else { LOG.error(messageException.get()); } } else { - LOG.error("Error during SonarScanner Engine execution", e); + LOG.error("Error during SonarScanner Engine execution", throwable); } } - private static Optional<String> unwrapMessageException(Exception t) { - Throwable y = t; - do { - if (y instanceof MessageException messageException) { - return Optional.of(messageException.getMessage()); - } - y = y.getCause(); - } while (y != null); - - return Optional.empty(); + private static Optional<String> unwrapMessageException(@Nullable Throwable throwable) { + if (throwable == null) { + return Optional.empty(); + } else if (throwable instanceof MessageException messageException) { + return Optional.of(messageException.getMessage()); + } else { + return unwrapMessageException(throwable.getCause()); + } } private static @NotNull Map<String, String> parseInputProperties(InputStream in) { diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringScannerContainer.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringScannerContainer.java index 9c41891dbab..133f4387856 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringScannerContainer.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/SpringScannerContainer.java @@ -99,7 +99,6 @@ import org.sonar.scanner.scan.InputModuleHierarchyProvider; import org.sonar.scanner.scan.InputProjectProvider; import org.sonar.scanner.scan.ModuleIndexer; import org.sonar.scanner.scan.MutableProjectReactorProvider; -import org.sonar.scanner.scan.MutableProjectSettings; import org.sonar.scanner.scan.ProjectBuildersExecutor; import org.sonar.scanner.scan.ProjectConfigurationProvider; import org.sonar.scanner.scan.ProjectLock; @@ -116,6 +115,7 @@ import org.sonar.scanner.scan.branch.BranchType; import org.sonar.scanner.scan.branch.ProjectBranchesProvider; import org.sonar.scanner.scan.filesystem.DefaultProjectFileSystem; import org.sonar.scanner.scan.filesystem.FilePreprocessor; +import org.sonar.scanner.scan.filesystem.HiddenFilesProjectData; import org.sonar.scanner.scan.filesystem.InputComponentStore; import org.sonar.scanner.scan.filesystem.LanguageDetection; import org.sonar.scanner.scan.filesystem.MetadataGenerator; @@ -200,6 +200,7 @@ public class SpringScannerContainer extends SpringComponentContainer { FilePreprocessor.class, ProjectFilePreprocessor.class, ProjectExclusionFilters.class, + HiddenFilesProjectData.class, // rules new ActiveRulesProvider(), @@ -226,7 +227,6 @@ public class SpringScannerContainer extends SpringComponentContainer { ContextPropertiesCache.class, TelemetryCache.class, - MutableProjectSettings.class, SonarGlobalPropertiesFilter.class, ProjectConfigurationProvider.class, diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/sarif/RulesSeverityDetector.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/sarif/RulesSeverityDetector.java index 703cd038fd0..d4f22ad9704 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/sarif/RulesSeverityDetector.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/sarif/RulesSeverityDetector.java @@ -97,8 +97,11 @@ public class RulesSeverityDetector { } private static Map<String, Result.Level> getDriverDefinedRuleSeverities(Run run) { - return run.getTool().getDriver().getRules() - .stream() + Set<ReportingDescriptor> rules = run.getTool().getDriver().getRules(); + if (rules == null) { + return emptyMap(); + } + return rules.stream() .filter(RulesSeverityDetector::hasRuleDefinedLevel) .collect(toMap(ReportingDescriptor::getId, x -> Result.Level.valueOf(x.getDefaultConfiguration().getLevel().name()))); } diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/sarif/RunMapper.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/sarif/RunMapper.java index 5b9abf383cf..bdf5a9a1114 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/sarif/RunMapper.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/sarif/RunMapper.java @@ -83,7 +83,7 @@ public class RunMapper { private List<NewAdHocRule> toNewAdHocRules(Run run, String driverName, Map<String, Result.Level> ruleSeveritiesByRuleId, Map<String, Result.Level> ruleSeveritiesByRuleIdForNewCCT) { - Set<ReportingDescriptor> driverRules = run.getTool().getDriver().getRules(); + Set<ReportingDescriptor> driverRules = Optional.ofNullable(run.getTool().getDriver().getRules()).orElse(Set.of()); Set<ReportingDescriptor> extensionRules = hasExtensions(run.getTool()) ? run.getTool().getExtensions().stream().filter(RunMapper::hasRules).flatMap(extension -> extension.getRules().stream()).collect(toSet()) : Set.of(); diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/http/ScannerWsClientProvider.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/http/ScannerWsClientProvider.java index 088ebfb0052..d9eed8bedc8 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/http/ScannerWsClientProvider.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/http/ScannerWsClientProvider.java @@ -87,7 +87,7 @@ public class ScannerWsClientProvider { String responseTimeout = defaultIfBlank(scannerProps.property(SONAR_SCANNER_RESPONSE_TIMEOUT), valueOf(DEFAULT_RESPONSE_TIMEOUT)); String envVarToken = defaultIfBlank(system.envVariable(TOKEN_ENV_VARIABLE), null); String token = defaultIfBlank(scannerProps.property(TOKEN_PROPERTY), envVarToken); - String login = defaultIfBlank(scannerProps.property(CoreProperties.LOGIN), token); + String login = defaultIfBlank(token, scannerProps.property(CoreProperties.LOGIN)); boolean skipSystemTrustMaterial = Boolean.parseBoolean(defaultIfBlank(scannerProps.property(SKIP_SYSTEM_TRUST_MATERIAL), "false")); var sslContext = configureSsl(parseSslConfig(scannerProps, sonarUserHome), system, skipSystemTrustMaterial); connectorBuilder diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/CliCacheService.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/CliCacheService.java index 305bc224349..24db0ddec64 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/CliCacheService.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/CliCacheService.java @@ -25,6 +25,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.Reader; +import java.io.UncheckedIOException; import java.lang.reflect.Type; import java.nio.file.Files; import java.nio.file.Path; @@ -175,8 +176,8 @@ public class CliCacheService { }.getType(); return new Gson().fromJson(reader, listOfMetadata); } - } catch (Exception e) { - throw new IllegalStateException("Unable to load CLI metadata", e); + } catch (IOException e) { + throw new UncheckedIOException(e); } } diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/CliService.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/CliService.java index 013ac2df109..1b2346f2b62 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/CliService.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/CliService.java @@ -30,18 +30,21 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Consumer; +import java.util.stream.Stream; import javax.annotation.Nullable; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVPrinter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.event.Level; +import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.internal.DefaultInputModule; import org.sonar.api.platform.Server; import org.sonar.api.utils.System2; import org.sonar.core.util.ProcessWrapperFactory; import org.sonar.scanner.config.DefaultConfiguration; import org.sonar.scanner.repository.TelemetryCache; +import org.sonar.scanner.scan.filesystem.ProjectExclusionFilters; import org.sonar.scanner.scm.ScmConfiguration; import org.sonar.scm.git.JGitUtils; @@ -53,20 +56,24 @@ import org.sonar.scm.git.JGitUtils; */ public class CliService { private static final Logger LOG = LoggerFactory.getLogger(CliService.class); - public static final String EXCLUDED_MANIFESTS_PROP_KEY = "sonar.sca.excludedManifests"; + public static final String SCA_EXCLUSIONS_KEY = "sonar.sca.exclusions"; + public static final String LEGACY_SCA_EXCLUSIONS_KEY = "sonar.sca.excludedManifests"; private final ProcessWrapperFactory processWrapperFactory; private final TelemetryCache telemetryCache; private final System2 system2; private final Server server; private final ScmConfiguration scmConfiguration; + private final ProjectExclusionFilters projectExclusionFilters; - public CliService(ProcessWrapperFactory processWrapperFactory, TelemetryCache telemetryCache, System2 system2, Server server, ScmConfiguration scmConfiguration) { + public CliService(ProcessWrapperFactory processWrapperFactory, TelemetryCache telemetryCache, System2 system2, Server server, ScmConfiguration scmConfiguration, + ProjectExclusionFilters projectExclusionFilters) { this.processWrapperFactory = processWrapperFactory; this.telemetryCache = telemetryCache; this.system2 = system2; this.server = server; this.scmConfiguration = scmConfiguration; + this.projectExclusionFilters = projectExclusionFilters; } public File generateManifestsZip(DefaultInputModule module, File cliExecutable, DefaultConfiguration configuration) throws IOException, IllegalStateException { @@ -92,8 +99,7 @@ public class CliService { args.add(excludeFlag); } - boolean scaDebug = configuration.getBoolean("sonar.sca.debug").orElse(false); - if (LOG.isDebugEnabled() || scaDebug) { + if (LOG.isDebugEnabled()) { LOG.info("Setting CLI to debug mode"); args.add("--debug"); } @@ -121,7 +127,7 @@ public class CliService { } private @Nullable String getExcludeFlag(DefaultInputModule module, DefaultConfiguration configuration) throws IOException { - List<String> configExcludedPaths = getConfigExcludedPaths(configuration); + List<String> configExcludedPaths = getConfigExcludedPaths(configuration, projectExclusionFilters); List<String> scmIgnoredPaths = getScmIgnoredPaths(module); ArrayList<String> mergedExclusionPaths = new ArrayList<>(); @@ -141,12 +147,15 @@ public class CliService { return toCsvString(mergedExclusionPaths); } - private static List<String> getConfigExcludedPaths(DefaultConfiguration configuration) { - String[] excludedPaths = configuration.getStringArray(EXCLUDED_MANIFESTS_PROP_KEY); - if (excludedPaths == null) { - return List.of(); - } - return Arrays.stream(excludedPaths).toList(); + private static List<String> getConfigExcludedPaths(DefaultConfiguration configuration, ProjectExclusionFilters projectExclusionFilters) { + String[] sonarExclusions = projectExclusionFilters.getExclusionsConfig(InputFile.Type.MAIN); + String[] scaExclusions = configuration.getStringArray(SCA_EXCLUSIONS_KEY); + String[] scaExclusionsLegacy = configuration.getStringArray(LEGACY_SCA_EXCLUSIONS_KEY); + + return Stream.of(sonarExclusions, scaExclusions, scaExclusionsLegacy) + .flatMap(Arrays::stream) + .distinct() + .toList(); } private List<String> getScmIgnoredPaths(DefaultInputModule module) { @@ -168,7 +177,13 @@ public class CliService { } return scmIgnoredPaths.stream() .map(ignoredPathRel -> { - boolean isDirectory = Files.isDirectory(baseDirPath.resolve(ignoredPathRel)); + + boolean isDirectory = false; + try { + isDirectory = Files.isDirectory(baseDirPath.resolve(ignoredPathRel.replace("/", File.separator))); + } catch (java.nio.file.InvalidPathException e) { + // if it's not a valid path, it's not a directory so we can just pass to the Tidelift CLI + } // Directories need to get turned into a glob for the Tidelift CLI return isDirectory ? (ignoredPathRel + "/**") : ignoredPathRel; }) diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/ScaExecutor.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/ScaExecutor.java index 06142fadb8f..52a99673e43 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/ScaExecutor.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/ScaExecutor.java @@ -21,6 +21,8 @@ package org.sonar.scanner.sca; import java.io.File; import java.io.IOException; +import java.util.concurrent.TimeUnit; +import org.apache.commons.lang3.time.StopWatch; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonar.api.batch.fs.internal.DefaultInputModule; @@ -65,6 +67,8 @@ public class ScaExecutor { return; } + var stopwatch = new StopWatch(); + stopwatch.start(); LOG.info("Checking for latest CLI"); File cliFile = cliCacheService.cacheCli(); @@ -77,6 +81,11 @@ public class ScaExecutor { LOG.debug("Manifest zip written to report"); } catch (IOException | IllegalStateException e) { LOG.error("Error gathering manifests", e); + } finally { + stopwatch.stop(); + if (LOG.isInfoEnabled()) { + LOG.info("Load SCA project dependencies (done) | time={}ms", stopwatch.getTime(TimeUnit.MILLISECONDS)); + } } } } diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/ScaProperties.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/ScaProperties.java index e5086149c03..a697aef3e20 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/ScaProperties.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sca/ScaProperties.java @@ -31,6 +31,8 @@ public class ScaProperties { private static final Pattern sonarScaPropertyRegex = Pattern.compile("^sonar\\.sca\\.([a-zA-Z]+)$"); private static final String SONAR_SCA_PREFIX = "sonar.sca."; private static final Set<String> IGNORED_PROPERTIES = Set.of( + // sonar.sca.exclusions is a special case which we handle when building --exclude + "sonar.sca.exclusions", // excludedManifests is a special case which we handle when building --exclude "sonar.sca.excludedManifests", // keep recursive enabled to better match sonar-scanner behavior diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableModuleSettings.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableModuleSettings.java deleted file mode 100644 index 15912f8a510..00000000000 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableModuleSettings.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2025 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.scan; - -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import jakarta.annotation.Priority; -import org.sonar.api.config.internal.Settings; - -import static java.util.Objects.requireNonNull; - -/** - * @deprecated since 6.5 {@link ModuleConfiguration} used to be mutable, so keep a mutable copy for backward compatibility. - */ -@Deprecated -@Priority(1) -public class MutableModuleSettings extends Settings { - - private final Map<String, String> properties = new HashMap<>(); - - public MutableModuleSettings(ModuleConfiguration config) { - super(config.getDefinitions(), config.getEncryption()); - addProperties(config.getProperties()); - } - - @Override - protected Optional<String> get(String key) { - return Optional.ofNullable(properties.get(key)); - } - - @Override - protected void set(String key, String value) { - properties.put( - requireNonNull(key, "key can't be null"), - requireNonNull(value, "value can't be null").trim()); - } - - @Override - protected void remove(String key) { - properties.remove(key); - } - - @Override - public Map<String, String> getProperties() { - return properties; - } -} diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableProjectSettings.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableProjectSettings.java deleted file mode 100644 index df24cbe81e5..00000000000 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/MutableProjectSettings.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2025 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.scan; - -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import org.sonar.api.config.internal.Settings; -import org.sonar.scanner.bootstrap.GlobalConfiguration; - -import jakarta.annotation.Priority; - -import static java.util.Objects.requireNonNull; - -/** - * @deprecated since 6.5 {@link ProjectConfiguration} used to be mutable, so keep a mutable copy for backward compatibility. - */ -@Deprecated -@Priority(2) -public class MutableProjectSettings extends Settings { - - private final Map<String, String> properties = new HashMap<>(); - - public MutableProjectSettings(GlobalConfiguration globalConfig) { - super(globalConfig.getDefinitions(), globalConfig.getEncryption()); - addProperties(globalConfig.getProperties()); - } - - public void complete(ProjectConfiguration projectConfig) { - addProperties(projectConfig.getProperties()); - } - - @Override - protected Optional<String> get(String key) { - return Optional.ofNullable(properties.get(key)); - } - - @Override - protected void set(String key, String value) { - properties.put( - requireNonNull(key, "key can't be null"), - requireNonNull(value, "value can't be null").trim()); - } - - @Override - protected void remove(String key) { - properties.remove(key); - } - - @Override - public Map<String, String> getProperties() { - return properties; - } -} diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectConfigurationProvider.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectConfigurationProvider.java index c12ec245924..e5543d4f9c5 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectConfigurationProvider.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectConfigurationProvider.java @@ -26,7 +26,6 @@ import org.sonar.scanner.bootstrap.GlobalConfiguration; import org.sonar.scanner.bootstrap.GlobalServerSettings; import org.springframework.context.annotation.Bean; - public class ProjectConfigurationProvider { private final SonarGlobalPropertiesFilter sonarGlobalPropertiesFilter; @@ -37,7 +36,7 @@ public class ProjectConfigurationProvider { @Bean("ProjectConfiguration") public ProjectConfiguration provide(DefaultInputProject project, GlobalConfiguration globalConfig, GlobalServerSettings globalServerSettings, - ProjectServerSettings projectServerSettings, MutableProjectSettings projectSettings) { + ProjectServerSettings projectServerSettings) { Map<String, String> settings = new LinkedHashMap<>(); settings.putAll(globalServerSettings.properties()); settings.putAll(projectServerSettings.properties()); @@ -45,10 +44,7 @@ public class ProjectConfigurationProvider { settings = sonarGlobalPropertiesFilter.enforceOnlyServerSideSonarGlobalPropertiesAreUsed(settings, globalServerSettings.properties()); - ProjectConfiguration projectConfig = new ProjectConfiguration(globalConfig.getDefinitions(), globalConfig.getEncryption(), settings); - projectSettings.complete(projectConfig); - return projectConfig; + return new ProjectConfiguration(globalConfig.getDefinitions(), globalConfig.getEncryption(), settings); } - } diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/SpringModuleScanContainer.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/SpringModuleScanContainer.java index 4315c762481..8ddb889912d 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/SpringModuleScanContainer.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/SpringModuleScanContainer.java @@ -54,7 +54,6 @@ public class SpringModuleScanContainer extends SpringComponentContainer { add( module.definition(), module, - MutableModuleSettings.class, SonarGlobalPropertiesFilter.class, ModuleConfigurationProvider.class, @@ -68,8 +67,7 @@ public class SpringModuleScanContainer extends SpringComponentContainer { ModuleSensorOptimizer.class, ModuleSensorContext.class, - ModuleSensorExtensionDictionary.class - ); + ModuleSensorExtensionDictionary.class); } private void addExtensions() { diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/DirectoryFileVisitor.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/DirectoryFileVisitor.java index 314e923ce71..242bc015574 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/DirectoryFileVisitor.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/DirectoryFileVisitor.java @@ -24,17 +24,15 @@ import java.nio.file.AccessDeniedException; import java.nio.file.FileSystemLoopException; import java.nio.file.FileVisitResult; import java.nio.file.FileVisitor; -import java.nio.file.Files; import java.nio.file.LinkOption; import java.nio.file.Path; import java.nio.file.attribute.BasicFileAttributes; -import java.nio.file.attribute.DosFileAttributes; -import org.apache.commons.lang3.SystemUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.internal.DefaultInputModule; import org.sonar.scanner.fs.InputModuleHierarchy; +import org.sonar.scanner.scan.ModuleConfiguration; public class DirectoryFileVisitor implements FileVisitor<Path> { @@ -43,27 +41,31 @@ public class DirectoryFileVisitor implements FileVisitor<Path> { private final FileVisitAction fileVisitAction; private final DefaultInputModule module; private final ModuleExclusionFilters moduleExclusionFilters; - private final InputModuleHierarchy inputModuleHierarchy; private final InputFile.Type type; + private final HiddenFilesVisitorHelper hiddenFilesVisitorHelper; - DirectoryFileVisitor(FileVisitAction fileVisitAction, DefaultInputModule module, ModuleExclusionFilters moduleExclusionFilters, - InputModuleHierarchy inputModuleHierarchy, InputFile.Type type) { + DirectoryFileVisitor(FileVisitAction fileVisitAction, DefaultInputModule module, ModuleConfiguration moduleConfig, ModuleExclusionFilters moduleExclusionFilters, + InputModuleHierarchy inputModuleHierarchy, InputFile.Type type, HiddenFilesProjectData hiddenFilesProjectData) { this.fileVisitAction = fileVisitAction; this.module = module; this.moduleExclusionFilters = moduleExclusionFilters; this.inputModuleHierarchy = inputModuleHierarchy; this.type = type; + this.hiddenFilesVisitorHelper = new HiddenFilesVisitorHelper(hiddenFilesProjectData, module, moduleConfig); } @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { - return isHidden(dir) ? FileVisitResult.SKIP_SUBTREE : FileVisitResult.CONTINUE; + if (hiddenFilesVisitorHelper.shouldVisitDir(dir)) { + return FileVisitResult.CONTINUE; + } + return FileVisitResult.SKIP_SUBTREE; } @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { - if (!Files.isHidden(file)) { + if (hiddenFilesVisitorHelper.shouldVisitFile(file)) { fileVisitAction.execute(file); } return FileVisitResult.CONTINUE; @@ -129,25 +131,12 @@ public class DirectoryFileVisitor implements FileVisitor<Path> { @Override public FileVisitResult postVisitDirectory(Path dir, IOException exc) { + hiddenFilesVisitorHelper.exitDirectory(dir); return FileVisitResult.CONTINUE; } - private static boolean isHidden(Path path) throws IOException { - if (SystemUtils.IS_OS_WINDOWS) { - try { - DosFileAttributes dosFileAttributes = Files.readAttributes(path, DosFileAttributes.class, LinkOption.NOFOLLOW_LINKS); - return dosFileAttributes.isHidden(); - } catch (UnsupportedOperationException e) { - return path.toFile().isHidden(); - } - } else { - return Files.isHidden(path); - } - } - @FunctionalInterface interface FileVisitAction { void execute(Path file) throws IOException; } } - diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/FileIndexer.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/FileIndexer.java index 7f31c949132..d73924c17e0 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/FileIndexer.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/FileIndexer.java @@ -63,12 +63,13 @@ public class FileIndexer { private final ModuleRelativePathWarner moduleRelativePathWarner; private final InputFileFilterRepository inputFileFilterRepository; private final Languages languages; + private final HiddenFilesProjectData hiddenFilesProjectData; public FileIndexer(DefaultInputProject project, ScannerComponentIdGenerator scannerComponentIdGenerator, InputComponentStore componentStore, ProjectCoverageAndDuplicationExclusions projectCoverageAndDuplicationExclusions, IssueExclusionsLoader issueExclusionsLoader, MetadataGenerator metadataGenerator, SensorStrategy sensorStrategy, LanguageDetection languageDetection, ScanProperties properties, ScmChangedFiles scmChangedFiles, StatusDetection statusDetection, ModuleRelativePathWarner moduleRelativePathWarner, - InputFileFilterRepository inputFileFilterRepository, Languages languages) { + InputFileFilterRepository inputFileFilterRepository, Languages languages, HiddenFilesProjectData hiddenFilesProjectData) { this.project = project; this.scannerComponentIdGenerator = scannerComponentIdGenerator; this.componentStore = componentStore; @@ -83,15 +84,18 @@ public class FileIndexer { this.moduleRelativePathWarner = moduleRelativePathWarner; this.inputFileFilterRepository = inputFileFilterRepository; this.languages = languages; + this.hiddenFilesProjectData = hiddenFilesProjectData; } - void indexFile(DefaultInputModule module, ModuleCoverageAndDuplicationExclusions moduleCoverageAndDuplicationExclusions, Path sourceFile, - Type type, ProgressReport progressReport) { + void indexFile(DefaultInputModule module, ModuleCoverageAndDuplicationExclusions moduleCoverageAndDuplicationExclusions, Path sourceFile, Type type, + ProgressReport progressReport) { Path projectRelativePath = project.getBaseDir().relativize(sourceFile); Path moduleRelativePath = module.getBaseDir().relativize(sourceFile); // This should be fast; language should be cached from preprocessing step Language language = langDetection.language(sourceFile, projectRelativePath); + // cached from directory file visitation + boolean isHidden = hiddenFilesProjectData.isMarkedAsHiddenFile(sourceFile, module); DefaultIndexedFile indexedFile = new DefaultIndexedFile( sourceFile, @@ -102,11 +106,12 @@ public class FileIndexer { language != null ? language.key() : null, scannerComponentIdGenerator.getAsInt(), sensorStrategy, - scmChangedFiles.getOldRelativeFilePath(sourceFile)); + scmChangedFiles.getOldRelativeFilePath(sourceFile), + isHidden); DefaultInputFile inputFile = new DefaultInputFile(indexedFile, f -> metadataGenerator.setMetadata(module.key(), f, module.getEncoding()), f -> f.setStatus(statusDetection.findStatusFromScm(f))); - if (language != null && isPublishAllFiles(language.key())) { + if (!isHidden && language != null && isPublishAllFiles(language.key())) { inputFile.setPublished(true); } if (!accept(inputFile)) { diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/FilePreprocessor.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/FilePreprocessor.java index 544fe46c43b..a87c5f11fc9 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/FilePreprocessor.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/FilePreprocessor.java @@ -147,22 +147,35 @@ public class FilePreprocessor { return true; } - Path target = Files.readSymbolicLink(absolutePath); - if (!Files.exists(target)) { + Optional<Path> target = resolvePathToTarget(absolutePath); + if (target.isEmpty() || !Files.exists(target.get())) { LOG.warn("File '{}' is ignored. It is a symbolic link targeting a file that does not exist.", absolutePath); return false; } - if (!target.startsWith(project.getBaseDir())) { + if (!target.get().startsWith(project.getBaseDir())) { LOG.warn("File '{}' is ignored. It is a symbolic link targeting a file not located in project basedir.", absolutePath); return false; } - if (!target.startsWith(moduleBaseDirectory)) { + if (!target.get().startsWith(moduleBaseDirectory)) { LOG.info("File '{}' is ignored. It is a symbolic link targeting a file not located in module basedir.", absolutePath); return false; } return true; } + + private static Optional<Path> resolvePathToTarget(Path symbolicLinkAbsolutePath) throws IOException { + Path target = Files.readSymbolicLink(symbolicLinkAbsolutePath); + if (target.isAbsolute()) { + return Optional.of(target); + } + + try { + return Optional.of(symbolicLinkAbsolutePath.getParent().resolve(target).toRealPath(LinkOption.NOFOLLOW_LINKS).toAbsolutePath().normalize()); + } catch (IOException e) { + return Optional.empty(); + } + } } diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/HiddenFilesProjectData.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/HiddenFilesProjectData.java new file mode 100644 index 00000000000..e2d5f57acae --- /dev/null +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/HiddenFilesProjectData.java @@ -0,0 +1,73 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.scanner.scan.filesystem; + +import java.io.IOException; +import java.nio.file.LinkOption; +import java.nio.file.Path; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import org.apache.commons.lang3.SystemUtils; +import org.sonar.api.batch.fs.internal.DefaultInputModule; +import org.sonar.scanner.bootstrap.SonarUserHome; + +public class HiddenFilesProjectData { + + final Map<DefaultInputModule, Set<Path>> hiddenFilesByModule = new HashMap<>(); + private final SonarUserHome sonarUserHome; + private Path cachedSonarUserHomePath; + + public HiddenFilesProjectData(SonarUserHome sonarUserHome) { + this.sonarUserHome = sonarUserHome; + } + + public void markAsHiddenFile(Path file, DefaultInputModule module) { + hiddenFilesByModule.computeIfAbsent(module, k -> new HashSet<>()).add(file); + } + + public boolean isMarkedAsHiddenFile(Path file, DefaultInputModule module) { + Set<Path> hiddenFilesPerModule = hiddenFilesByModule.get(module); + if (hiddenFilesPerModule == null) { + return false; + } + return hiddenFilesPerModule.contains(file); + } + + public Path getCachedSonarUserHomePath() throws IOException { + if (cachedSonarUserHomePath == null) { + cachedSonarUserHomePath = resolveRealPath(sonarUserHome.getPath()); + } + return cachedSonarUserHomePath; + } + + public void clearHiddenFilesData() { + // Allowing the GC to collect the map, should only be done after all indexing is complete + hiddenFilesByModule.clear(); + } + + public Path resolveRealPath(Path path) throws IOException { + if (SystemUtils.IS_OS_WINDOWS) { + return path.toRealPath(LinkOption.NOFOLLOW_LINKS).toAbsolutePath().normalize(); + } + return path; + } +} diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/HiddenFilesVisitorHelper.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/HiddenFilesVisitorHelper.java new file mode 100644 index 00000000000..607a859ef44 --- /dev/null +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/HiddenFilesVisitorHelper.java @@ -0,0 +1,112 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.scanner.scan.filesystem; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.LinkOption; +import java.nio.file.Path; +import java.nio.file.attribute.DosFileAttributes; +import org.apache.commons.lang3.SystemUtils; +import org.sonar.api.batch.fs.internal.DefaultInputModule; +import org.sonar.scanner.scan.ModuleConfiguration; + +public class HiddenFilesVisitorHelper { + + private static final String EXCLUDE_HIDDEN_FILES_PROPERTY = "sonar.scanner.excludeHiddenFiles"; + private final HiddenFilesProjectData hiddenFilesProjectData; + private final DefaultInputModule module; + final boolean excludeHiddenFiles; + private Path moduleWorkDir; + Path rootHiddenDir; + + public HiddenFilesVisitorHelper(HiddenFilesProjectData hiddenFilesProjectData, DefaultInputModule module, ModuleConfiguration moduleConfig) { + this.hiddenFilesProjectData = hiddenFilesProjectData; + this.module = module; + this.excludeHiddenFiles = moduleConfig.getBoolean(EXCLUDE_HIDDEN_FILES_PROPERTY).orElse(false); + } + + public boolean shouldVisitDir(Path path) throws IOException { + boolean isHidden = isHiddenDir(path); + + if (isHidden && (excludeHiddenFiles || isExcludedHiddenDirectory(path))) { + return false; + } + if (isHidden) { + enterHiddenDirectory(path); + } + return true; + } + + private boolean isExcludedHiddenDirectory(Path path) throws IOException { + return getCachedModuleWorkDir().equals(path) || hiddenFilesProjectData.getCachedSonarUserHomePath().equals(path); + } + + void enterHiddenDirectory(Path dir) { + if (!insideHiddenDirectory()) { + rootHiddenDir = dir; + } + } + + public void exitDirectory(Path path) { + if (insideHiddenDirectory() && rootHiddenDir.equals(path)) { + resetRootHiddenDir(); + } + } + + void resetRootHiddenDir() { + this.rootHiddenDir = null; + } + + public boolean shouldVisitFile(Path path) throws IOException { + boolean isHidden = insideHiddenDirectory() || Files.isHidden(path); + + if (!excludeHiddenFiles && isHidden) { + hiddenFilesProjectData.markAsHiddenFile(path, module); + } + + return !excludeHiddenFiles || !isHidden; + } + + private Path getCachedModuleWorkDir() throws IOException { + if (moduleWorkDir == null) { + moduleWorkDir = hiddenFilesProjectData.resolveRealPath(module.getWorkDir()); + } + return moduleWorkDir; + } + + // visible for testing + boolean insideHiddenDirectory() { + return rootHiddenDir != null; + } + + protected static boolean isHiddenDir(Path path) throws IOException { + if (SystemUtils.IS_OS_WINDOWS) { + try { + DosFileAttributes dosFileAttributes = Files.readAttributes(path, DosFileAttributes.class, LinkOption.NOFOLLOW_LINKS); + return dosFileAttributes.isHidden(); + } catch (UnsupportedOperationException e) { + return path.toFile().isHidden(); + } + } else { + return Files.isHidden(path); + } + } +} diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStore.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStore.java index 6ef26dafd07..68b6d1db580 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStore.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStore.java @@ -19,12 +19,15 @@ */ package org.sonar.scanner.scan.filesystem; +import java.util.Set; import java.util.SortedSet; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; import org.sonar.api.batch.ScannerSide; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.InputModule; -import org.sonar.api.batch.fs.internal.SensorStrategy; import org.sonar.api.batch.fs.internal.DefaultFileSystem; +import org.sonar.api.batch.fs.internal.SensorStrategy; @ScannerSide public class ModuleInputComponentStore extends DefaultFileSystem.Cache { @@ -73,11 +76,29 @@ public class ModuleInputComponentStore extends DefaultFileSystem.Cache { @Override public Iterable<InputFile> getFilesByName(String filename) { - return inputComponentStore.getFilesByName(filename); + Iterable<InputFile> allFilesByName = inputComponentStore.getFilesByName(filename); + if (strategy.isGlobal()) { + return allFilesByName; + } + + return filterByModule(allFilesByName); } @Override public Iterable<InputFile> getFilesByExtension(String extension) { - return inputComponentStore.getFilesByExtension(extension); + Iterable<InputFile> allFilesByExtension = inputComponentStore.getFilesByExtension(extension); + if (strategy.isGlobal()) { + return allFilesByExtension; + } + + return filterByModule(allFilesByExtension); + } + + private Iterable<InputFile> filterByModule(Iterable<InputFile> projectInputFiles) { + Set<InputFile> projectInputFilesSet = StreamSupport.stream(projectInputFiles.spliterator(), false) + .collect(Collectors.toSet()); + return StreamSupport.stream(inputComponentStore.filesByModule(moduleKey).spliterator(), false) + .filter(projectInputFilesSet::contains) + .toList(); } } diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/MutableFileSystem.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/MutableFileSystem.java index 5daa384d3ac..9c969f6ae20 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/MutableFileSystem.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/MutableFileSystem.java @@ -25,35 +25,54 @@ import org.sonar.api.batch.fs.FilePredicates; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.internal.DefaultFileSystem; import org.sonar.api.batch.fs.internal.predicates.ChangedFilePredicate; +import org.sonar.api.batch.fs.internal.predicates.NonHiddenFilesPredicate; public class MutableFileSystem extends DefaultFileSystem { - private boolean restrictToChangedFiles = false; + + boolean restrictToChangedFiles = false; + boolean allowHiddenFileAnalysis = false; public MutableFileSystem(Path baseDir, Cache cache, FilePredicates filePredicates) { super(baseDir, cache, filePredicates); } - public MutableFileSystem(Path baseDir) { + MutableFileSystem(Path baseDir) { super(baseDir); } @Override public Iterable<InputFile> inputFiles(FilePredicate requestPredicate) { - if (restrictToChangedFiles) { - return super.inputFiles(new ChangedFilePredicate(requestPredicate)); - } - return super.inputFiles(requestPredicate); + return super.inputFiles(applyAdditionalPredicate(requestPredicate)); } @Override public InputFile inputFile(FilePredicate requestPredicate) { + return super.inputFile(applyAdditionalPredicate(requestPredicate)); + } + + private FilePredicate applyAdditionalPredicate(FilePredicate requestPredicate) { + return applyHiddenFilePredicate(applyChangedFilePredicate(requestPredicate)); + } + + private FilePredicate applyHiddenFilePredicate(FilePredicate predicate) { + if (allowHiddenFileAnalysis) { + return predicate; + } + return predicates().and(new NonHiddenFilesPredicate(), predicate); + } + + private FilePredicate applyChangedFilePredicate(FilePredicate predicate) { if (restrictToChangedFiles) { - return super.inputFile(new ChangedFilePredicate(requestPredicate)); + return predicates().and(new ChangedFilePredicate(), predicate); } - return super.inputFile(requestPredicate); + return predicate; } public void setRestrictToChangedFiles(boolean restrictToChangedFiles) { this.restrictToChangedFiles = restrictToChangedFiles; } + + public void setAllowHiddenFileAnalysis(boolean allowHiddenFileAnalysis) { + this.allowHiddenFileAnalysis = allowHiddenFileAnalysis; + } } diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ProjectFileIndexer.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ProjectFileIndexer.java index 97e449fcb26..c1349872c24 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ProjectFileIndexer.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ProjectFileIndexer.java @@ -62,6 +62,7 @@ public class ProjectFileIndexer { private final FileIndexer fileIndexer; private final ProjectFilePreprocessor projectFilePreprocessor; private final AnalysisWarnings analysisWarnings; + private final HiddenFilesProjectData hiddenFilesProjectData; private ProgressReport progressReport; @@ -69,7 +70,7 @@ public class ProjectFileIndexer { SonarGlobalPropertiesFilter sonarGlobalPropertiesFilter, InputModuleHierarchy inputModuleHierarchy, GlobalConfiguration globalConfig, GlobalServerSettings globalServerSettings, ProjectServerSettings projectServerSettings, FileIndexer fileIndexer, ProjectCoverageAndDuplicationExclusions projectCoverageAndDuplicationExclusions, - ProjectFilePreprocessor projectFilePreprocessor, AnalysisWarnings analysisWarnings) { + ProjectFilePreprocessor projectFilePreprocessor, AnalysisWarnings analysisWarnings, HiddenFilesProjectData hiddenFilesProjectData) { this.componentStore = componentStore; this.sonarGlobalPropertiesFilter = sonarGlobalPropertiesFilter; this.inputModuleHierarchy = inputModuleHierarchy; @@ -81,6 +82,7 @@ public class ProjectFileIndexer { this.projectCoverageAndDuplicationExclusions = projectCoverageAndDuplicationExclusions; this.projectFilePreprocessor = projectFilePreprocessor; this.analysisWarnings = analysisWarnings; + this.hiddenFilesProjectData = hiddenFilesProjectData; } public void index() { @@ -91,10 +93,10 @@ public class ProjectFileIndexer { projectCoverageAndDuplicationExclusions.log(" "); indexModulesRecursively(inputModuleHierarchy.root()); + hiddenFilesProjectData.clearHiddenFilesData(); int totalIndexed = componentStore.inputFiles().size(); - progressReport.stop(totalIndexed + " " + pluralizeFiles(totalIndexed) + " indexed"); - + progressReport.stopAndLogTotalTime(totalIndexed + " " + pluralizeFiles(totalIndexed) + " indexed"); } private void indexModulesRecursively(DefaultInputModule module) { @@ -118,15 +120,15 @@ public class ProjectFileIndexer { moduleCoverageAndDuplicationExclusions.log(" "); } List<Path> mainSourceDirsOrFiles = projectFilePreprocessor.getMainSourcesByModule(module); - indexFiles(module, moduleExclusionFilters, moduleCoverageAndDuplicationExclusions, mainSourceDirsOrFiles, Type.MAIN); + indexFiles(module, moduleConfig, moduleExclusionFilters, moduleCoverageAndDuplicationExclusions, mainSourceDirsOrFiles, Type.MAIN); projectFilePreprocessor.getTestSourcesByModule(module) - .ifPresent(tests -> indexFiles(module, moduleExclusionFilters, moduleCoverageAndDuplicationExclusions, tests, Type.TEST)); + .ifPresent(tests -> indexFiles(module, moduleConfig, moduleExclusionFilters, moduleCoverageAndDuplicationExclusions, tests, Type.TEST)); } private static void logPaths(String label, Path baseDir, List<Path> paths) { if (!paths.isEmpty()) { StringBuilder sb = new StringBuilder(label); - for (Iterator<Path> it = paths.iterator(); it.hasNext(); ) { + for (Iterator<Path> it = paths.iterator(); it.hasNext();) { Path file = it.next(); Optional<String> relativePathToBaseDir = PathResolver.relativize(baseDir, file); if (relativePathToBaseDir.isEmpty()) { @@ -148,12 +150,13 @@ public class ProjectFileIndexer { } } - private void indexFiles(DefaultInputModule module, ModuleExclusionFilters moduleExclusionFilters, ModuleCoverageAndDuplicationExclusions moduleCoverageAndDuplicationExclusions, + private void indexFiles(DefaultInputModule module, ModuleConfiguration moduleConfig, ModuleExclusionFilters moduleExclusionFilters, + ModuleCoverageAndDuplicationExclusions moduleCoverageAndDuplicationExclusions, List<Path> sources, Type type) { try { for (Path dirOrFile : sources) { if (dirOrFile.toFile().isDirectory()) { - indexDirectory(module, moduleExclusionFilters, moduleCoverageAndDuplicationExclusions, dirOrFile, type); + indexDirectory(module, moduleConfig, moduleExclusionFilters, moduleCoverageAndDuplicationExclusions, dirOrFile, type); } else { fileIndexer.indexFile(module, moduleCoverageAndDuplicationExclusions, dirOrFile, type, progressReport); } @@ -163,18 +166,16 @@ public class ProjectFileIndexer { } } - private void indexDirectory(DefaultInputModule module, ModuleExclusionFilters moduleExclusionFilters, + private void indexDirectory(DefaultInputModule module, ModuleConfiguration moduleConfig, ModuleExclusionFilters moduleExclusionFilters, ModuleCoverageAndDuplicationExclusions moduleCoverageAndDuplicationExclusions, Path dirToIndex, Type type) throws IOException { Files.walkFileTree(dirToIndex.normalize(), Collections.singleton(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE, new DirectoryFileVisitor(file -> fileIndexer.indexFile(module, moduleCoverageAndDuplicationExclusions, file, type, progressReport), - module, moduleExclusionFilters, inputModuleHierarchy, type)); + module, moduleConfig, moduleExclusionFilters, inputModuleHierarchy, type, hiddenFilesProjectData)); } private static String pluralizeFiles(int count) { return count == 1 ? "file" : "files"; } - - } diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ProjectFilePreprocessor.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ProjectFilePreprocessor.java index 033ab56d3d4..216f86c4f11 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ProjectFilePreprocessor.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/ProjectFilePreprocessor.java @@ -66,6 +66,7 @@ public class ProjectFilePreprocessor { private final LanguageDetection languageDetection; private final FilePreprocessor filePreprocessor; private final ProjectExclusionFilters projectExclusionFilters; + private final HiddenFilesProjectData hiddenFilesProjectData; private final SonarGlobalPropertiesFilter sonarGlobalPropertiesFilter; @@ -79,7 +80,7 @@ public class ProjectFilePreprocessor { public ProjectFilePreprocessor(AnalysisWarnings analysisWarnings, ScmConfiguration scmConfiguration, InputModuleHierarchy inputModuleHierarchy, GlobalConfiguration globalConfig, GlobalServerSettings globalServerSettings, ProjectServerSettings projectServerSettings, LanguageDetection languageDetection, FilePreprocessor filePreprocessor, - ProjectExclusionFilters projectExclusionFilters, SonarGlobalPropertiesFilter sonarGlobalPropertiesFilter) { + ProjectExclusionFilters projectExclusionFilters, SonarGlobalPropertiesFilter sonarGlobalPropertiesFilter, HiddenFilesProjectData hiddenFilesProjectData) { this.analysisWarnings = analysisWarnings; this.scmConfiguration = scmConfiguration; this.inputModuleHierarchy = inputModuleHierarchy; @@ -92,6 +93,7 @@ public class ProjectFilePreprocessor { this.sonarGlobalPropertiesFilter = sonarGlobalPropertiesFilter; this.ignoreCommand = loadIgnoreCommand(); this.useScmExclusion = ignoreCommand != null; + this.hiddenFilesProjectData = hiddenFilesProjectData; } public void execute() { @@ -109,7 +111,7 @@ public class ProjectFilePreprocessor { int totalLanguagesDetected = languageDetection.getDetectedLanguages().size(); - progressReport.stop(String.format("%s detected in %s", pluralizeWithCount("language", totalLanguagesDetected), + progressReport.stopAndLogTotalTime(String.format("%s detected in %s", pluralizeWithCount("language", totalLanguagesDetected), pluralizeWithCount("preprocessed file", totalFilesPreprocessed))); int excludedFileByPatternCount = exclusionCounter.getByPatternsCount(); @@ -138,24 +140,24 @@ public class ProjectFilePreprocessor { // Default to index basedir when no sources provided List<Path> mainSourceDirsOrFiles = module.getSourceDirsOrFiles() .orElseGet(() -> hasChildModules || hasTests ? emptyList() : singletonList(module.getBaseDir().toAbsolutePath())); - List<Path> processedSources = processModuleSources(module, moduleExclusionFilters, mainSourceDirsOrFiles, InputFile.Type.MAIN, + List<Path> processedSources = processModuleSources(module, moduleConfig, moduleExclusionFilters, mainSourceDirsOrFiles, InputFile.Type.MAIN, exclusionCounter); mainSourcesByModule.put(module, processedSources); totalFilesPreprocessed += processedSources.size(); module.getTestDirsOrFiles().ifPresent(tests -> { - List<Path> processedTestSources = processModuleSources(module, moduleExclusionFilters, tests, InputFile.Type.TEST, exclusionCounter); + List<Path> processedTestSources = processModuleSources(module, moduleConfig, moduleExclusionFilters, tests, InputFile.Type.TEST, exclusionCounter); testSourcesByModule.put(module, processedTestSources); totalFilesPreprocessed += processedTestSources.size(); }); } - private List<Path> processModuleSources(DefaultInputModule module, ModuleExclusionFilters moduleExclusionFilters, List<Path> sources, + private List<Path> processModuleSources(DefaultInputModule module, ModuleConfiguration moduleConfiguration, ModuleExclusionFilters moduleExclusionFilters, List<Path> sources, InputFile.Type type, ExclusionCounter exclusionCounter) { List<Path> processedFiles = new ArrayList<>(); try { for (Path dirOrFile : sources) { if (dirOrFile.toFile().isDirectory()) { - processedFiles.addAll(processDirectory(module, moduleExclusionFilters, dirOrFile, type, exclusionCounter)); + processedFiles.addAll(processDirectory(module, moduleConfiguration, moduleExclusionFilters, dirOrFile, type, exclusionCounter)); } else { filePreprocessor.processFile(module, moduleExclusionFilters, dirOrFile, type, exclusionCounter, ignoreCommand) .ifPresent(processedFiles::add); @@ -167,12 +169,12 @@ public class ProjectFilePreprocessor { return processedFiles; } - private List<Path> processDirectory(DefaultInputModule module, ModuleExclusionFilters moduleExclusionFilters, Path path, + private List<Path> processDirectory(DefaultInputModule module, ModuleConfiguration moduleConfiguration, ModuleExclusionFilters moduleExclusionFilters, Path path, InputFile.Type type, ExclusionCounter exclusionCounter) throws IOException { List<Path> processedFiles = new ArrayList<>(); Files.walkFileTree(path.normalize(), Collections.singleton(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE, new DirectoryFileVisitor(file -> filePreprocessor.processFile(module, moduleExclusionFilters, file, type, exclusionCounter, - ignoreCommand).ifPresent(processedFiles::add), module, moduleExclusionFilters, inputModuleHierarchy, type)); + ignoreCommand).ifPresent(processedFiles::add), module, moduleConfiguration, moduleExclusionFilters, inputModuleHierarchy, type, hiddenFilesProjectData)); return processedFiles; } diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/AbstractSensorWrapper.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/AbstractSensorWrapper.java index a08380cf9d8..10d75a4b3c5 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/AbstractSensorWrapper.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/AbstractSensorWrapper.java @@ -19,11 +19,11 @@ */ package org.sonar.scanner.sensor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.batch.sensor.internal.DefaultSensorDescriptor; import org.sonar.api.scanner.sensor.ProjectSensor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.sonar.scanner.scan.branch.BranchConfiguration; import org.sonar.scanner.scan.branch.BranchType; import org.sonar.scanner.scan.filesystem.MutableFileSystem; @@ -60,7 +60,12 @@ public abstract class AbstractSensorWrapper<G extends ProjectSensor> { if (sensorIsRestricted) { LOGGER.info("Sensor {} is restricted to changed files only", descriptor.name()); } + boolean allowHiddenFileAnalysis = descriptor.isProcessesHiddenFiles(); + if (allowHiddenFileAnalysis) { + LOGGER.debug("Sensor {} is allowed to analyze hidden files", descriptor.name()); + } fileSystem.setRestrictToChangedFiles(sensorIsRestricted); + fileSystem.setAllowHiddenFileAnalysis(allowHiddenFileAnalysis); wrappedSensor.execute(context); } diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ModuleSensorContext.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ModuleSensorContext.java index 5f28e7e283e..01b6c0c11cd 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ModuleSensorContext.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ModuleSensorContext.java @@ -28,7 +28,6 @@ import org.sonar.api.batch.rule.ActiveRules; import org.sonar.api.batch.sensor.cache.ReadCache; import org.sonar.api.batch.sensor.cache.WriteCache; import org.sonar.api.config.Configuration; -import org.sonar.api.config.Settings; import org.sonar.scanner.bootstrap.ScannerPluginRepository; import org.sonar.scanner.cache.AnalysisCacheEnabled; import org.sonar.scanner.scan.branch.BranchConfiguration; @@ -38,11 +37,11 @@ public class ModuleSensorContext extends ProjectSensorContext { private final InputModule module; - public ModuleSensorContext(DefaultInputProject project, InputModule module, Configuration config, Settings mutableModuleSettings, FileSystem fs, ActiveRules activeRules, + public ModuleSensorContext(DefaultInputProject project, InputModule module, Configuration config, FileSystem fs, ActiveRules activeRules, DefaultSensorStorage sensorStorage, SonarRuntime sonarRuntime, BranchConfiguration branchConfiguration, WriteCache writeCache, ReadCache readCache, AnalysisCacheEnabled analysisCacheEnabled, UnchangedFilesHandler unchangedFilesHandler, ExecutingSensorContext executingSensorContext, ScannerPluginRepository pluginRepository) { - super(project, config, mutableModuleSettings, fs, activeRules, sensorStorage, sonarRuntime, branchConfiguration, writeCache, readCache, analysisCacheEnabled, + super(project, config, fs, activeRules, sensorStorage, sonarRuntime, branchConfiguration, writeCache, readCache, analysisCacheEnabled, unchangedFilesHandler, executingSensorContext, pluginRepository); this.module = module; } diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ProjectSensorContext.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ProjectSensorContext.java index 6fb38fa4563..54c86750eaf 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ProjectSensorContext.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/ProjectSensorContext.java @@ -66,7 +66,6 @@ public class ProjectSensorContext implements SensorContext { static final NoOpNewAnalysisError NO_OP_NEW_ANALYSIS_ERROR = new NoOpNewAnalysisError(); - private final Settings mutableSettings; private final FileSystem fs; private final ActiveRules activeRules; private final DefaultSensorStorage sensorStorage; @@ -81,15 +80,14 @@ public class ProjectSensorContext implements SensorContext { private final ExecutingSensorContext executingSensorContext; private final ScannerPluginRepository pluginRepo; - public ProjectSensorContext(DefaultInputProject project, Configuration config, Settings mutableSettings, FileSystem fs, - ActiveRules activeRules, - DefaultSensorStorage sensorStorage, SonarRuntime sonarRuntime, BranchConfiguration branchConfiguration, - WriteCache writeCache, ReadCache readCache, - AnalysisCacheEnabled analysisCacheEnabled, UnchangedFilesHandler unchangedFilesHandler, - ExecutingSensorContext executingSensorContext, ScannerPluginRepository pluginRepo) { + public ProjectSensorContext(DefaultInputProject project, Configuration config, FileSystem fs, + ActiveRules activeRules, + DefaultSensorStorage sensorStorage, SonarRuntime sonarRuntime, BranchConfiguration branchConfiguration, + WriteCache writeCache, ReadCache readCache, + AnalysisCacheEnabled analysisCacheEnabled, UnchangedFilesHandler unchangedFilesHandler, + ExecutingSensorContext executingSensorContext, ScannerPluginRepository pluginRepo) { this.project = project; this.config = config; - this.mutableSettings = mutableSettings; this.fs = fs; this.activeRules = activeRules; this.sensorStorage = sensorStorage; @@ -105,7 +103,7 @@ public class ProjectSensorContext implements SensorContext { @Override public Settings settings() { - return mutableSettings; + throw new UnsupportedOperationException("This method is not supported anymore"); } @Override diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scm/git/CompositeBlameCommand.java b/sonar-scanner-engine/src/main/java/org/sonar/scm/git/CompositeBlameCommand.java index 0742740bba6..a481f4a54f4 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scm/git/CompositeBlameCommand.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scm/git/CompositeBlameCommand.java @@ -22,7 +22,9 @@ package org.sonar.scm.git; import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.time.Instant; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -32,6 +34,7 @@ import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import javax.annotation.Nullable; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.diff.RawTextComparator; @@ -238,7 +241,7 @@ public class CompositeBlameCommand extends BlameCommand { break; } linesList.add(new BlameLine() - .date(fileBlame.getCommitDates()[i]) + .date(toDate(fileBlame.getCommitDates()[i])) .revision(fileBlame.getCommitHashes()[i]) .author(fileBlame.getAuthorEmails()[i])); } @@ -251,4 +254,8 @@ public class CompositeBlameCommand extends BlameCommand { } } + private static @Nullable Date toDate(@Nullable Instant commitDate) { + return commitDate != null ? Date.from(commitDate) : null; + } + } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/sarif/RulesSeverityDetectorTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/sarif/RulesSeverityDetectorTest.java index 5091dcf5a3a..f5d88016944 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/sarif/RulesSeverityDetectorTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/sarif/RulesSeverityDetectorTest.java @@ -22,12 +22,16 @@ package org.sonar.scanner.externalissue.sarif; import java.util.List; import java.util.Map; import java.util.Set; +import javax.annotation.Nullable; import org.assertj.core.api.Assertions; import org.assertj.core.groups.Tuple; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.NullAndEmptySource; import org.slf4j.event.Level; -import org.sonar.api.testfixtures.log.LogTester; +import org.sonar.api.testfixtures.log.LogTesterJUnit5; import org.sonar.sarif.pojo.ReportingConfiguration; import org.sonar.sarif.pojo.ReportingDescriptor; import org.sonar.sarif.pojo.Result; @@ -44,12 +48,12 @@ import static org.sonar.sarif.pojo.Result.Level.WARNING; import static org.sonar.scanner.externalissue.sarif.ResultMapper.DEFAULT_IMPACT_SEVERITY; import static org.sonar.scanner.externalissue.sarif.ResultMapper.DEFAULT_SEVERITY; -public class RulesSeverityDetectorTest { +class RulesSeverityDetectorTest { private static final String DRIVER_NAME = "Test"; private static final String RULE_ID = "RULE_ID"; - @org.junit.Rule - public LogTester logTester = new LogTester().setLevel(Level.TRACE); + @RegisterExtension + private final LogTesterJUnit5 logTester = new LogTesterJUnit5(); private final Run run = mock(Run.class); private final ReportingDescriptor rule = mock(ReportingDescriptor.class); @@ -59,8 +63,8 @@ public class RulesSeverityDetectorTest { private final ToolComponent extension = mock(ToolComponent.class); private final ReportingConfiguration defaultConfiguration = mock(ReportingConfiguration.class); - @Before - public void setUp() { + @BeforeEach + void setUp() { when(run.getResults()).thenReturn(List.of(result)); when(run.getTool()).thenReturn(tool); when(tool.getDriver()).thenReturn(driver); @@ -68,8 +72,8 @@ public class RulesSeverityDetectorTest { // We keep this test for backward compatibility until we remove the deprecated severity @Test - public void detectRulesSeverities_detectsCorrectlyResultDefinedRuleSeverities() { - Run run = mockResultDefinedRuleSeverities(); + void detectRulesSeverities_detectsCorrectlyResultDefinedRuleSeverities() { + mockResultDefinedRuleSeverities(); Map<String, Result.Level> rulesSeveritiesByRuleId = RulesSeverityDetector.detectRulesSeverities(run, DRIVER_NAME); @@ -78,8 +82,8 @@ public class RulesSeverityDetectorTest { } @Test - public void detectRulesSeveritiesForNewTaxonomy_shouldReturnsEmptyMapAndLogsWarning_whenOnlyResultDefinedRuleSeverities() { - Run run = mockResultDefinedRuleSeverities(); + void detectRulesSeveritiesForNewTaxonomy_shouldReturnsEmptyMapAndLogsWarning_whenOnlyResultDefinedRuleSeverities() { + mockResultDefinedRuleSeverities(); Map<String, Result.Level> rulesSeveritiesByRuleId = RulesSeverityDetector.detectRulesSeveritiesForNewTaxonomy(run, DRIVER_NAME); @@ -88,8 +92,8 @@ public class RulesSeverityDetectorTest { } @Test - public void detectRulesSeverities_detectsCorrectlyDriverDefinedRuleSeverities() { - Run run = mockDriverDefinedRuleSeverities(); + void detectRulesSeverities_detectsCorrectlyDriverDefinedRuleSeverities() { + mockDriverDefinedRuleSeverities(); Map<String, Result.Level> rulesSeveritiesByRuleId = RulesSeverityDetector.detectRulesSeveritiesForNewTaxonomy(run, DRIVER_NAME); @@ -103,9 +107,13 @@ public class RulesSeverityDetectorTest { assertDetectedRuleSeverities(rulesSeveritiesByRuleId, tuple(RULE_ID, WARNING)); } - @Test - public void detectRulesSeverities_detectsCorrectlyExtensionsDefinedRuleSeverities() { - Run run = mockExtensionsDefinedRuleSeverities(); + + + @ParameterizedTest + @NullAndEmptySource + void detectRulesSeverities_detectsCorrectlyExtensionsDefinedRuleSeverities(@Nullable Set<ReportingDescriptor> rules) { + when(driver.getRules()).thenReturn(rules); + mockExtensionsDefinedRuleSeverities(); Map<String, Result.Level> rulesSeveritiesByRuleId = RulesSeverityDetector.detectRulesSeveritiesForNewTaxonomy(run, DRIVER_NAME); @@ -120,8 +128,8 @@ public class RulesSeverityDetectorTest { } @Test - public void detectRulesSeverities_returnsEmptyMapAndLogsWarning_whenUnableToDetectSeverities() { - Run run = mockUnsupportedRuleSeveritiesDefinition(); + void detectRulesSeverities_returnsEmptyMapAndLogsWarning_whenUnableToDetectSeverities() { + mockUnsupportedRuleSeveritiesDefinition(); Map<String, Result.Level> rulesSeveritiesByRuleId = RulesSeverityDetector.detectRulesSeveritiesForNewTaxonomy(run, DRIVER_NAME); @@ -135,38 +143,33 @@ public class RulesSeverityDetectorTest { assertDetectedRuleSeverities(rulesSeveritiesByRuleId); } - private Run mockResultDefinedRuleSeverities() { + private void mockResultDefinedRuleSeverities() { when(run.getResults()).thenReturn(List.of(result)); when(result.getLevel()).thenReturn(WARNING); when(result.getRuleId()).thenReturn(RULE_ID); - return run; } - private Run mockDriverDefinedRuleSeverities() { + private void mockDriverDefinedRuleSeverities() { when(driver.getRules()).thenReturn(Set.of(rule)); when(rule.getId()).thenReturn(RULE_ID); when(rule.getDefaultConfiguration()).thenReturn(defaultConfiguration); when(defaultConfiguration.getLevel()).thenReturn(ReportingConfiguration.Level.WARNING); - return run; } - private Run mockExtensionsDefinedRuleSeverities() { - when(driver.getRules()).thenReturn(Set.of()); + private void mockExtensionsDefinedRuleSeverities() { when(tool.getExtensions()).thenReturn(Set.of(extension)); when(extension.getRules()).thenReturn(Set.of(rule)); when(rule.getId()).thenReturn(RULE_ID); when(rule.getDefaultConfiguration()).thenReturn(defaultConfiguration); when(defaultConfiguration.getLevel()).thenReturn(ReportingConfiguration.Level.WARNING); - return run; } - private Run mockUnsupportedRuleSeveritiesDefinition() { + private void mockUnsupportedRuleSeveritiesDefinition() { when(run.getTool()).thenReturn(tool); when(tool.getDriver()).thenReturn(driver); when(driver.getRules()).thenReturn(Set.of()); when(tool.getExtensions()).thenReturn(Set.of(extension)); when(extension.getRules()).thenReturn(Set.of()); - return run; } private void assertNoLogs() { diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/sarif/RunMapperTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/sarif/RunMapperTest.java index 90ddfadd9f3..164787f8cde 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/sarif/RunMapperTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/sarif/RunMapperTest.java @@ -22,19 +22,19 @@ package org.sonar.scanner.externalissue.sarif; import java.util.List; import java.util.Map; import java.util.Set; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; import org.mockito.Answers; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockedStatic; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.slf4j.event.Level; import org.sonar.api.batch.sensor.issue.NewExternalIssue; import org.sonar.api.batch.sensor.rule.NewAdHocRule; -import org.sonar.api.testfixtures.log.LogTester; +import org.sonar.api.testfixtures.log.LogTesterJUnit5; import org.sonar.sarif.pojo.ReportingDescriptor; import org.sonar.sarif.pojo.Result; import org.sonar.sarif.pojo.Run; @@ -44,13 +44,14 @@ import org.sonar.scanner.externalissue.sarif.RunMapper.RunMapperResult; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; import static org.assertj.core.api.Assertions.assertThatNoException; +import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mockStatic; import static org.mockito.Mockito.when; import static org.sonar.sarif.pojo.Result.Level.WARNING; -@RunWith(MockitoJUnitRunner.class) -public class RunMapperTest { +@ExtendWith(MockitoExtension.class) +class RunMapperTest { private static final String TEST_DRIVER = "Test driver"; public static final String RULE_ID = "ruleId"; @@ -66,21 +67,21 @@ public class RunMapperTest { @Mock private ReportingDescriptor rule; - @Rule - public LogTester logTester = new LogTester(); + @RegisterExtension + public LogTesterJUnit5 logTester = new LogTesterJUnit5(); @InjectMocks private RunMapper runMapper; - @Before - public void setUp() { - when(run.getTool().getDriver().getName()).thenReturn(TEST_DRIVER); - when(run.getTool().getExtensions()).thenReturn(null); - when(rule.getId()).thenReturn(RULE_ID); + @BeforeEach + void setUp() { + lenient().when(run.getTool().getDriver().getName()).thenReturn(TEST_DRIVER); + lenient().when(run.getTool().getExtensions()).thenReturn(null); + lenient().when(rule.getId()).thenReturn(RULE_ID); } @Test - public void mapRun_shouldMapExternalIssues() { + void mapRun_shouldMapExternalIssues() { Result result1 = mock(Result.class); Result result2 = mock(Result.class); when(run.getResults()).thenReturn(List.of(result1, result2)); @@ -99,7 +100,7 @@ public class RunMapperTest { } @Test - public void mapRun_shouldMapExternalRules_whenDriverHasRulesAndNoExtensions() { + void mapRun_shouldMapExternalRules_whenDriverHasRulesAndNoExtensions() { when(run.getTool().getDriver().getRules()).thenReturn(Set.of(rule)); NewAdHocRule externalRule = mockMappedExternalRule(); @@ -115,7 +116,7 @@ public class RunMapperTest { } @Test - public void mapRun_shouldMapExternalRules_whenRulesInExtensions() { + void mapRun_shouldMapExternalRules_whenRulesInExtensions() { when(run.getTool().getDriver().getRules()).thenReturn(Set.of()); ToolComponent extension = mock(ToolComponent.class); when(extension.getRules()).thenReturn(Set.of(rule)); @@ -134,7 +135,7 @@ public class RunMapperTest { } @Test - public void mapRun_shouldNotFail_whenExtensionsDontHaveRules() { + void mapRun_shouldNotFail_whenExtensionsDontHaveRules() { when(run.getTool().getDriver().getRules()).thenReturn(Set.of(rule)); ToolComponent extension = mock(ToolComponent.class); when(extension.getRules()).thenReturn(null); @@ -149,7 +150,7 @@ public class RunMapperTest { } @Test - public void mapRun_shouldNotFail_whenExtensionsHaveEmptyRules() { + void mapRun_shouldNotFail_whenExtensionsHaveEmptyRules() { when(run.getTool().getDriver().getRules()).thenReturn(Set.of(rule)); ToolComponent extension = mock(ToolComponent.class); when(extension.getRules()).thenReturn(Set.of()); @@ -164,7 +165,7 @@ public class RunMapperTest { } @Test - public void mapRun_ifRunIsEmpty_returnsEmptyList() { + void mapRun_ifRunIsEmpty_returnsEmptyList() { when(run.getResults()).thenReturn(List.of()); RunMapperResult runMapperResult = runMapper.mapRun(run); @@ -173,7 +174,7 @@ public class RunMapperTest { } @Test - public void mapRun_ifExceptionThrownByResultMapper_logsThemAndContinueProcessing() { + void mapRun_ifExceptionThrownByResultMapper_logsThemAndContinueProcessing() { Result result1 = mock(Result.class); Result result2 = mock(Result.class); when(run.getResults()).thenReturn(List.of(result1, result2)); @@ -194,7 +195,7 @@ public class RunMapperTest { } @Test - public void mapRun_failsIfToolNotSet() { + void mapRun_failsIfToolNotSet() { when(run.getTool()).thenReturn(null); assertThatIllegalArgumentException() @@ -203,7 +204,7 @@ public class RunMapperTest { } @Test - public void mapRun_failsIfDriverNotSet() { + void mapRun_failsIfDriverNotSet() { when(run.getTool().getDriver()).thenReturn(null); assertThatIllegalArgumentException() @@ -212,7 +213,7 @@ public class RunMapperTest { } @Test - public void mapRun_failsIfDriverNameIsNotSet() { + void mapRun_failsIfDriverNameIsNotSet() { when(run.getTool().getDriver().getName()).thenReturn(null); assertThatIllegalArgumentException() @@ -220,6 +221,25 @@ public class RunMapperTest { .withMessage("The run does not have a tool driver name defined."); } + @Test + void mapRun_shouldNotFail_whenDriverRulesNullAndExtensionsRulesNotNull() { + when(run.getTool().getDriver().getRules()).thenReturn(null); + ToolComponent extension = mock(ToolComponent.class); + when(extension.getRules()).thenReturn(Set.of(rule)); + when(run.getTool().getExtensions()).thenReturn(Set.of(extension)); + NewAdHocRule expectedRule = mock(NewAdHocRule.class); + when(ruleMapper.mapRule(rule, TEST_DRIVER, WARNING, WARNING)).thenReturn(expectedRule); + + try (MockedStatic<RulesSeverityDetector> detector = mockStatic(RulesSeverityDetector.class)) { + detector.when(() -> RulesSeverityDetector.detectRulesSeverities(run, TEST_DRIVER)).thenReturn(Map.of(RULE_ID, WARNING)); + detector.when(() -> RulesSeverityDetector.detectRulesSeveritiesForNewTaxonomy(run, TEST_DRIVER)).thenReturn(Map.of(RULE_ID, WARNING)); + + RunMapperResult runMapperResult = runMapper.mapRun(run); + assertThat(runMapperResult.getNewAdHocRules()).hasSize(1); + assertThat(runMapperResult.getNewAdHocRules().get(0)).isEqualTo(expectedRule); + } + } + private NewExternalIssue mockMappedExternalIssue(Result result) { NewExternalIssue externalIssue = mock(NewExternalIssue.class); when(result.getRuleId()).thenReturn(RULE_ID); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/CliCacheServiceTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/CliCacheServiceTest.java index 9193157e213..6615ba4e4e4 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/CliCacheServiceTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/CliCacheServiceTest.java @@ -29,6 +29,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; import org.apache.commons.io.FileUtils; +import org.apache.commons.lang.SystemUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -161,7 +162,7 @@ class CliCacheServiceTest { WsTestUtil.mockException(scannerWsClient, e); assertThatThrownBy(underTest::cacheCli).isInstanceOf(IllegalStateException.class) - .hasMessageContaining("Unable to load CLI metadata"); + .hasMessageContaining("http error"); verify(telemetryCache).put("scanner.sca.get.cli.success", "false"); } @@ -187,14 +188,18 @@ class CliCacheServiceTest { FileUtils.writeStringToFile(existingFile, fileContent, Charset.defaultCharset()); assertThat(existingFile).exists(); - assertThat(existingFile.canExecute()).isFalse(); + if (!SystemUtils.IS_OS_WINDOWS) { + assertThat(existingFile.canExecute()).isFalse(); + } assertThat(FileUtils.readFileToString(existingFile, Charset.defaultCharset())).isEqualTo(fileContent); underTest.cacheCli(); WsTestUtil.verifyCall(scannerWsClient, CLI_WS_URL); assertThat(existingFile).exists(); - assertThat(existingFile.canExecute()).isFalse(); + if (!SystemUtils.IS_OS_WINDOWS) { + assertThat(existingFile.canExecute()).isFalse(); + } assertThat(FileUtils.readFileToString(existingFile, Charset.defaultCharset())).isEqualTo(fileContent); verify(telemetryCache).put("scanner.sca.get.cli.cache.hit", "true"); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/CliServiceTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/CliServiceTest.java index e907294d6fd..86958228c34 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/CliServiceTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/CliServiceTest.java @@ -27,7 +27,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.Map; -import java.util.Optional; import org.apache.commons.lang3.SystemUtils; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -36,6 +35,7 @@ import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.io.TempDir; import org.mockito.MockedStatic; import org.sonar.api.batch.bootstrap.ProjectDefinition; +import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.internal.DefaultInputModule; import org.sonar.api.batch.scm.ScmProvider; import org.sonar.api.platform.Server; @@ -44,6 +44,7 @@ import org.sonar.api.utils.System2; import org.sonar.core.util.ProcessWrapperFactory; import org.sonar.scanner.config.DefaultConfiguration; import org.sonar.scanner.repository.TelemetryCache; +import org.sonar.scanner.scan.filesystem.ProjectExclusionFilters; import org.sonar.scanner.scm.ScmConfiguration; import org.sonar.scm.git.GitScmProvider; import org.sonar.scm.git.JGitUtils; @@ -69,6 +70,7 @@ class CliServiceTest { ProcessWrapperFactory processWrapperFactory = mock(ProcessWrapperFactory.class, CALLS_REAL_METHODS); private MockedStatic<JGitUtils> jGitUtilsMock; DefaultConfiguration configuration = mock(DefaultConfiguration.class); + ProjectExclusionFilters projectExclusionFilters = mock(ProjectExclusionFilters.class); private CliService underTest; @@ -86,9 +88,11 @@ class CliServiceTest { jGitUtilsMock.when(() -> JGitUtils.getAllIgnoredPaths(any(Path.class))).thenReturn(List.of("ignored.txt")); when(server.getVersion()).thenReturn("1.0.0"); logTester.setLevel(INFO); - when(configuration.getBoolean("sonar.sca.debug")).thenReturn(Optional.of(true)); + when(projectExclusionFilters.getExclusionsConfig(InputFile.Type.MAIN)).thenReturn(new String[0]); + when(configuration.getStringArray(CliService.SCA_EXCLUSIONS_KEY)).thenReturn(new String[0]); + when(configuration.getStringArray(CliService.LEGACY_SCA_EXCLUSIONS_KEY)).thenReturn(new String[0]); - underTest = new CliService(processWrapperFactory, telemetryCache, System2.INSTANCE, server, scmConfiguration); + underTest = new CliService(processWrapperFactory, telemetryCache, System2.INSTANCE, server, scmConfiguration, projectExclusionFilters); } @AfterEach @@ -102,8 +106,8 @@ class CliServiceTest { void generateZip_shouldCallProcessCorrectly_andRegisterTelemetry() throws IOException, URISyntaxException { assertThat(rootModuleDir.resolve("test_file").toFile().createNewFile()).isTrue(); - when(configuration.getProperties()).thenReturn(Map.of(CliService.EXCLUDED_MANIFESTS_PROP_KEY, "foo,bar,baz/**")); - when(configuration.getStringArray(CliService.EXCLUDED_MANIFESTS_PROP_KEY)).thenReturn(new String[] {"foo", "bar", "baz/**"}); + when(configuration.getProperties()).thenReturn(Map.of(CliService.SCA_EXCLUSIONS_KEY, "foo,bar,baz/**")); + when(configuration.getStringArray(CliService.SCA_EXCLUSIONS_KEY)).thenReturn(new String[] {"foo", "bar", "baz/**"}); File producedZip = underTest.generateManifestsZip(rootInputModule, scriptDir(), configuration); @@ -119,8 +123,7 @@ class CliServiceTest { rootInputModule.getBaseDir().toString(), "--recursive", "--exclude", - "foo,bar,baz/**,ignored.txt,.scannerwork/**", - "--debug"); + "foo,bar,baz/**,ignored.txt,.scannerwork/**"); assertThat(logTester.logs(INFO)) .contains("Arguments Passed In: " + String.join(" ", expectedArguments)) @@ -135,7 +138,6 @@ class CliServiceTest { @Test void generateZip_whenDebugLogLevelAndScaDebugNotEnabled_shouldWriteDebugLogsToDebugStream() throws IOException, URISyntaxException { logTester.setLevel(DEBUG); - when(configuration.getBoolean("sonar.sca.debug")).thenReturn(Optional.of(false)); assertThat(rootModuleDir.resolve("test_file").toFile().createNewFile()).isTrue(); @@ -160,8 +162,6 @@ class CliServiceTest { @Test void generateZip_whenScaDebugEnabled_shouldWriteDebugLogsToInfoStream() throws IOException, URISyntaxException { - when(configuration.getBoolean("sonar.sca.debug")).thenReturn(Optional.of(true)); - assertThat(rootModuleDir.resolve("test_file").toFile().createNewFile()).isTrue(); underTest.generateManifestsZip(rootInputModule, scriptDir(), configuration); @@ -176,8 +176,7 @@ class CliServiceTest { rootInputModule.getBaseDir().toString(), "--recursive", "--exclude", - "ignored.txt,.scannerwork/**", - "--debug"); + "ignored.txt,.scannerwork/**"); assertThat(logTester.logs(INFO)) .contains("Arguments Passed In: " + String.join(" ", expectedArguments)); @@ -206,8 +205,7 @@ class CliServiceTest { rootInputModule.getBaseDir().toString(), "--recursive", "--exclude", - "ignored.txt,.scannerwork/**", - "--debug"); + "ignored.txt,.scannerwork/**"); assertThat(logTester.logs(INFO)) .contains("Arguments Passed In: " + String.join(" ", expectedArguments)) @@ -225,7 +223,7 @@ class CliServiceTest { underTest.generateManifestsZip(rootInputModule, scriptDir(), configuration); String capturedArgs = logTester.logs().stream().filter(log -> log.contains("Arguments Passed In:")).findFirst().get(); - assertThat(capturedArgs).contains("--exclude .scannerwork/** --debug"); + assertThat(capturedArgs).contains("--exclude .scannerwork/**"); } @Test @@ -235,17 +233,17 @@ class CliServiceTest { underTest.generateManifestsZip(rootInputModule, scriptDir(), configuration); String capturedArgs = logTester.logs().stream().filter(log -> log.contains("Arguments Passed In:")).findFirst().get(); - assertThat(capturedArgs).contains("--exclude .scannerwork/** --debug"); + assertThat(capturedArgs).contains("--exclude .scannerwork/**"); } @Test - void generateZip_withExclusionDisabled_doesNotIncludeScmIgnoredPaths() throws Exception { + void generateZip_withScmExclusionDisabled_doesNotIncludeScmIgnoredPaths() throws Exception { when(scmConfiguration.isExclusionDisabled()).thenReturn(true); underTest.generateManifestsZip(rootInputModule, scriptDir(), configuration); String capturedArgs = logTester.logs().stream().filter(log -> log.contains("Arguments Passed In:")).findFirst().get(); - assertThat(capturedArgs).contains("--exclude .scannerwork/** --debug"); + assertThat(capturedArgs).contains("--exclude .scannerwork/**"); } @Test @@ -255,12 +253,12 @@ class CliServiceTest { underTest.generateManifestsZip(rootInputModule, scriptDir(), configuration); String capturedArgs = logTester.logs().stream().filter(log -> log.contains("Arguments Passed In:")).findFirst().get(); - assertThat(capturedArgs).contains("--exclude .scannerwork/** --debug"); + assertThat(capturedArgs).contains("--exclude .scannerwork/**"); } @Test - void generateZip_withExistingExcludedManifests_appendsScmIgnoredPaths() throws Exception { - when(configuration.getStringArray(CliService.EXCLUDED_MANIFESTS_PROP_KEY)).thenReturn(new String[] {"**/test/**"}); + void generateZip_withExcludedManifests_appendsScmIgnoredPaths() throws Exception { + when(configuration.getStringArray(CliService.SCA_EXCLUSIONS_KEY)).thenReturn(new String[] {"**/test/**"}); underTest.generateManifestsZip(rootInputModule, scriptDir(), configuration); @@ -269,32 +267,65 @@ class CliServiceTest { } @Test - void generateZip_withExcludedManifestsSettingContainingBadCharacters_handlesTheBadCharacters() throws Exception { - when(configuration.getStringArray(CliService.EXCLUDED_MANIFESTS_PROP_KEY)).thenReturn(new String[] { - "**/test/**", "**/path with spaces/**", "**/path,with,commas/**", "**/path'with'quotes/**", "**/path\"with\"double\"quotes/**"}); + void generateZip_withExcludedManifestsContainingBadCharacters_handlesTheBadCharacters() throws Exception { + when(configuration.getStringArray(CliService.SCA_EXCLUSIONS_KEY)).thenReturn(new String[] { + "**/test/**", "**/path with spaces/**", "**/path'with'quotes/**", "**/path\"with\"double\"quotes/**"}); underTest.generateManifestsZip(rootInputModule, scriptDir(), configuration); String capturedArgs = logTester.logs().stream().filter(log -> log.contains("Arguments Passed In:")).findFirst().get(); String expectedExcludeFlag = """ - --exclude **/test/**,**/path with spaces/**,"**/path,with,commas/**",**/path'with'quotes/**,"**/path""with""double""quotes/**",ignored.txt + --exclude **/test/**,**/path with spaces/**,**/path'with'quotes/**,"**/path""with""double""quotes/**",ignored.txt """.strip(); + if (SystemUtils.IS_OS_WINDOWS) { + expectedExcludeFlag = """ + --exclude "**/test/**,**/path with spaces/**,**/path'with'quotes/**,"**/path""with""double""quotes/**",ignored.txt + """.strip(); + } assertThat(capturedArgs).contains(expectedExcludeFlag); } @Test + void generateZip_withExcludedManifestsContainingDupes_dedupes() throws Exception { + when(configuration.getStringArray(CliService.SCA_EXCLUSIONS_KEY)).thenReturn(new String[] {"**/test1/**", "**/test2/**", "**/test1/**"}); + when(configuration.getStringArray(CliService.LEGACY_SCA_EXCLUSIONS_KEY)).thenReturn(new String[] {"**/test1/**", "**/test3/**"}); + + underTest.generateManifestsZip(rootInputModule, scriptDir(), configuration); + + String capturedArgs = logTester.logs().stream().filter(log -> log.contains("Arguments Passed In:")).findFirst().get(); + assertThat(capturedArgs).contains("--exclude **/test1/**,**/test2/**,**/test3/**,ignored.txt,.scannerwork/**"); + } + + @Test + void generateZip_withExcludedManifestsAndSonarExcludesContainingDupes_mergesAndDedupes() throws Exception { + when(projectExclusionFilters.getExclusionsConfig(InputFile.Type.MAIN)).thenReturn(new String[] {"**/test1/**", "**/test4/**"}); + when(configuration.getStringArray(CliService.SCA_EXCLUSIONS_KEY)).thenReturn(new String[] {"**/test1/**", "**/test2/**", "**/test1/**"}); + when(configuration.getStringArray(CliService.LEGACY_SCA_EXCLUSIONS_KEY)).thenReturn(new String[] {"**/test1/**", "**/test3/**"}); + + underTest.generateManifestsZip(rootInputModule, scriptDir(), configuration); + + String capturedArgs = logTester.logs().stream().filter(log -> log.contains("Arguments Passed In:")).findFirst().get(); + assertThat(capturedArgs).contains("--exclude **/test1/**,**/test4/**,**/test2/**,**/test3/**,ignored.txt,.scannerwork/**"); + } + + @Test void generateZip_withScmIgnoresContainingBadCharacters_handlesTheBadCharacters() throws Exception { jGitUtilsMock.when(() -> JGitUtils.getAllIgnoredPaths(any(Path.class))) - .thenReturn(List.of("**/test/**", "**/path with spaces/**", "**/path,with,commas/**", "**/path'with'quotes/**", "**/path\"with\"double\"quotes/**")); + .thenReturn(List.of("**/test/**", "**/path with spaces/**", "**/path'with'quotes/**", "**/path\"with\"double\"quotes/**")); underTest.generateManifestsZip(rootInputModule, scriptDir(), configuration); String capturedArgs = logTester.logs().stream().filter(log -> log.contains("Arguments Passed In:")).findFirst().get(); String expectedExcludeFlag = """ - --exclude **/test/**,**/path with spaces/**,"**/path,with,commas/**",**/path'with'quotes/**,"**/path""with""double""quotes/**" + --exclude **/test/**,**/path with spaces/**,**/path'with'quotes/**,"**/path""with""double""quotes/**" + """.strip(); + if (SystemUtils.IS_OS_WINDOWS) { + expectedExcludeFlag = """ + --exclude "**/test/**,**/path with spaces/**,**/path'with'quotes/**,"**/path""with""double""quotes/**" """.strip(); + } assertThat(capturedArgs).contains(expectedExcludeFlag); } @@ -323,7 +354,7 @@ class CliServiceTest { String capturedArgs = logTester.logs().stream().filter(log -> log.contains("Arguments Passed In:")).findFirst().get(); // externalWorkDir is not present in the exclude flag - assertThat(capturedArgs).contains("--exclude ignored.txt --debug"); + assertThat(capturedArgs).contains("--exclude ignored.txt"); } finally { externalWorkDir.toFile().delete(); } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/ScaExecutorTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/ScaExecutorTest.java index aecbc7011a9..c4eecd73d65 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/ScaExecutorTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sca/ScaExecutorTest.java @@ -161,4 +161,20 @@ class ScaExecutorTest { assertThat(logTester.logs(Level.DEBUG)).contains("Zip ready for report: " + mockManifestZip); assertThat(logTester.logs(Level.DEBUG)).contains("Manifest zip written to report"); } + + @Test + void execute_printsRuntime() throws IOException { + File mockCliFile = Files.newTemporaryFile(); + File mockManifestZip = Files.newTemporaryFile(); + ScannerReportWriter mockReportWriter = mock(ScannerReportWriter.class); + when(cliCacheService.cacheCli()).thenReturn(mockCliFile); + when(cliService.generateManifestsZip(root, mockCliFile, configuration)).thenReturn(mockManifestZip); + when(reportPublisher.getWriter()).thenReturn(mockReportWriter); + + logTester.setLevel(Level.INFO); + + underTest.execute(root); + + assertThat(logTester.logs(Level.INFO)).anyMatch(l -> l.matches("Load SCA project dependencies \\(done\\) \\| time=\\d+ms")); + } } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectConfigurationProviderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectConfigurationProviderTest.java index 21dcf58b114..3e3066e76e2 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectConfigurationProviderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectConfigurationProviderTest.java @@ -52,10 +52,9 @@ public class ProjectConfigurationProviderTest { private static final Map<String, String> PROJECT_SERVER_PROPERTIES = Map.of(NON_GLOBAL_KEY_PROPERTIES_1, NON_GLOBAL_VALUE_PROPERTIES_1); private static final Map<String, String> DEFAULT_PROJECT_PROPERTIES = Map.of(DEFAULT_KEY_PROPERTIES_1, DEFAULT_VALUE_1); - private static final Map<String, String> ALL_PROPERTIES_MAP = - Stream.of(GLOBAL_SERVER_PROPERTIES, PROJECT_SERVER_PROPERTIES, DEFAULT_PROJECT_PROPERTIES) - .flatMap(map -> map.entrySet().stream()) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + private static final Map<String, String> ALL_PROPERTIES_MAP = Stream.of(GLOBAL_SERVER_PROPERTIES, PROJECT_SERVER_PROPERTIES, DEFAULT_PROJECT_PROPERTIES) + .flatMap(map -> map.entrySet().stream()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); private static final Map<String, String> PROPERTIES_AFTER_FILTERING = Map.of("aKey", "aValue"); @@ -66,8 +65,6 @@ public class ProjectConfigurationProviderTest { @Mock private GlobalConfiguration globalConfiguration; @Mock - private MutableProjectSettings mutableProjectSettings; - @Mock private DefaultInputProject defaultInputProject; @Mock private SonarGlobalPropertiesFilter sonarGlobalPropertiesFilter; @@ -75,7 +72,6 @@ public class ProjectConfigurationProviderTest { @InjectMocks private ProjectConfigurationProvider provider; - @Before public void init() { when(globalConfiguration.getDefinitions()).thenReturn(new PropertyDefinitions(System2.INSTANCE)); @@ -89,11 +85,11 @@ public class ProjectConfigurationProviderTest { when(sonarGlobalPropertiesFilter.enforceOnlyServerSideSonarGlobalPropertiesAreUsed(ALL_PROPERTIES_MAP, GLOBAL_SERVER_PROPERTIES)) .thenReturn(PROPERTIES_AFTER_FILTERING); - ProjectConfiguration provide = provider.provide(defaultInputProject, globalConfiguration, globalServerSettings, projectServerSettings, mutableProjectSettings); + ProjectConfiguration provide = provider.provide(defaultInputProject, globalConfiguration, globalServerSettings, projectServerSettings); verify(sonarGlobalPropertiesFilter).enforceOnlyServerSideSonarGlobalPropertiesAreUsed(ALL_PROPERTIES_MAP, GLOBAL_SERVER_PROPERTIES); assertThat(provide.getOriginalProperties()).containsExactlyEntriesOf(PROPERTIES_AFTER_FILTERING); } -}
\ No newline at end of file +} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/DirectoryFileVisitorTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/DirectoryFileVisitorTest.java index 01cb7d1bccf..277fc0dc68a 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/DirectoryFileVisitorTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/DirectoryFileVisitorTest.java @@ -27,20 +27,26 @@ import java.nio.file.Files; import java.nio.file.LinkOption; import java.nio.file.Path; import java.nio.file.attribute.BasicFileAttributes; +import java.util.Optional; import org.apache.commons.lang3.SystemUtils; +import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.internal.DefaultInputModule; +import org.sonar.scanner.bootstrap.SonarUserHome; import org.sonar.scanner.fs.InputModuleHierarchy; +import org.sonar.scanner.scan.ModuleConfiguration; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; public class DirectoryFileVisitorTest { @@ -48,33 +54,57 @@ public class DirectoryFileVisitorTest { public static TemporaryFolder temp = new TemporaryFolder(); private final DefaultInputModule module = mock(); + private final ModuleConfiguration moduleConfiguration = mock(); private final ModuleExclusionFilters moduleExclusionFilters = mock(); private final InputModuleHierarchy inputModuleHierarchy = mock(); private final InputFile.Type type = mock(); + private final SonarUserHome sonarUserHome = mock(); + private HiddenFilesProjectData hiddenFilesProjectData; + + @Before + public void before() throws IOException { + Path sonarUserHomePath = temp.newFolder().toPath(); + when(sonarUserHome.getPath()).thenReturn(sonarUserHomePath); + File workDir = temp.newFolder(); + when(module.getWorkDir()).thenReturn(workDir.toPath()); + hiddenFilesProjectData = spy(new HiddenFilesProjectData(sonarUserHome)); + } @Test - public void visit_hidden_file() throws IOException { + public void should_not_visit_hidden_file() throws IOException { + when(moduleConfiguration.getBoolean("sonar.scanner.excludeHiddenFiles")).thenReturn(Optional.of(true)); DirectoryFileVisitor.FileVisitAction action = mock(DirectoryFileVisitor.FileVisitAction.class); - File hidden = temp.newFile(".hidden"); - if (SystemUtils.IS_OS_WINDOWS) { - Files.setAttribute(hidden.toPath(), "dos:hidden", true, LinkOption.NOFOLLOW_LINKS); - } - + File hidden = temp.newFile(".hiddenNotVisited"); + setAsHiddenOnWindows(hidden); - DirectoryFileVisitor underTest = new DirectoryFileVisitor(action, module, moduleExclusionFilters, inputModuleHierarchy, type); + DirectoryFileVisitor underTest = new DirectoryFileVisitor(action, module, moduleConfiguration, moduleExclusionFilters, inputModuleHierarchy, type, hiddenFilesProjectData); underTest.visitFile(hidden.toPath(), Files.readAttributes(hidden.toPath(), BasicFileAttributes.class)); verify(action, never()).execute(any(Path.class)); } @Test + public void should_visit_hidden_file() throws IOException { + when(moduleConfiguration.getBoolean("sonar.scanner.excludeHiddenFiles")).thenReturn(Optional.of(false)); + DirectoryFileVisitor.FileVisitAction action = mock(DirectoryFileVisitor.FileVisitAction.class); + + File hidden = temp.newFile(".hiddenVisited"); + setAsHiddenOnWindows(hidden); + + DirectoryFileVisitor underTest = new DirectoryFileVisitor(action, module, moduleConfiguration, moduleExclusionFilters, inputModuleHierarchy, type, hiddenFilesProjectData); + underTest.visitFile(hidden.toPath(), Files.readAttributes(hidden.toPath(), BasicFileAttributes.class)); + + verify(action).execute(any(Path.class)); + } + + @Test public void test_visit_file_failed_generic_io_exception() throws IOException { DirectoryFileVisitor.FileVisitAction action = mock(DirectoryFileVisitor.FileVisitAction.class); File file = temp.newFile("failed"); - DirectoryFileVisitor underTest = new DirectoryFileVisitor(action, module, moduleExclusionFilters, inputModuleHierarchy, type); + DirectoryFileVisitor underTest = new DirectoryFileVisitor(action, module, moduleConfiguration, moduleExclusionFilters, inputModuleHierarchy, type, hiddenFilesProjectData); assertThrows(IOException.class, () -> underTest.visitFileFailed(file.toPath(), new IOException())); } @@ -84,10 +114,15 @@ public class DirectoryFileVisitorTest { File file = temp.newFile("symlink"); - DirectoryFileVisitor underTest = new DirectoryFileVisitor(action, module, moduleExclusionFilters, inputModuleHierarchy, type); + DirectoryFileVisitor underTest = new DirectoryFileVisitor(action, module, moduleConfiguration, moduleExclusionFilters, inputModuleHierarchy, type, hiddenFilesProjectData); FileVisitResult result = underTest.visitFileFailed(file.toPath(), new FileSystemLoopException(file.getPath())); assertThat(result).isEqualTo(FileVisitResult.CONTINUE); } + private static void setAsHiddenOnWindows(File file) throws IOException { + if (SystemUtils.IS_OS_WINDOWS) { + Files.setAttribute(file.toPath(), "dos:hidden", true, LinkOption.NOFOLLOW_LINKS); + } + } } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/HiddenFilesProjectDataTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/HiddenFilesProjectDataTest.java new file mode 100644 index 00000000000..ad3edf95428 --- /dev/null +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/HiddenFilesProjectDataTest.java @@ -0,0 +1,130 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.scanner.scan.filesystem; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.LinkOption; +import java.nio.file.Path; +import org.apache.commons.lang3.SystemUtils; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.ClassRule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.sonar.api.batch.fs.internal.DefaultInputModule; +import org.sonar.scanner.bootstrap.SonarUserHome; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; + +public class HiddenFilesProjectDataTest { + + @ClassRule + public static TemporaryFolder temp = new TemporaryFolder(); + + private static final SonarUserHome sonarUserHome = mock(SonarUserHome.class); + private final DefaultInputModule inputModule = mock(DefaultInputModule.class); + private final DefaultInputModule secondInputModule = mock(DefaultInputModule.class); + private HiddenFilesProjectData underTest; + + @BeforeClass + public static void setUp() throws IOException { + File userHomeFolder = temp.newFolder(".userhome"); + setAsHiddenOnWindows(userHomeFolder); + when(sonarUserHome.getPath()).thenReturn(userHomeFolder.toPath()); + } + + @Before + public void before() { + underTest = spy(new HiddenFilesProjectData(sonarUserHome)); + } + + @Test + public void shouldContainNoMarkedHiddenFileOnConstruction() { + assertThat(underTest.hiddenFilesByModule).isEmpty(); + } + + @Test + public void shouldMarkWithCorrectAssociatedInputModule() { + Path myFile = Path.of("myFile"); + Path myFile2 = Path.of("myFile2"); + underTest.markAsHiddenFile(myFile, inputModule); + underTest.markAsHiddenFile(myFile2, inputModule); + + assertThat(underTest.hiddenFilesByModule).hasSize(1); + assertThat(underTest.isMarkedAsHiddenFile(myFile, inputModule)).isTrue(); + assertThat(underTest.isMarkedAsHiddenFile(myFile2, inputModule)).isTrue(); + assertThat(underTest.isMarkedAsHiddenFile(myFile, secondInputModule)).isFalse(); + assertThat(underTest.isMarkedAsHiddenFile(myFile2, secondInputModule)).isFalse(); + } + + @Test + public void shouldMarkWithCorrectAssociatedInputModuleForTwoDifferentModules() { + Path myFile = Path.of("myFile"); + Path myFile2 = Path.of("myFile2"); + underTest.markAsHiddenFile(myFile, inputModule); + underTest.markAsHiddenFile(myFile2, secondInputModule); + + assertThat(underTest.hiddenFilesByModule).hasSize(2); + assertThat(underTest.isMarkedAsHiddenFile(myFile, inputModule)).isTrue(); + assertThat(underTest.isMarkedAsHiddenFile(myFile2, inputModule)).isFalse(); + assertThat(underTest.isMarkedAsHiddenFile(myFile, secondInputModule)).isFalse(); + assertThat(underTest.isMarkedAsHiddenFile(myFile2, secondInputModule)).isTrue(); + } + + @Test + public void shouldNotShowAsHiddenFileWhenInputModuleIsNotExistingInData() { + Path myFile = Path.of("myFile"); + Path notMarkedFile = Path.of("notMarkedFile"); + underTest.markAsHiddenFile(myFile, inputModule); + + assertThat(underTest.hiddenFilesByModule).isNotEmpty(); + assertThat(underTest.isMarkedAsHiddenFile(notMarkedFile, secondInputModule)).isFalse(); + } + + @Test + public void shouldClearMap() { + Path myFile = Path.of("myFile"); + Path myFile2 = Path.of("myFile2"); + underTest.markAsHiddenFile(myFile, inputModule); + underTest.markAsHiddenFile(myFile2, secondInputModule); + + assertThat(underTest.hiddenFilesByModule).hasSize(2); + + underTest.clearHiddenFilesData(); + assertThat(underTest.hiddenFilesByModule).isEmpty(); + } + + @Test + public void shouldNotFailOnUserPathResolving() throws IOException { + Path expectedPath = sonarUserHome.getPath().toRealPath(LinkOption.NOFOLLOW_LINKS).toAbsolutePath().normalize(); + assertThat(underTest.getCachedSonarUserHomePath()).isEqualTo(expectedPath); + } + + private static void setAsHiddenOnWindows(File file) throws IOException { + if (SystemUtils.IS_OS_WINDOWS) { + Files.setAttribute(file.toPath(), "dos:hidden", true, LinkOption.NOFOLLOW_LINKS); + } + } +} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/HiddenFilesVisitorHelperTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/HiddenFilesVisitorHelperTest.java new file mode 100644 index 00000000000..8c111c7ea15 --- /dev/null +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/HiddenFilesVisitorHelperTest.java @@ -0,0 +1,315 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.scanner.scan.filesystem; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.LinkOption; +import java.nio.file.Path; +import java.util.Optional; +import org.apache.commons.lang3.SystemUtils; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.ClassRule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.sonar.api.batch.fs.internal.DefaultInputModule; +import org.sonar.scanner.bootstrap.SonarUserHome; +import org.sonar.scanner.scan.ModuleConfiguration; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class HiddenFilesVisitorHelperTest { + + @ClassRule + public static TemporaryFolder temp = new TemporaryFolder(); + + private static final SonarUserHome sonarUserHome = mock(SonarUserHome.class); + private static final DefaultInputModule inputModule = mock(DefaultInputModule.class); + + private final ModuleConfiguration moduleConfig = mock(ModuleConfiguration.class); + private final HiddenFilesProjectData hiddenFilesProjectData = spy(new HiddenFilesProjectData(sonarUserHome)); + private HiddenFilesVisitorHelper underTest; + + @BeforeClass + public static void setUp() throws IOException { + File userHomeFolder = temp.newFolder(".userhome"); + setAsHiddenOnWindows(userHomeFolder); + when(sonarUserHome.getPath()).thenReturn(userHomeFolder.toPath()); + + File workDir = temp.newFolder(".sonar"); + setAsHiddenOnWindows(workDir); + when(inputModule.getWorkDir()).thenReturn(workDir.toPath()); + } + + @Before + public void before() { + hiddenFilesProjectData.clearHiddenFilesData(); + underTest = spy(new HiddenFilesVisitorHelper(hiddenFilesProjectData, inputModule, moduleConfig)); + } + + @Test + public void verifyDefaultOnConstruction() { + assertThat(underTest.excludeHiddenFiles).isFalse(); + assertThat(underTest.rootHiddenDir).isNull(); + } + + @Test + public void excludeHiddenFilesShouldBeSetToFalseFromConfigurationWhenNotConfigured() { + when(moduleConfig.getBoolean("sonar.scanner.excludeHiddenFiles")).thenReturn(Optional.empty()); + HiddenFilesVisitorHelper configuredVisitorHelper = spy(new HiddenFilesVisitorHelper(hiddenFilesProjectData, inputModule, moduleConfig)); + + assertThat(configuredVisitorHelper.excludeHiddenFiles).isFalse(); + } + + @Test + public void excludeHiddenFilesShouldBeSetToFalseFromConfigurationWhenDisabled() { + when(moduleConfig.getBoolean("sonar.scanner.excludeHiddenFiles")).thenReturn(Optional.of(false)); + HiddenFilesVisitorHelper configuredVisitorHelper = spy(new HiddenFilesVisitorHelper(hiddenFilesProjectData, inputModule, moduleConfig)); + + assertThat(configuredVisitorHelper.excludeHiddenFiles).isFalse(); + } + + @Test + public void excludeHiddenFilesShouldBeSetToTrueFromConfigurationWhenEnabled() { + when(moduleConfig.getBoolean("sonar.scanner.excludeHiddenFiles")).thenReturn(Optional.of(true)); + HiddenFilesVisitorHelper configuredVisitorHelper = spy(new HiddenFilesVisitorHelper(hiddenFilesProjectData, inputModule, moduleConfig)); + + assertThat(configuredVisitorHelper.excludeHiddenFiles).isTrue(); + } + + @Test + public void shouldVisitHiddenDirectory() throws IOException { + File hiddenDir = temp.newFolder(".hiddenVisited"); + setAsHiddenOnWindows(hiddenDir); + + boolean visitDir = underTest.shouldVisitDir(hiddenDir.toPath()); + + assertThat(visitDir).isTrue(); + assertThat(underTest.insideHiddenDirectory()).isTrue(); + assertThat(underTest.rootHiddenDir).isEqualTo(hiddenDir.toPath()); + verify(underTest).enterHiddenDirectory(hiddenDir.toPath()); + } + + @Test + public void shouldNotVisitHiddenDirectoryWhenHiddenFilesVisitIsExcluded() throws IOException { + when(moduleConfig.getBoolean("sonar.scanner.excludeHiddenFiles")).thenReturn(Optional.of(true)); + HiddenFilesVisitorHelper configuredVisitorHelper = spy(new HiddenFilesVisitorHelper(hiddenFilesProjectData, inputModule, moduleConfig)); + + File hidden = temp.newFolder(".hiddenNotVisited"); + setAsHiddenOnWindows(hidden); + + boolean visitDir = configuredVisitorHelper.shouldVisitDir(hidden.toPath()); + + assertThat(visitDir).isFalse(); + assertThat(configuredVisitorHelper.insideHiddenDirectory()).isFalse(); + verify(configuredVisitorHelper, never()).enterHiddenDirectory(any()); + } + + @Test + public void shouldVisitNonHiddenDirectoryWhenHiddenFilesVisitIsExcluded() throws IOException { + when(moduleConfig.getBoolean("sonar.scanner.excludeHiddenFiles")).thenReturn(Optional.of(true)); + HiddenFilesVisitorHelper configuredVisitorHelper = spy(new HiddenFilesVisitorHelper(hiddenFilesProjectData, inputModule, moduleConfig)); + + File nonHiddenFolder = temp.newFolder(); + + boolean visitDir = configuredVisitorHelper.shouldVisitDir(nonHiddenFolder.toPath()); + + assertThat(visitDir).isTrue(); + assertThat(configuredVisitorHelper.insideHiddenDirectory()).isFalse(); + verify(configuredVisitorHelper, never()).enterHiddenDirectory(any()); + } + + @Test + public void shouldVisitNonHiddenDirectory() throws IOException { + File nonHiddenFolder = temp.newFolder(); + + boolean visitDir = underTest.shouldVisitDir(nonHiddenFolder.toPath()); + + assertThat(visitDir).isTrue(); + assertThat(underTest.insideHiddenDirectory()).isFalse(); + verify(underTest, never()).enterHiddenDirectory(any()); + assertThat(underTest.excludeHiddenFiles).isFalse(); + } + + @Test + public void shouldNotVisitModuleWorkDir() throws IOException { + Path workingDirectory = inputModule.getWorkDir().toRealPath(LinkOption.NOFOLLOW_LINKS).toAbsolutePath().normalize(); + boolean visitDir = underTest.shouldVisitDir(workingDirectory); + + assertThat(visitDir).isFalse(); + assertThat(underTest.insideHiddenDirectory()).isFalse(); + verify(underTest, never()).enterHiddenDirectory(any()); + } + + @Test + public void shouldNotVisitSonarUserHome() throws IOException { + Path userHome = sonarUserHome.getPath().toRealPath(LinkOption.NOFOLLOW_LINKS).toAbsolutePath().normalize(); + boolean visitDir = underTest.shouldVisitDir(userHome); + + assertThat(visitDir).isFalse(); + assertThat(underTest.insideHiddenDirectory()).isFalse(); + verify(underTest, never()).enterHiddenDirectory(any()); + } + + @Test + public void hiddenFileShouldBeVisited() throws IOException { + File hiddenFile = temp.newFile(".hiddenFileShouldBeVisited"); + setAsHiddenOnWindows(hiddenFile); + + assertThat(underTest.insideHiddenDirectory()).isFalse(); + boolean visitFile = underTest.shouldVisitFile(hiddenFile.toPath()); + + assertThat(visitFile).isTrue(); + verify(hiddenFilesProjectData).markAsHiddenFile(hiddenFile.toPath(), inputModule); + } + + @Test + public void nonHiddenFileShouldBeVisitedInHiddenFolder() throws IOException { + File hidden = temp.newFolder(".hiddenFolder"); + setAsHiddenOnWindows(hidden); + + File nonHiddenFile = temp.newFile(); + + underTest.shouldVisitDir(hidden.toPath()); + assertThat(underTest.insideHiddenDirectory()).isTrue(); + + boolean shouldVisitFile = underTest.shouldVisitFile(nonHiddenFile.toPath()); + + assertThat(shouldVisitFile).isTrue(); + verify(hiddenFilesProjectData).markAsHiddenFile(nonHiddenFile.toPath(), inputModule); + } + + @Test + public void shouldNotSetAsRootHiddenDirectoryWhenAlreadyEnteredHiddenDirectory() throws IOException { + File hidden = temp.newFolder(".outerHiddenFolder"); + File nestedHiddenFolder = temp.newFolder(".outerHiddenFolder", ".nestedHiddenFolder"); + setAsHiddenOnWindows(hidden); + setAsHiddenOnWindows(nestedHiddenFolder); + + underTest.shouldVisitDir(hidden.toPath()); + assertThat(underTest.insideHiddenDirectory()).isTrue(); + + boolean shouldVisitNestedDir = underTest.shouldVisitDir(nestedHiddenFolder.toPath()); + + assertThat(shouldVisitNestedDir).isTrue(); + assertThat(underTest.rootHiddenDir).isEqualTo(hidden.toPath()); + verify(underTest).enterHiddenDirectory(nestedHiddenFolder.toPath()); + } + + @Test + public void hiddenFileShouldNotBeVisitedWhenHiddenFileVisitExcluded() throws IOException { + when(moduleConfig.getBoolean("sonar.scanner.excludeHiddenFiles")).thenReturn(Optional.of(true)); + HiddenFilesVisitorHelper configuredVisitorHelper = spy(new HiddenFilesVisitorHelper(hiddenFilesProjectData, inputModule, moduleConfig)); + + File hiddenFile = temp.newFile(".hiddenFileNotVisited"); + setAsHiddenOnWindows(hiddenFile); + + assertThat(configuredVisitorHelper.insideHiddenDirectory()).isFalse(); + + configuredVisitorHelper.shouldVisitFile(hiddenFile.toPath()); + boolean shouldVisitFile = configuredVisitorHelper.shouldVisitFile(hiddenFile.toPath()); + + assertThat(shouldVisitFile).isFalse(); + verify(hiddenFilesProjectData, never()).markAsHiddenFile(hiddenFile.toPath(), inputModule); + } + + @Test + public void shouldCorrectlyExitHiddenFolderOnlyOnHiddenFolderThatEntered() throws IOException { + File hiddenFolder = temp.newFolder(".hiddenRootFolder"); + setAsHiddenOnWindows(hiddenFolder); + + boolean shouldVisitDir = underTest.shouldVisitDir(hiddenFolder.toPath()); + + assertThat(shouldVisitDir).isTrue(); + assertThat(underTest.insideHiddenDirectory()).isTrue(); + assertThat(underTest.rootHiddenDir).isEqualTo(hiddenFolder.toPath()); + verify(underTest).enterHiddenDirectory(hiddenFolder.toPath()); + + File folder1 = temp.newFolder(".hiddenRootFolder", "myFolderExit"); + File folder2 = temp.newFolder("myFolderExit"); + File folder3 = temp.newFolder(".myFolderExit"); + setAsHiddenOnWindows(folder3); + + underTest.exitDirectory(folder1.toPath()); + underTest.exitDirectory(folder2.toPath()); + underTest.exitDirectory(folder3.toPath()); + + assertThat(underTest.insideHiddenDirectory()).isTrue(); + assertThat(underTest.rootHiddenDir).isEqualTo(hiddenFolder.toPath()); + verify(underTest, never()).resetRootHiddenDir(); + + underTest.exitDirectory(hiddenFolder.toPath()); + assertThat(underTest.insideHiddenDirectory()).isFalse(); + assertThat(underTest.rootHiddenDir).isNull(); + verify(underTest).resetRootHiddenDir(); + } + + @Test + public void shouldNotInitiateResetRootDirWhenNotInHiddenDirectory() throws IOException { + File hiddenFolder = temp.newFolder(".hiddenFolderNonRoot"); + setAsHiddenOnWindows(hiddenFolder); + + underTest.exitDirectory(hiddenFolder.toPath()); + + verify(underTest, never()).resetRootHiddenDir(); + } + + @Test + public void filesShouldBeCorrectlyMarkedAsHidden() throws IOException { + File hiddenFolder = temp.newFolder(".hiddenFolderRoot"); + setAsHiddenOnWindows(hiddenFolder); + + File file1 = temp.newFile(); + File file2 = temp.newFile(); + File file3 = temp.newFile(".markedHiddenFile"); + setAsHiddenOnWindows(file3); + File file4 = temp.newFile(); + File file5 = temp.newFile(".markedHiddenFile2"); + setAsHiddenOnWindows(file5); + + underTest.shouldVisitFile(file1.toPath()); + underTest.shouldVisitDir(hiddenFolder.toPath()); + underTest.shouldVisitFile(file2.toPath()); + underTest.shouldVisitFile(file3.toPath()); + underTest.exitDirectory(hiddenFolder.toPath()); + underTest.shouldVisitFile(file4.toPath()); + underTest.shouldVisitFile(file5.toPath()); + + verify(hiddenFilesProjectData, never()).markAsHiddenFile(file1.toPath(), inputModule); + verify(hiddenFilesProjectData).markAsHiddenFile(file2.toPath(), inputModule); + verify(hiddenFilesProjectData).markAsHiddenFile(file3.toPath(), inputModule); + verify(hiddenFilesProjectData, never()).markAsHiddenFile(file4.toPath(), inputModule); + verify(hiddenFilesProjectData).markAsHiddenFile(file5.toPath(), inputModule); + } + + private static void setAsHiddenOnWindows(File file) throws IOException { + if (SystemUtils.IS_OS_WINDOWS) { + Files.setAttribute(file.toPath(), "dos:hidden", true, LinkOption.NOFOLLOW_LINKS); + } + } +} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStoreTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStoreTest.java index a0031f77633..07f7afec036 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStoreTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStoreTest.java @@ -19,80 +19,151 @@ */ package org.sonar.scanner.scan.filesystem; -import java.io.IOException; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import java.io.File; +import java.util.List; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.io.TempDir; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; import org.sonar.api.SonarRuntime; import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.fs.InputModule; import org.sonar.api.batch.fs.internal.SensorStrategy; -import org.sonar.api.batch.fs.internal.DefaultInputProject; import org.sonar.api.batch.fs.internal.TestInputFileBuilder; +import org.sonar.api.batch.sensor.internal.SensorContextTester; import org.sonar.scanner.scan.branch.BranchConfiguration; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -public class ModuleInputComponentStoreTest { - @Rule - public TemporaryFolder temp = new TemporaryFolder(); +@ExtendWith(MockitoExtension.class) +class ModuleInputComponentStoreTest { + + @TempDir + private File projectBaseDir; + + @Mock + BranchConfiguration branchConfiguration; + + @Mock + SonarRuntime sonarRuntime; + + @Mock + InputComponentStore mockedInputComponentStore; private InputComponentStore componentStore; + private SensorContextTester sensorContextTester; private final String projectKey = "dummy key"; - @Before - public void setUp() throws IOException { - DefaultInputProject root = TestInputFileBuilder.newDefaultInputProject(projectKey, temp.newFolder()); - componentStore = new InputComponentStore(mock(BranchConfiguration.class), mock(SonarRuntime.class)); + @BeforeEach + void setUp() { + TestInputFileBuilder.newDefaultInputProject(projectKey, projectBaseDir); + File moduleBaseDir = new File(projectBaseDir, "module"); + moduleBaseDir.mkdir(); + sensorContextTester = SensorContextTester.create(moduleBaseDir); + componentStore = spy(new InputComponentStore(branchConfiguration, sonarRuntime)); } @Test - public void should_cache_files_by_filename() { + void should_cache_module_files_by_filename() { ModuleInputComponentStore store = newModuleInputComponentStore(); String filename = "some name"; - InputFile inputFile1 = new TestInputFileBuilder(projectKey, "some/path/" + filename).build(); + InputFile inputFile1 = new TestInputFileBuilder(projectKey, "module/some/path/" + filename).build(); store.doAdd(inputFile1); - InputFile inputFile2 = new TestInputFileBuilder(projectKey, "other/path/" + filename).build(); + InputFile inputFile2 = new TestInputFileBuilder(projectKey, "module/other/path/" + filename).build(); store.doAdd(inputFile2); - InputFile dummyInputFile = new TestInputFileBuilder(projectKey, "some/path/Dummy.java").build(); + InputFile dummyInputFile = new TestInputFileBuilder(projectKey, "module/some/path/Dummy.java").build(); store.doAdd(dummyInputFile); assertThat(store.getFilesByName(filename)).containsExactlyInAnyOrder(inputFile1, inputFile2); } @Test - public void should_cache_files_by_extension() { + void should_cache_filtered_module_files_by_filename() { + ModuleInputComponentStore store = newModuleInputComponentStore(); + + String filename = "some name"; + InputFile inputFile1 = new TestInputFileBuilder(projectKey, "some/path/" + filename).build(); + InputFile inputFile2 = new TestInputFileBuilder(projectKey, "module/other/path/" + filename).build(); + store.doAdd(inputFile2); + + when(componentStore.getFilesByName(filename)).thenReturn(List.of(inputFile1, inputFile2)); + + assertThat(store.getFilesByName(filename)).containsOnly(inputFile2); + } + + @Test + void should_cache_module_files_by_filename_global_strategy() { + ModuleInputComponentStore store = new ModuleInputComponentStore(sensorContextTester.module(), componentStore, new SensorStrategy()); + + String filename = "some name"; + // None in the module + InputFile inputFile1 = new TestInputFileBuilder(projectKey, "some/path/" + filename).build(); + InputFile inputFile2 = new TestInputFileBuilder(projectKey, "other/path/" + filename).build(); + + when(componentStore.getFilesByName(filename)).thenReturn(List.of(inputFile1, inputFile2)); + + assertThat(store.getFilesByName(filename)).containsExactlyInAnyOrder(inputFile1, inputFile2); + } + + @Test + void should_cache_module_files_by_extension() { ModuleInputComponentStore store = newModuleInputComponentStore(); - InputFile inputFile1 = new TestInputFileBuilder(projectKey, "some/path/Program.java").build(); + InputFile inputFile1 = new TestInputFileBuilder(projectKey, "module/some/path/Program.java").build(); store.doAdd(inputFile1); - InputFile inputFile2 = new TestInputFileBuilder(projectKey, "other/path/Utils.java").build(); + InputFile inputFile2 = new TestInputFileBuilder(projectKey, "module/other/path/Utils.java").build(); store.doAdd(inputFile2); - InputFile dummyInputFile = new TestInputFileBuilder(projectKey, "some/path/NotJava.cpp").build(); + InputFile dummyInputFile = new TestInputFileBuilder(projectKey, "module/some/path/NotJava.cpp").build(); store.doAdd(dummyInputFile); assertThat(store.getFilesByExtension("java")).containsExactlyInAnyOrder(inputFile1, inputFile2); } @Test - public void should_not_cache_duplicates() { + void should_cache_filtered_module_files_by_extension() { + ModuleInputComponentStore store = newModuleInputComponentStore(); + + InputFile inputFile1 = new TestInputFileBuilder(projectKey, "some/path/NotInModule.java").build(); + InputFile inputFile2 = new TestInputFileBuilder(projectKey, "module/some/path/Other.java").build(); + store.doAdd(inputFile2); + + when(componentStore.getFilesByExtension("java")).thenReturn(List.of(inputFile1, inputFile2)); + + assertThat(store.getFilesByExtension("java")).containsOnly(inputFile2); + } + + @Test + void should_cache_module_files_by_extension_global_strategy() { + ModuleInputComponentStore store = new ModuleInputComponentStore(sensorContextTester.module(), componentStore, new SensorStrategy()); + + // None in the module + InputFile inputFile1 = new TestInputFileBuilder(projectKey, "some/path/NotInModule.java").build(); + InputFile inputFile2 = new TestInputFileBuilder(projectKey, "some/path/Other.java").build(); + + when(componentStore.getFilesByExtension("java")).thenReturn(List.of(inputFile1, inputFile2)); + + assertThat(store.getFilesByExtension("java")).containsExactlyInAnyOrder(inputFile1, inputFile2); + } + + @Test + void should_not_cache_duplicates() { ModuleInputComponentStore store = newModuleInputComponentStore(); String ext = "java"; String filename = "Program." + ext; - InputFile inputFile = new TestInputFileBuilder(projectKey, "some/path/" + filename).build(); + InputFile inputFile = new TestInputFileBuilder(projectKey, "module/some/path/" + filename).build(); store.doAdd(inputFile); store.doAdd(inputFile); store.doAdd(inputFile); @@ -102,12 +173,12 @@ public class ModuleInputComponentStoreTest { } @Test - public void should_get_empty_iterable_on_cache_miss() { + void should_get_empty_iterable_on_cache_miss() { ModuleInputComponentStore store = newModuleInputComponentStore(); String ext = "java"; String filename = "Program." + ext; - InputFile inputFile = new TestInputFileBuilder(projectKey, "some/path/" + filename).build(); + InputFile inputFile = new TestInputFileBuilder(projectKey, "module/some/path/" + filename).build(); store.doAdd(inputFile); assertThat(store.getFilesByName("nonexistent")).isEmpty(); @@ -115,48 +186,42 @@ public class ModuleInputComponentStoreTest { } private ModuleInputComponentStore newModuleInputComponentStore() { - InputModule module = mock(InputModule.class); - when(module.key()).thenReturn("moduleKey"); - return new ModuleInputComponentStore(module, componentStore, mock(SensorStrategy.class)); + SensorStrategy strategy = new SensorStrategy(); + strategy.setGlobal(false); + return new ModuleInputComponentStore(sensorContextTester.module(), componentStore, strategy); } @Test - public void should_find_module_components_with_non_global_strategy() { - InputComponentStore inputComponentStore = mock(InputComponentStore.class); + void should_find_module_components_with_non_global_strategy() { SensorStrategy strategy = new SensorStrategy(); - InputModule module = mock(InputModule.class); - when(module.key()).thenReturn("foo"); - ModuleInputComponentStore store = new ModuleInputComponentStore(module, inputComponentStore, strategy); + ModuleInputComponentStore store = new ModuleInputComponentStore(sensorContextTester.module(), mockedInputComponentStore, strategy); strategy.setGlobal(false); store.inputFiles(); - verify(inputComponentStore).filesByModule("foo"); + verify(mockedInputComponentStore).filesByModule(sensorContextTester.module().key()); String relativePath = "somepath"; store.inputFile(relativePath); - verify(inputComponentStore).getFile(any(String.class), eq(relativePath)); + verify(mockedInputComponentStore).getFile(any(String.class), eq(relativePath)); store.languages(); - verify(inputComponentStore).languages(any(String.class)); + verify(mockedInputComponentStore).languages(any(String.class)); } @Test - public void should_find_all_components_with_global_strategy() { - InputComponentStore inputComponentStore = mock(InputComponentStore.class); + void should_find_all_components_with_global_strategy() { SensorStrategy strategy = new SensorStrategy(); - ModuleInputComponentStore store = new ModuleInputComponentStore(mock(InputModule.class), inputComponentStore, strategy); - - strategy.setGlobal(true); + ModuleInputComponentStore store = new ModuleInputComponentStore(sensorContextTester.module(), mockedInputComponentStore, strategy); store.inputFiles(); - verify(inputComponentStore).inputFiles(); + verify(mockedInputComponentStore).inputFiles(); String relativePath = "somepath"; store.inputFile(relativePath); - verify(inputComponentStore).inputFile(relativePath); + verify(mockedInputComponentStore).inputFile(relativePath); store.languages(); - verify(inputComponentStore).languages(); + verify(mockedInputComponentStore).languages(); } } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/MutableFileSystemTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/MutableFileSystemTest.java index 31d3312853b..485708c9936 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/MutableFileSystemTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/MutableFileSystemTest.java @@ -28,6 +28,9 @@ import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.internal.TestInputFileBuilder; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; public class MutableFileSystemTest { @@ -44,9 +47,15 @@ public class MutableFileSystemTest { } @Test - public void return_all_files_when_not_restricted() { + public void restriction_and_hidden_file_should_be_disabled_on_default() { + assertThat(underTest.restrictToChangedFiles).isFalse(); + assertThat(underTest.allowHiddenFileAnalysis).isFalse(); + } + + @Test + public void return_all_non_hidden_files_when_not_restricted_and_disabled() { assertThat(underTest.inputFiles(underTest.predicates().all())).isEmpty(); - addFileWithAllStatus(); + addFilesWithAllStatus(); underTest.setRestrictToChangedFiles(false); assertThat(underTest.inputFiles(underTest.predicates().all())).hasSize(3); @@ -58,7 +67,7 @@ public class MutableFileSystemTest { @Test public void return_only_changed_files_when_restricted() { assertThat(underTest.inputFiles(underTest.predicates().all())).isEmpty(); - addFileWithAllStatus(); + addFilesWithAllStatus(); underTest.setRestrictToChangedFiles(true); assertThat(underTest.inputFiles(underTest.predicates().all())).hasSize(2); @@ -67,19 +76,95 @@ public class MutableFileSystemTest { assertThat(underTest.inputFile(underTest.predicates().hasFilename(generateFilename(InputFile.Status.CHANGED)))).isNotNull(); } - private void addFileWithAllStatus() { + @Test + public void return_all_files_when_allowing_hidden_files_analysis() { + assertThat(underTest.inputFiles(underTest.predicates().all())).isEmpty(); + addFilesWithVisibility(); + underTest.setAllowHiddenFileAnalysis(true); + + assertThat(underTest.inputFiles(underTest.predicates().all())).hasSize(2); + assertThat(underTest.inputFile(underTest.predicates().hasFilename(generateFilename(true)))).isNotNull(); + assertThat(underTest.inputFile(underTest.predicates().hasFilename(generateFilename(false)))).isNotNull(); + } + + @Test + public void return_only_non_hidden_files_when_not_allowing_hidden_files_analysis() { + assertThat(underTest.inputFiles(underTest.predicates().all())).isEmpty(); + addFilesWithVisibility(); + underTest.setAllowHiddenFileAnalysis(false); + + assertThat(underTest.inputFiles(underTest.predicates().all())).hasSize(1); + assertThat(underTest.inputFile(underTest.predicates().hasFilename(generateFilename(true)))).isNull(); + assertThat(underTest.inputFile(underTest.predicates().hasFilename(generateFilename(false)))).isNotNull(); + } + + @Test + public void hidden_file_predicate_should_preserve_predicate_optimization() { + addFilesWithVisibility(); + var anotherHiddenFile = spy(new TestInputFileBuilder("foo", String.format("src/%s", ".myHiddenFile.txt")) + .setLanguage(LANGUAGE).setStatus(InputFile.Status.ADDED).setHidden(true).build()); + underTest.add(anotherHiddenFile); + underTest.setAllowHiddenFileAnalysis(false); + + assertThat(underTest.inputFile(underTest.predicates().hasFilename(generateFilename(true)))).isNull(); + assertThat(underTest.inputFile(underTest.predicates().hasFilename(generateFilename(false)))).isNotNull(); + // Verify that predicate optimization is still effective + verify(anotherHiddenFile, never()).isHidden(); + + // This predicate can't be optimized + assertThat(underTest.inputFiles(underTest.predicates().all())).hasSize(1); + verify(anotherHiddenFile).isHidden(); + } + + @Test + public void hidden_file_predicate_should_be_applied_first_for_non_optimized_predicates() { + // Checking the file type is not very costly, but it is not optimized. In real life, something more costly would be reading the file + // content, for example. + addFilesWithVisibility(); + var anotherHiddenFile = spy(new TestInputFileBuilder("foo", String.format("src/%s", ".myHiddenFile." + LANGUAGE)) + .setLanguage(LANGUAGE).setType(InputFile.Type.MAIN).setStatus(InputFile.Status.ADDED).setHidden(true).build()); + underTest.add(anotherHiddenFile); + underTest.setAllowHiddenFileAnalysis(false); + + assertThat(underTest.inputFiles(underTest.predicates().hasType(InputFile.Type.MAIN))).hasSize(1); + // Verify that the file type has not been evaluated + verify(anotherHiddenFile, never()).type(); + } + + private void addFilesWithVisibility() { + addFile(true); + addFile(false); + } + + private void addFilesWithAllStatus() { addFile(InputFile.Status.ADDED); addFile(InputFile.Status.CHANGED); addFile(InputFile.Status.SAME); } private void addFile(InputFile.Status status) { - underTest.add(new TestInputFileBuilder("foo", String.format("src/%s", generateFilename(status))) - .setLanguage(LANGUAGE).setStatus(status).build()); + addFile(status, false); + } + + private void addFile(boolean hidden) { + addFile(InputFile.Status.SAME, hidden); + } + + private void addFile(InputFile.Status status, boolean hidden) { + underTest.add(new TestInputFileBuilder("foo", String.format("src/%s", generateFilename(status, hidden))) + .setLanguage(LANGUAGE).setType(InputFile.Type.MAIN).setStatus(status).setHidden(hidden).build()); + } + + private String generateFilename(boolean hidden) { + return generateFilename(InputFile.Status.SAME, hidden); } private String generateFilename(InputFile.Status status) { - return String.format("%s.%s", status.name().toLowerCase(Locale.ROOT), LANGUAGE); + return generateFilename(status, false); + } + + private String generateFilename(InputFile.Status status, boolean hidden) { + return String.format("%s.%s.%s", status.name().toLowerCase(Locale.ROOT), hidden, LANGUAGE); } } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java index 4ab9f46fb4a..3a0ff7fb4c2 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java @@ -68,7 +68,7 @@ class ModuleSensorContextTest { @BeforeEach void prepare() { fs = new DefaultFileSystem(temp); - underTest = new ModuleSensorContext(mock(DefaultInputProject.class), mock(InputModule.class), settings.asConfig(), settings, fs, activeRules, sensorStorage, runtime, + underTest = new ModuleSensorContext(mock(DefaultInputProject.class), mock(InputModule.class), settings.asConfig(), fs, activeRules, sensorStorage, runtime, branchConfiguration, writeCache, readCache, analysisCacheEnabled, unchangedFilesHandler, executingSensorContext, pluginRepository); } @@ -104,7 +104,7 @@ class ModuleSensorContextTest { @Test void pull_request_can_skip_unchanged_files() { when(branchConfiguration.isPullRequest()).thenReturn(true); - underTest = new ModuleSensorContext(mock(DefaultInputProject.class), mock(InputModule.class), settings.asConfig(), settings, fs, activeRules, sensorStorage, runtime, + underTest = new ModuleSensorContext(mock(DefaultInputProject.class), mock(InputModule.class), settings.asConfig(), fs, activeRules, sensorStorage, runtime, branchConfiguration, writeCache, readCache, analysisCacheEnabled, unchangedFilesHandler, executingSensorContext, pluginRepository); assertThat(underTest.canSkipUnchangedFiles()).isTrue(); } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ProjectSensorContextTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ProjectSensorContextTest.java index 3c7f3d36793..01c337a5ed0 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ProjectSensorContextTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ProjectSensorContextTest.java @@ -59,8 +59,8 @@ class ProjectSensorContextTest { private ExecutingSensorContext executingSensorContext = mock(ExecutingSensorContext.class); private ScannerPluginRepository pluginRepository = mock(ScannerPluginRepository.class); - private ProjectSensorContext underTest = new ProjectSensorContext(mock(DefaultInputProject.class), settings.asConfig(), settings, fs, activeRules, sensorStorage, runtime, - branchConfiguration, writeCache, readCache, analysisCacheEnabled, unchangedFilesHandler, executingSensorContext, pluginRepository); + private ProjectSensorContext underTest = new ProjectSensorContext(mock(DefaultInputProject.class), settings.asConfig(), fs, activeRules, sensorStorage, runtime, + branchConfiguration, writeCache, readCache, analysisCacheEnabled, unchangedFilesHandler, executingSensorContext, pluginRepository); private static final String PLUGIN_KEY = "org.sonarsource.pluginKey"; @@ -69,7 +69,6 @@ class ProjectSensorContextTest { when(executingSensorContext.getSensorExecuting()).thenReturn(new SensorId(PLUGIN_KEY, "sensorName")); } - @Test void addTelemetryProperty_whenTheOrganizationIsSonarSource_mustStoreTheTelemetry() { @@ -77,16 +76,21 @@ class ProjectSensorContextTest { underTest.addTelemetryProperty("key", "value"); - //then verify that the defaultStorage is called with the telemetry property once + // then verify that the defaultStorage is called with the telemetry property once verify(sensorStorage).storeTelemetry("key", "value"); } @Test - void addTelemetryProperty_whenTheOrganizationIsNotSonarSource_mustThrowExcaption() { + void addTelemetryProperty_whenTheOrganizationIsNotSonarSource_mustThrowException() { when(pluginRepository.getPluginInfo(PLUGIN_KEY)).thenReturn(new PluginInfo(PLUGIN_KEY).setOrganizationName("notSonarsource")); assertThrows(IllegalStateException.class, () -> underTest.addTelemetryProperty("key", "value")); verifyNoInteractions(sensorStorage); } + + @Test + void settings_throwsUnsupportedOperationException() { + assertThrows(UnsupportedOperationException.class, () -> underTest.settings()); + } } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedFileTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedFileTest.java index fe637015ed7..91f59b964b9 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedFileTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/ChangedFileTest.java @@ -88,7 +88,7 @@ public class ChangedFileTest { secure().next(5), Integer.parseInt(secure().nextNumeric(5)), new SensorStrategy(), - oldRelativePath); + oldRelativePath, false); } } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/JGitUtilsTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/JGitUtilsTest.java index 383e2a1d643..d8264a5745b 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/JGitUtilsTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/JGitUtilsTest.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; +import org.apache.commons.lang.SystemUtils; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; import org.junit.jupiter.api.Test; @@ -46,7 +47,11 @@ class JGitUtilsTest { // in directory1, the entire directory is ignored without listing each file // in directory2, specific files are ignored, so those files are listed // in directory3, specific files are ignored via a separate .gitignore file - assertThat(result).isEqualTo(List.of("directory1", "directory2/file_a.txt", "directory3/file_b.txt")); + if (SystemUtils.IS_OS_WINDOWS) { + assertThat(result).isEqualTo(List.of("directory1", "directory2\\file_a.txt", "directory3\\file_b.txt")); + } else { + assertThat(result).isEqualTo(List.of("directory1", "directory2/file_a.txt", "directory3/file_b.txt")); + } } @Test diff --git a/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/sonar-project.properties b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/sonar-project.properties new file mode 100644 index 00000000000..d704931fcdc --- /dev/null +++ b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/sonar-project.properties @@ -0,0 +1,4 @@ +sonar.projectKey=sample-with-hidden-files +sonar.projectName=Sample with hidden files +sonar.projectVersion=0.1-SNAPSHOT +sonar.sources=xources diff --git a/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/.xoo b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/.xoo new file mode 100644 index 00000000000..9d5005aafea --- /dev/null +++ b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/.xoo @@ -0,0 +1 @@ +Some random content
\ No newline at end of file diff --git a/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/Class.xoo b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/Class.xoo new file mode 100644 index 00000000000..fe9d2e54718 --- /dev/null +++ b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/Class.xoo @@ -0,0 +1,8 @@ +package hello; + +public class ClassOne { + + public static void main(String[] args) { + System.out.println("ClassOne"); + } +} diff --git a/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/visibleInHiddenFolder/.xoo b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/visibleInHiddenFolder/.xoo new file mode 100644 index 00000000000..9d5005aafea --- /dev/null +++ b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/visibleInHiddenFolder/.xoo @@ -0,0 +1 @@ +Some random content
\ No newline at end of file diff --git a/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/visibleInHiddenFolder/Class.xoo b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/visibleInHiddenFolder/Class.xoo new file mode 100644 index 00000000000..fe9d2e54718 --- /dev/null +++ b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.nestedHidden/visibleInHiddenFolder/Class.xoo @@ -0,0 +1,8 @@ +package hello; + +public class ClassOne { + + public static void main(String[] args) { + System.out.println("ClassOne"); + } +} diff --git a/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.xoo b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.xoo new file mode 100644 index 00000000000..9d5005aafea --- /dev/null +++ b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/.xoo @@ -0,0 +1 @@ +Some random content
\ No newline at end of file diff --git a/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/Class.xoo b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/Class.xoo new file mode 100644 index 00000000000..fe9d2e54718 --- /dev/null +++ b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/.hidden/Class.xoo @@ -0,0 +1,8 @@ +package hello; + +public class ClassOne { + + public static void main(String[] args) { + System.out.println("ClassOne"); + } +} diff --git a/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/.hiddenInVisibleFolder/.xoo b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/.hiddenInVisibleFolder/.xoo new file mode 100644 index 00000000000..9d5005aafea --- /dev/null +++ b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/.hiddenInVisibleFolder/.xoo @@ -0,0 +1 @@ +Some random content
\ No newline at end of file diff --git a/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/.hiddenInVisibleFolder/Class.xoo b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/.hiddenInVisibleFolder/Class.xoo new file mode 100644 index 00000000000..fe9d2e54718 --- /dev/null +++ b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/.hiddenInVisibleFolder/Class.xoo @@ -0,0 +1,8 @@ +package hello; + +public class ClassOne { + + public static void main(String[] args) { + System.out.println("ClassOne"); + } +} diff --git a/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/.xoo b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/.xoo new file mode 100644 index 00000000000..9d5005aafea --- /dev/null +++ b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/.xoo @@ -0,0 +1 @@ +Some random content
\ No newline at end of file diff --git a/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/Class.xoo b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/Class.xoo new file mode 100644 index 00000000000..fe9d2e54718 --- /dev/null +++ b/sonar-scanner-engine/test-resources/mediumtest/xoo/sample-with-hidden-files/xources/nonHidden/Class.xoo @@ -0,0 +1,8 @@ +package hello; + +public class ClassOne { + + public static void main(String[] args) { + System.out.println("ClassOne"); + } +} diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/BaseRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/BaseRequest.java index 6a92121fd8c..73e99ed14b6 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/BaseRequest.java +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/BaseRequest.java @@ -29,8 +29,6 @@ import java.util.Objects; import java.util.Optional; import java.util.OptionalInt; import java.util.Set; -import java.util.function.Function; -import java.util.stream.Collectors; import javax.annotation.CheckForNull; import javax.annotation.Nullable; import org.sonarqube.ws.MediaTypes; @@ -90,7 +88,7 @@ abstract class BaseRequest<SELF extends BaseRequest<SELF>> implements WsRequest * Expected media type of response. Default is {@link MediaTypes#JSON}. */ @SuppressWarnings("unchecked") - public <T extends SELF> T setMediaType(String s) { + public <T extends SELF> T setMediaType(String s) { requireNonNull(s, "media type of response cannot be null"); this.mediaType = s; return (T) this; @@ -143,18 +141,6 @@ abstract class BaseRequest<SELF extends BaseRequest<SELF>> implements WsRequest } @Override - public Map<String, String> getParams() { - return parameters.keyValues.keySet().stream() - .collect(Collectors.toMap( - Function.identity(), - key -> parameters.keyValues.get(key).get(0), - (v1, v2) -> { - throw new IllegalStateException(String.format("Duplicate key '%s' in request", v1)); - }, - LinkedHashMap::new)); - } - - @Override public Parameters getParameters() { return parameters; } diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/DefaultWsClient.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/DefaultWsClient.java index 70aee7bc31b..fe46a2ed771 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/DefaultWsClient.java +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/DefaultWsClient.java @@ -66,7 +66,6 @@ import org.sonarqube.ws.client.push.SonarLintServerPushService; import org.sonarqube.ws.client.qualitygates.QualitygatesService; import org.sonarqube.ws.client.qualityprofiles.QualityprofilesService; import org.sonarqube.ws.client.regulatoryreports.RegulatoryReportsService; -import org.sonarqube.ws.client.roots.RootsService; import org.sonarqube.ws.client.rules.RulesService; import org.sonarqube.ws.client.securityreports.SecurityReportsService; import org.sonarqube.ws.client.server.ServerService; @@ -130,7 +129,6 @@ class DefaultWsClient implements WsClient { private final ProjectsService projectsService; private final QualitygatesService qualitygatesService; private final QualityprofilesService qualityprofilesService; - private final RootsService rootsService; private final RulesService rulesService; private final ServerService serverService; private final SettingsService settingsService; @@ -197,7 +195,6 @@ class DefaultWsClient implements WsClient { this.projectsService = new ProjectsService(wsConnector); this.qualitygatesService = new QualitygatesService(wsConnector); this.qualityprofilesService = new QualityprofilesService(wsConnector); - this.rootsService = new RootsService(wsConnector); this.rulesService = new RulesService(wsConnector); this.serverService = new ServerService(wsConnector); this.settingsService = new SettingsService(wsConnector); @@ -453,11 +450,6 @@ class DefaultWsClient implements WsClient { } @Override - public RootsService roots() { - return rootsService; - } - - @Override public RulesService rules() { return rulesService; } diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/WsClient.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/WsClient.java index 3a3edda8b30..60350474b84 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/WsClient.java +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/WsClient.java @@ -66,7 +66,6 @@ import org.sonarqube.ws.client.push.SonarLintServerPushService; import org.sonarqube.ws.client.qualitygates.QualitygatesService; import org.sonarqube.ws.client.qualityprofiles.QualityprofilesService; import org.sonarqube.ws.client.regulatoryreports.RegulatoryReportsService; -import org.sonarqube.ws.client.roots.RootsService; import org.sonarqube.ws.client.rules.RulesService; import org.sonarqube.ws.client.securityreports.SecurityReportsService; import org.sonarqube.ws.client.server.ServerService; @@ -189,8 +188,6 @@ public interface WsClient { QualityprofilesService qualityprofiles(); - RootsService roots(); - RulesService rules(); ServerService server(); diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/WsRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/WsRequest.java index bf338d5a9cc..65dee5e36b2 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/WsRequest.java +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/WsRequest.java @@ -19,7 +19,6 @@ */ package org.sonarqube.ws.client; -import java.util.Map; import java.util.OptionalInt; /** @@ -37,15 +36,6 @@ public interface WsRequest { OptionalInt getWriteTimeOutInMs(); - /** - * - * In case of multi value parameters, returns the first value - * - * @deprecated since 6.1. Use {@link #getParameters()} instead - */ - @Deprecated - Map<String, String> getParams(); - Parameters getParameters(); Headers getHeaders(); diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/issue/IssuesWsParameters.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/issue/IssuesWsParameters.java index 46c73bfdab5..7844a135df7 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/issue/IssuesWsParameters.java +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/issue/IssuesWsParameters.java @@ -93,6 +93,8 @@ public class IssuesWsParameters { public static final String PARAM_PCI_DSS_40 = "pciDss-4.0"; public static final String PARAM_OWASP_ASVS = "owaspAsvs"; public static final String PARAM_OWASP_ASVS_40 = "owaspAsvs-4.0"; + public static final String PARAM_OWASP_MOBILE_TOP_10 = "owaspMobileTop10"; + public static final String PARAM_OWASP_MOBILE_TOP_10_2024 = "owaspMobileTop10-2024"; public static final String PARAM_OWASP_TOP_10 = "owaspTop10"; public static final String PARAM_OWASP_TOP_10_2021 = "owaspTop10-2021"; public static final String PARAM_STIG_ASD_V5R3 = "stig-ASD_V5R3"; diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/roots/RootsService.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/roots/RootsService.java deleted file mode 100644 index fba80339f52..00000000000 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/roots/RootsService.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2025 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.ws.client.roots; - -import jakarta.annotation.Generated; -import org.sonarqube.ws.MediaTypes; -import org.sonarqube.ws.client.BaseService; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsConnector; -import org.sonarqube.ws.Roots.SearchResponse; - -/** - * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/roots">Further information about this web service online</a> - */ -@Generated("sonar-ws-generator") -public class RootsService extends BaseService { - - public RootsService(WsConnector wsConnector) { - super(wsConnector, "api/roots"); - } - - /** - * - * This is part of the internal API. - * This is a GET request. - * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/roots/search">Further information about this action online (including a response example)</a> - * @since 6.2 - */ - public SearchResponse search() { - return call( - new GetRequest(path("search")), - SearchResponse.parser()); - } - - /** - * - * This is part of the internal API. - * This is a POST request. - * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/roots/set_root">Further information about this action online (including a response example)</a> - * @since 6.2 - */ - public void setRoot(SetRootRequest request) { - call( - new PostRequest(path("set_root")) - .setParam("login", request.getLogin()) - .setMediaType(MediaTypes.JSON) - ).content(); - } - - /** - * - * This is part of the internal API. - * This is a POST request. - * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/roots/unset_root">Further information about this action online (including a response example)</a> - * @since 6.2 - */ - public void unsetRoot(UnsetRootRequest request) { - call( - new PostRequest(path("unset_root")) - .setParam("login", request.getLogin()) - .setMediaType(MediaTypes.JSON) - ).content(); - } -} diff --git a/sonar-ws/src/test/java/org/sonarqube/ws/client/BaseRequestTest.java b/sonar-ws/src/test/java/org/sonarqube/ws/client/BaseRequestTest.java index b8d51afcc99..74e91caa23d 100644 --- a/sonar-ws/src/test/java/org/sonarqube/ws/client/BaseRequestTest.java +++ b/sonar-ws/src/test/java/org/sonarqube/ws/client/BaseRequestTest.java @@ -33,12 +33,12 @@ import static org.assertj.core.data.MapEntry.entry; public class BaseRequestTest { - private FakeRequest underTest = new FakeRequest("api/foo"); + private final FakeRequest underTest = new FakeRequest("api/foo"); @Test public void test_defaults() { assertThat(underTest.getMethod()).isEqualTo(WsRequest.Method.GET); - assertThat(underTest.getParams()).isEmpty(); + assertThat(underTest.getParameters().getKeys()).isEmpty(); assertThat(underTest.getMediaType()).isEqualTo(MediaTypes.JSON); assertThat(underTest.getPath()).isEqualTo("api/foo"); assertThat(underTest.getWriteTimeOutInMs()).isEmpty(); @@ -58,16 +58,13 @@ public class BaseRequestTest { @Test public void keep_order_of_params() { - assertThat(underTest.getParams()).isEmpty(); assertThat(underTest.getParameters().getKeys()).isEmpty(); underTest.setParam("keyB", "b"); - assertThat(underTest.getParams()).containsExactly(entry("keyB", "b")); assertParameters(entry("keyB", "b")); assertMultiValueParameters(entry("keyB", singletonList("b"))); underTest.setParam("keyA", "a"); - assertThat(underTest.getParams()).containsExactly(entry("keyB", "b"), entry("keyA", "a")); assertParameters(entry("keyB", "b"), entry("keyA", "a")); assertMultiValueParameters(entry("keyB", singletonList("b")), entry("keyA", singletonList("a"))); @@ -90,7 +87,7 @@ public class BaseRequestTest { public void null_param_value() { Boolean nullBool = null; underTest.setParam("key", nullBool); - assertThat(underTest.getParams()).isEmpty(); + assertThat(underTest.getParameters().getKeys()).isEmpty(); } @Test diff --git a/sonar-ws/src/test/java/org/sonarqube/ws/client/PostRequestTest.java b/sonar-ws/src/test/java/org/sonarqube/ws/client/PostRequestTest.java index ec50a1c7267..cf7882aca48 100644 --- a/sonar-ws/src/test/java/org/sonarqube/ws/client/PostRequestTest.java +++ b/sonar-ws/src/test/java/org/sonarqube/ws/client/PostRequestTest.java @@ -43,7 +43,7 @@ public class PostRequestTest { public void empty_parts_and_params_by_default() { PostRequest request = new PostRequest("api/issues/search"); assertThat(request.getParts()).isEmpty(); - assertThat(request.getParams()).isEmpty(); + assertThat(request.getParameters().getKeys()).isEmpty(); } @Test |