diff --git a/README.md b/README.md index 6d1c91c7d..9c5152bd3 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,8 @@ Options: [choices: "appsec", "research", "operational", "threat-modeling", "license-compliance", "generic"] [default: "generic" ] --exclude Additional glob pattern(s) to ignore [array] - --include-formulation Generate formulation section using git metadata. [boolean] [default: false] + --include-formulation Generate formulation section with git metadata and build tools. Defaults to true. Invoke + with --no-include-formulation to disable. [boolean] [default: true] --include-crypto Include crypto libraries found under formulation. [boolean] [default: false] --standard The list of standards which may consist of regulations, industry or organizational-specif ic standards, maturity models, best practices, or any other requirements which can be eva diff --git a/bin/cdxgen.js b/bin/cdxgen.js index 73745a782..b5f3b002b 100755 --- a/bin/cdxgen.js +++ b/bin/cdxgen.js @@ -246,8 +246,9 @@ const args = yargs(hideBin(process.argv)) }) .option("include-formulation", { type: "boolean", - default: false, - description: "Generate formulation section using git metadata.", + default: true, + description: + "Generate formulation section with git metadata and build tools. Defaults to true. Invoke with --no-include-formulation to disable.", }) .option("include-crypto", { type: "boolean", diff --git a/ci/Dockerfile b/ci/Dockerfile index a8a6c684f..ca86d5932 100644 --- a/ci/Dockerfile +++ b/ci/Dockerfile @@ -13,8 +13,8 @@ LABEL maintainer="cyclonedx" \ ARG SWIFT_SIGNING_KEY=A62AE125BBBFBB96A6E042EC925CC1CCED3D1561 ARG SWIFT_PLATFORM=ubi9 -ARG SWIFT_BRANCH=swift-5.8-release -ARG SWIFT_VERSION=swift-5.8-RELEASE +ARG SWIFT_BRANCH=swift-5.10.1-release +ARG SWIFT_VERSION=swift-5.10.1-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org ARG JAVA_VERSION=22.0.1-tem ARG SBT_VERSION=1.9.9 @@ -35,7 +35,7 @@ ENV GOPATH=/opt/app-root/go \ GRADLE_HOME="/opt/gradle/${GRADLE_VERSION}" \ SBT_HOME="/opt/sbt/${SBT_VERSION}" \ PYTHON_VERSION=3.12 \ - PYTHON_CMD=/usr/bin/python${PYTHON_VERSION} \ + PYTHON_CMD=/usr/bin/python3.12 \ PYTHONUNBUFFERED=1 \ PYTHONIOENCODING="utf-8" \ COMPOSER_ALLOW_SUPERUSER=1 \ @@ -51,8 +51,13 @@ ENV GOPATH=/opt/app-root/go \ LANGUAGE=en_US.UTF-8 \ NVM_DIR="/root/.nvm" \ TMPDIR=/tmp \ - NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" -ENV PATH=${PATH}:/root/.nvm/versions/node/v${NODE_VERSION}/bin:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${GRADLE_HOME}/bin:${SBT_HOME}/bin:${GOPATH}/bin:/usr/local/go/bin:/usr/local/bin/:/root/.local/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:/root/.cargo/bin: + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ + PYTHONPATH=/opt/pypi \ + CDXGEN_IN_CONTAINER=true \ + npm_config_python=/usr/bin/python3.12 +ENV PATH=${PATH}:/root/.nvm/versions/node/v${NODE_VERSION}/bin:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${GRADLE_HOME}/bin:${SBT_HOME}/bin:${GOPATH}/bin:/usr/local/go/bin:/usr/local/bin/:/root/.local/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:/root/.cargo/bin:/opt/pypi/bin: + +COPY . /opt/cdxgen RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -71,11 +76,14 @@ RUN set -e; \ && microdnf install -y php php-curl php-zip php-bcmath php-json php-pear php-mbstring php-devel make gcc git-core \ python${PYTHON_VERSION} python${PYTHON_VERSION}-devel python${PYTHON_VERSION}-pip ruby ruby-devel glibc-common glibc-all-langpacks \ pcre2 which tar gzip zip unzip bzip2 sudo ncurses sqlite-devel dotnet-sdk-8.0 \ - && alternatives --install /usr/bin/python3 python /usr/bin/python${PYTHON_VERSION} 1 \ - && alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 1 \ - && python${PYTHON_VERSION} --version \ - && python${PYTHON_VERSION} -m pip install --no-cache-dir --upgrade pip virtualenv \ - && python${PYTHON_VERSION} -m pip install --no-cache-dir --user pipenv poetry blint \ + && alternatives --install /usr/bin/python3 python /usr/bin/python${PYTHON_VERSION} 10 \ + && alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 10 \ + && /usr/bin/python${PYTHON_VERSION} --version \ + && /usr/bin/python${PYTHON_VERSION} -m pip install --no-cache-dir --upgrade pip virtualenv \ + && /usr/bin/python${PYTHON_VERSION} -m pip install --no-cache-dir --upgrade pipenv poetry blint --target /opt/pypi \ + && /opt/pypi/bin/poetry --version \ + && /opt/pypi/bin/pipenv --version \ + && /opt/pypi/bin/blint --help \ && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \ && cargo --version \ && rustc --version \ @@ -135,14 +143,13 @@ RUN set -e; \ && mv composer.phar /usr/local/bin/composer \ && gem install bundler \ && gem --version \ - && bundler --version -COPY . /opt/cdxgen -RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod \ + && bundler --version \ + && cd /opt/cdxgen && corepack enable && corepack pnpm install --prod \ && mkdir -p /opt/cdxgen-node-cache \ && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ && chmod a-w -R /opt \ && node /opt/cdxgen/bin/cdxgen.js --help \ - && rm -rf /var/cache/yum \ + && rm -rf /var/cache/yum /root/.cache/pypoetry \ && microdnf clean all ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] \ No newline at end of file diff --git a/ci/Dockerfile-bun b/ci/Dockerfile-bun index 6e7c85068..2682d7510 100644 --- a/ci/Dockerfile-bun +++ b/ci/Dockerfile-bun @@ -13,8 +13,8 @@ LABEL maintainer="cyclonedx" \ ARG SWIFT_SIGNING_KEY=A62AE125BBBFBB96A6E042EC925CC1CCED3D1561 ARG SWIFT_PLATFORM=ubi9 -ARG SWIFT_BRANCH=swift-5.8-release -ARG SWIFT_VERSION=swift-5.8-RELEASE +ARG SWIFT_BRANCH=swift-5.10.1-release +ARG SWIFT_VERSION=swift-5.10.1-release ARG SWIFT_WEBROOT=https://download.swift.org ARG JAVA_VERSION=22.0.1-tem ARG SBT_VERSION=1.9.9 @@ -34,7 +34,7 @@ ENV GOPATH=/opt/app-root/go \ GRADLE_HOME="/opt/gradle/${GRADLE_VERSION}" \ SBT_HOME="/opt/sbt/${SBT_VERSION}" \ PYTHON_VERSION=3.12 \ - PYTHON_CMD=/usr/bin/python${PYTHON_VERSION} \ + PYTHON_CMD=/usr/bin/python3.12 \ PYTHONUNBUFFERED=1 \ PYTHONIOENCODING="utf-8" \ COMPOSER_ALLOW_SUPERUSER=1 \ @@ -43,8 +43,10 @@ ENV GOPATH=/opt/app-root/go \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT -ENV PATH=${PATH}:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${GRADLE_HOME}/bin:${SBT_HOME}/bin:${GOPATH}/bin:/usr/local/go/bin:/usr/local/bin/:/root/.local/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:/root/.bun/bin:/root/.cargo/bin: + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + CDXGEN_IN_CONTAINER=true \ + PYTHONPATH=/opt/pypi +ENV PATH=${PATH}:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${GRADLE_HOME}/bin:${SBT_HOME}/bin:${GOPATH}/bin:/usr/local/go/bin:/usr/local/bin/:/root/.local/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:/root/.bun/bin:/root/.cargo/bin:/opt/pypi/bin: RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -63,10 +65,11 @@ RUN set -e; \ && microdnf install -y php php-curl php-zip php-bcmath php-json php-pear php-mbstring php-devel make gcc git-core \ python${PYTHON_VERSION} python${PYTHON_VERSION}-devel python${PYTHON_VERSION}-pip ruby ruby-devel \ pcre2 which tar gzip zip unzip bzip2 sudo ncurses sqlite-devel dotnet-sdk-8.0 \ - && alternatives --install /usr/bin/python3 python /usr/bin/python${PYTHON_VERSION} 1 \ + && alternatives --install /usr/bin/python3 python /usr/bin/python${PYTHON_VERSION} 10 \ + && alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 10 \ && python${PYTHON_VERSION} --version \ && python${PYTHON_VERSION} -m pip install --no-cache-dir --upgrade pip virtualenv \ - && python${PYTHON_VERSION} -m pip install --no-cache-dir --user pipenv poetry blint \ + && python${PYTHON_VERSION} -m pip install --no-cache-dir --upgrade pipenv poetry blint --target /opt/pypi \ && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \ && cargo --version \ && rustc --version \ diff --git a/ci/Dockerfile-deno b/ci/Dockerfile-deno index 676f4b04c..41c888a9c 100644 --- a/ci/Dockerfile-deno +++ b/ci/Dockerfile-deno @@ -13,8 +13,8 @@ LABEL maintainer="cyclonedx" \ ARG SWIFT_SIGNING_KEY=A62AE125BBBFBB96A6E042EC925CC1CCED3D1561 ARG SWIFT_PLATFORM=ubi9 -ARG SWIFT_BRANCH=swift-5.8-release -ARG SWIFT_VERSION=swift-5.8-RELEASE +ARG SWIFT_BRANCH=swift-5.10.1-release +ARG SWIFT_VERSION=swift-5.10.1-release ARG SWIFT_WEBROOT=https://download.swift.org ARG JAVA_VERSION=22.0.1-tem ARG SBT_VERSION=1.9.9 @@ -34,7 +34,7 @@ ENV GOPATH=/opt/app-root/go \ GRADLE_HOME="/opt/gradle/${GRADLE_VERSION}" \ SBT_HOME="/opt/sbt/${SBT_VERSION}" \ PYTHON_VERSION=3.12 \ - PYTHON_CMD=/usr/bin/python${PYTHON_VERSION} \ + PYTHON_CMD=/usr/bin/python3.12 \ PYTHONUNBUFFERED=1 \ PYTHONIOENCODING="utf-8" \ COMPOSER_ALLOW_SUPERUSER=1 \ @@ -45,8 +45,10 @@ ENV GOPATH=/opt/app-root/go \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT -ENV PATH=${PATH}:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${GRADLE_HOME}/bin:${SBT_HOME}/bin:${GOPATH}/bin:/usr/local/go/bin:/usr/local/bin/:/root/.local/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:/root/.deno/bin/:/root/.cargo/bin: + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + CDXGEN_IN_CONTAINER=true \ + PYTHONPATH=/opt/pypi +ENV PATH=${PATH}:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${GRADLE_HOME}/bin:${SBT_HOME}/bin:${GOPATH}/bin:/usr/local/go/bin:/usr/local/bin/:/root/.local/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:/root/.deno/bin/:/root/.cargo/bin:/opt/pypi/bin: RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -65,11 +67,11 @@ RUN set -e; \ && microdnf install -y php php-curl php-zip php-bcmath php-json php-pear php-mbstring php-devel make gcc git-core \ python${PYTHON_VERSION} python${PYTHON_VERSION}-devel python${PYTHON_VERSION}-pip ruby ruby-devel \ pcre2 which tar gzip zip unzip bzip2 sudo ncurses sqlite-devel dotnet-sdk-8.0 \ - && alternatives --install /usr/bin/python3 python /usr/bin/python${PYTHON_VERSION} 1 \ - && alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 1 \ + && alternatives --install /usr/bin/python3 python /usr/bin/python${PYTHON_VERSION} 10 \ + && alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 10 \ && python${PYTHON_VERSION} --version \ && python${PYTHON_VERSION} -m pip install --no-cache-dir --upgrade pip virtualenv \ - && python${PYTHON_VERSION} -m pip install --no-cache-dir --user pipenv poetry blint \ + && python${PYTHON_VERSION} -m pip install --no-cache-dir --upgrade pipenv poetry blint --target /opt/pypi \ && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \ && cargo --version \ && rustc --version \ diff --git a/ci/Dockerfile-ppc64 b/ci/Dockerfile-ppc64 index c679121b3..cccc43ab8 100644 --- a/ci/Dockerfile-ppc64 +++ b/ci/Dockerfile-ppc64 @@ -26,12 +26,14 @@ ENV GOPATH=/opt/app-root/go \ GRADLE_HOME="/opt/gradle/${GRADLE_VERSION}" \ SBT_HOME="/opt/sbt/${SBT_VERSION}" \ PYTHON_VERSION=3.12 \ - PYTHON_CMD=/usr/bin/python${PYTHON_VERSION} \ + PYTHON_CMD=/usr/bin/python3.12 \ PYTHONUNBUFFERED=1 \ PYTHONIOENCODING="utf-8" \ COMPOSER_ALLOW_SUPERUSER=1 \ - ANDROID_HOME=/opt/android-sdk-linux -ENV PATH=${PATH}:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${GRADLE_HOME}/bin:${SBT_HOME}/bin:${GOPATH}/bin:/usr/local/go/bin:/usr/local/bin/:/root/.local/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:/${HOME}/.cargo/bin: + ANDROID_HOME=/opt/android-sdk-linux \ + CDXGEN_IN_CONTAINER=true \ + PYTHONPATH=/opt/pypi +ENV PATH=${PATH}:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${GRADLE_HOME}/bin:${SBT_HOME}/bin:${GOPATH}/bin:/usr/local/go/bin:/usr/local/bin/:/root/.local/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:/${HOME}/.cargo/bin:/opt/pypi/bin: RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -55,14 +57,15 @@ RUN set -e; \ && microdnf install -y php php-curl php-zip php-bcmath php-json php-pear php-mbstring php-devel make gcc git-core \ python${PYTHON_VERSION} python${PYTHON_VERSION}-devel python${PYTHON_VERSION}-pip ruby ruby-devel java-21-openjdk-headless \ pcre2 which tar gzip zip unzip bzip2 sudo nodejs ncurses sqlite-devel \ - && alternatives --install /usr/bin/python3 python /usr/bin/python${PYTHON_VERSION} 1 \ + && alternatives --install /usr/bin/python3 python /usr/bin/python${PYTHON_VERSION} 10 \ + && alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 10 \ && python${PYTHON_VERSION} --version \ && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \ && source "$HOME/.cargo/env" \ && cargo --version \ && rustc --version \ && python${PYTHON_VERSION} -m pip install --no-cache-dir --upgrade pip virtualenv \ - && python${PYTHON_VERSION} -m pip install --no-cache-dir --user pipenv poetry \ + && python${PYTHON_VERSION} -m pip install --no-cache-dir --upgrade pipenv poetry --target /opt/pypi \ && curl -s "https://get.sdkman.io" | bash \ && source "$HOME/.sdkman/bin/sdkman-init.sh" \ && echo -e "sdkman_auto_answer=true\nsdkman_selfupdate_feature=false\nsdkman_auto_env=true" >> $HOME/.sdkman/etc/config \ diff --git a/deno.json b/deno.json index 7d2714895..312c80406 100644 --- a/deno.json +++ b/deno.json @@ -42,7 +42,7 @@ "gen-types": "npx -p typescript tsc" }, "imports": { - "@appthreat/atom": "npm:@appthreat/atom@2.0.15", + "@appthreat/atom": "npm:@appthreat/atom@2.0.16", "@appthreat/cdx-proto": "npm:@appthreat/cdx-proto@1.0.1", "@babel/parser": "npm:@babel/parser@^7.24.7", "@babel/traverse": "npm:@babel/traverse@^7.24.7", @@ -52,7 +52,7 @@ "cheerio": "npm:cheerio@^1.0.0-rc.12", "edn-data": "npm:edn-data@1.1.2", "find-up": "npm:find-up@7.0.0", - "glob": "npm:glob@^10.4.2", + "glob": "npm:glob@^10.4.3", "global-agent": "npm:global-agent@^3.0.0", "got": "npm:got@14.4.1", "iconv-lite": "npm:iconv-lite@^0.6.3", diff --git a/display.js b/display.js index 2517e4785..4f2f0d2d9 100644 --- a/display.js +++ b/display.js @@ -430,7 +430,10 @@ export const printSummary = (bomJson) => { if (!bomPkgTypes.length && !bomPkgNamespaces.length) { return; } - const message = `** Package Types (${bomPkgTypes.length}) **\n${bomPkgTypes.join("\n")}\n\n** Namespaces (${bomPkgNamespaces.length}) **\n${bomPkgNamespaces.join("\n")}`; + let message = `** Package Types (${bomPkgTypes.length}) **\n${bomPkgTypes.join("\n")}`; + if (bomPkgNamespaces.length) { + message = `${message}\n\n** Namespaces (${bomPkgNamespaces.length}) **\n${bomPkgNamespaces.join("\n")}`; + } const data = [[message]]; console.log(table(data, config)); }; diff --git a/docs/CLI.md b/docs/CLI.md index 705404795..6bbf4fed9 100644 --- a/docs/CLI.md +++ b/docs/CLI.md @@ -113,7 +113,8 @@ Options: [choices: "appsec", "research", "operational", "threat-modeling", "license-compliance", "generic"] [default: "generic" ] --exclude Additional glob pattern(s) to ignore [array] - --include-formulation Generate formulation section using git metadata. [boolean] [default: false] + --include-formulation Generate formulation section with git metadata and build tools. Defaults to true. Invoke + with --no-include-formulation to disable. [boolean] [default: true] --include-crypto Include crypto libraries found under formulation. [boolean] [default: false] --standard The list of standards which may consist of regulations, industry or organizational-specif ic standards, maturity models, best practices, or any other requirements which can be eva diff --git a/docs/PROJECT_TYPES.md b/docs/PROJECT_TYPES.md index 5f0381dfa..8086d575a 100644 --- a/docs/PROJECT_TYPES.md +++ b/docs/PROJECT_TYPES.md @@ -3,53 +3,52 @@ ## Overview The following **Project Types** are supported: + - When in `CLI` mode, passed as `t` or `--type` flag - When in `Server` mode, passed as `projectType` parameter. -_Note: there are multiple project types / aliases that will produce the same output_ +_Note: there are multiple project types / aliases that will produce the same output_ ## Supported languages and package formats -| Language/Platform | Project Types | Package Formats | Supported Evidence | Supports Transitives | -| - | - | - | - | - | -| Node.js | `npm`, `pnpm`, `nodejs`, `js`, `javascript`, `typescript`, `ts`, `tsx` | `npm-shrinkwrap.json`, `package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, `rush.js`, `bower.json`, `.min.js` | Yes, except for `.min.` | ✅ -| Java | `java`, `groovy`, `kotlin`, `scala`, `jvm`, `gradle`, `mvn`, `maven`, `sbt`| `pom.xml` [1], `build.gradle`, `.kts`, `sbt`, `bazel` | Yes, unless `pom.xml` is manually parsed due to unavailability of maven or errors) | ✅| -| Android | `android`, `apk`, `aab`| `apk`, `aab` | - | - | -| JAR | `jar` | `.jar` | - | - | -| JAR (Gradle Cache) | `gradle-index`, `gradle-cache` | `$HOME/caches/modules-2/files-2.1/\*\*/\*.jar` | - | - | -| JAR (SBT Cache) | `sbt-index`, `sbt-cache` | `$HOME/.ivy2/cache/\*\*/\*.jar ` | - | - | -| JAR (Maven Cache) | `maven-index`, `maven-cache`, `maven-repo` | `$HOME/.m2/repository/\*\*/\*.jar` | - | - | -| Python | `python`, `py`, `pypi` | `pyproject.toml`, `setup.py`, `requirements.txt` [2], `Pipfile.lock`, `poetry.lock`, `pdm.lock`, `bdist_wheel`, `.whl`, `.egg-info` | Yes using the automatic pip install/freeze. When disabled, only with `Pipfile.lock` and `poetry.lock` | ✅ | -| Golang | `go`, `golang` | `binary`, `go.mod`, `go.sum`, `Gopkg.lock` | Yes except binary | ✅ | -| Rust | `rust`, `rust-lang`, `cargo` | `binary`, `Cargo.toml`, `Cargo.lock` | Only for `Cargo.lock` | - | -| Ruby | `ruby`, `gems` | `Gemfile.lock`, `gemspec` | Only for `Gemfile.lock` | - | -| .NET (#C) | `csharp`, `netcore`, `dotnet`, `vb`, `dotnet-framework` | `.csproj`, `.vbproj`, `.fsproj`, `packages.config`, `project.assets.json` [3], `packages.lock.json`, `.nupkg`, `paket.lock`, `binary` | Only for `project.assets.json`, `packages.lock.json`, `paket.lock` | - | -| Dart | `dart`, `flutter`, `pub` | `pubspec.lock`, `pubspec.yaml` | Only for `pubspec.lock` | - | -| Haskell | `haskell`, `hackage`, `cabal` | `cabal.project.freeze` | Yes | | -| Elixir | `elixir`, `hex`, `mix` | `mix.lock` | Yes | - | -| C++ | `c`, `cpp`, `c++`, `conan` | `conan.lock`, `conanfile.txt`, `\*.cmake`, `CMakeLists.txt`, `meson.build`, codebase without package managers! | Yes only for `conan.lock`. Best effort basis for `cmake` without version numbers. | ✅ | -| Clojure | `clojure`, `edn`, `clj`, `leiningen` | `deps.edn`, `project.clj` | Yes unless the files are parsed manually due to lack of clojure cli or leiningen command | - | -| GitHub Actions | `github`, `actions` | `.github/workflows/\*.yml` | n/a | ✅ | -| Operation System (OS) | `os`, `osquery`, `windows`, `linux`, `mac`, `macos`, `darwin` | -| Jenkins Plugins | `jenkins` | `.hpi files` | - | ✅ | -| Helm | `helm`, `charts` | `.yaml` | n/a | | -| Helm (Cache) | `helm-index`, `helm-repo` | `$HOME/.cache/helm/repository/\*\*/\*.yaml` | - | - | -| Container | `universal`, `containerfile`, `docker-compose`, `dockerfile`, `swarm`, `tekton`, `kustomize`, `operator`, `skaffold`, `kubernetes`, `openshift`, `yaml-manifest` | `.yaml`, `docker-compose\*.yml`, `*Dockerfile*`, `*Containerfile*`, `bitbucket-pipelines.yml` | n/a | - | -| Google Cloud Build | `cloudbuild` | `cloudbuild.yaml` | n/a | - | -| Swift (iOS) | `swift` | `Package.resolved`, `Package.swift` (swiftpm) | Yes | - | -| Binary | `binary`, `blint` | -| Open API | Open API Specification, Swagger | `openapi\*.json`, `openapi\*.yaml`| n/a | - | - - - -*_NOTE:_* +| Language/Platform | Project Types | Package Formats | Supported Evidence | Supports Transitives | +| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -------------------- | +| Node.js | `npm`, `pnpm`, `nodejs`, `js`, `javascript`, `typescript`, `ts`, `tsx` | `npm-shrinkwrap.json`, `package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, `rush.js`, `bower.json`, `.min.js` | Yes, except for `.min.` | ✅ | +| Java | `java`, `groovy`, `kotlin`, `scala`, `jvm`, `gradle`, `mvn`, `maven`, `sbt` | `pom.xml` [1], `build.gradle`, `.kts`, `sbt`, `bazel` | Yes, unless `pom.xml` is manually parsed due to unavailability of maven or errors) | ✅ | +| Android | `android`, `apk`, `aab` | `apk`, `aab` | - | - | +| JAR | `jar` | `.jar` | - | - | +| JAR (Gradle Cache) | `gradle-index`, `gradle-cache` | `$HOME/caches/modules-2/files-2.1/\*\*/\*.jar` | - | - | +| JAR (SBT Cache) | `sbt-index`, `sbt-cache` | `$HOME/.ivy2/cache/\*\*/\*.jar ` | - | - | +| JAR (Maven Cache) | `maven-index`, `maven-cache`, `maven-repo` | `$HOME/.m2/repository/\*\*/\*.jar` | - | - | +| Python | `python`, `py`, `pypi` | `pyproject.toml`, `setup.py`, `requirements.txt` [2], `Pipfile.lock`, `poetry.lock`, `pdm.lock`, `bdist_wheel`, `.whl`, `.egg-info` | Yes using the automatic pip install/freeze. When disabled, only with `Pipfile.lock` and `poetry.lock` | ✅ | +| Golang | `go`, `golang` | `binary`, `go.mod`, `go.sum`, `Gopkg.lock` | Yes except binary | ✅ | +| Rust | `rust`, `rust-lang`, `cargo` | `binary`, `Cargo.toml`, `Cargo.lock` | Only for `Cargo.lock` | - | +| Ruby | `ruby`, `gems` | `Gemfile.lock`, `gemspec` | Only for `Gemfile.lock` | - | +| .NET (#C) | `csharp`, `netcore`, `dotnet`, `vb`, `dotnet-framework` | `.csproj`, `.vbproj`, `.fsproj`, `packages.config`, `project.assets.json` [3], `packages.lock.json`, `.nupkg`, `paket.lock`, `binary` | Only for `project.assets.json`, `packages.lock.json`, `paket.lock` | - | +| Dart | `dart`, `flutter`, `pub` | `pubspec.lock`, `pubspec.yaml` | Only for `pubspec.lock` | - | +| Haskell | `haskell`, `hackage`, `cabal` | `cabal.project.freeze` | Yes | | +| Elixir | `elixir`, `hex`, `mix` | `mix.lock` | Yes | - | +| C++ | `c`, `cpp`, `c++`, `conan` | `conan.lock`, `conanfile.txt`, `\*.cmake`, `CMakeLists.txt`, `meson.build`, codebase without package managers! | Yes only for `conan.lock`. Best effort basis for `cmake` without version numbers. | ✅ | +| Clojure | `clojure`, `edn`, `clj`, `leiningen` | `deps.edn`, `project.clj` | Yes unless the files are parsed manually due to lack of clojure cli or leiningen command | - | +| GitHub Actions | `github`, `actions` | `.github/workflows/\*.yml` | n/a | ✅ | +| Operation System (OS) | `os`, `osquery`, `windows`, `linux`, `mac`, `macos`, `darwin` | +| Jenkins Plugins | `jenkins` | `.hpi files` | - | ✅ | +| Helm | `helm`, `charts` | `.yaml` | n/a | | +| Helm (Cache) | `helm-index`, `helm-repo` | `$HOME/.cache/helm/repository/\*\*/\*.yaml` | - | - | +| Container | `universal`, `containerfile`, `docker-compose`, `dockerfile`, `swarm`, `tekton`, `kustomize`, `operator`, `skaffold`, `kubernetes`, `openshift`, `yaml-manifest` | `.yaml`, `docker-compose\*.yml`, `*Dockerfile*`, `*Containerfile*`, `bitbucket-pipelines.yml` | n/a | - | +| Google Cloud Build | `cloudbuild` | `cloudbuild.yaml` | n/a | - | +| Swift (iOS) | `swift` | `Package.resolved`, `Package.swift` (swiftpm) | Yes | - | +| Binary | `binary`, `blint` | +| Open API | Open API Specification, Swagger | `openapi\*.json`, `openapi\*.yaml` | n/a | - | + +_*NOTE:*_ > - Apache maven 3.x is required for parsing pom.xml > - gradle or gradlew is required to parse gradle projects > - sbt is required for parsing scala sbt projects. Only scala 2.10 + sbt 0.13.6+ and 2.12 + sbt 1.0+ are currently supported. -> - Alternatively, create a lock file using sbt-dependency-lock [plugin](https://github.com/stringbean/sbt-dependency-lock) +> - Alternatively, create a lock file using sbt-dependency-lock [plugin](https://github.com/stringbean/sbt-dependency-lock) -*_Footnotes:_* +_*Footnotes:*_ - [1] - For multi-module applications, the BOM file could include components not included in the packaged war or ear file. - [2] - Pip freeze is automatically performed to improve precision. Requires virtual environment. diff --git a/docs/README.md b/docs/README.md index d307ee868..261b21808 100644 --- a/docs/README.md +++ b/docs/README.md @@ -151,7 +151,6 @@ cdxgen -t java -o bom.json --server-url https://deptrack.server.com --api-key "t See our [Supported Project Types](https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES) documentation - # Advanced Usage cdxgen supports advanced use cases as a library and in REPL mode. diff --git a/docs/SERVER.md b/docs/SERVER.md index ed08c62a1..01f11f5b1 100644 --- a/docs/SERVER.md +++ b/docs/SERVER.md @@ -29,7 +29,6 @@ Use curl or your favorite tool to pass arguments to the `/sbom` route. View the latest [cdxgen server API specification](https://github.com/CycloneDX/cdxgen/blob/master/lib/server/openapi.yaml) online via [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/CycloneDX/cdxgen/master/lib/server/openapi.yaml). - ## Server arguments Arguments can be passed either via the query string or as a JSON body. The following arguments are supported. diff --git a/docs/SUPPORT.md b/docs/SUPPORT.md index 15c0ff3f1..a07b992c0 100644 --- a/docs/SUPPORT.md +++ b/docs/SUPPORT.md @@ -2,12 +2,12 @@ ## Enterprise Support -Enterprise support, including custom development and integration services, is available via [AppThreat Ltd][appthreat-homepage]. - +Enterprise support, including custom development and integration services, is available via [AppThreat Ltd][appthreat-homepage]. ## Community Support + Free community support is also available via our [GitHub Discussions][cdxgen-discussions] or the [OWASP CycloneDX Slack][cyclonedx-cdxgen-slack]. [appthreat-homepage]: https://www.appthreat.com [cdxgen-discussions]: https://github.com/CycloneDX/cdxgen/discussions -[cyclonedx-cdxgen-slack]: https://cyclonedx.slack.com/archives/C04NFFE1962 \ No newline at end of file +[cyclonedx-cdxgen-slack]: https://cyclonedx.slack.com/archives/C04NFFE1962 diff --git a/index.js b/index.js index 66bc30e3d..0ed53ed62 100644 --- a/index.js +++ b/index.js @@ -1317,6 +1317,14 @@ export async function createJavaBom(path, options) { } // Use the cyclonedx maven plugin if there is no preference for maven deps tree if (!PREFER_MAVEN_DEPS_TREE) { + if (DEBUG_MODE) { + console.log( + "cdxgen now supports generating SBOM with only the maven cli without the need for the cyclonedx-maven plugin. This mode works better in enterprise environments and in multi-module projects.", + ); + console.log( + "Set the environment variable PREFER_MAVEN_DEPS_TREE to true to enable this.", + ); + } console.log( `Executing '${mavenCmd} ${mvnArgs.join(" ")}' in`, basePath, @@ -1826,6 +1834,11 @@ export async function createJavaBom(path, options) { } } } else { + if (DEBUG_MODE) { + console.log( + "Try the new multi-threaded mode for gradle. Set the environment variable GRADLE_MULTI_THREADED to true to enable this.", + ); + } for (const sp of allProjects) { let gradleSubProjectDepArgs = [ sp.purl === parentComponent.purl diff --git a/package.json b/package.json index 8c637d077..36db4704c 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "bugs": { "url": "https://github.com/cyclonedx/cdxgen/issues" }, - "packageManager": "pnpm@9.4.0", + "packageManager": "pnpm@9.5.0", "dependencies": { "@babel/parser": "^7.24.7", "@babel/traverse": "^7.24.7", @@ -75,7 +75,7 @@ "cheerio": "^1.0.0-rc.12", "edn-data": "1.1.2", "find-up": "7.0.0", - "glob": "^10.4.2", + "glob": "^10.4.3", "global-agent": "^3.0.0", "got": "14.4.1", "iconv-lite": "^0.6.3", @@ -95,7 +95,7 @@ "validate-iri": "^1.0.1" }, "optionalDependencies": { - "@appthreat/atom": "2.0.15", + "@appthreat/atom": "2.0.16", "@appthreat/cdx-proto": "1.0.1", "@cyclonedx/cdxgen-plugins-bin": "1.6.0", "@cyclonedx/cdxgen-plugins-bin-arm64": "1.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36e53477e..598d73476 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: 7.0.0 version: 7.0.0 glob: - specifier: ^10.4.2 - version: 10.4.2 + specifier: ^10.4.3 + version: 10.4.3 global-agent: specifier: ^3.0.0 version: 3.0.0 @@ -88,8 +88,8 @@ importers: version: 17.7.2 optionalDependencies: '@appthreat/atom': - specifier: 2.0.15 - version: 2.0.15 + specifier: 2.0.16 + version: 2.0.16 '@appthreat/cdx-proto': specifier: 1.0.1 version: 1.0.1 @@ -149,8 +149,8 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@appthreat/atom@2.0.15': - resolution: {integrity: sha512-IpJu5XkwCcgQiG9xgWVm9to+gWZ4hHSGu8J/IybnRE1HJCTaxEORyY6eJq61Rphk65FLbpEX8RBbWGMQVl3UQQ==} + '@appthreat/atom@2.0.16': + resolution: {integrity: sha512-KB4NcBWCxIgeFl+93KqbVhDIKv6v7JjbgoyH+ywmP9yLlRPKgvQJEyfYEZqjatsFjLnBOFgwGaWorJGjdkOKJg==} engines: {node: '>=16.0.0'} hasBin: true @@ -1343,9 +1343,9 @@ packages: github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - glob@10.4.2: - resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} - engines: {node: '>=16 || 14 >=14.18'} + glob@10.4.3: + resolution: {integrity: sha512-Q38SGlYRpVtDBPSWEylRyctn7uDeTp4NQERTLiCT1FqA9JXPYWqAVmQU6qh4r/zMM5ehxTcbaO8EjhWnvEhmyg==} + engines: {node: '>=18'} hasBin: true glob@7.2.3: @@ -2748,7 +2748,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@appthreat/atom@2.0.15': + '@appthreat/atom@2.0.16': dependencies: '@babel/parser': 7.24.7 typescript: 5.5.3 @@ -3344,7 +3344,7 @@ snapshots: '@npmcli/map-workspaces@3.0.6': dependencies: '@npmcli/name-from-folder': 2.0.0 - glob: 10.4.2 + glob: 10.4.3 minimatch: 9.0.4 read-package-json-fast: 3.0.2 @@ -3372,7 +3372,7 @@ snapshots: '@npmcli/package-json@5.2.0': dependencies: '@npmcli/git': 5.0.7 - glob: 10.4.2 + glob: 10.4.3 hosted-git-info: 7.0.2 json-parse-even-better-errors: 3.0.2 normalize-package-data: 6.0.1 @@ -3779,7 +3779,7 @@ snapshots: dependencies: '@npmcli/fs': 3.1.1 fs-minipass: 3.0.3 - glob: 10.4.2 + glob: 10.4.3 lru-cache: 10.2.2 minipass: 7.1.2 minipass-collect: 2.0.1 @@ -4227,7 +4227,7 @@ snapshots: github-from-package@0.0.0: optional: true - glob@10.4.2: + glob@10.4.3: dependencies: foreground-child: 3.1.1 jackspeak: 3.2.0 @@ -5059,7 +5059,7 @@ snapshots: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.4.2 + glob: 10.4.3 graceful-fs: 4.2.11 make-fetch-happen: 13.0.1 nopt: 7.2.1 diff --git a/test/diff/generate.py b/test/diff/generate.py index a6db283b9..7169a90c1 100644 --- a/test/diff/generate.py +++ b/test/diff/generate.py @@ -325,6 +325,7 @@ def run_cdxgen(repo, output_dir): """ cdxgen_cmd = [ 'cdxgen', + "--no-include-formulation", '-t', repo['language'], '-o', diff --git a/types/display.d.ts.map b/types/display.d.ts.map index a99da93ae..3e69d8a90 100644 --- a/types/display.d.ts.map +++ b/types/display.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../display.js"],"names":[],"mappings":"AAsWA,iEA0BC;AAED,uDAoBC;AAnYM,mFAmEN;AAQM,iDAkBN;AACM,kDAsBN;AAeM,qDA4BN;AACM,mDA8CN;AACM,wFAuCN;AA4DM,2DA+BN;AAoDM,iDA2BN"} \ No newline at end of file +{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../display.js"],"names":[],"mappings":"AAsWA,iEA0BC;AAED,uDAoBC;AAnYM,mFAmEN;AAQM,iDAkBN;AACM,kDAsBN;AAeM,qDA4BN;AACM,mDA8CN;AACM,wFAuCN;AA4DM,2DA+BN;AAoDM,iDA8BN"} \ No newline at end of file diff --git a/types/index.d.ts.map b/types/index.d.ts.map index 02a758793..0f97a024e 100644 --- a/types/index.d.ts.map +++ b/types/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.js"],"names":[],"mappings":"AAovBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAyUD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAy9BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA2chB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA4WhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BAkUhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqIhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAiDhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBA+KhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,qBAsHhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,0CAHW,MAAM,qBAuBhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BAqDhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,8BA4ChB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM,8BAwFhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBAgUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAwJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAmFhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAyWhB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDA2CC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,8BAubhB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAkUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAkOhB;AAED;;;;;;GAMG;AACH,wDAFY,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CA2FxE"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.js"],"names":[],"mappings":"AAovBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAyUD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAs+BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA2chB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA4WhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BAkUhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqIhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAiDhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBA+KhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,qBAsHhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,0CAHW,MAAM,qBAuBhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BAqDhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,8BA4ChB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM,8BAwFhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBAgUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAwJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAmFhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAyWhB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDA2CC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,8BAubhB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAkUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAkOhB;AAED;;;;;;GAMG;AACH,wDAFY,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CA2FxE"} \ No newline at end of file diff --git a/types/utils.d.ts.map b/types/utils.d.ts.map index 9883b5e5a..7fdd08b81 100644 --- a/types/utils.d.ts.map +++ b/types/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../utils.js"],"names":[],"mappings":"AAsSA;;;;;;GAMG;AACH,mGAkDC;AAgBD;;;;;GAKG;AACH,qCAHW,MAAM,WACN,MAAM,0BAqBhB;AAED;;;;;;GAMG;AACH,+CAJW,MAAM,WACN,MAAM,+BAoBhB;AAYD;;;;GAIG;AACH,gCAFa,MAAM,CAIlB;AAED;;;;;;IAMI;AACJ,iDAJW,MAAM,GACJ,OAAO,CAiBnB;AAED;;;;;;;;GAQG;AACH,iEAoBC;AAED;;;;;GAKG;AACH,6CAmDC;AAED;;;;;;GAMG;AACH,sEA0DC;AAED;;;;GAIG;AACH,4EAoCC;AAED;;;GAGG;AACH;;EAUC;AAED,sEA0BC;AAED;;;;GAIG;AACH,+DA4CC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,WACN,OAAO,kBAkFjB;AAED;;;;;GAKG;AACH,0CAHW,MAAM,YACN,MAAM;;;GAqVhB;AAED;;;;;;;GAOG;AACH,6CAFW,MAAM,MAwDhB;AAwBD;;;;GAIG;AACH,4CAFW,MAAM;;;GAqNhB;AAED;;;;GAIG;AACH,4CAFW,MAAM,kBAiEhB;AA2BD;;;;;GAKG;AACH,wCAHW,MAAM,oBACN,MAAM;;;;;;;;;GA0ZhB;AAED;;;;GAIG;AACH,8CAFW,MAAM,kBA+ChB;AAED;;;;GAIG;AACH,sCAFW,MAAM,kBAgFhB;AAED;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;IAqDC;AAED;;;;;;GAMG;AACH,0CALW,MAAM,WACN,MAAM,OAgJhB;AAED;;;;;;GAMG;AACH,0CALW,MAAM,qBACN,MAAM,oBACN,MAAM,uBACN,MAAM;;;;;;;;;;;;;;;;EAkNhB;AAED;;;GAGG;AACH,uCAFW,MAAM,SAoChB;AAED;;;GAGG;AACH,wCAFW,MAAM,OAahB;AAED,yEAwBC;AAED;;;;GAIG;AACH,+CAFW,MAAM;;;EA6ChB;AAED;;;;GAIG;AACH,iDAFW,MAAM;;;;;;;;EAsChB;AAED;;;;;;;;GAQG;AACH,qDANW,MAAM,YACN,MAAM,0BAGJ,MAAM,CA2DlB;AAED;;;;;;GAMG;AACH,6CAJW,MAAM,YACN,MAAM,cACN,MAAM,MA0EhB;AAED;;;GAGG;AACH,iDAFW,MAAM,SA4ChB;AAED;;;GAGG;AACH,8CAFW,MAAM,SAsDhB;AAED;;;GAGG;AACH,2CAFW,MAAM,SAiBhB;AAED;;GAEG;AACH,kDAoCC;AAED;;;;GAIG;AACH,oCAFW,MAAM,OAchB;AAED;;;;GAIG;AACH,kDAUC;AAED;;;;;GAKG;AACH,mFAiGC;AAED;;;;;;;;;GASG;AACH,sFAMC;AAED;;;;;;;;;GASG;AACH,gFAFY,MAAO,SAAS,CAwB3B;AAED;;;;;;;;;GASG;AACH,0EAFY,OAAO,QAAQ,CAU1B;AAED;;;;GAIG;AACH,4DAFW,WAAY,SAYtB;AAED;;;;;;;;;GASG;AACH,+FAFY,OAAO,QAAQ,CAc1B;AAED;;;;GAIG;AACH;;;EAqBC;AAED;;;;;GAKG;AACH,iFAFW,GAAC,OA0BX;AAED;;;;;GAKG;AACH,sFAsNC;AAED;;;;GAIG;AACH,qDAmBC;AAED;;;;GAIG;AACH,gEAeC;AAED;;;;GAIG;AACH,6CAFW,MAAM,MAmEhB;AAED;;;;;GAKG;AACH,6DAFW,MAAM;;;;;;;GAqHhB;AAED;;;;;GAKG;AACH,mFAgKC;AAED;;;;;;GAMG;AACH,kCAJW,MAAM;;;;;;;;GA2EhB;AAED;;;;GAIG;AACH,mEAqBC;AAED;;;;GAIG;AACH,+DAFY,SAAO,SAAS,CAc3B;AAED;;;;GAIG;AACH,oDAFY,QAAQ,CASnB;AAED;;;;;GAKG;AACH,oEAFY,SAAO,SAAS,CAc3B;AAED;;;;;;GAMG;AACH,oEAFY,OAAO,QAAQ,CA8D1B;AAED;;;;GAIG;AACH,iEAgDC;AAED,+FA4BC;AAED,8EA2EC;AAED;;;;;GAKG;AACH,0CAHW,MAAM;;;GA0DhB;AA0BD;;;;;;;;;GASG;AACH,2CAPW,MAAM,aACN,MAAM;;;;;;GA6FhB;AAED;;;;GAIG;AACH,yCAHW,MAAM,OAehB;AAED;;;;GAIG;AACH,0CAHW,MAAM,kBAuChB;AAED,+DA+CC;AAED,uEAwBC;AA6BD;;;;GAIG;AACH,oEAmGC;AAED;;;;GAIG;AACH,8CAFW,MAAM,kBAgChB;AAED;;;;;GAKG;AACH,kDAHW,MAAM,YACN,MAAM;;;;;;;;;;;;;;GAuPhB;AAED;;;;GAIG;AACH,kEAoEC;AAED;;;;GAIG;AACH,gEA0DC;AA0BD;;;;;;;;;;;;;;;;;GAiBG;AACH,mEALW,OAAO,4BAiLjB;AAED;;;;;;;;GAQG;AACH,+DALW,OAAO,4BAsIjB;AAED;;;IAwIC;AAED,wEA0BC;AAED,mEAqCC;AAED,0DAkBC;AAED,wDA+DC;AAED,0FAkEC;AAED;;IAqCC;AAED;;IA2DC;AAED,2DAiEC;AAED,yDAaC;AAaD,gDA+EC;AAED,yDAkDC;AAED,sDA0BC;AAED,sDAyBC;AAED,6DAwCC;AAED,yDAmCC;AAED,8DAsCC;AAED,sDAqDC;AAED,yDAgCC;AAED,qDAkDC;AAED;;;;;GAKG;AACH,mDASC;AAED;;;;;;GAMG;AACH,4EA4EC;AAED,kEAgDC;AAED;;;;;;;;GAQG;AACH,kGA0MC;AAED;;;EAiNC;AAED;;;;EAsHC;AAED;;;EA+GC;AAED;;;;;GAKG;AACH,+CAHW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2IhB;AAED;;;;;;EA+HC;AAED;;;;GAIG;AACH,0CAFW,MAAM;;;;;;;;;;;;;;;;;;;;;IAqDhB;AAmBD;;;;;GAKG;AACH,yCAHW,MAAM,YAQhB;AAED;;;;;GAKG;AACH,wCAHW,MAAM,YAchB;AAED;;;;;GAKG;AACH,wCAHW,MAAM,YAQhB;AAED;;;;;GAKG;AACH,yCAHW,MAAM,YAQhB;AAED;;;;;GAKG;AACH,2CAHW,MAAM,YAQhB;AAED;;;;;;;GAOG;AACH;;;;;;;;;;IA2IC;AA2CD;;;;GAIG;AACH,0FAHW,MAAM,WACN,MAAM,UAuDhB;AAED;;;;GAIG;AACH,8CAHW,MAAM,WACN,MAAM;;;;;;EAqBhB;AAED;;;GAGG;AACH,iDAFW,MAAM;;;;;;;;;;;;;;;;;;;;;IAwDhB;AAED;;;;;;;GAOG;AACH,iDALW,MAAM,YACN,MAAM,YACN,OAAO,oBACP,OAAO,eA6DjB;AAED,oIAgCC;AAED;;;;;;;GAOG;AACH,sCALW,MAAM,eACN,MAAM,eA6JhB;AAED;;;;;;;;;;;;;;;;;;;;;;IA6DC;AAED;;;;;;;EA8BC;AAED,uDAeC;AAED,2DAeC;AAED,2CAIC;AAED;;;;;;GAMG;AACH,uDAJW,MAAM,MAgBhB;AAED;;;;;;GAMG;AACH,uCAJW,MAAM,QACN,MAAM,GACJ,OAAO,QAAQ,CAU3B;AAED;;;;;;;;GAQG;AACH,2CANW,MAAM,WACN,MAAM,iBACN,MAAM,kBAmThB;AAED;;;;;;;GAOG;AACH,iDAFW,MAAM,OAehB;AAED;;;;;;;;;;;GAWG;AACH,uCAHW,MAAM,UACN,MAAM,UAYhB;AAED;;;;;;GAMG;AACH,2CAHW,MAAM,uBACN,MAAM,WAgBhB;AAED;;;;GAIG;AACH,4CAFW,MAAM,UAIhB;AAED;;;;;;;;GAQG;AACH,sCANW,MAAM,eACN,MAAM,oBACN,MAAM,gBAgChB;AAED;;;;;;GAMG;AACH,uCAJW,MAAM,kBA4EhB;AAED;;;;;GAKG;AACH,0CAHW,MAAM,YACN,MAAM,UAiChB;AACD;;;;;GAKG;AAEH,uDAJW,MAAM,GACJ,GAAG,CAiCf;AACD;;;;;GAKG;AACH,yCAHW,MAAM,YACN,MAAM,UAsEhB;AAED;;GAEG;AACH,sCAmBC;AAED,0DA2EC;AAED;;;;;;;;GAQG;AACH,oCANW,MAAM,YACN,MAAM,gBACN,MAAM,eACN,MAAM,OAgDhB;AA0DD;;;;;;;GAOG;AACH,2CALW,MAAM,kBACN,MAAM,eACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6ThB;AAGD;;;;;EAmBC;AAED;;;;;;GAMG;AACH,kEAHW,MAAM,cACN,MAAM,6BA0IhB;AAED,qDASC;AAED;;;;;;;EA2GC;AAED;;;EA6PC;AAED,sEA6BC;AAED;;;;;;;GAOG;AACH,mCALW,MAAM,WACN,MAAM;;;;;;;EAgQhB;AAED;;;;;;GAMG;AACH,2CAHW,MAAM,OAKhB;AAED,qDA0CC;AA8HD;;;;GAIG;AACH;;;GAkHC;AAED,yEA+FC;AAED;;;;;;GAMG;AACH,mDAkBC;AAED;;;;;;;;;;GAUG;AACH,0DAuBC;AA70VD,gCAAgF;AAChF,4BAA4C;AAC5C,4BAA6C;AAC7C,2BAAmE;AAsBnE,iCAEE;AAiBF,iCAIyC;AAGzC,gCACmE;AAGnE,gCACsE;AAGtE,8BAA+B;AAK/B,4CAEmE;AAGnE,6CAE6D;AAG7D,oCAEoD;AAGpD,uCAEuD;AAYvD,4BAA6B;AAU7B,8BAAiC;AAMjC,8BAAiC;AAIjC,4BAA6B;AAI7B,2BAA2B;AAI3B,4BAA6B;AAI7B,2BAA2B;AAI3B,6BAA+B;AAI/B,0BAAyB;AAIzB,6BAA+B;AAM/B,2BAA2B;AAK3B,4BAA6B;AAK7B,6BAA+B;AAM/B,kDAWE;AAGF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DE;AAiEF,8BAQG;AAwwIH,8CAUE"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../utils.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/utils.js b/utils.js index 3543748d1..10aae0812 100644 --- a/utils.js +++ b/utils.js @@ -9579,6 +9579,14 @@ export function getPipFrozenTree(basePath, reqOrSetupFile, tempVenvDir) { tempVenvDir, platform() === "win32" ? "Scripts" : "bin", )}${_delimiter}${process.env.PATH || ""}`; + // When cdxgen is invoked with the container image, we seem to be including unnecessary packages from the image. + // This workaround, unsets PYTHONPATH to suppress the pre-installed packages + if ( + env?.PYTHONPATH === "/opt/pypi" && + env?.CDXGEN_IN_CONTAINER === "true" + ) { + env.PYTHONPATH = undefined; + } } } /**