Skip to content
Merged

v10.0.0 #1376

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
241f5a5
chore: prep v10.0.0-dev
jkowalleck Feb 18, 2026
47e7a40
feat!: remove deprecated reexports
jkowalleck Feb 18, 2026
2c66ffc
docs
jkowalleck Feb 18, 2026
1988d6a
docs
jkowalleck Feb 18, 2026
84d7fa0
docs
jkowalleck Feb 18, 2026
75311d5
tests
jkowalleck Feb 18, 2026
643535d
dings
jkowalleck Feb 18, 2026
098d303
dings
jkowalleck Feb 18, 2026
03e617d
dings
jkowalleck Feb 18, 2026
aeb41fa
dings
jkowalleck Feb 18, 2026
d4627f0
dings
jkowalleck Feb 18, 2026
cffbe7e
ci
jkowalleck Feb 18, 2026
4e1f448
test
jkowalleck Feb 18, 2026
4ed8754
examples
jkowalleck Feb 19, 2026
9d1b6e0
feat!: remove deprecated reexports (#1377)
jkowalleck Feb 19, 2026
dd164d1
feat!: `Component.purl` as `string` (#1379)
jkowalleck Feb 19, 2026
1f7bf13
docs
jkowalleck Feb 19, 2026
7c69f36
docs
jkowalleck Feb 19, 2026
eb6ff9e
feat!: remove package url factory (#1378)
jkowalleck Feb 19, 2026
2857000
docs
jkowalleck Feb 19, 2026
0b3cbdd
chore: dev engines (#1380)
jkowalleck Feb 20, 2026
b71be48
tests: fix browser tests (#1381)
jkowalleck Feb 20, 2026
d6acb60
feat!: remove spdx expression validation (#1382)
jkowalleck Feb 20, 2026
9c9059a
docs
jkowalleck Feb 20, 2026
2302ef1
cleanup
jkowalleck Feb 20, 2026
adacb57
docs
jkowalleck Feb 20, 2026
0c0d167
docs
jkowalleck Feb 20, 2026
5ae4665
docs
jkowalleck Feb 20, 2026
174a2de
docs
jkowalleck Feb 20, 2026
5a83596
docs
jkowalleck Feb 20, 2026
8e06489
10.0.0-rc.1
jkowalleck Feb 23, 2026
a8387f4
10.0.0-rc.2
jkowalleck Feb 23, 2026
fb16e27
docs
jkowalleck Feb 23, 2026
5af9b1d
docs
jkowalleck Feb 23, 2026
b626de8
docs
jkowalleck Feb 23, 2026
f1a09d8
Merge remote-tracking branch 'origin/main' into feat/10.0.0-dev
jkowalleck Mar 2, 2026
21e9cf8
style: typed import extra
jkowalleck Mar 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .github/workflows/nodejs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -364,9 +364,6 @@ jobs:
- name: run example
run: node -- 'example.${{ matrix.js-type }}'
working-directory: ${{ env.EXAMPLE_DIR }}
- name: run deprecated
run: node -- 'deprecated.${{ matrix.js-type }}'
working-directory: ${{ env.EXAMPLE_DIR }}

example-TS:
needs: [ 'build' ]
Expand Down
78 changes: 78 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,84 @@ All notable changes to this project will be documented in this file.

<!-- add unreleased items here -->

* BREAKING changes
* Removed deprecated symbols
* Removed PackageUrl factories
* No longer use external standards' implementations directly
* Removed
* Entrypoint `Builders` (via [#1377])
* Entrypoint `Factories` (via [#1377])
* Entrypoint `Utils` (via [#1377])
* Entrypoint `Contrib/PackageUrl` (via [#1378])
* Deprecated symbol `Builders` ([#1346] via [#1377])
* Deprecated symbol `Builders.FromNodePackageJson` ([#1346] via [#1377])
* Deprecated symbol `Builders.FromNodePackageJson.ToolBuilder` ([#1346] via [#1377])
Use `Contrib.FromNodePackageJson.Builders.ToolBuilder` instead.
* Deprecated symbol `Builders.FromNodePackageJson.ComponentBuilder` ([#1346] via [#1377])
Use `Contrib.FromNodePackageJson.Builders.ComponentBuilder` instead.
* Deprecated symbol `Factories` ([#1346] via [#1377])
* Deprecated symbol `Factories.FromNodePackageJson` ([#1346] via [#1377])
* Deprecated symbol `Factories.FromNodePackageJson.ExternalReferenceFactory` ([#1346] via [#1377])
Use `Contrib.FromNodePackageJson.Factories.ExternalReferenceFactory` instead.
* Deprecated symbol `Factories.FromNodePackageJson.PackageUrlFactory` ([#1346] via [#1377])
Use `packageurl-js` downstream.
* Deprecated symbol `Factories.LicenseFactory` ([#1346], [#1348] via [#1377], [#1378])
Use `Contrib.License.Factories.LicenseFactory` instead.
* Deprecated symbol `Factories.PackageUrlFactory` ([#1346] via [#1377])
Use `packageurl-js` downstream.
* Deprecated symbol `Types.NodePackageJson` ([#1346], [#1348] via [#1377], [#1378])
Use `Contrib.FromNodePackageJson.Types.NodePackageJson` instead.
* Deprecated symbol `Types.assertNodePackageJson` ([#1346] via [#1377])
Use `Contrib.FromNodePackageJson.Types.assertNodePackageJson` instead.
* Deprecated symbol `Types.isNodePackageJson` ([#1346] via [#1377])
Use `Contrib.FromNodePackageJson.Types.isNodePackageJson` instead.
* Deprecated symbol `Utils` ([#1346] via [#1377])
* Deprecated symbol `Utils.BomUtility` ([#1346] via [#1377])
* Deprecated symbol `Utils.BomUtility.randomSerialNumber` ([#1346] via [#1377])
Use `Contrib.Bom.Utils.randomSerialNumber` instead.
* Deprecated symbol `Utils.LicenseUtility` ([#1346] via [#1377])
* Deprecated symbol `Utils.LicenseUtility.FsUtils` ([#1346] via [#1377])
Use `Contrib.License.Utils.FsUtils` instead.
* Deprecated symbol `Utils.LicenseUtility.PathUtils` ([#1346] via [#1377])
* Use `Contrib.License.Utils.PathUtils` instead.
* Deprecated symbol `Utils.LicenseUtility.FileAttachment` ([#1346] via [#1377])
Use `Contrib.License.Utils.FileAttachment` instead.
* Deprecated symbol `Utils.LicenseUtility.ErrorReporter` ([#1346] via [#1377])
Use `Contrib.License.Utils.ErrorReporter` instead.
* Deprecated symbol `Utils.LicenseUtility.LicenseEvidenceGatherer` ([#1346] via [#1377])
Use `Contrib.License.Utils.LicenseEvidenceGatherer` instead.
* Deprecated symbol `Utils.NpmjsUtility` ([#1346] via [#1377])
* Deprecated symbol `Utils.NpmjsUtility.parsePackageIntegrity` ([#1346] via [#1377])
Use `Contrib.FromNodePackageJson.Utils.parsePackageIntegrity` instead.
* Deprecated symbol `Utils.NpmjsUtility.defaultRegistryMatcher` ([#1346] via [#1377])
Use `Contrib.FromNodePackageJson.Utils.defaultRegistryMatcher` instead.
* Symbol `Contrib.PackageUrl.Factories.PackageUrlFactory` ([#1348] via [#1378])
Use `packageurl-js` downstream.
* Symbol `Contrib.FromNodePackageJson.Factories.PackageUrlFactory` ([#1348] via [#1378])
Use `packageurl-js` downstream.
* Symbol `SPDX.isValidSpdxLicenseExpression` ([#1348] via [#1382])
Use package `spdx-expression-parse` instead.
* Changed
* `Component.purl` is a `string` now, was `PackaheUrl` ([#1348] via [#1379])
* Constructor of `Contrib.License.Factories.LicenseFactory` got an injectable argument `spdxExpressionValidate` for validating SPDX License Expressions ([#1348] via [#1382])
Suggested implementation is `spdx-expression-parse`.
* Dependencies
* Dependency `packageurl-js` became a suggested (optional peer-dependency) library ([#1348] via [#1378])
You may use it to craft and parse PackageURLs downstream.
* Dependency `spdx-expression-parse` became a suggested (optional peer-dependency) library ([#1348] via [#1382])
Used as an injectable in `Contrib.License.Factories.LicenseFactory.constructor`.
* Chore
* Set dev-engines in `package.json` ([#1301] via [#1380])

[#1301]: https://github.com/CycloneDX/cyclonedx-javascript-library/issues/1301
[#1346]: https://github.com/CycloneDX/cyclonedx-javascript-library/issues/1346
[#1348]: https://github.com/CycloneDX/cyclonedx-javascript-library/issues/1348
[#1377]: https://github.com/CycloneDX/cyclonedx-javascript-library/pull/1377
[#1378]: https://github.com/CycloneDX/cyclonedx-javascript-library/pull/1378
[#1379]: https://github.com/CycloneDX/cyclonedx-javascript-library/pull/1379
[#1380]: https://github.com/CycloneDX/cyclonedx-javascript-library/pull/1380
[#1382]: https://github.com/CycloneDX/cyclonedx-javascript-library/pull/1382

## 9.5.0 -- 2026-03-02

* Added
Expand Down
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ written in _TypeScript_ and compiled for the target.
* Gather license evidences from files (for _Node.js_ only)
* Factories for the following use cases:
* Create data models from any license descriptor string
* Create `PackageURL` from `Component` data models
* Specific to _Node.js_: create data models from PackageJson-like data structures and derived data
* Builders for the following use cases:
* Specific to _Node.js_: create deep data models `Tool` or `Component` from PackageJson-like data structures
Expand Down Expand Up @@ -135,6 +134,12 @@ Some features require optional peer dependencies — see `package.json` for vers
* [`libxmljs2`](https://www.npmjs.com/package/libxmljs2)
* the system might need to meet the requirements for [`node-gyp`](https://github.com/TooTallNate/node-gyp#installation), in certain cases.

In addition, we have some suggestions for related 3rd-party standards:
* [`packageurl-js`](https://www.npmjs.com/package/packageurl-js)
for crafting and parsing PackageURLs.
* [`spdx-expression-parse`](https://www.npmjs.com/package/spdx-expression-parse)
for validating SPDX License Expressions.

## Usage

See extended [examples].
Expand Down
60 changes: 0 additions & 60 deletions examples/node/javascript/deprecated.cjs

This file was deleted.

60 changes: 0 additions & 60 deletions examples/node/javascript/deprecated.mjs

This file was deleted.

8 changes: 5 additions & 3 deletions examples/node/javascript/example.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,10 @@ const CDX = require('@cyclonedx/cyclonedx-library')
// const { Bom, Component } = require('@cyclonedx/cyclonedx-library/Models')
// const { ComponentType } = require('@cyclonedx/cyclonedx-library/Enums')

const lFac = new CDX.Contrib.License.Factories.LicenseFactory()
const purlFac = new CDX.Contrib.PackageUrl.Factories.PackageUrlFactory('generic')
const spdxExpressionParser = require('spdx-expression-parse')


const lFac = new CDX.Contrib.License.Factories.LicenseFactory(spdxExpressionParser)

const bom = new CDX.Models.Bom()
bom.metadata.component = new CDX.Models.Component(
Expand All @@ -44,7 +46,7 @@ const componentA = new CDX.Models.Component(
}
)
componentA.licenses.add(lFac.makeFromString('Apache-2.0'))
componentA.purl = purlFac.makeFromComponent(componentA)
componentA.purl = `pkg:generic/${componentA.group}/${componentA.name}@${componentA.version}`

bom.components.add(componentA)
bom.metadata.component.dependencies.add(componentA.bomRef)
Expand Down
8 changes: 5 additions & 3 deletions examples/node/javascript/example.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,10 @@ import * as CDX from '@cyclonedx/cyclonedx-library'
// import { Bom, Component } from '@cyclonedx/cyclonedx-library/Models'
// import { ComponentType } from '@cyclonedx/cyclonedx-library/Enums'

const lFac = new CDX.Contrib.License.Factories.LicenseFactory()
const purlFac = new CDX.Contrib.PackageUrl.Factories.PackageUrlFactory('generic')
import spdxExpressionParser from 'spdx-expression-parse'


const lFac = new CDX.Contrib.License.Factories.LicenseFactory(spdxExpressionParser)

const bom = new CDX.Models.Bom()
bom.metadata.component = new CDX.Models.Component(
Expand All @@ -44,7 +46,7 @@ const componentA = new CDX.Models.Component(
}
)
componentA.licenses.add(lFac.makeFromString('Apache-2.0'))
componentA.purl = purlFac.makeFromComponent(componentA)
componentA.purl = `pkg:generic/${componentA.group}/${componentA.name}@${componentA.version}`

bom.components.add(componentA)
bom.metadata.component.dependencies.add(componentA.bomRef)
Expand Down
1 change: 1 addition & 0 deletions examples/node/javascript/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
},
"dependencies": {
"@cyclonedx/cyclonedx-library": "file:../../..",
"spdx-expression-parse": "^3.0.1||^4",
"xmlbuilder2": "^3.0.2||^4.0.0"
},
"optionalDependencies": {
Expand Down
4 changes: 3 additions & 1 deletion examples/node/typescript/example.cjs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
},
"dependencies": {
"@cyclonedx/cyclonedx-library": "file:../../../..",
"spdx-expression-parse": "^3.0.1||^4",
"xmlbuilder2": "^3.0.2||^4.0.0"
},
"optionalDependencies": {
Expand All @@ -18,11 +19,12 @@
},
"devDependencies": {
"@types/node": "*",
"@types/spdx-expression-parse": "^3",
"typescript": "^3.8 || ^4 || ^5"
},
"scripts": {
"prebuild": "tsc -b --clean",
"build": "tsc -b",
"example": "node dist/example.js && node dist/deprecated.js"
"example": "node dist/example.js"
}
}
68 changes: 0 additions & 68 deletions examples/node/typescript/example.cjs/src/deprecated.ts

This file was deleted.

Loading
Loading