diff --git a/.github/workflows/npm-ls_demo-results.yml b/.github/workflows/npm-ls_demo-results.yml
index 85c896e5b..5d08cc656 100644
--- a/.github/workflows/npm-ls_demo-results.yml
+++ b/.github/workflows/npm-ls_demo-results.yml
@@ -35,6 +35,7 @@ jobs:
- juice-shop
- local-dependencies
- local-workspaces
+ - package-with-build-id
npm-version:
## see https://www.npmjs.com/package/npm?activeTab=versions
## see also: https://github.com/npm/cli/releases
diff --git a/HISTORY.md b/HISTORY.md
index f834ab763..733077fd7 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
## unreleased
+* Fixed
+ * No longer omit components' version's buildID ([#551] via [#597])
+ Only affects NPM>=7. NPM6 omits this information in the first place, still.
+
+[#551]: https://github.com/CycloneDX/cyclonedx-node-npm/issues/551
+[#597]: https://github.com/CycloneDX/cyclonedx-node-npm/pull/597
+
## 1.9.1 - 2023-03-15
* Docs
diff --git a/demo/README.md b/demo/README.md
index b9d0525cc..d6c8fc39d 100644
--- a/demo/README.md
+++ b/demo/README.md
@@ -8,6 +8,7 @@ Each project demonstrates an individual use case:
* [use of local dependencies](local-dependencies)
* [use of workspaces](local-workspaces)
* [the Juice Shop](juice-shop)
+* [package with buildID in version](package-with-build-id)
Each dir contains of a `project` folder that holds the npm package
and a `example-results` folder that holds generated boms.
diff --git a/demo/package-with-build-id/README.md b/demo/package-with-build-id/README.md
new file mode 100644
index 000000000..60c10b899
--- /dev/null
+++ b/demo/package-with-build-id/README.md
@@ -0,0 +1,40 @@
+# Integration test: local workspaces
+
+Install a package with a non-SemVer or a buildID and see how they behave.
+
+## remarks
+
+* _npm_ v6 cuts of the buildID from the version string
+* _npm_ v7 leaves the version string unchanged
+
+## output
+
+see [demo snapshots](../../tests/_data/npm-ls_demo-results/package-with-build-id).
+
+Output of `npm6 ls --json -a -l` look like this:
+
+```json5
+{
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ // other properties
+}
+```
+
+
+Output of `npm7 ls --json -a -l` look like this:
+
+```json5
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ // other properties
+}
+```
diff --git a/demo/package-with-build-id/example-results/bare/bom.1.2.json b/demo/package-with-build-id/example-results/bare/bom.1.2.json
new file mode 100644
index 000000000..a6586e3d5
--- /dev/null
+++ b/demo/package-with-build-id/example-results/bare/bom.1.2.json
@@ -0,0 +1,41 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.2b.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.2",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "1.13.0"
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "1.9.1"
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/demo/package-with-build-id/example-results/bare/bom.1.2.xml b/demo/package-with-build-id/example-results/bare/bom.1.2.xml
new file mode 100644
index 000000000..340a15051
--- /dev/null
+++ b/demo/package-with-build-id/example-results/bare/bom.1.2.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ @cyclonedx
+ cyclonedx-library
+ 1.13.0
+
+
+ @cyclonedx
+ cyclonedx-npm
+ 1.9.1
+
+
+
+ demo-package-with-build-id
+ 1.0.0-123+456
+ demo: package-with-build-id -- show how buildID in the version looks like
+ pkg:npm/demo-package-with-build-id@1.0.0-123%2B456
+
+
+ https://github.com/CycloneDX/cyclonedx-node-npm/issues/551
+ as detected from PackageJson property "homepage"
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/package-with-build-id/example-results/bare/bom.1.3.json b/demo/package-with-build-id/example-results/bare/bom.1.3.json
new file mode 100644
index 000000000..bd029017e
--- /dev/null
+++ b/demo/package-with-build-id/example-results/bare/bom.1.3.json
@@ -0,0 +1,51 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.3a.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.3",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "1.13.0"
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "1.9.1"
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/demo/package-with-build-id/example-results/bare/bom.1.3.xml b/demo/package-with-build-id/example-results/bare/bom.1.3.xml
new file mode 100644
index 000000000..c4adc23b4
--- /dev/null
+++ b/demo/package-with-build-id/example-results/bare/bom.1.3.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ @cyclonedx
+ cyclonedx-library
+ 1.13.0
+
+
+ @cyclonedx
+ cyclonedx-npm
+ 1.9.1
+
+
+
+ demo-package-with-build-id
+ 1.0.0-123+456
+ demo: package-with-build-id -- show how buildID in the version looks like
+ pkg:npm/demo-package-with-build-id@1.0.0-123%2B456
+
+
+ https://github.com/CycloneDX/cyclonedx-node-npm/issues/551
+ as detected from PackageJson property "homepage"
+
+
+
+
+ true
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/package-with-build-id/example-results/bare/bom.1.4.json b/demo/package-with-build-id/example-results/bare/bom.1.4.json
new file mode 100644
index 000000000..54ecd9bee
--- /dev/null
+++ b/demo/package-with-build-id/example-results/bare/bom.1.4.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "1.13.0",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "1.9.1",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/demo/package-with-build-id/example-results/bare/bom.1.4.xml b/demo/package-with-build-id/example-results/bare/bom.1.4.xml
new file mode 100644
index 000000000..fb97dc6fd
--- /dev/null
+++ b/demo/package-with-build-id/example-results/bare/bom.1.4.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+ @cyclonedx
+ cyclonedx-library
+ 1.13.0
+
+
+ https://github.com/CycloneDX/cyclonedx-javascript-library/issues
+ as detected from PackageJson property "bugs.url"
+
+
+ git+https://github.com/CycloneDX/cyclonedx-javascript-library.git
+ as detected from PackageJson property "repository.url"
+
+
+ https://github.com/CycloneDX/cyclonedx-javascript-library#readme
+ as detected from PackageJson property "homepage"
+
+
+
+
+ @cyclonedx
+ cyclonedx-npm
+ 1.9.1
+
+
+ https://github.com/CycloneDX/cyclonedx-node-npm/issues
+ as detected from PackageJson property "bugs.url"
+
+
+ git+https://github.com/CycloneDX/cyclonedx-node-npm.git
+ as detected from PackageJson property "repository.url"
+
+
+ https://github.com/CycloneDX/cyclonedx-node-npm#readme
+ as detected from PackageJson property "homepage"
+
+
+
+
+
+ demo-package-with-build-id
+ 1.0.0-123+456
+ demo: package-with-build-id -- show how buildID in the version looks like
+ pkg:npm/demo-package-with-build-id@1.0.0-123%2B456
+
+
+ https://github.com/CycloneDX/cyclonedx-node-npm/issues/551
+ as detected from PackageJson property "homepage"
+
+
+
+
+ true
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/package-with-build-id/example-results/flat/bom.1.2.json b/demo/package-with-build-id/example-results/flat/bom.1.2.json
new file mode 100644
index 000000000..a6586e3d5
--- /dev/null
+++ b/demo/package-with-build-id/example-results/flat/bom.1.2.json
@@ -0,0 +1,41 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.2b.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.2",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "1.13.0"
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "1.9.1"
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/demo/package-with-build-id/example-results/flat/bom.1.2.xml b/demo/package-with-build-id/example-results/flat/bom.1.2.xml
new file mode 100644
index 000000000..340a15051
--- /dev/null
+++ b/demo/package-with-build-id/example-results/flat/bom.1.2.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ @cyclonedx
+ cyclonedx-library
+ 1.13.0
+
+
+ @cyclonedx
+ cyclonedx-npm
+ 1.9.1
+
+
+
+ demo-package-with-build-id
+ 1.0.0-123+456
+ demo: package-with-build-id -- show how buildID in the version looks like
+ pkg:npm/demo-package-with-build-id@1.0.0-123%2B456
+
+
+ https://github.com/CycloneDX/cyclonedx-node-npm/issues/551
+ as detected from PackageJson property "homepage"
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/package-with-build-id/example-results/flat/bom.1.3.json b/demo/package-with-build-id/example-results/flat/bom.1.3.json
new file mode 100644
index 000000000..bd029017e
--- /dev/null
+++ b/demo/package-with-build-id/example-results/flat/bom.1.3.json
@@ -0,0 +1,51 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.3a.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.3",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "1.13.0"
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "1.9.1"
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/demo/package-with-build-id/example-results/flat/bom.1.3.xml b/demo/package-with-build-id/example-results/flat/bom.1.3.xml
new file mode 100644
index 000000000..c4adc23b4
--- /dev/null
+++ b/demo/package-with-build-id/example-results/flat/bom.1.3.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ @cyclonedx
+ cyclonedx-library
+ 1.13.0
+
+
+ @cyclonedx
+ cyclonedx-npm
+ 1.9.1
+
+
+
+ demo-package-with-build-id
+ 1.0.0-123+456
+ demo: package-with-build-id -- show how buildID in the version looks like
+ pkg:npm/demo-package-with-build-id@1.0.0-123%2B456
+
+
+ https://github.com/CycloneDX/cyclonedx-node-npm/issues/551
+ as detected from PackageJson property "homepage"
+
+
+
+
+ true
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/package-with-build-id/example-results/flat/bom.1.4.json b/demo/package-with-build-id/example-results/flat/bom.1.4.json
new file mode 100644
index 000000000..54ecd9bee
--- /dev/null
+++ b/demo/package-with-build-id/example-results/flat/bom.1.4.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "1.13.0",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "1.9.1",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/demo/package-with-build-id/example-results/flat/bom.1.4.xml b/demo/package-with-build-id/example-results/flat/bom.1.4.xml
new file mode 100644
index 000000000..fb97dc6fd
--- /dev/null
+++ b/demo/package-with-build-id/example-results/flat/bom.1.4.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+ @cyclonedx
+ cyclonedx-library
+ 1.13.0
+
+
+ https://github.com/CycloneDX/cyclonedx-javascript-library/issues
+ as detected from PackageJson property "bugs.url"
+
+
+ git+https://github.com/CycloneDX/cyclonedx-javascript-library.git
+ as detected from PackageJson property "repository.url"
+
+
+ https://github.com/CycloneDX/cyclonedx-javascript-library#readme
+ as detected from PackageJson property "homepage"
+
+
+
+
+ @cyclonedx
+ cyclonedx-npm
+ 1.9.1
+
+
+ https://github.com/CycloneDX/cyclonedx-node-npm/issues
+ as detected from PackageJson property "bugs.url"
+
+
+ git+https://github.com/CycloneDX/cyclonedx-node-npm.git
+ as detected from PackageJson property "repository.url"
+
+
+ https://github.com/CycloneDX/cyclonedx-node-npm#readme
+ as detected from PackageJson property "homepage"
+
+
+
+
+
+ demo-package-with-build-id
+ 1.0.0-123+456
+ demo: package-with-build-id -- show how buildID in the version looks like
+ pkg:npm/demo-package-with-build-id@1.0.0-123%2B456
+
+
+ https://github.com/CycloneDX/cyclonedx-node-npm/issues/551
+ as detected from PackageJson property "homepage"
+
+
+
+
+ true
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/package-with-build-id/project/.gitignore b/demo/package-with-build-id/project/.gitignore
new file mode 100644
index 000000000..dc932c902
--- /dev/null
+++ b/demo/package-with-build-id/project/.gitignore
@@ -0,0 +1,5 @@
+/*
+!/.gitignore
+!/package.json
+!/README.md
+!/workspaces/
diff --git a/demo/package-with-build-id/project/package.json b/demo/package-with-build-id/project/package.json
new file mode 100644
index 000000000..63c189767
--- /dev/null
+++ b/demo/package-with-build-id/project/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123+456",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551"
+}
diff --git a/src/builders.ts b/src/builders.ts
index 28abc5336..bfc3867b6 100644
--- a/src/builders.ts
+++ b/src/builders.ts
@@ -376,6 +376,12 @@ export class BomBuilder {
_dataC = this.enhancedPackageData(_dataC)
}
normalizePackageData(_dataC /* add debug for warnings? */)
+ // region fix normalizations
+ if (typeof data.version === 'string') {
+ // allow non-SemVer strings
+ _dataC.version = data.version.trim()
+ }
+ // endregion fix normalizations
const component = this.componentBuilder.makeComponent(_dataC, type)
if (component === undefined) {
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node14_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node14_macos-latest.json
new file mode 100644
index 000000000..238e066fa
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node14_macos-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node14_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node14_ubuntu-latest.json
new file mode 100644
index 000000000..4791f27c2
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node14_ubuntu-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node14_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node14_windows-latest.json
new file mode 100644
index 000000000..e71bfb328
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node14_windows-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node16_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node16_macos-latest.json
new file mode 100644
index 000000000..238e066fa
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node16_macos-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node16_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node16_ubuntu-latest.json
new file mode 100644
index 000000000..4791f27c2
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node16_ubuntu-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node16_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node16_windows-latest.json
new file mode 100644
index 000000000..e71bfb328
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node16_windows-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node18_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node18_macos-latest.json
new file mode 100644
index 000000000..238e066fa
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node18_macos-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node18_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node18_ubuntu-latest.json
new file mode 100644
index 000000000..4791f27c2
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node18_ubuntu-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node18_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node18_windows-latest.json
new file mode 100644
index 000000000..e71bfb328
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node18_windows-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node19_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node19_macos-latest.json
new file mode 100644
index 000000000..238e066fa
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node19_macos-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node19_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node19_ubuntu-latest.json
new file mode 100644
index 000000000..4791f27c2
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node19_ubuntu-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node19_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node19_windows-latest.json
new file mode 100644
index 000000000..e71bfb328
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm6_node19_windows-latest.json
@@ -0,0 +1,21 @@
+{
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "version": "1.0.0-123",
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "readme": "ERROR: No README data found!",
+ "_id": "demo-package-with-build-id@1.0.0-123",
+ "_shrinkwrap": {
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "lockfileVersion": 1
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "optionalDependencies": {},
+ "_dependencies": {},
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "error": null,
+ "extraneous": false
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node14_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node14_macos-latest.json
new file mode 100644
index 000000000..9a3a06044
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node14_macos-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node14_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node14_ubuntu-latest.json
new file mode 100644
index 000000000..d5e4889ed
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node14_ubuntu-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node14_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node14_windows-latest.json
new file mode 100644
index 000000000..3cbd03d60
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node14_windows-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node16_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node16_macos-latest.json
new file mode 100644
index 000000000..9a3a06044
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node16_macos-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node16_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node16_ubuntu-latest.json
new file mode 100644
index 000000000..d5e4889ed
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node16_ubuntu-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node16_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node16_windows-latest.json
new file mode 100644
index 000000000..3cbd03d60
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node16_windows-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node18_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node18_macos-latest.json
new file mode 100644
index 000000000..9a3a06044
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node18_macos-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node18_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node18_ubuntu-latest.json
new file mode 100644
index 000000000..d5e4889ed
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node18_ubuntu-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node18_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node18_windows-latest.json
new file mode 100644
index 000000000..3cbd03d60
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node18_windows-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node19_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node19_macos-latest.json
new file mode 100644
index 000000000..9a3a06044
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node19_macos-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node19_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node19_ubuntu-latest.json
new file mode 100644
index 000000000..d5e4889ed
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node19_ubuntu-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node19_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node19_windows-latest.json
new file mode 100644
index 000000000..3cbd03d60
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm7_node19_windows-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node14_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node14_macos-latest.json
new file mode 100644
index 000000000..9a3a06044
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node14_macos-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node14_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node14_ubuntu-latest.json
new file mode 100644
index 000000000..d5e4889ed
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node14_ubuntu-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node14_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node14_windows-latest.json
new file mode 100644
index 000000000..3cbd03d60
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node14_windows-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node16_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node16_macos-latest.json
new file mode 100644
index 000000000..9a3a06044
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node16_macos-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node16_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node16_ubuntu-latest.json
new file mode 100644
index 000000000..d5e4889ed
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node16_ubuntu-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node16_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node16_windows-latest.json
new file mode 100644
index 000000000..3cbd03d60
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node16_windows-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node18_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node18_macos-latest.json
new file mode 100644
index 000000000..9a3a06044
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node18_macos-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node18_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node18_ubuntu-latest.json
new file mode 100644
index 000000000..d5e4889ed
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node18_ubuntu-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node18_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node18_windows-latest.json
new file mode 100644
index 000000000..3cbd03d60
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node18_windows-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node19_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node19_macos-latest.json
new file mode 100644
index 000000000..9a3a06044
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node19_macos-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node19_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node19_ubuntu-latest.json
new file mode 100644
index 000000000..d5e4889ed
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node19_ubuntu-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node19_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node19_windows-latest.json
new file mode 100644
index 000000000..3cbd03d60
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm8_node19_windows-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node16_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node16_macos-latest.json
new file mode 100644
index 000000000..9a3a06044
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node16_macos-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node16_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node16_ubuntu-latest.json
new file mode 100644
index 000000000..d5e4889ed
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node16_ubuntu-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node16_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node16_windows-latest.json
new file mode 100644
index 000000000..3cbd03d60
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node16_windows-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node18_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node18_macos-latest.json
new file mode 100644
index 000000000..9a3a06044
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node18_macos-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node18_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node18_ubuntu-latest.json
new file mode 100644
index 000000000..d5e4889ed
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node18_ubuntu-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node18_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node18_windows-latest.json
new file mode 100644
index 000000000..3cbd03d60
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node18_windows-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node19_macos-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node19_macos-latest.json
new file mode 100644
index 000000000..9a3a06044
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node19_macos-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/Users/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node19_ubuntu-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node19_ubuntu-latest.json
new file mode 100644
index 000000000..d5e4889ed
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node19_ubuntu-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "/home/runner/work/cyclonedx-node-npm/cyclonedx-node-npm/demo/package-with-build-id/project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node19_windows-latest.json b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node19_windows-latest.json
new file mode 100644
index 000000000..3cbd03d60
--- /dev/null
+++ b/tests/_data/npm-ls_demo-results/package-with-build-id/CI_results/npm-ls_npm9_node19_windows-latest.json
@@ -0,0 +1,13 @@
+{
+ "version": "1.0.0-123+456",
+ "name": "demo-package-with-build-id",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "private": true,
+ "homepage": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "_id": "demo-package-with-build-id@1.0.0-123+456",
+ "extraneous": false,
+ "path": "D:\\a\\cyclonedx-node-npm\\cyclonedx-node-npm\\demo\\package-with-build-id\\project",
+ "_dependencies": {},
+ "devDependencies": {},
+ "peerDependencies": {}
+}
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node14_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node14_macos-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node14_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node14_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node14_ubuntu-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node14_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node14_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node14_windows-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node14_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node16_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node16_macos-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node16_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node16_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node16_ubuntu-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node16_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node16_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node16_windows-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node16_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node18_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node18_macos-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node18_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node18_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node18_ubuntu-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node18_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node18_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node18_windows-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node18_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node19_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node19_macos-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node19_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node19_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node19_ubuntu-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node19_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node19_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node19_windows-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm6_node19_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node14_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node14_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node14_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node14_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node14_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node14_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node14_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node14_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node14_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node16_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node16_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node16_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node16_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node16_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node16_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node16_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node16_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node16_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node18_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node18_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node18_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node18_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node18_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node18_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node18_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node18_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node18_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node19_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node19_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node19_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node19_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node19_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node19_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node19_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node19_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm7_node19_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node14_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node14_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node14_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node14_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node14_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node14_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node14_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node14_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node14_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node16_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node16_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node16_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node16_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node16_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node16_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node16_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node16_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node16_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node18_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node18_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node18_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node18_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node18_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node18_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node18_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node18_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node18_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node19_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node19_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node19_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node19_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node19_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node19_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node19_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node19_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm8_node19_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node16_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node16_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node16_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node16_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node16_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node16_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node16_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node16_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node16_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node18_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node18_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node18_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node18_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node18_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node18_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node18_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node18_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node18_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node19_macos-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node19_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node19_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node19_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node19_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node19_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node19_windows-latest.snap.json b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node19_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/bare/package-with-build-id_npm9_node19_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node14_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node14_macos-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node14_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node14_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node14_ubuntu-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node14_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node14_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node14_windows-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node14_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node16_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node16_macos-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node16_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node16_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node16_ubuntu-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node16_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node16_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node16_windows-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node16_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node18_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node18_macos-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node18_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node18_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node18_ubuntu-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node18_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node18_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node18_windows-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node18_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node19_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node19_macos-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node19_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node19_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node19_ubuntu-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node19_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node19_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node19_windows-latest.snap.json
new file mode 100644
index 000000000..828c848be
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm6_node19_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node14_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node14_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node14_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node14_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node14_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node14_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node14_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node14_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node14_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node16_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node16_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node16_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node16_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node16_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node16_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node16_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node16_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node16_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node18_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node18_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node18_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node18_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node18_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node18_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node18_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node18_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node18_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node19_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node19_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node19_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node19_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node19_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node19_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node19_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node19_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm7_node19_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node14_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node14_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node14_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node14_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node14_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node14_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node14_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node14_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node14_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node16_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node16_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node16_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node16_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node16_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node16_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node16_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node16_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node16_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node18_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node18_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node18_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node18_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node18_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node18_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node18_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node18_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node18_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node19_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node19_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node19_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node19_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node19_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node19_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node19_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node19_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm8_node19_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node16_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node16_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node16_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node16_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node16_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node16_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node16_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node16_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node16_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node18_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node18_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node18_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node18_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node18_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node18_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node18_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node18_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node18_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node19_macos-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node19_macos-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node19_macos-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node19_ubuntu-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node19_ubuntu-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node19_ubuntu-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node19_windows-latest.snap.json b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node19_windows-latest.snap.json
new file mode 100644
index 000000000..ad9f194cf
--- /dev/null
+++ b/tests/_data/sbom_demo-results/flatten-components/package-with-build-id_npm9_node19_windows-latest.snap.json
@@ -0,0 +1,85 @@
+{
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4",
+ "version": 1,
+ "metadata": {
+ "tools": [
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-library",
+ "version": "libVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ },
+ {
+ "vendor": "@cyclonedx",
+ "name": "cyclonedx-npm",
+ "version": "thisVersion-testing",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues",
+ "type": "issue-tracker",
+ "comment": "as detected from PackageJson property \"bugs.url\""
+ },
+ {
+ "url": "git+https://github.com/CycloneDX/cyclonedx-node-npm.git",
+ "type": "vcs",
+ "comment": "as detected from PackageJson property \"repository.url\""
+ },
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm#readme",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ]
+ }
+ ],
+ "component": {
+ "type": "application",
+ "name": "demo-package-with-build-id",
+ "version": "1.0.0-123+456",
+ "bom-ref": "demo-package-with-build-id@1.0.0-123+456",
+ "description": "demo: package-with-build-id -- show how buildID in the version looks like",
+ "purl": "pkg:npm/demo-package-with-build-id@1.0.0-123%2B456",
+ "externalReferences": [
+ {
+ "url": "https://github.com/CycloneDX/cyclonedx-node-npm/issues/551",
+ "type": "website",
+ "comment": "as detected from PackageJson property \"homepage\""
+ }
+ ],
+ "properties": [
+ {
+ "name": "cdx:npm:package:path",
+ "value": ""
+ },
+ {
+ "name": "cdx:npm:package:private",
+ "value": "true"
+ }
+ ]
+ }
+ },
+ "components": [],
+ "dependencies": [
+ {
+ "ref": "demo-package-with-build-id@1.0.0-123+456"
+ }
+ ]
+}
\ No newline at end of file