diff --git a/.github/workflows/add-index-exclusion.yml b/.github/workflows/add-index-exclusion.yml index f09b5b2c..fcf18211 100644 --- a/.github/workflows/add-index-exclusion.yml +++ b/.github/workflows/add-index-exclusion.yml @@ -14,14 +14,15 @@ jobs: name: Add OSS Index Exclusion action runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - name: Checkout + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: fetch-depth: 0 token: ${{ secrets.PUBLISH_KEY }} - - name: "Add exclusion" + - name: Add exclusion run: | echo "${{ github.event.inputs.exclusion }}" >> config/ossindex/exclusions.txt - - name: "git branch" + - name: Create git branch run: | git config --global user.name 'Esta Nagy' git config --global user.email 'nagyesta@gmail.com' @@ -29,7 +30,8 @@ jobs: git add config/ossindex/exclusions.txt git commit -asm "Excluding vulnerability ${{ github.event.inputs.exclusion }} {patch}" git push -f --set-upstream origin feature/exclude-vulnerability-run-${{ github.run_number }} - - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + - name: Create PR + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 with: github-token: ${{ secrets.PUBLISH_KEY }} script: | diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 4b110a9e..eb307cd3 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -52,7 +52,6 @@ on: - '.github/pr-labeler.yml' - 'renovate.json' - '.whitesource' - - 'gradle/libs.versions.toml' permissions: # required for all workflows @@ -81,18 +80,13 @@ jobs: uses: github/codeql-action/init@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 with: languages: 'java' - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - name: Build with Gradle - uses: gradle/gradle-build-action@4c39dd82cd5e1ec7c6fa0173bb41b4b6bb3b86ff # v3.3.2 + - name: Set up Gradle + uses: gradle/actions/setup-gradle@db19848a5fa7950289d3668fb053140cf3028d43 # v3.3.2 with: cache-disabled: true - arguments: build -x test + - name: Build with Gradle + run: ./gradlew build -x test - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 - name: Check dependencies with Gradle - uses: gradle/gradle-build-action@4c39dd82cd5e1ec7c6fa0173bb41b4b6bb3b86ff # v3.3.2 - with: - arguments: ossIndexAudit -PossIndexUsername=${{ secrets.OSS_INDEX_USER }} -PossIndexPassword=${{ secrets.OSS_INDEX_PASSWORD }} + run: ./gradlew ossIndexAudit -PossIndexUsername=${{ secrets.OSS_INDEX_USER }} -PossIndexPassword=${{ secrets.OSS_INDEX_PASSWORD }} diff --git a/.github/workflows/gradle-ci.yml b/.github/workflows/gradle-ci.yml index d37b0aa2..3b8d0548 100644 --- a/.github/workflows/gradle-ci.yml +++ b/.github/workflows/gradle-ci.yml @@ -33,7 +33,6 @@ on: - '.github/pr-labeler.yml' - 'renovate.json' - '.whitesource' - - 'gradle/libs.versions.toml' - 'config/ossindex/exclusions.txt' permissions: read-all @@ -47,7 +46,8 @@ jobs: steps: # Set up build environment - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - name: Checkout + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: fetch-depth: 0 - name: Set up JDK 17 @@ -55,30 +55,30 @@ jobs: with: distribution: temurin java-version: 17 - - name: 'Decode key (if Ubuntu)' + - name: Decode key (if Ubuntu) if: ${{ matrix.os == 'ubuntu-latest' }} run: | mkdir -p ${{ runner.temp }}/.gnupg/ echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}" | base64 --decode > ${{ runner.temp }}/.gnupg/secring.gpg - - name: 'Build with Gradle (if Ubuntu)' - uses: gradle/gradle-build-action@4c39dd82cd5e1ec7c6fa0173bb41b4b6bb3b86ff # v3.3.2 - if: ${{ matrix.os == 'ubuntu-latest' }} + - name: Set up Gradle + uses: gradle/actions/setup-gradle@db19848a5fa7950289d3668fb053140cf3028d43 # v3.3.2 with: - arguments: | - printVersion build sign - -Psigning.keyId=${{ secrets.SIGNING_KEY_ID }} - -Psigning.password=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} - -Psigning.secretKeyRingFile=${{ runner.temp }}/.gnupg/secring.gpg - - name: 'Build with Gradle (if Windows)' - uses: gradle/gradle-build-action@4c39dd82cd5e1ec7c6fa0173bb41b4b6bb3b86ff # v3.3.2 + cache-disabled: true + - name: Build with Gradle (if Ubuntu) + if: ${{ matrix.os == 'ubuntu-latest' }} + run: > + ./gradlew printVersion build sign + -Psigning.keyId=${{ secrets.SIGNING_KEY_ID }} + -Psigning.password=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} + -Psigning.secretKeyRingFile=${{ runner.temp }}/.gnupg/secring.gpg + - name: Build with Gradle (if Windows) if: ${{ matrix.os != 'ubuntu-latest' }} - with: - arguments: printVersion build - - name: 'Clean-up GPG key (if Ubuntu)' + run: ./gradlew printVersion build + - name: Clean-up GPG key (if Ubuntu) if: ${{ matrix.os == 'ubuntu-latest' }} run: | rm -rf ${{ runner.temp }}/.gnupg/ - - name: 'Upload Test reports - All' + - name: Upload Test reports - All if: always() uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 with: diff --git a/.github/workflows/gradle-oss-index-scan.yml b/.github/workflows/gradle-oss-index-scan.yml index 240bb256..2286f4fc 100644 --- a/.github/workflows/gradle-oss-index-scan.yml +++ b/.github/workflows/gradle-oss-index-scan.yml @@ -22,7 +22,9 @@ jobs: with: distribution: temurin java-version: 17 - - name: Check dependencies with Gradle - uses: gradle/gradle-build-action@4c39dd82cd5e1ec7c6fa0173bb41b4b6bb3b86ff # v3.3.2 + - name: Set up Gradle + uses: gradle/actions/setup-gradle@db19848a5fa7950289d3668fb053140cf3028d43 # v3.3.2 with: - arguments: ossIndexAudit -PossIndexUsername=${{ secrets.OSS_INDEX_USER }} -PossIndexPassword=${{ secrets.OSS_INDEX_PASSWORD }} + cache-disabled: true + - name: Check dependencies with Gradle + run: ./gradlew ossIndexAudit -PossIndexUsername=${{ secrets.OSS_INDEX_USER }} -PossIndexPassword=${{ secrets.OSS_INDEX_PASSWORD }} diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index f635aab5..f5f126bf 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -43,39 +43,40 @@ jobs: steps: # Set up build environment - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - name: Checkout + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: fetch-depth: 0 + token: ${{ secrets.PUBLISH_KEY }} - name: Set up JDK 17 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 with: distribution: temurin java-version: 17 - - name: 'Build with Gradle' - uses: gradle/gradle-build-action@4c39dd82cd5e1ec7c6fa0173bb41b4b6bb3b86ff # v3.3.2 + - name: Set up Gradle + uses: gradle/actions/setup-gradle@db19848a5fa7950289d3668fb053140cf3028d43 # v3.3.2 with: - gradle-home-cache-cleanup: true - arguments: | - tagVersion build - -PgithubUser=${{ secrets.PUBLISH_USER_NAME }} - -PgithubToken=${{ secrets.PUBLISH_KEY }} + cache-disabled: true + - name: Build with Gradle + run: > + ./gradlew tagVersion build + -PgithubUser=${{ secrets.PUBLISH_USER_NAME }} + -PgithubToken=${{ secrets.PUBLISH_KEY }} - name: Decode key run: | mkdir -p ${{ runner.temp }}/.gnupg/ echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}" | base64 --decode > ${{ runner.temp }}/.gnupg/secring.gpg - - name: 'Publish with Gradle' - uses: gradle/gradle-build-action@4c39dd82cd5e1ec7c6fa0173bb41b4b6bb3b86ff # v3.3.2 - with: - arguments: | - publish - -PgithubUser=${{ secrets.PUBLISH_USER_NAME }} - -PgithubToken=${{ secrets.PUBLISH_KEY }} - -PossrhUsername=${{ secrets.OSSRH_USER }} - -PossrhPassword=${{ secrets.OSSRH_PASS }} - -Psigning.keyId=${{ secrets.SIGNING_KEY_ID }} - -Psigning.password=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} - -Psigning.secretKeyRingFile=${{ runner.temp }}/.gnupg/secring.gpg - - name: 'Clean-up GPG key' + - name: Publish with Gradle + run: > + ./gradlew publish publishToSonatype closeAndReleaseSonatypeStagingRepository + -PgithubUser=${{ secrets.PUBLISH_USER_NAME }} + -PgithubToken=${{ secrets.PUBLISH_KEY }} + -PossrhUsername=${{ secrets.OSSRH_USER }} + -PossrhPassword=${{ secrets.OSSRH_PASS }} + -Psigning.keyId=${{ secrets.SIGNING_KEY_ID }} + -Psigning.password=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} + -Psigning.secretKeyRingFile=${{ runner.temp }}/.gnupg/secring.gpg + - name: Clean-up GPG key if: always() run: | rm -rf ${{ runner.temp }}/.gnupg/ diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index 1def4101..78c5ce04 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -9,7 +9,8 @@ jobs: pr-labeler: runs-on: ubuntu-latest steps: - - uses: TimonVS/pr-labeler-action@f9c084306ce8b3f488a8f3ee1ccedc6da131d1af # v5.0.0 + - name: Label PR + uses: TimonVS/pr-labeler-action@f9c084306ce8b3f488a8f3ee1ccedc6da131d1af # v5.0.0 with: configuration-path: .github/pr-labeler.yml # optional, .github/pr-labeler.yml is the default value env: diff --git a/.github/workflows/release-draft.yml b/.github/workflows/release-draft.yml index e634e9eb..bd9cedc5 100644 --- a/.github/workflows/release-draft.yml +++ b/.github/workflows/release-draft.yml @@ -9,7 +9,8 @@ jobs: name: Draft release action runs-on: ubuntu-latest steps: - - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + - name: Create PR + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 with: script: | github.rest.repos.createRelease({ diff --git a/.github/workflows/release-trigger.yml b/.github/workflows/release-trigger.yml index 513ec7cd..ee64b6b0 100644 --- a/.github/workflows/release-trigger.yml +++ b/.github/workflows/release-trigger.yml @@ -18,11 +18,12 @@ jobs: name: Release trigger action runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - name: Checkout + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: fetch-depth: 0 token: ${{ secrets.PUBLISH_KEY }} - - name: "Check existing tag" + - name: Check existing tag id: check run: | echo "::set-output name=has_tag::$(git log --format='format:%d' --decorate-refs="refs/tags/v*" -n 1 | grep tag | wc -l)" @@ -33,11 +34,11 @@ jobs: echo "Execution: ${{ github.event.inputs.execution }}" echo "---" echo "Should run: ${{ steps.check.outputs.has_tag == 0 || github.event.inputs.execution == 'Manual' }}" - - name: "Update trigger" + - name: Update trigger if: ${{ steps.check.outputs.has_tag == 0 || github.event.inputs.execution == 'Manual' }} run: | date +%s > .release-trigger - - name: "git branch" + - name: Create git branch if: ${{ steps.check.outputs.has_tag == 0 || github.event.inputs.execution == 'Manual' }} run: | git config --global user.name 'Esta Nagy' @@ -46,7 +47,8 @@ jobs: git add .release-trigger git commit -asm "Triggering a release {patch}" git push -f --set-upstream origin release/run-${{ github.run_number }} - - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + - name: Create PR + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 if: ${{ steps.check.outputs.has_tag == 0 || github.event.inputs.execution == 'Manual' }} with: github-token: ${{ secrets.PUBLISH_KEY }} diff --git a/.github/workflows/update-dependency-checksums.yml b/.github/workflows/update-dependency-checksums.yml index 4635f4fd..6ecd8cee 100644 --- a/.github/workflows/update-dependency-checksums.yml +++ b/.github/workflows/update-dependency-checksums.yml @@ -9,7 +9,8 @@ jobs: name: Dependency checksum compaction action runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - name: Checkout + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: fetch-depth: 0 token: ${{ secrets.PUBLISH_KEY }} @@ -18,14 +19,15 @@ jobs: with: distribution: temurin java-version: 17 - - name: "Remove previous version" + - name: Remove previous version run: cp gradle/verification-metadata-clean.xml gradle/verification-metadata.xml - - name: "Update checksums" - uses: gradle/gradle-build-action@4c39dd82cd5e1ec7c6fa0173bb41b4b6bb3b86ff # v3.3.2 + - name: Set up Gradle + uses: gradle/actions/setup-gradle@db19848a5fa7950289d3668fb053140cf3028d43 # v3.3.2 with: cache-disabled: true - arguments: --write-verification-metadata sha256 - - name: "Git commit" + - name: Update checksums + run: ./gradlew help licensee --write-verification-metadata sha256 + - name: Git commit run: | git config --global user.name 'Esta Nagy' git config --global user.email 'nagyesta@gmail.com' @@ -33,7 +35,8 @@ jobs: git add gradle/verification-metadata.xml git commit -asm "Updating dependency checksums {patch}" git push -f --set-upstream origin feature/update-dependency-checksums-${{ github.run_number }} - - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + - name: Create PR + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 with: github-token: ${{ secrets.PUBLISH_KEY }} script: | diff --git a/build.gradle b/build.gradle index 73dabd2e..9a30703d 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,9 @@ plugins { alias(libs.plugins.versioner) alias(libs.plugins.index.scan) alias(libs.plugins.owasp.dependencycheck) + alias(libs.plugins.nexus.publish.plugin) + alias libs.plugins.cyclonedx.bom apply false + alias libs.plugins.licensee.plugin apply false } group = 'com.github.nagyesta.abort-mission' @@ -63,6 +66,8 @@ configure(subprojects.findAll({ apply plugin: 'org.sonatype.gradle.plugins.scan' //noinspection SpellCheckingInspection apply plugin: 'org.owasp.dependencycheck' + apply plugin: 'org.cyclonedx.bom' + apply plugin: 'app.cash.licensee' versioner.apply() @@ -170,6 +175,66 @@ configure(subprojects.findAll({ } checkstyle.toolVersion = libs.versions.checkstyle.get() + cyclonedxBom { + includeConfigs = ["runtimeClasspath"] + skipConfigs = ["compileClasspath", "testCompileClasspath"] + skipProjects = [] + projectType = "library" + schemaVersion = "1.5" + destination = file("build/reports") + outputName = "bom" + outputFormat = "json" + //noinspection UnnecessaryQualifiedReference + final def attachmentText = new org.cyclonedx.model.AttachmentText() + attachmentText.setText(file("${project.rootProject.projectDir}/LICENSE").readBytes().encodeBase64().toString()) + attachmentText.setEncoding("base64") + attachmentText.setContentType("text/plain") + //noinspection UnnecessaryQualifiedReference + final def license = new org.cyclonedx.model.License() + license.setName(project.rootProject.ext.licenseName) + license.setLicenseText(attachmentText) + license.setUrl(project.rootProject.ext.licenseUrl) + setLicenseChoice { + it.addLicense(license) + } + } + + licensee { + allow("Apache-2.0") + allow("MIT") + allow("EPL-1.0") + allow("BSD-2-Clause") + allow("BSD-3-Clause") + allowUrl("https://opensource.org/licenses/MIT") + allowUrl("http://www.opensource.org/licenses/mit-license") + allowUrl("https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt") + allowUrl("https://www.eclipse.org/legal/epl-v20.html") + allowUrl("http://www.eclipse.org/legal/epl-2.0") + allowUrl("http://www.eclipse.org/org/documents/edl-v10.php") + allowUrl("https://asm.ow2.io/license.html") + unusedAction("IGNORE") + } + + tasks.register('copyLegalDocs', Copy.class) { + from file("${project.rootProject.projectDir}/LICENSE") + from layout.buildDirectory.file("reports/licensee/artifacts.json").get().asFile + from layout.buildDirectory.file("reports/bom.json").get().asFile + from layout.buildDirectory.file("nodejs-dependency-licenses.csv").get().asFile + into layout.buildDirectory.dir("resources/main/META-INF").get().asFile + rename('artifacts.json', 'dependency-licenses.json') + rename('bom.json', 'SBOM.json') + } + //noinspection ConfigurationAvoidance + if (project.name == "flight-evaluation-report") { + tasks.copyLegalDocs.dependsOn("processTemplates") + } + tasks.copyLegalDocs.dependsOn(tasks.licensee) + tasks.copyLegalDocs.dependsOn(tasks.cyclonedxBom) + tasks.javadoc.dependsOn(tasks.copyLegalDocs) + tasks.compileTestJava.dependsOn(tasks.copyLegalDocs) + tasks.checkstyleMain.dependsOn(tasks.copyLegalDocs) + tasks.processResources.finalizedBy(tasks.copyLegalDocs) + publishing { repositories { maven { @@ -180,14 +245,6 @@ configure(subprojects.findAll({ password = rootProject.ext.gitToken } } - maven { - name = "ossrh" - url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2") - credentials { - username = rootProject.ext.ossrhUser - password = rootProject.ext.ossrhPass - } - } } } @@ -207,6 +264,15 @@ configure(subprojects.findAll({ } } +nexusPublishing { + repositories { + sonatype { + username = project.ext.ossrhUser + password = project.ext.ossrhPass + } + } +} + ossIndexAudit { username = rootProject.ext.ossIndexUser password = rootProject.ext.ossIndexPass diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index de1804cd..33a7f1ea 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -29,6 +29,9 @@ owaspPlugin = "9.1.0" checkstyle = "10.12.2" jacoco = "0.8.10" +cycloneDxBomPlugin = "1.8.2" +licenseePlugin = "1.11.0" +nexusPublishPlugin = "2.0.0" [libraries] spring-core = { module = "org.springframework:spring-core", version.ref = "spring" } @@ -83,3 +86,6 @@ node = { id = "com.github.node-gradle.node", version.ref = "nodePlugin" } versioner = { id = "io.toolebox.git-versioner", version.ref = "gitVersionerPlugin" } index-scan = { id = "org.sonatype.gradle.plugins.scan", version.ref = "indexScanPlugin" } owasp-dependencycheck = { id = "org.owasp.dependencycheck", version.ref = "owaspPlugin" } +cyclonedx-bom = { id = "org.cyclonedx.bom", version.ref = "cycloneDxBomPlugin" } +licensee-plugin = { id = "app.cash.licensee", version.ref = "licenseePlugin" } +nexus-publish-plugin = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPublishPlugin" } diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index a7030148..20349cb1 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -12,6 +12,24 @@ + + + + + + + + + + + + + + + + + + @@ -28,54 +46,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -100,54 +70,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -166,36 +88,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -205,6 +97,9 @@ + + + @@ -277,26 +172,11 @@ - - - - - - - - - - - - - - - @@ -332,21 +212,11 @@ - - - - - - - - - - @@ -387,94 +257,53 @@ - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - + + @@ -482,30 +311,18 @@ - - - - - - - - - - - - - - - + + + @@ -517,76 +334,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -613,21 +390,11 @@ - - - - - - - - - - @@ -659,6 +426,11 @@ + + + + + @@ -799,6 +571,19 @@ + + + + + + + + + + + + + @@ -815,14 +600,6 @@ - - - - - - - - @@ -852,15 +629,13 @@ - - - - - + + + @@ -879,13 +654,18 @@ - - - + + + + + + + + @@ -918,14 +698,6 @@ - - - - - - - - @@ -968,11 +740,6 @@ - - - - - @@ -981,6 +748,14 @@ + + + + + + + + @@ -997,14 +772,6 @@ - - - - - - - - @@ -1095,14 +862,6 @@ - - - - - - - - @@ -1111,50 +870,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1163,14 +883,6 @@ - - - - - - - - @@ -1179,30 +891,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1211,30 +899,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1243,30 +907,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1275,30 +915,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1307,60 +923,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1369,30 +941,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1401,30 +949,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1433,30 +957,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1465,14 +965,6 @@ - - - - - - - - @@ -1481,22 +973,6 @@ - - - - - - - - - - - - - - - - @@ -1505,54 +981,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - @@ -1569,14 +1005,6 @@ - - - - - - - - @@ -1598,73 +1026,36 @@ - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1673,38 +1064,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1728,14 +1087,6 @@ - - - - - - - - @@ -1770,14 +1121,6 @@ - - - - - - - - @@ -1786,11 +1129,6 @@ - - - - - @@ -1804,6 +1142,14 @@ + + + + + + + + @@ -1854,22 +1200,6 @@ - - - - - - - - - - - - - - - - @@ -1886,22 +1216,6 @@ - - - - - - - - - - - - - - - - @@ -1923,16 +1237,6 @@ - - - - - - - - - - @@ -1956,6 +1260,11 @@ + + + + + @@ -1966,14 +1275,6 @@ - - - - - - - - @@ -1982,14 +1283,6 @@ - - - - - - - - @@ -2058,11 +1351,6 @@ - - - - - @@ -2121,14 +1409,6 @@ - - - - - - - - @@ -2158,14 +1438,6 @@ - - - - - - - - @@ -2202,11 +1474,6 @@ - - - - - @@ -2532,22 +1799,61 @@ - - - + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2558,6 +1864,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2600,6 +1951,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2635,6 +2044,9 @@ + + + @@ -2662,14 +2074,6 @@ - - - - - - - - @@ -2678,11 +2082,6 @@ - - - - - @@ -2727,11 +2126,29 @@ + + + + + + + + + + + + + + + + + + @@ -2740,6 +2157,14 @@ + + + + + + + + @@ -2761,10 +2186,23 @@ - - - + + + + + + + + + + + + + + + + @@ -2777,6 +2215,14 @@ + + + + + + + + @@ -2785,12 +2231,22 @@ - - - + + + - - + + + + + + + + + + + + @@ -2822,9 +2278,6 @@ - - - @@ -2860,6 +2313,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2947,12 +2426,32 @@ - - - + + + + + + + + + + + + + + + + + + + + + - - + + + + @@ -2998,89 +2497,68 @@ - - - - - - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + @@ -3088,11 +2566,6 @@ - - - - - @@ -3103,14 +2576,6 @@ - - - - - - - - @@ -3127,22 +2592,6 @@ - - - - - - - - - - - - - - - - @@ -3168,6 +2617,9 @@ + + + @@ -3187,14 +2639,6 @@ - - - - - - - - @@ -3240,38 +2684,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3280,38 +2692,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3320,63 +2700,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3385,26 +2713,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -3458,22 +2766,6 @@ - - - - - - - - - - - - - - - - @@ -3482,19 +2774,6 @@ - - - - - - - - - - - - - @@ -3511,29 +2790,10 @@ - - - - - - - - - - - - - - - - - - - @@ -3543,28 +2803,18 @@ + + + - - - - - - - - - - - - - @@ -3575,11 +2825,6 @@ - - - - - @@ -3600,16 +2845,6 @@ - - - - - - - - - - @@ -3689,41 +2924,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3795,379 +3000,129 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - + + - - - - + + diff --git a/mission-report/flight-evaluation-report/node/Gruntfile.js b/mission-report/flight-evaluation-report/node/Gruntfile.js index 77478094..5a9bba9b 100644 --- a/mission-report/flight-evaluation-report/node/Gruntfile.js +++ b/mission-report/flight-evaluation-report/node/Gruntfile.js @@ -3,6 +3,17 @@ const path = require('path'); module.exports = function (grunt) { grunt.initConfig({ + license_finder: { + all: { + options: { + production: true, + depth: 5, + directory: './', + out: '../build/nodejs-dependency-licenses.csv', + csv: true + } + } + }, sass: { options: { sourceMap: true @@ -96,6 +107,6 @@ module.exports = function (grunt) { loadGruntTasks(grunt); - grunt.registerTask('default', ['sass', 'concat:css', 'cssmin', 'webpack', 'uglify', 'assets_inline', 'htmlmin']); + grunt.registerTask('default', ['license_finder', 'sass', 'concat:css', 'cssmin', 'webpack', 'uglify', 'assets_inline', 'htmlmin']); } ; diff --git a/mission-report/flight-evaluation-report/node/package-lock.json b/mission-report/flight-evaluation-report/node/package-lock.json index d8308915..ff652387 100644 --- a/mission-report/flight-evaluation-report/node/package-lock.json +++ b/mission-report/flight-evaluation-report/node/package-lock.json @@ -20,6 +20,7 @@ "grunt-contrib-htmlmin": "^3.1.0", "grunt-contrib-sass": "^2.0.0", "grunt-contrib-uglify": "^5.2.2", + "grunt-license-finder": "^2.0.0", "grunt-webpack": "^6.0.0", "jest": "^29.5.0", "jest-cli": "^29.5.0", @@ -1000,6 +1001,15 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@octetstream/promisify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@octetstream/promisify/-/promisify-2.0.2.tgz", + "integrity": "sha512-7XHoRB61hxsz8lBQrjC1tq/3OEIgpvGWg6DKAdwi7WRzruwkmsdwmOoUXbU4Dtd4RSOMDwed0SkP3y8UlMt1Bg==", + "dev": true, + "engines": { + "node": "6.x || >=8.x" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -1494,6 +1504,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", + "dev": true + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -1507,6 +1523,12 @@ "node": ">= 8" } }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1561,6 +1583,12 @@ "node": ">=8" } }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, "node_modules/async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", @@ -2006,6 +2034,12 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "node_modules/compare-versions": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.4.0.tgz", + "integrity": "sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2724,6 +2758,28 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/glob-all": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz", + "integrity": "sha512-B61R+opn9HMe8dD170uIn9SP5gGMP+kUmvQXbCZun7h4MB6JKbPAITaR8WU3N2Ry10r/keBCTsz0DE34L+biWg==", + "dev": true, + "dependencies": { + "glob": "^7.0.5", + "yargs": "~1.2.6" + }, + "bin": { + "glob-all": "bin/glob-all" + } + }, + "node_modules/glob-all/node_modules/yargs": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz", + "integrity": "sha512-wwBCGnWIeR7M6d7Wmd4NT48TI8jEzRXFzmYGTNpsHZZ9Uu13vj+p6EawS7kGrzBvkX6rF7vYjUrQnwEOI7QOIw==", + "dev": true, + "dependencies": { + "minimist": "^0.1.0" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -3193,6 +3249,21 @@ "node": ">=10" } }, + "node_modules/grunt-license-finder": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-license-finder/-/grunt-license-finder-2.0.0.tgz", + "integrity": "sha512-cqAgj/K34HXgJ2TNyfmmDBzTwZf1uoomwXLZv2gLFdywDYAM48pxW19IPAkQ//Yu4nl11rkdl82bV8aVSuAAvg==", + "dev": true, + "dependencies": { + "nlf": "^2.0.0" + }, + "engines": { + "node": ">= 4" + }, + "peerDependencies": { + "grunt": "^1.0.1" + } + }, "node_modules/grunt-webpack": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/grunt-webpack/-/grunt-webpack-6.0.0.tgz", @@ -3309,6 +3380,12 @@ "node": "*" } }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "node_modules/html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", @@ -4657,12 +4734,54 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "node_modules/lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", + "dev": true + }, + "node_modules/lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==", + "dev": true + }, + "node_modules/lodash.clone": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", + "integrity": "sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg==", + "dev": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", "dev": true }, + "node_modules/lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==", + "dev": true + }, "node_modules/lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", @@ -4835,6 +4954,12 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha512-wR5Ipl99t0mTGwLjQJnBjrP/O7zBbLZqvA3aw32DmLx+nXHfWctUjzDjnDx09pX1Po86WFQazF9xUzfMea3Cnw==", + "dev": true + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4876,6 +5001,31 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node_modules/nlf": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nlf/-/nlf-2.1.1.tgz", + "integrity": "sha512-ysGGIax/WydhF78a5k//FPMt9tVDVLsnuSZqxwuzIfc5waKKc0Y/jz082a81aAayrP1QQNQm5ck+5Kv+jlbU6Q==", + "dev": true, + "dependencies": { + "archy": "1.0.0", + "commander": "2.19.0", + "compare-versions": "3.4.0", + "glob-all": "3.1.0", + "snyk-resolve-deps": "4.0.2" + }, + "bin": { + "nlf": "bin/nlf-cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nlf/node_modules/commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, "node_modules/no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", @@ -5374,6 +5524,27 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/promise-fs/-/promise-fs-2.1.1.tgz", + "integrity": "sha512-43p7e4QzAQ3w6eyN0+gbBL7jXiZFWLWYITg9wIObqkBySu/a5K1EDcQ/S6UyB/bmiZWDA4NjTbcopKLTaKcGSw==", + "dev": true, + "dependencies": { + "@octetstream/promisify": "2.0.2" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -5387,6 +5558,12 @@ "node": ">= 6" } }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -5696,6 +5873,132 @@ "node": ">=8" } }, + "node_modules/snyk-module": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/snyk-module/-/snyk-module-1.9.1.tgz", + "integrity": "sha512-A+CCyBSa4IKok5uEhqT+hV/35RO6APFNLqk9DRRHg7xW2/j//nPX8wTSZUPF8QeRNEk/sX+6df7M1y6PBHGSHA==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "hosted-git-info": "^2.7.1" + } + }, + "node_modules/snyk-module/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/snyk-resolve": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/snyk-resolve/-/snyk-resolve-1.1.0.tgz", + "integrity": "sha512-OZMF8I8TOu0S58Z/OS9mr8jkEzGAPByCsAkrWlcmZgPaE0RsxVKVIFPhbMNy/JlYswgGDYYIEsNw+e0j1FnTrw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "promise-fs": "^2.1.1" + } + }, + "node_modules/snyk-resolve-deps": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/snyk-resolve-deps/-/snyk-resolve-deps-4.0.2.tgz", + "integrity": "sha512-nlw62wiWhGOTw3BD3jVIwrUkRR4iNxEkkO4Y/PWs8BsUWseGu1H6QgLesFXJb3qx7ANJ5UbUCJMgV+eL0Lf9cA==", + "dev": true, + "dependencies": { + "ansicolors": "^0.3.2", + "debug": "^3.2.5", + "lodash.assign": "^4.2.0", + "lodash.assignin": "^4.2.0", + "lodash.clone": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "lru-cache": "^4.0.0", + "semver": "^5.5.1", + "snyk-module": "^1.6.0", + "snyk-resolve": "^1.0.0", + "snyk-tree": "^1.0.0", + "snyk-try-require": "^1.1.1", + "then-fs": "^2.0.0" + } + }, + "node_modules/snyk-resolve-deps/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/snyk-resolve-deps/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/snyk-resolve-deps/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/snyk-tree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/snyk-tree/-/snyk-tree-1.0.0.tgz", + "integrity": "sha512-JQezX6eaVi0uNctPcx2Uzy5KA9lpTRRe31n8NI71DIseGvI6OVCfuKjzFptE06h4ZISMey351ICXnHBadBtWdg==", + "dev": true, + "dependencies": { + "archy": "^1.0.0" + }, + "bin": { + "npm-tree": "lib/index.js" + } + }, + "node_modules/snyk-try-require": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/snyk-try-require/-/snyk-try-require-1.3.1.tgz", + "integrity": "sha512-adCnpfCvigiarbADOHuqh82P4aQUlyq6nWzhVmEUly62Q3tnVg4BGtgjYISkaj9GGBmpgVZiJegENBpQr02NsQ==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.clonedeep": "^4.3.0", + "lru-cache": "^4.0.0", + "then-fs": "^2.0.0" + } + }, + "node_modules/snyk-try-require/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/snyk-try-require/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/snyk-try-require/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -5939,6 +6242,15 @@ "node": ">=8" } }, + "node_modules/then-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/then-fs/-/then-fs-2.0.0.tgz", + "integrity": "sha512-5ffcBcU+vFUCYDNi/o507IqjqrTkuGsLVZ1Fp50hwgZRY7ufVFa9jFfTy5uZ2QnSKacKigWKeaXkOqLa4DsjLw==", + "dev": true, + "dependencies": { + "promise": ">=3.2 <8" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -7231,6 +7543,12 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "@octetstream/promisify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@octetstream/promisify/-/promisify-2.0.2.tgz", + "integrity": "sha512-7XHoRB61hxsz8lBQrjC1tq/3OEIgpvGWg6DKAdwi7WRzruwkmsdwmOoUXbU4Dtd4RSOMDwed0SkP3y8UlMt1Bg==", + "dev": true + }, "@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -7683,6 +8001,12 @@ "color-convert": "^2.0.1" } }, + "ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", + "dev": true + }, "anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -7693,6 +8017,12 @@ "picomatch": "^2.0.4" } }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -7732,6 +8062,12 @@ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, "async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", @@ -8054,6 +8390,12 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "compare-versions": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.4.0.tgz", + "integrity": "sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg==", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -8595,6 +8937,27 @@ "path-is-absolute": "^1.0.0" } }, + "glob-all": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz", + "integrity": "sha512-B61R+opn9HMe8dD170uIn9SP5gGMP+kUmvQXbCZun7h4MB6JKbPAITaR8WU3N2Ry10r/keBCTsz0DE34L+biWg==", + "dev": true, + "requires": { + "glob": "^7.0.5", + "yargs": "~1.2.6" + }, + "dependencies": { + "yargs": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz", + "integrity": "sha512-wwBCGnWIeR7M6d7Wmd4NT48TI8jEzRXFzmYGTNpsHZZ9Uu13vj+p6EawS7kGrzBvkX6rF7vYjUrQnwEOI7QOIw==", + "dev": true, + "requires": { + "minimist": "^0.1.0" + } + } + } + }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -8995,6 +9358,15 @@ "which": "~2.0.2" } }, + "grunt-license-finder": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-license-finder/-/grunt-license-finder-2.0.0.tgz", + "integrity": "sha512-cqAgj/K34HXgJ2TNyfmmDBzTwZf1uoomwXLZv2gLFdywDYAM48pxW19IPAkQ//Yu4nl11rkdl82bV8aVSuAAvg==", + "dev": true, + "requires": { + "nlf": "^2.0.0" + } + }, "grunt-webpack": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/grunt-webpack/-/grunt-webpack-6.0.0.tgz", @@ -9051,6 +9423,12 @@ "integrity": "sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA==", "dev": true }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", @@ -10087,12 +10465,54 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", + "dev": true + }, + "lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==", + "dev": true + }, + "lodash.clone": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", + "integrity": "sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg==", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", "dev": true }, + "lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==", + "dev": true + }, "lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", @@ -10225,6 +10645,12 @@ "brace-expansion": "^1.1.7" } }, + "minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha512-wR5Ipl99t0mTGwLjQJnBjrP/O7zBbLZqvA3aw32DmLx+nXHfWctUjzDjnDx09pX1Po86WFQazF9xUzfMea3Cnw==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -10263,6 +10689,27 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "nlf": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nlf/-/nlf-2.1.1.tgz", + "integrity": "sha512-ysGGIax/WydhF78a5k//FPMt9tVDVLsnuSZqxwuzIfc5waKKc0Y/jz082a81aAayrP1QQNQm5ck+5Kv+jlbU6Q==", + "dev": true, + "requires": { + "archy": "1.0.0", + "commander": "2.19.0", + "compare-versions": "3.4.0", + "glob-all": "3.1.0", + "snyk-resolve-deps": "4.0.2" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } + } + }, "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", @@ -10635,6 +11082,24 @@ } } }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/promise-fs/-/promise-fs-2.1.1.tgz", + "integrity": "sha512-43p7e4QzAQ3w6eyN0+gbBL7jXiZFWLWYITg9wIObqkBySu/a5K1EDcQ/S6UyB/bmiZWDA4NjTbcopKLTaKcGSw==", + "dev": true, + "requires": { + "@octetstream/promisify": "2.0.2" + } + }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -10645,6 +11110,12 @@ "sisteransi": "^1.0.5" } }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, "psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -10866,6 +11337,135 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, + "snyk-module": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/snyk-module/-/snyk-module-1.9.1.tgz", + "integrity": "sha512-A+CCyBSa4IKok5uEhqT+hV/35RO6APFNLqk9DRRHg7xW2/j//nPX8wTSZUPF8QeRNEk/sX+6df7M1y6PBHGSHA==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "hosted-git-info": "^2.7.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "snyk-resolve": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/snyk-resolve/-/snyk-resolve-1.1.0.tgz", + "integrity": "sha512-OZMF8I8TOu0S58Z/OS9mr8jkEzGAPByCsAkrWlcmZgPaE0RsxVKVIFPhbMNy/JlYswgGDYYIEsNw+e0j1FnTrw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "promise-fs": "^2.1.1" + } + }, + "snyk-resolve-deps": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/snyk-resolve-deps/-/snyk-resolve-deps-4.0.2.tgz", + "integrity": "sha512-nlw62wiWhGOTw3BD3jVIwrUkRR4iNxEkkO4Y/PWs8BsUWseGu1H6QgLesFXJb3qx7ANJ5UbUCJMgV+eL0Lf9cA==", + "dev": true, + "requires": { + "ansicolors": "^0.3.2", + "debug": "^3.2.5", + "lodash.assign": "^4.2.0", + "lodash.assignin": "^4.2.0", + "lodash.clone": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "lru-cache": "^4.0.0", + "semver": "^5.5.1", + "snyk-module": "^1.6.0", + "snyk-resolve": "^1.0.0", + "snyk-tree": "^1.0.0", + "snyk-try-require": "^1.1.1", + "then-fs": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "snyk-tree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/snyk-tree/-/snyk-tree-1.0.0.tgz", + "integrity": "sha512-JQezX6eaVi0uNctPcx2Uzy5KA9lpTRRe31n8NI71DIseGvI6OVCfuKjzFptE06h4ZISMey351ICXnHBadBtWdg==", + "dev": true, + "requires": { + "archy": "^1.0.0" + } + }, + "snyk-try-require": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/snyk-try-require/-/snyk-try-require-1.3.1.tgz", + "integrity": "sha512-adCnpfCvigiarbADOHuqh82P4aQUlyq6nWzhVmEUly62Q3tnVg4BGtgjYISkaj9GGBmpgVZiJegENBpQr02NsQ==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.clonedeep": "^4.3.0", + "lru-cache": "^4.0.0", + "then-fs": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -11035,6 +11635,15 @@ "minimatch": "^3.0.4" } }, + "then-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/then-fs/-/then-fs-2.0.0.tgz", + "integrity": "sha512-5ffcBcU+vFUCYDNi/o507IqjqrTkuGsLVZ1Fp50hwgZRY7ufVFa9jFfTy5uZ2QnSKacKigWKeaXkOqLa4DsjLw==", + "dev": true, + "requires": { + "promise": ">=3.2 <8" + } + }, "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", diff --git a/mission-report/flight-evaluation-report/node/package.json b/mission-report/flight-evaluation-report/node/package.json index bcd5f6f0..79848e02 100644 --- a/mission-report/flight-evaluation-report/node/package.json +++ b/mission-report/flight-evaluation-report/node/package.json @@ -41,6 +41,7 @@ "grunt-contrib-htmlmin": "^3.1.0", "grunt-contrib-sass": "^2.0.0", "grunt-contrib-uglify": "^5.2.2", + "grunt-license-finder": "^2.0.0", "grunt-webpack": "^6.0.0", "jest": "^29.5.0", "jest-cli": "^29.5.0",