Releases: CycloneDX/cyclonedx-javascript-library
Releases · CycloneDX/cyclonedx-javascript-library
1.1.0
Added
- Support for nested/bundled (sub-)components via
Models.Component.componentswas added, including serialization/normalization of models and impact on dependency graphs rendering. (#132 via #136) - CycloneDX spec version 1.4 made element
Models.Component.versionoptional.
Therefore, serialization/normalization with this spec version will no longer render this element if its value is empty. (via #137, #138)
1.0.3
1.0.2
1.0.1
1.0.0
Initial release.
Responsibilities
- Provide a general purpose JavaScript-implementation of CycloneDX for Node.js and WebBrowsers.
- Provide typing for said implementation, so developers and dev-tools can rely on it.
- Provide data models to work with CycloneDX.
- Provide a JSON- and an XML-normalizer, that...
- supports all shipped data models.
- respects any injected CycloneDX Specification and generates valid output according to it.
- can be configured to generate reproducible/deterministic output.
- can prepare data structures for JSON- and XML-serialization.
- Serialization:
- Provide a universal JSON-serializer for all target environments.
- Provide an XML-serializer for all target environments.
- Support the downstream implementation of custom XML-serializers tailored to specific environments
by providing an abstract base class that takes care of normalization and BomRef-discrimination.
This is done, because there is no universal XML support in JavaScript.
Capabilities & Features
- Enums for the following use cases:
AttachmentEncodingComponentScopeComponentTypeExternalReferenceTypeHashAlgorithm
- Data models for the following use cases:
AttachmentBomBomRef,BomRefRepositoryComponent,ComponentRepositoryExternalReference,ExternalReferenceRepositoryHashContent,Hash,HashRepositoryLicenseExpression,NamedLicense,SpdxLicense,LicenseRepositoryMetadataOrganizationalContact,OrganizationalContactRepositoryOrganizationalEntitySWIDTool,ToolRepository
- Factories for the following use cases:
- Create data models from any license descriptor string
- Specific to Node.js: create data models from PackageJson-like data structures
- Builders for the following use cases:
- Specific to Node.js: create deep data models from PackageJson-like data structures
- Implementation of the CycloneDX Specification for the following versions:
1.41.31.2
- Normalizers that convert data models to JSON structures
- Normalizers that convert data models to XML structures
- Universal serializer that converts
Bomdata models to JSON string - Serializer that converts
Bomdata models to XML string:- Specific to WebBrowsers: implementation utilizes browser-specific document generators and printers.
- Specific to Node.js: implementation plugs/requires/utilizes one of the following optional libraries
1.0.0-beta.7
- fix: XML normalize scope correctly
- fix:
Component.descriptionget picked up from optional properties in constructor - fix: `Component.supplier in constructor
1.0.0-beta.6
change
- allow dependency graphs without an entry
1.0.0-beta.5
changed
Componentbuilder no longer calculates thepurl- use the new factory for that.
Added
- factory that makes a
PackageUrlfrom aComponentdata model.
1.0.0-beta.4
added
FromPackageJsonbuilders and factories
1.0.0-beta.3
breaking
- Some normalizers method
normalizeIter()was reworked tonormalizeRepository() - Most
Repositorymodels' static methodcompareItems()was reworked to non-static methodsorted()
Motivation: comparing items was never intended to be a feature of a Repository, but a helper to get a sorted list. This behavior was fixed up.
see #66