@cyclonedx/cyclonedx-library 6.3.2 → 6.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist.d/models/metadata.d.ts +6 -0
- package/dist.d/models/metadata.d.ts.map +1 -1
- package/dist.d/serialize/json/normalize.d.ts.map +1 -1
- package/dist.d/serialize/json/types.d.ts +1 -0
- package/dist.d/serialize/json/types.d.ts.map +1 -1
- package/dist.d/serialize/xml/normalize.d.ts.map +1 -1
- package/dist.d/spec/_protocol.d.ts +2 -0
- package/dist.d/spec/_protocol.d.ts.map +1 -1
- package/dist.d/spec/consts.d.ts.map +1 -1
- package/dist.node/models/metadata.js +4 -0
- package/dist.node/models/metadata.js.map +1 -1
- package/dist.node/serialize/json/normalize.js +7 -1
- package/dist.node/serialize/json/normalize.js.map +1 -1
- package/dist.node/serialize/xml/normalize.js +17 -1
- package/dist.node/serialize/xml/normalize.js.map +1 -1
- package/dist.node/spec/_protocol.js +13 -3
- package/dist.node/spec/_protocol.js.map +1 -1
- package/dist.node/spec/consts.js +4 -4
- package/dist.node/spec/consts.js.map +1 -1
- package/dist.web/lib.dev.js +45 -9
- package/dist.web/lib.dev.js.map +1 -1
- package/dist.web/lib.js +1 -1
- package/dist.web/lib.js.map +1 -1
- package/package.json +1 -1
- package/src/models/metadata.ts +8 -0
- package/src/serialize/json/normalize.ts +7 -1
- package/src/serialize/json/types.ts +1 -0
- package/src/serialize/xml/normalize.ts +17 -1
- package/src/spec/_protocol.ts +16 -0
- package/src/spec/consts.ts +8 -0
package/package.json
CHANGED
package/src/models/metadata.ts
CHANGED
|
@@ -18,9 +18,11 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
|
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
import type { Component } from './component'
|
|
21
|
+
import { LicenseRepository } from './license'
|
|
21
22
|
import { LifecycleRepository } from './lifecycle'
|
|
22
23
|
import { OrganizationalContactRepository } from './organizationalContact'
|
|
23
24
|
import type { OrganizationalEntity } from './organizationalEntity'
|
|
25
|
+
import { PropertyRepository } from './property'
|
|
24
26
|
import { ToolRepository } from './tool'
|
|
25
27
|
|
|
26
28
|
export interface OptionalMetadataProperties {
|
|
@@ -31,6 +33,8 @@ export interface OptionalMetadataProperties {
|
|
|
31
33
|
component?: Metadata['component']
|
|
32
34
|
manufacture?: Metadata['manufacture']
|
|
33
35
|
supplier?: Metadata['supplier']
|
|
36
|
+
licenses?: Metadata['licenses']
|
|
37
|
+
properties?: Metadata['properties']
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
export class Metadata {
|
|
@@ -41,6 +45,8 @@ export class Metadata {
|
|
|
41
45
|
component?: Component
|
|
42
46
|
manufacture?: OrganizationalEntity
|
|
43
47
|
supplier?: OrganizationalEntity
|
|
48
|
+
licenses: LicenseRepository
|
|
49
|
+
properties: PropertyRepository
|
|
44
50
|
|
|
45
51
|
constructor (op: OptionalMetadataProperties = {}) {
|
|
46
52
|
this.timestamp = op.timestamp
|
|
@@ -50,5 +56,7 @@ export class Metadata {
|
|
|
50
56
|
this.component = op.component
|
|
51
57
|
this.manufacture = op.manufacture
|
|
52
58
|
this.supplier = op.supplier
|
|
59
|
+
this.licenses = op.licenses ?? new LicenseRepository()
|
|
60
|
+
this.properties = op.properties ?? new PropertyRepository()
|
|
53
61
|
}
|
|
54
62
|
}
|
|
@@ -223,7 +223,13 @@ export class MetadataNormalizer extends BaseJsonNormalizer<Models.Metadata> {
|
|
|
223
223
|
: orgEntityNormalizer.normalize(data.manufacture, options),
|
|
224
224
|
supplier: data.supplier === undefined
|
|
225
225
|
? undefined
|
|
226
|
-
: orgEntityNormalizer.normalize(data.supplier, options)
|
|
226
|
+
: orgEntityNormalizer.normalize(data.supplier, options),
|
|
227
|
+
licenses: this._factory.spec.supportsMetadataLicenses && data.licenses.size > 0
|
|
228
|
+
? this._factory.makeForLicense().normalizeIterable(data.licenses, options)
|
|
229
|
+
: undefined,
|
|
230
|
+
properties: this._factory.spec.supportsMetadataProperties && data.properties.size > 0
|
|
231
|
+
? this._factory.makeForProperty().normalizeIterable(data.properties, options)
|
|
232
|
+
: undefined
|
|
227
233
|
}
|
|
228
234
|
}
|
|
229
235
|
}
|
|
@@ -246,6 +246,20 @@ export class MetadataNormalizer extends BaseXmlNormalizer<Models.Metadata> {
|
|
|
246
246
|
children: this._factory.makeForOrganizationalContact().normalizeIterable(data.authors, options, 'author')
|
|
247
247
|
}
|
|
248
248
|
: undefined
|
|
249
|
+
const licenses: SimpleXml.Element | undefined = this._factory.spec.supportsMetadataLicenses && data.licenses.size > 0
|
|
250
|
+
? {
|
|
251
|
+
type: 'element',
|
|
252
|
+
name: 'licenses',
|
|
253
|
+
children: this._factory.makeForLicense().normalizeIterable(data.licenses, options)
|
|
254
|
+
}
|
|
255
|
+
: undefined
|
|
256
|
+
const properties: SimpleXml.Element | undefined = this._factory.spec.supportsMetadataProperties && data.properties.size > 0
|
|
257
|
+
? {
|
|
258
|
+
type: 'element',
|
|
259
|
+
name: 'properties',
|
|
260
|
+
children: this._factory.makeForProperty().normalizeIterable(data.properties, options, 'property')
|
|
261
|
+
}
|
|
262
|
+
: undefined
|
|
249
263
|
return {
|
|
250
264
|
type: 'element',
|
|
251
265
|
name: elementName,
|
|
@@ -262,7 +276,9 @@ export class MetadataNormalizer extends BaseXmlNormalizer<Models.Metadata> {
|
|
|
262
276
|
: orgEntityNormalizer.normalize(data.manufacture, options, 'manufacture'),
|
|
263
277
|
data.supplier === undefined
|
|
264
278
|
? undefined
|
|
265
|
-
: orgEntityNormalizer.normalize(data.supplier, options, 'supplier')
|
|
279
|
+
: orgEntityNormalizer.normalize(data.supplier, options, 'supplier'),
|
|
280
|
+
licenses,
|
|
281
|
+
properties
|
|
266
282
|
].filter(isNotUndefined)
|
|
267
283
|
}
|
|
268
284
|
}
|
package/src/spec/_protocol.ts
CHANGED
|
@@ -43,6 +43,8 @@ export interface _SpecProtocol {
|
|
|
43
43
|
supportsVulnerabilityRatingMethod: (rm: Vulnerability.RatingMethod | any) => boolean
|
|
44
44
|
supportsComponentEvidence: boolean
|
|
45
45
|
supportsMetadataLifecycles: boolean
|
|
46
|
+
supportsMetadataLicenses: boolean
|
|
47
|
+
supportsMetadataProperties: boolean
|
|
46
48
|
supportsExternalReferenceHashes: boolean
|
|
47
49
|
}
|
|
48
50
|
|
|
@@ -68,6 +70,8 @@ export class _Spec implements _SpecProtocol {
|
|
|
68
70
|
readonly #supportsVulnerabilities: boolean
|
|
69
71
|
readonly #supportsComponentEvidence: boolean
|
|
70
72
|
readonly #supportsMetadataLifecycles: boolean
|
|
73
|
+
readonly #supportsMetadataLicenses: boolean
|
|
74
|
+
readonly #supportsMetadataProperties: boolean
|
|
71
75
|
readonly #supportsExternalReferenceHashes: boolean
|
|
72
76
|
|
|
73
77
|
constructor (
|
|
@@ -85,6 +89,8 @@ export class _Spec implements _SpecProtocol {
|
|
|
85
89
|
vulnerabilityRatingMethods: Iterable<Vulnerability.RatingMethod>,
|
|
86
90
|
supportsComponentEvidence: boolean,
|
|
87
91
|
supportsMetadataLifecycles: boolean,
|
|
92
|
+
supportsMetadataLicenses: boolean,
|
|
93
|
+
supportsMetadataProperties: boolean,
|
|
88
94
|
supportsExternalReferenceHashes: boolean
|
|
89
95
|
) {
|
|
90
96
|
this.#version = version
|
|
@@ -101,6 +107,8 @@ export class _Spec implements _SpecProtocol {
|
|
|
101
107
|
this.#vulnerabilityRatingMethods = new Set(vulnerabilityRatingMethods)
|
|
102
108
|
this.#supportsComponentEvidence = supportsComponentEvidence
|
|
103
109
|
this.#supportsMetadataLifecycles = supportsMetadataLifecycles
|
|
110
|
+
this.#supportsMetadataLicenses = supportsMetadataLicenses
|
|
111
|
+
this.#supportsMetadataProperties = supportsMetadataProperties
|
|
104
112
|
this.#supportsExternalReferenceHashes = supportsExternalReferenceHashes
|
|
105
113
|
}
|
|
106
114
|
|
|
@@ -167,6 +175,14 @@ export class _Spec implements _SpecProtocol {
|
|
|
167
175
|
return this.#supportsMetadataLifecycles
|
|
168
176
|
}
|
|
169
177
|
|
|
178
|
+
get supportsMetadataLicenses (): boolean {
|
|
179
|
+
return this.#supportsMetadataLicenses
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
get supportsMetadataProperties (): boolean {
|
|
183
|
+
return this.#supportsMetadataProperties
|
|
184
|
+
}
|
|
185
|
+
|
|
170
186
|
get supportsExternalReferenceHashes (): boolean {
|
|
171
187
|
return this.#supportsExternalReferenceHashes
|
|
172
188
|
}
|
package/src/spec/consts.ts
CHANGED
|
@@ -79,6 +79,8 @@ export const Spec1dot2: Readonly<_SpecProtocol> = Object.freeze(new _Spec(
|
|
|
79
79
|
[],
|
|
80
80
|
false,
|
|
81
81
|
false,
|
|
82
|
+
false,
|
|
83
|
+
false,
|
|
82
84
|
false
|
|
83
85
|
))
|
|
84
86
|
|
|
@@ -139,6 +141,8 @@ export const Spec1dot3: Readonly<_SpecProtocol> = Object.freeze(new _Spec(
|
|
|
139
141
|
[],
|
|
140
142
|
true,
|
|
141
143
|
false,
|
|
144
|
+
true,
|
|
145
|
+
true,
|
|
142
146
|
true
|
|
143
147
|
))
|
|
144
148
|
|
|
@@ -206,6 +210,8 @@ export const Spec1dot4: Readonly<_SpecProtocol> = Object.freeze(new _Spec(
|
|
|
206
210
|
],
|
|
207
211
|
true,
|
|
208
212
|
false,
|
|
213
|
+
true,
|
|
214
|
+
true,
|
|
209
215
|
true
|
|
210
216
|
))
|
|
211
217
|
|
|
@@ -302,6 +308,8 @@ export const Spec1dot5: Readonly<_SpecProtocol> = Object.freeze(new _Spec(
|
|
|
302
308
|
],
|
|
303
309
|
true,
|
|
304
310
|
true,
|
|
311
|
+
true,
|
|
312
|
+
true,
|
|
305
313
|
true
|
|
306
314
|
))
|
|
307
315
|
|