1.0.0-beta.1
·
1210 commits
to main
since this release
initial implementation
Responsibilities
- Provide a general purpose JavaScript-implementation of [CycloneDX][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][CycloneDX-spec] 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
- 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
- Factory, that can create data models from any license descriptor string
- Implementation of the [CycloneDX Specification][CycloneDX-spec] 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
- xmlbuilder2
- ... to be continued ... (pull requests are welcome)