UNPKG

@cyclonedx/cyclonedx-library

Version:

Core functionality of CycloneDX for JavaScript (Node.js or WebBrowser).

170 lines (166 loc) 11.2 kB
/*! This file is part of CycloneDX JavaScript Library. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ import type { SortableIterable } from '../../_helpers/sortable'; import type * as Models from '../../models'; import type { _SpecProtocol as Spec } from '../../spec/_protocol'; import type { NormalizerOptions } from '../types'; import type { SimpleXml } from './types'; export declare class Factory { #private; constructor(spec: Factory['spec']); get spec(): Spec; makeForBom(): BomNormalizer; makeForMetadata(): MetadataNormalizer; makeForLifecycle(): LifecycleNormalizer; makeForComponent(): ComponentNormalizer; makeForService(): ServiceNormalizer; makeForComponentEvidence(): ComponentEvidenceNormalizer; makeForTool(): ToolNormalizer; makeForTools(): ToolsNormalizer; makeForOrganizationalContact(): OrganizationalContactNormalizer; makeForOrganizationalEntity(): OrganizationalEntityNormalizer; makeForHash(): HashNormalizer; makeForLicense(): LicenseNormalizer; makeForSWID(): SWIDNormalizer; makeForExternalReference(): ExternalReferenceNormalizer; makeForAttachment(): AttachmentNormalizer; makeForProperty(): PropertyNormalizer; makeForDependencyGraph(): DependencyGraphNormalizer; makeForVulnerability(): VulnerabilityNormalizer; makeForVulnerabilitySource(): VulnerabilitySourceNormalizer; makeForVulnerabilityReference(): VulnerabilityReferenceNormalizer; makeForVulnerabilityRating(): VulnerabilityRatingNormalizer; makeForVulnerabilityAdvisory(): VulnerabilityAdvisoryNormalizer; makeForVulnerabilityCredits(): VulnerabilityCreditsNormalizer; makeForVulnerabilityAffect(): VulnerabilityAffectNormalizer; makeForVulnerabilityAffectedVersion(): VulnerabilityAffectedVersionNormalizer; makeForVulnerabilityAnalysis(): VulnerabilityAnalysisNormalizer; } interface XmlNormalizer<TModel, TNormalized> { normalize: (data: TModel, options: NormalizerOptions, elementName?: string) => TNormalized | undefined; normalizeIterable?: (data: SortableIterable<TModel>, options: NormalizerOptions, elementName: string) => TNormalized[]; } declare abstract class BaseXmlNormalizer<TModel, TNormalized = SimpleXml.Element> implements XmlNormalizer<TModel, TNormalized> { protected readonly _factory: Factory; constructor(factory: Factory); get factory(): Factory; /** * @param elementName - element name. XML defines structures; the element's name is defined on usage of a structure. */ abstract normalize(data: TModel, options: NormalizerOptions, elementName?: string): TNormalized | undefined; } export declare class BomNormalizer extends BaseXmlNormalizer<Models.Bom> { #private; normalize(data: Models.Bom, options: NormalizerOptions): SimpleXml.Element; } export declare class MetadataNormalizer extends BaseXmlNormalizer<Models.Metadata> { normalize(data: Models.Metadata, options: NormalizerOptions, elementName: string): SimpleXml.Element; } export declare class LifecycleNormalizer extends BaseXmlNormalizer<Models.Lifecycle> { normalize(data: Models.Lifecycle, options: NormalizerOptions, elementName: string): SimpleXml.Element; normalizeIterable(data: SortableIterable<Models.Lifecycle>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class ToolNormalizer extends BaseXmlNormalizer<Models.Tool> { normalize(data: Models.Tool, options: NormalizerOptions, elementName: string): SimpleXml.Element; normalizeIterable(data: SortableIterable<Models.Tool>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class ToolsNormalizer extends BaseXmlNormalizer<Models.Tools> { normalize(data: Models.Tools, options: NormalizerOptions, elementName: string): SimpleXml.Element; } export declare class HashNormalizer extends BaseXmlNormalizer<Models.Hash> { normalize([algorithm, content]: Models.Hash, options: NormalizerOptions, elementName: string): SimpleXml.Element | undefined; normalizeIterable(data: SortableIterable<Models.Hash>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class OrganizationalContactNormalizer extends BaseXmlNormalizer<Models.OrganizationalContact> { normalize(data: Models.OrganizationalContact, options: NormalizerOptions, elementName: string): SimpleXml.Element; normalizeIterable(data: SortableIterable<Models.OrganizationalContact>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class OrganizationalEntityNormalizer extends BaseXmlNormalizer<Models.OrganizationalEntity> { normalize(data: Models.OrganizationalEntity, options: NormalizerOptions, elementName: string): SimpleXml.Element; normalizeIterable(data: SortableIterable<Models.OrganizationalEntity>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class ComponentNormalizer extends BaseXmlNormalizer<Models.Component> { normalize(data: Models.Component, options: NormalizerOptions, elementName: string): SimpleXml.Element | undefined; normalizeIterable(data: SortableIterable<Models.Component>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class ServiceNormalizer extends BaseXmlNormalizer<Models.Service> { normalize(data: Models.Service, options: NormalizerOptions, elementName: string): SimpleXml.Element; normalizeIterable(data: SortableIterable<Models.Service>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class ComponentEvidenceNormalizer extends BaseXmlNormalizer<Models.ComponentEvidence> { normalize(data: Models.ComponentEvidence, options: NormalizerOptions, elementName: string): SimpleXml.Element; } export declare class LicenseNormalizer extends BaseXmlNormalizer<Models.License> { #private; normalize(data: Models.License, options: NormalizerOptions): SimpleXml.Element; /** * If there is any {@link Models.LicenseExpression | LicenseExpression} in the set, then this is the only item that is normalized. */ normalizeIterable(data: SortableIterable<Models.License>, options: NormalizerOptions): SimpleXml.Element[]; } export declare class SWIDNormalizer extends BaseXmlNormalizer<Models.SWID> { normalize(data: Models.SWID, options: NormalizerOptions, elementName: string): SimpleXml.Element; } export declare class ExternalReferenceNormalizer extends BaseXmlNormalizer<Models.ExternalReference> { normalize(data: Models.ExternalReference, options: NormalizerOptions, elementName: string): SimpleXml.Element | undefined; normalizeIterable(data: SortableIterable<Models.ExternalReference>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class AttachmentNormalizer extends BaseXmlNormalizer<Models.Attachment> { normalize(data: Models.Attachment, options: NormalizerOptions, elementName: string): SimpleXml.Element; } export declare class PropertyNormalizer extends BaseXmlNormalizer<Models.Property> { normalize(data: Models.Property, options: NormalizerOptions, elementName: string): SimpleXml.Element; normalizeIterable(data: SortableIterable<Models.Property>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class DependencyGraphNormalizer extends BaseXmlNormalizer<Models.Bom> { #private; normalize(data: Models.Bom, options: NormalizerOptions, elementName: string): SimpleXml.Element | undefined; } export declare class VulnerabilityNormalizer extends BaseXmlNormalizer<Models.Vulnerability.Vulnerability> { normalize(data: Models.Vulnerability.Vulnerability, options: NormalizerOptions, elementName: string): SimpleXml.Element; normalizeIterable(data: SortableIterable<Models.Vulnerability.Vulnerability>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class VulnerabilitySourceNormalizer extends BaseXmlNormalizer<Models.Vulnerability.Source> { normalize(data: Models.Vulnerability.Source, options: NormalizerOptions, elementName: string): SimpleXml.Element; } export declare class VulnerabilityReferenceNormalizer extends BaseXmlNormalizer<Models.Vulnerability.Reference> { normalize(data: Models.Vulnerability.Reference, options: NormalizerOptions, elementName: string): SimpleXml.Element; normalizeIterable(data: SortableIterable<Models.Vulnerability.Reference>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class VulnerabilityRatingNormalizer extends BaseXmlNormalizer<Models.Vulnerability.Rating> { normalize(data: Models.Vulnerability.Rating, options: NormalizerOptions, elementName: string): SimpleXml.Element; normalizeIterable(data: SortableIterable<Models.Vulnerability.Rating>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class VulnerabilityAdvisoryNormalizer extends BaseXmlNormalizer<Models.Vulnerability.Advisory> { normalize(data: Models.Vulnerability.Advisory, options: NormalizerOptions, elementName: string): SimpleXml.Element | undefined; normalizeIterable(data: SortableIterable<Models.Vulnerability.Advisory>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class VulnerabilityCreditsNormalizer extends BaseXmlNormalizer<Models.Vulnerability.Credits> { normalize(data: Models.Vulnerability.Credits, options: NormalizerOptions, elementName: string): SimpleXml.Element; } export declare class VulnerabilityAnalysisNormalizer extends BaseXmlNormalizer<Models.Vulnerability.Analysis> { normalize(data: Models.Vulnerability.Analysis, options: NormalizerOptions, elementName: string): SimpleXml.Element; } export declare class VulnerabilityAffectNormalizer extends BaseXmlNormalizer<Models.Vulnerability.Affect> { normalize(data: Models.Vulnerability.Affect, options: NormalizerOptions, elementName: string): SimpleXml.Element; normalizeIterable(data: SortableIterable<Models.Vulnerability.Affect>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export declare class VulnerabilityAffectedVersionNormalizer extends BaseXmlNormalizer<Models.Vulnerability.AffectedVersion> { #private; normalize(data: Models.Vulnerability.AffectedVersion, options: NormalizerOptions, elementName: string): SimpleXml.Element; normalizeIterable(data: SortableIterable<Models.Vulnerability.AffectedVersion>, options: NormalizerOptions, elementName: string): SimpleXml.Element[]; } export {}; //# sourceMappingURL=normalize.d.ts.map