diff options
11 files changed, 150 insertions, 2015 deletions
diff --git a/server/sonar-ce-common/src/main/java/org/sonar/ce/common/batch/package-info.java b/server/sonar-ce-common/src/main/java/org/sonar/ce/common/batch/package-info.java new file mode 100644 index 00000000000..42774becbfb --- /dev/null +++ b/server/sonar-ce-common/src/main/java/org/sonar/ce/common/batch/package-info.java @@ -0,0 +1,23 @@ +/* + * 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. + */ +@ParametersAreNonnullByDefault +package org.sonar.ce.common.batch; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/server/sonar-ce-common/src/main/java/org/sonar/ce/common/sca/BuildSoftwareCompositionAnalysisStepProvider.java b/server/sonar-ce-common/src/main/java/org/sonar/ce/common/sca/BuildSoftwareCompositionAnalysisStepProvider.java new file mode 100644 index 00000000000..f53f5ec4089 --- /dev/null +++ b/server/sonar-ce-common/src/main/java/org/sonar/ce/common/sca/BuildSoftwareCompositionAnalysisStepProvider.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.ce.common.sca; + +import org.sonar.api.ce.ComputeEngineSide; +import org.sonar.ce.common.scanner.ScannerReportReader; +import org.sonar.ce.task.step.ComputationStep; + +/** + * When an implementation of this interface is available in the ioc container, the Compute Engine will use the value returned by + * {@link #get(ScannerReportReader)} as an extra step for software composition analysis. + */ +@ComputeEngineSide +public interface BuildSoftwareCompositionAnalysisStepProvider { + ComputationStep get(ScannerReportReader reportReader); +} diff --git a/server/sonar-ce-common/src/main/java/org/sonar/ce/common/sca/package-info.java b/server/sonar-ce-common/src/main/java/org/sonar/ce/common/sca/package-info.java new file mode 100644 index 00000000000..70c1c463dab --- /dev/null +++ b/server/sonar-ce-common/src/main/java/org/sonar/ce/common/sca/package-info.java @@ -0,0 +1,23 @@ +/* + * 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. + */ +@ParametersAreNonnullByDefault +package org.sonar.ce.common.sca; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/server/sonar-ce-task-projectanalysis/build.gradle b/server/sonar-ce-task-projectanalysis/build.gradle index d12b9dd451c..0e024680b5c 100644 --- a/server/sonar-ce-task-projectanalysis/build.gradle +++ b/server/sonar-ce-task-projectanalysis/build.gradle @@ -70,7 +70,6 @@ dependencies { testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' testRuntimeOnly 'org.junit.vintage:junit-vintage-engine' - testImplementation 'com.squareup.okhttp3:mockwebserver' } test { diff --git a/server/sonar-ce-task-projectanalysis/src/it/java/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT.java b/server/sonar-ce-task-projectanalysis/src/it/java/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT.java deleted file mode 100644 index a1188fb7f77..00000000000 --- a/server/sonar-ce-task-projectanalysis/src/it/java/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT.java +++ /dev/null @@ -1,135 +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.ce.task.projectanalysis.step; - -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import okhttp3.OkHttpClient; -import okhttp3.mockwebserver.MockResponse; -import okhttp3.mockwebserver.MockWebServer; -import org.apache.commons.io.IOUtils; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -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.ce.common.scanner.ScannerReportReaderRule; -import org.sonar.ce.task.step.TestComputationStepContext; - -import static org.assertj.core.api.Assertions.assertThat; - -class BuildSoftwareCompositionAnalysisStepIT { - @RegisterExtension - public final LogTesterJUnit5 logTester = new LogTesterJUnit5(); - - private final MockWebServer server = new MockWebServer(); - - ScannerReportReaderRule reportReader = new ScannerReportReaderRule(); - OkHttpClient okHttpClient = new OkHttpClient(); - - private final BuildSoftwareCompositionAnalysisStep underTest = new BuildSoftwareCompositionAnalysisStep(reportReader, okHttpClient); - - @BeforeEach - public void prepare() throws IOException { - logTester.setLevel(Level.DEBUG); - server.start(); - } - - @AfterEach - public void stopServer() throws IOException { - server.shutdown(); - } - - @Test - void buildSoftwareCompositionAnalysisStep_shouldBuildDeps() throws Exception { - var zipFile = getResourceFile("/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/dependency-files.zip"); - reportReader.putDependencyFilesZip(zipFile); - - var tideliftResponse = getResourceContentAsString("/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/tidelift-response.json"); - MockResponse mockedResponse = new MockResponse() - .setBody(tideliftResponse) // Sample - .addHeader("Content-Type", "application/json"); - - server.enqueue(mockedResponse); - - var url = server.url("/sonar-api/v1/releases/parse-dependency-files").toString(); - underTest.setTideliftUploadUrl(url); - underTest.setTideliftApiKey("v2/user/fake-key"); - - TestComputationStepContext context = new TestComputationStepContext(); - underTest.execute(context); - - assertThat(logTester.logs(Level.INFO)).contains("Release: pkg:npm/nodemailer@5.1.1 VulnerabilityCount: 2"); - assertThat(logTester.logs(Level.INFO).stream() - .filter(l -> l.matches("Release: pkg:.*/.*@.* VulnerabilityCount: .*")) - .count()).isEqualTo(253); - } - - @Test - void buildSoftwareCompositionAnalysisStep_withNoApiKey_Throws() throws Exception { - TestComputationStepContext context = new TestComputationStepContext(); - - underTest.execute(context); - - assertThat(logTester.logs(Level.WARN)).contains("TIDELIFT_API_KEY is not set"); - } - - @Test - void buildSoftwareCompositionAnalysisStep_whenReportDoesNotContainDependencyFiles_LogsWarning() throws Exception { - var url = server.url("/sonar-api/v1/releases/parse-dependency-files").toString(); - underTest.setTideliftUploadUrl(url); - underTest.setTideliftApiKey("v2/user/fake-key"); - - TestComputationStepContext context = new TestComputationStepContext(); - underTest.execute(context); - - assertThat(logTester.logs(Level.WARN)).contains("No dependency files found"); - } - - @Test - void buildSoftwareCompositionAnalysisStep_WithErrorFromTidelift_Logs() throws Exception { - var zipFile = getResourceFile("/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/dependency-files.zip"); - reportReader.putDependencyFilesZip(zipFile); - - MockResponse mockedResponse = new MockResponse().setResponseCode(500); - - server.enqueue(mockedResponse); - - var url = server.url("/sonar-api/v1/releases/parse-dependency-files").toString(); - underTest.setTideliftUploadUrl(url); - underTest.setTideliftApiKey("v2/user/fake-key"); - - TestComputationStepContext context = new TestComputationStepContext(); - underTest.execute(context); - - assertThat(logTester.logs(Level.WARN)).contains("Processing failed. Tidelift Response code:500 message:Server Error"); - } - - private File getResourceFile(String path) { - return new File(getClass().getResource(path).getFile()); - } - - private String getResourceContentAsString(String path) throws IOException { - var stream = getClass().getResourceAsStream(path); - return IOUtils.toString(stream, StandardCharsets.UTF_8); - } -} diff --git a/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/dependency-files.zip b/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/dependency-files.zip Binary files differdeleted file mode 100644 index 0b5c2e953aa..00000000000 --- a/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/dependency-files.zip +++ /dev/null diff --git a/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/package.json b/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/package.json deleted file mode 100755 index 7e610d3eefd..00000000000 --- a/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "TextBelt", - "repository": { - "type": "git", - "url": "git@github.com:typpo/textbelt.git" - }, - "dependencies": { - "express": "^4.19.2", - "nodemailer": "^5.1.1" - }, - "devDependencies": { - "eslint": "^5.9.0", - "eslint-config-airbnb": "^17.1.0", - "eslint-plugin-import": "^2.14.0", - "eslint-plugin-jsx-a11y": "^6.1.2", - "eslint-plugin-react": "^7.11.1" - }, - "main": "app", - "engines": { - "node": ">= 4.3.2" - }, - "version": "0.0.3", - "scripts": { - "start": "node server/app.js", - "lint": "eslint .", - "lint:fix": "eslint --fix ." - } -} diff --git a/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/tidelift-response.json b/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/tidelift-response.json deleted file mode 100644 index 3a5a70edb60..00000000000 --- a/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/tidelift-response.json +++ /dev/null @@ -1 +0,0 @@ -{"releases":[{"platform":"npm","name":"side-channel","version":"1.0.6","purl":"pkg:npm/side-channel@1.0.6","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.6","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"get-intrinsic","version":"1.2.4","purl":"pkg:npm/get-intrinsic@1.2.4","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.2.4","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"call-bind","version":"1.0.7","purl":"pkg:npm/call-bind@1.0.7","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.7","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-promise","version":"2.1.0","purl":"pkg:npm/is-promise@2.1.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"express","version":"4.19.2","purl":"pkg:npm/express@4.19.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2024-43796","severity":"5.0","description":"Express.js minimalist web framework for node. In express \u003c 4.20.0, passing untrusted user input - even after sanitizing it - to response.redirect() may execute untrusted code. This issue is patched in express 4.20.0.","date":"2024-09-10","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-43796","severity_rating":"Medium","epss_percentile":"0.19285","epss_probability":"0.00046","known_exploited":false}}],"direct":true,"type":"runtime","requirement":"^4.19.2","manifest_source":"package.json","lockfile_source":"yarn.lock"},{"platform":"npm","name":"nodemailer","version":"5.1.1","purl":"pkg:npm/nodemailer@5.1.1","license":{"expression":"MIT","source":"valid_spdx"},"violations":[{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2020-7769","severity":"8.6","description":"This affects the package nodemailer before 6.4.16. Use of crafted recipient email addresses may result in arbitrary command flag injection in sendmail transport for sending mails.","date":"2020-11-12","url":"https://nvd.nist.gov/vuln/detail/CVE-2020-7769","severity_rating":"High","epss_percentile":"0.88608","epss_probability":"0.01991","known_exploited":false}},{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2021-23400","severity":"6.3","description":"The package nodemailer before 6.6.1 are vulnerable to HTTP Header Injection if unsanitized user input that may contain newlines and carriage returns is passed into an address object.","date":"2021-06-29","url":"https://nvd.nist.gov/vuln/detail/CVE-2021-23400","severity_rating":"Medium","epss_percentile":"0.85799","epss_probability":"0.01309","known_exploited":false}}],"direct":true,"type":"runtime","requirement":"^5.1.1","manifest_source":"package.json","lockfile_source":"yarn.lock"},{"platform":"npm","name":"@babel/code-frame","version":"7.0.0","purl":"pkg:npm/%40babel/code-frame@7.0.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"7.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"@babel/highlight","version":"7.0.0","purl":"pkg:npm/%40babel/highlight@7.0.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"7.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"lodash","version":"4.17.21","purl":"pkg:npm/lodash@4.17.21","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"4.17.21","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"accepts","version":"1.3.8","purl":"pkg:npm/accepts@1.3.8","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.3.8","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"acorn-jsx","version":"5.0.0","purl":"pkg:npm/acorn-jsx@5.0.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"5.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"acorn","version":"6.4.1","purl":"pkg:npm/acorn@6.4.1","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"6.4.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"ajv","version":"6.12.6","purl":"pkg:npm/ajv@6.12.6","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"6.12.6","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"argparse","version":"1.0.10","purl":"pkg:npm/argparse@1.0.10","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.10","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"array-flatten","version":"1.1.1","purl":"pkg:npm/array-flatten@1.1.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"array-includes","version":"3.0.3","purl":"pkg:npm/array-includes@3.0.3","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"array-union","version":"1.0.2","purl":"pkg:npm/array-union@1.0.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"balanced-match","version":"1.0.2","purl":"pkg:npm/balanced-match@1.0.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-resolvable","version":"1.1.0","purl":"pkg:npm/is-resolvable@1.1.0","license":{"expression":"ISC","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"body-parser","version":"1.20.2","purl":"pkg:npm/body-parser@1.20.2","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2024-45590","severity":"8.7","description":"body-parser is Node.js body parsing middleware. body-parser \u003c1.20.3 is vulnerable to denial of service when url encoding is enabled. A malicious actor using a specially crafted payload could flood the server with a large number of requests, resulting in denial of service. This issue is patched in 1.20.3.","date":"2024-09-10","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-45590","severity_rating":"High","epss_percentile":"0.19285","epss_probability":"0.00046","known_exploited":false}}],"direct":false,"type":"runtime","requirement":"1.20.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"brace-expansion","version":"1.1.11","purl":"pkg:npm/brace-expansion@1.1.11","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.11","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"bytes","version":"3.1.2","purl":"pkg:npm/bytes@3.1.2","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"3.1.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"caller-path","version":"0.1.0","purl":"pkg:npm/caller-path@0.1.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"0.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"chardet","version":"0.7.0","purl":"pkg:npm/chardet@0.7.0","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"0.7.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"circular-json","version":"0.3.3","purl":"pkg:npm/circular-json@0.3.3","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"0.3.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"cli-width","version":"2.2.0","purl":"pkg:npm/cli-width@2.2.0","license":{"expression":"ISC","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"2.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"color-convert","version":"1.9.3","purl":"pkg:npm/color-convert@1.9.3","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.9.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"color-name","version":"1.1.3","purl":"pkg:npm/color-name@1.1.3","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"commander","version":"2.19.0","purl":"pkg:npm/commander@2.19.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.19.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"concat-map","version":"0.0.1","purl":"pkg:npm/concat-map@0.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"0.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"content-disposition","version":"0.5.4","purl":"pkg:npm/content-disposition@0.5.4","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"0.5.4","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"content-type","version":"1.0.5","purl":"pkg:npm/content-type@1.0.5","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.5","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"cookie-signature","version":"1.0.6","purl":"pkg:npm/cookie-signature@1.0.6","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.6","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"cookie","version":"0.6.0","purl":"pkg:npm/cookie@0.6.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2024-47764","severity":null,"description":"cookie is a basic HTTP cookie parser and serializer for HTTP servers. The cookie name could be used to set other fields of the cookie, resulting in an unexpected cookie value. A similar escape can be used for path and domain, which could be abused to alter other fields of the cookie. Upgrade to 0.7.0, which updates the validation for name, path, and domain.","date":"2024-10-04","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-47764","severity_rating":null,"epss_percentile":"0.178","epss_probability":"0.00045","known_exploited":false}}],"direct":false,"type":"runtime","requirement":"0.6.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"cross-spawn","version":"6.0.5","purl":"pkg:npm/cross-spawn@6.0.5","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2024-21538","severity":"7.5","description":"Versions of the package cross-spawn before 7.0.5 are vulnerable to Regular Expression Denial of Service (ReDoS) due to improper input sanitization. An attacker can increase the CPU usage and crash the program by crafting a very large and well crafted string.","date":"2024-11-08","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-21538","severity_rating":"High","epss_percentile":"0.178","epss_probability":"0.00045","known_exploited":false}}],"direct":false,"type":"runtime","requirement":"6.0.5","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"debug","version":"2.6.9","purl":"pkg:npm/debug@2.6.9","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2017-20165","severity":"7.5","description":"A vulnerability classified as problematic has been found in debug-js debug up to 3.0.x. This affects the function useColors of the file src/node.js. The manipulation of the argument str leads to inefficient regular expression complexity. Upgrading to version 3.1.0 is able to address this issue. The identifier of the patch is c38a0166c266a679c8de012d4eaccec3f944e685. It is recommended to upgrade the affected component. The identifier VDB-217665 was assigned to this vulnerability.","date":"2023-01-09","url":"https://nvd.nist.gov/vuln/detail/CVE-2017-20165","severity_rating":"High","epss_percentile":"0.79308","epss_probability":"0.00642","known_exploited":false}}],"direct":false,"type":"runtime","requirement":"2.6.9","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"debug","version":"4.1.0","purl":"pkg:npm/debug@4.1.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"4.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"deep-is","version":"0.1.3","purl":"pkg:npm/deep-is@0.1.3","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"0.1.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"define-properties","version":"1.1.3","purl":"pkg:npm/define-properties@1.1.3","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"depd","version":"2.0.0","purl":"pkg:npm/depd@2.0.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"destroy","version":"1.2.0","purl":"pkg:npm/destroy@1.2.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"doctrine","version":"1.5.0","purl":"pkg:npm/doctrine@1.5.0","license":{"expression":"BSD-2-Clause AND Apache-2.0","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.5.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"doctrine","version":"2.1.0","purl":"pkg:npm/doctrine@2.1.0","license":{"expression":"Apache-2.0","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"ee-first","version":"1.1.1","purl":"pkg:npm/ee-first@1.1.1","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"encodeurl","version":"1.0.2","purl":"pkg:npm/encodeurl@1.0.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"error-ex","version":"1.3.2","purl":"pkg:npm/error-ex@1.3.2","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.3.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"es-abstract","version":"1.12.0","purl":"pkg:npm/es-abstract@1.12.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.12.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"es-to-primitive","version":"1.2.0","purl":"pkg:npm/es-to-primitive@1.2.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"escape-html","version":"1.0.3","purl":"pkg:npm/escape-html@1.0.3","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint-import-resolver-node","version":"0.3.2","purl":"pkg:npm/eslint-import-resolver-node@0.3.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"0.3.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint-module-utils","version":"2.2.0","purl":"pkg:npm/eslint-module-utils@2.2.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint-plugin-import","version":"2.14.0","purl":"pkg:npm/eslint-plugin-import@2.14.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":true,"type":"development","requirement":"^2.14.0","manifest_source":"package.json","lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint-scope","version":"4.0.0","purl":"pkg:npm/eslint-scope@4.0.0","license":{"expression":"BSD-2-Clause","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"4.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint-visitor-keys","version":"1.1.0","purl":"pkg:npm/eslint-visitor-keys@1.1.0","license":{"expression":"Apache-2.0","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"espree","version":"4.1.0","purl":"pkg:npm/espree@4.1.0","license":{"expression":"BSD-2-Clause","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"4.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"esprima","version":"4.0.1","purl":"pkg:npm/esprima@4.0.1","license":{"expression":"BSD-2-Clause","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"4.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"esquery","version":"1.0.1","purl":"pkg:npm/esquery@1.0.1","license":{"expression":"BSD-3-Clause","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"esrecurse","version":"4.2.1","purl":"pkg:npm/esrecurse@4.2.1","license":{"expression":"BSD-2-Clause","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"4.2.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"estraverse","version":"4.2.0","purl":"pkg:npm/estraverse@4.2.0","license":{"expression":"BSD-2-Clause","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"4.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"esutils","version":"2.0.2","purl":"pkg:npm/esutils@2.0.2","license":{"expression":"BSD-2-Clause","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"etag","version":"1.8.1","purl":"pkg:npm/etag@1.8.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.8.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"external-editor","version":"3.0.3","purl":"pkg:npm/external-editor@3.0.3","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"fast-deep-equal","version":"3.1.3","purl":"pkg:npm/fast-deep-equal@3.1.3","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.1.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"fast-json-stable-stringify","version":"2.1.0","purl":"pkg:npm/fast-json-stable-stringify@2.1.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"fast-levenshtein","version":"2.0.6","purl":"pkg:npm/fast-levenshtein@2.0.6","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.6","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"file-entry-cache","version":"2.0.0","purl":"pkg:npm/file-entry-cache@2.0.0","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"finalhandler","version":"1.2.0","purl":"pkg:npm/finalhandler@1.2.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"flat-cache","version":"1.3.2","purl":"pkg:npm/flat-cache@1.3.2","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.3.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"forwarded","version":"0.2.0","purl":"pkg:npm/forwarded@0.2.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"0.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"fresh","version":"0.5.2","purl":"pkg:npm/fresh@0.5.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"0.5.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"fs.realpath","version":"1.0.0","purl":"pkg:npm/fs.realpath@1.0.0","license":{"expression":"ISC","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"function-bind","version":"1.1.1","purl":"pkg:npm/function-bind@1.1.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"function-bind","version":"1.1.2","purl":"pkg:npm/function-bind@1.1.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"functional-red-black-tree","version":"1.0.1","purl":"pkg:npm/functional-red-black-tree@1.0.1","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"glob","version":"7.1.3","purl":"pkg:npm/glob@7.1.3","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"7.1.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"globals","version":"11.9.0","purl":"pkg:npm/globals@11.9.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"11.9.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"graceful-fs","version":"4.1.15","purl":"pkg:npm/graceful-fs@4.1.15","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"4.1.15","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"has-symbols","version":"1.0.0","purl":"pkg:npm/has-symbols@1.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"has-symbols","version":"1.0.3","purl":"pkg:npm/has-symbols@1.0.3","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"has","version":"1.0.3","purl":"pkg:npm/has@1.0.3","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"hosted-git-info","version":"2.8.9","purl":"pkg:npm/hosted-git-info@2.8.9","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2021-23362","severity":"5.3","description":"The package hosted-git-info before 3.0.8 are vulnerable to Regular Expression Denial of Service (ReDoS) via regular expression shortcutMatch in the fromUrl function in index.js. The affected regular expression exhibits polynomial worst-case time complexity.","date":"2021-03-23","url":"https://nvd.nist.gov/vuln/detail/CVE-2021-23362","severity_rating":"Medium","epss_percentile":"0.61567","epss_probability":"0.00236","known_exploited":false}}],"direct":false,"type":"runtime","requirement":"2.8.9","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"http-errors","version":"2.0.0","purl":"pkg:npm/http-errors@2.0.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"iconv-lite","version":"0.4.24","purl":"pkg:npm/iconv-lite@0.4.24","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"0.4.24","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"ignore","version":"4.0.6","purl":"pkg:npm/ignore@4.0.6","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"4.0.6","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"imurmurhash","version":"0.1.4","purl":"pkg:npm/imurmurhash@0.1.4","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"0.1.4","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"inflight","version":"1.0.6","purl":"pkg:npm/inflight@1.0.6","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.6","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"inherits","version":"2.0.3","purl":"pkg:npm/inherits@2.0.3","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"inherits","version":"2.0.4","purl":"pkg:npm/inherits@2.0.4","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.4","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"inquirer","version":"6.2.0","purl":"pkg:npm/inquirer@6.2.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"6.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"ipaddr.js","version":"1.9.1","purl":"pkg:npm/ipaddr.js@1.9.1","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.9.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-arrayish","version":"0.2.1","purl":"pkg:npm/is-arrayish@0.2.1","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"0.2.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-callable","version":"1.1.4","purl":"pkg:npm/is-callable@1.1.4","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.4","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-date-object","version":"1.0.1","purl":"pkg:npm/is-date-object@1.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-path-cwd","version":"1.0.0","purl":"pkg:npm/is-path-cwd@1.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-path-in-cwd","version":"1.0.1","purl":"pkg:npm/is-path-in-cwd@1.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-regex","version":"1.0.4","purl":"pkg:npm/is-regex@1.0.4","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.4","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-symbol","version":"1.0.2","purl":"pkg:npm/is-symbol@1.0.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"isarray","version":"1.0.0","purl":"pkg:npm/isarray@1.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"isexe","version":"2.0.0","purl":"pkg:npm/isexe@2.0.0","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"js-tokens","version":"4.0.0","purl":"pkg:npm/js-tokens@4.0.0","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"4.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"js-yaml","version":"3.13.1","purl":"pkg:npm/js-yaml@3.13.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.13.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"json-schema-traverse","version":"0.4.1","purl":"pkg:npm/json-schema-traverse@0.4.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"0.4.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"json-stable-stringify-without-jsonify","version":"1.0.1","purl":"pkg:npm/json-stable-stringify-without-jsonify@1.0.1","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"levn","version":"0.3.0","purl":"pkg:npm/levn@0.3.0","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"0.3.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"loose-envify","version":"1.4.0","purl":"pkg:npm/loose-envify@1.4.0","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.4.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"media-typer","version":"0.3.0","purl":"pkg:npm/media-typer@0.3.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"0.3.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"merge-descriptors","version":"1.0.1","purl":"pkg:npm/merge-descriptors@1.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"methods","version":"1.1.2","purl":"pkg:npm/methods@1.1.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"mime-db","version":"1.40.0","purl":"pkg:npm/mime-db@1.40.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.40.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"mime-db","version":"1.52.0","purl":"pkg:npm/mime-db@1.52.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.52.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"mime-types","version":"2.1.24","purl":"pkg:npm/mime-types@2.1.24","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.24","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"mime-types","version":"2.1.35","purl":"pkg:npm/mime-types@2.1.35","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.35","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"mime","version":"1.6.0","purl":"pkg:npm/mime@1.6.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.6.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"minimatch","version":"3.1.2","purl":"pkg:npm/minimatch@3.1.2","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"3.1.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"minimist","version":"0.0.8","purl":"pkg:npm/minimist@0.0.8","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2020-7598","severity":"5.6","description":"minimist before 1.2.2 could be tricked into adding or modifying properties of Object.prototype using a \"constructor\" or \"__proto__\" payload.","date":"2020-03-11","url":"https://nvd.nist.gov/vuln/detail/CVE-2020-7598","severity_rating":"Medium","epss_percentile":"0.5046","epss_probability":"0.00139","known_exploited":false}},{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2021-44906","severity":"9.8","description":"Minimist \u003c=1.2.5 is vulnerable to Prototype Pollution via file index.js, function setKey() (lines 69-95).","date":"2022-03-17","url":"https://nvd.nist.gov/vuln/detail/CVE-2021-44906","severity_rating":"Critical","epss_percentile":"0.89373","epss_probability":"0.02255","known_exploited":false}}],"direct":false,"type":"runtime","requirement":"0.0.8","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"mkdirp","version":"0.5.1","purl":"pkg:npm/mkdirp@0.5.1","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"0.5.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"ms","version":"2.0.0","purl":"pkg:npm/ms@2.0.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"ms","version":"2.1.1","purl":"pkg:npm/ms@2.1.1","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"ms","version":"2.1.3","purl":"pkg:npm/ms@2.1.3","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"mute-stream","version":"0.0.7","purl":"pkg:npm/mute-stream@0.0.7","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"0.0.7","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"natural-compare","version":"1.4.0","purl":"pkg:npm/natural-compare@1.4.0","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.4.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"negotiator","version":"0.6.3","purl":"pkg:npm/negotiator@0.6.3","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"0.6.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"nice-try","version":"1.0.5","purl":"pkg:npm/nice-try@1.0.5","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.5","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"normalize-package-data","version":"2.4.0","purl":"pkg:npm/normalize-package-data@2.4.0","license":{"expression":"BSD-2-Clause","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"2.4.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"object-keys","version":"1.0.12","purl":"pkg:npm/object-keys@1.0.12","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.12","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"object.assign","version":"4.1.0","purl":"pkg:npm/object.assign@4.1.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"4.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"on-finished","version":"2.4.1","purl":"pkg:npm/on-finished@2.4.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.4.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"once","version":"1.4.0","purl":"pkg:npm/once@1.4.0","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.4.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"optionator","version":"0.8.2","purl":"pkg:npm/optionator@0.8.2","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"0.8.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"p-try","version":"1.0.0","purl":"pkg:npm/p-try@1.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"parseurl","version":"1.3.3","purl":"pkg:npm/parseurl@1.3.3","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.3.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"path-is-inside","version":"1.0.2","purl":"pkg:npm/path-is-inside@1.0.2","license":{"expression":"WTFPL OR MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"path-parse","version":"1.0.7","purl":"pkg:npm/path-parse@1.0.7","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.7","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"path-to-regexp","version":"0.1.7","purl":"pkg:npm/path-to-regexp@0.1.7","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2024-45296","severity":"7.5","description":"path-to-regexp turns path strings into a regular expressions. In certain cases, path-to-regexp will output a regular expression that can be exploited to cause poor performance. Because JavaScript is single threaded and regex matching runs on the main thread, poor performance will block the event loop and lead to a DoS. The bad regular expression is generated any time you have two parameters within a single segment, separated by something that is not a period (.). For users of 0.1, upgrade to 0.1.10. All other users should upgrade to 8.0.0.","date":"2024-09-09","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-45296","severity_rating":"High","epss_percentile":"0.178","epss_probability":"0.00045","known_exploited":false}},{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2024-52798","severity":"7.7","description":"path-to-regexp turns path strings into a regular expressions. In certain cases, path-to-regexp will output a regular expression that can be exploited to cause poor performance. The regular expression that is vulnerable to backtracking can be generated in the 0.1.x release of path-to-regexp. Upgrade to 0.1.12. This vulnerability exists because of an incomplete fix for CVE-2024-45296.","date":"2024-12-05","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-52798","severity_rating":"High","epss_percentile":"0.11435","epss_probability":"0.00043","known_exploited":false}}],"direct":false,"type":"runtime","requirement":"0.1.7","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"pinkie-promise","version":"2.0.1","purl":"pkg:npm/pinkie-promise@2.0.1","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"pinkie","version":"2.0.4","purl":"pkg:npm/pinkie@2.0.4","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.4","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"pluralize","version":"7.0.0","purl":"pkg:npm/pluralize@7.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"7.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"prelude-ls","version":"1.1.2","purl":"pkg:npm/prelude-ls@1.1.2","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"progress","version":"2.0.1","purl":"pkg:npm/progress@2.0.1","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"proxy-addr","version":"2.0.7","purl":"pkg:npm/proxy-addr@2.0.7","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.7","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"punycode","version":"2.1.1","purl":"pkg:npm/punycode@2.1.1","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"qs","version":"6.11.0","purl":"pkg:npm/qs@6.11.0","license":{"expression":"BSD-3-Clause","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"6.11.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"range-parser","version":"1.2.1","purl":"pkg:npm/range-parser@1.2.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.2.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"raw-body","version":"2.5.2","purl":"pkg:npm/raw-body@2.5.2","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.5.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"regexpp","version":"2.0.1","purl":"pkg:npm/regexpp@2.0.1","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"resolve","version":"1.8.1","purl":"pkg:npm/resolve@1.8.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.8.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"rimraf","version":"2.6.2","purl":"pkg:npm/rimraf@2.6.2","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"2.6.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"run-async","version":"2.3.0","purl":"pkg:npm/run-async@2.3.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.3.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"safer-buffer","version":"2.1.2","purl":"pkg:npm/safer-buffer@2.1.2","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"semver","version":"5.7.2","purl":"pkg:npm/semver@5.7.2","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"5.7.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"send","version":"0.18.0","purl":"pkg:npm/send@0.18.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2024-43799","severity":"5.0","description":"Send is a library for streaming files from the file system as a http response. Send passes untrusted user input to SendStream.redirect() which executes untrusted code. This issue is patched in send 0.19.0.","date":"2024-09-10","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-43799","severity_rating":"Medium","epss_percentile":"0.19285","epss_probability":"0.00046","known_exploited":false}}],"direct":false,"type":"runtime","requirement":"0.18.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"serve-static","version":"1.15.0","purl":"pkg:npm/serve-static@1.15.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[{"catalog_standard":"vulnerabilities","vulnerability":{"id":"CVE-2024-43800","severity":"5.0","description":"serve-static serves static files. serve-static passes untrusted user input - even after sanitizing it - to redirect() may execute untrusted code. This issue is patched in serve-static 1.16.0.","date":"2024-09-10","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-43800","severity_rating":"Medium","epss_percentile":"0.23338","epss_probability":"0.00052","known_exploited":false}}],"direct":false,"type":"runtime","requirement":"1.15.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"setprototypeof","version":"1.2.0","purl":"pkg:npm/setprototypeof@1.2.0","license":{"expression":"ISC","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"shebang-command","version":"1.2.0","purl":"pkg:npm/shebang-command@1.2.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"shebang-regex","version":"1.0.0","purl":"pkg:npm/shebang-regex@1.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"signal-exit","version":"3.0.2","purl":"pkg:npm/signal-exit@3.0.2","license":{"expression":"ISC","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"spdx-correct","version":"3.0.2","purl":"pkg:npm/spdx-correct@3.0.2","license":{"expression":"Apache-2.0","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"spdx-exceptions","version":"2.2.0","purl":"pkg:npm/spdx-exceptions@2.2.0","license":{"expression":"CC-BY-3.0","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"2.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"spdx-expression-parse","version":"3.0.0","purl":"pkg:npm/spdx-expression-parse@3.0.0","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"spdx-license-ids","version":"3.0.2","purl":"pkg:npm/spdx-license-ids@3.0.2","license":{"expression":"CC0-1.0","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"sprintf-js","version":"1.0.3","purl":"pkg:npm/sprintf-js@1.0.3","license":{"expression":"BSD-3-Clause","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"statuses","version":"2.0.1","purl":"pkg:npm/statuses@2.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"table","version":"5.1.0","purl":"pkg:npm/table@5.1.0","license":{"expression":"BSD-3-Clause","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"5.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"text-table","version":"0.2.0","purl":"pkg:npm/text-table@0.2.0","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"0.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"through","version":"2.3.8","purl":"pkg:npm/through@2.3.8","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"2.3.8","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"tmp","version":"0.0.33","purl":"pkg:npm/tmp@0.0.33","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"0.0.33","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"tslib","version":"1.9.3","purl":"pkg:npm/tslib@1.9.3","license":{"expression":"0BSD","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.9.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"type-check","version":"0.3.2","purl":"pkg:npm/type-check@0.3.2","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"0.3.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"type-is","version":"1.6.18","purl":"pkg:npm/type-is@1.6.18","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.6.18","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"unpipe","version":"1.0.0","purl":"pkg:npm/unpipe@1.0.0","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"uri-js","version":"4.4.1","purl":"pkg:npm/uri-js@4.4.1","license":{"expression":"BSD-2-Clause","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"4.4.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"utils-merge","version":"1.0.1","purl":"pkg:npm/utils-merge@1.0.1","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"validate-npm-package-license","version":"3.0.4","purl":"pkg:npm/validate-npm-package-license@3.0.4","license":{"expression":"Apache-2.0","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.4","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"vary","version":"1.1.2","purl":"pkg:npm/vary@1.1.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"which","version":"1.3.1","purl":"pkg:npm/which@1.3.1","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.3.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"wordwrap","version":"1.0.0","purl":"pkg:npm/wordwrap@1.0.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"wrappy","version":"1.0.2","purl":"pkg:npm/wrappy@1.0.2","license":{"expression":"ISC","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"emoji-regex","version":"6.5.1","purl":"pkg:npm/emoji-regex@6.5.1","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"6.5.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"prop-types","version":"15.6.2","purl":"pkg:npm/prop-types@15.6.2","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"15.6.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"rxjs","version":"6.3.3","purl":"pkg:npm/rxjs@6.3.3","license":{"expression":"Apache-2.0","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"6.3.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint-config-airbnb-base","version":"13.1.0","purl":"pkg:npm/eslint-config-airbnb-base@13.1.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"13.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint-restricted-globals","version":"0.1.1","purl":"pkg:npm/eslint-restricted-globals@0.1.1","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"0.1.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint-utils","version":"1.4.2","purl":"pkg:npm/eslint-utils@1.4.2","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.4.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"toidentifier","version":"1.0.1","purl":"pkg:npm/toidentifier@1.0.1","license":{"expression":"MIT","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"aria-query","version":"3.0.0","purl":"pkg:npm/aria-query@3.0.0","license":{"expression":"Apache-2.0","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"ast-types-flow","version":"0.0.7","purl":"pkg:npm/ast-types-flow@0.0.7","license":{"expression":"ISC","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"0.0.7","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"axobject-query","version":"2.0.2","purl":"pkg:npm/axobject-query@2.0.2","license":{"expression":"Apache-2.0","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"damerau-levenshtein","version":"1.0.4","purl":"pkg:npm/damerau-levenshtein@1.0.4","license":{"expression":"BSD-2-Clause","source":"valid_spdx"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.4","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint-config-airbnb","version":"17.1.0","purl":"pkg:npm/eslint-config-airbnb@17.1.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":true,"type":"development","requirement":"^17.1.0","manifest_source":"package.json","lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint-plugin-jsx-a11y","version":"6.1.2","purl":"pkg:npm/eslint-plugin-jsx-a11y@6.1.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":true,"type":"development","requirement":"^6.1.2","manifest_source":"package.json","lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint-plugin-react","version":"7.11.1","purl":"pkg:npm/eslint-plugin-react@7.11.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":true,"type":"development","requirement":"^7.11.1","manifest_source":"package.json","lockfile_source":"yarn.lock"},{"platform":"npm","name":"jsx-ast-utils","version":"2.0.1","purl":"pkg:npm/jsx-ast-utils@2.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"object-inspect","version":"1.13.1","purl":"pkg:npm/object-inspect@1.13.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.13.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"object.entries","version":"1.0.4","purl":"pkg:npm/object.entries@1.0.4","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.4","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"eslint","version":"5.9.0","purl":"pkg:npm/eslint@5.9.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":true,"type":"development","requirement":"^5.9.0","manifest_source":"package.json","lockfile_source":"yarn.lock"},{"platform":"npm","name":"safe-buffer","version":"5.2.1","purl":"pkg:npm/safe-buffer@5.2.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"5.2.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"has-property-descriptors","version":"1.0.2","purl":"pkg:npm/has-property-descriptors@1.0.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"gopd","version":"1.0.1","purl":"pkg:npm/gopd@1.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"has-proto","version":"1.0.3","purl":"pkg:npm/has-proto@1.0.3","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"define-data-property","version":"1.1.4","purl":"pkg:npm/define-data-property@1.1.4","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.4","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"set-function-length","version":"1.2.2","purl":"pkg:npm/set-function-length@1.2.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.2.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"es-errors","version":"1.3.0","purl":"pkg:npm/es-errors@1.3.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.3.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"es-define-property","version":"1.0.0","purl":"pkg:npm/es-define-property@1.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"slice-ansi","version":"1.0.0","purl":"pkg:npm/slice-ansi@1.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"chalk","version":"2.4.1","purl":"pkg:npm/chalk@2.4.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.4.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"supports-color","version":"5.5.0","purl":"pkg:npm/supports-color@5.5.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"5.5.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"strip-ansi","version":"4.0.0","purl":"pkg:npm/strip-ansi@4.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"4.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"ansi-styles","version":"3.2.1","purl":"pkg:npm/ansi-styles@3.2.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.2.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"ansi-regex","version":"3.0.1","purl":"pkg:npm/ansi-regex@3.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"has-flag","version":"3.0.0","purl":"pkg:npm/has-flag@3.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"globby","version":"6.1.0","purl":"pkg:npm/globby@6.1.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"6.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"figures","version":"2.0.0","purl":"pkg:npm/figures@2.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"strip-bom","version":"3.0.0","purl":"pkg:npm/strip-bom@3.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"object-assign","version":"4.1.1","purl":"pkg:npm/object-assign@4.1.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"4.1.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"ansi-escapes","version":"3.1.0","purl":"pkg:npm/ansi-escapes@3.1.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"strip-json-comments","version":"2.0.1","purl":"pkg:npm/strip-json-comments@2.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-fullwidth-code-point","version":"2.0.0","purl":"pkg:npm/is-fullwidth-code-point@2.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"pify","version":"2.3.0","purl":"pkg:npm/pify@2.3.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.3.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"pify","version":"3.0.0","purl":"pkg:npm/pify@3.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"del","version":"3.0.0","purl":"pkg:npm/del@3.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"resolve-from","version":"1.0.1","purl":"pkg:npm/resolve-from@1.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"path-type","version":"2.0.0","purl":"pkg:npm/path-type@2.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"p-locate","version":"2.0.0","purl":"pkg:npm/p-locate@2.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"find-up","version":"1.1.2","purl":"pkg:npm/find-up@1.1.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"read-pkg","version":"2.0.0","purl":"pkg:npm/read-pkg@2.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"find-up","version":"2.1.0","purl":"pkg:npm/find-up@2.1.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"p-map","version":"1.2.0","purl":"pkg:npm/p-map@1.2.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"string-width","version":"2.1.1","purl":"pkg:npm/string-width@2.1.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"p-limit","version":"1.3.0","purl":"pkg:npm/p-limit@1.3.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.3.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"onetime","version":"2.0.1","purl":"pkg:npm/onetime@2.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"parse-json","version":"2.2.0","purl":"pkg:npm/parse-json@2.2.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"load-json-file","version":"2.0.0","purl":"pkg:npm/load-json-file@2.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"path-is-absolute","version":"1.0.1","purl":"pkg:npm/path-is-absolute@1.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"os-tmpdir","version":"1.0.2","purl":"pkg:npm/os-tmpdir@1.0.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"array-uniq","version":"1.0.3","purl":"pkg:npm/array-uniq@1.0.3","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"cli-cursor","version":"2.1.0","purl":"pkg:npm/cli-cursor@2.1.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"require-uncached","version":"1.0.3","purl":"pkg:npm/require-uncached@1.0.3","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.3","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"locate-path","version":"2.0.0","purl":"pkg:npm/locate-path@2.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"read-pkg-up","version":"2.0.0","purl":"pkg:npm/read-pkg-up@2.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"pkg-dir","version":"1.0.0","purl":"pkg:npm/pkg-dir@1.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"path-exists","version":"2.1.0","purl":"pkg:npm/path-exists@2.1.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.1.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"path-exists","version":"3.0.0","purl":"pkg:npm/path-exists@3.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"3.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"mimic-fn","version":"1.2.0","purl":"pkg:npm/mimic-fn@1.2.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"builtin-modules","version":"1.1.1","purl":"pkg:npm/builtin-modules@1.1.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.1.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"path-key","version":"2.0.1","purl":"pkg:npm/path-key@2.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-builtin-module","version":"1.0.0","purl":"pkg:npm/is-builtin-module@1.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"callsites","version":"0.2.0","purl":"pkg:npm/callsites@0.2.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"0.2.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"escape-string-regexp","version":"1.0.5","purl":"pkg:npm/escape-string-regexp@1.0.5","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.5","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"is-path-inside","version":"1.0.1","purl":"pkg:npm/is-path-inside@1.0.1","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"1.0.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"restore-cursor","version":"2.0.0","purl":"pkg:npm/restore-cursor@2.0.0","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.0","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"hasown","version":"2.0.2","purl":"pkg:npm/hasown@2.0.2","license":{"expression":"MIT","source":"verified_by_maintainer"},"violations":[],"direct":false,"type":"runtime","requirement":"2.0.2","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"write","version":"0.2.1","purl":"pkg:npm/write@0.2.1","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"0.2.1","manifest_source":null,"lockfile_source":"yarn.lock"},{"platform":"npm","name":"contains-path","version":"0.1.0","purl":"pkg:npm/contains-path@0.1.0","license":{"expression":"MIT","source":"researched_by_tidelift"},"violations":[],"direct":false,"type":"runtime","requirement":"0.1.0","manifest_source":null,"lockfile_source":"yarn.lock"}],"missing_releases":[]}
\ No newline at end of file diff --git a/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/yarn.lock b/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/yarn.lock deleted file mode 100755 index 633cf9abbe6..00000000000 --- a/server/sonar-ce-task-projectanalysis/src/it/resources/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepIT/textbelt/yarn.lock +++ /dev/null @@ -1,1756 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-jsx@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.0.tgz#958584ddb60990c02c97c1bd9d521fce433bb101" - integrity sha512-XkB50fn0MURDyww9+UYL3c1yLbOBz0ZFvrdYlGB8l+Ije1oSC75qAqrzSPjYQbdnQUzhlUGNKuesryAv0gxZOg== - -acorn@^6.0.2: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - -ajv@^6.5.3: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-escapes@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" - integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw== - -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -aria-query@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" - integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= - dependencies: - ast-types-flow "0.0.7" - commander "^2.11.0" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -ast-types-flow@0.0.7, ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= - -axobject-query@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" - integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== - dependencies: - ast-types-flow "0.0.7" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -body-parser@1.20.2: - version "1.20.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= - -chalk@^2.0.0, chalk@^2.1.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -commander@^2.11.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4, content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" - integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== - -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -damerau-levenshtein@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" - integrity sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ= - -debug@2.6.9, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" - integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== - dependencies: - ms "^2.1.1" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU= - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -emoji-regex@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" - integrity sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -error-ex@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.6.1, es-abstract@^1.7.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" - integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA== - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-to-primitive@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-config-airbnb-base@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz#b5a1b480b80dfad16433d6c4ad84e6605052c05c" - integrity sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw== - dependencies: - eslint-restricted-globals "^0.1.1" - object.assign "^4.1.0" - object.entries "^1.0.4" - -eslint-config-airbnb@^17.1.0: - version "17.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz#3964ed4bc198240315ff52030bf8636f42bc4732" - integrity sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw== - dependencies: - eslint-config-airbnb-base "^13.1.0" - object.assign "^4.1.0" - object.entries "^1.0.4" - -eslint-import-resolver-node@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" - integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== - dependencies: - debug "^2.6.9" - resolve "^1.5.0" - -eslint-module-utils@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" - integrity sha1-snA2LNiLGkitMIl2zn+lTphBF0Y= - dependencies: - debug "^2.6.8" - pkg-dir "^1.0.0" - -eslint-plugin-import@^2.14.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" - integrity sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g== - dependencies: - contains-path "^0.1.0" - debug "^2.6.8" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.2.0" - has "^1.0.1" - lodash "^4.17.4" - minimatch "^3.0.3" - read-pkg-up "^2.0.0" - resolve "^1.6.0" - -eslint-plugin-jsx-a11y@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88" - integrity sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw== - dependencies: - aria-query "^3.0.0" - array-includes "^3.0.3" - ast-types-flow "^0.0.7" - axobject-query "^2.0.1" - damerau-levenshtein "^1.0.4" - emoji-regex "^6.5.1" - has "^1.0.3" - jsx-ast-utils "^2.0.1" - -eslint-plugin-react@^7.11.1: - version "7.11.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c" - integrity sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw== - dependencies: - array-includes "^3.0.3" - doctrine "^2.1.0" - has "^1.0.3" - jsx-ast-utils "^2.0.1" - prop-types "^15.6.2" - -eslint-restricted-globals@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" - integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= - -eslint-scope@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" - integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.3.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" - integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== - dependencies: - eslint-visitor-keys "^1.0.0" - -eslint-visitor-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== - -eslint@^5.9.0: - version "5.9.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.9.0.tgz#b234b6d15ef84b5849c6de2af43195a2d59d408e" - integrity sha512-g4KWpPdqN0nth+goDNICNXGfJF7nNnepthp46CAlJoJtC5K/cLu3NgCM3AHu1CkJ5Hzt9V0Y0PBAO6Ay/gGb+w== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.5.3" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^2.1.0" - eslint-scope "^4.0.0" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^4.0.0" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" - ignore "^4.0.6" - imurmurhash "^0.1.4" - inquirer "^6.1.0" - is-resolvable "^1.1.0" - js-yaml "^3.12.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.5" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - regexpp "^2.0.1" - require-uncached "^1.0.3" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^5.0.2" - text-table "^0.2.0" - -espree@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" - integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== - dependencies: - acorn "^6.0.2" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -express@^4.19.2: - version "4.19.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" - integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.2" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.6.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -external-editor@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" - integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -flat-cache@^1.2.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.2.tgz#7f852d70be573dac874a4c4129d340a34fba7e65" - integrity sha512-KByBY8c98sLUAGpnmjEdWTrtrLZRtZdwds+kAL/ciFXTCb7AZgqKsAnVnYFQj1hxepwO8JKN/8AsRWwLq+RK0A== - dependencies: - circular-json "^0.3.1" - del "^3.0.0" - graceful-fs "^4.1.2" - write "^0.2.1" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -function-bind@^1.1.0, function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.7.0: - version "11.9.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249" - integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg== - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.1.2: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" - integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hasown@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -inherits@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inquirer@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8" - integrity sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.0" - figures "^2.0.0" - lodash "^4.17.10" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.1.0" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74= - dependencies: - builtin-modules "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^1.0.1" - -is-resolvable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== - dependencies: - has-symbols "^1.0.0" - -isarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.12.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -jsx-ast-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" - integrity sha1-6AGxs5mF4g//yHtA43SAgOLcrH8= - dependencies: - array-includes "^3.0.3" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loose-envify@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== - dependencies: - mime-db "1.40.0" - -mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -minimatch@^3.0.3, minimatch@^3.0.4: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -ms@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -nodemailer@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-5.1.1.tgz#0c48d1ecab02e86d9ff6c620ee75ed944b763505" - integrity sha512-hKGCoeNdFL2W7S76J/Oucbw0/qRlfG815tENdhzcqTpSjKgAN91mFOqU2lQUflRRxFM7iZvCyaFcAR9noc/CqQ== - -normalize-package-data@^2.3.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw== - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -object-assign@^4.0.1, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-keys@^1.0.11, object-keys@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.entries@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" - integrity sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.6.1" - function-bind "^1.1.0" - has "^1.0.1" - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= - dependencies: - find-up "^1.0.0" - -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -progress@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" - integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg== - -prop-types@^15.6.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" - integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ== - dependencies: - loose-envify "^1.3.1" - object-assign "^4.1.1" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= - -resolve@^1.5.0, resolve@^1.6.0: - version "1.8.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" - integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== - dependencies: - path-parse "^1.0.5" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -rimraf@^2.2.8: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== - dependencies: - glob "^7.0.5" - -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= - dependencies: - is-promise "^2.1.0" - -rxjs@^6.1.0: - version "6.3.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55" - integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw== - dependencies: - tslib "^1.9.0" - -safe-buffer@5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.5.1: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -set-function-length@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -side-channel@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - -signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== - dependencies: - is-fullwidth-code-point "^2.0.0" - -spdx-correct@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.2.tgz#19bb409e91b47b1ad54159243f7312a858db3c2e" - integrity sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz#a59efc09784c2a5bada13cfeaf5c75dd214044d2" - integrity sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-json-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -table@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/table/-/table-5.1.0.tgz#69a54644f6f01ad1628f8178715b408dc6bf11f7" - integrity sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg== - dependencies: - ajv "^6.5.3" - lodash "^4.17.10" - slice-ansi "1.0.0" - string-width "^2.1.1" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= - dependencies: - mkdirp "^0.5.1" diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStep.java index 71b8a6b9a71..b662ee4a8e6 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStep.java @@ -19,116 +19,35 @@ */ package org.sonar.ce.task.projectanalysis.step; -import com.google.gson.Gson; -import java.io.File; -import java.io.IOException; -import java.util.List; -import okhttp3.MediaType; -import okhttp3.MultipartBody; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import javax.annotation.Nullable; +import org.sonar.ce.common.sca.BuildSoftwareCompositionAnalysisStepProvider; import org.sonar.ce.common.scanner.ScannerReportReader; import org.sonar.ce.task.step.ComputationStep; +import org.springframework.beans.factory.annotation.Autowired; public class BuildSoftwareCompositionAnalysisStep implements ComputationStep { - private static final Logger LOG = LoggerFactory.getLogger(BuildSoftwareCompositionAnalysisStep.class); - private final ScannerReportReader reportReader; - private final OkHttpClient okHttpClient; + private final ComputationStep wrapped; - // TODO: Remove tideliftUploadUrl and tideliftApiKey when the sonar cloud proxy is ready. - private String tideliftUploadUrl = "https://api.tidelift.com/sonar-api/v1/releases/parse-dependency-files"; - private String tideliftApiKey = System.getenv("TIDELIFT_API_KEY"); - - public BuildSoftwareCompositionAnalysisStep(ScannerReportReader reportReader, OkHttpClient okHttpClient) { - this.reportReader = reportReader; - this.okHttpClient = okHttpClient; - } - - public void setTideliftUploadUrl(String tideliftUploadUrl) { - this.tideliftUploadUrl = tideliftUploadUrl; + @Autowired(required = false) + public BuildSoftwareCompositionAnalysisStep(ScannerReportReader reportReader) { + this(reportReader, null); } - public void setTideliftApiKey(String tideliftApiKey) { - this.tideliftApiKey = tideliftApiKey; + @Autowired(required = false) + public BuildSoftwareCompositionAnalysisStep(ScannerReportReader reportReader, @Nullable BuildSoftwareCompositionAnalysisStepProvider provider) { + this.wrapped = provider != null ? provider.get(reportReader) : null; } @Override public String getDescription() { - return "Compute software composition analysis"; + return wrapped != null ? wrapped.getDescription() : "Software composition analysis unavailable"; } @Override public void execute(Context context) { - LOG.info("BuildSoftwareCompositionAnalysisStep start"); - if (tideliftApiKey == null) { - LOG.warn("TIDELIFT_API_KEY is not set"); - return; - } - - var zipFile = reportReader.readDependencyFilesZip(); - if (zipFile == null) { - LOG.warn("No dependency files found"); - return; - } - try { - analyzeDependencyFiles(zipFile); - } catch (IOException e) { - LOG.error("Invalid dependency-files.zip", e); + if (wrapped != null) { + wrapped.execute(context); } - LOG.info("BuildSoftwareCompositionAnalysisStep end"); - } - - private void analyzeDependencyFiles(File zipFile) throws IOException { - MultipartBody multipartBody = new MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart( - "files[]", - "dependency-files.zip", - RequestBody.create(zipFile, MediaType.parse("application/zip"))) - .build(); - - Request request = new Request.Builder() - .url(tideliftUploadUrl) - .addHeader("Authorization", tideliftApiKey) - .post(multipartBody) - .build(); - - try (Response response = okHttpClient.newCall(request).execute()) { - if (response.isSuccessful()) { - var json = response.body().string(); - // TODO: instead of logging, save to a Holder to be consumed by a Persist ComputationStep - LOG.info("Processing successful! Tidelift Response:{}", json); - GsonAnalysisResponse analysisResponse = new Gson().fromJson(json, GsonAnalysisResponse.class); - - analysisResponse.releases.forEach(release -> LOG.info("Release: {} VulnerabilityCount: {}", release.purl, release.violations.stream().count())); - - } else { - LOG.warn("Processing failed. Tidelift Response code:{} message:{}", response.code(), response.message()); - } - } - } - - public record GsonAnalysisResponse(List<GsonRelease> releases, List<GsonRelease> missing_releases) { - } - - public record GsonRelease(String platform, String name, String version, String purl, GsonLicense license, - List<GsonViolation> violations, Boolean direct, String type, String requirement, - String manifest_source, String lockfile_source) { - } - - public record GsonLicense(String expression, String source) { - } - - public record GsonViolation(String catalog_standard, GsonVulnerability vulnerability) { - } - - public record GsonVulnerability(String id, String severity, String description, String date, String url, - String severity_rating, String epss_percentile, String epss_probability, - boolean known_exploited) { } } diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepTest.java new file mode 100644 index 00000000000..6045a3a3cbb --- /dev/null +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BuildSoftwareCompositionAnalysisStepTest.java @@ -0,0 +1,58 @@ +/* + * 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.ce.task.projectanalysis.step; + +import org.junit.jupiter.api.Test; +import org.sonar.ce.common.scanner.ScannerReportReader; +import org.sonar.ce.task.step.ComputationStep; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatNoException; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +class BuildSoftwareCompositionAnalysisStepTest { + + @Test + void shouldSkipScaStepIfNotAvailable() { + var underTest = new BuildSoftwareCompositionAnalysisStep(mock(ScannerReportReader.class), null); + + assertThat(underTest.getDescription()).isEqualTo("Software composition analysis unavailable"); + + assertThatNoException().isThrownBy(() -> underTest.execute(mock(ComputationStep.Context.class))); + } + + @Test + void shouldWrapScaStepIfAvailable() { + var wrappedStep = mock(ComputationStep.class); + when(wrappedStep.getDescription()).thenReturn("wrapped step"); + + var underTest = new BuildSoftwareCompositionAnalysisStep(mock(ScannerReportReader.class), r -> wrappedStep); + + assertThat(underTest.getDescription()).isEqualTo("wrapped step"); + + var context = mock(ComputationStep.Context.class); + underTest.execute(context); + + verify(wrappedStep).execute(context); + } + +} |