diff --git a/.github/issuehunt-shield-v1.svg b/.github/issuehunt-shield-v1.svg deleted file mode 100644 index 64c30905..00000000 --- a/.github/issuehunt-shield-v1.svg +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index fc485fb1..4ea8edc0 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -9,8 +9,8 @@ on: - master jobs: - build: - runs-on: ubuntu-latest + sonar-and-semantic-release: + runs-on: 'ubuntu-latest' strategy: matrix: gradle: ['7.0', '7.3.3'] @@ -24,15 +24,11 @@ jobs: distribution: 'temurin' java-version: 11 cache: gradle - - name: Read .nvmrc - run: echo "##[set-output name=NVMRC;]$(cat .nvmrc)" - id: nvm - name: Set up Node.js uses: actions/setup-node@v2 with: - node-version: '${{ steps.nvm.outputs.NVMRC }}' + node-version-file: '.nvmrc' cache: npm - if: matrix.gradle == '7.0' - name: Gradle Wrapper Validation uses: gradle/wrapper-validation-action@v1 - name: Build with Gradle @@ -40,7 +36,7 @@ jobs: SIGNING_KEY: ${{ secrets.SIGNING_KEY }} SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} run: | - ./gradlew build --no-daemon -Dsnom.test.functional.gradle=${{ matrix.gradle }} + ./gradlew build --no-daemon echo Verifying the java version used in class files... cd build/classes/groovy/main javap -v com.github.spotbugs.snom.SpotBugsPlugin | grep -q 'major version: 52' @@ -51,7 +47,6 @@ jobs: rm -rf build/libs/*.jar npm ci npx semantic-release - if: matrix.gradle == '7.0' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Run SonarQube Scanner @@ -59,12 +54,42 @@ jobs: if [ "$SONAR_LOGIN" != "" ]; then ./gradlew sonarqube -Dsonar.login=$SONAR_LOGIN --no-daemon fi - if: matrix.gradle == '7.0' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_LOGIN: ${{ secrets.SONAR_LOGIN }} - uses: actions/upload-artifact@v2 if: always() with: - name: reports (Gradle ${{ matrix.gradle }}) + name: reports + path: build/reports + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + gradle: ['7.0', '7.3.3'] + os: ['ubuntu-latest', 'windows-latest'] + exclude: + # used in the sonar-and-semantic-release job + - gradle: '7.3.3' + os: 'ubuntu-latest' + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: 11 + cache: gradle + - name: Build with Gradle + env: + SIGNING_KEY: ${{ secrets.SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} + run: | + ./gradlew build --no-daemon "-Dsnom.test.functional.gradle=${{ matrix.gradle }}" + - uses: actions/upload-artifact@v2 + if: always() + with: + name: reports (Gradle ${{ matrix.gradle }} on ${{ matrix.os }}) path: build/reports diff --git a/.nvmrc b/.nvmrc index d3e14081..b6a7d89c 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1,4 +1 @@ 16 - -# semantic-release v18.0.0 recommends to use 14.17 or above -# https://github.com/semantic-release/semantic-release/releases/tag/v18.0.0 diff --git a/README.md b/README.md index e3d978e0..ca220942 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,6 @@ This is the official Gradle Plugin to run SpotBugs on Java and Android project. [![Debt](https://sonarcloud.io/api/project_badges/measure?project=com.github.spotbugs.gradle&metric=sqale_index)](https://sonarcloud.io/component_measures/domain/Maintainability?id=com.github.spotbugs.gradle) [![Gradle Plugin Portal](https://img.shields.io/maven-metadata/v?label=Plugin+Portal&metadataUrl=https%3A%2F%2Fplugins.gradle.org%2Fm2%2Fcom%2Fgithub%2Fspotbugs%2Fcom.github.spotbugs.gradle.plugin%2Fmaven-metadata.xml)](https://plugins.gradle.org/plugin/com.github.spotbugs) [![](https://img.shields.io/badge/groovydoc-latest-blightgreen?logo=groovy)](https://spotbugs-gradle-plugin.netlify.com/com/github/spotbugs/snom/package-summary.html) -[![Issue Hunt](./.github/issuehunt-shield-v1.svg)](https://issuehunt.io/r/spotbugs/spotbugs-gradle-plugin) ## Goal diff --git a/build.gradle b/build.gradle index f8ff122e..5bbf0502 100644 --- a/build.gradle +++ b/build.gradle @@ -3,10 +3,10 @@ plugins { id 'java-gradle-plugin' id 'jacoco' id 'signing' - id 'com.gradle.plugin-publish' version '0.19.0' + id 'com.gradle.plugin-publish' version '0.20.0' id 'com.github.spotbugs.gradle-plugin' id 'org.sonarqube' version '3.3' - id 'com.github.spotbugs' version '5.0.3' + id 'com.github.spotbugs' version '5.0.5' } sourceCompatibility = JavaVersion.VERSION_1_8 @@ -21,10 +21,10 @@ repositories { } ext { - errorproneVersion = '2.10.0' + errorproneVersion = '2.11.0' spotBugsVersion = '4.5.3' slf4jVersion = '1.8.0-beta4' - androidGradlePluginVersion = '7.0.4' + androidGradlePluginVersion = '7.1.1' } dependencies { diff --git a/package-lock.json b/package-lock.json index ebf36f39..ff2ddf3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,15 +6,15 @@ "": { "name": "spotbugs-gradle-plugin", "devDependencies": { - "@commitlint/cli": "^16.0.1", + "@commitlint/cli": "^16.1.0", "@commitlint/config-conventional": "^16.0.0", "conventional-changelog-conventionalcommits": "^4.6.3", - "gradle-semantic-release-plugin": "1.6.2", + "gradle-semantic-release-plugin": "1.6.4", "husky": "^7.0.4", - "lint-staged": "^12.1.5", + "lint-staged": "^12.3.3", "pinst": "^2.1.6", "prettier": "^2.5.0", - "semantic-release": "18.0.1" + "semantic-release": "19.0.2" }, "engines": { "node": "^16.13.0" @@ -39,14 +39,14 @@ } }, "node_modules/@commitlint/cli": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-16.0.1.tgz", - "integrity": "sha512-61gGRy65WiVDRsqP0dAR2fAgE3qrTBW3fgz9MySv32y5Ib3ZXXDDq6bGyQqi2dSaPuDYzNCRwwlC7mmQM73T/g==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-16.1.0.tgz", + "integrity": "sha512-x5L1knvA3isRWBRVQx+Q6D45pA9139a2aZQYpxkljMG0dj4UHZkCnsYWpnGalxPxASI7nrI0KedKfS2YeQ55cQ==", "dev": true, "dependencies": { "@commitlint/format": "^16.0.0", "@commitlint/lint": "^16.0.0", - "@commitlint/load": "^16.0.0", + "@commitlint/load": "^16.1.0", "@commitlint/read": "^16.0.0", "@commitlint/types": "^16.0.0", "lodash": "^4.17.19", @@ -91,9 +91,9 @@ } }, "node_modules/@commitlint/config-validator": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-16.0.0.tgz", - "integrity": "sha512-i80DGlo1FeC5jZpuoNV9NIjQN/m2dDV3jYGWg+1Wr+KldptkUHXj+6GY1Akll66lJ3D8s6aUGi3comPLHPtWHg==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-16.1.0.tgz", + "integrity": "sha512-2cHeZPNTuf1JWbMqyA46MkExor5HMSgv8JrdmzEakUbJHUreh35/wN00FJf57qGs134exQW2thiSQ1IJUsVx2Q==", "dev": true, "dependencies": { "@commitlint/types": "^16.0.0", @@ -237,14 +237,14 @@ } }, "node_modules/@commitlint/load": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-16.0.0.tgz", - "integrity": "sha512-7WhrGCkP6K/XfjBBguLkkI2XUdiiIyMGlNsSoSqgRNiD352EiffhFEApMy1/XOU+viwBBm/On0n5p0NC7e9/4A==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-16.1.0.tgz", + "integrity": "sha512-MtlEhKjP8jAF85jjX4mw8DUUwCxKsCgAc865hhpnwxjrfBcmGP7Up2AFE/M3ZMGDmSl1X1TMybQk/zohj8Cqdg==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^16.0.0", + "@commitlint/config-validator": "^16.1.0", "@commitlint/execute-rule": "^16.0.0", - "@commitlint/resolve-extends": "^16.0.0", + "@commitlint/resolve-extends": "^16.1.0", "@commitlint/types": "^16.0.0", "chalk": "^4.0.0", "cosmiconfig": "^7.0.0", @@ -366,12 +366,12 @@ } }, "node_modules/@commitlint/resolve-extends": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-16.0.0.tgz", - "integrity": "sha512-Z/w9MAQUcxeawpCLtjmkVNXAXOmB2nhW+LYmHEZcx9O6UTauF/1+uuZ2/r0MtzTe1qw2JD+1QHVhEWYHVPlkdA==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-16.1.0.tgz", + "integrity": "sha512-8182s6AFoUFX6+FT1PgQDt15nO2ogdR/EN8SYVAdhNXw1rLz8kT5saB/ICw567GuRAUgFTUMGCXy3ctMOXPEDg==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^16.0.0", + "@commitlint/config-validator": "^16.1.0", "@commitlint/types": "^16.0.0", "import-fresh": "^3.0.0", "lodash": "^4.17.19", @@ -644,16 +644,16 @@ } }, "node_modules/@octokit/request": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", - "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", "dev": true, "dependencies": { "@octokit/endpoint": "^6.0.1", "@octokit/request-error": "^2.1.0", "@octokit/types": "^6.16.1", "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" } }, @@ -756,9 +756,9 @@ "dev": true }, "node_modules/@semantic-release/npm": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-8.0.3.tgz", - "integrity": "sha512-Qbg7x/O1t3sJqsv2+U0AL4Utgi/ymlCiUdt67Ftz9HL9N8aDML4t2tE0T9MBaYdqwD976hz57DqHHXKVppUBoA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.0.tgz", + "integrity": "sha512-hj2jqayS2SPUmFtCMCOQMX975uMDfRoymj1HvMSwYdaoI6hVZvhrTFPBgJeM85O0C+G3IFviAUar5gel/1VGDQ==", "dev": true, "dependencies": { "@semantic-release/error": "^3.0.0", @@ -768,7 +768,7 @@ "lodash": "^4.17.15", "nerf-dart": "^1.0.0", "normalize-url": "^6.0.0", - "npm": "^7.0.0", + "npm": "^8.3.0", "rc": "^1.2.8", "read-pkg": "^5.0.0", "registry-auth-token": "^4.0.0", @@ -776,10 +776,10 @@ "tempy": "^1.0.0" }, "engines": { - "node": ">=14.17" + "node": ">=16 || ^14.17" }, "peerDependencies": { - "semantic-release": ">=18.0.0" + "semantic-release": ">=19.0.0" } }, "node_modules/@semantic-release/release-notes-generator": { @@ -846,9 +846,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "17.0.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.5.tgz", - "integrity": "sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==", + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", + "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==", "dev": true, "peer": true }, @@ -930,17 +930,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -1146,19 +1135,18 @@ } }, "node_modules/cli-table3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", + "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", "dev": true, "dependencies": { - "object-assign": "^4.1.0", "string-width": "^4.2.0" }, "engines": { "node": "10.* || >= 12.*" }, "optionalDependencies": { - "colors": "^1.1.2" + "colors": "1.4.0" } }, "node_modules/cli-truncate": { @@ -1330,14 +1318,14 @@ } }, "node_modules/conventional-changelog-writer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.0.tgz", - "integrity": "sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", "dev": true, "dependencies": { "conventional-commits-filter": "^2.0.7", "dateformat": "^3.0.0", - "handlebars": "^4.7.6", + "handlebars": "^4.7.7", "json-stringify-safe": "^5.0.1", "lodash": "^4.17.15", "meow": "^8.0.0", @@ -1416,9 +1404,9 @@ } }, "node_modules/cosmiconfig-typescript-loader": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.2.tgz", - "integrity": "sha512-27ZehvijYqAKVzta5xtZBS3PAliC8CmnWkGXN0vgxAZz7yqxpMjf3aG7flxF5rEiu8FAD7nZZXtOI+xUGn+bVg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.3.tgz", + "integrity": "sha512-ARo21VjxdacJUcHxgVMEYNIoVPYiuKOEwWBIYej4M22+pEbe3LzKgmht2UPM+0u7/T/KnZf2r/5IzHv2Nwz+/w==", "dev": true, "dependencies": { "cosmiconfig": "^7", @@ -1620,20 +1608,6 @@ "dev": true, "license": "MIT" }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/env-ci": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", @@ -1723,9 +1697,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1735,7 +1709,7 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fast-json-stable-stringify": { @@ -1755,8 +1729,9 @@ }, "node_modules/figures": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -1981,16 +1956,16 @@ } }, "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { @@ -2007,9 +1982,9 @@ "dev": true }, "node_modules/gradle-semantic-release-plugin": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/gradle-semantic-release-plugin/-/gradle-semantic-release-plugin-1.6.2.tgz", - "integrity": "sha512-TgyHP5S/gauc2xJwvruyKoRzHumgUi4UYhGW41PtL0X0bb7S95JblmN/CLWA38LsA9fGMvFmgrwcpLrUd7YI5Q==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/gradle-semantic-release-plugin/-/gradle-semantic-release-plugin-1.6.4.tgz", + "integrity": "sha512-Ykk62NAdf0PN5Yfd4mLW+G7/yFQdBlEvyOPrxRv+Ba2pqhM/5aDHPFURNLb0udRUd1Z1Oq9zrYlD5+MkjuzmHQ==", "dev": true, "dependencies": { "promisified-properties": "^2.0.3", @@ -2019,7 +1994,7 @@ "node": "~16.13.1" }, "peerDependencies": { - "semantic-release": "^18.0.0" + "semantic-release": "^19.0.2" } }, "node_modules/gradle-semantic-release-plugin/node_modules/split2": { @@ -2154,9 +2129,9 @@ } }, "node_modules/ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true, "engines": { "node": ">= 4" @@ -2480,9 +2455,9 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.5.tgz", - "integrity": "sha512-WyKb+0sNKDTd1LwwAfTBPp0XmdaKkAOEbg4oHE4Kq2+oQVchg/VAcjVQtSqZih1izNsTURjc2EkhG/syRQUXdA==", + "version": "12.3.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.3.tgz", + "integrity": "sha512-OqcLsqcPOqzvsfkxjeBpZylgJ3SRG1RYqc9LxC6tkt6tNsq1bNVkAixBwX09f6CobcHswzqVOCBpFR1Fck0+ag==", "dev": true, "dependencies": { "cli-truncate": "^3.1.0", @@ -2491,10 +2466,10 @@ "debug": "^4.3.3", "execa": "^5.1.1", "lilconfig": "2.0.4", - "listr2": "^3.13.5", + "listr2": "^4.0.1", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", - "object-inspect": "^1.11.1", + "object-inspect": "^1.12.0", "string-argv": "^0.3.1", "supports-color": "^9.2.1", "yaml": "^1.10.2" @@ -2522,9 +2497,9 @@ } }, "node_modules/listr2": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", - "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.1.tgz", + "integrity": "sha512-D65Nl+zyYHL2jQBGmxtH/pU8koPZo5C8iCNE8EoB04RwPgQG1wuaKwVbeZv9LJpiH4Nxs0FCp+nNcG8OqpniiA==", "dev": true, "dependencies": { "cli-truncate": "^2.1.0", @@ -2532,12 +2507,12 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rfdc": "^1.3.0", - "rxjs": "^7.4.0", + "rxjs": "^7.5.2", "through": "^2.3.8", "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=12" }, "peerDependencies": { "enquirer": ">= 2.3.0 < 3" @@ -2808,102 +2783,74 @@ } }, "node_modules/marked": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", - "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", "dev": true, "bin": { - "marked": "bin/marked" + "marked": "bin/marked.js" }, "engines": { - "node": ">= 10" + "node": ">= 12" } }, "node_modules/marked-terminal": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.2.0.tgz", - "integrity": "sha512-DQfNRV9svZf0Dm9Cf5x5xaVJ1+XjxQW6XjFJ5HFkVyK52SDpj5PCBzS5X5r2w9nHr3mlB0T5201UMLue9fmhUw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz", + "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==", "dev": true, "dependencies": { - "ansi-escapes": "^4.3.1", + "ansi-escapes": "^5.0.0", "cardinal": "^2.1.1", - "chalk": "^4.1.0", - "cli-table3": "^0.6.0", - "node-emoji": "^1.10.0", - "supports-hyperlinks": "^2.1.0" + "chalk": "^5.0.0", + "cli-table3": "^0.6.1", + "node-emoji": "^1.11.0", + "supports-hyperlinks": "^2.2.0" + }, + "engines": { + "node": ">=14.13.1 || >=16.0.0" }, "peerDependencies": { - "marked": "^1.0.0 || ^2.0.0" + "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" } }, - "node_modules/marked-terminal/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/marked-terminal/node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "type-fest": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/marked-terminal/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", + "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/marked-terminal/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/marked-terminal/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/marked-terminal/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/marked-terminal/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/marked-terminal/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "node": ">=10" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/meow": { @@ -3068,15 +3015,23 @@ } }, "node_modules/node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" }, "engines": { "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/normalize-package-data": { @@ -3115,9 +3070,9 @@ } }, "node_modules/npm": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/npm/-/npm-7.24.2.tgz", - "integrity": "sha512-120p116CE8VMMZ+hk8IAb1inCPk4Dj3VZw29/n2g6UI77urJKVYb7FZUDW8hY+EBnfsjI/2yrobBgFyzo7YpVQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/npm/-/npm-8.3.2.tgz", + "integrity": "sha512-xZAC9GpWNOyiS1TtBqBy0HJpjIVI8zsVXEOEwcmgqYFtqOy7sXUL0ByOrkhfcGmf+akSXz3uOxLYB8aLlYivQQ==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -3174,6 +3129,7 @@ "opener", "pacote", "parse-conflict-json", + "proc-log", "qrcode-terminal", "read", "read-package-json", @@ -3247,6 +3203,7 @@ "opener": "*", "pacote": "*", "parse-conflict-json": "*", + "proc-log": "*", "qrcode-terminal": "*", "read": "*", "read-package-json": "*", @@ -3268,7 +3225,7 @@ "npx": "bin/npx-cli.js" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm-run-path": { @@ -3296,21 +3253,21 @@ "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "2.9.0", + "version": "4.2.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@isaacs/string-locale-compare": "^1.0.1", + "@isaacs/string-locale-compare": "^1.1.0", "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/map-workspaces": "^1.0.2", - "@npmcli/metavuln-calculator": "^1.1.0", + "@npmcli/map-workspaces": "^2.0.0", + "@npmcli/metavuln-calculator": "^2.0.0", "@npmcli/move-file": "^1.1.0", "@npmcli/name-from-folder": "^1.0.1", - "@npmcli/node-gyp": "^1.0.1", + "@npmcli/node-gyp": "^1.0.3", "@npmcli/package-json": "^1.0.1", - "@npmcli/run-script": "^1.8.2", - "bin-links": "^2.2.1", + "@npmcli/run-script": "^2.0.0", + "bin-links": "^3.0.0", "cacache": "^15.0.3", "common-ancestor-path": "^1.0.1", "json-parse-even-better-errors": "^2.3.1", @@ -3321,8 +3278,8 @@ "npm-package-arg": "^8.1.5", "npm-pick-manifest": "^6.1.0", "npm-registry-fetch": "^11.0.0", - "pacote": "^11.3.5", - "parse-conflict-json": "^1.1.1", + "pacote": "^12.0.2", + "parse-conflict-json": "^2.0.1", "proc-log": "^1.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^1.0.1", @@ -3338,17 +3295,17 @@ "arborist": "bin/index.js" }, "engines": { - "node": ">= 10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/@npmcli/ci-detect": { - "version": "1.3.0", + "version": "1.4.0", "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "2.3.0", + "version": "2.4.0", "dev": true, "inBundle": true, "license": "ISC", @@ -3418,7 +3375,7 @@ } }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "1.0.4", + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -3429,18 +3386,22 @@ "read-package-json-fast": "^2.0.1" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "1.1.1", + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "cacache": "^15.0.5", - "pacote": "^11.1.11", + "json-parse-even-better-errors": "^2.3.1", + "pacote": "^12.0.0", "semver": "^7.3.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/@npmcli/move-file": { @@ -3463,7 +3424,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/node-gyp": { - "version": "1.0.2", + "version": "1.0.3", "dev": true, "inBundle": true, "license": "ISC" @@ -3487,14 +3448,14 @@ } }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "1.8.6", + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^1.0.2", "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^7.1.0", + "node-gyp": "^8.2.0", "read-package-json-fast": "^2.0.1" } }, @@ -3526,7 +3487,7 @@ } }, "node_modules/npm/node_modules/agentkeepalive": { - "version": "4.1.4", + "version": "4.2.0", "dev": true, "inBundle": true, "license": "MIT", @@ -3552,22 +3513,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "inBundle": true, - "license": "MIT", - "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" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/npm/node_modules/ansi-regex": { "version": "2.1.1", "dev": true, @@ -3617,7 +3562,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/are-we-there-yet": { - "version": "1.1.6", + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -3635,75 +3580,27 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/asn1": { - "version": "0.2.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/npm/node_modules/assert-plus": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/asynckit": { - "version": "0.4.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/aws-sign2": { - "version": "0.7.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/aws4": { - "version": "1.11.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", "dev": true, "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/npm/node_modules/bin-links": { - "version": "2.2.1", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "cmd-shim": "^4.0.1", - "mkdirp": "^1.0.3", + "mkdirp-infer-owner": "^2.0.0", "npm-normalize-package-bin": "^1.0.0", "read-cmd-shim": "^2.0.0", "rimraf": "^3.0.0", - "write-file-atomic": "^3.0.3" + "write-file-atomic": "^4.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/binary-extensions": { @@ -3760,12 +3657,6 @@ "node": ">= 10" } }, - "node_modules/npm/node_modules/caseless": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0" - }, "node_modules/npm/node_modules/chalk": { "version": "4.1.2", "dev": true, @@ -3813,16 +3704,60 @@ } }, "node_modules/npm/node_modules/cli-columns": { - "version": "3.1.2", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "string-width": "^2.0.0", - "strip-ansi": "^3.0.1" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 4" + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cli-columns/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-columns/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-columns/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, "node_modules/npm/node_modules/cli-table3": { @@ -3906,15 +3841,6 @@ "node": ">=10" } }, - "node_modules/npm/node_modules/code-point-at": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/npm/node_modules/color-convert": { "version": "2.0.1", "dev": true, @@ -3962,18 +3888,6 @@ "wcwidth": "^1.0.0" } }, - "node_modules/npm/node_modules/combined-stream": { - "version": "1.0.8", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", "dev": true, @@ -3992,24 +3906,6 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/core-util-is": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/dashdash": { - "version": "1.14.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/npm/node_modules/debug": { "version": "4.3.2", "dev": true, @@ -4051,16 +3947,7 @@ "clone": "^1.0.2" } }, - "node_modules/npm/node_modules/delayed-stream": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/npm/node_modules/delegates": { + "node_modules/npm/node_modules/delegates": { "version": "1.0.0", "dev": true, "inBundle": true, @@ -4094,16 +3981,6 @@ "node": ">=0.3.1" } }, - "node_modules/npm/node_modules/ecc-jsbn": { - "version": "0.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/npm/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, @@ -4135,48 +4012,12 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/extend": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/extsprintf": { - "version": "1.3.0", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/fastest-levenshtein": { "version": "1.0.12", "dev": true, "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/forever-agent": { - "version": "0.6.1", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, "node_modules/npm/node_modules/fs-minipass": { "version": "2.1.0", "dev": true, @@ -4202,32 +4043,67 @@ "license": "MIT" }, "node_modules/npm/node_modules/gauge": { - "version": "3.0.1", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { + "ansi-regex": "^5.0.1", "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", "signal-exit": "^3.0.0", - "string-width": "^1.0.1 || ^2.0.0", - "strip-ansi": "^3.0.1 || ^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", "wide-align": "^1.1.2" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/npm/node_modules/getpass": { - "version": "0.1.7", + "node_modules/npm/node_modules/gauge/node_modules/string-width": { + "version": "4.2.3", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, "node_modules/npm/node_modules/glob": { @@ -4256,28 +4132,6 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/har-schema": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/har-validator": { - "version": "5.1.5", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/npm/node_modules/has": { "version": "1.0.3", "dev": true, @@ -4306,7 +4160,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/hosted-git-info": { - "version": "4.0.2", + "version": "4.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -4337,21 +4191,6 @@ "node": ">= 6" } }, - "node_modules/npm/node_modules/http-signature": { - "version": "1.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/npm/node_modules/https-proxy-agent": { "version": "5.0.0", "dev": true, @@ -4388,12 +4227,15 @@ } }, "node_modules/npm/node_modules/ignore-walk": { - "version": "3.0.4", + "version": "4.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" } }, "node_modules/npm/node_modules/imurmurhash": { @@ -4491,7 +4333,7 @@ } }, "node_modules/npm/node_modules/is-core-module": { - "version": "2.7.0", + "version": "2.8.0", "dev": true, "inBundle": true, "license": "MIT", @@ -4529,35 +4371,12 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/isstream": { - "version": "0.1.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/jsbn": { - "version": "0.1.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/json-parse-even-better-errors": { "version": "2.3.1", "dev": true, "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/json-schema": { - "version": "0.2.3", - "dev": true, - "inBundle": true - }, - "node_modules/npm/node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/json-stringify-nice": { "version": "1.1.4", "dev": true, @@ -4567,12 +4386,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/json-stringify-safe": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/jsonparse": { "version": "1.3.1", "dev": true, @@ -4582,35 +4395,20 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/jsprim": { - "version": "1.4.1", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "node_modules/npm/node_modules/just-diff": { - "version": "3.1.1", + "version": "5.0.1", "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/just-diff-apply": { - "version": "3.0.0", + "version": "4.0.1", "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { - "version": "4.0.3", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -4621,11 +4419,11 @@ "npm-registry-fetch": "^11.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "2.0.4", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -4636,46 +4434,49 @@ "diff": "^5.0.0", "minimatch": "^3.0.4", "npm-package-arg": "^8.1.4", - "pacote": "^11.3.4", + "pacote": "^12.0.0", "tar": "^6.1.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "2.0.1", + "version": "3.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^2.3.0", + "@npmcli/arborist": "^4.0.0", "@npmcli/ci-detect": "^1.3.0", - "@npmcli/run-script": "^1.8.4", + "@npmcli/run-script": "^2.0.0", "chalk": "^4.1.0", "mkdirp-infer-owner": "^2.0.0", "npm-package-arg": "^8.1.2", - "pacote": "^11.3.1", + "pacote": "^12.0.0", "proc-log": "^1.0.0", "read": "^1.0.7", "read-package-json-fast": "^2.0.2", "walk-up-path": "^1.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "1.1.0", + "version": "2.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^2.5.0" + "@npmcli/arborist": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/libnpmhook": { - "version": "6.0.3", + "version": "7.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -4684,11 +4485,11 @@ "npm-registry-fetch": "^11.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/libnpmorg": { - "version": "2.0.3", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -4697,25 +4498,25 @@ "npm-registry-fetch": "^11.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "2.0.1", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/run-script": "^1.8.3", + "@npmcli/run-script": "^2.0.0", "npm-package-arg": "^8.1.0", - "pacote": "^11.2.6" + "pacote": "^12.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "4.0.2", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -4727,11 +4528,11 @@ "ssri": "^8.0.1" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "3.1.2", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -4739,11 +4540,11 @@ "npm-registry-fetch": "^11.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/libnpmteam": { - "version": "2.0.4", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -4752,20 +4553,23 @@ "npm-registry-fetch": "^11.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/libnpmversion": { - "version": "1.2.1", + "version": "2.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/git": "^2.0.7", - "@npmcli/run-script": "^1.8.4", + "@npmcli/run-script": "^2.0.0", "json-parse-even-better-errors": "^2.3.1", "semver": "^7.3.5", "stringify-package": "^1.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/lru-cache": { @@ -4807,27 +4611,6 @@ "node": ">= 10" } }, - "node_modules/npm/node_modules/mime-db": { - "version": "1.49.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npm/node_modules/mime-types": { - "version": "2.1.32", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/npm/node_modules/minimatch": { "version": "3.0.4", "dev": true, @@ -4841,7 +4624,7 @@ } }, "node_modules/npm/node_modules/minipass": { - "version": "3.1.5", + "version": "3.1.6", "dev": true, "inBundle": true, "license": "ISC", @@ -4988,20 +4771,20 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "7.1.2", + "version": "8.4.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", + "npmlog": "^6.0.0", "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", "which": "^2.0.2" }, "bin": { @@ -5011,66 +4794,6 @@ "node": ">= 10.12.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/aproba": { - "version": "1.2.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/node-gyp/node_modules/gauge": { - "version": "2.7.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": { - "version": "4.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/string-width": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/npm/node_modules/nopt": { "version": "5.0.0", "dev": true, @@ -5155,13 +4878,13 @@ } }, "node_modules/npm/node_modules/npm-packlist": { - "version": "2.2.2", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "glob": "^7.1.6", - "ignore-walk": "^3.0.3", + "ignore-walk": "^4.0.1", "npm-bundled": "^1.1.1", "npm-normalize-package-bin": "^1.0.1" }, @@ -5220,46 +4943,18 @@ "license": "BSD-2-Clause" }, "node_modules/npm/node_modules/npmlog": { - "version": "5.0.1", + "version": "6.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", + "gauge": "^4.0.0", "set-blocking": "^2.0.0" - } - }, - "node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/number-is-nan": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/oauth-sign": { - "version": "0.9.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "*" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/object-assign": { @@ -5305,7 +5000,7 @@ } }, "node_modules/npm/node_modules/pacote": { - "version": "11.3.5", + "version": "12.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -5313,7 +5008,7 @@ "@npmcli/git": "^2.1.0", "@npmcli/installed-package-contents": "^1.0.6", "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^1.8.2", + "@npmcli/run-script": "^2.0.0", "cacache": "^15.0.5", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", @@ -5321,7 +5016,7 @@ "minipass": "^3.1.3", "mkdirp": "^1.0.3", "npm-package-arg": "^8.0.1", - "npm-packlist": "^2.1.4", + "npm-packlist": "^3.0.0", "npm-pick-manifest": "^6.0.0", "npm-registry-fetch": "^11.0.0", "promise-retry": "^2.0.1", @@ -5334,18 +5029,21 @@ "pacote": "lib/bin.js" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/parse-conflict-json": { - "version": "1.1.1", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "just-diff": "^3.0.1", - "just-diff-apply": "^3.0.0" + "json-parse-even-better-errors": "^2.3.1", + "just-diff": "^5.0.1", + "just-diff-apply": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/path-is-absolute": { @@ -5357,12 +5055,6 @@ "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/performance-now": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/proc-log": { "version": "1.0.0", "dev": true, @@ -5415,21 +5107,6 @@ "read": "1" } }, - "node_modules/npm/node_modules/psl": { - "version": "1.8.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/punycode": { - "version": "2.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/npm/node_modules/qrcode-terminal": { "version": "0.12.0", "dev": true, @@ -5438,15 +5115,6 @@ "qrcode-terminal": "bin/qrcode-terminal.js" } }, - "node_modules/npm/node_modules/qs": { - "version": "6.5.2", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, "node_modules/npm/node_modules/read": { "version": "1.0.7", "dev": true, @@ -5511,70 +5179,12 @@ "version": "1.1.0", "dev": true, "inBundle": true, - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "node_modules/npm/node_modules/request": { - "version": "2.88.2", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm/node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/npm/node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" } }, "node_modules/npm/node_modules/retry": { @@ -5625,7 +5235,8 @@ "version": "2.1.2", "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/npm/node_modules/semver": { "version": "7.3.5", @@ -5649,7 +5260,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/signal-exit": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "ISC" @@ -5724,26 +5335,6 @@ "inBundle": true, "license": "CC0-1.0" }, - "node_modules/npm/node_modules/sshpk": { - "version": "1.16.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/npm/node_modules/ssri": { "version": "8.0.1", "dev": true, @@ -5864,32 +5455,25 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/tunnel-agent": { - "version": "0.6.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/tweetnacl": { - "version": "0.14.5", - "dev": true, - "inBundle": true, - "license": "Unlicense" - }, "node_modules/npm/node_modules/typedarray-to-buffer": { - "version": "3.1.5", + "version": "4.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "inBundle": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } + "license": "MIT" }, "node_modules/npm/node_modules/unique-filename": { "version": "1.1.1", @@ -5909,30 +5493,12 @@ "imurmurhash": "^0.1.4" } }, - "node_modules/npm/node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/npm/node_modules/util-deprecate": { "version": "1.0.2", "dev": true, "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/uuid": { - "version": "3.4.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/npm/node_modules/validate-npm-package-license": { "version": "3.0.4", "dev": true, @@ -5952,20 +5518,6 @@ "builtins": "^1.0.3" } }, - "node_modules/npm/node_modules/verror": { - "version": "1.10.0", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/npm/node_modules/walk-up-path": { "version": "1.0.0", "dev": true, @@ -6012,7 +5564,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/write-file-atomic": { - "version": "3.0.3", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -6020,7 +5572,10 @@ "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "typedarray-to-buffer": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/npm/node_modules/yallist": { @@ -6029,19 +5584,10 @@ "inBundle": true, "license": "ISC" }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", - "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6766,20 +6312,14 @@ } }, "node_modules/rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz", + "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==", "dev": true, "dependencies": { - "tslib": "~2.1.0" + "tslib": "^2.1.0" } }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -6787,15 +6327,15 @@ "dev": true }, "node_modules/semantic-release": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-18.0.1.tgz", - "integrity": "sha512-xTdKCaEnCzHr+Fqyhg/5I8P9pvY9z7WHa8TFCYIwcdPbuzAtQShOTzw3VNPsqBT+Yq1kFyBQFBKBYkGOlqWmfA==", + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-19.0.2.tgz", + "integrity": "sha512-7tPonjZxukKECmClhsfyMKDt0GR38feIC2HxgyYaBi+9tDySBLjK/zYDLhh+m6yjnHIJa9eBTKYE7k63ZQcYbw==", "dev": true, "dependencies": { "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/error": "^3.0.0", "@semantic-release/github": "^8.0.0", - "@semantic-release/npm": "^8.0.0", + "@semantic-release/npm": "^9.0.0", "@semantic-release/release-notes-generator": "^10.0.0", "aggregate-error": "^3.0.0", "cosmiconfig": "^7.0.0", @@ -6809,8 +6349,8 @@ "hook-std": "^2.0.0", "hosted-git-info": "^4.0.0", "lodash": "^4.17.21", - "marked": "^2.0.0", - "marked-terminal": "^4.1.1", + "marked": "^4.0.10", + "marked-terminal": "^5.0.0", "micromatch": "^4.0.2", "p-each-series": "^2.1.0", "p-reduce": "^2.0.0", @@ -6825,7 +6365,7 @@ "semantic-release": "bin/semantic-release.js" }, "engines": { - "node": ">=14.17" + "node": ">=16 || ^14.17" } }, "node_modules/semver": { @@ -7346,6 +6886,12 @@ } } }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -7359,9 +6905,9 @@ } }, "node_modules/typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -7372,9 +6918,9 @@ } }, "node_modules/uglify-js": { - "version": "3.14.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", - "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.0.tgz", + "integrity": "sha512-x+xdeDWq7FiORDvyIJ0q/waWd4PhjBNOm5dQUOq2AKC0IEjxOS66Ha9tctiVDGcRQuh69K7fgU5oRuTK4cysSg==", "dev": true, "optional": true, "bin": { @@ -7629,14 +7175,14 @@ } }, "@commitlint/cli": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-16.0.1.tgz", - "integrity": "sha512-61gGRy65WiVDRsqP0dAR2fAgE3qrTBW3fgz9MySv32y5Ib3ZXXDDq6bGyQqi2dSaPuDYzNCRwwlC7mmQM73T/g==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-16.1.0.tgz", + "integrity": "sha512-x5L1knvA3isRWBRVQx+Q6D45pA9139a2aZQYpxkljMG0dj4UHZkCnsYWpnGalxPxASI7nrI0KedKfS2YeQ55cQ==", "dev": true, "requires": { "@commitlint/format": "^16.0.0", "@commitlint/lint": "^16.0.0", - "@commitlint/load": "^16.0.0", + "@commitlint/load": "^16.1.0", "@commitlint/read": "^16.0.0", "@commitlint/types": "^16.0.0", "lodash": "^4.17.19", @@ -7670,9 +7216,9 @@ } }, "@commitlint/config-validator": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-16.0.0.tgz", - "integrity": "sha512-i80DGlo1FeC5jZpuoNV9NIjQN/m2dDV3jYGWg+1Wr+KldptkUHXj+6GY1Akll66lJ3D8s6aUGi3comPLHPtWHg==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-16.1.0.tgz", + "integrity": "sha512-2cHeZPNTuf1JWbMqyA46MkExor5HMSgv8JrdmzEakUbJHUreh35/wN00FJf57qGs134exQW2thiSQ1IJUsVx2Q==", "dev": true, "requires": { "@commitlint/types": "^16.0.0", @@ -7779,14 +7325,14 @@ } }, "@commitlint/load": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-16.0.0.tgz", - "integrity": "sha512-7WhrGCkP6K/XfjBBguLkkI2XUdiiIyMGlNsSoSqgRNiD352EiffhFEApMy1/XOU+viwBBm/On0n5p0NC7e9/4A==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-16.1.0.tgz", + "integrity": "sha512-MtlEhKjP8jAF85jjX4mw8DUUwCxKsCgAc865hhpnwxjrfBcmGP7Up2AFE/M3ZMGDmSl1X1TMybQk/zohj8Cqdg==", "dev": true, "requires": { - "@commitlint/config-validator": "^16.0.0", + "@commitlint/config-validator": "^16.1.0", "@commitlint/execute-rule": "^16.0.0", - "@commitlint/resolve-extends": "^16.0.0", + "@commitlint/resolve-extends": "^16.1.0", "@commitlint/types": "^16.0.0", "chalk": "^4.0.0", "cosmiconfig": "^7.0.0", @@ -7877,12 +7423,12 @@ } }, "@commitlint/resolve-extends": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-16.0.0.tgz", - "integrity": "sha512-Z/w9MAQUcxeawpCLtjmkVNXAXOmB2nhW+LYmHEZcx9O6UTauF/1+uuZ2/r0MtzTe1qw2JD+1QHVhEWYHVPlkdA==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-16.1.0.tgz", + "integrity": "sha512-8182s6AFoUFX6+FT1PgQDt15nO2ogdR/EN8SYVAdhNXw1rLz8kT5saB/ICw567GuRAUgFTUMGCXy3ctMOXPEDg==", "dev": true, "requires": { - "@commitlint/config-validator": "^16.0.0", + "@commitlint/config-validator": "^16.1.0", "@commitlint/types": "^16.0.0", "import-fresh": "^3.0.0", "lodash": "^4.17.19", @@ -8098,16 +7644,16 @@ } }, "@octokit/request": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", - "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", "dev": true, "requires": { "@octokit/endpoint": "^6.0.1", "@octokit/request-error": "^2.1.0", "@octokit/types": "^6.16.1", "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" } }, @@ -8197,9 +7743,9 @@ } }, "@semantic-release/npm": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-8.0.3.tgz", - "integrity": "sha512-Qbg7x/O1t3sJqsv2+U0AL4Utgi/ymlCiUdt67Ftz9HL9N8aDML4t2tE0T9MBaYdqwD976hz57DqHHXKVppUBoA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.0.tgz", + "integrity": "sha512-hj2jqayS2SPUmFtCMCOQMX975uMDfRoymj1HvMSwYdaoI6hVZvhrTFPBgJeM85O0C+G3IFviAUar5gel/1VGDQ==", "dev": true, "requires": { "@semantic-release/error": "^3.0.0", @@ -8209,7 +7755,7 @@ "lodash": "^4.17.15", "nerf-dart": "^1.0.0", "normalize-url": "^6.0.0", - "npm": "^7.0.0", + "npm": "^8.3.0", "rc": "^1.2.8", "read-pkg": "^5.0.0", "registry-auth-token": "^4.0.0", @@ -8272,9 +7818,9 @@ "dev": true }, "@types/node": { - "version": "17.0.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.5.tgz", - "integrity": "sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==", + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", + "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==", "dev": true, "peer": true }, @@ -8335,14 +7881,6 @@ "uri-js": "^4.2.2" } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "optional": true, - "peer": true - }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -8494,13 +8032,12 @@ } }, "cli-table3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", + "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", "dev": true, "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", + "colors": "1.4.0", "string-width": "^4.2.0" } }, @@ -8629,14 +8166,14 @@ } }, "conventional-changelog-writer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.0.tgz", - "integrity": "sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", "dev": true, "requires": { "conventional-commits-filter": "^2.0.7", "dateformat": "^3.0.0", - "handlebars": "^4.7.6", + "handlebars": "^4.7.7", "json-stringify-safe": "^5.0.1", "lodash": "^4.17.15", "meow": "^8.0.0", @@ -8695,9 +8232,9 @@ } }, "cosmiconfig-typescript-loader": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.2.tgz", - "integrity": "sha512-27ZehvijYqAKVzta5xtZBS3PAliC8CmnWkGXN0vgxAZz7yqxpMjf3aG7flxF5rEiu8FAD7nZZXtOI+xUGn+bVg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.3.tgz", + "integrity": "sha512-ARo21VjxdacJUcHxgVMEYNIoVPYiuKOEwWBIYej4M22+pEbe3LzKgmht2UPM+0u7/T/KnZf2r/5IzHv2Nwz+/w==", "dev": true, "requires": { "cosmiconfig": "^7", @@ -8841,17 +8378,6 @@ "version": "8.0.0", "dev": true }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, "env-ci": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", @@ -8912,9 +8438,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -8941,6 +8467,8 @@ }, "figures": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -9100,16 +8628,16 @@ } }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, @@ -9120,9 +8648,9 @@ "dev": true }, "gradle-semantic-release-plugin": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/gradle-semantic-release-plugin/-/gradle-semantic-release-plugin-1.6.2.tgz", - "integrity": "sha512-TgyHP5S/gauc2xJwvruyKoRzHumgUi4UYhGW41PtL0X0bb7S95JblmN/CLWA38LsA9fGMvFmgrwcpLrUd7YI5Q==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/gradle-semantic-release-plugin/-/gradle-semantic-release-plugin-1.6.4.tgz", + "integrity": "sha512-Ykk62NAdf0PN5Yfd4mLW+G7/yFQdBlEvyOPrxRv+Ba2pqhM/5aDHPFURNLb0udRUd1Z1Oq9zrYlD5+MkjuzmHQ==", "dev": true, "requires": { "promisified-properties": "^2.0.3", @@ -9218,9 +8746,9 @@ "dev": true }, "ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "import-fresh": { @@ -9454,9 +8982,9 @@ "dev": true }, "lint-staged": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.5.tgz", - "integrity": "sha512-WyKb+0sNKDTd1LwwAfTBPp0XmdaKkAOEbg4oHE4Kq2+oQVchg/VAcjVQtSqZih1izNsTURjc2EkhG/syRQUXdA==", + "version": "12.3.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.3.tgz", + "integrity": "sha512-OqcLsqcPOqzvsfkxjeBpZylgJ3SRG1RYqc9LxC6tkt6tNsq1bNVkAixBwX09f6CobcHswzqVOCBpFR1Fck0+ag==", "dev": true, "requires": { "cli-truncate": "^3.1.0", @@ -9465,10 +8993,10 @@ "debug": "^4.3.3", "execa": "^5.1.1", "lilconfig": "2.0.4", - "listr2": "^3.13.5", + "listr2": "^4.0.1", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", - "object-inspect": "^1.11.1", + "object-inspect": "^1.12.0", "string-argv": "^0.3.1", "supports-color": "^9.2.1", "yaml": "^1.10.2" @@ -9483,9 +9011,9 @@ } }, "listr2": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", - "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.1.tgz", + "integrity": "sha512-D65Nl+zyYHL2jQBGmxtH/pU8koPZo5C8iCNE8EoB04RwPgQG1wuaKwVbeZv9LJpiH4Nxs0FCp+nNcG8OqpniiA==", "dev": true, "requires": { "cli-truncate": "^2.1.0", @@ -9493,7 +9021,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rfdc": "^1.3.0", - "rxjs": "^7.4.0", + "rxjs": "^7.5.2", "through": "^2.3.8", "wrap-ansi": "^7.0.0" }, @@ -9700,73 +9228,45 @@ "dev": true }, "marked": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", - "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", "dev": true }, "marked-terminal": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.2.0.tgz", - "integrity": "sha512-DQfNRV9svZf0Dm9Cf5x5xaVJ1+XjxQW6XjFJ5HFkVyK52SDpj5PCBzS5X5r2w9nHr3mlB0T5201UMLue9fmhUw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz", + "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==", "dev": true, "requires": { - "ansi-escapes": "^4.3.1", + "ansi-escapes": "^5.0.0", "cardinal": "^2.1.1", - "chalk": "^4.1.0", - "cli-table3": "^0.6.0", - "node-emoji": "^1.10.0", - "supports-hyperlinks": "^2.1.0" + "chalk": "^5.0.0", + "cli-table3": "^0.6.1", + "node-emoji": "^1.11.0", + "supports-hyperlinks": "^2.2.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", "dev": true, "requires": { - "color-convert": "^2.0.1" + "type-fest": "^1.0.2" } }, "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", + "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==", "dev": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -9893,9 +9393,9 @@ } }, "node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dev": true, "requires": { "whatwg-url": "^5.0.0" @@ -9924,9 +9424,9 @@ "dev": true }, "npm": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/npm/-/npm-7.24.2.tgz", - "integrity": "sha512-120p116CE8VMMZ+hk8IAb1inCPk4Dj3VZw29/n2g6UI77urJKVYb7FZUDW8hY+EBnfsjI/2yrobBgFyzo7YpVQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/npm/-/npm-8.3.2.tgz", + "integrity": "sha512-xZAC9GpWNOyiS1TtBqBy0HJpjIVI8zsVXEOEwcmgqYFtqOy7sXUL0ByOrkhfcGmf+akSXz3uOxLYB8aLlYivQQ==", "dev": true, "requires": { "@isaacs/string-locale-compare": "*", @@ -9984,6 +9484,7 @@ "opener": "*", "pacote": "*", "parse-conflict-json": "*", + "proc-log": "*", "qrcode-terminal": "*", "read": "*", "read-package-json": "*", @@ -10012,20 +9513,20 @@ "dev": true }, "@npmcli/arborist": { - "version": "2.9.0", + "version": "4.2.1", "bundled": true, "dev": true, "requires": { - "@isaacs/string-locale-compare": "^1.0.1", + "@isaacs/string-locale-compare": "^1.1.0", "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/map-workspaces": "^1.0.2", - "@npmcli/metavuln-calculator": "^1.1.0", + "@npmcli/map-workspaces": "^2.0.0", + "@npmcli/metavuln-calculator": "^2.0.0", "@npmcli/move-file": "^1.1.0", "@npmcli/name-from-folder": "^1.0.1", - "@npmcli/node-gyp": "^1.0.1", + "@npmcli/node-gyp": "^1.0.3", "@npmcli/package-json": "^1.0.1", - "@npmcli/run-script": "^1.8.2", - "bin-links": "^2.2.1", + "@npmcli/run-script": "^2.0.0", + "bin-links": "^3.0.0", "cacache": "^15.0.3", "common-ancestor-path": "^1.0.1", "json-parse-even-better-errors": "^2.3.1", @@ -10036,8 +9537,8 @@ "npm-package-arg": "^8.1.5", "npm-pick-manifest": "^6.1.0", "npm-registry-fetch": "^11.0.0", - "pacote": "^11.3.5", - "parse-conflict-json": "^1.1.1", + "pacote": "^12.0.2", + "parse-conflict-json": "^2.0.1", "proc-log": "^1.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^1.0.1", @@ -10051,12 +9552,12 @@ } }, "@npmcli/ci-detect": { - "version": "1.3.0", + "version": "1.4.0", "bundled": true, "dev": true }, "@npmcli/config": { - "version": "2.3.0", + "version": "2.4.0", "bundled": true, "dev": true, "requires": { @@ -10109,7 +9610,7 @@ } }, "@npmcli/map-workspaces": { - "version": "1.0.4", + "version": "2.0.0", "bundled": true, "dev": true, "requires": { @@ -10120,12 +9621,13 @@ } }, "@npmcli/metavuln-calculator": { - "version": "1.1.1", + "version": "2.0.0", "bundled": true, "dev": true, "requires": { "cacache": "^15.0.5", - "pacote": "^11.1.11", + "json-parse-even-better-errors": "^2.3.1", + "pacote": "^12.0.0", "semver": "^7.3.2" } }, @@ -10144,7 +9646,7 @@ "dev": true }, "@npmcli/node-gyp": { - "version": "1.0.2", + "version": "1.0.3", "bundled": true, "dev": true }, @@ -10165,13 +9667,13 @@ } }, "@npmcli/run-script": { - "version": "1.8.6", + "version": "2.0.0", "bundled": true, "dev": true, "requires": { "@npmcli/node-gyp": "^1.0.2", "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^7.1.0", + "node-gyp": "^8.2.0", "read-package-json-fast": "^2.0.1" } }, @@ -10194,7 +9696,7 @@ } }, "agentkeepalive": { - "version": "4.1.4", + "version": "4.2.0", "bundled": true, "dev": true, "requires": { @@ -10212,17 +9714,6 @@ "indent-string": "^4.0.0" } }, - "ajv": { - "version": "6.12.6", - "bundled": true, - "dev": true, - "requires": { - "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-regex": { "version": "2.1.1", "bundled": true, @@ -10257,7 +9748,7 @@ "dev": true }, "are-we-there-yet": { - "version": "1.1.6", + "version": "2.0.0", "bundled": true, "dev": true, "requires": { @@ -10270,58 +9761,22 @@ "bundled": true, "dev": true }, - "asn1": { - "version": "0.2.4", - "bundled": true, - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "bundled": true, - "dev": true - }, - "aws4": { - "version": "1.11.0", - "bundled": true, - "dev": true - }, "balanced-match": { "version": "1.0.2", "bundled": true, "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "bin-links": { - "version": "2.2.1", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { "cmd-shim": "^4.0.1", - "mkdirp": "^1.0.3", + "mkdirp-infer-owner": "^2.0.0", "npm-normalize-package-bin": "^1.0.0", "read-cmd-shim": "^2.0.0", "rimraf": "^3.0.0", - "write-file-atomic": "^3.0.3" + "write-file-atomic": "^4.0.0" } }, "binary-extensions": { @@ -10368,11 +9823,6 @@ "unique-filename": "^1.1.1" } }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, "chalk": { "version": "4.1.2", "bundled": true, @@ -10401,12 +9851,42 @@ "dev": true }, "cli-columns": { - "version": "3.1.2", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "string-width": "^2.0.0", - "strip-ansi": "^3.0.1" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "4.2.3", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "cli-table3": { @@ -10462,11 +9942,6 @@ "mkdirp-infer-owner": "^2.0.0" } }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, "color-convert": { "version": "2.0.1", "bundled": true, @@ -10500,14 +9975,6 @@ "wcwidth": "^1.0.0" } }, - "combined-stream": { - "version": "1.0.8", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, "common-ancestor-path": { "version": "1.0.1", "bundled": true, @@ -10523,19 +9990,6 @@ "bundled": true, "dev": true }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "debug": { "version": "4.3.2", "bundled": true, @@ -10564,11 +10018,6 @@ "clone": "^1.0.2" } }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "delegates": { "version": "1.0.0", "bundled": true, @@ -10593,15 +10042,6 @@ "bundled": true, "dev": true }, - "ecc-jsbn": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "emoji-regex": { "version": "8.0.0", "bundled": true, @@ -10626,36 +10066,11 @@ "bundled": true, "dev": true }, - "extend": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "bundled": true, - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "bundled": true, - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, "fastest-levenshtein": { "version": "1.0.12", "bundled": true, "dev": true }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true - }, "fs-minipass": { "version": "2.1.0", "bundled": true, @@ -10675,27 +10090,49 @@ "dev": true }, "gauge": { - "version": "3.0.1", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { + "ansi-regex": "^5.0.1", "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", "signal-exit": "^3.0.0", - "string-width": "^1.0.1 || ^2.0.0", - "strip-ansi": "^3.0.1 || ^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", "wide-align": "^1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "4.2.3", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "glob": { @@ -10716,20 +10153,6 @@ "bundled": true, "dev": true }, - "har-schema": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "bundled": true, - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, "has": { "version": "1.0.3", "bundled": true, @@ -10749,7 +10172,7 @@ "dev": true }, "hosted-git-info": { - "version": "4.0.2", + "version": "4.1.0", "bundled": true, "dev": true, "requires": { @@ -10771,16 +10194,6 @@ "debug": "4" } }, - "http-signature": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "https-proxy-agent": { "version": "5.0.0", "bundled": true, @@ -10808,7 +10221,7 @@ } }, "ignore-walk": { - "version": "3.0.4", + "version": "4.0.1", "bundled": true, "dev": true, "requires": { @@ -10882,7 +10295,7 @@ } }, "is-core-module": { - "version": "2.7.0", + "version": "2.8.0", "bundled": true, "dev": true, "requires": { @@ -10909,69 +10322,33 @@ "bundled": true, "dev": true }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, "json-parse-even-better-errors": { "version": "2.3.1", "bundled": true, "dev": true }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "bundled": true, - "dev": true - }, "json-stringify-nice": { "version": "1.1.4", "bundled": true, "dev": true }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, "jsonparse": { "version": "1.3.1", "bundled": true, "dev": true }, - "jsprim": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "just-diff": { - "version": "3.1.1", + "version": "5.0.1", "bundled": true, "dev": true }, "just-diff-apply": { - "version": "3.0.0", + "version": "4.0.1", "bundled": true, "dev": true }, "libnpmaccess": { - "version": "4.0.3", + "version": "5.0.0", "bundled": true, "dev": true, "requires": { @@ -10982,7 +10359,7 @@ } }, "libnpmdiff": { - "version": "2.0.4", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { @@ -10992,22 +10369,22 @@ "diff": "^5.0.0", "minimatch": "^3.0.4", "npm-package-arg": "^8.1.4", - "pacote": "^11.3.4", + "pacote": "^12.0.0", "tar": "^6.1.0" } }, "libnpmexec": { - "version": "2.0.1", + "version": "3.0.2", "bundled": true, "dev": true, "requires": { - "@npmcli/arborist": "^2.3.0", + "@npmcli/arborist": "^4.0.0", "@npmcli/ci-detect": "^1.3.0", - "@npmcli/run-script": "^1.8.4", + "@npmcli/run-script": "^2.0.0", "chalk": "^4.1.0", "mkdirp-infer-owner": "^2.0.0", "npm-package-arg": "^8.1.2", - "pacote": "^11.3.1", + "pacote": "^12.0.0", "proc-log": "^1.0.0", "read": "^1.0.7", "read-package-json-fast": "^2.0.2", @@ -11015,15 +10392,15 @@ } }, "libnpmfund": { - "version": "1.1.0", + "version": "2.0.2", "bundled": true, "dev": true, "requires": { - "@npmcli/arborist": "^2.5.0" + "@npmcli/arborist": "^4.0.0" } }, "libnpmhook": { - "version": "6.0.3", + "version": "7.0.0", "bundled": true, "dev": true, "requires": { @@ -11032,7 +10409,7 @@ } }, "libnpmorg": { - "version": "2.0.3", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { @@ -11041,17 +10418,17 @@ } }, "libnpmpack": { - "version": "2.0.1", + "version": "3.0.1", "bundled": true, "dev": true, "requires": { - "@npmcli/run-script": "^1.8.3", + "@npmcli/run-script": "^2.0.0", "npm-package-arg": "^8.1.0", - "pacote": "^11.2.6" + "pacote": "^12.0.0" } }, "libnpmpublish": { - "version": "4.0.2", + "version": "5.0.0", "bundled": true, "dev": true, "requires": { @@ -11063,7 +10440,7 @@ } }, "libnpmsearch": { - "version": "3.1.2", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { @@ -11071,7 +10448,7 @@ } }, "libnpmteam": { - "version": "2.0.4", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { @@ -11080,12 +10457,12 @@ } }, "libnpmversion": { - "version": "1.2.1", + "version": "2.0.2", "bundled": true, "dev": true, "requires": { "@npmcli/git": "^2.0.7", - "@npmcli/run-script": "^1.8.4", + "@npmcli/run-script": "^2.0.0", "json-parse-even-better-errors": "^2.3.1", "semver": "^7.3.5", "stringify-package": "^1.0.1" @@ -11122,19 +10499,6 @@ "ssri": "^8.0.0" } }, - "mime-db": { - "version": "1.49.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.32", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "1.49.0" - } - }, "minimatch": { "version": "3.0.4", "bundled": true, @@ -11144,7 +10508,7 @@ } }, "minipass": { - "version": "3.1.5", + "version": "3.1.6", "bundled": true, "dev": true, "requires": { @@ -11243,71 +10607,20 @@ "dev": true }, "node-gyp": { - "version": "7.1.2", + "version": "8.4.1", "bundled": true, "dev": true, "requires": { "env-paths": "^2.2.0", "glob": "^7.1.4", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", + "npmlog": "^6.0.0", "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", "which": "^2.0.2" - }, - "dependencies": { - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } } }, "nopt": { @@ -11369,12 +10682,12 @@ } }, "npm-packlist": { - "version": "2.2.2", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { "glob": "^7.1.6", - "ignore-walk": "^3.0.3", + "ignore-walk": "^4.0.1", "npm-bundled": "^1.1.1", "npm-normalize-package-bin": "^1.0.1" } @@ -11417,37 +10730,16 @@ "dev": true }, "npmlog": { - "version": "5.0.1", + "version": "6.0.0", "bundled": true, "dev": true, "requires": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", + "gauge": "^4.0.0", "set-blocking": "^2.0.0" - }, - "dependencies": { - "are-we-there-yet": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - } } }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "bundled": true, - "dev": true - }, "object-assign": { "version": "4.1.1", "bundled": true, @@ -11475,14 +10767,14 @@ } }, "pacote": { - "version": "11.3.5", + "version": "12.0.2", "bundled": true, "dev": true, "requires": { "@npmcli/git": "^2.1.0", "@npmcli/installed-package-contents": "^1.0.6", "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^1.8.2", + "@npmcli/run-script": "^2.0.0", "cacache": "^15.0.5", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", @@ -11490,7 +10782,7 @@ "minipass": "^3.1.3", "mkdirp": "^1.0.3", "npm-package-arg": "^8.0.1", - "npm-packlist": "^2.1.4", + "npm-packlist": "^3.0.0", "npm-pick-manifest": "^6.0.0", "npm-registry-fetch": "^11.0.0", "promise-retry": "^2.0.1", @@ -11501,13 +10793,13 @@ } }, "parse-conflict-json": { - "version": "1.1.1", + "version": "2.0.1", "bundled": true, "dev": true, "requires": { - "json-parse-even-better-errors": "^2.3.0", - "just-diff": "^3.0.1", - "just-diff-apply": "^3.0.0" + "json-parse-even-better-errors": "^2.3.1", + "just-diff": "^5.0.1", + "just-diff-apply": "^4.0.1" } }, "path-is-absolute": { @@ -11515,11 +10807,6 @@ "bundled": true, "dev": true }, - "performance-now": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, "proc-log": { "version": "1.0.0", "bundled": true, @@ -11557,26 +10844,11 @@ "read": "1" } }, - "psl": { - "version": "1.8.0", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, "qrcode-terminal": { "version": "0.12.0", "bundled": true, "dev": true }, - "qs": { - "version": "6.5.2", - "bundled": true, - "dev": true - }, "read": { "version": "1.0.7", "bundled": true, @@ -11631,54 +10903,6 @@ "once": "^1.3.0" } }, - "request": { - "version": "2.88.2", - "bundled": true, - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "bundled": true, - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "tough-cookie": { - "version": "2.5.0", - "bundled": true, - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, "retry": { "version": "0.12.0", "bundled": true, @@ -11700,7 +10924,8 @@ "safer-buffer": { "version": "2.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "semver": { "version": "7.3.5", @@ -11716,7 +10941,7 @@ "dev": true }, "signal-exit": { - "version": "3.0.3", + "version": "3.0.6", "bundled": true, "dev": true }, @@ -11772,22 +10997,6 @@ "bundled": true, "dev": true }, - "sshpk": { - "version": "1.16.1", - "bundled": true, - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, "ssri": { "version": "8.0.1", "bundled": true, @@ -11877,26 +11086,10 @@ "bundled": true, "dev": true }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true - }, "typedarray-to-buffer": { - "version": "3.1.5", + "version": "4.0.0", "bundled": true, - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } + "dev": true }, "unique-filename": { "version": "1.1.1", @@ -11914,24 +11107,11 @@ "imurmurhash": "^0.1.4" } }, - "uri-js": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, "util-deprecate": { "version": "1.0.2", "bundled": true, "dev": true }, - "uuid": { - "version": "3.4.0", - "bundled": true, - "dev": true - }, "validate-npm-package-license": { "version": "3.0.4", "bundled": true, @@ -11949,16 +11129,6 @@ "builtins": "^1.0.3" } }, - "verror": { - "version": "1.10.0", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "walk-up-path": { "version": "1.0.0", "bundled": true, @@ -11994,14 +11164,14 @@ "dev": true }, "write-file-atomic": { - "version": "3.0.3", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "typedarray-to-buffer": "^4.0.0" } }, "yallist": { @@ -12020,16 +11190,10 @@ "path-key": "^3.0.0" } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, "object-inspect": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", - "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true }, "once": { @@ -12527,20 +11691,12 @@ } }, "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz", + "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==", "dev": true, "requires": { - "tslib": "~2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } + "tslib": "^2.1.0" } }, "safe-buffer": { @@ -12550,15 +11706,15 @@ "dev": true }, "semantic-release": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-18.0.1.tgz", - "integrity": "sha512-xTdKCaEnCzHr+Fqyhg/5I8P9pvY9z7WHa8TFCYIwcdPbuzAtQShOTzw3VNPsqBT+Yq1kFyBQFBKBYkGOlqWmfA==", + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-19.0.2.tgz", + "integrity": "sha512-7tPonjZxukKECmClhsfyMKDt0GR38feIC2HxgyYaBi+9tDySBLjK/zYDLhh+m6yjnHIJa9eBTKYE7k63ZQcYbw==", "dev": true, "requires": { "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/error": "^3.0.0", "@semantic-release/github": "^8.0.0", - "@semantic-release/npm": "^8.0.0", + "@semantic-release/npm": "^9.0.0", "@semantic-release/release-notes-generator": "^10.0.0", "aggregate-error": "^3.0.0", "cosmiconfig": "^7.0.0", @@ -12572,8 +11728,8 @@ "hook-std": "^2.0.0", "hosted-git-info": "^4.0.0", "lodash": "^4.17.21", - "marked": "^2.0.0", - "marked-terminal": "^4.1.1", + "marked": "^4.0.10", + "marked-terminal": "^5.0.0", "micromatch": "^4.0.2", "p-each-series": "^2.1.0", "p-reduce": "^2.0.0", @@ -12971,6 +12127,12 @@ "yn": "3.1.1" } }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, "type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -12978,15 +12140,15 @@ "dev": true }, "typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", "dev": true }, "uglify-js": { - "version": "3.14.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", - "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.0.tgz", + "integrity": "sha512-x+xdeDWq7FiORDvyIJ0q/waWd4PhjBNOm5dQUOq2AKC0IEjxOS66Ha9tctiVDGcRQuh69K7fgU5oRuTK4cysSg==", "dev": true, "optional": true }, diff --git a/package.json b/package.json index cebc01c4..89c961bf 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,15 @@ { "name": "spotbugs-gradle-plugin", "devDependencies": { - "@commitlint/cli": "^16.0.1", + "@commitlint/cli": "^16.1.0", "@commitlint/config-conventional": "^16.0.0", "conventional-changelog-conventionalcommits": "^4.6.3", - "gradle-semantic-release-plugin": "1.6.2", + "gradle-semantic-release-plugin": "1.6.4", "husky": "^7.0.4", - "lint-staged": "^12.1.5", + "lint-staged": "^12.3.3", "pinst": "^2.1.6", "prettier": "^2.5.0", - "semantic-release": "18.0.1" + "semantic-release": "19.0.2" }, "scripts": { "prepare": "husky install" diff --git a/src/functionalTest/groovy/com/github/spotbugs/snom/AndroidFunctionalTest.groovy b/src/functionalTest/groovy/com/github/spotbugs/snom/AndroidFunctionalTest.groovy index 18ea86ed..3d367114 100644 --- a/src/functionalTest/groovy/com/github/spotbugs/snom/AndroidFunctionalTest.groovy +++ b/src/functionalTest/groovy/com/github/spotbugs/snom/AndroidFunctionalTest.groovy @@ -110,7 +110,7 @@ buildscript { """ runner.pluginClasspath.forEach({ file -> buildFile << """ - classpath files('${file.absolutePath}') + classpath files('${file.toURI()}') """ }) buildFile << """ @@ -151,7 +151,7 @@ buildscript { """ runner.pluginClasspath.forEach({ file -> buildFile << """ - classpath files('${file.absolutePath}') + classpath files('${file.toURI()}') """ }) buildFile << """ diff --git a/src/functionalTest/groovy/com/github/spotbugs/snom/CacheabilityFunctionalTest.groovy b/src/functionalTest/groovy/com/github/spotbugs/snom/CacheabilityFunctionalTest.groovy index fe4b0a86..c561a406 100644 --- a/src/functionalTest/groovy/com/github/spotbugs/snom/CacheabilityFunctionalTest.groovy +++ b/src/functionalTest/groovy/com/github/spotbugs/snom/CacheabilityFunctionalTest.groovy @@ -15,14 +15,49 @@ package com.github.spotbugs.snom import org.gradle.testkit.runner.BuildResult import org.gradle.testkit.runner.GradleRunner +import org.gradle.testkit.runner.TaskOutcome import org.gradle.util.GradleVersion -import spock.lang.Requires import spock.lang.Specification import java.nio.file.Files class CacheabilityFunctionalTest extends Specification { + /** + * @see GitHub Issues + */ + def 'spotbugsMain task runs with configuration cache'() { + given: + def buildDir = Files.createTempDirectory(null).toFile() + def version = System.getProperty('snom.test.functional.gradle', GradleVersion.current().version) + initializeBuildFile(buildDir) + + when: + BuildResult result = + GradleRunner.create() + .withProjectDir(buildDir) + .withArguments(':spotbugsMain', '--configuration-cache') + .withPluginClasspath() + .forwardOutput() + .withGradleVersion(version) + .build() + + then: + !result.output.contains("Configuration cache problems found in this build") + result.output.contains("Configuration cache entry stored.") + + when: + BuildResult resultOfCachedBuild = GradleRunner.create() + .withProjectDir(buildDir) + .withArguments(':spotbugsMain', '--configuration-cache') + .withPluginClasspath() + .forwardOutput() + .withGradleVersion(version) + .build() + then: + resultOfCachedBuild.task(":spotbugsMain").outcome == TaskOutcome.UP_TO_DATE + resultOfCachedBuild.output.contains("Configuration cache entry reused.") + } /** * Verifies the cacheability of {@link SpotBugsTask} by invoking the same code @@ -42,8 +77,8 @@ class CacheabilityFunctionalTest extends Specification { def version = System.getProperty('snom.test.functional.gradle', GradleVersion.current().version) - initializeBuildFile(buildDir1, !version.startsWith('5')) - initializeBuildFile(buildDir2, !version.startsWith('5')) + initializeBuildFile(buildDir1) + initializeBuildFile(buildDir2) when: BuildResult result1 = @@ -79,7 +114,7 @@ class CacheabilityFunctionalTest extends Specification { return result.output.find('Build cache key for task \':spotbugsMain\' is .*') } - private static void initializeBuildFile(File buildDir, boolean runScan) { + private static void initializeBuildFile(File buildDir) { File buildFile = new File(buildDir, 'build.gradle') File settingsFile = new File(buildDir, 'settings.gradle') File propertiesFile = new File(buildDir, 'gradle.properties') @@ -102,19 +137,17 @@ class CacheabilityFunctionalTest extends Specification { |} |'''.stripMargin() - if (runScan) { - settingsFile << ''' - |plugins { - | id "com.gradle.enterprise" version "3.6.4" - |} - |gradleEnterprise { - | buildScan { - | termsOfServiceUrl = "https://gradle.com/terms-of-service" - | termsOfServiceAgree = "yes" - | } - |} - '''.stripMargin() - } + settingsFile << ''' + |plugins { + | id "com.gradle.enterprise" version "3.6.4" + |} + |gradleEnterprise { + | buildScan { + | termsOfServiceUrl = "https://gradle.com/terms-of-service" + | termsOfServiceAgree = "yes" + | } + |} + '''.stripMargin() File sourceDir = buildDir.toPath().resolve('src').resolve('main').resolve('java').toFile() sourceDir.mkdirs() File sourceFile = new File(sourceDir, 'Foo.java') diff --git a/src/functionalTest/groovy/com/github/spotbugs/snom/ExtensionFunctionalTest.groovy b/src/functionalTest/groovy/com/github/spotbugs/snom/ExtensionFunctionalTest.groovy index fe630790..7c4166e0 100644 --- a/src/functionalTest/groovy/com/github/spotbugs/snom/ExtensionFunctionalTest.groovy +++ b/src/functionalTest/groovy/com/github/spotbugs/snom/ExtensionFunctionalTest.groovy @@ -79,7 +79,7 @@ spotbugs { then: assertEquals(SUCCESS, result.task(":spotbugsMain").outcome) assertTrue(result.getOutput().contains("-include")) - assertTrue(result.getOutput().contains(filter.getAbsolutePath())) + assertTrue(result.getOutput().contains(filter.getCanonicalPath())) } def "can use excludeFilter"() { @@ -103,7 +103,7 @@ spotbugs { then: assertEquals(SUCCESS, result.task(":spotbugsMain").outcome) assertTrue(result.getOutput().contains("-exclude")) - assertTrue(result.getOutput().contains(filter.getAbsolutePath())) + assertTrue(result.getOutput().contains(filter.getCanonicalPath())) } def "can use baselineFile"() { @@ -127,7 +127,7 @@ spotbugs { then: assertEquals(SUCCESS, result.task(":spotbugsMain").outcome) assertTrue(result.getOutput().contains("-excludeBugs")) - assertTrue(result.getOutput().contains(baseline.getAbsolutePath())) + assertTrue(result.getOutput().contains(baseline.getCanonicalPath())) } def "can use visitors"() { diff --git a/src/functionalTest/groovy/com/github/spotbugs/snom/StandardFunctionalTest.groovy b/src/functionalTest/groovy/com/github/spotbugs/snom/StandardFunctionalTest.groovy index 1ebd8b4f..7e55cc11 100644 --- a/src/functionalTest/groovy/com/github/spotbugs/snom/StandardFunctionalTest.groovy +++ b/src/functionalTest/groovy/com/github/spotbugs/snom/StandardFunctionalTest.groovy @@ -699,7 +699,7 @@ spotbugsMain { then: result.task(':spotbugsMain').outcome == TaskOutcome.FAILED result.output.contains('See the report at') - def expectedOutput = rootDir.toPath().resolve(Paths.get("build", "reports", "spotbugs", "main.xml")).toUri().toString() + def expectedOutput = rootDir.toPath().resolve(Paths.get("build", "reports", "spotbugs", "main.xml")).toFile().getCanonicalPath() result.output.contains(expectedOutput) where: diff --git a/src/main/groovy/com/github/spotbugs/snom/SpotBugsTask.groovy b/src/main/groovy/com/github/spotbugs/snom/SpotBugsTask.groovy index 4a9b835f..3a013d45 100644 --- a/src/main/groovy/com/github/spotbugs/snom/SpotBugsTask.groovy +++ b/src/main/groovy/com/github/spotbugs/snom/SpotBugsTask.groovy @@ -11,8 +11,9 @@ * express or implied. See the License for the specific language governing permissions and * limitations under the License. */ -package com.github.spotbugs.snom; +package com.github.spotbugs.snom +import com.github.spotbugs.snom.internal.SemanticVersion; import com.github.spotbugs.snom.internal.SpotBugsHtmlReport import com.github.spotbugs.snom.internal.SpotBugsRunnerForHybrid; import com.github.spotbugs.snom.internal.SpotBugsRunnerForJavaExec; @@ -21,7 +22,8 @@ import com.github.spotbugs.snom.internal.SpotBugsSarifReport; import com.github.spotbugs.snom.internal.SpotBugsTextReport; import com.github.spotbugs.snom.internal.SpotBugsXmlReport; import edu.umd.cs.findbugs.annotations.NonNull -import edu.umd.cs.findbugs.annotations.Nullable; +import edu.umd.cs.findbugs.annotations.Nullable +import org.gradle.api.artifacts.Dependency; import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.RegularFileProperty import org.gradle.api.plugins.JavaPluginExtension @@ -33,7 +35,6 @@ import org.gradle.api.Action; import org.gradle.api.DefaultTask; import org.gradle.api.InvalidUserDataException; import org.gradle.api.NamedDomainObjectContainer; -import org.gradle.api.artifacts.Configuration; import org.gradle.api.file.FileCollection; import org.gradle.api.model.ObjectFactory; import org.gradle.api.provider.ListProperty; @@ -53,7 +54,6 @@ import org.gradle.api.tasks.VerificationTask import org.gradle.jvm.toolchain.JavaLauncher import org.gradle.jvm.toolchain.JavaToolchainService; import org.gradle.util.ClosureBackedAction -import org.gradle.util.GradleVersion; import org.gradle.workers.WorkerExecutor; import org.slf4j.Logger; import org.slf4j.LoggerFactory @@ -95,9 +95,6 @@ import javax.inject.Inject @CacheableTask abstract class SpotBugsTask extends DefaultTask implements VerificationTask { - private static final String FEATURE_FLAG_WORKER_API = "com.github.spotbugs.snom.worker"; - private static final String FEATURE_FLAG_HYBRID_WORKER = "com.github.spotbugs.snom.javaexec-in-worker"; - private final Logger log = LoggerFactory.getLogger(SpotBugsTask); private final WorkerExecutor workerExecutor; @@ -269,6 +266,10 @@ abstract class SpotBugsTask extends DefaultTask implements VerificationTask { private boolean enableWorkerApi; private boolean enableHybridWorker; + private FileCollection pluginJarFiles + private FileCollection spotbugsClasspath + + private Provider isSupportingMultipleReports void setClasses(FileCollection fileCollection) { this.classes = fileCollection @@ -341,6 +342,32 @@ abstract class SpotBugsTask extends DefaultTask implements VerificationTask { useAuxclasspathFile = objects.property(Boolean) setDescription("Run SpotBugs analysis.") setGroup(JavaBasePlugin.VERIFICATION_GROUP) + def pluginConfiguration = project.getConfigurations().getByName(SpotBugsPlugin.PLUGINS_CONFIG_NAME) + pluginJarFiles = project.layout.files { + pluginConfiguration.files + } + + def configuration = project.getConfigurations().getByName(SpotBugsPlugin.CONFIG_NAME) + def logger = this.log + isSupportingMultipleReports = project.provider { + configuration.resolve() + java.util.Optional spotbugs = + configuration.getDependencies().stream() + .filter { dependency -> "com.github.spotbugs" == dependency.group && "spotbugs" == dependency.name } + .findFirst() + if (!spotbugs.isPresent()) { + logger.warn("No spotbugs found in the {} configuration", SpotBugsPlugin.CONFIG_NAME) + return false + } + SemanticVersion version = new SemanticVersion(spotbugs.get().getVersion()) + logger.debug("Using SpotBugs version {}", version) + return version >= new SemanticVersion("4.5.0") + } + + def spotbugsSlf4j = project.configurations.getByName(SpotBugsPlugin.SLF4J_CONFIG_NAME) + spotbugsClasspath = project.layout.files { + spotbugsSlf4j.files + configuration.files + } } /** @@ -418,16 +445,13 @@ abstract class SpotBugsTask extends DefaultTask implements VerificationTask { @NonNull @Internal Set getPluginJar() { - return getProject().getConfigurations().getByName(SpotBugsPlugin.PLUGINS_CONFIG_NAME).getFiles() + return pluginJarFiles.files } @NonNull @Internal FileCollection getSpotbugsClasspath() { - Configuration config = getProject().getConfigurations().getByName(SpotBugsPlugin.CONFIG_NAME) - Configuration spotbugsSlf4j = getProject().getConfigurations().getByName(SpotBugsPlugin.SLF4J_CONFIG_NAME) - - return getProject().files(config, spotbugsSlf4j) + return spotbugsClasspath } @Nullable @@ -481,6 +505,16 @@ abstract class SpotBugsTask extends DefaultTask implements VerificationTask { showStackTraces.get(); } + /** + * The multiple reports feature is available from SpotBugs 4.5.0 + * + * @see GitHub Releases + */ + @Internal + boolean isSupportingMultipleReports() { + return isSupportingMultipleReports.getOrElse(Boolean.FALSE).booleanValue() + } + @Internal String getBaseName() { String prunedName = name.replaceFirst("spotbugs", "") diff --git a/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunner.java b/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunner.java index 5d810846..c935883e 100644 --- a/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunner.java +++ b/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunner.java @@ -13,7 +13,6 @@ */ package com.github.spotbugs.snom.internal; -import com.github.spotbugs.snom.SpotBugsPlugin; import com.github.spotbugs.snom.SpotBugsReport; import com.github.spotbugs.snom.SpotBugsTask; import edu.umd.cs.findbugs.annotations.NonNull; @@ -28,14 +27,10 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; import org.gradle.api.GradleException; -import org.gradle.api.Project; import org.gradle.api.Task; -import org.gradle.api.artifacts.Configuration; -import org.gradle.api.artifacts.Dependency; import org.gradle.api.file.FileCollection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,30 +40,6 @@ public abstract class SpotBugsRunner { public abstract void run(@NonNull SpotBugsTask task); - /** - * The multiple reports feature is available from SpotBugs 4.5.0 - * - * @see GitHub Releases - */ - private boolean isSupportingMultipleReports(Project project) { - Configuration configuration = project.getConfigurations().getByName(SpotBugsPlugin.CONFIG_NAME); - configuration.resolve(); - Optional spotbugs = - configuration.getDependencies().stream() - .filter( - dependency -> - "com.github.spotbugs".equals(dependency.getGroup()) - && "spotbugs".equals(dependency.getName())) - .findFirst(); - if (!spotbugs.isPresent()) { - log.warn("No spotbugs found in the {} configuration", SpotBugsPlugin.CONFIG_NAME); - return false; - } - SemanticVersion version = new SemanticVersion(spotbugs.get().getVersion()); - log.debug("Using SpotBugs version {}", version); - return version.compareTo(new SemanticVersion("4.5.0")) >= 0; - } - protected List buildArguments(SpotBugsTask task) { List args = new ArrayList<>(); @@ -98,7 +69,7 @@ protected List buildArguments(SpotBugsTask task) { args.add("-progress"); } - if (isSupportingMultipleReports(task.getProject())) { + if (task.isSupportingMultipleReports()) { for (SpotBugsReport report : task.getEnabledReports()) { File reportFile = report.getOutputLocation().getAsFile().get(); File dir = reportFile.getParentFile(); diff --git a/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForHybrid.java b/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForHybrid.java index c56abe32..9b5980dc 100644 --- a/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForHybrid.java +++ b/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForHybrid.java @@ -17,9 +17,7 @@ import com.github.spotbugs.snom.SpotBugsTask; import edu.umd.cs.findbugs.annotations.NonNull; import groovy.lang.Closure; -import java.io.File; -import java.net.URI; -import java.nio.file.Path; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -144,12 +142,19 @@ public void execute() { List reportPaths = params.getReports().get().stream() .map(RegularFile::getAsFile) - .map(File::toPath) - .map(Path::toUri) - .map(URI::toString) + .map( + file -> { + try { + return file.getCanonicalPath(); + } catch (IOException e) { + log.warn( + "failed to compute a canonical path, use absolute path as a fallback", e); + return file.getAbsolutePath(); + } + }) .collect(Collectors.toList()); if (!reportPaths.isEmpty()) { - errorMessage += "See the report at: " + String.join(",", reportPaths); + errorMessage += "See the report at: " + String.join(", ", reportPaths); } throw new GradleException(errorMessage); } diff --git a/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForJavaExec.java b/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForJavaExec.java index 1bf720b2..317d0f21 100644 --- a/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForJavaExec.java +++ b/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForJavaExec.java @@ -16,9 +16,7 @@ import com.github.spotbugs.snom.SpotBugsReport; import com.github.spotbugs.snom.SpotBugsTask; import edu.umd.cs.findbugs.annotations.NonNull; -import java.io.File; -import java.net.URI; -import java.nio.file.Path; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -56,12 +54,20 @@ public void run(@NonNull SpotBugsTask task) { .map(SpotBugsReport::getOutputLocation) .map(RegularFileProperty::getAsFile) .map(Provider::get) - .map(File::toPath) - .map(Path::toUri) - .map(URI::toString) + .map( + file -> { + try { + return file.getCanonicalPath(); + } catch (IOException ioe) { + log.warn( + "failed to compute a canonical path, use absolute path as a fallback", + ioe); + return file.getAbsolutePath(); + } + }) .collect(Collectors.toList()); if (!reportPaths.isEmpty()) { - errorMessage += "See the report at: " + String.join(",", reportPaths); + errorMessage += "See the report at: " + String.join(", ", reportPaths); } throw new GradleException(errorMessage, e); } diff --git a/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForWorker.java b/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForWorker.java index 0e6d22f6..43afe1d5 100644 --- a/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForWorker.java +++ b/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForWorker.java @@ -20,9 +20,7 @@ import edu.umd.cs.findbugs.FindBugs2; import edu.umd.cs.findbugs.TextUICommandLine; import edu.umd.cs.findbugs.annotations.NonNull; -import java.io.File; -import java.net.URI; -import java.nio.file.Path; +import java.io.IOException; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -132,12 +130,20 @@ public void execute() { List reportPaths = params.getReports().get().stream() .map(RegularFile::getAsFile) - .map(File::toPath) - .map(Path::toUri) - .map(URI::toString) + .map( + file -> { + try { + return file.getCanonicalPath(); + } catch (IOException e) { + log.warn( + "failed to compute a canonical path, use absolute path as a fallback", + e); + return file.getAbsolutePath(); + } + }) .collect(Collectors.toList()); if (!reportPaths.isEmpty()) { - message.append("See the report at: ").append(String.join(",", reportPaths)); + message.append("See the report at: ").append(String.join(", ", reportPaths)); } GradleException e = new GradleException(message.toString());